Some checks failed
🚀 Deploy - Demo / deployment (push) Has been cancelled
- 웹훅 URL을 https://admin.youtooplay.com/webhook로 변경 - Nginx 리버스 프록시 설정 파일 추가 - 배포 가이드 업데이트
165 lines
4.1 KiB
JavaScript
165 lines
4.1 KiB
JavaScript
import { toRef as toRef$1, readonly, ref, customRef, unref, isRef, watch } from 'vue';
|
|
|
|
function computedWithControl(source, fn) {
|
|
let v = void 0;
|
|
let track;
|
|
let trigger;
|
|
const dirty = ref(true);
|
|
const update = () => {
|
|
dirty.value = true;
|
|
trigger();
|
|
};
|
|
watch(source, update, { flush: "sync" });
|
|
const get2 = typeof fn === "function" ? fn : fn.get;
|
|
const set2 = typeof fn === "function" ? void 0 : fn.set;
|
|
const result = customRef((_track, _trigger) => {
|
|
track = _track;
|
|
trigger = _trigger;
|
|
return {
|
|
get() {
|
|
if (dirty.value) {
|
|
v = get2();
|
|
dirty.value = false;
|
|
}
|
|
track();
|
|
return v;
|
|
},
|
|
set(v2) {
|
|
set2 == null ? void 0 : set2(v2);
|
|
}
|
|
};
|
|
});
|
|
if (Object.isExtensible(result))
|
|
result.trigger = update;
|
|
return result;
|
|
}
|
|
function toValue(r) {
|
|
return typeof r === "function" ? r() : unref(r);
|
|
}
|
|
typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope;
|
|
const noop = () => {
|
|
};
|
|
function createFilterWrapper(filter, fn) {
|
|
function wrapper(...args) {
|
|
return new Promise((resolve, reject) => {
|
|
Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);
|
|
});
|
|
}
|
|
return wrapper;
|
|
}
|
|
const bypassFilter = (invoke2) => {
|
|
return invoke2();
|
|
};
|
|
function pausableFilter(extendFilter = bypassFilter) {
|
|
const isActive = ref(true);
|
|
function pause() {
|
|
isActive.value = false;
|
|
}
|
|
function resume() {
|
|
isActive.value = true;
|
|
}
|
|
const eventFilter = (...args) => {
|
|
if (isActive.value)
|
|
extendFilter(...args);
|
|
};
|
|
return { isActive: readonly(isActive), pause, resume, eventFilter };
|
|
}
|
|
function toRef(...args) {
|
|
if (args.length !== 1)
|
|
return toRef$1(...args);
|
|
const r = args[0];
|
|
return typeof r === "function" ? readonly(customRef(() => ({ get: r, set: noop }))) : ref(r);
|
|
}
|
|
function watchWithFilter(source, cb, options = {}) {
|
|
const {
|
|
eventFilter = bypassFilter,
|
|
...watchOptions
|
|
} = options;
|
|
return watch(
|
|
source,
|
|
createFilterWrapper(
|
|
eventFilter,
|
|
cb
|
|
),
|
|
watchOptions
|
|
);
|
|
}
|
|
function watchPausable(source, cb, options = {}) {
|
|
const {
|
|
eventFilter: filter,
|
|
...watchOptions
|
|
} = options;
|
|
const { eventFilter, pause, resume, isActive } = pausableFilter(filter);
|
|
const stop = watchWithFilter(
|
|
source,
|
|
cb,
|
|
{
|
|
...watchOptions,
|
|
eventFilter
|
|
}
|
|
);
|
|
return { stop, pause, resume, isActive };
|
|
}
|
|
function syncRef(left, right, ...[options]) {
|
|
const {
|
|
flush = "sync",
|
|
deep = false,
|
|
immediate = true,
|
|
direction = "both",
|
|
transform = {}
|
|
} = options || {};
|
|
const watchers = [];
|
|
const transformLTR = "ltr" in transform && transform.ltr || ((v) => v);
|
|
const transformRTL = "rtl" in transform && transform.rtl || ((v) => v);
|
|
if (direction === "both" || direction === "ltr") {
|
|
watchers.push(watchPausable(
|
|
left,
|
|
(newValue) => {
|
|
watchers.forEach((w) => w.pause());
|
|
right.value = transformLTR(newValue);
|
|
watchers.forEach((w) => w.resume());
|
|
},
|
|
{ flush, deep, immediate }
|
|
));
|
|
}
|
|
if (direction === "both" || direction === "rtl") {
|
|
watchers.push(watchPausable(
|
|
right,
|
|
(newValue) => {
|
|
watchers.forEach((w) => w.pause());
|
|
left.value = transformRTL(newValue);
|
|
watchers.forEach((w) => w.resume());
|
|
},
|
|
{ flush, deep, immediate }
|
|
));
|
|
}
|
|
const stop = () => {
|
|
watchers.forEach((w) => w.stop());
|
|
};
|
|
return stop;
|
|
}
|
|
function useToggle(initialValue = false, options = {}) {
|
|
const {
|
|
truthyValue = true,
|
|
falsyValue = false
|
|
} = options;
|
|
const valueIsRef = isRef(initialValue);
|
|
const _value = ref(initialValue);
|
|
function toggle(value) {
|
|
if (arguments.length) {
|
|
_value.value = value;
|
|
return _value.value;
|
|
} else {
|
|
const truthy = toValue(truthyValue);
|
|
_value.value = _value.value === truthy ? toValue(falsyValue) : truthy;
|
|
return _value.value;
|
|
}
|
|
}
|
|
if (valueIsRef)
|
|
return toggle;
|
|
else
|
|
return [_value, toggle];
|
|
}
|
|
|
|
export { toValue as a, computedWithControl as c, syncRef as s, toRef as t, useToggle as u };
|