@cloudcome/utils-vue 1.5.0 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const VERSION = "1.4.0";
3
+ const VERSION = "1.6.0";
4
4
  exports.VERSION = VERSION;
5
5
  //# sourceMappingURL=index.cjs.map
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- const VERSION = "1.4.0";
1
+ const VERSION = "1.6.0";
2
2
  export {
3
3
  VERSION
4
4
  };
package/dist/lazy.cjs ADDED
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const vue = require("vue");
4
+ function useLazyValue(boolean, delay) {
5
+ const scope = vue.effectScope();
6
+ const lazyBoolean = vue.ref(boolean.value);
7
+ let changedAt = 0;
8
+ let t;
9
+ scope.run(() => {
10
+ vue.watch(boolean, (value) => {
11
+ const delayValue = vue.toValue(delay) || 100;
12
+ clearTimeout(t);
13
+ if (changedAt > 0 && Date.now() - changedAt > delayValue) {
14
+ lazyBoolean.value = value;
15
+ } else {
16
+ t = setTimeout(() => {
17
+ lazyBoolean.value = value;
18
+ }, delayValue);
19
+ }
20
+ changedAt = Date.now();
21
+ });
22
+ });
23
+ vue.onScopeDispose(() => {
24
+ clearTimeout(t);
25
+ scope.stop();
26
+ });
27
+ return vue.computed(() => {
28
+ return lazyBoolean.value;
29
+ });
30
+ }
31
+ exports.useLazyValue = useLazyValue;
32
+ //# sourceMappingURL=lazy.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy.cjs","sources":["../src/lazy.ts"],"sourcesContent":["import { type Ref, computed, effectScope, onScopeDispose, ref, toValue, watch } from 'vue';\n\n/**\n * 创建一个延迟更新的响应式值\n *\n * 该函数创建一个基于原始响应式值的延迟更新值,当原始值发生变化时,\n * 延迟值会在指定的延迟时间后更新。如果在延迟期间原始值再次变化,\n * 则会重新计算延迟时间。\n *\n * @param boolean 原始响应式值,类型为Ref<T>\n * @param delay 延迟时间,可以是数字或响应式数字,默认为100毫秒\n * @returns 返回一个计算属性,其值会在延迟后更新为原始值\n */\nexport function useLazyValue<T>(boolean: Ref<T>, delay?: number | Ref<number>) {\n const scope = effectScope();\n const lazyBoolean = ref(boolean.value);\n let changedAt = 0;\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n let t: any;\n\n scope.run(() => {\n watch(boolean, (value) => {\n const delayValue = toValue(delay) || 100;\n clearTimeout(t);\n\n if (changedAt > 0 && Date.now() - changedAt > delayValue) {\n lazyBoolean.value = value;\n } else {\n t = setTimeout(() => {\n lazyBoolean.value = value;\n }, delayValue);\n }\n\n changedAt = Date.now();\n });\n });\n\n onScopeDispose(() => {\n clearTimeout(t);\n scope.stop();\n });\n\n return computed<T>(() => {\n return lazyBoolean.value;\n });\n}\n"],"names":["effectScope","ref","watch","toValue","onScopeDispose","computed"],"mappings":";;;AAagB,SAAA,aAAgB,SAAiB,OAA8B;AAC7E,QAAM,QAAQA,IAAAA,YAAY;AACpB,QAAA,cAAcC,IAAAA,IAAI,QAAQ,KAAK;AACrC,MAAI,YAAY;AAEZ,MAAA;AAEJ,QAAM,IAAI,MAAM;AACRC,cAAA,SAAS,CAAC,UAAU;AAClB,YAAA,aAAaC,IAAAA,QAAQ,KAAK,KAAK;AACrC,mBAAa,CAAC;AAEd,UAAI,YAAY,KAAK,KAAK,IAAI,IAAI,YAAY,YAAY;AACxD,oBAAY,QAAQ;AAAA,MAAA,OACf;AACL,YAAI,WAAW,MAAM;AACnB,sBAAY,QAAQ;AAAA,WACnB,UAAU;AAAA,MAAA;AAGf,kBAAY,KAAK,IAAI;AAAA,IAAA,CACtB;AAAA,EAAA,CACF;AAEDC,MAAAA,eAAe,MAAM;AACnB,iBAAa,CAAC;AACd,UAAM,KAAK;AAAA,EAAA,CACZ;AAED,SAAOC,aAAY,MAAM;AACvB,WAAO,YAAY;AAAA,EAAA,CACpB;AACH;;"}
package/dist/lazy.d.ts ADDED
@@ -0,0 +1,13 @@
1
+ import { Ref } from 'vue';
2
+ /**
3
+ * 创建一个延迟更新的响应式值
4
+ *
5
+ * 该函数创建一个基于原始响应式值的延迟更新值,当原始值发生变化时,
6
+ * 延迟值会在指定的延迟时间后更新。如果在延迟期间原始值再次变化,
7
+ * 则会重新计算延迟时间。
8
+ *
9
+ * @param boolean 原始响应式值,类型为Ref<T>
10
+ * @param delay 延迟时间,可以是数字或响应式数字,默认为100毫秒
11
+ * @returns 返回一个计算属性,其值会在延迟后更新为原始值
12
+ */
13
+ export declare function useLazyValue<T>(boolean: Ref<T>, delay?: number | Ref<number>): import('vue').ComputedRef<T>;
package/dist/lazy.mjs ADDED
@@ -0,0 +1,32 @@
1
+ import { effectScope, ref, watch, toValue, onScopeDispose, computed } from "vue";
2
+ function useLazyValue(boolean, delay) {
3
+ const scope = effectScope();
4
+ const lazyBoolean = ref(boolean.value);
5
+ let changedAt = 0;
6
+ let t;
7
+ scope.run(() => {
8
+ watch(boolean, (value) => {
9
+ const delayValue = toValue(delay) || 100;
10
+ clearTimeout(t);
11
+ if (changedAt > 0 && Date.now() - changedAt > delayValue) {
12
+ lazyBoolean.value = value;
13
+ } else {
14
+ t = setTimeout(() => {
15
+ lazyBoolean.value = value;
16
+ }, delayValue);
17
+ }
18
+ changedAt = Date.now();
19
+ });
20
+ });
21
+ onScopeDispose(() => {
22
+ clearTimeout(t);
23
+ scope.stop();
24
+ });
25
+ return computed(() => {
26
+ return lazyBoolean.value;
27
+ });
28
+ }
29
+ export {
30
+ useLazyValue
31
+ };
32
+ //# sourceMappingURL=lazy.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy.mjs","sources":["../src/lazy.ts"],"sourcesContent":["import { type Ref, computed, effectScope, onScopeDispose, ref, toValue, watch } from 'vue';\n\n/**\n * 创建一个延迟更新的响应式值\n *\n * 该函数创建一个基于原始响应式值的延迟更新值,当原始值发生变化时,\n * 延迟值会在指定的延迟时间后更新。如果在延迟期间原始值再次变化,\n * 则会重新计算延迟时间。\n *\n * @param boolean 原始响应式值,类型为Ref<T>\n * @param delay 延迟时间,可以是数字或响应式数字,默认为100毫秒\n * @returns 返回一个计算属性,其值会在延迟后更新为原始值\n */\nexport function useLazyValue<T>(boolean: Ref<T>, delay?: number | Ref<number>) {\n const scope = effectScope();\n const lazyBoolean = ref(boolean.value);\n let changedAt = 0;\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n let t: any;\n\n scope.run(() => {\n watch(boolean, (value) => {\n const delayValue = toValue(delay) || 100;\n clearTimeout(t);\n\n if (changedAt > 0 && Date.now() - changedAt > delayValue) {\n lazyBoolean.value = value;\n } else {\n t = setTimeout(() => {\n lazyBoolean.value = value;\n }, delayValue);\n }\n\n changedAt = Date.now();\n });\n });\n\n onScopeDispose(() => {\n clearTimeout(t);\n scope.stop();\n });\n\n return computed<T>(() => {\n return lazyBoolean.value;\n });\n}\n"],"names":[],"mappings":";AAagB,SAAA,aAAgB,SAAiB,OAA8B;AAC7E,QAAM,QAAQ,YAAY;AACpB,QAAA,cAAc,IAAI,QAAQ,KAAK;AACrC,MAAI,YAAY;AAEZ,MAAA;AAEJ,QAAM,IAAI,MAAM;AACR,UAAA,SAAS,CAAC,UAAU;AAClB,YAAA,aAAa,QAAQ,KAAK,KAAK;AACrC,mBAAa,CAAC;AAEd,UAAI,YAAY,KAAK,KAAK,IAAI,IAAI,YAAY,YAAY;AACxD,oBAAY,QAAQ;AAAA,MAAA,OACf;AACL,YAAI,WAAW,MAAM;AACnB,sBAAY,QAAQ;AAAA,WACnB,UAAU;AAAA,MAAA;AAGf,kBAAY,KAAK,IAAI;AAAA,IAAA,CACtB;AAAA,EAAA,CACF;AAED,iBAAe,MAAM;AACnB,iBAAa,CAAC;AACd,UAAM,KAAK;AAAA,EAAA,CACZ;AAED,SAAO,SAAY,MAAM;AACvB,WAAO,YAAY;AAAA,EAAA,CACpB;AACH;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudcome/utils-vue",
3
- "version": "1.5.0",
3
+ "version": "1.6.1",
4
4
  "description": "cloudcome utils for vue",
5
5
  "engines": {
6
6
  "node": ">=22"
@@ -29,6 +29,11 @@
29
29
  "import": "./dist/event.mjs",
30
30
  "require": "./dist/event.cjs"
31
31
  },
32
+ "./lazy": {
33
+ "types": "./dist/lazy.d.ts",
34
+ "import": "./dist/lazy.mjs",
35
+ "require": "./dist/lazy.cjs"
36
+ },
32
37
  "./page": {
33
38
  "types": "./dist/page.d.ts",
34
39
  "import": "./dist/page.mjs",
@@ -51,6 +56,9 @@
51
56
  "event": [
52
57
  "./dist/event.d.ts"
53
58
  ],
59
+ "lazy": [
60
+ "./dist/lazy.d.ts"
61
+ ],
54
62
  "page": [
55
63
  "./dist/page.d.ts"
56
64
  ],
@@ -66,7 +74,7 @@
66
74
  "dist"
67
75
  ],
68
76
  "dependencies": {
69
- "@cloudcome/utils-core": "~1.2.1",
77
+ "@cloudcome/utils-core": "~1.2.2",
70
78
  "vue": "^3.5.13",
71
79
  "vue-component-type-helpers": "^2.2.10"
72
80
  },