annil 1.11.0-alpha.4 → 1.12.0-alpha.4
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/CHANGELOG.md +14 -0
- package/dist/api/DefineComponent/NameOrPage/NameOrPathOption.d.ts +0 -9
- package/dist/api/DefineComponent/ReturnType/ComponentType.d.ts +0 -9
- package/dist/api/DefineComponent/ReturnType/CreateComponentDoc.d.ts +1 -1
- package/dist/api/DefineComponent/ReturnType/GetCustomEventDocOfSubDoc.d.ts +3 -10
- package/dist/api/DefineComponent/ReturnType/PageDoc.d.ts +0 -9
- package/dist/api/DefineComponent/RootComponent/RootComponentOption.d.ts +0 -6
- package/dist/api/DefineComponent/SubComponents/SubComponentsOption.d.ts +0 -6
- package/dist/api/DefineComponent/index.d.ts +0 -3
- package/dist/api/DefineComponent/index.js +1 -7
- package/dist/api/DefineComponent/index.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/computedUpdater.js +9 -8
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/computedUpdater.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/data-tracer.js +16 -6
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/data-tracer.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/dependencesOptimize.js +4 -9
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/dependencesOptimize.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/getPathsValue.d.ts +1 -7
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/getPathsValue.js +2 -13
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/getPathsValue.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/getPropertiesValue.js +0 -5
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/getPropertiesValue.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/index.js +0 -9
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/index.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/initComputedAndGetCache.d.ts +0 -9
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/initComputedAndGetCache.js +0 -21
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/initComputedAndGetCache.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/customEventsHandle.d.ts +0 -3
- package/dist/api/DefineComponent/normalizeOptions/customEventsHandle.js +0 -5
- package/dist/api/DefineComponent/normalizeOptions/customEventsHandle.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/index.d.ts +0 -3
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/index.js +0 -6
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/index.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/isPageCheck.d.ts +0 -3
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/isPageCheck.js +0 -5
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/isPageCheck.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/loadReceivedDataHandle.d.ts +0 -4
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/loadReceivedDataHandle.js +0 -8
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/loadReceivedDataHandle.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/onLoadReceivedDataHandle.d.ts +0 -7
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/onLoadReceivedDataHandle.js +0 -11
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/onLoadReceivedDataHandle.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/index.d.ts +0 -12
- package/dist/api/DefineComponent/normalizeOptions/index.js +0 -21
- package/dist/api/DefineComponent/normalizeOptions/index.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/initStore/index.js +0 -2
- package/dist/api/DefineComponent/normalizeOptions/initStore/index.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/injectInfoHandler.js +0 -13
- package/dist/api/DefineComponent/normalizeOptions/injectInfoHandler.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/internalFieldProtection.d.ts +0 -3
- package/dist/api/DefineComponent/normalizeOptions/internalFieldProtection.js +1 -6
- package/dist/api/DefineComponent/normalizeOptions/internalFieldProtection.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/otherFieldsHandle.d.ts +0 -3
- package/dist/api/DefineComponent/normalizeOptions/otherFieldsHandle.js +0 -9
- package/dist/api/DefineComponent/normalizeOptions/otherFieldsHandle.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/rootComponentOptionHandle.d.ts +0 -6
- package/dist/api/DefineComponent/normalizeOptions/rootComponentOptionHandle.js +0 -7
- package/dist/api/DefineComponent/normalizeOptions/rootComponentOptionHandle.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/sameFuncFieldsCollect.d.ts +0 -3
- package/dist/api/DefineComponent/normalizeOptions/sameFuncFieldsCollect.js +0 -4
- package/dist/api/DefineComponent/normalizeOptions/sameFuncFieldsCollect.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/sameFuncOptionsHandle.d.ts +0 -3
- package/dist/api/DefineComponent/normalizeOptions/sameFuncOptionsHandle.js +0 -9
- package/dist/api/DefineComponent/normalizeOptions/sameFuncOptionsHandle.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/slotComponentsOptionHandle.d.ts +0 -6
- package/dist/api/DefineComponent/normalizeOptions/slotComponentsOptionHandle.js +0 -6
- package/dist/api/DefineComponent/normalizeOptions/slotComponentsOptionHandle.js.map +1 -1
- package/dist/api/InstanceInject/instanceConfig.d.ts +0 -3
- package/dist/api/InstanceInject/instanceConfig.js +0 -3
- package/dist/api/InstanceInject/instanceConfig.js.map +1 -1
- package/dist/api/RootComponent/Computed/ComputedConstraint.d.ts +0 -3
- package/dist/api/RootComponent/Computed/ComputedOption.d.ts +0 -23
- package/dist/api/RootComponent/Computed/GetComputedDoc.d.ts +0 -5
- package/dist/api/RootComponent/CustomEvents/CustomEventConstraint.d.ts +0 -3
- package/dist/api/RootComponent/CustomEvents/CustomEventsOption.d.ts +0 -29
- package/dist/api/RootComponent/CustomEvents/GetCustomEventDoc.d.ts +0 -13
- package/dist/api/RootComponent/Data/DataOption.d.ts +0 -14
- package/dist/api/RootComponent/Events/EventsConstraint.d.ts +0 -3
- package/dist/api/RootComponent/Events/EventsOption.d.ts +0 -52
- package/dist/api/RootComponent/Instance/CustomSetData.d.ts +0 -6
- package/dist/api/RootComponent/IsPage/IsPageOption.d.ts +0 -3
- package/dist/api/RootComponent/Lifetimes/LifetimesConstraint.d.ts +0 -3
- package/dist/api/RootComponent/Lifetimes/LifetimesOption.d.ts +0 -26
- package/dist/api/RootComponent/Methods/MethodsOption.d.ts +0 -3
- package/dist/api/RootComponent/Observers/ObserversOption.d.ts +0 -4
- package/dist/api/RootComponent/PageLifetimes/PageLifetimesOption.d.ts +0 -11
- package/dist/api/RootComponent/Properties/GetOptionalDoc.d.ts +0 -3
- package/dist/api/RootComponent/Properties/GetPropertiesDoc.d.ts +0 -4
- package/dist/api/RootComponent/Properties/GetRequiredDoc.d.ts +0 -4
- package/dist/api/RootComponent/Properties/PropertiesConstraint.d.ts +0 -18
- package/dist/api/RootComponent/Properties/PropertiesOption.d.ts +0 -10
- package/dist/api/RootComponent/Properties/PropertiesValueValidator.d.ts +0 -4
- package/dist/api/RootComponent/RootComponentType.d.ts +0 -20
- package/dist/api/RootComponent/Store/StoreOption.d.ts +0 -12
- package/dist/api/RootComponent/Watch/WatchOption.d.ts +0 -4
- package/dist/api/RootComponent/index.js +0 -1
- package/dist/api/RootComponent/index.js.map +1 -1
- package/dist/api/SlotComponent/SLotSuperDatas/SlotSuperDatasOption.d.ts +0 -3
- package/dist/api/SlotComponent/SlotComponentReturnType.js +0 -7
- package/dist/api/SlotComponent/SlotComponentReturnType.js.map +1 -1
- package/dist/api/SlotComponent/SlotComputed/GetSlotComputedDoc.d.ts +0 -5
- package/dist/api/SlotComponent/SlotComputed/SlotComputedOption.d.ts +0 -23
- package/dist/api/SlotComponent/SlotData/SlotDataOption.d.ts +0 -3
- package/dist/api/SlotComponent/SlotEvents/SlotEventsOption.d.ts +0 -3
- package/dist/api/SlotComponent/SlotMethods/SlotMethodsOption.d.ts +0 -3
- package/dist/api/SlotComponent/SlotStore/SlotStoreOption.d.ts +0 -12
- package/dist/api/SlotComponent/index.js +0 -1
- package/dist/api/SlotComponent/index.js.map +1 -1
- package/dist/api/SubComponent/SubComponentType.d.ts +0 -9
- package/dist/api/SubComponent/SubData/SubDataConstraint.d.ts +0 -4
- package/dist/api/SubComponent/SubData/SubDataOption.d.ts +0 -4
- package/dist/api/SubComponent/SubEvents/SubEventsConstraint.d.ts +0 -3
- package/dist/api/SubComponent/SubEvents/SubEventsOptions.d.ts +0 -5
- package/dist/api/SubComponent/SubInherit/SubInheritConstraint.d.ts +0 -4
- package/dist/api/SubComponent/SubInherit/SubInheritOption.d.ts +0 -5
- package/dist/api/SubComponent/SubMethods/SubMethodsOption.d.ts +0 -3
- package/dist/api/SubComponent/SubReturnType/CreateSubComponentDoc.d.ts +1 -1
- package/dist/api/SubComponent/SubStore/SubStoreConstraint.d.ts +0 -4
- package/dist/api/SubComponent/SubStore/SubStoreOption.d.ts +0 -14
- package/dist/api/SubComponent/index.d.ts +2 -8
- package/dist/api/SubComponent/index.js +0 -6
- package/dist/api/SubComponent/index.js.map +1 -1
- package/dist/api/wxSugar.d.ts +0 -9
- package/dist/api/wxSugar.js +0 -14
- package/dist/api/wxSugar.js.map +1 -1
- package/dist/behaviors/BStore.d.ts +0 -4
- package/dist/behaviors/BStore.js +0 -12
- package/dist/behaviors/BStore.js.map +1 -1
- package/dist/behaviors/BbeforeCreated.d.ts +0 -3
- package/dist/behaviors/BbeforeCreated.js +0 -5
- package/dist/behaviors/BbeforeCreated.js.map +1 -1
- package/dist/thirdLib/vant/Button.d.ts +0 -12
- package/dist/thirdLib/vant/Popup.d.ts +0 -40
- package/dist/thirdLib/wm/Textarea.d.ts +0 -81
- package/dist/thirdLib/wm/baseEvents.d.ts +0 -36
- package/dist/thirdLib/wm/map.d.ts +0 -14
- package/dist/thirdLib/wm/scrollView.js +0 -6
- package/dist/thirdLib/wm/scrollView.js.map +1 -1
- package/dist/thirdLib/wm/swiper.d.ts +0 -71
- package/dist/thirdLib/wm/view.d.ts +0 -16
- package/dist/types/AddNullForObject.d.ts +0 -3
- package/dist/types/AddPrefix.d.ts +0 -7
- package/dist/types/Assert.d.ts +1 -0
- package/dist/types/Assert.js +2 -0
- package/dist/types/Assert.js.map +1 -0
- package/dist/types/CreateComponentType.d.ts +0 -21
- package/dist/types/DetailedType.d.ts +0 -14
- package/dist/types/ExtendComponentType.d.ts +0 -27
- package/dist/types/ExtendComponentType.js +0 -4
- package/dist/types/ExtendComponentType.js.map +1 -1
- package/dist/types/GetComponentPrefix.d.ts +0 -3
- package/dist/types/GetComponentPrefix.js +0 -10
- package/dist/types/GetComponentPrefix.js.map +1 -1
- package/dist/types/InferDetailedType.d.ts +0 -3
- package/dist/types/OfficialTypeAlias.d.ts +0 -15
- package/dist/types/OfficialTypeAlias.js +0 -30
- package/dist/types/OfficialTypeAlias.js.map +1 -1
- package/dist/types/RemoveInnerData.d.ts +0 -3
- package/dist/types/RemoveNullOfRequired.d.ts +0 -3
- package/dist/types/Replace.d.ts +0 -11
- package/dist/types/ReplacePrefix.d.ts +0 -5
- package/dist/types/ReplacePrefix.js +0 -9
- package/dist/types/ReplacePrefix.js.map +1 -1
- package/dist/types/RequiredKeys.d.ts +0 -4
- package/dist/types/Validators.js +0 -7
- package/dist/types/Validators.js.map +1 -1
- package/dist/utils/InnerMarker.js +1 -1
- package/dist/utils/InnerMarker.js.map +1 -1
- package/dist/utils/applyDebounceAndThrottle.d.ts +0 -5
- package/dist/utils/applyDebounceAndThrottle.js +0 -5
- package/dist/utils/applyDebounceAndThrottle.js.map +1 -1
- package/dist/utils/debounce.d.ts +0 -8
- package/dist/utils/debounce.js +0 -9
- package/dist/utils/debounce.js.map +1 -1
- package/dist/utils/deepClone.d.ts +0 -3
- package/dist/utils/deepClone.js +0 -3
- package/dist/utils/deepClone.js.map +1 -1
- package/dist/utils/deepEqual.js +0 -5
- package/dist/utils/deepEqual.js.map +1 -1
- package/dist/utils/isEmptyObject.d.ts +0 -4
- package/dist/utils/isEmptyObject.js +0 -4
- package/dist/utils/isEmptyObject.js.map +1 -1
- package/dist/utils/nonNullable.d.ts +0 -5
- package/dist/utils/nonNullable.js +0 -6
- package/dist/utils/nonNullable.js.map +1 -1
- package/dist/utils/throttle.d.ts +0 -7
- package/dist/utils/throttle.js +0 -8
- package/dist/utils/throttle.js.map +1 -1
- package/package.json +2 -2
- package/src/api/DefineComponent/ReturnType/CreateComponentDoc.ts +1 -1
- package/src/api/DefineComponent/ReturnType/GetCustomEventDocOfSubDoc.ts +8 -4
- package/src/api/DefineComponent/ReturnType/test/normalComponentDoc.test.ts +23 -1
- package/src/api/DefineComponent/normalizeOptions/computedWatchHandle/computedUpdater.ts +12 -5
- package/src/api/DefineComponent/normalizeOptions/computedWatchHandle/data-tracer.ts +19 -3
- package/src/api/DefineComponent/normalizeOptions/computedWatchHandle/dependencesOptimize.ts +19 -8
- package/src/api/DefineComponent/normalizeOptions/computedWatchHandle/getPathsValue.ts +4 -4
- package/src/api/SubComponent/SubReturnType/CreateSubComponentDoc.ts +2 -1
- package/src/types/Assert.ts +1 -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.12.0-alpha.4](https://github.com/missannil/annil/compare/v1.11.1-alpha.4...v1.12.0-alpha.4) (2025-02-24)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Features
|
|
11
|
+
|
|
12
|
+
* 新功能 ([0da1832](https://github.com/missannil/annil/commit/0da1832b549a3b5b4e316ec8cf4866496900fc70))
|
|
13
|
+
|
|
14
|
+
## [1.11.1-alpha.4](https://github.com/missannil/annil/compare/v1.11.0-alpha.4...v1.11.1-alpha.4) (2025-02-24)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* 计算属性依赖为undefined时的错误 ([f1798c0](https://github.com/missannil/annil/commit/f1798c04526975ef5986707684bbc5f3b94f2169))
|
|
20
|
+
|
|
7
21
|
## [1.11.0-alpha.4](https://github.com/missannil/annil/compare/v1.11.0-alpha.3...v1.11.0-alpha.4) (2025-01-14)
|
|
8
22
|
|
|
9
23
|
|
|
@@ -1,16 +1,7 @@
|
|
|
1
1
|
import type { IfExtends } from "hry-types/src/Any/IfExtends";
|
|
2
2
|
import type { Includes } from "../../../types/includes";
|
|
3
|
-
/**
|
|
4
|
-
* 根据IsPage,生成name或path字段
|
|
5
|
-
*/
|
|
6
3
|
export type NameOrPathOption<TName extends string, TPath extends `/${string}`, IsPage extends boolean> = IsPage extends true ? {
|
|
7
|
-
/**
|
|
8
|
-
* 页面路径已'/'开头
|
|
9
|
-
*/
|
|
10
4
|
path: TPath;
|
|
11
5
|
} : {
|
|
12
|
-
/**
|
|
13
|
-
* 组件名不可为空串和含有下划线
|
|
14
|
-
*/
|
|
15
6
|
name: TName & IfExtends<TName, "", () => "⚠️组件名不可为空⚠️", IfExtends<Includes<TName, "_">, true, () => "⚠️组件名不可包含下划线 _ ⚠️", unknown>>;
|
|
16
7
|
};
|
|
@@ -5,14 +5,5 @@ type _ComponentType = {
|
|
|
5
5
|
};
|
|
6
6
|
type Error = "{ properties?: Record<PrefixKeys, any>; customEvents?: Record<PrefixKeys, any>;}";
|
|
7
7
|
type _Validator<O> = keyof O extends keyof _ComponentType ? keyof (O["properties"] & O["customEvents"]) extends PrefixKeys ? _ComponentType : Error : Error;
|
|
8
|
-
/**
|
|
9
|
-
* RootComponent Api 返回的类型
|
|
10
|
-
* ```ts
|
|
11
|
-
* RootComponentDoc = {
|
|
12
|
-
* properties?: Record<PrefixKeys, any>;
|
|
13
|
-
* customEvents?: Record<PrefixKeys, any>;
|
|
14
|
-
* };
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
17
8
|
export type ComponentType<O extends _Validator<O> = _ComponentType> = O;
|
|
18
9
|
export {};
|
|
@@ -7,7 +7,7 @@ import type { GetCustomEventDocOfSubDoc } from "./GetCustomEventDocOfSubDoc";
|
|
|
7
7
|
type GetStopKeys<O> = {
|
|
8
8
|
[k in keyof O]: k extends `${string}_${infer Key}_${string}_catch` ? Key : never;
|
|
9
9
|
}[keyof O];
|
|
10
|
-
export type CreateComponentDoc<TRootDoc extends RootComponentType, TName extends string, TSubComponentTuple extends SubComponentType[], AllPropertiesDoc extends unknown | object = TRootDoc["properties"], AllCustomEventsDoc extends unknown | object = TRootDoc["customEvents"] & GetCustomEventDocOfSubDoc<TSubComponentTuple[number]
|
|
10
|
+
export type CreateComponentDoc<TRootDoc extends RootComponentType, TName extends string, TSubComponentTuple extends SubComponentType[], AllPropertiesDoc extends unknown | object = TRootDoc["properties"], AllCustomEventsDoc extends unknown | object = TRootDoc["customEvents"] & GetCustomEventDocOfSubDoc<TSubComponentTuple[number]>, StopKeys extends string = GetStopKeys<TRootDoc["events"]>, FinalCustomEventDoc extends object = Omit<AllCustomEventsDoc, StopKeys>> = ComputeIntersection<IfExtends<unknown, AllPropertiesDoc, {}, {
|
|
11
11
|
properties: {
|
|
12
12
|
[k in keyof AllPropertiesDoc as `${TName}_${k & string}`]: AddNullForObject<AllPropertiesDoc[k]>;
|
|
13
13
|
};
|
|
@@ -1,15 +1,8 @@
|
|
|
1
1
|
import type { IsNever, IsUnion } from "hry-types/src/Any/_api";
|
|
2
2
|
import type { UnionTwoObject } from "hry-types/src/Object/UnionTwoObject";
|
|
3
3
|
import type { Last } from "hry-types/src/Union/Last";
|
|
4
|
+
import type { Assert } from "../../../types/Assert";
|
|
4
5
|
import type { SubComponentType } from "../../SubComponent/SubComponentType";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
* 由于SubComponentDoc为空时返回never而不`{}`,所以`Exclude<U, TLast>`不影响结果。
|
|
8
|
-
*/
|
|
9
|
-
type _GetCustomEventDocOfSubDoc<U extends SubComponentType, Result = {}, TLast = Last<U>> = IsNever<U> extends true ? Result : _GetCustomEventDocOfSubDoc<Exclude<U, TLast>, UnionTwoObject<Result, TLast>>;
|
|
10
|
-
/**
|
|
11
|
-
* 获取子组件自定义事件文档
|
|
12
|
-
* @remarks U 中 相同字段类型联合,所以使用元组推导不如Last性能好。
|
|
13
|
-
*/
|
|
14
|
-
export type GetCustomEventDocOfSubDoc<UnionSubDoc extends SubComponentType> = IsUnion<UnionSubDoc> extends true ? _GetCustomEventDocOfSubDoc<UnionSubDoc> : UnionSubDoc;
|
|
6
|
+
type _GetCustomEventDocOfSubDoc<U extends SubComponentType, Result = {}, TLast extends SubComponentType = Assert<Last<U>, SubComponentType>> = IsNever<U> extends true ? Result : _GetCustomEventDocOfSubDoc<Exclude<U, TLast>, UnionTwoObject<Result, TLast["composedEvents"]>>;
|
|
7
|
+
export type GetCustomEventDocOfSubDoc<UnionSubDoc extends SubComponentType> = IsUnion<UnionSubDoc> extends true ? _GetCustomEventDocOfSubDoc<UnionSubDoc> : UnionSubDoc["composedEvents"];
|
|
15
8
|
export {};
|
|
@@ -4,14 +4,5 @@ type _PageDoc = {
|
|
|
4
4
|
};
|
|
5
5
|
type Error = "{ path: `/${string}`; properties?: object;}";
|
|
6
6
|
type _Validator<O> = keyof O extends keyof _PageDoc ? _PageDoc : Error;
|
|
7
|
-
/**
|
|
8
|
-
* 页面文档类型
|
|
9
|
-
* ```ts
|
|
10
|
-
* PageDoc = {
|
|
11
|
-
* path: `/${string}`;
|
|
12
|
-
* properties?: object;
|
|
13
|
-
* };
|
|
14
|
-
* ```
|
|
15
|
-
*/
|
|
16
7
|
export type PageDoc<O extends _Validator<O> = _PageDoc> = O;
|
|
17
8
|
export {};
|
|
@@ -1,10 +1,4 @@
|
|
|
1
1
|
import type { RootComponentType } from "../../RootComponent/RootComponentType";
|
|
2
|
-
/**
|
|
3
|
-
* DefineComponent API`rootComponent`字段配置
|
|
4
|
-
*/
|
|
5
2
|
export type RootComponentOption<TRootComponent extends RootComponentType> = {
|
|
6
|
-
/**
|
|
7
|
-
* 根组件配置
|
|
8
|
-
*/
|
|
9
3
|
rootComponent?: TRootComponent;
|
|
10
4
|
};
|
|
@@ -1,10 +1,4 @@
|
|
|
1
1
|
import type { SubComponentType } from "../../SubComponent/SubComponentType";
|
|
2
|
-
/**
|
|
3
|
-
* RootComponent API 的`subComponents`字段配置
|
|
4
|
-
*/
|
|
5
2
|
export type SubComponentsOption<TSubComponentTuple extends SubComponentType[]> = {
|
|
6
|
-
/**
|
|
7
|
-
* 子组件列表
|
|
8
|
-
*/
|
|
9
3
|
subComponents?: [...TSubComponentTuple];
|
|
10
4
|
};
|
|
@@ -21,8 +21,5 @@ export type DefineComponentOption = {
|
|
|
21
21
|
subComponents?: SubComponentTrueOptions[];
|
|
22
22
|
slotComponents?: SlotComponentReturnType[];
|
|
23
23
|
};
|
|
24
|
-
/**
|
|
25
|
-
* 把根组件选项和子组件选项转化为原生Component API选项并执行
|
|
26
|
-
*/
|
|
27
24
|
export declare const DefineComponent: DefineComponentConstructor;
|
|
28
25
|
export {};
|
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
import { normalizeOptions } from "./normalizeOptions";
|
|
2
|
-
/**
|
|
3
|
-
* 把根组件选项和子组件选项转化为原生Component API选项并执行
|
|
4
|
-
*/
|
|
5
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
6
2
|
export const DefineComponent = function (options) {
|
|
7
|
-
Component(
|
|
8
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
9
|
-
normalizeOptions(options));
|
|
3
|
+
Component(normalizeOptions(options));
|
|
10
4
|
};
|
|
11
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/DefineComponent/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/DefineComponent/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAiDtD,MAAM,CAAC,MAAM,eAAe,GAA+B,UAAS,OAAO;IACzE,SAAS,CAEP,gBAAgB,CAAC,OAAgC,CAAQ,CAC1D,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { deepEqual } from "../../../../utils/deepEqual";
|
|
2
2
|
import { deepProxy, getOriginalValue } from "./data-tracer";
|
|
3
3
|
import { removeSubDependences } from "./dependencesOptimize";
|
|
4
|
-
import { getPathsValue } from "./getPathsValue";
|
|
5
4
|
export function computedUpdater() {
|
|
6
5
|
for (const key in this.data.__computedCache__) {
|
|
7
6
|
const itemCache = this.data.__computedCache__[key];
|
|
8
7
|
let changed = false;
|
|
9
|
-
for (const dep of itemCache.dependences) {
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
|
|
8
|
+
outLook: for (const dep of itemCache.dependences) {
|
|
9
|
+
let curVal = this.data;
|
|
10
|
+
for (const path of dep.paths) {
|
|
11
|
+
if (curVal === null) {
|
|
12
|
+
changed = true;
|
|
13
|
+
break outLook;
|
|
14
|
+
}
|
|
15
|
+
curVal = curVal[path];
|
|
16
|
+
}
|
|
13
17
|
if (!deepEqual(curVal, dep.val)) {
|
|
14
18
|
changed = true;
|
|
15
19
|
break;
|
|
@@ -18,13 +22,10 @@ export function computedUpdater() {
|
|
|
18
22
|
if (changed) {
|
|
19
23
|
const newDependences = [];
|
|
20
24
|
const newValue = itemCache.method.call({ data: deepProxy(this.data, newDependences) });
|
|
21
|
-
// 更新值不会立即再次进入**函数,而是当前**函数运行完毕后触发**函数,\
|
|
22
25
|
this.setData({
|
|
23
26
|
[key]: getOriginalValue(newValue),
|
|
24
27
|
});
|
|
25
|
-
// 更新依赖(优化)
|
|
26
28
|
this.data.__computedCache__[key].dependences = removeSubDependences(newDependences);
|
|
27
|
-
// 有一个计算属性更新就重新更新所有计算互相,避免后置依赖导致前置依赖错误
|
|
28
29
|
return computedUpdater.call(this);
|
|
29
30
|
}
|
|
30
31
|
}
|
package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/computedUpdater.js.map
CHANGED
|
@@ -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,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,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;AAG7D,MAAM,UAAU,eAAe;IAC7B,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,OAAO,EAAE,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;YACjD,IAAI,MAAM,GAAkB,IAAI,CAAC,IAAI,CAAC;YACtC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBAE7B,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM,OAAO,CAAC;gBAChB,CAAC;gBACD,MAAM,GAAI,MAAwC,CAAC,IAAI,CAAC,CAAC;YAC3D,CAAC;YAED,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,OAAO,GAAG,IAAI,CAAC;gBACf,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,IAAI,CAAC,OAAO,CAAC;gBACX,CAAC,GAAG,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC;aAClC,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,WAAW,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;YAEpF,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1,31 +1,41 @@
|
|
|
1
1
|
import { removePreviousDependence } from "./dependencesOptimize";
|
|
2
|
+
function isOwnProp(target, prop) {
|
|
3
|
+
return Object.prototype.hasOwnProperty.call(target, prop);
|
|
4
|
+
}
|
|
2
5
|
export function deepProxy(data, dependences, basePath = []) {
|
|
6
|
+
let ignoreProxy = false;
|
|
3
7
|
const handler = {
|
|
4
8
|
get(target, prop) {
|
|
5
9
|
if (prop === "__original__") {
|
|
6
10
|
return target;
|
|
7
11
|
}
|
|
8
12
|
const val = target[prop];
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
return typeof val === "function" ? val.bind(target) : val; // : val 覆盖测试不到.
|
|
13
|
+
if ((val !== undefined && (isOwnProp(target, prop) === false)) || ignoreProxy) {
|
|
14
|
+
return typeof val === "function" ? val.bind(target) : val;
|
|
12
15
|
}
|
|
13
16
|
removePreviousDependence(dependences, basePath);
|
|
14
17
|
const curPath = basePath.concat(prop);
|
|
15
18
|
dependences.push({ paths: curPath, val });
|
|
16
|
-
// 非对象不代理
|
|
17
19
|
if (typeof val !== "object" || val === null)
|
|
18
20
|
return val;
|
|
19
|
-
// console.log(val, typeof val);
|
|
20
21
|
return deepProxy(val, dependences, curPath);
|
|
21
22
|
},
|
|
23
|
+
has(target, prop) {
|
|
24
|
+
removePreviousDependence(dependences, basePath);
|
|
25
|
+
const curPath = basePath.concat(prop);
|
|
26
|
+
dependences.push({ paths: curPath, val: target[prop] });
|
|
27
|
+
return Reflect.has(target, prop);
|
|
28
|
+
},
|
|
29
|
+
ownKeys(target) {
|
|
30
|
+
ignoreProxy = true;
|
|
31
|
+
return Reflect.ownKeys(target);
|
|
32
|
+
},
|
|
22
33
|
set(_target, prop) {
|
|
23
34
|
throw Error(`${prop}字段是只读的`);
|
|
24
35
|
},
|
|
25
36
|
};
|
|
26
37
|
return new Proxy(data, handler);
|
|
27
38
|
}
|
|
28
|
-
// 如果是代理对象可以从__original__中获取原始值,否则返回自身
|
|
29
39
|
export function getOriginalValue(value) {
|
|
30
40
|
if (typeof value !== "object" || value === null || value.__original__ === undefined) {
|
|
31
41
|
return value;
|
|
@@ -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;
|
|
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;AAGjE,SAAS,SAAS,CAAC,MAAc,EAAE,IAAY;IAC7C,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC5D,CAAC;AACD,MAAM,UAAU,SAAS,CACvB,IAAY,EACZ,WAAiC,EACjC,WAAqB,EAAE;IAEvB,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,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;YAGzB,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC;gBAC9E,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;YAG1C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;gBAAE,OAAO,GAAG,CAAC;YACxD,OAAO,SAAS,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;QAED,GAAG,CAAC,MAA+B,EAAE,IAAY;YAC/C,wBAAwB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAChD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACtC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,CAAC,MAAc;YACpB,WAAW,GAAG,IAAI,CAAC;YACnB,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjC,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;AAGD,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"}
|
package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/dependencesOptimize.js
CHANGED
|
@@ -1,21 +1,16 @@
|
|
|
1
|
-
// 去除子依赖
|
|
2
1
|
export function removeSubDependences(dependences) {
|
|
3
|
-
// 把dependences按照路径长度排序
|
|
4
2
|
dependences.sort((a, b) => a.paths.length - b.paths.length);
|
|
5
|
-
// 从最长的路径开始遍历,如果当前路径是上一个路径的子路径,则删除当前路径
|
|
6
3
|
for (let f = 0; f < dependences.length; f++) {
|
|
7
|
-
const sortPath = dependences[f].paths
|
|
8
|
-
// 从后往前遍历,删除子依赖,保留父依赖
|
|
4
|
+
const sortPath = dependences[f].paths;
|
|
9
5
|
for (let i = dependences.length - 1; i > f; i--) {
|
|
10
|
-
const curPath = dependences[i].paths
|
|
11
|
-
if (curPath.
|
|
6
|
+
const curPath = dependences[i].paths;
|
|
7
|
+
if (curPath.length > sortPath.length && curPath.slice(0, sortPath.length).toString() === sortPath.toString()) {
|
|
12
8
|
dependences.splice(i, 1);
|
|
13
9
|
}
|
|
14
10
|
}
|
|
15
11
|
}
|
|
16
|
-
return dependences;
|
|
12
|
+
return dependences.filter((dep, index, self) => index === self.findIndex((t) => (t.paths.toString() === dep.paths.toString())));
|
|
17
13
|
}
|
|
18
|
-
// 当前依赖是上一个依赖的子依赖时,去除上一个依赖
|
|
19
14
|
export function removePreviousDependence(dependences, basePath) {
|
|
20
15
|
if (dependences.length === 0 || basePath.length === 0)
|
|
21
16
|
return dependences;
|
package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/dependencesOptimize.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependencesOptimize.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/computedWatchHandle/dependencesOptimize.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dependencesOptimize.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/computedWatchHandle/dependencesOptimize.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,oBAAoB,CAAC,WAAiC;IAEpE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAE5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAEtC,KAAK,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAErC,IAAI,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;gBAC7G,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAC7C,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAC9B,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAC5C,CAAC,CACH,CAAC;AACJ,CAAC;AAUD,MAAM,UAAU,wBAAwB,CAAC,WAAiC,EAAE,QAAkB;IAC5F,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,WAAW,CAAC;IAE1E,MAAM,cAAc,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE3D,IAAI,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC5D,WAAW,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
@@ -1,7 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* 获取指定paths的值
|
|
3
|
-
* @param this - 组件实例 Instance
|
|
4
|
-
* @param paths - 支持多字段(用`,`分开) 例如 'obj.xxx,a,b.**' 监控了3个字段
|
|
5
|
-
* @returns unknown[] 每项对应paths每项的值
|
|
6
|
-
*/
|
|
7
|
-
export declare function getPathsValue(data: object, paths: string): unknown[];
|
|
1
|
+
export declare function getPathsValue(obj: object, paths: string): unknown[];
|
|
@@ -1,28 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
* 获取指定paths的值
|
|
3
|
-
* @param this - 组件实例 Instance
|
|
4
|
-
* @param paths - 支持多字段(用`,`分开) 例如 'obj.xxx,a,b.**' 监控了3个字段
|
|
5
|
-
* @returns unknown[] 每项对应paths每项的值
|
|
6
|
-
*/
|
|
7
|
-
export function getPathsValue(data, paths) {
|
|
1
|
+
export function getPathsValue(obj, paths) {
|
|
8
2
|
const valueList = [];
|
|
9
|
-
// ['obj.xxx','a','b.**'].forEach
|
|
10
3
|
paths.split(",").forEach(path => {
|
|
11
|
-
// path : 'obj.xxx' | 'a' | 'b.**'
|
|
12
4
|
if (path.includes(".**")) {
|
|
13
|
-
// "b.**" => 'b'
|
|
14
5
|
path = path.slice(0, -3);
|
|
15
6
|
}
|
|
16
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
17
7
|
const value = path.split(".").reduce((pre, path) => {
|
|
18
|
-
// pre有可能为undefined|null,比如obj是未初始化的计算属性(undefined),还有可能是properties的对象类型(默认为null)
|
|
19
8
|
try {
|
|
20
9
|
return pre[path];
|
|
21
10
|
}
|
|
22
11
|
catch (_a) {
|
|
23
12
|
return undefined;
|
|
24
13
|
}
|
|
25
|
-
},
|
|
14
|
+
}, obj);
|
|
26
15
|
valueList.push(value);
|
|
27
16
|
});
|
|
28
17
|
return valueList;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPathsValue.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/computedWatchHandle/getPathsValue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getPathsValue.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/computedWatchHandle/getPathsValue.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,KAAa;IACtD,MAAM,SAAS,GAAc,EAAE,CAAC;IAGhC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAE9B,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAEzB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,IAAI,EAAE,EAAE;YAEtD,IAAI,CAAC;gBACH,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;YAAC,WAAM,CAAC;gBACP,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC,EAAE,GAAG,CAAC,CAAC;QAER,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/* istanbul ignore next */
|
|
2
1
|
function getRequiredSingleValue(PropType) {
|
|
3
2
|
switch (PropType) {
|
|
4
3
|
case String:
|
|
@@ -12,7 +11,6 @@ function getRequiredSingleValue(PropType) {
|
|
|
12
11
|
case Boolean:
|
|
13
12
|
return false;
|
|
14
13
|
default:
|
|
15
|
-
/* istanbul ignore next */
|
|
16
14
|
throw Error("properties字段类型只能为 String | Number | Array | Object | Boolean ");
|
|
17
15
|
}
|
|
18
16
|
}
|
|
@@ -27,15 +25,12 @@ export function getPropertiesValue(propertiesOpt) {
|
|
|
27
25
|
for (const key in propertiesOpt) {
|
|
28
26
|
const config = propertiesOpt[key];
|
|
29
27
|
if (IsRequiredSingle(config)) {
|
|
30
|
-
// @ts-ignore 隐式索引
|
|
31
28
|
result[key] = getRequiredSingleValue(config);
|
|
32
29
|
}
|
|
33
30
|
else if (IsRequiredUnion(config)) {
|
|
34
|
-
// @ts-ignore 隐式索引
|
|
35
31
|
result[key] = getRequiredSingleValue(config.type);
|
|
36
32
|
}
|
|
37
33
|
else {
|
|
38
|
-
// @ts-ignore 隐式索引
|
|
39
34
|
result[key] = config.value;
|
|
40
35
|
}
|
|
41
36
|
}
|
package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/getPropertiesValue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPropertiesValue.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/computedWatchHandle/getPropertiesValue.ts"],"names":[],"mappings":"
|
|
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;YAEE,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;YAE7B,MAAM,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;aAAM,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;YAEnC,MAAM,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YAEN,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -9,33 +9,25 @@ import { nonNullable } from "../../../../utils/nonNullable";
|
|
|
9
9
|
function initWatchOldValue(data, watchConfig) {
|
|
10
10
|
const watchOldValue = {};
|
|
11
11
|
for (const key in watchConfig) {
|
|
12
|
-
// @ts-ignore 隐式索引
|
|
13
12
|
watchOldValue[key] = deepClone(getPathsValue(data, key));
|
|
14
13
|
}
|
|
15
14
|
return watchOldValue;
|
|
16
15
|
}
|
|
17
16
|
export function computedWatchHandle(options) {
|
|
18
|
-
// 计算属性初始化和首次依赖收集
|
|
19
17
|
const computedConfig = options.computed;
|
|
20
18
|
const rawPropertiesValue = getPropertiesValue(options.properties);
|
|
21
19
|
if (computedConfig && !isEmptyObject(computedConfig)) {
|
|
22
|
-
// 此时store已经初始化数据到data了(__storeConfig__)
|
|
23
20
|
const __computedInitCache__ = initComputedAndGetCache(options, computedConfig, Object.assign(Object.assign({}, options.data), rawPropertiesValue));
|
|
24
|
-
// 缓存放入data中
|
|
25
21
|
options.data.__computedCache__ = __computedInitCache__;
|
|
26
|
-
// 计算属性更新函数放入methods中 要做冲突判断,避免用户定义了同名methods字段
|
|
27
22
|
options.methods.__computedUpdater__ = computedUpdater;
|
|
28
23
|
}
|
|
29
24
|
const observersConfig = options.observers;
|
|
30
|
-
// 通过observers加入`**`字段来触发计算属性更新
|
|
31
25
|
const originalFunc = observersConfig["**"];
|
|
32
26
|
observersConfig["**"] = function () {
|
|
33
27
|
var _a;
|
|
34
|
-
// 任何setData都会触发计算属性更新(可能依赖数据并没变化)
|
|
35
28
|
(_a = this.__computedUpdater__) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
36
29
|
originalFunc === null || originalFunc === void 0 ? void 0 : originalFunc.call(this);
|
|
37
30
|
};
|
|
38
|
-
// watch handle
|
|
39
31
|
const watchConfig = options.watch;
|
|
40
32
|
if (watchConfig && !isEmptyObject(watchConfig)) {
|
|
41
33
|
const data = options.data;
|
|
@@ -44,7 +36,6 @@ export function computedWatchHandle(options) {
|
|
|
44
36
|
for (const key in watchConfig) {
|
|
45
37
|
const watchHadle = watchConfig[key];
|
|
46
38
|
const originObserversHandle = observersConfig[key];
|
|
47
|
-
// 在监控多个数据时,参数是多个值
|
|
48
39
|
observersConfig[key] = function (...newValue) {
|
|
49
40
|
originObserversHandle === null || originObserversHandle === void 0 ? void 0 : originObserversHandle.call(this, ...newValue);
|
|
50
41
|
const watchOldValue = nonNullable(this.data.__watchOldValue__);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/computedWatchHandle/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAM5D,SAAS,iBAAiB,CAAC,IAAqC,EAAE,WAAmB;IACnF,MAAM,aAAa,GAAG,EAAE,CAAC;IACzB,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/computedWatchHandle/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAM5D,SAAS,iBAAiB,CAAC,IAAqC,EAAE,WAAmB;IACnF,MAAM,aAAa,GAAG,EAAE,CAAC;IACzB,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAE9B,aAAa,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AACD,MAAM,UAAU,mBAAmB,CAAC,OAAgC;IAElE,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IACxC,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAClE,IAAI,cAAc,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC;QAGrD,MAAM,qBAAqB,GAAG,uBAAuB,CAAC,OAAO,EAAE,cAAc,kCACxE,OAAO,CAAC,IAAI,GACZ,kBAAkB,EACrB,CAAC;QAGH,OAAO,CAAC,IAAI,CAAC,iBAAiB,GAAG,qBAAqB,CAAC;QAGvD,OAAO,CAAC,OAAO,CAAC,mBAAmB,GAAG,eAAe,CAAC;IACxD,CAAC;IACD,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;IAE1C,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAqB,CAAC;IAE/D,eAAe,CAAC,IAAI,CAAC,GAAG;;QAEtB,MAAA,IAAI,CAAC,mBAAmB,oDAAI,CAAC;QAE7B,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC;IAGF,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;IAElC,IAAI,WAAW,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAE1B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,iCAAM,IAAI,GAAK,kBAAkB,GAAI,WAAW,CAAC,CAAC;QAE5F,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;QAC1C,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,qBAAqB,GAAG,eAAe,CAAC,GAAG,CAAqB,CAAC;YAGvE,eAAe,CAAC,GAAG,CAAC,GAAG,UAAyB,GAAG,QAAmB;gBACpE,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,IAAI,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC;gBAE/C,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAC/D,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;gBAEpC,IAAI,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;oBAAE,OAAO;gBAC1C,aAAa,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAEzC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,QAAQ,EAAE,GAAG,QAAQ,CAAC,CAAC;YAClD,CAAC,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/initComputedAndGetCache.d.ts
CHANGED
|
@@ -8,14 +8,5 @@ type ItemCache = {
|
|
|
8
8
|
};
|
|
9
9
|
type ComputedId = string;
|
|
10
10
|
export type ComputedCache = Record<ComputedId, ItemCache>;
|
|
11
|
-
/**
|
|
12
|
-
* 把计算属性初始值加入到options.data中并返回缓存(递归函数)
|
|
13
|
-
* @param options - 配置选项
|
|
14
|
-
* @param computedConfig - 计算字段配置
|
|
15
|
-
* @param initAllData - 初始化时全部的data包含(properties,data,和已经初始化后的computed字段)
|
|
16
|
-
* @param uninitedkeys - 未初始化的key (默认为所有computedConfig的key)
|
|
17
|
-
* @param computedCache - 返回的所有计算字段缓存(默认为空对象)
|
|
18
|
-
* @returns `computedCache` 计算字段缓存
|
|
19
|
-
*/
|
|
20
11
|
export declare function initComputedAndGetCache(options: FinalOptionsOfComponent, computedConfig: Record<string, Func>, initAllData: Record<string, unknown>, uninitedkeys?: string[], computedCache?: ComputedCache): ComputedCache;
|
|
21
12
|
export {};
|
package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/initComputedAndGetCache.js
CHANGED
|
@@ -1,40 +1,22 @@
|
|
|
1
1
|
import { deepProxy, getOriginalValue } from "./data-tracer";
|
|
2
2
|
import { removeSubDependences } from "./dependencesOptimize";
|
|
3
|
-
/**
|
|
4
|
-
* 如果依赖列表某项的首个字段值为undefined并且字段为其他计算属性字段(即被依赖的计算字段写在了依赖他的计算字段后面) 返回false, 否则返回true表示依赖有效。
|
|
5
|
-
*/
|
|
6
3
|
function isValidDependences(dependences, computedKeys) {
|
|
7
4
|
for (const { paths: path, val } of dependences) {
|
|
8
5
|
if ((val === undefined) && computedKeys.includes(path[0])) {
|
|
9
6
|
return false;
|
|
10
7
|
}
|
|
11
8
|
}
|
|
12
|
-
// 依赖有效
|
|
13
9
|
return true;
|
|
14
10
|
}
|
|
15
|
-
/**
|
|
16
|
-
* 把计算属性初始值加入到options.data中并返回缓存(递归函数)
|
|
17
|
-
* @param options - 配置选项
|
|
18
|
-
* @param computedConfig - 计算字段配置
|
|
19
|
-
* @param initAllData - 初始化时全部的data包含(properties,data,和已经初始化后的computed字段)
|
|
20
|
-
* @param uninitedkeys - 未初始化的key (默认为所有computedConfig的key)
|
|
21
|
-
* @param computedCache - 返回的所有计算字段缓存(默认为空对象)
|
|
22
|
-
* @returns `computedCache` 计算字段缓存
|
|
23
|
-
*/
|
|
24
11
|
export function initComputedAndGetCache(options, computedConfig, initAllData, uninitedkeys = Object.keys(computedConfig), computedCache = {}) {
|
|
25
12
|
for (const key of uninitedkeys) {
|
|
26
13
|
const computedFunc = computedConfig[key];
|
|
27
14
|
const dependences = [];
|
|
28
|
-
// 通过代理data获取计算字段的初始值和依赖
|
|
29
15
|
let initValue = computedFunc.call({ data: deepProxy(initAllData, dependences) });
|
|
30
|
-
// 去除当前已初始的计算属性key
|
|
31
16
|
uninitedkeys = uninitedkeys.filter(ele => ele !== key);
|
|
32
|
-
// 验证依赖是否有效
|
|
33
17
|
if (isValidDependences(dependences, uninitedkeys)) {
|
|
34
18
|
initValue = getOriginalValue(initValue);
|
|
35
|
-
// 把计算属性初始值加入到options.data中
|
|
36
19
|
options.data[key] = initValue;
|
|
37
|
-
// 把计算属性初始值加入到initAllData中,后续其他计算属性依赖时会可能会用到
|
|
38
20
|
initAllData[key] = initValue;
|
|
39
21
|
computedCache[key] = {
|
|
40
22
|
dependences: removeSubDependences(dependences),
|
|
@@ -43,15 +25,12 @@ export function initComputedAndGetCache(options, computedConfig, initAllData, un
|
|
|
43
25
|
};
|
|
44
26
|
}
|
|
45
27
|
else {
|
|
46
|
-
// 把当前依赖不正确的key放到后面去
|
|
47
28
|
uninitedkeys.push(key);
|
|
48
29
|
}
|
|
49
30
|
}
|
|
50
|
-
// 看uninitedkey是否未空,空表示所有依赖收集完毕直接返回
|
|
51
31
|
if (uninitedkeys.length === 0) {
|
|
52
32
|
return computedCache;
|
|
53
33
|
}
|
|
54
|
-
// uninitedkey不为空,递归
|
|
55
34
|
return initComputedAndGetCache(options, computedConfig, initAllData, uninitedkeys, computedCache);
|
|
56
35
|
}
|
|
57
36
|
//# sourceMappingURL=initComputedAndGetCache.js.map
|
package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/initComputedAndGetCache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AAe7D,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;IAGD,OAAO,IAAI,CAAC;AACd,CAAC;AAWD,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;QAE7C,IAAI,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;QAGjF,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAGvD,IAAI,kBAAkB,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;YAClD,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAGxC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;YAG9B,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;YAEN,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,aAAa,CAAC;IACvB,CAAC;IAGD,OAAO,uBAAuB,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;AACpG,CAAC"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
1
|
import type { CustomEventConstraint } from "../../RootComponent/CustomEvents/CustomEventConstraint";
|
|
2
2
|
import type { FinalOptionsOfComponent } from ".";
|
|
3
|
-
/**
|
|
4
|
-
* 把customEvents字段配置变成函数放入到componentOptions.methods中
|
|
5
|
-
*/
|
|
6
3
|
export declare function customEventsHandle(finalOptions: FinalOptionsOfComponent, customEventsConfig: CustomEventConstraint): void;
|
|
@@ -9,13 +9,9 @@ function getThrottleDebounceConfig(methodsName, customEventOptions, __throttleDe
|
|
|
9
9
|
__throttleDebounce__.throttle[methodsName] = throttle;
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
-
// 类型守卫
|
|
13
12
|
function IsFullCustomEvents(customEventOptions) {
|
|
14
13
|
return Object.prototype.toString.call(customEventOptions) === "[object Object]";
|
|
15
14
|
}
|
|
16
|
-
/**
|
|
17
|
-
* 把customEvents字段配置变成函数放入到componentOptions.methods中
|
|
18
|
-
*/
|
|
19
15
|
export function customEventsHandle(finalOptions, customEventsConfig) {
|
|
20
16
|
const methods = finalOptions.methods;
|
|
21
17
|
const data = finalOptions.data;
|
|
@@ -26,7 +22,6 @@ export function customEventsHandle(finalOptions, customEventsConfig) {
|
|
|
26
22
|
this.triggerEvent(key, detail, customEventOptions.options);
|
|
27
23
|
};
|
|
28
24
|
data.__throttleDebounce__ || (data.__throttleDebounce__ = {});
|
|
29
|
-
// 全配置允许设置防抖和节流,在这里保留配置到data.__throttleDebounce__中,以便后续使用
|
|
30
25
|
getThrottleDebounceConfig(key, customEventOptions, data.__throttleDebounce__);
|
|
31
26
|
}
|
|
32
27
|
else {
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AAGD,SAAS,kBAAkB,CACzB,kBAAgC;IAEhC,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,iBAAiB,CAAC;AAClF,CAAC;AAID,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;YAEjC,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"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
1
|
import type { Func } from "hry-types/src/Misc/Func";
|
|
2
2
|
import type { FinalOptionsOfComponent } from "..";
|
|
3
|
-
/**
|
|
4
|
-
* 劫持指定配置字段,在原有配置前执行指定函数
|
|
5
|
-
*/
|
|
6
3
|
export declare function hijack<T extends FinalOptionsOfComponent[keyof FinalOptionsOfComponent]>(config: T, field: keyof T, before: Func[]): void;
|
|
@@ -1,15 +1,9 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 劫持指定配置字段,在原有配置前执行指定函数
|
|
3
|
-
*/
|
|
4
1
|
export function hijack(config, field, before) {
|
|
5
|
-
// @ts-ignore 隐式索引
|
|
6
2
|
const originalFunc = config[field];
|
|
7
|
-
// @ts-ignore 隐式索引
|
|
8
3
|
config[field] = function (...args) {
|
|
9
4
|
before.forEach(func => func.call(this, ...args));
|
|
10
5
|
if (originalFunc)
|
|
11
6
|
originalFunc.apply(this, args);
|
|
12
|
-
// after.forEach(func => func.call(this, ...args));
|
|
13
7
|
};
|
|
14
8
|
return;
|
|
15
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/hijackHandle/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/hijackHandle/index.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,MAAM,CACpB,MAAS,EACT,KAAc,EACd,MAAc;IAId,MAAM,YAAY,GAAqB,MAAM,CAAC,KAAK,CAAC,CAAC;IAGrD,MAAM,CAAC,KAAK,CAAC,GAAG,UAAS,GAAG,IAAe;QACzC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAEjD,IAAI,YAAY;YAAE,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAGnD,CAAC,CAAC;IAEF,OAAO;AACT,CAAC"}
|