annil 1.7.8 → 1.8.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.
Files changed (69) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/api/DefineComponent/normalizeOptions/__throttleDebounce__FieldCheck.d.ts +3 -0
  3. package/dist/api/DefineComponent/normalizeOptions/__throttleDebounce__FieldCheck.js +26 -0
  4. package/dist/api/DefineComponent/normalizeOptions/__throttleDebounce__FieldCheck.js.map +1 -0
  5. package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/computedUpdater.js +4 -4
  6. package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/computedUpdater.js.map +1 -1
  7. package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/data-tracer.d.ts +1 -1
  8. package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/data-tracer.js +7 -12
  9. package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/data-tracer.js.map +1 -1
  10. package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/getPropertiesValue.d.ts +1 -1
  11. package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/getPropertiesValue.js +1 -2
  12. package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/getPropertiesValue.js.map +1 -1
  13. package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/initComputedAndGetCache.js +2 -2
  14. package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/initComputedAndGetCache.js.map +1 -1
  15. package/dist/api/DefineComponent/normalizeOptions/customEventsHandle.d.ts +1 -1
  16. package/dist/api/DefineComponent/normalizeOptions/customEventsHandle.js +17 -1
  17. package/dist/api/DefineComponent/normalizeOptions/customEventsHandle.js.map +1 -1
  18. package/dist/api/DefineComponent/normalizeOptions/index.d.ts +2 -0
  19. package/dist/api/DefineComponent/normalizeOptions/index.js +8 -1
  20. package/dist/api/DefineComponent/normalizeOptions/index.js.map +1 -1
  21. package/dist/api/DefineComponent/normalizeOptions/internalFieldProtection.js +1 -1
  22. package/dist/api/DefineComponent/normalizeOptions/internalFieldProtection.js.map +1 -1
  23. package/dist/api/DefineComponent/normalizeOptions/rootComponentOptionHandle.js +2 -1
  24. package/dist/api/DefineComponent/normalizeOptions/rootComponentOptionHandle.js.map +1 -1
  25. package/dist/api/DefineComponent/normalizeOptions/sameFuncOptionsHandle.js +2 -2
  26. package/dist/api/DefineComponent/normalizeOptions/sameFuncOptionsHandle.js.map +1 -1
  27. package/dist/api/RootComponent/CustomEvents/CustomEventConstraint.d.ts +22 -0
  28. package/dist/api/RootComponent/CustomEvents/GetCustomEventDoc.d.ts +3 -2
  29. package/dist/behaviors/BbeforeCreated.js +1 -1
  30. package/dist/behaviors/BbeforeCreated.js.map +1 -1
  31. package/dist/behaviors/BthrottleDebounce.d.ts +1 -0
  32. package/dist/behaviors/BthrottleDebounce.js +27 -0
  33. package/dist/behaviors/BthrottleDebounce.js.map +1 -0
  34. package/dist/index.d.ts +1 -0
  35. package/dist/index.js +1 -0
  36. package/dist/index.js.map +1 -1
  37. package/dist/utils/_utils.d.ts +7 -0
  38. package/dist/utils/_utils.js +8 -0
  39. package/dist/utils/_utils.js.map +1 -0
  40. package/dist/utils/debounce.d.ts +8 -0
  41. package/dist/utils/debounce.js +18 -0
  42. package/dist/utils/debounce.js.map +1 -0
  43. package/dist/utils/deepEqual.d.ts +1 -7
  44. package/dist/utils/deepEqual.js +18 -58
  45. package/dist/utils/deepEqual.js.map +1 -1
  46. package/dist/utils/throttle.d.ts +10 -0
  47. package/dist/utils/throttle.js +18 -0
  48. package/dist/utils/throttle.js.map +1 -0
  49. package/package.json +5 -8
  50. package/src/api/DefineComponent/normalizeOptions/__throttleDebounce__FieldCheck.ts +27 -0
  51. package/src/api/DefineComponent/normalizeOptions/computedWatchHandle/computedUpdater.ts +4 -5
  52. package/src/api/DefineComponent/normalizeOptions/computedWatchHandle/data-tracer.ts +7 -13
  53. package/src/api/DefineComponent/normalizeOptions/computedWatchHandle/getPropertiesValue.ts +2 -4
  54. package/src/api/DefineComponent/normalizeOptions/computedWatchHandle/initComputedAndGetCache.ts +2 -2
  55. package/src/api/DefineComponent/normalizeOptions/customEventsHandle.ts +24 -3
  56. package/src/api/DefineComponent/normalizeOptions/index.ts +11 -2
  57. package/src/api/DefineComponent/normalizeOptions/internalFieldProtection.ts +1 -1
  58. package/src/api/DefineComponent/normalizeOptions/rootComponentOptionHandle.ts +2 -1
  59. package/src/api/DefineComponent/normalizeOptions/sameFuncOptionsHandle.ts +2 -2
  60. package/src/api/RootComponent/Computed/test/error.test.ts +13 -0
  61. package/src/api/RootComponent/CustomEvents/CustomEventConstraint.ts +22 -0
  62. package/src/api/RootComponent/CustomEvents/GetCustomEventDoc.ts +4 -2
  63. package/src/behaviors/BbeforeCreated.ts +1 -1
  64. package/src/behaviors/BthrottleDebounce.ts +28 -0
  65. package/src/index.ts +2 -0
  66. package/src/utils/_utils.ts +8 -0
  67. package/src/utils/debounce.ts +19 -0
  68. package/src/utils/deepEqual.ts +19 -65
  69. package/src/utils/throttle.ts +23 -0
package/CHANGELOG.md CHANGED
@@ -4,6 +4,20 @@
4
4
 
5
5
  * 解决DetailedType不接收接口类型的错误 ([ae8acbf](https://github.com/missannil/annil/commit/ae8acbfc2e62f99db565c448ad9253aa549e78bb))
6
6
 
7
+ ## [1.8.1](https://github.com/missannil/annil/compare/v1.8.0...v1.8.1) (2024-09-07)
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * 1.8.0发布问题,加入throttleDebounce测试用例,优化computed,提高覆盖率,依赖优化 ([67cfc49](https://github.com/missannil/annil/commit/67cfc4909acce7f5d4fe2d58b2d3b1d54b81163e))
13
+
14
+ ## [1.8.0](https://github.com/missannil/annil/compare/v1.7.8...v1.8.0) (2024-09-06)
15
+
16
+
17
+ ### Features
18
+
19
+ * customEvents字段增加debounce和throttle字段,配置后自定义函数变为节流或防抖函数 ([1599797](https://github.com/missannil/annil/commit/15997975291ecbf484dd22e50974a213ea5c9f35))
20
+
7
21
  ## [1.7.8](https://github.com/missannil/annil/compare/v1.7.7...v1.7.8) (2024-08-22)
8
22
 
9
23
 
@@ -0,0 +1,3 @@
1
+ import type { RootComponentTrueOptions } from "../../RootComponent";
2
+ import type { SubComponentType } from "../../SubComponent/SubComponentType";
3
+ export declare function __throttleDebounce__FieldCheck(config: RootComponentTrueOptions | SubComponentType[]): void;
@@ -0,0 +1,26 @@
1
+ export function __throttleDebounce__FieldCheck(config) {
2
+ if (Array.isArray(config)) {
3
+ for (const subComponent of config) {
4
+ __throttleDebounce__FieldCheck(subComponent);
5
+ }
6
+ }
7
+ else {
8
+ const dataKeys = [];
9
+ if (config.data) {
10
+ dataKeys.push(...Object.keys(config.data));
11
+ }
12
+ if (config.computed) {
13
+ dataKeys.push(...Object.keys(config.computed));
14
+ }
15
+ if (config.properties) {
16
+ dataKeys.push(...Object.keys(config.properties));
17
+ }
18
+ if (config.store) {
19
+ dataKeys.push(...Object.keys(config.store));
20
+ }
21
+ if (dataKeys.includes("__throttleDebounce__")) {
22
+ throw Error(`__throttleDebounce__字段已被内部字段占用`);
23
+ }
24
+ }
25
+ }
26
+ //# sourceMappingURL=__throttleDebounce__FieldCheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"__throttleDebounce__FieldCheck.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/normalizeOptions/__throttleDebounce__FieldCheck.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,8BAA8B,CAAC,MAAqD;IAClG,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,KAAK,MAAM,YAAY,IAAI,MAAM,EAAE,CAAC;YAClC,8BAA8B,CAAC,YAAY,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;YAC9C,MAAM,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { deepEqual } from "../../../../utils/deepEqual";
2
- import { deepProxy, getProxyOriginalValue } from "./data-tracer";
2
+ import { deepProxy, getOriginalValue } from "./data-tracer";
3
3
  import { removeSubDependences } from "./dependencesOptimize";
4
4
  import { getPathsValue } from "./getPathsValue";
5
5
  export function computedUpdater(isUpdated = false) {
@@ -9,7 +9,7 @@ export function computedUpdater(isUpdated = false) {
9
9
  for (const dep of itemCache.dependences) {
10
10
  // getPathsValue返回的是数组
11
11
  const curVal = getPathsValue(this.data, dep.paths.join("."))[0];
12
- // 检查依赖是否更新
12
+ // 检查依赖是否改变了
13
13
  if (!deepEqual(curVal, dep.val)) {
14
14
  changed = true;
15
15
  break;
@@ -18,9 +18,9 @@ export function computedUpdater(isUpdated = false) {
18
18
  if (changed) {
19
19
  const newDependences = [];
20
20
  const newValue = itemCache.method.call({ data: deepProxy(this.data, newDependences) });
21
- // 更新值不会立即再次进入**函数,而是当前**函数运行完毕后触发**函数,
21
+ // 更新值不会立即再次进入**函数,而是当前**函数运行完毕后触发**函数,\
22
22
  this.setData({
23
- [key]: getProxyOriginalValue(newValue),
23
+ [key]: getOriginalValue(newValue),
24
24
  });
25
25
  isUpdated = true;
26
26
  // 更新依赖(优化)
@@ -1 +1 @@
1
- {"version":3,"file":"computedUpdater.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/computedWatchHandle/computedUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,MAAM,UAAU,eAAe,CAAiB,SAAS,GAAG,KAAK;IAC/D,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACnD,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;YACxC,sBAAsB;YACtB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEhE,WAAW;YACX,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,OAAO,GAAG,IAAI,CAAC;gBAEf,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,cAAc,GAAyB,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;YAEvF,uCAAuC;YACvC,IAAI,CAAC,OAAO,CAAC;gBACX,CAAC,GAAG,CAAC,EAAE,qBAAqB,CAAC,QAAQ,CAAC;aACvC,CAAC,CAAC;YAEH,SAAS,GAAG,IAAI,CAAC;YAEjB,WAAW;YACX,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,WAAW,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;YAEpF,sCAAsC;YACtC,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"computedUpdater.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/computedWatchHandle/computedUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,MAAM,UAAU,eAAe,CAAiB,SAAS,GAAG,KAAK;IAC/D,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACnD,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;YACxC,sBAAsB;YACtB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEhE,YAAY;YACZ,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,OAAO,GAAG,IAAI,CAAC;gBAEf,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,cAAc,GAAyB,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;YACvF,wCAAwC;YACxC,IAAI,CAAC,OAAO,CAAC;gBACX,CAAC,GAAG,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC;aAClC,CAAC,CAAC;YAEH,SAAS,GAAG,IAAI,CAAC;YAEjB,WAAW;YACX,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,WAAW,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;YAEpF,sCAAsC;YACtC,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { ComputedDependence } from "./computedUpdater";
2
2
  export declare function deepProxy(data: object, dependences: ComputedDependence[], basePath?: string[]): object;
3
- export declare function getProxyOriginalValue(value: {
3
+ export declare function getOriginalValue(value: {
4
4
  __original__?: unknown;
5
5
  }): unknown;
@@ -6,9 +6,9 @@ export function deepProxy(data, dependences, basePath = []) {
6
6
  return target;
7
7
  }
8
8
  const val = target[prop];
9
- // 自身没有但原型链上有的属性不收集依赖
9
+ // 自身没有但原型链上有的属性不收集依赖,比如数组上的方法 slice map forEach
10
10
  if (prop in target && !Object.prototype.hasOwnProperty.call(target, prop)) {
11
- return typeof val === "function" ? val.bind(target) : val;
11
+ return typeof val === "function" ? val.bind(target) : val; // : val 覆盖测试不到.
12
12
  }
13
13
  removePreviousDependence(dependences, basePath);
14
14
  const curPath = basePath.concat(prop);
@@ -16,6 +16,7 @@ export function deepProxy(data, dependences, basePath = []) {
16
16
  // 非对象不代理
17
17
  if (typeof val !== "object" || val === null)
18
18
  return val;
19
+ // console.log(val, typeof val);
19
20
  return deepProxy(val, dependences, curPath);
20
21
  },
21
22
  set(_target, prop) {
@@ -24,17 +25,11 @@ export function deepProxy(data, dependences, basePath = []) {
24
25
  };
25
26
  return new Proxy(data, handler);
26
27
  }
27
- export function getProxyOriginalValue(value) {
28
- if (typeof value !== "object" || value === null) {
28
+ // 如果是代理对象可以从__original__中获取原始值,否则返回自身
29
+ export function getOriginalValue(value) {
30
+ if (typeof value !== "object" || value === null || value.__original__ === undefined) {
29
31
  return value;
30
32
  }
31
- if (value.__original__)
32
- return value.__original__;
33
- const ret = Array.isArray(value) ? [] : {};
34
- for (const key in value) {
35
- // @ts-ignore 隐式索引
36
- ret[key] = getProxyOriginalValue(value[key]);
37
- }
38
- return ret;
33
+ return value.__original__;
39
34
  }
40
35
  //# sourceMappingURL=data-tracer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-tracer.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/computedWatchHandle/data-tracer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,MAAM,UAAU,SAAS,CACvB,IAAY,EACZ,WAAiC,EACjC,WAAqB,EAAE;IAEvB,MAAM,OAAO,GAAG;QACd,GAAG,CAAmB,MAAS,EAAE,IAAsB;YACrD,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;gBAC5B,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAEzB,qBAAqB;YACrB,IAAI,IAAI,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC1E,OAAO,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC5D,CAAC;YACD,wBAAwB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAEhD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAEtC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAE1C,SAAS;YACT,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;gBAAE,OAAO,GAAG,CAAC;YAExD,OAAO,SAAS,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;QACD,GAAG,CAAC,OAAe,EAAE,IAAY;YAC/B,MAAM,KAAK,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC;QAC/B,CAAC;KACF,CAAC;IAEF,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAiC;IACrE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC,YAAY,CAAC;IAElD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,kBAAkB;QAClB,GAAG,CAAC,GAAG,CAAC,GAAG,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"data-tracer.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/computedWatchHandle/data-tracer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,MAAM,UAAU,SAAS,CACvB,IAAY,EACZ,WAAiC,EACjC,WAAqB,EAAE;IAEvB,MAAM,OAAO,GAAG;QACd,GAAG,CAAmB,MAAS,EAAE,IAAsB;YACrD,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;gBAC5B,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAEzB,gDAAgD;YAChD,IAAI,IAAI,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC1E,OAAO,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,gBAAgB;YAC7E,CAAC;YACD,wBAAwB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAEhD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAEtC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAE1C,SAAS;YACT,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;gBAAE,OAAO,GAAG,CAAC;YACxD,gCAAgC;YAChC,OAAO,SAAS,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;QACD,GAAG,CAAC,OAAe,EAAE,IAAY;YAC/B,MAAM,KAAK,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC;QAC/B,CAAC;KACF,CAAC;IAEF,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,gBAAgB,CAAC,KAAiC;IAChE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACpF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,KAAK,CAAC,YAAY,CAAC;AAC5B,CAAC"}
@@ -1,2 +1,2 @@
1
1
  import type { PropertiesConstraint } from "../../../RootComponent/Properties/PropertiesConstraint";
2
- export declare function getPropertiesValue(propertiesOpt: PropertiesConstraint | undefined): object | undefined;
2
+ export declare function getPropertiesValue(propertiesOpt: PropertiesConstraint): object;
@@ -1,3 +1,4 @@
1
+ /* istanbul ignore next */
1
2
  function getRequiredSingleValue(PropType) {
2
3
  switch (PropType) {
3
4
  case String:
@@ -22,8 +23,6 @@ function IsRequiredUnion(config) {
22
23
  return !Reflect.has(config, "value");
23
24
  }
24
25
  export function getPropertiesValue(propertiesOpt) {
25
- if (propertiesOpt === undefined)
26
- return;
27
26
  const result = {};
28
27
  for (const key in propertiesOpt) {
29
28
  const config = propertiesOpt[key];
@@ -1 +1 @@
1
- {"version":3,"file":"getPropertiesValue.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/computedWatchHandle/getPropertiesValue.ts"],"names":[],"mappings":"AASA,SAAS,sBAAsB,CAC7B,QAAwB;IAExB,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,MAAM;YACT,OAAO,EAAE,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,CAAC,CAAC;QACX,KAAK,KAAK;YACR,OAAO,EAAE,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,IAAI,CAAC;QACd,KAAK,OAAO;YACV,OAAO,KAAK,CAAC;QACf;YACE,0BAA0B;YAC1B,MAAM,KAAK,CACT,+DAA+D,CAChE,CAAC;IACN,CAAC;AACH,CAAC;AACD,SAAS,gBAAgB,CAAC,MAAuB;IAC/C,OAAO,MAAM,YAAY,QAAQ,CAAC;AACpC,CAAC;AACD,SAAS,eAAe,CAAC,MAAuB;IAC9C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACvC,CAAC;AACD,MAAM,UAAU,kBAAkB,CAAC,aAA+C;IAChF,IAAI,aAAa,KAAK,SAAS;QAAE,OAAO;IACxC,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,kBAAkB;YAClB,MAAM,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;aAAM,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,kBAAkB;YAClB,MAAM,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,kBAAkB;YAClB,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"getPropertiesValue.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/computedWatchHandle/getPropertiesValue.ts"],"names":[],"mappings":"AAQA,0BAA0B;AAC1B,SAAS,sBAAsB,CAC7B,QAAwB;IAExB,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,MAAM;YACT,OAAO,EAAE,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,CAAC,CAAC;QACX,KAAK,KAAK;YACR,OAAO,EAAE,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,IAAI,CAAC;QACd,KAAK,OAAO;YACV,OAAO,KAAK,CAAC;QACf;YACE,0BAA0B;YAC1B,MAAM,KAAK,CACT,+DAA+D,CAChE,CAAC;IACN,CAAC;AACH,CAAC;AACD,SAAS,gBAAgB,CAAC,MAAuB;IAC/C,OAAO,MAAM,YAAY,QAAQ,CAAC;AACpC,CAAC;AACD,SAAS,eAAe,CAAC,MAAuB;IAC9C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACvC,CAAC;AACD,MAAM,UAAU,kBAAkB,CAAC,aAAmC;IACpE,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,kBAAkB;YAClB,MAAM,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;aAAM,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,kBAAkB;YAClB,MAAM,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,kBAAkB;YAClB,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { deepProxy, getProxyOriginalValue } from "./data-tracer";
1
+ import { deepProxy, getOriginalValue } from "./data-tracer";
2
2
  import { removeSubDependences } from "./dependencesOptimize";
3
3
  /**
4
4
  * 如果依赖列表某项的首个字段值为undefined并且字段为其他计算属性字段(即被依赖的计算字段写在了依赖他的计算字段后面) 返回false, 否则返回true表示依赖有效。
@@ -31,7 +31,7 @@ export function initComputedAndGetCache(options, computedConfig, initAllData, un
31
31
  uninitedkeys = uninitedkeys.filter(ele => ele !== key);
32
32
  // 验证依赖是否有效
33
33
  if (isValidDependences(dependences, uninitedkeys)) {
34
- initValue = getProxyOriginalValue(initValue);
34
+ initValue = getOriginalValue(initValue);
35
35
  // 把计算属性初始值加入到options.data中
36
36
  options.data[key] = initValue;
37
37
  // 把计算属性初始值加入到initAllData中,后续其他计算属性依赖时会可能会用到
@@ -1 +1 @@
1
- {"version":3,"file":"initComputedAndGetCache.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/computedWatchHandle/initComputedAndGetCache.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAY7D;;GAEG;AACH,SAAS,kBAAkB,CAAC,WAAiC,EAAE,YAAsB;IACnF,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,WAAW,EAAE,CAAC;QAC/C,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO;IACP,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAgC,EAChC,cAAoC,EACpC,WAAoC,EACpC,eAAyB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EACpD,gBAA+B,EAAE;IAEjC,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,WAAW,GAAyB,EAAE,CAAC;QAC7C,wBAAwB;QACxB,IAAI,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;QAEjF,kBAAkB;QAClB,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAEvD,WAAW;QACX,IAAI,kBAAkB,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;YAClD,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;YAE7C,2BAA2B;YAC3B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;YAE9B,4CAA4C;YAC5C,WAAW,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;YAE7B,aAAa,CAAC,GAAG,CAAC,GAAG;gBACnB,WAAW,EAAE,oBAAoB,CAAC,WAAW,CAAC;gBAC9C,MAAM,EAAE,YAAY;gBACpB,KAAK,EAAE,SAAS;aACjB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,oBAAoB;YACpB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IACD,mCAAmC;IACnC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,oBAAoB;IACpB,OAAO,uBAAuB,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;AACpG,CAAC"}
1
+ {"version":3,"file":"initComputedAndGetCache.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/computedWatchHandle/initComputedAndGetCache.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAY7D;;GAEG;AACH,SAAS,kBAAkB,CAAC,WAAiC,EAAE,YAAsB;IACnF,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,WAAW,EAAE,CAAC;QAC/C,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO;IACP,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAgC,EAChC,cAAoC,EACpC,WAAoC,EACpC,eAAyB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EACpD,gBAA+B,EAAE;IAEjC,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,WAAW,GAAyB,EAAE,CAAC;QAC7C,wBAAwB;QACxB,IAAI,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;QAEjF,kBAAkB;QAClB,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAEvD,WAAW;QACX,IAAI,kBAAkB,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;YAClD,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAExC,2BAA2B;YAC3B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;YAE9B,4CAA4C;YAC5C,WAAW,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;YAE7B,aAAa,CAAC,GAAG,CAAC,GAAG;gBACnB,WAAW,EAAE,oBAAoB,CAAC,WAAW,CAAC;gBAC9C,MAAM,EAAE,YAAY;gBACpB,KAAK,EAAE,SAAS;aACjB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,oBAAoB;YACpB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IACD,mCAAmC;IACnC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,oBAAoB;IACpB,OAAO,uBAAuB,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;AACpG,CAAC"}
@@ -3,4 +3,4 @@ import type { FinalOptionsOfComponent } from ".";
3
3
  /**
4
4
  * 把customEvents字段配置变成函数放入到componentOptions.methods中
5
5
  */
6
- export declare function customEventsHandle(methods: FinalOptionsOfComponent["methods"], customEventsConfig: CustomEventConstraint): void;
6
+ export declare function customEventsHandle(finalOptions: FinalOptionsOfComponent, customEventsConfig: CustomEventConstraint): void;
@@ -1,3 +1,14 @@
1
+ function getThrottleDebounceConfig(methodsName, customEventOptions, __throttleDebounce__) {
2
+ const { debounce, throttle } = customEventOptions;
3
+ if (debounce) {
4
+ __throttleDebounce__.debounce || (__throttleDebounce__.debounce = {});
5
+ __throttleDebounce__.debounce[methodsName] = debounce;
6
+ }
7
+ else if (throttle) {
8
+ __throttleDebounce__.throttle || (__throttleDebounce__.throttle = {});
9
+ __throttleDebounce__.throttle[methodsName] = throttle;
10
+ }
11
+ }
1
12
  // 类型守卫
2
13
  function IsFullCustomEvents(customEventOptions) {
3
14
  return Object.prototype.toString.call(customEventOptions) === "[object Object]";
@@ -5,13 +16,18 @@ function IsFullCustomEvents(customEventOptions) {
5
16
  /**
6
17
  * 把customEvents字段配置变成函数放入到componentOptions.methods中
7
18
  */
8
- export function customEventsHandle(methods, customEventsConfig) {
19
+ export function customEventsHandle(finalOptions, customEventsConfig) {
20
+ const methods = finalOptions.methods;
21
+ const data = finalOptions.data;
9
22
  for (const key in customEventsConfig) {
10
23
  const customEventOptions = customEventsConfig[key];
11
24
  if (IsFullCustomEvents(customEventOptions)) {
12
25
  methods[key] = function (detail) {
13
26
  this.triggerEvent(key, detail, customEventOptions.options);
14
27
  };
28
+ data.__throttleDebounce__ || (data.__throttleDebounce__ = {});
29
+ // 全配置允许设置防抖和节流,在这里保留配置到data.__throttleDebounce__中,以便后续使用
30
+ getThrottleDebounceConfig(key, customEventOptions, data.__throttleDebounce__);
15
31
  }
16
32
  else {
17
33
  methods[key] = function (detail) {
@@ -1 +1 @@
1
- {"version":3,"file":"customEventsHandle.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/normalizeOptions/customEventsHandle.ts"],"names":[],"mappings":"AAOA,OAAO;AACP,SAAS,kBAAkB,CACzB,kBAAgC;IAEhC,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,iBAAiB,CAAC;AAClF,CAAC;AACD;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAA2C,EAC3C,kBAAyC;IAEzC,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACrC,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAEnD,IAAI,kBAAkB,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,GAAG,UAAyB,MAAe;gBACrD,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAC7D,CAAC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,GAAG,UAAyB,MAAe;gBACrD,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACjC,CAAC,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"customEventsHandle.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/normalizeOptions/customEventsHandle.ts"],"names":[],"mappings":"AAOA,SAAS,yBAAyB,CAChC,WAAmB,EACnB,kBAAoC,EACpC,oBAAsC;IAEtC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAAC;IAElD,IAAI,QAAQ,EAAE,CAAC;QACb,oBAAoB,CAAC,QAAQ,KAA7B,oBAAoB,CAAC,QAAQ,GAAK,EAAE,EAAC;QACrC,oBAAoB,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC;IACxD,CAAC;SAAM,IAAI,QAAQ,EAAE,CAAC;QACpB,oBAAoB,CAAC,QAAQ,KAA7B,oBAAoB,CAAC,QAAQ,GAAK,EAAE,EAAC;QACrC,oBAAoB,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC;IACxD,CAAC;AACH,CAAC;AAED,OAAO;AACP,SAAS,kBAAkB,CACzB,kBAAgC;IAEhC,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,iBAAiB,CAAC;AAClF,CAAC;AACD;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,YAAqC,EACrC,kBAAyC;IAEzC,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;IACrC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;IAE/B,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACrC,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACnD,IAAI,kBAAkB,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,GAAG,UAAyB,MAAe;gBACrD,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAC7D,CAAC,CAAC;YACF,IAAI,CAAC,oBAAoB,KAAzB,IAAI,CAAC,oBAAoB,GAAK,EAAE,EAAC;YACjC,yDAAyD;YACzD,yBAAyB,CAAC,GAAG,EAAE,kBAAkB,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAChF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,GAAG,UAAyB,MAAe;gBACrD,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACjC,CAAC,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -9,11 +9,13 @@ import type { StoreConstraint } from "../../RootComponent/Store/StoreConstraint"
9
9
  import type { DefineComponentOption } from "..";
10
10
  import type { ComputedCache } from "./computedWatchHandle/initComputedAndGetCache";
11
11
  export type WatchOldValue = Record<string, unknown[]>;
12
+ export type ThrottleDebounce = Partial<Record<"throttle" | "debounce", Record<string, number>>>;
12
13
  export type OptionsInnerFields = {
13
14
  data: {
14
15
  __computedCache__?: ComputedCache;
15
16
  __storeConfig__?: StoreConstraint;
16
17
  __watchOldValue__?: WatchOldValue;
18
+ __throttleDebounce__?: ThrottleDebounce;
17
19
  };
18
20
  methods: {
19
21
  disposer?: Record<string, Func>;
@@ -1,7 +1,9 @@
1
1
  import { BBeforeCreate } from "../../../behaviors/BbeforeCreated";
2
2
  import { BStore } from "../../../behaviors/BStore";
3
+ import { BthrottleDebounce } from "../../../behaviors/BthrottleDebounce";
3
4
  import { isEmptyObject } from "../../../utils/isEmptyObject";
4
5
  import { instanceConfig } from "../../InstanceInject/instanceConfig";
6
+ import { __throttleDebounce__FieldCheck } from "./__throttleDebounce__FieldCheck";
5
7
  import { computedWatchHandle } from "./computedWatchHandle";
6
8
  import { hijack } from "./hijackHandle";
7
9
  import { isPageCheck } from "./hijackHandle/isPageCheck";
@@ -26,7 +28,7 @@ export function normalizeOptions(defineComponentOption) {
26
28
  data: {},
27
29
  methods: {},
28
30
  // 加入BStore,处理store字段的behavior
29
- behaviors: [BStore],
31
+ behaviors: [BStore, BthrottleDebounce],
30
32
  externalClasses: [],
31
33
  pageLifetimes: {},
32
34
  isPage: false,
@@ -47,9 +49,13 @@ export function normalizeOptions(defineComponentOption) {
47
49
  observers: {},
48
50
  };
49
51
  if (rootComponentOption && !isEmptyObject(rootComponentOption)) {
52
+ // 验证配置中是否有内部字段__throttleDebounce__,有则报错,因为在rootComponentOptionHandle中会加入__throttleDebounce__字段到data中
53
+ __throttleDebounce__FieldCheck(rootComponentOption);
50
54
  rootComponentOptionHandle(finalOptionsForComponent, sameFuncOptions, rootComponentOption);
51
55
  }
52
56
  if (subComponentsOption && !isEmptyObject(subComponentsOption)) {
57
+ // 验证配置中是否有内部字段__throttleDebounce__,有则报错,因为在rootComponentOptionHandle中会加入__throttleDebounce__字段到data中
58
+ __throttleDebounce__FieldCheck(subComponentsOption);
53
59
  subComponentsOptionHandle(finalOptionsForComponent, subComponentsOption, sameFuncOptions);
54
60
  }
55
61
  sameFuncOptionsHandle(finalOptionsForComponent, rootComponentOption === null || rootComponentOption === void 0 ? void 0 : rootComponentOption.isPage, sameFuncOptions);
@@ -70,6 +76,7 @@ export function normalizeOptions(defineComponentOption) {
70
76
  initStore(finalOptionsForComponent);
71
77
  // 处理computed和watch配置
72
78
  computedWatchHandle(finalOptionsForComponent);
79
+ // 在rootComponentOptionHandle中保留了防抖节流配置,这里处理后,删除data.__throttleDebounce__字段
73
80
  // BBeforeCreate在最后面,让BeforeCreate生命周期运行在最终建立组件时。
74
81
  finalOptionsForComponent.behaviors.push(BBeforeCreate);
75
82
  return finalOptionsForComponent;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/normalizeOptions/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/normalizeOptions/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  // 内部字段
2
2
  const internalFiled = {
3
3
  methods: ["disposer", "__computedUpdater__"],
4
- data: ["__computedCache__", "__storeConfig__", "__watchOldValue__"],
4
+ data: ["__computedCache__", "__storeConfig__", "__watchOldValue__"], // "__throttleDebounce__" 放在之前的位置验证
5
5
  };
6
6
  /**
7
7
  * 报错的形式避免输入字段和内部字段冲突,保证config下不包含内部预定字段(列表)
@@ -1 +1 @@
1
- {"version":3,"file":"internalFieldProtection.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/normalizeOptions/internalFieldProtection.ts"],"names":[],"mappings":"AAEA,OAAO;AACP,MAAM,aAAa,GAAG;IACpB,OAAO,EAAE,CAAC,UAAU,EAAE,qBAAqB,CAAC;IAC5C,IAAI,EAAE,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,mBAAmB,CAAC;CACpE,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,wBAAiD;IACvF,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACvE,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAEjE,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACnC,IAAI,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,MAAM,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,4BAA4B;YAC5B,MAAM,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"internalFieldProtection.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/normalizeOptions/internalFieldProtection.ts"],"names":[],"mappings":"AAEA,OAAO;AACP,MAAM,aAAa,GAAG;IACpB,OAAO,EAAE,CAAC,UAAU,EAAE,qBAAqB,CAAC;IAC5C,IAAI,EAAE,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,EAAE,mCAAmC;CACzG,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,wBAAiD;IACvF,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACvE,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAEjE,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACnC,IAAI,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,MAAM,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,4BAA4B;YAC5B,MAAM,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -8,8 +8,9 @@ import { sameFuncFieldsCollect } from "./sameFuncFieldsCollect";
8
8
  * @param rootComponentOptions - 被收集的源配置对象
9
9
  */
10
10
  export function rootComponentOptionHandle(finalOptions, funcOptions, rootComponentOptions) {
11
+ // 自定义事件处理时,如果配置了防抖节流,则需要在data.__throttleDebounce__保留配置信息,以便后续使用
11
12
  if (rootComponentOptions.customEvents)
12
- customEventsHandle(finalOptions.methods, rootComponentOptions.customEvents);
13
+ customEventsHandle(finalOptions, rootComponentOptions.customEvents);
13
14
  if (rootComponentOptions.events)
14
15
  Object.assign(finalOptions.methods, rootComponentOptions.events);
15
16
  sameFuncFieldsCollect(rootComponentOptions, funcOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"rootComponentOptionHandle.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/normalizeOptions/rootComponentOptionHandle.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,YAAqC,EACrC,WAA4B,EAC5B,oBAA8C;IAE9C,IAAI,oBAAoB,CAAC,YAAY;QAAE,kBAAkB,CAAC,YAAY,CAAC,OAAO,EAAE,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAEnH,IAAI,oBAAoB,CAAC,MAAM;QAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAElG,qBAAqB,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;IAEzD,iBAAiB,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"rootComponentOptionHandle.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/normalizeOptions/rootComponentOptionHandle.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,YAAqC,EACrC,WAA4B,EAC5B,oBAA8C;IAE9C,gEAAgE;IAChE,IAAI,oBAAoB,CAAC,YAAY;QAAE,kBAAkB,CAAC,YAAY,EAAE,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAE3G,IAAI,oBAAoB,CAAC,MAAM;QAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAElG,qBAAqB,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;IAEzD,iBAAiB,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;AACxD,CAAC"}
@@ -27,8 +27,8 @@ export function sameFuncOptionsHandle(finalOptionsForComponent, isPage, funcOpti
27
27
  }
28
28
  }
29
29
  if (funcOptions.lifetimes)
30
- _sameFuncOptionsHandle(finalOptionsForComponent.lifetimes || (finalOptionsForComponent.lifetimes = {}), funcOptions.lifetimes);
30
+ _sameFuncOptionsHandle(finalOptionsForComponent.lifetimes, funcOptions.lifetimes);
31
31
  if (funcOptions.watch)
32
- _sameFuncOptionsHandle(finalOptionsForComponent.watch || (finalOptionsForComponent.watch = {}), funcOptions.watch);
32
+ _sameFuncOptionsHandle(finalOptionsForComponent.watch, funcOptions.watch);
33
33
  }
34
34
  //# sourceMappingURL=sameFuncOptionsHandle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sameFuncOptionsHandle.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/normalizeOptions/sameFuncOptionsHandle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D;;GAEG;AACH,SAAS,sBAAsB,CAAC,MAAc,EAAE,UAAkC;IAChF,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,kBAAkB;QAClB,MAAM,CAAC,GAAG,CAAC,GAAG,UAAS,GAAG,IAAe;YACvC,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC;IACJ,CAAC;AACH,CAAC;AACD;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,wBAAiD,EACjD,MAA2B,EAC3B,WAA4B;IAE5B,IAAI,MAAM,EAAE,CAAC;QACX,sHAAsH;QACtH,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;YAC9C,sBAAsB,CAAC,wBAAwB,CAAC,OAAO,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM;QACN,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;YAC9C,sBAAsB,CAAC,wBAAwB,CAAC,aAAa,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IACD,IAAI,WAAW,CAAC,SAAS;QAAE,sBAAsB,CAAC,wBAAwB,CAAC,SAAS,KAAlC,wBAAwB,CAAC,SAAS,GAAK,EAAE,GAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAEpH,IAAI,WAAW,CAAC,KAAK;QAAE,sBAAsB,CAAC,wBAAwB,CAAC,KAAK,KAA9B,wBAAwB,CAAC,KAAK,GAAK,EAAE,GAAE,WAAW,CAAC,KAAK,CAAC,CAAC;AAC1G,CAAC"}
1
+ {"version":3,"file":"sameFuncOptionsHandle.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/normalizeOptions/sameFuncOptionsHandle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D;;GAEG;AACH,SAAS,sBAAsB,CAAC,MAAc,EAAE,UAAkC;IAChF,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,kBAAkB;QAClB,MAAM,CAAC,GAAG,CAAC,GAAG,UAAS,GAAG,IAAe;YACvC,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC;IACJ,CAAC;AACH,CAAC;AACD;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,wBAAiD,EACjD,MAA2B,EAC3B,WAA4B;IAE5B,IAAI,MAAM,EAAE,CAAC;QACX,sHAAsH;QACtH,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;YAC9C,sBAAsB,CAAC,wBAAwB,CAAC,OAAO,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM;QACN,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;YAC9C,sBAAsB,CAAC,wBAAwB,CAAC,aAAa,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IACD,IAAI,WAAW,CAAC,SAAS;QAAE,sBAAsB,CAAC,wBAAwB,CAAC,SAAS,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAE7G,IAAI,WAAW,CAAC,KAAK;QAAE,sBAAsB,CAAC,wBAAwB,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;AACnG,CAAC"}
@@ -33,6 +33,28 @@ export type OptionsFieldsConfigOfCustomEvents = BubblesOption | CaptureOption |
33
33
  export type FullCustomEvents = {
34
34
  detail: ShortCustomeEvents;
35
35
  options: OptionsFieldsConfigOfCustomEvents;
36
+ debounce?: never;
37
+ throttle?: never;
38
+ } | {
39
+ detail: ShortCustomeEvents;
40
+ options?: never;
41
+ debounce: number;
42
+ throttle?: never;
43
+ } | {
44
+ detail: ShortCustomeEvents;
45
+ options?: never;
46
+ debounce?: never;
47
+ throttle: number;
48
+ } | {
49
+ detail: ShortCustomeEvents;
50
+ options: OptionsFieldsConfigOfCustomEvents;
51
+ debounce?: never;
52
+ throttle: number;
53
+ } | {
54
+ detail: ShortCustomeEvents;
55
+ options: OptionsFieldsConfigOfCustomEvents;
56
+ debounce: number;
57
+ throttle?: never;
36
58
  };
37
59
  export type CustomEvents = FullCustomEvents | ShortCustomeEvents;
38
60
  export type CustomEventConstraint = Record<string, CustomEvents>;
@@ -1,9 +1,10 @@
1
+ import type { IfExtends } from "hry-types/src/Any/IfExtends";
1
2
  import type { DetailedType } from "../../../types/DetailedType";
2
3
  import type { InferDetailedType } from "../../../types/InferDetailedType";
3
4
  import type { CustomEventConstraint, FullCustomEvents, ShortCustomeEvents, SimpleCustomeEventsList } from "./CustomEventConstraint";
4
5
  import type { AddTagForCustomEventsDoc } from "./CustomEventsTag";
5
6
  export type GetShortCustomEventsDoc<T extends ShortCustomeEvents> = T extends DetailedType ? InferDetailedType<T> : T extends null ? null : T extends undefined ? undefined : T extends SimpleCustomeEventsList ? GetShortCustomEventsDoc<T[number]> : never;
6
- export type GetFullCustomEventsDoc<T extends FullCustomEvents> = GetShortCustomEventsDoc<T["detail"]> | AddTagForCustomEventsDoc<T["options"]>;
7
+ export type GetFullCustomEventsDoc<T extends FullCustomEvents> = GetShortCustomEventsDoc<T["detail"]> | IfExtends<unknown, T["options"], never, AddTagForCustomEventsDoc<T["options"] & {}>>;
7
8
  /**
8
9
  * 获取自定义事件的文档
9
10
  * demo
@@ -18,5 +19,5 @@ export type GetFullCustomEventsDoc<T extends FullCustomEvents> = GetShortCustomE
18
19
  * @returns object
19
20
  */
20
21
  export type GetCustomEventDoc<T extends CustomEventConstraint> = {
21
- [k in keyof T]: T[k] extends ShortCustomeEvents ? GetShortCustomEventsDoc<T[k]> : GetShortCustomEventsDoc<T[k]["detail"]> | AddTagForCustomEventsDoc<T[k]["options"]>;
22
+ [k in keyof T]: T[k] extends ShortCustomeEvents ? GetShortCustomEventsDoc<T[k]> : GetShortCustomEventsDoc<T[k]["detail"]> | IfExtends<unknown, T[k]["options"], never, AddTagForCustomEventsDoc<T[k]["options"] & {}>>;
22
23
  };
@@ -4,7 +4,7 @@
4
4
  export const BBeforeCreate = Behavior({
5
5
  // @ts-ignore
6
6
  definitionFilter(options) {
7
- // 触发beforeCreate生命周期函数 options.lifetimes在之前被赋值过默认{}所以!
7
+ // 触发beforeCreate生命周期函数
8
8
  const beforeCreateFunc = options.lifetimes.beforeCreate;
9
9
  if (beforeCreateFunc) {
10
10
  beforeCreateFunc.call(undefined, options);
@@ -1 +1 @@
1
- {"version":3,"file":"BbeforeCreated.js","sourceRoot":"","sources":["../../src/behaviors/BbeforeCreated.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CAAC;IACpC,aAAa;IACb,gBAAgB,CACd,OAAwF;QAExF,wDAAwD;QACxD,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC;QAExD,IAAI,gBAAgB,EAAE,CAAC;YACrB,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"BbeforeCreated.js","sourceRoot":"","sources":["../../src/behaviors/BbeforeCreated.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CAAC;IACpC,aAAa;IACb,gBAAgB,CACd,OAAwF;QAExF,uBAAuB;QACvB,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC;QAExD,IAAI,gBAAgB,EAAE,CAAC;YACrB,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const BthrottleDebounce: string;
@@ -0,0 +1,27 @@
1
+ import { debounce } from "../utils/debounce";
2
+ import { throttle } from "../utils/throttle";
3
+ export const BthrottleDebounce = Behavior({
4
+ lifetimes: {
5
+ created() {
6
+ const __throttleDebounce__ = this.data.__throttleDebounce__;
7
+ if (!__throttleDebounce__)
8
+ return;
9
+ const debounceConfig = __throttleDebounce__.debounce;
10
+ if (debounceConfig) {
11
+ for (const key in debounceConfig) {
12
+ const _this = this;
13
+ _this[key] = debounce(_this[key].bind(this), debounceConfig[key]);
14
+ }
15
+ }
16
+ const throttleConfig = __throttleDebounce__.throttle;
17
+ if (throttleConfig) {
18
+ for (const key in throttleConfig) {
19
+ const _this = this;
20
+ _this[key] = throttle(_this[key].bind(this), throttleConfig[key]);
21
+ }
22
+ }
23
+ delete this.data.__throttleDebounce__;
24
+ },
25
+ },
26
+ });
27
+ //# sourceMappingURL=BthrottleDebounce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BthrottleDebounce.js","sourceRoot":"","sources":["../../src/behaviors/BthrottleDebounce.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACxC,SAAS,EAAE;QACT,OAAO;YACL,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC;YAC5D,IAAI,CAAC,oBAAoB;gBAAE,OAAO;YAClC,MAAM,cAAc,GAAG,oBAAoB,CAAC,QAAQ,CAAC;YACrD,IAAI,cAAc,EAAE,CAAC;gBACnB,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;oBACjC,MAAM,KAAK,GAAG,IAAW,CAAC;oBAC1B,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpE,CAAC;YACH,CAAC;YACD,MAAM,cAAc,GAAG,oBAAoB,CAAC,QAAQ,CAAC;YACrD,IAAI,cAAc,EAAE,CAAC;gBACnB,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;oBACjC,MAAM,KAAK,GAAG,IAAW,CAAC;oBAC1B,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpE,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC;QACxC,CAAC;KACF;CACF,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -7,6 +7,7 @@ import type { CreateComponentType } from "./types/CreateComponentType";
7
7
  import type { DetailedType } from "./types/DetailedType";
8
8
  import type { ExtendComponentType } from "./types/ExtendComponentType";
9
9
  import type { ParamsEqual } from "./types/TwoParamsEqual";
10
+ export * from "./utils/_utils";
10
11
  export type { Bubbles, BubblesCapture, BubblesCaptureComposed, BubblesComposed, Capture, CaptureComposed, Composed, CustomEventsTags, } from "./api/RootComponent/CustomEvents/CustomEventsTag";
11
12
  export type { Vant, Wm } from "./thirdLib";
12
13
  export type { CurrentTargetDataset, Dataset, Detail, Mark, TargetDataset, WMBaseEvent, WMCustomEvent, } from "./types/OfficialTypeAlias";
package/dist/index.js CHANGED
@@ -3,5 +3,6 @@ import { instanceConfig } from "./api/InstanceInject/instanceConfig";
3
3
  import { navigateTo } from "./api/navigateTo";
4
4
  import { RootComponent } from "./api/RootComponent";
5
5
  import { SubComponent } from "./api/SubComponent";
6
+ export * from "./utils/_utils";
6
7
  export { DefineComponent, instanceConfig, navigateTo, RootComponent, SubComponent, };
7
8
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAoB,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA2BlD,OAAO,EAEL,eAAe,EAIf,cAAc,EACd,UAAU,EAEV,aAAa,EACb,YAAY,GACb,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAoB,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKlD,cAAc,gBAAgB,CAAC;AAwB/B,OAAO,EAEL,eAAe,EAIf,cAAc,EACd,UAAU,EAEV,aAAa,EACb,YAAY,GACb,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { assertNonNullable } from "./assertNonNullable";
2
+ import { debounce } from "./debounce";
3
+ import { deepClone } from "./deepClone";
4
+ import { deepEqual } from "./deepEqual";
5
+ import { isEmptyObject } from "./isEmptyObject";
6
+ import { throttle } from "./throttle";
7
+ export { assertNonNullable, debounce, deepClone, deepEqual, isEmptyObject, throttle };
@@ -0,0 +1,8 @@
1
+ import { assertNonNullable } from "./assertNonNullable";
2
+ import { debounce } from "./debounce";
3
+ import { deepClone } from "./deepClone";
4
+ import { deepEqual } from "./deepEqual";
5
+ import { isEmptyObject } from "./isEmptyObject";
6
+ import { throttle } from "./throttle";
7
+ export { assertNonNullable, debounce, deepClone, deepEqual, isEmptyObject, throttle };
8
+ //# sourceMappingURL=_utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_utils.js","sourceRoot":"","sources":["../../src/utils/_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * 防抖函数
3
+ * 应用在输入框输入时,只有在输入完成并delay后,才会触发搜索
4
+ * @param func
5
+ * @param delay
6
+ * @returns
7
+ */
8
+ export declare function debounce<F extends (...args: any[]) => any>(func: F, delay: number): (...args: Parameters<F>) => void;
@@ -0,0 +1,18 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ /**
3
+ * 防抖函数
4
+ * 应用在输入框输入时,只有在输入完成并delay后,才会触发搜索
5
+ * @param func
6
+ * @param delay
7
+ * @returns
8
+ */
9
+ export function debounce(func, delay) {
10
+ let timeoutId = null;
11
+ return (...args) => {
12
+ if (timeoutId) {
13
+ clearTimeout(timeoutId);
14
+ }
15
+ timeoutId = setTimeout(() => func(...args), delay);
16
+ };
17
+ }
18
+ //# sourceMappingURL=debounce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debounce.js","sourceRoot":"","sources":["../../src/utils/debounce.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAoC,IAAO,EAAE,KAAa;IAChF,IAAI,SAAS,GAA0B,IAAI,CAAC;IAE5C,OAAO,CAAC,GAAG,IAAmB,EAAQ,EAAE;QACtC,IAAI,SAAS,EAAE,CAAC;YACd,YAAY,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;QAED,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC;AACJ,CAAC"}
@@ -1,7 +1 @@
1
- /**
2
- * 深度判断两个值是否相等,有一个值为非对象类型即使用Object.is判断。
3
- * 不支持原型上的属性
4
- * 两个函数使用toString()比较
5
- * 支持Date,RegExp
6
- */
7
- export declare function deepEqual(a: unknown, b: unknown): boolean;
1
+ export declare function deepEqual(value1: unknown, value2: unknown): boolean;