annil 1.8.3 → 1.10.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 (46) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +1 -1
  3. package/dist/api/DefineComponent/normalizeOptions/hijackHandle/pagePathCheck.d.ts +2 -0
  4. package/dist/api/DefineComponent/normalizeOptions/hijackHandle/pagePathCheck.js +8 -0
  5. package/dist/api/DefineComponent/normalizeOptions/hijackHandle/pagePathCheck.js.map +1 -0
  6. package/dist/api/DefineComponent/normalizeOptions/index.d.ts +1 -2
  7. package/dist/api/DefineComponent/normalizeOptions/index.js +5 -1
  8. package/dist/api/DefineComponent/normalizeOptions/index.js.map +1 -1
  9. package/dist/api/SubComponent/SubComponentType.d.ts +1 -1
  10. package/dist/api/SubComponent/index.d.ts +9 -1
  11. package/dist/api/SubComponent/index.js.map +1 -1
  12. package/dist/api/{navigateTo.d.ts → wxSugar.d.ts} +11 -1
  13. package/dist/api/{navigateTo.js → wxSugar.js} +34 -2
  14. package/dist/api/wxSugar.js.map +1 -0
  15. package/dist/index.d.ts +2 -2
  16. package/dist/index.js +2 -2
  17. package/dist/index.js.map +1 -1
  18. package/dist/thirdLib/wm/index.d.ts +1 -0
  19. package/dist/thirdLib/wm/map.d.ts +201 -0
  20. package/dist/thirdLib/wm/map.js +2 -0
  21. package/dist/thirdLib/wm/map.js.map +1 -0
  22. package/dist/utils/applyDebounceAndThrottle.d.ts +7 -0
  23. package/dist/utils/applyDebounceAndThrottle.js +28 -0
  24. package/dist/utils/applyDebounceAndThrottle.js.map +1 -0
  25. package/dist/utils/debounce.d.ts +5 -3
  26. package/dist/utils/debounce.js +6 -6
  27. package/dist/utils/debounce.js.map +1 -1
  28. package/dist/utils/throttle.js +2 -1
  29. package/dist/utils/throttle.js.map +1 -1
  30. package/package.json +1 -1
  31. package/src/api/DefineComponent/normalizeOptions/hijackHandle/pagePathCheck.ts +9 -0
  32. package/src/api/DefineComponent/normalizeOptions/index.ts +8 -4
  33. package/src/api/SubComponent/SubComponentType.ts +1 -0
  34. package/src/api/SubComponent/SubComputed/test/error.test.ts +33 -0
  35. package/src/api/SubComponent/SubComputed/test/normal.test.ts +12 -0
  36. package/src/api/SubComponent/SubData/test/error.test.ts +7 -0
  37. package/src/api/SubComponent/SubStore/test/error.test.ts +15 -3
  38. package/src/api/SubComponent/index.ts +57 -7
  39. package/src/api/{navigateTo.ts → wxSugar.ts} +41 -1
  40. package/src/index.ts +3 -1
  41. package/src/thirdLib/wm/index.ts +2 -0
  42. package/src/thirdLib/wm/map.ts +266 -0
  43. package/src/utils/applyDebounceAndThrottle.ts +31 -0
  44. package/src/utils/debounce.ts +8 -6
  45. package/src/utils/throttle.ts +3 -2
  46. package/dist/api/navigateTo.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,37 @@
4
4
 
5
5
  * 解决DetailedType不接收接口类型的错误 ([ae8acbf](https://github.com/missannil/annil/commit/ae8acbfc2e62f99db565c448ad9253aa549e78bb))
6
6
 
7
+ ## [1.10.1](https://github.com/missannil/annil/compare/v1.10.0...v1.10.1) (2024-11-11)
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * 上次覆盖率没通过 ([d5b4f23](https://github.com/missannil/annil/commit/d5b4f2398974878ae92d87c4155265554e08e5e7))
13
+
14
+ ## [1.10.0](https://github.com/missannil/annil/compare/v1.9.0...v1.10.0) (2024-11-11)
15
+
16
+
17
+ ### Features
18
+
19
+ * 增加原生组件类型 Wm.Map,增加API navigateBack ([a58fed1](https://github.com/missannil/annil/commit/a58fed110582a6f5edd0013f920a69769d08e1a8))
20
+
21
+
22
+ ### Bug Fixes
23
+
24
+ * _SubComponentType 增加undefined类型,subComponent组件配置增加与root数据字段和彼此内部字段重复检测 ([eacc152](https://github.com/missannil/annil/commit/eacc152c7a8fe8953202fa53aff2742c0066dccc))
25
+
26
+ ## [1.9.0](https://github.com/missannil/annil/compare/v1.8.3...v1.9.0) (2024-10-23)
27
+
28
+
29
+ ### Features
30
+
31
+ * api/navigateTo 改为wxSugar 增加导出redirectTo ([f5a6141](https://github.com/missannil/annil/commit/f5a61411fa903545de8460052ca3512923905388))
32
+
33
+
34
+ ### Bug Fixes
35
+
36
+ * 增加对DefinedComponent 的 path字段检测(与实例的is比较) ([8460e4e](https://github.com/missannil/annil/commit/8460e4eb29ad21a2df7adf53bffeb4c887a122e9))
37
+
7
38
  ## [1.8.3](https://github.com/missannil/annil/compare/v1.8.2...v1.8.3) (2024-09-08)
8
39
 
9
40
 
package/README.md CHANGED
@@ -137,7 +137,7 @@ annil(安奈儿)是微信小程序原生开发插件。她会给您更佳的开
137
137
 
138
138
  - **常用API**
139
139
 
140
- [navigateTo](./doc/api/navigateTo.md)
140
+ [navigateTo](./doc/api/wxSugar.md)
141
141
 
142
142
  - 实用泛型
143
143
 
@@ -0,0 +1,2 @@
1
+ import type { Instance } from "../../../RootComponent/Instance/RootComponentInstance";
2
+ export declare function pagePathCheck(path?: string): (this: Instance) => void;
@@ -0,0 +1,8 @@
1
+ export function pagePathCheck(path) {
2
+ return function () {
3
+ if (path && `/${this.is}` !== path) {
4
+ throw new Error(`页面路径错误,应为 /${this.is}`);
5
+ }
6
+ };
7
+ }
8
+ //# sourceMappingURL=pagePathCheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagePathCheck.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/hijackHandle/pagePathCheck.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,aAAa,CAAC,IAAa;IACzC,OAAO;QACL,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -18,7 +18,6 @@ export type OptionsInnerFields = {
18
18
  __throttleDebounce__?: ThrottleDebounce;
19
19
  };
20
20
  methods: {
21
- disposer?: Record<string, Func>;
22
21
  __computedUpdater__?: Func;
23
22
  };
24
23
  };
@@ -34,7 +33,7 @@ export type FinalOptionsOfComponent = {
34
33
  data: DataConstraint & OptionsInnerFields["data"];
35
34
  observers: Record<string, Func>;
36
35
  behaviors: string[];
37
- methods: MethodsConstraint & OptionsInnerFields["methods"];
36
+ methods: MethodsConstraint;
38
37
  externalClasses: string[];
39
38
  pageLifetimes: PageLifetimesOption<false, object>["pageLifetimes"] & {};
40
39
  isPage: boolean;
@@ -1,6 +1,7 @@
1
1
  import { BBeforeCreate } from "../../../behaviors/BbeforeCreated";
2
2
  import { BStore } from "../../../behaviors/BStore";
3
3
  import { BthrottleDebounce } from "../../../behaviors/BthrottleDebounce";
4
+ import { applyDebounceAndThrottle } from "../../../utils/applyDebounceAndThrottle";
4
5
  import { isEmptyObject } from "../../../utils/isEmptyObject";
5
6
  import { instanceConfig } from "../../InstanceInject/instanceConfig";
6
7
  import { __throttleDebounce__FieldCheck } from "./__throttleDebounce__FieldCheck";
@@ -9,6 +10,7 @@ import { hijack } from "./hijackHandle";
9
10
  import { isPageCheck } from "./hijackHandle/isPageCheck";
10
11
  import { loadReceivedDataHandle } from "./hijackHandle/loadReceivedDataHandle";
11
12
  import { onLoadReceivedDataHandle } from "./hijackHandle/onLoadReceivedDataHandle";
13
+ import { pagePathCheck } from "./hijackHandle/pagePathCheck";
12
14
  import { initStore } from "./initStore";
13
15
  import { injectInfoHandler } from "./injectInfoHandler";
14
16
  import { InternalFieldProtection } from "./internalFieldProtection";
@@ -67,11 +69,13 @@ export function normalizeOptions(defineComponentOption) {
67
69
  }
68
70
  hijack(finalOptionsForComponent.methods, "onLoad", [onLoadReceivedDataHandle]);
69
71
  // 验证isPage字段是否配置正确
70
- hijack(finalOptionsForComponent.lifetimes, "attached", [isPageCheck(rootComponentOption === null || rootComponentOption === void 0 ? void 0 : rootComponentOption.isPage)]);
72
+ hijack(finalOptionsForComponent.lifetimes, "attached", [isPageCheck(rootComponentOption === null || rootComponentOption === void 0 ? void 0 : rootComponentOption.isPage), pagePathCheck(defineComponentOption.path)]);
71
73
  // 页面时删除预设的虚拟组件字段
72
74
  if (finalOptionsForComponent.isPage && finalOptionsForComponent.options) {
73
75
  Reflect.deleteProperty(finalOptionsForComponent.options, "virtualHost");
74
76
  }
77
+ // 处理debounce和throttle前缀的方法(事件)配置
78
+ applyDebounceAndThrottle(finalOptionsForComponent.methods);
75
79
  // 初始化store数据到data并把store配置放入到data的__storeConfig__下为后续使用
76
80
  initStore(finalOptionsForComponent);
77
81
  // 处理computed和watch配置
@@ -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
  import type { SelectKeys } from "hry-types/src/Object/_api";
2
2
  import type { Composed, CustomEventsTags } from "../RootComponent/CustomEvents/CustomEventsTag";
3
3
  type _SubComponentType = {
4
- [k in string]: string | number | bigint | boolean | symbol | null | Record<string, any> | unknown[] | CustomEventsTags;
4
+ [k in string]: string | number | bigint | boolean | symbol | null | undefined | Record<string, any> | unknown[] | CustomEventsTags;
5
5
  };
6
6
  type _Validator<O, ErrKeys = Exclude<keyof O, SelectKeys<O, Composed, "contains->">>> = [ErrKeys] extends [never] ? _SubComponentType : `${ErrKeys & string} 不是穿透事件`;
7
7
  /**
@@ -38,7 +38,15 @@ import type { CreateSubComponentDoc } from "./SubReturnType/CreateSubComponentDo
38
38
  import type { SubStoreConstraint } from "./SubStore/SubStoreConstraint";
39
39
  import type { SubStoreOption } from "./SubStore/SubStoreOption";
40
40
  import type { SubWatchOption } from "./SubWatch/SubWatchOption";
41
- type Options<RootDoc extends RootComponentType, IsPage extends boolean, CurrentCompDoc extends ComponentType, Prefix extends string, AllRootDataDoc extends object, TInherit extends object, TSubData extends object, TSubStore extends object, TSubComputed extends object, TEvents extends object, TSubMethods extends SubMethodsConstraint, InheritDoc extends object, SubDataDoc extends object, SubStoreDoc extends object, SubComputedDoc extends object, SubEventsDoc extends object, SubMethodsDoc extends object, CompDocKeys extends PropertyKey = keyof CurrentCompDoc["properties"]> = SubInheritOption<TInherit, CompDocKeys> & SubDataOption<TSubData, Exclude<CompDocKeys, (keyof InheritDoc)> | InnerFields<Prefix>> & SubStoreOption<TSubStore, Exclude<CompDocKeys, (keyof (InheritDoc & SubDataDoc))> | InnerFields<Prefix>> & SubComputedOption<TSubComputed, Exclude<CompDocKeys, (keyof (InheritDoc & SubDataDoc & SubStoreDoc))> | InnerFields<Prefix>, {
41
+ type Options<RootDoc extends RootComponentType, IsPage extends boolean, CurrentCompDoc extends ComponentType, Prefix extends string, AllRootDataDoc extends object, TInherit extends object, TSubData extends object, TSubStore extends object, TSubComputed extends object, TEvents extends object, TSubMethods extends SubMethodsConstraint, InheritDoc extends object, SubDataDoc extends object, SubStoreDoc extends object, SubComputedDoc extends object, SubEventsDoc extends object, SubMethodsDoc extends object, CompDocKeys extends PropertyKey = keyof CurrentCompDoc["properties"]> = SubInheritOption<TInherit, {
42
+ [k in keyof NoInfer<TInherit>]: k extends keyof (AllRootDataDoc) ? never : k extends CompDocKeys ? k : never;
43
+ }[keyof NoInfer<TInherit>]> & SubDataOption<TSubData, {
44
+ [k in keyof NoInfer<TSubData>]: k extends keyof (AllRootDataDoc) ? never : k extends Exclude<CompDocKeys, (keyof (InheritDoc))> ? k : k extends InnerFields<Prefix> ? k : never;
45
+ }[keyof NoInfer<TSubData>]> & SubStoreOption<TSubStore, {
46
+ [k in keyof NoInfer<TSubStore>]: k extends keyof (AllRootDataDoc & SubDataDoc) ? never : k extends Exclude<CompDocKeys, (keyof (InheritDoc & SubDataDoc))> ? k : k extends InnerFields<Prefix> ? k : never;
47
+ }[keyof NoInfer<TSubStore>]> & SubComputedOption<TSubComputed, {
48
+ [k in keyof NoInfer<TSubComputed>]: k extends keyof (AllRootDataDoc & SubDataDoc & SubStoreDoc) ? never : k extends Exclude<CompDocKeys, (keyof (InheritDoc & SubDataDoc & SubStoreDoc))> ? k : k extends InnerFields<Prefix> ? k : never;
49
+ }[keyof NoInfer<TSubComputed>], {
42
50
  data: ComputeObject<AllRootDataDoc & Replace<SubComputedDoc, Required<CurrentCompDoc["properties"]>> & SubStoreDoc & SubDataDoc & IInjectAllData>;
43
51
  }> & SubEventsOption<TEvents, SubEventsDoc, keyof SubEventsConstraint<CurrentCompDoc>> & SubMethodsOption<TSubMethods, Prefix, keyof (CurrentCompDoc["customEvents"] & SubEventsDoc)> & SubPageLifetimesOption<IsPage, NonNullable<RootDoc["properties"]>> & SubLifetimesOption & SubWatchOption<SubComputedDoc & SubDataDoc & AllRootDataDoc & SubStoreDoc & IInjectStore> & Partial<Omit<WMCompOtherOption, "pageLifetimes" | "definitionFilter" | "export" | "observers" | "relations">> & SubObserversOption<SubComputedDoc & SubDataDoc & AllRootDataDoc & SubStoreDoc & IInjectStore> & ThisType<SubInstance<SubMethodsDoc & RootDoc["methods"], Replace<SubDataDoc, Required<CurrentCompDoc["properties"]>>, AllRootDataDoc & Replace<SubDataDoc & SubComputedDoc & SubStoreDoc, Required<CurrentCompDoc["properties"]>>, NonNullable<RootDoc["customEvents"]>, SubStoreDoc>>;
44
52
  type SubComponentConstructor<TRootDoc extends RootComponentType, TOriginalCompDoc extends ComponentType, TSupplementalPrefix extends string = "", IsPage extends boolean = TRootDoc["isPage"] extends true ? true : false, CurrentPrefix extends string = `${GetComponentPrefix<TOriginalCompDoc>}${Capitalize<TSupplementalPrefix>}`, CurrentCompDoc extends ComponentType = IfExtends<TSupplementalPrefix, "", TOriginalCompDoc & {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/SubComponent/index.ts"],"names":[],"mappings":"AA4OA;;;GAGG;AACH,MAAM,UAAU,YAAY;IAK1B,8DAA8D;IAC9D,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE,CAAC,OAAkC,CAAQ,CAAC;AACvE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/SubComponent/index.ts"],"names":[],"mappings":"AA8RA;;;GAGG;AACH,MAAM,UAAU,YAAY;IAK1B,8DAA8D;IAC9D,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE,CAAC,OAAkC,CAAQ,CAAC;AACvE,CAAC"}
@@ -16,5 +16,15 @@ type NavigateToOption<T extends PageDoc> = {
16
16
  * test页面onLoad(data)的参数data接受内容为` data = {num:"123",obj:"{"name":"zhao"}"}`即默认的url传的数据值为字符串,需要在接收时自行解析(JSON.parse)。且url采取ASCII编码只能接受0x20-0x7e区间的符号。无法使用一些特殊符号 如 ` :/?#[]@!$&'()*+,;= `。
17
17
  * navigateTo API 为 wx.navigateTo的语法糖,增加了data字段,最终的url数据拼接了通过encodeURIComponent编码(支持默认忽略的特殊符号)的data字段,在跳转页面的onload中通过decodeURIComponent解析url赋值给实例的data对象。为求使用时更加方便(无需对参数data解析再赋值)。且有ts类型提示。
18
18
  */
19
- export declare function navigateTo<TPageDoc extends PageDoc = never>(option: NoInfer<NavigateToOption<TPageDoc>>): Promise<WechatMiniprogram.NavigateToSuccessCallbackResult>;
19
+ export declare function navigateTo<TPageDoc extends PageDoc = never>(option: NoInfer<NavigateToOption<TPageDoc>>, onBack?: (res: unknown) => void): Promise<WechatMiniprogram.NavigateToSuccessCallbackResult>;
20
+ type WMNavigateBackOption = WechatMiniprogram.NavigateBackOption;
21
+ type NavigateBackOption<Data> = WMNavigateBackOption & {
22
+ data?: Data;
23
+ };
24
+ /**
25
+ * @param options
26
+ * @returns
27
+ */
28
+ export declare function navigateBack<Data, T extends NavigateBackOption<Data> = NavigateBackOption<Data>>(options?: T): WechatMiniprogram.PromisifySuccessResult<T, WMNavigateBackOption>;
29
+ export declare function redirectTo<TPageDoc extends PageDoc = never>(option: NoInfer<NavigateToOption<TPageDoc>>): Promise<WechatMiniprogram.GeneralCallbackResult>;
20
30
  export {};
@@ -10,12 +10,14 @@ function _encodeURIComponent(option) {
10
10
  Reflect.deleteProperty(option, "data");
11
11
  return Object.assign(result, option);
12
12
  }
13
+ const backFuncs = [];
13
14
  /**
14
15
  * 页面onload参数中接受的数据值是传递的url解析后的字符串。例如:A页面通过`wx.navigateTo({url:'/pages/test/test?num=123&obj={"name":"zhao"}'})`
15
16
  * test页面onLoad(data)的参数data接受内容为` data = {num:"123",obj:"{"name":"zhao"}"}`即默认的url传的数据值为字符串,需要在接收时自行解析(JSON.parse)。且url采取ASCII编码只能接受0x20-0x7e区间的符号。无法使用一些特殊符号 如 ` :/?#[]@!$&'()*+,;= `。
16
17
  * navigateTo API 为 wx.navigateTo的语法糖,增加了data字段,最终的url数据拼接了通过encodeURIComponent编码(支持默认忽略的特殊符号)的data字段,在跳转页面的onload中通过decodeURIComponent解析url赋值给实例的data对象。为求使用时更加方便(无需对参数data解析再赋值)。且有ts类型提示。
17
18
  */
18
- export function navigateTo(option) {
19
+ export function navigateTo(option, onBack) {
20
+ backFuncs.push(onBack);
19
21
  // @ts-ignore 隐式索引
20
22
  if (!option.data) {
21
23
  return wx.navigateTo(option);
@@ -24,4 +26,34 @@ export function navigateTo(option) {
24
26
  return wx.navigateTo(_encodeURIComponent(option));
25
27
  }
26
28
  }
27
- //# sourceMappingURL=navigateTo.js.map
29
+ /**
30
+ * @param options
31
+ * @returns
32
+ */
33
+ export function navigateBack(options) {
34
+ const backFunc = backFuncs.pop();
35
+ if (backFunc) {
36
+ if (!options || options.data === undefined) {
37
+ throw new Error("navigateBack 需要带有data参数的配置对象,因为返回的组件需要data数据");
38
+ }
39
+ const data = options.data;
40
+ const complete = options.complete;
41
+ options.complete = (res) => {
42
+ backFunc(data);
43
+ if (complete) {
44
+ complete(res);
45
+ }
46
+ };
47
+ }
48
+ return wx.navigateBack(options);
49
+ }
50
+ export function redirectTo(option) {
51
+ // @ts-ignore 隐式索引
52
+ if (!option.data) {
53
+ return wx.redirectTo(option);
54
+ }
55
+ else {
56
+ return wx.redirectTo(_encodeURIComponent(option));
57
+ }
58
+ }
59
+ //# sourceMappingURL=wxSugar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wxSugar.js","sourceRoot":"","sources":["../../src/api/wxSugar.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAwBnD;;GAEG;AACH,SAAS,mBAAmB,CAC1B,MAAuE;IAEvE,MAAM,MAAM,GAAuB;QACjC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,WAAW,CAAC,GAAG,IACnC,kBAAkB,CAChB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAE/B,EAAE;KACH,CAAC;IAEF,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAEtC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEvC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AACD,MAAM,SAAS,GAAmD,EAAE,CAAC;AACrE;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACxB,MAA2C,EAC3C,MAA+B;IAE/B,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,kBAAkB;IAClB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,OAAO,EAAE,CAAC,UAAU,CAClB,mBAAmB,CAAC,MAAuD,CAAC,CAC7E,CAAC;IACJ,CAAC;AACH,CAAC;AAID;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,OAAW;IAEX,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC;IACjC,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,OAAO,CAAC,QAAQ,GAAG,CAAC,GAAG,EAAE,EAAE;YACzB,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AACD,MAAM,UAAU,UAAU,CACxB,MAA2C;IAE3C,kBAAkB;IAClB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,OAAO,EAAE,CAAC,UAAU,CAClB,mBAAmB,CAAC,MAAuD,CAAC,CAC7E,CAAC;IACJ,CAAC;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { DefineComponent } from "./api/DefineComponent";
2
2
  import { type IInjectInfo, instanceConfig } from "./api/InstanceInject/instanceConfig";
3
- import { navigateTo } from "./api/navigateTo";
4
3
  import { RootComponent } from "./api/RootComponent";
5
4
  import { SubComponent } from "./api/SubComponent";
5
+ import { navigateBack, navigateTo, redirectTo } from "./api/wxSugar";
6
6
  import type { CreateComponentType } from "./types/CreateComponentType";
7
7
  import type { DetailedType } from "./types/DetailedType";
8
8
  import type { ExtendComponentType } from "./types/ExtendComponentType";
@@ -11,4 +11,4 @@ export * from "./utils/_utils";
11
11
  export type { Bubbles, BubblesCapture, BubblesCaptureComposed, BubblesComposed, Capture, CaptureComposed, Composed, CustomEventsTags, } from "./api/RootComponent/CustomEvents/CustomEventsTag";
12
12
  export type { Vant, Wm } from "./thirdLib";
13
13
  export type { CurrentTargetDataset, Dataset, Detail, Mark, TargetDataset, WMBaseEvent, WMCustomEvent, } from "./types/OfficialTypeAlias";
14
- export { type CreateComponentType, DefineComponent, type DetailedType, type ExtendComponentType, type IInjectInfo, instanceConfig, navigateTo, type ParamsEqual, RootComponent, SubComponent, };
14
+ export { type CreateComponentType, DefineComponent, type DetailedType, type ExtendComponentType, type IInjectInfo, instanceConfig, navigateBack, navigateTo, type ParamsEqual, redirectTo, RootComponent, SubComponent, };
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { DefineComponent } from "./api/DefineComponent";
2
2
  import { instanceConfig } from "./api/InstanceInject/instanceConfig";
3
- import { navigateTo } from "./api/navigateTo";
4
3
  import { RootComponent } from "./api/RootComponent";
5
4
  import { SubComponent } from "./api/SubComponent";
5
+ import { navigateBack, navigateTo, redirectTo } from "./api/wxSugar";
6
6
  export * from "./utils/_utils";
7
- export { DefineComponent, instanceConfig, navigateTo, RootComponent, SubComponent, };
7
+ export { DefineComponent, instanceConfig, navigateBack, navigateTo, redirectTo, RootComponent, SubComponent, };
8
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;AAKlD,cAAc,gBAAgB,CAAC;AAwB/B,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,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAKrE,cAAc,gBAAgB,CAAC;AAwB/B,OAAO,EAEL,eAAe,EAIf,cAAc,EACd,YAAY,EACZ,UAAU,EAEV,UAAU,EACV,aAAa,EACb,YAAY,GACb,CAAC"}
@@ -2,3 +2,4 @@ export type { ScrollView } from "./scrollView";
2
2
  export type { Swiper } from "./swiper";
3
3
  export type { View } from "./view";
4
4
  export type { Textarea } from "./Textarea";
5
+ export type { Map } from "./map";
@@ -0,0 +1,201 @@
1
+ import type { CreateComponentType } from "../../types/CreateComponentType";
2
+ type RegionChangeBegin = {
3
+ type: "begin";
4
+ causedBy: "gesture" | "update";
5
+ };
6
+ export type MarkLocation = {
7
+ latitude: number;
8
+ longitude: number;
9
+ };
10
+ type RegionChangeEnd = {
11
+ type: "end";
12
+ causedBy: "drag" | "scale" | "update";
13
+ centerLocation: MarkLocation;
14
+ region: {
15
+ northeast: MarkLocation;
16
+ southwest: MarkLocation;
17
+ };
18
+ rotate: number;
19
+ scale: number;
20
+ skew: number;
21
+ };
22
+ type RegionChangeDetail = RegionChangeBegin | RegionChangeEnd;
23
+ export type Callout = {
24
+ content: string;
25
+ display: "ALWAYS" | "BYCLICK";
26
+ color?: string;
27
+ fontSize?: string | number;
28
+ borderWidth?: number;
29
+ borderRadius?: number;
30
+ borderColor?: string;
31
+ bgColor?: string;
32
+ padding?: number;
33
+ textAlign?: "center" | "left" | "right";
34
+ /**
35
+ * 横向偏移量,向右为正数 number 2.11.0
36
+ */
37
+ anchorX?: number;
38
+ /**
39
+ * anchorY 纵向偏移量,向下为正数 number 2.11.0
40
+ */
41
+ anchorYL?: number;
42
+ };
43
+ export type Marker = {
44
+ id: number;
45
+ width: number | string;
46
+ height: number | string;
47
+ clusterId?: number;
48
+ joinCluster?: boolean;
49
+ latitude: number;
50
+ longitude: number;
51
+ title?: string;
52
+ zIndex?: number;
53
+ iconPath: string;
54
+ rotate?: number;
55
+ alpha?: number;
56
+ callout?: Callout;
57
+ customCallout?: Callout;
58
+ label?: Callout;
59
+ anchor?: {
60
+ x: number;
61
+ y: number;
62
+ };
63
+ ariaLabel?: string;
64
+ collisionRelation?: string;
65
+ collision?: string;
66
+ };
67
+ export type Circle = {
68
+ latitude: number;
69
+ longitude: number;
70
+ radius: number;
71
+ color?: string;
72
+ fillColor?: string;
73
+ strokeWidth?: number;
74
+ level?: string;
75
+ };
76
+ export type Polygon = {
77
+ dashArray?: number[];
78
+ points: MarkLocation[];
79
+ strokeWidth?: number;
80
+ strokeColor?: string;
81
+ fillColor?: string;
82
+ zIndex?: number;
83
+ level?: string;
84
+ };
85
+ export type Polyline = {
86
+ points: MarkLocation[];
87
+ color?: string;
88
+ colorList?: string[];
89
+ width?: number;
90
+ dottedLine?: boolean;
91
+ arrowLine?: boolean;
92
+ arrowIconPath?: string;
93
+ borderColor?: string;
94
+ borderWidth?: number;
95
+ level?: string;
96
+ textStyle?: TextStyle;
97
+ segmentTexts?: SegmentText[];
98
+ };
99
+ export type TextStyle = {
100
+ textColor?: string;
101
+ strokeColor?: string;
102
+ fontSize?: number;
103
+ };
104
+ export type SegmentText = {
105
+ name: string;
106
+ startIndex: string;
107
+ endIndex: number;
108
+ };
109
+ export type Map = CreateComponentType<"map", {
110
+ properties: {
111
+ latitude: number;
112
+ longitude: number;
113
+ scale?: number;
114
+ minScale?: number;
115
+ maxScale?: number;
116
+ markers?: Marker[];
117
+ covers?: Marker[];
118
+ polyline?: Polyline[];
119
+ circles?: Circle[];
120
+ controls?: Marker[];
121
+ includePoints?: Marker[];
122
+ /**
123
+ * 显示带有方向的当前定位点 1.0.0
124
+ */
125
+ showLocation?: boolean;
126
+ polygons?: Polygon[];
127
+ subkey?: string;
128
+ layerStyle?: number;
129
+ rotate?: number;
130
+ skew?: number;
131
+ enable3D?: boolean;
132
+ showCompass?: boolean;
133
+ showScale?: boolean;
134
+ enableOverlooking?: boolean;
135
+ enableAutoMaxOverlooking?: boolean;
136
+ enableZoom?: boolean;
137
+ enableScroll?: boolean;
138
+ enableRotate?: boolean;
139
+ enableSatellite?: boolean;
140
+ enableTraffic?: boolean;
141
+ enablePOI?: boolean;
142
+ enableBuilding?: boolean;
143
+ setting?: object;
144
+ };
145
+ customEvents: {
146
+ tap: MarkLocation;
147
+ markertap: {
148
+ markerId: number;
149
+ };
150
+ labeltap: {
151
+ markerId: number;
152
+ };
153
+ controltap: {
154
+ controlId: number;
155
+ };
156
+ callouttap: {
157
+ markerId: number;
158
+ };
159
+ updated: undefined;
160
+ /**
161
+ * 视野改变时,regionchange 会触发两次,返回的 type 值分别为 begin 和 end。
162
+ * 2.8.0 起 begin 阶段返回 causedBy,有效值为 gesture(手势触发) & update(接口触发)
163
+ * 2.3.0 起 end 阶段返回 causedBy,有效值为 drag(拖动导致)、scale(缩放导致)、update(调用更新接口导致)
164
+ */
165
+ regionchange: RegionChangeDetail;
166
+ poitap: {
167
+ name: string;
168
+ longitude: number;
169
+ latitude: number;
170
+ };
171
+ polylinetap: {
172
+ longitude: number;
173
+ latitude: number;
174
+ };
175
+ abilitysuccess: {
176
+ ability: string;
177
+ errCode: number;
178
+ errMsg: string;
179
+ };
180
+ abilityfail: {
181
+ ability: string;
182
+ errCode: number;
183
+ errMsg: string;
184
+ };
185
+ authsuccess: {
186
+ errCode: number;
187
+ errMsg: string;
188
+ };
189
+ interpolatepoint: {
190
+ markerId: number;
191
+ longitude: number;
192
+ latitude: number;
193
+ animationStatus: "interpolating" | "complete";
194
+ };
195
+ error: {
196
+ longitude: number;
197
+ latitude: number;
198
+ };
199
+ };
200
+ }>;
201
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map.js","sourceRoot":"","sources":["../../../src/thirdLib/wm/map.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import type { Func } from "hry-types/src/Misc/Func";
2
+ /**
3
+ * 对象中的函数应用防抖和节流
4
+ * 规则 函数字段已下划线开始的后缀 如 xxx_debounced500 或 sub_xxx_throttled,无效后缀如 _debouncedxxx 不会被处理
5
+ * @param obj
6
+ */
7
+ export declare function applyDebounceAndThrottle(obj: Record<string, Func>): void;
@@ -0,0 +1,28 @@
1
+ import { debounce } from "./debounce";
2
+ import { throttle } from "./throttle";
3
+ /**
4
+ * 对象中的函数应用防抖和节流
5
+ * 规则 函数字段已下划线开始的后缀 如 xxx_debounced500 或 sub_xxx_throttled,无效后缀如 _debouncedxxx 不会被处理
6
+ * @param obj
7
+ */
8
+ export function applyDebounceAndThrottle(obj) {
9
+ for (const [key, value] of Object.entries(obj)) {
10
+ if (!key.includes("_"))
11
+ continue;
12
+ const suffix = key.split("_").at(-1);
13
+ const remaining = suffix.slice(9);
14
+ const delay = remaining === "" ? 300 : Number(remaining);
15
+ if (suffix.startsWith("debounced")) {
16
+ if (!isNaN(delay)) {
17
+ obj[key] = debounce(value, delay);
18
+ }
19
+ continue;
20
+ }
21
+ if (suffix.startsWith("throttled")) {
22
+ if (!isNaN(delay)) {
23
+ obj[key] = throttle(value, delay);
24
+ }
25
+ }
26
+ }
27
+ }
28
+ //# sourceMappingURL=applyDebounceAndThrottle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyDebounceAndThrottle.js","sourceRoot":"","sources":["../../src/utils/applyDebounceAndThrottle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,GAAyB;IAChE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,SAAS;QACjC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAW,CAAC;QAE/C,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAEzD,IAAI,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClB,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACpC,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClB,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,9 +1,11 @@
1
+ type Callback = (...args: any[]) => any;
1
2
  /**
2
3
  * 防抖函数
3
4
  * 注意 需要在tsconfig.json的types中添加"node",否则NodeJS.Timeout会报错
4
- * 例如 应用在输入框输入时,只有在输入完成并delay后,才会触发搜索,
5
+ * 例如 在input框输入内容时,只有输入停止一段时间(wait)后,才会触发输入事件.
5
6
  * @param func
6
- * @param delay
7
+ * @param wait
7
8
  * @returns
8
9
  */
9
- export declare function debounce<F extends (...args: any[]) => any>(func: F, delay: number): (...args: Parameters<F>) => void;
10
+ export declare function debounce<F extends Callback>(func: F, wait?: number): (...args: Parameters<F>) => void;
11
+ export {};
@@ -1,19 +1,19 @@
1
1
  /**
2
2
  * 防抖函数
3
3
  * 注意 需要在tsconfig.json的types中添加"node",否则NodeJS.Timeout会报错
4
- * 例如 应用在输入框输入时,只有在输入完成并delay后,才会触发搜索,
4
+ * 例如 在input框输入内容时,只有输入停止一段时间(wait)后,才会触发输入事件.
5
5
  * @param func
6
- * @param delay
6
+ * @param wait
7
7
  * @returns
8
8
  */
9
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
10
- export function debounce(func, delay) {
9
+ /* istanbul ignore next */
10
+ export function debounce(func, wait = 300) {
11
11
  let timeoutId = null;
12
- return (...args) => {
12
+ return function (...args) {
13
13
  if (timeoutId) {
14
14
  clearTimeout(timeoutId);
15
15
  }
16
- timeoutId = setTimeout(() => func(...args), delay);
16
+ timeoutId = setTimeout(() => func.call(this, ...args), wait);
17
17
  };
18
18
  }
19
19
  //# sourceMappingURL=debounce.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"debounce.js","sourceRoot":"","sources":["../../src/utils/debounce.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,8DAA8D;AAC9D,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
+ {"version":3,"file":"debounce.js","sourceRoot":"","sources":["../../src/utils/debounce.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,2BAA2B;AAC3B,MAAM,UAAU,QAAQ,CAAqB,IAAO,EAAE,IAAI,GAAG,GAAG;IAC9D,IAAI,SAAS,GAA0B,IAAI,CAAC;IAE5C,OAAO,UAAwB,GAAG,IAAmB;QACnD,IAAI,SAAS,EAAE,CAAC;YACd,YAAY,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;QAED,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/D,CAAC,CAAC;AACJ,CAAC"}
@@ -5,13 +5,14 @@
5
5
  * @param interval 单位毫秒
6
6
  * @returns
7
7
  */
8
+ /* istanbul ignore next */
8
9
  export function throttle(callback, interval = 200) {
9
10
  let lastCall = 0;
10
11
  return function (...args) {
11
12
  const now = Date.now();
12
13
  if (now - lastCall >= interval) {
13
14
  lastCall = now;
14
- callback(...args);
15
+ callback.call(this, ...args);
15
16
  }
16
17
  };
17
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"throttle.js","sourceRoot":"","sources":["../../src/utils/throttle.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAqB,QAAW,EAAE,QAAQ,GAAG,GAAG;IACtE,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,OAAO,UAAS,GAAG,IAAmB;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,IAAI,GAAG,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAC/B,QAAQ,GAAG,GAAG,CAAC;YAEf,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"throttle.js","sourceRoot":"","sources":["../../src/utils/throttle.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,2BAA2B;AAC3B,MAAM,UAAU,QAAQ,CAAqB,QAAW,EAAE,QAAQ,GAAG,GAAG;IACtE,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,OAAO,UAAwB,GAAG,IAAmB;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,IAAI,GAAG,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAC/B,QAAQ,GAAG,GAAG,CAAC;YAEf,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "annil",
3
- "version": "1.8.3",
3
+ "version": "1.10.1",
4
4
  "description": "微信小程序(原生开发)插件",
5
5
  "main": "dist/index.js",
6
6
  "types": "src/index.ts",
@@ -0,0 +1,9 @@
1
+ import type { Instance } from "../../../RootComponent/Instance/RootComponentInstance";
2
+
3
+ export function pagePathCheck(path?: string) {
4
+ return function(this: Instance) {
5
+ if (path && `/${this.is}` !== path) {
6
+ throw new Error(`页面路径错误,应为 /${this.is}`);
7
+ }
8
+ };
9
+ }