index.cjs 48 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634
  1. 'use strict';
  2. var vueDemi = require('vue-demi');
  3. var __defProp$9 = Object.defineProperty;
  4. var __defProps$6 = Object.defineProperties;
  5. var __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;
  6. var __getOwnPropSymbols$b = Object.getOwnPropertySymbols;
  7. var __hasOwnProp$b = Object.prototype.hasOwnProperty;
  8. var __propIsEnum$b = Object.prototype.propertyIsEnumerable;
  9. var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
  10. var __spreadValues$9 = (a, b) => {
  11. for (var prop in b || (b = {}))
  12. if (__hasOwnProp$b.call(b, prop))
  13. __defNormalProp$9(a, prop, b[prop]);
  14. if (__getOwnPropSymbols$b)
  15. for (var prop of __getOwnPropSymbols$b(b)) {
  16. if (__propIsEnum$b.call(b, prop))
  17. __defNormalProp$9(a, prop, b[prop]);
  18. }
  19. return a;
  20. };
  21. var __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));
  22. function computedEager(fn, options) {
  23. var _a;
  24. const result = vueDemi.shallowRef();
  25. vueDemi.watchEffect(() => {
  26. result.value = fn();
  27. }, __spreadProps$6(__spreadValues$9({}, options), {
  28. flush: (_a = options == null ? void 0 : options.flush) != null ? _a : "sync"
  29. }));
  30. return vueDemi.readonly(result);
  31. }
  32. var _a;
  33. const isClient = typeof window !== "undefined";
  34. const isDef = (val) => typeof val !== "undefined";
  35. const assert = (condition, ...infos) => {
  36. if (!condition)
  37. console.warn(...infos);
  38. };
  39. const toString = Object.prototype.toString;
  40. const isBoolean = (val) => typeof val === "boolean";
  41. const isFunction = (val) => typeof val === "function";
  42. const isNumber = (val) => typeof val === "number";
  43. const isString = (val) => typeof val === "string";
  44. const isObject = (val) => toString.call(val) === "[object Object]";
  45. const isWindow = (val) => typeof window !== "undefined" && toString.call(val) === "[object Window]";
  46. const now = () => Date.now();
  47. const timestamp = () => +Date.now();
  48. const clamp = (n, min, max) => Math.min(max, Math.max(min, n));
  49. const noop = () => {
  50. };
  51. const rand = (min, max) => {
  52. min = Math.ceil(min);
  53. max = Math.floor(max);
  54. return Math.floor(Math.random() * (max - min + 1)) + min;
  55. };
  56. const isIOS = isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent);
  57. const hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);
  58. function resolveUnref(r) {
  59. return typeof r === "function" ? r() : vueDemi.unref(r);
  60. }
  61. function createFilterWrapper(filter, fn) {
  62. function wrapper(...args) {
  63. filter(() => fn.apply(this, args), { fn, thisArg: this, args });
  64. }
  65. return wrapper;
  66. }
  67. const bypassFilter = (invoke) => {
  68. return invoke();
  69. };
  70. function debounceFilter(ms, options = {}) {
  71. let timer;
  72. let maxTimer;
  73. const filter = (invoke) => {
  74. const duration = resolveUnref(ms);
  75. const maxDuration = resolveUnref(options.maxWait);
  76. if (timer)
  77. clearTimeout(timer);
  78. if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {
  79. if (maxTimer) {
  80. clearTimeout(maxTimer);
  81. maxTimer = null;
  82. }
  83. return invoke();
  84. }
  85. if (maxDuration && !maxTimer) {
  86. maxTimer = setTimeout(() => {
  87. if (timer)
  88. clearTimeout(timer);
  89. maxTimer = null;
  90. invoke();
  91. }, maxDuration);
  92. }
  93. timer = setTimeout(() => {
  94. if (maxTimer)
  95. clearTimeout(maxTimer);
  96. maxTimer = null;
  97. invoke();
  98. }, duration);
  99. };
  100. return filter;
  101. }
  102. function throttleFilter(ms, trailing = true, leading = true) {
  103. let lastExec = 0;
  104. let timer;
  105. let isLeading = true;
  106. const clear = () => {
  107. if (timer) {
  108. clearTimeout(timer);
  109. timer = void 0;
  110. }
  111. };
  112. const filter = (invoke) => {
  113. const duration = resolveUnref(ms);
  114. const elapsed = Date.now() - lastExec;
  115. clear();
  116. if (duration <= 0) {
  117. lastExec = Date.now();
  118. return invoke();
  119. }
  120. if (elapsed > duration && (leading || !isLeading)) {
  121. lastExec = Date.now();
  122. invoke();
  123. } else if (trailing) {
  124. timer = setTimeout(() => {
  125. lastExec = Date.now();
  126. isLeading = true;
  127. clear();
  128. invoke();
  129. }, duration - elapsed);
  130. }
  131. if (!leading && !timer)
  132. timer = setTimeout(() => isLeading = true, duration);
  133. isLeading = false;
  134. };
  135. return filter;
  136. }
  137. function pausableFilter(extendFilter = bypassFilter) {
  138. const isActive = vueDemi.ref(true);
  139. function pause() {
  140. isActive.value = false;
  141. }
  142. function resume() {
  143. isActive.value = true;
  144. }
  145. const eventFilter = (...args) => {
  146. if (isActive.value)
  147. extendFilter(...args);
  148. };
  149. return { isActive, pause, resume, eventFilter };
  150. }
  151. function __onlyVue3(name = "this function") {
  152. if (vueDemi.isVue3)
  153. return;
  154. throw new Error(`[VueUse] ${name} is only works on Vue 3.`);
  155. }
  156. function __onlyVue27Plus(name = "this function") {
  157. if (vueDemi.isVue3 || vueDemi.version.startsWith("2.7."))
  158. return;
  159. throw new Error(`[VueUse] ${name} is only works on Vue 2.7 or above.`);
  160. }
  161. const directiveHooks = {
  162. mounted: vueDemi.isVue3 ? "mounted" : "inserted",
  163. updated: vueDemi.isVue3 ? "updated" : "componentUpdated",
  164. unmounted: vueDemi.isVue3 ? "unmounted" : "unbind"
  165. };
  166. function promiseTimeout(ms, throwOnTimeout = false, reason = "Timeout") {
  167. return new Promise((resolve, reject) => {
  168. if (throwOnTimeout)
  169. setTimeout(() => reject(reason), ms);
  170. else
  171. setTimeout(resolve, ms);
  172. });
  173. }
  174. function identity(arg) {
  175. return arg;
  176. }
  177. function createSingletonPromise(fn) {
  178. let _promise;
  179. function wrapper() {
  180. if (!_promise)
  181. _promise = fn();
  182. return _promise;
  183. }
  184. wrapper.reset = async () => {
  185. const _prev = _promise;
  186. _promise = void 0;
  187. if (_prev)
  188. await _prev;
  189. };
  190. return wrapper;
  191. }
  192. function invoke(fn) {
  193. return fn();
  194. }
  195. function containsProp(obj, ...props) {
  196. return props.some((k) => k in obj);
  197. }
  198. function increaseWithUnit(target, delta) {
  199. var _a;
  200. if (typeof target === "number")
  201. return target + delta;
  202. const value = ((_a = target.match(/^-?[0-9]+\.?[0-9]*/)) == null ? void 0 : _a[0]) || "";
  203. const unit = target.slice(value.length);
  204. const result = parseFloat(value) + delta;
  205. if (Number.isNaN(result))
  206. return target;
  207. return result + unit;
  208. }
  209. function objectPick(obj, keys, omitUndefined = false) {
  210. return keys.reduce((n, k) => {
  211. if (k in obj) {
  212. if (!omitUndefined || obj[k] !== void 0)
  213. n[k] = obj[k];
  214. }
  215. return n;
  216. }, {});
  217. }
  218. function computedWithControl(source, fn) {
  219. let v = void 0;
  220. let track;
  221. let trigger;
  222. const dirty = vueDemi.ref(true);
  223. const update = () => {
  224. dirty.value = true;
  225. trigger();
  226. };
  227. vueDemi.watch(source, update, { flush: "sync" });
  228. const get = isFunction(fn) ? fn : fn.get;
  229. const set = isFunction(fn) ? void 0 : fn.set;
  230. const result = vueDemi.customRef((_track, _trigger) => {
  231. track = _track;
  232. trigger = _trigger;
  233. return {
  234. get() {
  235. if (dirty.value) {
  236. v = get();
  237. dirty.value = false;
  238. }
  239. track();
  240. return v;
  241. },
  242. set(v2) {
  243. set == null ? void 0 : set(v2);
  244. }
  245. };
  246. });
  247. if (Object.isExtensible(result))
  248. result.trigger = update;
  249. return result;
  250. }
  251. function tryOnScopeDispose(fn) {
  252. if (vueDemi.getCurrentScope()) {
  253. vueDemi.onScopeDispose(fn);
  254. return true;
  255. }
  256. return false;
  257. }
  258. function createEventHook() {
  259. const fns = [];
  260. const off = (fn) => {
  261. const index = fns.indexOf(fn);
  262. if (index !== -1)
  263. fns.splice(index, 1);
  264. };
  265. const on = (fn) => {
  266. fns.push(fn);
  267. const offFn = () => off(fn);
  268. tryOnScopeDispose(offFn);
  269. return {
  270. off: offFn
  271. };
  272. };
  273. const trigger = (param) => {
  274. fns.forEach((fn) => fn(param));
  275. };
  276. return {
  277. on,
  278. off,
  279. trigger
  280. };
  281. }
  282. function createGlobalState(stateFactory) {
  283. let initialized = false;
  284. let state;
  285. const scope = vueDemi.effectScope(true);
  286. return () => {
  287. if (!initialized) {
  288. state = scope.run(stateFactory);
  289. initialized = true;
  290. }
  291. return state;
  292. };
  293. }
  294. function createInjectionState(composable) {
  295. const key = Symbol("InjectionState");
  296. const useProvidingState = (...args) => {
  297. vueDemi.provide(key, composable(...args));
  298. };
  299. const useInjectedState = () => vueDemi.inject(key);
  300. return [useProvidingState, useInjectedState];
  301. }
  302. function createSharedComposable(composable) {
  303. let subscribers = 0;
  304. let state;
  305. let scope;
  306. const dispose = () => {
  307. subscribers -= 1;
  308. if (scope && subscribers <= 0) {
  309. scope.stop();
  310. state = void 0;
  311. scope = void 0;
  312. }
  313. };
  314. return (...args) => {
  315. subscribers += 1;
  316. if (!state) {
  317. scope = vueDemi.effectScope(true);
  318. state = scope.run(() => composable(...args));
  319. }
  320. tryOnScopeDispose(dispose);
  321. return state;
  322. };
  323. }
  324. function extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {
  325. __onlyVue27Plus();
  326. for (const [key, value] of Object.entries(extend)) {
  327. if (key === "value")
  328. continue;
  329. if (vueDemi.isRef(value) && unwrap) {
  330. Object.defineProperty(ref, key, {
  331. get() {
  332. return value.value;
  333. },
  334. set(v) {
  335. value.value = v;
  336. },
  337. enumerable
  338. });
  339. } else {
  340. Object.defineProperty(ref, key, { value, enumerable });
  341. }
  342. }
  343. return ref;
  344. }
  345. function get(obj, key) {
  346. if (key == null)
  347. return vueDemi.unref(obj);
  348. return vueDemi.unref(obj)[key];
  349. }
  350. function isDefined(v) {
  351. return vueDemi.unref(v) != null;
  352. }
  353. var __defProp$8 = Object.defineProperty;
  354. var __getOwnPropSymbols$a = Object.getOwnPropertySymbols;
  355. var __hasOwnProp$a = Object.prototype.hasOwnProperty;
  356. var __propIsEnum$a = Object.prototype.propertyIsEnumerable;
  357. var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
  358. var __spreadValues$8 = (a, b) => {
  359. for (var prop in b || (b = {}))
  360. if (__hasOwnProp$a.call(b, prop))
  361. __defNormalProp$8(a, prop, b[prop]);
  362. if (__getOwnPropSymbols$a)
  363. for (var prop of __getOwnPropSymbols$a(b)) {
  364. if (__propIsEnum$a.call(b, prop))
  365. __defNormalProp$8(a, prop, b[prop]);
  366. }
  367. return a;
  368. };
  369. function makeDestructurable(obj, arr) {
  370. if (typeof Symbol !== "undefined") {
  371. const clone = __spreadValues$8({}, obj);
  372. Object.defineProperty(clone, Symbol.iterator, {
  373. enumerable: false,
  374. value() {
  375. let index = 0;
  376. return {
  377. next: () => ({
  378. value: arr[index++],
  379. done: index > arr.length
  380. })
  381. };
  382. }
  383. });
  384. return clone;
  385. } else {
  386. return Object.assign([...arr], obj);
  387. }
  388. }
  389. function reactify(fn, options) {
  390. const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? vueDemi.unref : resolveUnref;
  391. return function(...args) {
  392. return vueDemi.computed(() => fn.apply(this, args.map((i) => unrefFn(i))));
  393. };
  394. }
  395. function reactifyObject(obj, optionsOrKeys = {}) {
  396. let keys = [];
  397. let options;
  398. if (Array.isArray(optionsOrKeys)) {
  399. keys = optionsOrKeys;
  400. } else {
  401. options = optionsOrKeys;
  402. const { includeOwnProperties = true } = optionsOrKeys;
  403. keys.push(...Object.keys(obj));
  404. if (includeOwnProperties)
  405. keys.push(...Object.getOwnPropertyNames(obj));
  406. }
  407. return Object.fromEntries(keys.map((key) => {
  408. const value = obj[key];
  409. return [
  410. key,
  411. typeof value === "function" ? reactify(value.bind(obj), options) : value
  412. ];
  413. }));
  414. }
  415. function toReactive(objectRef) {
  416. if (!vueDemi.isRef(objectRef))
  417. return vueDemi.reactive(objectRef);
  418. const proxy = new Proxy({}, {
  419. get(_, p, receiver) {
  420. return vueDemi.unref(Reflect.get(objectRef.value, p, receiver));
  421. },
  422. set(_, p, value) {
  423. if (vueDemi.isRef(objectRef.value[p]) && !vueDemi.isRef(value))
  424. objectRef.value[p].value = value;
  425. else
  426. objectRef.value[p] = value;
  427. return true;
  428. },
  429. deleteProperty(_, p) {
  430. return Reflect.deleteProperty(objectRef.value, p);
  431. },
  432. has(_, p) {
  433. return Reflect.has(objectRef.value, p);
  434. },
  435. ownKeys() {
  436. return Object.keys(objectRef.value);
  437. },
  438. getOwnPropertyDescriptor() {
  439. return {
  440. enumerable: true,
  441. configurable: true
  442. };
  443. }
  444. });
  445. return vueDemi.reactive(proxy);
  446. }
  447. function reactiveComputed(fn) {
  448. return toReactive(vueDemi.computed(fn));
  449. }
  450. function reactiveOmit(obj, ...keys) {
  451. const flatKeys = keys.flat();
  452. return reactiveComputed(() => Object.fromEntries(Object.entries(vueDemi.toRefs(obj)).filter((e) => !flatKeys.includes(e[0]))));
  453. }
  454. function reactivePick(obj, ...keys) {
  455. const flatKeys = keys.flat();
  456. return vueDemi.reactive(Object.fromEntries(flatKeys.map((k) => [k, vueDemi.toRef(obj, k)])));
  457. }
  458. function refAutoReset(defaultValue, afterMs = 1e4) {
  459. return vueDemi.customRef((track, trigger) => {
  460. let value = defaultValue;
  461. let timer;
  462. const resetAfter = () => setTimeout(() => {
  463. value = defaultValue;
  464. trigger();
  465. }, resolveUnref(afterMs));
  466. tryOnScopeDispose(() => {
  467. clearTimeout(timer);
  468. });
  469. return {
  470. get() {
  471. track();
  472. return value;
  473. },
  474. set(newValue) {
  475. value = newValue;
  476. trigger();
  477. clearTimeout(timer);
  478. timer = resetAfter();
  479. }
  480. };
  481. });
  482. }
  483. function useDebounceFn(fn, ms = 200, options = {}) {
  484. return createFilterWrapper(debounceFilter(ms, options), fn);
  485. }
  486. function refDebounced(value, ms = 200, options = {}) {
  487. const debounced = vueDemi.ref(value.value);
  488. const updater = useDebounceFn(() => {
  489. debounced.value = value.value;
  490. }, ms, options);
  491. vueDemi.watch(value, () => updater());
  492. return debounced;
  493. }
  494. function refDefault(source, defaultValue) {
  495. return vueDemi.computed({
  496. get() {
  497. var _a;
  498. return (_a = source.value) != null ? _a : defaultValue;
  499. },
  500. set(value) {
  501. source.value = value;
  502. }
  503. });
  504. }
  505. function useThrottleFn(fn, ms = 200, trailing = false, leading = true) {
  506. return createFilterWrapper(throttleFilter(ms, trailing, leading), fn);
  507. }
  508. function refThrottled(value, delay = 200, trailing = true, leading = true) {
  509. if (delay <= 0)
  510. return value;
  511. const throttled = vueDemi.ref(value.value);
  512. const updater = useThrottleFn(() => {
  513. throttled.value = value.value;
  514. }, delay, trailing, leading);
  515. vueDemi.watch(value, () => updater());
  516. return throttled;
  517. }
  518. function refWithControl(initial, options = {}) {
  519. let source = initial;
  520. let track;
  521. let trigger;
  522. const ref = vueDemi.customRef((_track, _trigger) => {
  523. track = _track;
  524. trigger = _trigger;
  525. return {
  526. get() {
  527. return get();
  528. },
  529. set(v) {
  530. set(v);
  531. }
  532. };
  533. });
  534. function get(tracking = true) {
  535. if (tracking)
  536. track();
  537. return source;
  538. }
  539. function set(value, triggering = true) {
  540. var _a, _b;
  541. if (value === source)
  542. return;
  543. const old = source;
  544. if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false)
  545. return;
  546. source = value;
  547. (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old);
  548. if (triggering)
  549. trigger();
  550. }
  551. const untrackedGet = () => get(false);
  552. const silentSet = (v) => set(v, false);
  553. const peek = () => get(false);
  554. const lay = (v) => set(v, false);
  555. return extendRef(ref, {
  556. get,
  557. set,
  558. untrackedGet,
  559. silentSet,
  560. peek,
  561. lay
  562. }, { enumerable: true });
  563. }
  564. const controlledRef = refWithControl;
  565. function resolveRef(r) {
  566. return typeof r === "function" ? vueDemi.computed(r) : vueDemi.ref(r);
  567. }
  568. function set(...args) {
  569. if (args.length === 2) {
  570. const [ref, value] = args;
  571. ref.value = value;
  572. }
  573. if (args.length === 3) {
  574. if (vueDemi.isVue2) {
  575. vueDemi.set(...args);
  576. } else {
  577. const [target, key, value] = args;
  578. target[key] = value;
  579. }
  580. }
  581. }
  582. function syncRef(left, right, options = {}) {
  583. var _a, _b;
  584. const {
  585. flush = "sync",
  586. deep = false,
  587. immediate = true,
  588. direction = "both",
  589. transform = {}
  590. } = options;
  591. let watchLeft;
  592. let watchRight;
  593. const transformLTR = (_a = transform.ltr) != null ? _a : (v) => v;
  594. const transformRTL = (_b = transform.rtl) != null ? _b : (v) => v;
  595. if (direction === "both" || direction === "ltr") {
  596. watchLeft = vueDemi.watch(left, (newValue) => right.value = transformLTR(newValue), { flush, deep, immediate });
  597. }
  598. if (direction === "both" || direction === "rtl") {
  599. watchRight = vueDemi.watch(right, (newValue) => left.value = transformRTL(newValue), { flush, deep, immediate });
  600. }
  601. return () => {
  602. watchLeft == null ? void 0 : watchLeft();
  603. watchRight == null ? void 0 : watchRight();
  604. };
  605. }
  606. function syncRefs(source, targets, options = {}) {
  607. const {
  608. flush = "sync",
  609. deep = false,
  610. immediate = true
  611. } = options;
  612. if (!Array.isArray(targets))
  613. targets = [targets];
  614. return vueDemi.watch(source, (newValue) => targets.forEach((target) => target.value = newValue), { flush, deep, immediate });
  615. }
  616. var __defProp$7 = Object.defineProperty;
  617. var __defProps$5 = Object.defineProperties;
  618. var __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;
  619. var __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;
  620. var __hasOwnProp$9 = Object.prototype.hasOwnProperty;
  621. var __propIsEnum$9 = Object.prototype.propertyIsEnumerable;
  622. var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
  623. var __spreadValues$7 = (a, b) => {
  624. for (var prop in b || (b = {}))
  625. if (__hasOwnProp$9.call(b, prop))
  626. __defNormalProp$7(a, prop, b[prop]);
  627. if (__getOwnPropSymbols$9)
  628. for (var prop of __getOwnPropSymbols$9(b)) {
  629. if (__propIsEnum$9.call(b, prop))
  630. __defNormalProp$7(a, prop, b[prop]);
  631. }
  632. return a;
  633. };
  634. var __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));
  635. function toRefs(objectRef) {
  636. if (!vueDemi.isRef(objectRef))
  637. return vueDemi.toRefs(objectRef);
  638. const result = Array.isArray(objectRef.value) ? new Array(objectRef.value.length) : {};
  639. for (const key in objectRef.value) {
  640. result[key] = vueDemi.customRef(() => ({
  641. get() {
  642. return objectRef.value[key];
  643. },
  644. set(v) {
  645. if (Array.isArray(objectRef.value)) {
  646. const copy = [...objectRef.value];
  647. copy[key] = v;
  648. objectRef.value = copy;
  649. } else {
  650. const newObject = __spreadProps$5(__spreadValues$7({}, objectRef.value), { [key]: v });
  651. Object.setPrototypeOf(newObject, objectRef.value);
  652. objectRef.value = newObject;
  653. }
  654. }
  655. }));
  656. }
  657. return result;
  658. }
  659. function tryOnBeforeMount(fn, sync = true) {
  660. if (vueDemi.getCurrentInstance())
  661. vueDemi.onBeforeMount(fn);
  662. else if (sync)
  663. fn();
  664. else
  665. vueDemi.nextTick(fn);
  666. }
  667. function tryOnBeforeUnmount(fn) {
  668. if (vueDemi.getCurrentInstance())
  669. vueDemi.onBeforeUnmount(fn);
  670. }
  671. function tryOnMounted(fn, sync = true) {
  672. if (vueDemi.getCurrentInstance())
  673. vueDemi.onMounted(fn);
  674. else if (sync)
  675. fn();
  676. else
  677. vueDemi.nextTick(fn);
  678. }
  679. function tryOnUnmounted(fn) {
  680. if (vueDemi.getCurrentInstance())
  681. vueDemi.onUnmounted(fn);
  682. }
  683. function createUntil(r, isNot = false) {
  684. function toMatch(condition, { flush = "sync", deep = false, timeout, throwOnTimeout } = {}) {
  685. let stop = null;
  686. const watcher = new Promise((resolve) => {
  687. stop = vueDemi.watch(r, (v) => {
  688. if (condition(v) !== isNot) {
  689. stop == null ? void 0 : stop();
  690. resolve(v);
  691. }
  692. }, {
  693. flush,
  694. deep,
  695. immediate: true
  696. });
  697. });
  698. const promises = [watcher];
  699. if (timeout != null) {
  700. promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => resolveUnref(r)).finally(() => stop == null ? void 0 : stop()));
  701. }
  702. return Promise.race(promises);
  703. }
  704. function toBe(value, options) {
  705. if (!vueDemi.isRef(value))
  706. return toMatch((v) => v === value, options);
  707. const { flush = "sync", deep = false, timeout, throwOnTimeout } = options != null ? options : {};
  708. let stop = null;
  709. const watcher = new Promise((resolve) => {
  710. stop = vueDemi.watch([r, value], ([v1, v2]) => {
  711. if (isNot !== (v1 === v2)) {
  712. stop == null ? void 0 : stop();
  713. resolve(v1);
  714. }
  715. }, {
  716. flush,
  717. deep,
  718. immediate: true
  719. });
  720. });
  721. const promises = [watcher];
  722. if (timeout != null) {
  723. promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => resolveUnref(r)).finally(() => {
  724. stop == null ? void 0 : stop();
  725. return resolveUnref(r);
  726. }));
  727. }
  728. return Promise.race(promises);
  729. }
  730. function toBeTruthy(options) {
  731. return toMatch((v) => Boolean(v), options);
  732. }
  733. function toBeNull(options) {
  734. return toBe(null, options);
  735. }
  736. function toBeUndefined(options) {
  737. return toBe(void 0, options);
  738. }
  739. function toBeNaN(options) {
  740. return toMatch(Number.isNaN, options);
  741. }
  742. function toContains(value, options) {
  743. return toMatch((v) => {
  744. const array = Array.from(v);
  745. return array.includes(value) || array.includes(resolveUnref(value));
  746. }, options);
  747. }
  748. function changed(options) {
  749. return changedTimes(1, options);
  750. }
  751. function changedTimes(n = 1, options) {
  752. let count = -1;
  753. return toMatch(() => {
  754. count += 1;
  755. return count >= n;
  756. }, options);
  757. }
  758. if (Array.isArray(resolveUnref(r))) {
  759. const instance = {
  760. toMatch,
  761. toContains,
  762. changed,
  763. changedTimes,
  764. get not() {
  765. return createUntil(r, !isNot);
  766. }
  767. };
  768. return instance;
  769. } else {
  770. const instance = {
  771. toMatch,
  772. toBe,
  773. toBeTruthy,
  774. toBeNull,
  775. toBeNaN,
  776. toBeUndefined,
  777. changed,
  778. changedTimes,
  779. get not() {
  780. return createUntil(r, !isNot);
  781. }
  782. };
  783. return instance;
  784. }
  785. }
  786. function until(r) {
  787. return createUntil(r);
  788. }
  789. function useArrayEvery(list, fn) {
  790. return vueDemi.computed(() => resolveUnref(list).every((element, index, array) => fn(resolveUnref(element), index, array)));
  791. }
  792. function useArrayFilter(list, fn) {
  793. return vueDemi.computed(() => resolveUnref(list).map((i) => resolveUnref(i)).filter(fn));
  794. }
  795. function useArrayFind(list, fn) {
  796. return vueDemi.computed(() => resolveUnref(resolveUnref(list).find((element, index, array) => fn(resolveUnref(element), index, array))));
  797. }
  798. function useArrayFindIndex(list, fn) {
  799. return vueDemi.computed(() => resolveUnref(list).findIndex((element, index, array) => fn(resolveUnref(element), index, array)));
  800. }
  801. function useArrayJoin(list, separator) {
  802. return vueDemi.computed(() => resolveUnref(list).map((i) => resolveUnref(i)).join(resolveUnref(separator)));
  803. }
  804. function useArrayMap(list, fn) {
  805. return vueDemi.computed(() => resolveUnref(list).map((i) => resolveUnref(i)).map(fn));
  806. }
  807. function useArrayReduce(list, reducer, ...args) {
  808. const reduceCallback = (sum, value, index) => reducer(resolveUnref(sum), resolveUnref(value), index);
  809. return vueDemi.computed(() => {
  810. const resolved = resolveUnref(list);
  811. return args.length ? resolved.reduce(reduceCallback, resolveUnref(args[0])) : resolved.reduce(reduceCallback);
  812. });
  813. }
  814. function useArraySome(list, fn) {
  815. return vueDemi.computed(() => resolveUnref(list).some((element, index, array) => fn(resolveUnref(element), index, array)));
  816. }
  817. function useCounter(initialValue = 0, options = {}) {
  818. const count = vueDemi.ref(initialValue);
  819. const {
  820. max = Infinity,
  821. min = -Infinity
  822. } = options;
  823. const inc = (delta = 1) => count.value = Math.min(max, count.value + delta);
  824. const dec = (delta = 1) => count.value = Math.max(min, count.value - delta);
  825. const get = () => count.value;
  826. const set = (val) => count.value = Math.max(min, Math.min(max, val));
  827. const reset = (val = initialValue) => {
  828. initialValue = val;
  829. return set(val);
  830. };
  831. return { count, inc, dec, get, set, reset };
  832. }
  833. const REGEX_PARSE = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/;
  834. const REGEX_FORMAT = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g;
  835. const defaultMeridiem = (hours, minutes, isLowercase, hasPeriod) => {
  836. let m = hours < 12 ? "AM" : "PM";
  837. if (hasPeriod)
  838. m = m.split("").reduce((acc, curr) => acc += `${curr}.`, "");
  839. return isLowercase ? m.toLowerCase() : m;
  840. };
  841. const formatDate = (date, formatStr, options = {}) => {
  842. var _a;
  843. const years = date.getFullYear();
  844. const month = date.getMonth();
  845. const days = date.getDate();
  846. const hours = date.getHours();
  847. const minutes = date.getMinutes();
  848. const seconds = date.getSeconds();
  849. const milliseconds = date.getMilliseconds();
  850. const day = date.getDay();
  851. const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem;
  852. const matches = {
  853. YY: () => String(years).slice(-2),
  854. YYYY: () => years,
  855. M: () => month + 1,
  856. MM: () => `${month + 1}`.padStart(2, "0"),
  857. MMM: () => date.toLocaleDateString(options.locales, { month: "short" }),
  858. MMMM: () => date.toLocaleDateString(options.locales, { month: "long" }),
  859. D: () => String(days),
  860. DD: () => `${days}`.padStart(2, "0"),
  861. H: () => String(hours),
  862. HH: () => `${hours}`.padStart(2, "0"),
  863. h: () => `${hours % 12 || 12}`.padStart(1, "0"),
  864. hh: () => `${hours % 12 || 12}`.padStart(2, "0"),
  865. m: () => String(minutes),
  866. mm: () => `${minutes}`.padStart(2, "0"),
  867. s: () => String(seconds),
  868. ss: () => `${seconds}`.padStart(2, "0"),
  869. SSS: () => `${milliseconds}`.padStart(3, "0"),
  870. d: () => day,
  871. dd: () => date.toLocaleDateString(options.locales, { weekday: "narrow" }),
  872. ddd: () => date.toLocaleDateString(options.locales, { weekday: "short" }),
  873. dddd: () => date.toLocaleDateString(options.locales, { weekday: "long" }),
  874. A: () => meridiem(hours, minutes),
  875. AA: () => meridiem(hours, minutes, false, true),
  876. a: () => meridiem(hours, minutes, true),
  877. aa: () => meridiem(hours, minutes, true, true)
  878. };
  879. return formatStr.replace(REGEX_FORMAT, (match, $1) => $1 || matches[match]());
  880. };
  881. const normalizeDate = (date) => {
  882. if (date === null)
  883. return new Date(NaN);
  884. if (date === void 0)
  885. return new Date();
  886. if (date instanceof Date)
  887. return new Date(date);
  888. if (typeof date === "string" && !/Z$/i.test(date)) {
  889. const d = date.match(REGEX_PARSE);
  890. if (d) {
  891. const m = d[2] - 1 || 0;
  892. const ms = (d[7] || "0").substring(0, 3);
  893. return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);
  894. }
  895. }
  896. return new Date(date);
  897. };
  898. function useDateFormat(date, formatStr = "HH:mm:ss", options = {}) {
  899. return vueDemi.computed(() => formatDate(normalizeDate(resolveUnref(date)), resolveUnref(formatStr), options));
  900. }
  901. function useIntervalFn(cb, interval = 1e3, options = {}) {
  902. const {
  903. immediate = true,
  904. immediateCallback = false
  905. } = options;
  906. let timer = null;
  907. const isActive = vueDemi.ref(false);
  908. function clean() {
  909. if (timer) {
  910. clearInterval(timer);
  911. timer = null;
  912. }
  913. }
  914. function pause() {
  915. isActive.value = false;
  916. clean();
  917. }
  918. function resume() {
  919. if (vueDemi.unref(interval) <= 0)
  920. return;
  921. isActive.value = true;
  922. if (immediateCallback)
  923. cb();
  924. clean();
  925. timer = setInterval(cb, resolveUnref(interval));
  926. }
  927. if (immediate && isClient)
  928. resume();
  929. if (vueDemi.isRef(interval) || isFunction(interval)) {
  930. const stopWatch = vueDemi.watch(interval, () => {
  931. if (isActive.value && isClient)
  932. resume();
  933. });
  934. tryOnScopeDispose(stopWatch);
  935. }
  936. tryOnScopeDispose(pause);
  937. return {
  938. isActive,
  939. pause,
  940. resume
  941. };
  942. }
  943. var __defProp$6 = Object.defineProperty;
  944. var __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;
  945. var __hasOwnProp$8 = Object.prototype.hasOwnProperty;
  946. var __propIsEnum$8 = Object.prototype.propertyIsEnumerable;
  947. var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
  948. var __spreadValues$6 = (a, b) => {
  949. for (var prop in b || (b = {}))
  950. if (__hasOwnProp$8.call(b, prop))
  951. __defNormalProp$6(a, prop, b[prop]);
  952. if (__getOwnPropSymbols$8)
  953. for (var prop of __getOwnPropSymbols$8(b)) {
  954. if (__propIsEnum$8.call(b, prop))
  955. __defNormalProp$6(a, prop, b[prop]);
  956. }
  957. return a;
  958. };
  959. function useInterval(interval = 1e3, options = {}) {
  960. const {
  961. controls: exposeControls = false,
  962. immediate = true,
  963. callback
  964. } = options;
  965. const counter = vueDemi.ref(0);
  966. const update = () => counter.value += 1;
  967. const controls = useIntervalFn(callback ? () => {
  968. update();
  969. callback(counter.value);
  970. } : update, interval, { immediate });
  971. if (exposeControls) {
  972. return __spreadValues$6({
  973. counter
  974. }, controls);
  975. } else {
  976. return counter;
  977. }
  978. }
  979. function useLastChanged(source, options = {}) {
  980. var _a;
  981. const ms = vueDemi.ref((_a = options.initialValue) != null ? _a : null);
  982. vueDemi.watch(source, () => ms.value = timestamp(), options);
  983. return ms;
  984. }
  985. function useTimeoutFn(cb, interval, options = {}) {
  986. const {
  987. immediate = true
  988. } = options;
  989. const isPending = vueDemi.ref(false);
  990. let timer = null;
  991. function clear() {
  992. if (timer) {
  993. clearTimeout(timer);
  994. timer = null;
  995. }
  996. }
  997. function stop() {
  998. isPending.value = false;
  999. clear();
  1000. }
  1001. function start(...args) {
  1002. clear();
  1003. isPending.value = true;
  1004. timer = setTimeout(() => {
  1005. isPending.value = false;
  1006. timer = null;
  1007. cb(...args);
  1008. }, resolveUnref(interval));
  1009. }
  1010. if (immediate) {
  1011. isPending.value = true;
  1012. if (isClient)
  1013. start();
  1014. }
  1015. tryOnScopeDispose(stop);
  1016. return {
  1017. isPending,
  1018. start,
  1019. stop
  1020. };
  1021. }
  1022. var __defProp$5 = Object.defineProperty;
  1023. var __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;
  1024. var __hasOwnProp$7 = Object.prototype.hasOwnProperty;
  1025. var __propIsEnum$7 = Object.prototype.propertyIsEnumerable;
  1026. var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
  1027. var __spreadValues$5 = (a, b) => {
  1028. for (var prop in b || (b = {}))
  1029. if (__hasOwnProp$7.call(b, prop))
  1030. __defNormalProp$5(a, prop, b[prop]);
  1031. if (__getOwnPropSymbols$7)
  1032. for (var prop of __getOwnPropSymbols$7(b)) {
  1033. if (__propIsEnum$7.call(b, prop))
  1034. __defNormalProp$5(a, prop, b[prop]);
  1035. }
  1036. return a;
  1037. };
  1038. function useTimeout(interval = 1e3, options = {}) {
  1039. const {
  1040. controls: exposeControls = false,
  1041. callback
  1042. } = options;
  1043. const controls = useTimeoutFn(callback != null ? callback : noop, interval, options);
  1044. const ready = vueDemi.computed(() => !controls.isPending.value);
  1045. if (exposeControls) {
  1046. return __spreadValues$5({
  1047. ready
  1048. }, controls);
  1049. } else {
  1050. return ready;
  1051. }
  1052. }
  1053. function useToNumber(value, options = {}) {
  1054. const {
  1055. method = "parseFloat",
  1056. radix,
  1057. nanToZero
  1058. } = options;
  1059. return vueDemi.computed(() => {
  1060. let resolved = resolveUnref(value);
  1061. if (typeof resolved === "string")
  1062. resolved = Number[method](resolved, radix);
  1063. if (nanToZero && isNaN(resolved))
  1064. resolved = 0;
  1065. return resolved;
  1066. });
  1067. }
  1068. function useToString(value) {
  1069. return vueDemi.computed(() => `${resolveUnref(value)}`);
  1070. }
  1071. function useToggle(initialValue = false, options = {}) {
  1072. const {
  1073. truthyValue = true,
  1074. falsyValue = false
  1075. } = options;
  1076. const valueIsRef = vueDemi.isRef(initialValue);
  1077. const _value = vueDemi.ref(initialValue);
  1078. function toggle(value) {
  1079. if (arguments.length) {
  1080. _value.value = value;
  1081. return _value.value;
  1082. } else {
  1083. const truthy = resolveUnref(truthyValue);
  1084. _value.value = _value.value === truthy ? resolveUnref(falsyValue) : truthy;
  1085. return _value.value;
  1086. }
  1087. }
  1088. if (valueIsRef)
  1089. return toggle;
  1090. else
  1091. return [_value, toggle];
  1092. }
  1093. function watchArray(source, cb, options) {
  1094. let oldList = (options == null ? void 0 : options.immediate) ? [] : [
  1095. ...source instanceof Function ? source() : Array.isArray(source) ? source : vueDemi.unref(source)
  1096. ];
  1097. return vueDemi.watch(source, (newList, _, onCleanup) => {
  1098. const oldListRemains = new Array(oldList.length);
  1099. const added = [];
  1100. for (const obj of newList) {
  1101. let found = false;
  1102. for (let i = 0; i < oldList.length; i++) {
  1103. if (!oldListRemains[i] && obj === oldList[i]) {
  1104. oldListRemains[i] = true;
  1105. found = true;
  1106. break;
  1107. }
  1108. }
  1109. if (!found)
  1110. added.push(obj);
  1111. }
  1112. const removed = oldList.filter((_2, i) => !oldListRemains[i]);
  1113. cb(newList, oldList, added, removed, onCleanup);
  1114. oldList = [...newList];
  1115. }, options);
  1116. }
  1117. var __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;
  1118. var __hasOwnProp$6 = Object.prototype.hasOwnProperty;
  1119. var __propIsEnum$6 = Object.prototype.propertyIsEnumerable;
  1120. var __objRest$5 = (source, exclude) => {
  1121. var target = {};
  1122. for (var prop in source)
  1123. if (__hasOwnProp$6.call(source, prop) && exclude.indexOf(prop) < 0)
  1124. target[prop] = source[prop];
  1125. if (source != null && __getOwnPropSymbols$6)
  1126. for (var prop of __getOwnPropSymbols$6(source)) {
  1127. if (exclude.indexOf(prop) < 0 && __propIsEnum$6.call(source, prop))
  1128. target[prop] = source[prop];
  1129. }
  1130. return target;
  1131. };
  1132. function watchWithFilter(source, cb, options = {}) {
  1133. const _a = options, {
  1134. eventFilter = bypassFilter
  1135. } = _a, watchOptions = __objRest$5(_a, [
  1136. "eventFilter"
  1137. ]);
  1138. return vueDemi.watch(source, createFilterWrapper(eventFilter, cb), watchOptions);
  1139. }
  1140. var __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;
  1141. var __hasOwnProp$5 = Object.prototype.hasOwnProperty;
  1142. var __propIsEnum$5 = Object.prototype.propertyIsEnumerable;
  1143. var __objRest$4 = (source, exclude) => {
  1144. var target = {};
  1145. for (var prop in source)
  1146. if (__hasOwnProp$5.call(source, prop) && exclude.indexOf(prop) < 0)
  1147. target[prop] = source[prop];
  1148. if (source != null && __getOwnPropSymbols$5)
  1149. for (var prop of __getOwnPropSymbols$5(source)) {
  1150. if (exclude.indexOf(prop) < 0 && __propIsEnum$5.call(source, prop))
  1151. target[prop] = source[prop];
  1152. }
  1153. return target;
  1154. };
  1155. function watchAtMost(source, cb, options) {
  1156. const _a = options, {
  1157. count
  1158. } = _a, watchOptions = __objRest$4(_a, [
  1159. "count"
  1160. ]);
  1161. const current = vueDemi.ref(0);
  1162. const stop = watchWithFilter(source, (...args) => {
  1163. current.value += 1;
  1164. if (current.value >= resolveUnref(count))
  1165. vueDemi.nextTick(() => stop());
  1166. cb(...args);
  1167. }, watchOptions);
  1168. return { count: current, stop };
  1169. }
  1170. var __defProp$4 = Object.defineProperty;
  1171. var __defProps$4 = Object.defineProperties;
  1172. var __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;
  1173. var __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;
  1174. var __hasOwnProp$4 = Object.prototype.hasOwnProperty;
  1175. var __propIsEnum$4 = Object.prototype.propertyIsEnumerable;
  1176. var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
  1177. var __spreadValues$4 = (a, b) => {
  1178. for (var prop in b || (b = {}))
  1179. if (__hasOwnProp$4.call(b, prop))
  1180. __defNormalProp$4(a, prop, b[prop]);
  1181. if (__getOwnPropSymbols$4)
  1182. for (var prop of __getOwnPropSymbols$4(b)) {
  1183. if (__propIsEnum$4.call(b, prop))
  1184. __defNormalProp$4(a, prop, b[prop]);
  1185. }
  1186. return a;
  1187. };
  1188. var __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));
  1189. var __objRest$3 = (source, exclude) => {
  1190. var target = {};
  1191. for (var prop in source)
  1192. if (__hasOwnProp$4.call(source, prop) && exclude.indexOf(prop) < 0)
  1193. target[prop] = source[prop];
  1194. if (source != null && __getOwnPropSymbols$4)
  1195. for (var prop of __getOwnPropSymbols$4(source)) {
  1196. if (exclude.indexOf(prop) < 0 && __propIsEnum$4.call(source, prop))
  1197. target[prop] = source[prop];
  1198. }
  1199. return target;
  1200. };
  1201. function watchDebounced(source, cb, options = {}) {
  1202. const _a = options, {
  1203. debounce = 0,
  1204. maxWait = void 0
  1205. } = _a, watchOptions = __objRest$3(_a, [
  1206. "debounce",
  1207. "maxWait"
  1208. ]);
  1209. return watchWithFilter(source, cb, __spreadProps$4(__spreadValues$4({}, watchOptions), {
  1210. eventFilter: debounceFilter(debounce, { maxWait })
  1211. }));
  1212. }
  1213. var __defProp$3 = Object.defineProperty;
  1214. var __defProps$3 = Object.defineProperties;
  1215. var __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;
  1216. var __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;
  1217. var __hasOwnProp$3 = Object.prototype.hasOwnProperty;
  1218. var __propIsEnum$3 = Object.prototype.propertyIsEnumerable;
  1219. var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
  1220. var __spreadValues$3 = (a, b) => {
  1221. for (var prop in b || (b = {}))
  1222. if (__hasOwnProp$3.call(b, prop))
  1223. __defNormalProp$3(a, prop, b[prop]);
  1224. if (__getOwnPropSymbols$3)
  1225. for (var prop of __getOwnPropSymbols$3(b)) {
  1226. if (__propIsEnum$3.call(b, prop))
  1227. __defNormalProp$3(a, prop, b[prop]);
  1228. }
  1229. return a;
  1230. };
  1231. var __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));
  1232. var __objRest$2 = (source, exclude) => {
  1233. var target = {};
  1234. for (var prop in source)
  1235. if (__hasOwnProp$3.call(source, prop) && exclude.indexOf(prop) < 0)
  1236. target[prop] = source[prop];
  1237. if (source != null && __getOwnPropSymbols$3)
  1238. for (var prop of __getOwnPropSymbols$3(source)) {
  1239. if (exclude.indexOf(prop) < 0 && __propIsEnum$3.call(source, prop))
  1240. target[prop] = source[prop];
  1241. }
  1242. return target;
  1243. };
  1244. function watchIgnorable(source, cb, options = {}) {
  1245. const _a = options, {
  1246. eventFilter = bypassFilter
  1247. } = _a, watchOptions = __objRest$2(_a, [
  1248. "eventFilter"
  1249. ]);
  1250. const filteredCb = createFilterWrapper(eventFilter, cb);
  1251. let ignoreUpdates;
  1252. let ignorePrevAsyncUpdates;
  1253. let stop;
  1254. if (watchOptions.flush === "sync") {
  1255. const ignore = vueDemi.ref(false);
  1256. ignorePrevAsyncUpdates = () => {
  1257. };
  1258. ignoreUpdates = (updater) => {
  1259. ignore.value = true;
  1260. updater();
  1261. ignore.value = false;
  1262. };
  1263. stop = vueDemi.watch(source, (...args) => {
  1264. if (!ignore.value)
  1265. filteredCb(...args);
  1266. }, watchOptions);
  1267. } else {
  1268. const disposables = [];
  1269. const ignoreCounter = vueDemi.ref(0);
  1270. const syncCounter = vueDemi.ref(0);
  1271. ignorePrevAsyncUpdates = () => {
  1272. ignoreCounter.value = syncCounter.value;
  1273. };
  1274. disposables.push(vueDemi.watch(source, () => {
  1275. syncCounter.value++;
  1276. }, __spreadProps$3(__spreadValues$3({}, watchOptions), { flush: "sync" })));
  1277. ignoreUpdates = (updater) => {
  1278. const syncCounterPrev = syncCounter.value;
  1279. updater();
  1280. ignoreCounter.value += syncCounter.value - syncCounterPrev;
  1281. };
  1282. disposables.push(vueDemi.watch(source, (...args) => {
  1283. const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value;
  1284. ignoreCounter.value = 0;
  1285. syncCounter.value = 0;
  1286. if (ignore)
  1287. return;
  1288. filteredCb(...args);
  1289. }, watchOptions));
  1290. stop = () => {
  1291. disposables.forEach((fn) => fn());
  1292. };
  1293. }
  1294. return { stop, ignoreUpdates, ignorePrevAsyncUpdates };
  1295. }
  1296. function watchOnce(source, cb, options) {
  1297. const stop = vueDemi.watch(source, (...args) => {
  1298. vueDemi.nextTick(() => stop());
  1299. return cb(...args);
  1300. }, options);
  1301. }
  1302. var __defProp$2 = Object.defineProperty;
  1303. var __defProps$2 = Object.defineProperties;
  1304. var __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;
  1305. var __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;
  1306. var __hasOwnProp$2 = Object.prototype.hasOwnProperty;
  1307. var __propIsEnum$2 = Object.prototype.propertyIsEnumerable;
  1308. var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
  1309. var __spreadValues$2 = (a, b) => {
  1310. for (var prop in b || (b = {}))
  1311. if (__hasOwnProp$2.call(b, prop))
  1312. __defNormalProp$2(a, prop, b[prop]);
  1313. if (__getOwnPropSymbols$2)
  1314. for (var prop of __getOwnPropSymbols$2(b)) {
  1315. if (__propIsEnum$2.call(b, prop))
  1316. __defNormalProp$2(a, prop, b[prop]);
  1317. }
  1318. return a;
  1319. };
  1320. var __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));
  1321. var __objRest$1 = (source, exclude) => {
  1322. var target = {};
  1323. for (var prop in source)
  1324. if (__hasOwnProp$2.call(source, prop) && exclude.indexOf(prop) < 0)
  1325. target[prop] = source[prop];
  1326. if (source != null && __getOwnPropSymbols$2)
  1327. for (var prop of __getOwnPropSymbols$2(source)) {
  1328. if (exclude.indexOf(prop) < 0 && __propIsEnum$2.call(source, prop))
  1329. target[prop] = source[prop];
  1330. }
  1331. return target;
  1332. };
  1333. function watchPausable(source, cb, options = {}) {
  1334. const _a = options, {
  1335. eventFilter: filter
  1336. } = _a, watchOptions = __objRest$1(_a, [
  1337. "eventFilter"
  1338. ]);
  1339. const { eventFilter, pause, resume, isActive } = pausableFilter(filter);
  1340. const stop = watchWithFilter(source, cb, __spreadProps$2(__spreadValues$2({}, watchOptions), {
  1341. eventFilter
  1342. }));
  1343. return { stop, pause, resume, isActive };
  1344. }
  1345. var __defProp$1 = Object.defineProperty;
  1346. var __defProps$1 = Object.defineProperties;
  1347. var __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;
  1348. var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
  1349. var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
  1350. var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
  1351. var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
  1352. var __spreadValues$1 = (a, b) => {
  1353. for (var prop in b || (b = {}))
  1354. if (__hasOwnProp$1.call(b, prop))
  1355. __defNormalProp$1(a, prop, b[prop]);
  1356. if (__getOwnPropSymbols$1)
  1357. for (var prop of __getOwnPropSymbols$1(b)) {
  1358. if (__propIsEnum$1.call(b, prop))
  1359. __defNormalProp$1(a, prop, b[prop]);
  1360. }
  1361. return a;
  1362. };
  1363. var __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
  1364. var __objRest = (source, exclude) => {
  1365. var target = {};
  1366. for (var prop in source)
  1367. if (__hasOwnProp$1.call(source, prop) && exclude.indexOf(prop) < 0)
  1368. target[prop] = source[prop];
  1369. if (source != null && __getOwnPropSymbols$1)
  1370. for (var prop of __getOwnPropSymbols$1(source)) {
  1371. if (exclude.indexOf(prop) < 0 && __propIsEnum$1.call(source, prop))
  1372. target[prop] = source[prop];
  1373. }
  1374. return target;
  1375. };
  1376. function watchThrottled(source, cb, options = {}) {
  1377. const _a = options, {
  1378. throttle = 0,
  1379. trailing = true,
  1380. leading = true
  1381. } = _a, watchOptions = __objRest(_a, [
  1382. "throttle",
  1383. "trailing",
  1384. "leading"
  1385. ]);
  1386. return watchWithFilter(source, cb, __spreadProps$1(__spreadValues$1({}, watchOptions), {
  1387. eventFilter: throttleFilter(throttle, trailing, leading)
  1388. }));
  1389. }
  1390. var __defProp = Object.defineProperty;
  1391. var __defProps = Object.defineProperties;
  1392. var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
  1393. var __getOwnPropSymbols = Object.getOwnPropertySymbols;
  1394. var __hasOwnProp = Object.prototype.hasOwnProperty;
  1395. var __propIsEnum = Object.prototype.propertyIsEnumerable;
  1396. var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
  1397. var __spreadValues = (a, b) => {
  1398. for (var prop in b || (b = {}))
  1399. if (__hasOwnProp.call(b, prop))
  1400. __defNormalProp(a, prop, b[prop]);
  1401. if (__getOwnPropSymbols)
  1402. for (var prop of __getOwnPropSymbols(b)) {
  1403. if (__propIsEnum.call(b, prop))
  1404. __defNormalProp(a, prop, b[prop]);
  1405. }
  1406. return a;
  1407. };
  1408. var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
  1409. function watchTriggerable(source, cb, options = {}) {
  1410. let cleanupFn;
  1411. function onEffect() {
  1412. if (!cleanupFn)
  1413. return;
  1414. const fn = cleanupFn;
  1415. cleanupFn = void 0;
  1416. fn();
  1417. }
  1418. function onCleanup(callback) {
  1419. cleanupFn = callback;
  1420. }
  1421. const _cb = (value, oldValue) => {
  1422. onEffect();
  1423. return cb(value, oldValue, onCleanup);
  1424. };
  1425. const res = watchIgnorable(source, _cb, options);
  1426. const { ignoreUpdates } = res;
  1427. const trigger = () => {
  1428. let res2;
  1429. ignoreUpdates(() => {
  1430. res2 = _cb(getWatchSources(source), getOldValue(source));
  1431. });
  1432. return res2;
  1433. };
  1434. return __spreadProps(__spreadValues({}, res), {
  1435. trigger
  1436. });
  1437. }
  1438. function getWatchSources(sources) {
  1439. if (vueDemi.isReactive(sources))
  1440. return sources;
  1441. if (Array.isArray(sources))
  1442. return sources.map((item) => getOneWatchSource(item));
  1443. return getOneWatchSource(sources);
  1444. }
  1445. function getOneWatchSource(source) {
  1446. return typeof source === "function" ? source() : vueDemi.unref(source);
  1447. }
  1448. function getOldValue(source) {
  1449. return Array.isArray(source) ? source.map(() => void 0) : void 0;
  1450. }
  1451. function whenever(source, cb, options) {
  1452. return vueDemi.watch(source, (v, ov, onInvalidate) => {
  1453. if (v)
  1454. cb(v, ov, onInvalidate);
  1455. }, options);
  1456. }
  1457. exports.__onlyVue27Plus = __onlyVue27Plus;
  1458. exports.__onlyVue3 = __onlyVue3;
  1459. exports.assert = assert;
  1460. exports.autoResetRef = refAutoReset;
  1461. exports.bypassFilter = bypassFilter;
  1462. exports.clamp = clamp;
  1463. exports.computedEager = computedEager;
  1464. exports.computedWithControl = computedWithControl;
  1465. exports.containsProp = containsProp;
  1466. exports.controlledComputed = computedWithControl;
  1467. exports.controlledRef = controlledRef;
  1468. exports.createEventHook = createEventHook;
  1469. exports.createFilterWrapper = createFilterWrapper;
  1470. exports.createGlobalState = createGlobalState;
  1471. exports.createInjectionState = createInjectionState;
  1472. exports.createReactiveFn = reactify;
  1473. exports.createSharedComposable = createSharedComposable;
  1474. exports.createSingletonPromise = createSingletonPromise;
  1475. exports.debounceFilter = debounceFilter;
  1476. exports.debouncedRef = refDebounced;
  1477. exports.debouncedWatch = watchDebounced;
  1478. exports.directiveHooks = directiveHooks;
  1479. exports.eagerComputed = computedEager;
  1480. exports.extendRef = extendRef;
  1481. exports.formatDate = formatDate;
  1482. exports.get = get;
  1483. exports.hasOwn = hasOwn;
  1484. exports.identity = identity;
  1485. exports.ignorableWatch = watchIgnorable;
  1486. exports.increaseWithUnit = increaseWithUnit;
  1487. exports.invoke = invoke;
  1488. exports.isBoolean = isBoolean;
  1489. exports.isClient = isClient;
  1490. exports.isDef = isDef;
  1491. exports.isDefined = isDefined;
  1492. exports.isFunction = isFunction;
  1493. exports.isIOS = isIOS;
  1494. exports.isNumber = isNumber;
  1495. exports.isObject = isObject;
  1496. exports.isString = isString;
  1497. exports.isWindow = isWindow;
  1498. exports.makeDestructurable = makeDestructurable;
  1499. exports.noop = noop;
  1500. exports.normalizeDate = normalizeDate;
  1501. exports.now = now;
  1502. exports.objectPick = objectPick;
  1503. exports.pausableFilter = pausableFilter;
  1504. exports.pausableWatch = watchPausable;
  1505. exports.promiseTimeout = promiseTimeout;
  1506. exports.rand = rand;
  1507. exports.reactify = reactify;
  1508. exports.reactifyObject = reactifyObject;
  1509. exports.reactiveComputed = reactiveComputed;
  1510. exports.reactiveOmit = reactiveOmit;
  1511. exports.reactivePick = reactivePick;
  1512. exports.refAutoReset = refAutoReset;
  1513. exports.refDebounced = refDebounced;
  1514. exports.refDefault = refDefault;
  1515. exports.refThrottled = refThrottled;
  1516. exports.refWithControl = refWithControl;
  1517. exports.resolveRef = resolveRef;
  1518. exports.resolveUnref = resolveUnref;
  1519. exports.set = set;
  1520. exports.syncRef = syncRef;
  1521. exports.syncRefs = syncRefs;
  1522. exports.throttleFilter = throttleFilter;
  1523. exports.throttledRef = refThrottled;
  1524. exports.throttledWatch = watchThrottled;
  1525. exports.timestamp = timestamp;
  1526. exports.toReactive = toReactive;
  1527. exports.toRefs = toRefs;
  1528. exports.tryOnBeforeMount = tryOnBeforeMount;
  1529. exports.tryOnBeforeUnmount = tryOnBeforeUnmount;
  1530. exports.tryOnMounted = tryOnMounted;
  1531. exports.tryOnScopeDispose = tryOnScopeDispose;
  1532. exports.tryOnUnmounted = tryOnUnmounted;
  1533. exports.until = until;
  1534. exports.useArrayEvery = useArrayEvery;
  1535. exports.useArrayFilter = useArrayFilter;
  1536. exports.useArrayFind = useArrayFind;
  1537. exports.useArrayFindIndex = useArrayFindIndex;
  1538. exports.useArrayJoin = useArrayJoin;
  1539. exports.useArrayMap = useArrayMap;
  1540. exports.useArrayReduce = useArrayReduce;
  1541. exports.useArraySome = useArraySome;
  1542. exports.useCounter = useCounter;
  1543. exports.useDateFormat = useDateFormat;
  1544. exports.useDebounce = refDebounced;
  1545. exports.useDebounceFn = useDebounceFn;
  1546. exports.useInterval = useInterval;
  1547. exports.useIntervalFn = useIntervalFn;
  1548. exports.useLastChanged = useLastChanged;
  1549. exports.useThrottle = refThrottled;
  1550. exports.useThrottleFn = useThrottleFn;
  1551. exports.useTimeout = useTimeout;
  1552. exports.useTimeoutFn = useTimeoutFn;
  1553. exports.useToNumber = useToNumber;
  1554. exports.useToString = useToString;
  1555. exports.useToggle = useToggle;
  1556. exports.watchArray = watchArray;
  1557. exports.watchAtMost = watchAtMost;
  1558. exports.watchDebounced = watchDebounced;
  1559. exports.watchIgnorable = watchIgnorable;
  1560. exports.watchOnce = watchOnce;
  1561. exports.watchPausable = watchPausable;
  1562. exports.watchThrottled = watchThrottled;
  1563. exports.watchTriggerable = watchTriggerable;
  1564. exports.watchWithFilter = watchWithFilter;
  1565. exports.whenever = whenever;