annil 1.12.0-alpha.6 → 1.12.0-alpha.8
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 +16 -0
- package/dist/api/ChunkComponent/ChunkStore/ChunkStoreConstraint.d.ts +2 -1
- package/dist/api/ChunkComponent/ChunkStore/ChunkStoreOption.d.ts +4 -3
- package/dist/api/ChunkComponent/index.d.ts +1 -1
- package/dist/api/CustomComponent/CustomStore/CustomStoreConstraint.d.ts +3 -2
- package/dist/api/CustomComponent/CustomStore/CustomStoreOption.d.ts +6 -1
- package/dist/api/CustomComponent/index.d.ts +3 -5
- package/dist/api/CustomComponent/index.js.map +1 -1
- package/dist/api/DefineComponent/ReturnType/CreateComponentDoc.d.ts +1 -2
- package/dist/api/DefineComponent/index.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/handleRootComponent.d.ts +3 -0
- package/dist/api/DefineComponent/normalizeOptions/handleRootComponent.js +19 -0
- package/dist/api/DefineComponent/normalizeOptions/handleRootComponent.js.map +1 -0
- package/dist/api/DefineComponent/normalizeOptions/handleStore/initStore.js +1 -2
- package/dist/api/DefineComponent/normalizeOptions/handleStore/initStore.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/handleStore/reactionRegister.d.ts +2 -1
- package/dist/api/DefineComponent/normalizeOptions/handleStore/reactionRegister.js +22 -2
- package/dist/api/DefineComponent/normalizeOptions/handleStore/reactionRegister.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/handleSubComponents.d.ts +3 -0
- package/dist/api/DefineComponent/normalizeOptions/handleSubComponents.js +15 -0
- package/dist/api/DefineComponent/normalizeOptions/handleSubComponents.js.map +1 -0
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/addDetachedData.d.ts +2 -0
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/addDetachedData.js +8 -0
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/addDetachedData.js.map +1 -0
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/hijack.d.ts +3 -0
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/hijack.js +11 -0
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/hijack.js.map +1 -0
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/index.d.ts +1 -2
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/index.js +34 -8
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/index.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/index.d.ts +2 -5
- package/dist/api/DefineComponent/normalizeOptions/index.js +15 -47
- package/dist/api/DefineComponent/normalizeOptions/index.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/initComputed/computedUpdater.js +17 -2
- package/dist/api/DefineComponent/normalizeOptions/initComputed/computedUpdater.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/initComputed/index.d.ts +1 -1
- package/dist/api/DefineComponent/normalizeOptions/initComputed/index.js +2 -4
- package/dist/api/DefineComponent/normalizeOptions/initComputed/index.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/initComputed/initComputedAndGetCache.js +11 -1
- package/dist/api/DefineComponent/normalizeOptions/initComputed/initComputedAndGetCache.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/internalFieldProtection.js +1 -1
- package/dist/api/DefineComponent/normalizeOptions/internalFieldProtection.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/watchHandler/index.js +18 -11
- package/dist/api/DefineComponent/normalizeOptions/watchHandler/index.js.map +1 -1
- package/dist/api/RootComponent/Instance/RootComponentInstance.d.ts +3 -2
- package/dist/api/RootComponent/Observers/ObserversOption.d.ts +2 -2
- package/dist/api/RootComponent/Store/GeTStoreDoc.d.ts +8 -3
- package/dist/api/RootComponent/Store/StoreConstraint.d.ts +6 -1
- package/dist/api/RootComponent/Store/StoreOption.d.ts +22 -1
- package/dist/api/RootComponent/Watch/WatchOption.d.ts +2 -2
- package/dist/api/RootComponent/index.d.ts +1 -1
- package/dist/api/RootComponent/index.js.map +1 -1
- package/package.json +2 -2
- package/src/api/ChunkComponent/ChunkStore/ChunkStoreConstraint.ts +3 -1
- package/src/api/ChunkComponent/ChunkStore/ChunkStoreOption.ts +3 -2
- package/src/api/ChunkComponent/ChunkStore/test/error.test.ts +36 -0
- package/src/api/ChunkComponent/ChunkStore/test/normal.test.ts +43 -0
- package/src/api/ChunkComponent/index.ts +3 -3
- package/src/api/CustomComponent/CustomComputed/test/normal.test.ts +2 -2
- package/src/api/CustomComponent/CustomData/test/normal.test.ts +4 -4
- package/src/api/CustomComponent/CustomInstance/test/normal.test.ts +1 -1
- package/src/api/CustomComponent/CustomStore/CustomStoreConstraint.ts +4 -1
- package/src/api/CustomComponent/CustomStore/CustomStoreOption.ts +13 -7
- package/src/api/CustomComponent/CustomStore/test/error.test.ts +53 -2
- package/src/api/CustomComponent/CustomStore/test/normal.test.ts +45 -0
- package/src/api/CustomComponent/index.ts +8 -4
- package/src/api/DefineComponent/ReturnType/CreateComponentDoc.ts +1 -4
- package/src/api/DefineComponent/ReturnType/test/normalComponentDoc.test.ts +2 -2
- package/src/api/DefineComponent/index.ts +0 -2
- package/src/api/DefineComponent/normalizeOptions/handleRootComponent.ts +32 -0
- package/src/api/DefineComponent/normalizeOptions/handleStore/initStore.ts +1 -3
- package/src/api/DefineComponent/normalizeOptions/handleStore/reactionRegister.ts +24 -3
- package/src/api/DefineComponent/normalizeOptions/handleSubComponents.ts +23 -0
- package/src/api/DefineComponent/normalizeOptions/hijackHandle/addDetachedData.ts +10 -0
- package/src/api/DefineComponent/normalizeOptions/hijackHandle/hijack.ts +26 -0
- package/src/api/DefineComponent/normalizeOptions/hijackHandle/index.ts +51 -20
- package/src/api/DefineComponent/normalizeOptions/index.ts +25 -80
- package/src/api/DefineComponent/normalizeOptions/initComputed/computedUpdater.ts +18 -7
- package/src/api/DefineComponent/normalizeOptions/initComputed/index.ts +3 -6
- package/src/api/DefineComponent/normalizeOptions/initComputed/initComputedAndGetCache.ts +12 -1
- package/src/api/DefineComponent/normalizeOptions/internalFieldProtection.ts +1 -1
- package/src/api/DefineComponent/normalizeOptions/watchHandler/index.ts +25 -14
- package/src/api/RootComponent/Instance/RootComponentInstance.ts +3 -2
- package/src/api/RootComponent/Observers/ObserversOption.ts +2 -2
- package/src/api/RootComponent/Store/GeTStoreDoc.ts +33 -2
- package/src/api/RootComponent/Store/StoreConstraint.ts +8 -1
- package/src/api/RootComponent/Store/StoreOption.ts +70 -3
- package/src/api/RootComponent/Store/test/error.test.ts +42 -0
- package/src/api/RootComponent/Store/test/normal.test.ts +46 -0
- package/src/api/RootComponent/Watch/WatchOption.ts +2 -2
- package/src/api/RootComponent/index.ts +2 -3
- package/dist/api/DefineComponent/normalizeOptions/rootComponentOptionHandle.d.ts +0 -3
- package/dist/api/DefineComponent/normalizeOptions/rootComponentOptionHandle.js +0 -14
- package/dist/api/DefineComponent/normalizeOptions/rootComponentOptionHandle.js.map +0 -1
- package/dist/api/DefineComponent/normalizeOptions/subComponentsOptionHandle.d.ts +0 -3
- package/dist/api/DefineComponent/normalizeOptions/subComponentsOptionHandle.js +0 -11
- package/dist/api/DefineComponent/normalizeOptions/subComponentsOptionHandle.js.map +0 -1
- package/dist/types/AddNullForObject.d.ts +0 -2
- package/dist/types/AddNullForObject.js +0 -2
- package/dist/types/AddNullForObject.js.map +0 -1
- package/dist/types/Replace.d.ts +0 -8
- package/dist/types/Replace.js +0 -2
- package/dist/types/Replace.js.map +0 -1
- package/src/api/DefineComponent/normalizeOptions/rootComponentOptionHandle.ts +0 -26
- package/src/api/DefineComponent/normalizeOptions/slotComponentsOptionHandle.ts +0 -22
- package/src/api/DefineComponent/normalizeOptions/subComponentsOptionHandle.ts +0 -18
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,22 @@
|
|
|
4
4
|
|
|
5
5
|
* 解决DetailedType不接收接口类型的错误 ([ae8acbf](https://github.com/missannil/annil/commit/ae8acbfc2e62f99db565c448ad9253aa549e78bb))
|
|
6
6
|
|
|
7
|
+
## [1.12.0-alpha.8](https://github.com/missannil/annil/compare/v1.12.0-alpha.7...v1.12.0-alpha.8) (2025-05-22)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Miscellaneous Chores
|
|
11
|
+
|
|
12
|
+
* release 1.12.0-alpha.8 ([#245](https://github.com/missannil/annil/issues/245)) ([7a5d842](https://github.com/missannil/annil/commit/7a5d8422ed871e1fcd794efdc2a0250cd62a086f))
|
|
13
|
+
|
|
14
|
+
## [1.12.0-alpha.7](https://github.com/missannil/annil/compare/v1.12.0-alpha.6...v1.12.0-alpha.7) (2025-04-12)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* 去除DefineComponent中针对对象类型加入null ([#241](https://github.com/missannil/annil/issues/241)) ([091485e](https://github.com/missannil/annil/commit/091485e7327c3c94600d61c679e056df845f6222))
|
|
20
|
+
* 在attached周期结束后,如果实例的data字段没有attached字段,则加入attached:true,用于表明组件启动完毕. ([091485e](https://github.com/missannil/annil/commit/091485e7327c3c94600d61c679e056df845f6222))
|
|
21
|
+
* 计算属性初始化在attached周期,之前可能在attach周期会引发计算属性传值时,出现null导致错误的问题 ([091485e](https://github.com/missannil/annil/commit/091485e7327c3c94600d61c679e056df845f6222))
|
|
22
|
+
|
|
7
23
|
## [1.12.0-alpha.6](https://github.com/missannil/annil/compare/v1.12.0-alpha.5...v1.12.0-alpha.6) (2025-04-09)
|
|
8
24
|
|
|
9
25
|
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import type { StoreConstraint } from "../../RootComponent/Store/StoreConstraint";
|
|
2
|
+
export type ChunkStoreConstraint<T extends object = object> = StoreConstraint<T>;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { G } from "hry-types";
|
|
2
2
|
import type { Validators } from "../../../types/Validators";
|
|
3
|
+
import type { TypeValidator } from "../../RootComponent/Store/StoreOption";
|
|
3
4
|
import type { ValidatorPrefix } from "../ChunkData/validatePrefix";
|
|
4
|
-
|
|
5
|
-
export type ChunkStoreOption<TStore extends ChunkStoreConstraint, TDuplicateKeys extends PropertyKey, Prefix extends string> = {
|
|
5
|
+
export type ChunkStoreOption<TStore extends object, TDuplicateKeys extends PropertyKey, Prefix extends string> = {
|
|
6
6
|
store?: TStore & Validators<[
|
|
7
7
|
G.DuplicateFieldValidator<TStore, TDuplicateKeys, "字段重复">,
|
|
8
|
-
ValidatorPrefix<TStore, Prefix
|
|
8
|
+
ValidatorPrefix<TStore, Prefix>,
|
|
9
|
+
TypeValidator<TStore>
|
|
9
10
|
]>;
|
|
10
11
|
};
|
|
@@ -19,6 +19,6 @@ import type { ChunkMethodsOption } from "./ChunkMethods/ChunkMethodsOption";
|
|
|
19
19
|
import type { ChunkStoreConstraint } from "./ChunkStore/ChunkStoreConstraint";
|
|
20
20
|
import type { ChunkStoreOption } from "./ChunkStore/ChunkStoreOption";
|
|
21
21
|
type ChunkComponentOptions<TIsPage extends boolean, Prefix extends string, RootDatas extends object, TEvents extends ChunkEventsConstraint, TData extends object, TStore extends ChunkStoreConstraint, StoreDoc extends object, TComputed extends ChunkComputedConstraint, ComputedDoc extends object, RootMethods extends object, RootEvents extends object, TMethods extends MethodsConstraint, EventsDoc extends object, PropertiesDoc extends object> = ChunkDataOption<TData, keyof (RootDatas & IInjectAllData), Prefix> & ChunkStoreOption<TStore, keyof (TData & RootDatas & IInjectAllData), Prefix> & ChunkComputedOption<TComputed, keyof (TData & StoreDoc & RootDatas & IInjectAllData), Prefix> & ChunkEventsOption<TEvents, keyof (RootMethods & RootEvents & IInjectMethods), Prefix> & ChunkMethodsOption<TMethods, keyof (RootMethods & RootEvents & EventsDoc & IInjectMethods), Prefix> & ThisType<RootComponentInstance<TIsPage, TMethods & RootMethods, TData, TData & StoreDoc & ComputedDoc & RootDatas & IInjectAllData, {}, StoreDoc>> & PageLifetimesOption<TIsPage, PropertiesDoc> & LifetimesOption & WatchOption<ComputedDoc & Required<RootDatas> & TData & StoreDoc & IInjectStore> & Partial<Omit<WMCompOtherOption, "pageLifetimes" | "definitionFilter" | "observers">> & ObserversOption<ComputedDoc & Required<RootDatas> & TData & StoreDoc & IInjectStore>;
|
|
22
|
-
type ChunkComponentConstructor<RootDoc extends RootComponentType, Prefix extends string, IsPage extends boolean = RootDoc["isPage"] extends true ? true : false, RootDatas extends object = Required<RootDoc["properties"]> & RootDoc["data"] & RootDoc["computed"] & RootDoc["store"], RootMethods extends object = RootDoc["methods"] & {}, RootEvents extends object = RootDoc["events"] & {}> = <TEvents extends ChunkEventsConstraint, TMethods extends MethodsConstraint = {}, TData extends object = {},
|
|
22
|
+
type ChunkComponentConstructor<RootDoc extends RootComponentType, Prefix extends string, IsPage extends boolean = RootDoc["isPage"] extends true ? true : false, RootDatas extends object = Required<RootDoc["properties"]> & RootDoc["data"] & RootDoc["computed"] & RootDoc["store"], RootMethods extends object = RootDoc["methods"] & {}, RootEvents extends object = RootDoc["events"] & {}> = <TEvents extends ChunkEventsConstraint, TStore extends ChunkStoreConstraint<Required<RootDoc["properties"]>>, TMethods extends MethodsConstraint = {}, TData extends object = {}, StoreDoc extends object = ChunkStoreConstraint<Required<RootDoc["properties"]>> extends TStore ? {} : GetStoreDoc<TStore>, TComputed extends ChunkComputedConstraint = {}, ComputedDoc extends object = GetComputedDoc<TComputed>, EventsDoc extends object = IfExtends<ChunkEventsConstraint, TEvents, {}, TEvents>, PropertiesDoc extends object = RootDoc["properties"] & {}>(options: ChunkComponentOptions<IsPage, Prefix, RootDatas, TEvents, TData, TStore, StoreDoc, TComputed, ComputedDoc, RootMethods, RootEvents, TMethods, EventsDoc, PropertiesDoc>) => never;
|
|
23
23
|
export declare function ChunkComponent<RootDoc extends RootComponentType, Prefix extends string = "">(): ChunkComponentConstructor<RootDoc, Prefix>;
|
|
24
24
|
export {};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import type { Getter, WithDefault } from "../../RootComponent/Store/StoreConstraint";
|
|
2
|
+
export type CustomStoreConstraint<PropertyDoc extends object, legal extends object> = {
|
|
3
|
+
[k in keyof legal]?: Getter<PropertyDoc, legal[k]> | WithDefault<PropertyDoc, legal[k]>;
|
|
3
4
|
};
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import type { G } from "hry-types";
|
|
2
|
+
import type { Validators } from "../../../types/Validators";
|
|
3
|
+
import type { TypeValidator } from "../../RootComponent/Store/StoreOption";
|
|
2
4
|
export type CustomStoreOption<TStore extends object, legalKeys extends PropertyKey> = {
|
|
3
|
-
store?: TStore &
|
|
5
|
+
store?: TStore & Validators<[
|
|
6
|
+
G.IllegalFieldValidator<TStore, legalKeys, 0, "", "与inherit和data字段重复或前缀错误">,
|
|
7
|
+
TypeValidator<TStore>
|
|
8
|
+
]>;
|
|
4
9
|
};
|
|
@@ -6,7 +6,6 @@ import type { Extra } from "../../types/Extra";
|
|
|
6
6
|
import type { GetComponentPrefix } from "../../types/GetComponentPrefix";
|
|
7
7
|
import type { InnerFields } from "../../types/InnerData";
|
|
8
8
|
import type { WMCompOtherOption } from "../../types/OfficialTypeAlias";
|
|
9
|
-
import type { Replace } from "../../types/Replace";
|
|
10
9
|
import type { ReplacePrefix } from "../../types/ReplacePrefix";
|
|
11
10
|
import type { UnionToComma } from "../../types/UnionToComma.test";
|
|
12
11
|
import type { ComponentType } from "../DefineComponent/ReturnType/ComponentType";
|
|
@@ -18,6 +17,7 @@ import type { LifetimesConstraint } from "../RootComponent/Lifetimes/LifetimesCo
|
|
|
18
17
|
import type { MethodsConstraint } from "../RootComponent/Methods/MethodsConstraint";
|
|
19
18
|
import type { PageLifetimesOption } from "../RootComponent/PageLifetimes/PageLifetimesOption";
|
|
20
19
|
import type { RootComponentType } from "../RootComponent/RootComponentType";
|
|
20
|
+
import type { GetStoreDoc } from "../RootComponent/Store/GeTStoreDoc";
|
|
21
21
|
import type { StoreConstraint } from "../RootComponent/Store/StoreConstraint";
|
|
22
22
|
import type { CustomComputedConstraint } from "./CustomComputed/CustomComputedConstraint";
|
|
23
23
|
import type { CustomComputedOption } from "./CustomComputed/CustomComputedOption";
|
|
@@ -46,14 +46,12 @@ type Options<RootDoc extends RootComponentType, IsPage extends boolean, CurrentC
|
|
|
46
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
47
|
}[keyof NoInfer<TSubStore>]> & CustomComputedOption<TSubComputed, {
|
|
48
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>]> & CustomEventsOption<TEvents, SubEventsDoc, keyof CustomEventsConstraint<CurrentCompDoc>> & CustomMethodsOption<TSubMethods, Prefix, keyof (CurrentCompDoc["customEvents"] & SubEventsDoc)> & CustomPageLifetimesOption<IsPage, NonNullable<RootDoc["properties"]>> & CustomLifetimesOption & CustomWatchOption<SubComputedDoc & SubDataDoc & AllRootDataDoc & SubStoreDoc & IInjectStore> & Partial<Omit<WMCompOtherOption, "pageLifetimes" | "definitionFilter" | "export" | "observers" | "relations">> & CustomObserversOption<SubComputedDoc & SubDataDoc & AllRootDataDoc & SubStoreDoc & IInjectStore> & ThisType<CustomInstance<SubMethodsDoc & RootDoc["methods"],
|
|
49
|
+
}[keyof NoInfer<TSubComputed>]> & CustomEventsOption<TEvents, SubEventsDoc, keyof CustomEventsConstraint<CurrentCompDoc>> & CustomMethodsOption<TSubMethods, Prefix, keyof (CurrentCompDoc["customEvents"] & SubEventsDoc)> & CustomPageLifetimesOption<IsPage, NonNullable<RootDoc["properties"]>> & CustomLifetimesOption & CustomWatchOption<SubComputedDoc & SubDataDoc & AllRootDataDoc & SubStoreDoc & IInjectStore> & Partial<Omit<WMCompOtherOption, "pageLifetimes" | "definitionFilter" | "export" | "observers" | "relations">> & CustomObserversOption<SubComputedDoc & SubDataDoc & AllRootDataDoc & SubStoreDoc & IInjectStore> & ThisType<CustomInstance<SubMethodsDoc & RootDoc["methods"], SubDataDoc, AllRootDataDoc & SubDataDoc & SubComputedDoc & SubStoreDoc, NonNullable<RootDoc["customEvents"]>, SubStoreDoc>>;
|
|
50
50
|
type CusotmComponentConstructor<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 & {
|
|
51
51
|
properties: Extra<CurrentPrefix>;
|
|
52
52
|
}, ReplacePrefix<TOriginalCompDoc & {
|
|
53
53
|
properties: Extra<CurrentPrefix>;
|
|
54
|
-
}, CurrentPrefix>>, AllRootDataDoc extends object = Required<TRootDoc["properties"]> & TRootDoc["data"] & TRootDoc["computed"] & TRootDoc["store"]> = <TInherit extends CustomInheritConstraint<AllRootDataDoc, CurrentCompDoc>, TData extends CustomDataConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof InheritDoc> & Record<InnerFields<CurrentPrefix>, unknown>>, TStore extends CustomStoreConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & DataDoc)> & Record<InnerFields<CurrentPrefix>, unknown>>, TEvents extends CustomEventsConstraint<CurrentCompDoc>, TComputed extends CustomComputedConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & DataDoc & StoreDoc)> & Record<InnerFields<CurrentPrefix>, unknown>>, TMethods extends CustomMethodsConstraint = {}, InheritDoc extends object = IfExtends<CustomInheritConstraint<AllRootDataDoc, CurrentCompDoc>, TInherit, {}, TInherit>, DataDoc extends object = IfExtends<CustomDataConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof InheritDoc> & Record<InnerFields<CurrentPrefix>, unknown>>, TData, {}, TData>, StoreDoc extends object = IfExtends<CustomStoreConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & DataDoc)> & Record<InnerFields<CurrentPrefix>, unknown>>, TStore, {}, {
|
|
55
|
-
[k in keyof TStore]: ReturnType<NonNullable<TStore[k]>>;
|
|
56
|
-
}>, ComputedDoc extends object = IfExtends<CustomComputedConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & DataDoc & StoreDoc)> & Record<InnerFields<CurrentPrefix>, unknown>>, TComputed, {}, GetCustomComputedDoc<TComputed>>, EventsDoc extends object = IfExtends<CustomEventsConstraint<CurrentCompDoc>, TEvents, {}, TEvents>, MethodsDoc extends object = TMethods, MissingRequiredField extends PropertyKey = Exclude<RequiredKeys<NonNullable<CurrentCompDoc["properties"]>>, keyof (InheritDoc & DataDoc & StoreDoc & IfExtends<CustomComputedConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & DataDoc & StoreDoc)>>, TComputed, {}, GetCustomComputedDoc<TComputed>>)>>(options: Options<TRootDoc, IsPage, CurrentCompDoc, CurrentPrefix, AllRootDataDoc, TInherit, TData, TStore, TComputed, TEvents, TMethods, InheritDoc, DataDoc, StoreDoc, ComputedDoc, EventsDoc, MethodsDoc>) => IfExtends<MissingRequiredField, never, CreatCustomComponentDoc<NonNullable<CurrentCompDoc["customEvents"]>, EventsDoc>, `缺少必传的字段${UnionToComma<MissingRequiredField & string>}`>;
|
|
54
|
+
}, CurrentPrefix>>, AllRootDataDoc extends object = Required<TRootDoc["properties"]> & TRootDoc["data"] & TRootDoc["computed"] & TRootDoc["store"]> = <TInherit extends CustomInheritConstraint<AllRootDataDoc, CurrentCompDoc>, TData extends CustomDataConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof InheritDoc> & Record<InnerFields<CurrentPrefix>, unknown>>, TStore extends CustomStoreConstraint<Required<TRootDoc["properties"]>, Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & DataDoc)> & Record<InnerFields<CurrentPrefix>, unknown>>, TEvents extends CustomEventsConstraint<CurrentCompDoc>, TComputed extends CustomComputedConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & DataDoc & StoreDoc)> & Record<InnerFields<CurrentPrefix>, unknown>>, TMethods extends CustomMethodsConstraint = {}, InheritDoc extends object = IfExtends<CustomInheritConstraint<AllRootDataDoc, CurrentCompDoc>, TInherit, {}, TInherit>, DataDoc extends object = IfExtends<CustomDataConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof InheritDoc> & Record<InnerFields<CurrentPrefix>, unknown>>, TData, {}, TData>, StoreDoc extends object = IfExtends<CustomStoreConstraint<Required<TRootDoc["properties"]>, Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & DataDoc)> & Record<InnerFields<CurrentPrefix>, unknown>>, TStore, {}, GetStoreDoc<TStore>>, ComputedDoc extends object = IfExtends<CustomComputedConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & DataDoc & StoreDoc)> & Record<InnerFields<CurrentPrefix>, unknown>>, TComputed, {}, GetCustomComputedDoc<TComputed>>, EventsDoc extends object = IfExtends<CustomEventsConstraint<CurrentCompDoc>, TEvents, {}, TEvents>, MethodsDoc extends object = TMethods, MissingRequiredField extends PropertyKey = Exclude<RequiredKeys<NonNullable<CurrentCompDoc["properties"]>>, keyof (InheritDoc & DataDoc & StoreDoc & IfExtends<CustomComputedConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & DataDoc & StoreDoc)>>, TComputed, {}, GetCustomComputedDoc<TComputed>>)>>(options: Options<TRootDoc, IsPage, CurrentCompDoc, CurrentPrefix, AllRootDataDoc, TInherit, TData, TStore, TComputed, TEvents, TMethods, InheritDoc, DataDoc, StoreDoc, ComputedDoc, EventsDoc, MethodsDoc>) => IfExtends<MissingRequiredField, never, CreatCustomComponentDoc<NonNullable<CurrentCompDoc["customEvents"]>, EventsDoc>, `缺少必传的字段${UnionToComma<MissingRequiredField & string>}`>;
|
|
57
55
|
export declare function CustomComponent<RootDoc extends RootComponentType, CompDoc extends ComponentType, Prefix extends string = "">(): IfExtends<EmptyObject, CompDoc, (opt: EmptyObject) => never, CusotmComponentConstructor<RootDoc, CompDoc, Prefix>>;
|
|
58
56
|
export type CustomComponentTrueOptions = {
|
|
59
57
|
inhrit?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/CustomComponent/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/CustomComponent/index.ts"],"names":[],"mappings":"AAmTA,MAAM,UAAU,eAAe;IAW7B,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE,CAAC,OAAqC,CAAQ,CAAC;AAC1E,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { IfExtends } from "hry-types/src/Any/IfExtends";
|
|
2
2
|
import type { ComputeIntersection } from "hry-types/src/Object/ComputeIntersection";
|
|
3
|
-
import type { AddNullForObject } from "../../../types/AddNullForObject";
|
|
4
3
|
import type { CustomComponentType } from "../../CustomComponent/CustomComponentType";
|
|
5
4
|
import type { RootComponentType } from "../../RootComponent/RootComponentType";
|
|
6
5
|
import type { GetCustomEventDocOfSubDoc } from "./GetCustomEventDocOfSubDoc";
|
|
@@ -9,7 +8,7 @@ type GetStopKeys<O> = {
|
|
|
9
8
|
}[keyof O];
|
|
10
9
|
export type CreateComponentDoc<TRootDoc extends RootComponentType, TName extends string, TSubComponentTuple extends CustomComponentType[], 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
10
|
properties: {
|
|
12
|
-
[k in keyof AllPropertiesDoc as `${TName}_${k & string}`]:
|
|
11
|
+
[k in keyof AllPropertiesDoc as `${TName}_${k & string}`]: AllPropertiesDoc[k];
|
|
13
12
|
};
|
|
14
13
|
}> & IfExtends<{}, FinalCustomEventDoc, {}, {
|
|
15
14
|
customEvents: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/DefineComponent/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/DefineComponent/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AA6CtD,MAAM,CAAC,MAAM,eAAe,GAA+B,UAAS,OAAO;IACzE,SAAS,CAEP,gBAAgB,CAAC,OAAgC,CAAQ,CAC1D,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { RootComponentTrueOptions } from "../../RootComponent";
|
|
2
|
+
import type { FinalOptionsOfComponent, SameFuncOptions } from ".";
|
|
3
|
+
export declare function handleRootComponent(finalOptions: FinalOptionsOfComponent, rootComponent: RootComponentTrueOptions | undefined, funcOptions: SameFuncOptions): void;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { isEmptyObject } from "../../../utils/isEmptyObject";
|
|
2
|
+
import { __throttleDebounce__FieldCheck } from "./__throttleDebounce__FieldCheck";
|
|
3
|
+
import { customEventsHandle } from "./customEventsHandle";
|
|
4
|
+
import { otherFieldsHandle } from "./otherFieldsHandle";
|
|
5
|
+
import { sameFuncFieldsCollect } from "./sameFuncFieldsCollect";
|
|
6
|
+
export function handleRootComponent(finalOptions, rootComponent, funcOptions) {
|
|
7
|
+
if (rootComponent && !isEmptyObject(rootComponent)) {
|
|
8
|
+
__throttleDebounce__FieldCheck(rootComponent);
|
|
9
|
+
if (rootComponent.customEvents)
|
|
10
|
+
customEventsHandle(finalOptions, rootComponent.customEvents);
|
|
11
|
+
delete rootComponent.customEvents;
|
|
12
|
+
if (rootComponent.events)
|
|
13
|
+
Object.assign(finalOptions.methods, rootComponent.events);
|
|
14
|
+
delete rootComponent.events;
|
|
15
|
+
sameFuncFieldsCollect(rootComponent, funcOptions);
|
|
16
|
+
otherFieldsHandle(finalOptions, rootComponent);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=handleRootComponent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleRootComponent.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/normalizeOptions/handleRootComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAG7D,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAQhE,MAAM,UAAU,mBAAmB,CACjC,YAAqC,EACrC,aAAmD,EACnD,WAA4B;IAE5B,IAAI,aAAa,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC;QAEnD,8BAA8B,CAAC,aAAa,CAAC,CAAC;QAE9C,IAAI,aAAa,CAAC,YAAY;YAAE,kBAAkB,CAAC,YAAY,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;QAC7F,OAAO,aAAa,CAAC,YAAY,CAAC;QAClC,IAAI,aAAa,CAAC,MAAM;YAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QACpF,OAAO,aAAa,CAAC,MAAM,CAAC;QAC5B,qBAAqB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAElD,iBAAiB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IACjD,CAAC;AACH,CAAC"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { reactionRegister } from "./reactionRegister";
|
|
2
2
|
export function initStore(storeConfig) {
|
|
3
3
|
return function () {
|
|
4
|
-
if (!storeConfig
|
|
4
|
+
if (!storeConfig)
|
|
5
5
|
return;
|
|
6
|
-
this.data.__storeInited__ = true;
|
|
7
6
|
reactionRegister.call(this, storeConfig);
|
|
8
7
|
};
|
|
9
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initStore.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/handleStore/initStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,MAAM,UAAU,SAAS,CAAC,WAAyD;IACjF,OAAO;QACL,IAAI,CAAC,WAAW
|
|
1
|
+
{"version":3,"file":"initStore.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/handleStore/initStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,MAAM,UAAU,SAAS,CAAC,WAAyD;IACjF,OAAO;QACL,IAAI,CAAC,WAAW;YAAE,OAAO;QACzB,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC3C,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import type { Instance } from "../../../RootComponent/Instance/RootComponentInstance";
|
|
2
|
-
|
|
2
|
+
import type { StoreConstraint } from "../../../RootComponent/Store/StoreConstraint";
|
|
3
|
+
export declare function reactionRegister(this: Instance, storeConfig: StoreConstraint): void;
|
|
@@ -1,10 +1,30 @@
|
|
|
1
|
+
function isGetter(value) {
|
|
2
|
+
return typeof value === "function";
|
|
3
|
+
}
|
|
1
4
|
export function reactionRegister(storeConfig) {
|
|
2
5
|
const { comparer, reaction, toJS } = require("mobx");
|
|
3
6
|
this.disposer = {};
|
|
4
7
|
const peddingSetData = {};
|
|
5
8
|
for (const key in storeConfig) {
|
|
6
|
-
|
|
7
|
-
|
|
9
|
+
let value;
|
|
10
|
+
let getter;
|
|
11
|
+
const itemConfig = storeConfig[key];
|
|
12
|
+
if (isGetter(itemConfig)) {
|
|
13
|
+
value = itemConfig(this.data);
|
|
14
|
+
if (value === undefined) {
|
|
15
|
+
throw new Error(`store配置中 ${key} 字段的 函数值不可为undefined`);
|
|
16
|
+
}
|
|
17
|
+
getter = itemConfig;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
if (itemConfig.getter(this.data) !== undefined) {
|
|
21
|
+
throw new Error(`store配置中 ${key}字段的配置对象中getter函数值不为undefined`);
|
|
22
|
+
}
|
|
23
|
+
getter = itemConfig.getter;
|
|
24
|
+
value = itemConfig.default;
|
|
25
|
+
}
|
|
26
|
+
peddingSetData[key] = toJS(value);
|
|
27
|
+
this.disposer[key] = reaction(() => getter(this.data), (value) => {
|
|
8
28
|
this.setData({
|
|
9
29
|
[key]: toJS(value),
|
|
10
30
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactionRegister.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/handleStore/reactionRegister.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reactionRegister.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/handleStore/reactionRegister.ts"],"names":[],"mappings":"AAGA,SAAS,QAAQ,CAAC,KAA2B;IAC3C,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACrC,CAAC;AACD,MAAM,UAAU,gBAAgB,CAAiB,WAA4B;IAE3E,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAgB,CAAC;IAEpE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACnB,MAAM,cAAc,GAA4B,EAAE,CAAC;IACnD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC;QACV,IAAI,MAAM,CAAC;QACX,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACzB,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,sBAAsB,CAAC,CAAC;YACzD,CAAC;YACD,MAAM,GAAG,UAAU,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC/C,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,8BAA8B,CAAC,CAAC;YAClE,CAAC;YACD,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;YAC3B,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC;QAC7B,CAAC;QAGD,cAAc,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAC3B,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EACvB,CAAC,KAAc,EAAE,EAAE;YACjB,IAAI,CAAC,OAAO,CAAC;gBACX,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC;aACnB,CAAC,CAAC;QACL,CAAC,EACD;YACE,MAAM,EAAE,QAAQ,CAAC,UAAU;SAC5B,CACF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { CustomComponentTrueOptions } from "../../CustomComponent";
|
|
2
|
+
import type { FinalOptionsOfComponent, SameFuncOptions } from ".";
|
|
3
|
+
export declare function handleSubComponents(componentOptions: FinalOptionsOfComponent, subComponents: CustomComponentTrueOptions[] | undefined, funcOptions: SameFuncOptions): void;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { __throttleDebounce__FieldCheck } from "./__throttleDebounce__FieldCheck";
|
|
2
|
+
import { otherFieldsHandle } from "./otherFieldsHandle";
|
|
3
|
+
import { sameFuncFieldsCollect } from "./sameFuncFieldsCollect";
|
|
4
|
+
export function handleSubComponents(componentOptions, subComponents, funcOptions) {
|
|
5
|
+
if (subComponents && subComponents.length !== 0) {
|
|
6
|
+
__throttleDebounce__FieldCheck(subComponents);
|
|
7
|
+
subComponents.forEach((subOption) => {
|
|
8
|
+
if (subOption.events)
|
|
9
|
+
Object.assign(componentOptions.methods, subOption.events);
|
|
10
|
+
sameFuncFieldsCollect(subOption, funcOptions);
|
|
11
|
+
otherFieldsHandle(componentOptions, subOption);
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=handleSubComponents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleSubComponents.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/normalizeOptions/handleSubComponents.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,UAAU,mBAAmB,CACjC,gBAAyC,EACzC,aAAuD,EACvD,WAA4B;IAE5B,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAEhD,8BAA8B,CAAC,aAAa,CAAC,CAAC;QAC9C,aAAa,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YAClC,IAAI,SAAS,CAAC,MAAM;gBAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;YAEhF,qBAAqB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YAE9C,iBAAiB,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addDetachedData.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/hijackHandle/addDetachedData.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe;IAE7B,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO;IAC7C,IAAI,CAAC,OAAO,CAAC;QAEX,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export function hijack(config, field, before, after = []) {
|
|
2
|
+
const originalFunc = config[field];
|
|
3
|
+
config[field] = function (...args) {
|
|
4
|
+
before.forEach(func => func.call(this, ...args));
|
|
5
|
+
if (originalFunc)
|
|
6
|
+
originalFunc.apply(this, args);
|
|
7
|
+
after.forEach(func => func.call(this, ...args));
|
|
8
|
+
};
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=hijack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hijack.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/hijackHandle/hijack.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,MAAM,CACpB,MAAS,EACT,KAAc,EACd,MAAc,EACd,QAAgB,EAAE;IAGlB,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;QAEjD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,OAAO;AACT,CAAC"}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import type { Func } from "hry-types/src/Misc/Func";
|
|
2
1
|
import type { FinalOptionsOfComponent } from "..";
|
|
3
|
-
export declare function
|
|
2
|
+
export declare function hijackHandle(finalOptionsForComponent: FinalOptionsOfComponent, isPage: boolean | undefined, path: string | undefined): void;
|
|
@@ -1,10 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { disposeStore } from "../handleStore/disposeStore";
|
|
2
|
+
import { initStore } from "../handleStore/initStore";
|
|
3
|
+
import { initComputed } from "../initComputed";
|
|
4
|
+
import { computedUpdater } from "../initComputed/computedUpdater";
|
|
5
|
+
import { addDetachedData } from "./addDetachedData";
|
|
6
|
+
import { hijack } from "./hijack";
|
|
7
|
+
import { isPageCheck } from "./isPageCheck";
|
|
8
|
+
import { loadReceivedDataHandle } from "./loadReceivedDataHandle";
|
|
9
|
+
import { onLoadReceivedDataHandle } from "./onLoadReceivedDataHandle";
|
|
10
|
+
import { pagePathCheck } from "./pagePathCheck";
|
|
11
|
+
export function hijackHandle(finalOptionsForComponent, isPage, path) {
|
|
12
|
+
if (finalOptionsForComponent.isPage) {
|
|
13
|
+
hijack(finalOptionsForComponent.pageLifetimes, "load", [loadReceivedDataHandle]);
|
|
14
|
+
}
|
|
15
|
+
hijack(finalOptionsForComponent.methods, "onLoad", [onLoadReceivedDataHandle]);
|
|
16
|
+
hijack(finalOptionsForComponent.observers, "**", [
|
|
17
|
+
computedUpdater,
|
|
18
|
+
]);
|
|
19
|
+
hijack(finalOptionsForComponent.lifetimes, "attached", [
|
|
20
|
+
isPageCheck(isPage),
|
|
21
|
+
pagePathCheck(path),
|
|
22
|
+
initStore(finalOptionsForComponent.store),
|
|
23
|
+
initComputed(finalOptionsForComponent.computed, finalOptionsForComponent.watch),
|
|
24
|
+
function () {
|
|
25
|
+
const observerhandlers = this.data.__oberverHandler__;
|
|
26
|
+
if (observerhandlers) {
|
|
27
|
+
for (const observerhandler of observerhandlers) {
|
|
28
|
+
observerhandler.call(this);
|
|
29
|
+
}
|
|
30
|
+
Reflect.deleteProperty(this.data, "__oberverHandler__");
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
], [addDetachedData]);
|
|
34
|
+
hijack(finalOptionsForComponent.lifetimes, "detached", [disposeStore]);
|
|
9
35
|
}
|
|
10
36
|
//# sourceMappingURL=index.js.map
|
|
@@ -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":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,UAAU,YAAY,CAC1B,wBAAiD,EACjD,MAA2B,EAC3B,IAAwB;IAGxB,IAAI,wBAAwB,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,CAAC,wBAAwB,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAC/E,MAAM,CAAC,wBAAwB,CAAC,SAAS,EAAE,IAAI,EAAE;QAC/C,eAAe;KAChB,CAAC,CAAC;IAEH,MAAM,CACJ,wBAAwB,CAAC,SAAS,EAClC,UAAU,EACV;QAEE,WAAW,CAAC,MAAM,CAAC;QAEnB,aAAa,CAAC,IAAI,CAAC;QACnB,SAAS,CAAC,wBAAwB,CAAC,KAAK,CAAC;QAEzC,YAAY,CAAC,wBAAwB,CAAC,QAAQ,EAAE,wBAAwB,CAAC,KAAK,CAAC;QAC/E;YACE,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;YACtD,IAAI,gBAAgB,EAAE,CAAC;gBACrB,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE,CAAC;oBAC/C,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;gBACD,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;KACF,EACD,CAAC,eAAe,CAAC,CAClB,CAAC;IACF,MAAM,CACJ,wBAAwB,CAAC,SAAS,EAClC,UAAU,EACV,CAAC,YAAY,CAAC,CACf,CAAC;AACJ,CAAC"}
|
|
@@ -13,16 +13,13 @@ export type ThrottleDebounce = Partial<Record<"throttle" | "debounce", Record<st
|
|
|
13
13
|
export type OptionsInnerFields = {
|
|
14
14
|
data: {
|
|
15
15
|
__storeInited__?: boolean;
|
|
16
|
-
|
|
17
|
-
__computedInitializing__?: boolean;
|
|
16
|
+
attached?: boolean;
|
|
18
17
|
__computedInited__?: boolean;
|
|
18
|
+
__oberverHandler__?: Func[];
|
|
19
19
|
__computedCache__?: ComputedCache;
|
|
20
20
|
__watchOldValue__?: WatchOldValue;
|
|
21
21
|
__throttleDebounce__?: ThrottleDebounce;
|
|
22
22
|
};
|
|
23
|
-
methods: {
|
|
24
|
-
__computedUpdater__?: Func;
|
|
25
|
-
};
|
|
26
23
|
};
|
|
27
24
|
export type SameFuncOptions = Record<"pageLifetimes" | "lifetimes" | "watch" | "observers", Record<string, Func[]>>;
|
|
28
25
|
export type FinalOptionsOfComponent = {
|
|
@@ -1,82 +1,50 @@
|
|
|
1
1
|
import { BBeforeCreate } from "../../../behaviors/BbeforeCreated";
|
|
2
2
|
import { BthrottleDebounce } from "../../../behaviors/BthrottleDebounce";
|
|
3
3
|
import { applyDebounceAndThrottle } from "../../../utils/applyDebounceAndThrottle";
|
|
4
|
-
import { isEmptyObject } from "../../../utils/isEmptyObject";
|
|
5
4
|
import { instanceConfig } from "../../InstanceInject/instanceConfig";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { isPageCheck } from "./hijackHandle/isPageCheck";
|
|
10
|
-
import { loadReceivedDataHandle } from "./hijackHandle/loadReceivedDataHandle";
|
|
11
|
-
import { onLoadReceivedDataHandle } from "./hijackHandle/onLoadReceivedDataHandle";
|
|
12
|
-
import { pagePathCheck } from "./hijackHandle/pagePathCheck";
|
|
5
|
+
import { handleRootComponent } from "./handleRootComponent";
|
|
6
|
+
import { handleSubComponents } from "./handleSubComponents";
|
|
7
|
+
import { hijackHandle } from "./hijackHandle";
|
|
13
8
|
import { injectInfoHandler } from "./injectInfoHandler";
|
|
14
9
|
import { InternalFieldProtection } from "./internalFieldProtection";
|
|
15
|
-
import { rootComponentOptionHandle } from "./rootComponentOptionHandle";
|
|
16
10
|
import { sameFuncOptionsHandle } from "./sameFuncOptionsHandle";
|
|
17
|
-
import { disposeStore } from "./handleStore/disposeStore";
|
|
18
|
-
import { initComputed } from "./initComputed";
|
|
19
|
-
import { computedUpdater } from "./initComputed/computedUpdater";
|
|
20
|
-
import { subComponentsOptionHandle } from "./subComponentsOptionHandle";
|
|
21
11
|
import { watchHandler } from "./watchHandler";
|
|
22
12
|
export function normalizeOptions(defineComponentOption) {
|
|
23
|
-
|
|
24
|
-
const
|
|
25
|
-
const
|
|
13
|
+
var _a;
|
|
14
|
+
const { rootComponent, subComponents, path } = defineComponentOption;
|
|
15
|
+
const isPage = (_a = rootComponent === null || rootComponent === void 0 ? void 0 : rootComponent.isPage) !== null && _a !== void 0 ? _a : false;
|
|
16
|
+
const finalOptionsForComponent = {
|
|
26
17
|
observers: {},
|
|
27
18
|
data: {},
|
|
28
19
|
methods: {},
|
|
29
20
|
behaviors: [BthrottleDebounce],
|
|
30
21
|
externalClasses: [],
|
|
31
22
|
pageLifetimes: {},
|
|
32
|
-
isPage
|
|
23
|
+
isPage,
|
|
33
24
|
properties: {},
|
|
34
25
|
computed: {},
|
|
35
26
|
watch: {},
|
|
36
27
|
lifetimes: {},
|
|
37
28
|
options: {},
|
|
38
|
-
}
|
|
29
|
+
};
|
|
30
|
+
injectInfoHandler(finalOptionsForComponent, instanceConfig.injectInfo);
|
|
39
31
|
const sameFuncOptions = {
|
|
40
32
|
pageLifetimes: {},
|
|
41
33
|
lifetimes: {},
|
|
42
34
|
watch: {},
|
|
43
35
|
observers: {},
|
|
44
36
|
};
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
49
|
-
if (subComponentsOptions && subComponentsOptions.length !== 0) {
|
|
50
|
-
__throttleDebounce__FieldCheck(subComponentsOptions);
|
|
51
|
-
subComponentsOptionHandle(finalOptionsForComponent, subComponentsOptions, sameFuncOptions);
|
|
52
|
-
}
|
|
53
|
-
sameFuncOptionsHandle(finalOptionsForComponent, rootComponentOption === null || rootComponentOption === void 0 ? void 0 : rootComponentOption.isPage, sameFuncOptions);
|
|
37
|
+
handleRootComponent(finalOptionsForComponent, rootComponent, sameFuncOptions);
|
|
38
|
+
handleSubComponents(finalOptionsForComponent, subComponents, sameFuncOptions);
|
|
39
|
+
sameFuncOptionsHandle(finalOptionsForComponent, isPage, sameFuncOptions);
|
|
54
40
|
InternalFieldProtection(finalOptionsForComponent);
|
|
55
|
-
if (finalOptionsForComponent.
|
|
56
|
-
hijack(finalOptionsForComponent.pageLifetimes, "load", [loadReceivedDataHandle]);
|
|
57
|
-
}
|
|
58
|
-
hijack(finalOptionsForComponent.methods, "onLoad", [onLoadReceivedDataHandle]);
|
|
59
|
-
hijack(finalOptionsForComponent.observers, "**", [
|
|
60
|
-
initStore(finalOptionsForComponent.store),
|
|
61
|
-
initComputed(finalOptionsForComponent.computed, finalOptionsForComponent.watch),
|
|
62
|
-
computedUpdater,
|
|
63
|
-
]);
|
|
64
|
-
hijack(finalOptionsForComponent.lifetimes, "attached", [
|
|
65
|
-
isPageCheck(rootComponentOption === null || rootComponentOption === void 0 ? void 0 : rootComponentOption.isPage),
|
|
66
|
-
pagePathCheck(defineComponentOption.path),
|
|
67
|
-
initStore(finalOptionsForComponent.store),
|
|
68
|
-
initComputed(finalOptionsForComponent.computed, finalOptionsForComponent.watch),
|
|
69
|
-
function () {
|
|
70
|
-
this.data.__attached__ = true;
|
|
71
|
-
},
|
|
72
|
-
]);
|
|
73
|
-
hijack(finalOptionsForComponent.lifetimes, "detached", [disposeStore]);
|
|
74
|
-
if (finalOptionsForComponent.isPage && finalOptionsForComponent.options) {
|
|
41
|
+
if (isPage && finalOptionsForComponent.options) {
|
|
75
42
|
Reflect.deleteProperty(finalOptionsForComponent.options, "virtualHost");
|
|
76
43
|
}
|
|
77
44
|
applyDebounceAndThrottle(finalOptionsForComponent.methods);
|
|
78
45
|
watchHandler(finalOptionsForComponent);
|
|
79
46
|
finalOptionsForComponent.behaviors.push(BBeforeCreate);
|
|
47
|
+
hijackHandle(finalOptionsForComponent, isPage, path);
|
|
80
48
|
return finalOptionsForComponent;
|
|
81
49
|
}
|
|
82
50
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/normalizeOptions/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/normalizeOptions/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AASrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAgD9C,MAAM,UAAU,gBAAgB,CAC9B,qBAA4C;;IAE5C,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,qBAAqB,CAAC;IACrE,MAAM,MAAM,GAAG,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,mCAAI,KAAK,CAAC;IAC9C,MAAM,wBAAwB,GAA4B;QACxD,SAAS,EAAE,EAAE;QACb,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,EAAE;QACX,SAAS,EAAE,CAAC,iBAAiB,CAAC;QAC9B,eAAe,EAAE,EAAE;QACnB,aAAa,EAAE,EAAE;QACjB,MAAM;QACN,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,EAAE;KACZ,CAAC;IAEF,iBAAiB,CAAC,wBAAwB,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAKvE,MAAM,eAAe,GAAoB;QACvC,aAAa,EAAE,EAAE;QACjB,SAAS,EAAE,EAAE;QACb,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,EAAE;KACd,CAAC;IAEF,mBAAmB,CAAC,wBAAwB,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;IAE9E,mBAAmB,CAAC,wBAAwB,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;IAE9E,qBAAqB,CAAC,wBAAwB,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IAGzE,uBAAuB,CAAC,wBAAwB,CAAC,CAAC;IAGlD,IAAI,MAAM,IAAI,wBAAwB,CAAC,OAAO,EAAE,CAAC;QAC/C,OAAO,CAAC,cAAc,CAAC,wBAAwB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC1E,CAAC;IAGD,wBAAwB,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAG3D,YAAY,CAAC,wBAAwB,CAAC,CAAC;IAGvC,wBAAwB,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAGvD,YAAY,CAAC,wBAAwB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAErD,OAAO,wBAAwB,CAAC;AAClC,CAAC"}
|
|
@@ -5,9 +5,13 @@ export function computedUpdater() {
|
|
|
5
5
|
for (const key in this.data.__computedCache__) {
|
|
6
6
|
const itemCache = this.data.__computedCache__[key];
|
|
7
7
|
let changed = false;
|
|
8
|
-
for (const dep of itemCache.dependences) {
|
|
8
|
+
outLook: for (const dep of itemCache.dependences) {
|
|
9
9
|
let curdepVal = this.data;
|
|
10
10
|
for (const path of dep.paths) {
|
|
11
|
+
if (curdepVal === null) {
|
|
12
|
+
changed = true;
|
|
13
|
+
break outLook;
|
|
14
|
+
}
|
|
11
15
|
curdepVal = curdepVal[path];
|
|
12
16
|
}
|
|
13
17
|
if (!deepEqual(curdepVal, dep.val)) {
|
|
@@ -17,7 +21,18 @@ export function computedUpdater() {
|
|
|
17
21
|
}
|
|
18
22
|
if (changed) {
|
|
19
23
|
const newDependences = [];
|
|
20
|
-
const
|
|
24
|
+
const proxyThis = new Proxy(this, {
|
|
25
|
+
get(target, prop, receiver) {
|
|
26
|
+
if (prop === "data") {
|
|
27
|
+
return deepProxy(target.data, newDependences);
|
|
28
|
+
}
|
|
29
|
+
return Reflect.get(target, prop, receiver);
|
|
30
|
+
},
|
|
31
|
+
set() {
|
|
32
|
+
throw "不可以在计算属性中修改实例的属性";
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
const newValue = itemCache.method.call(proxyThis);
|
|
21
36
|
this.setData({
|
|
22
37
|
[key]: getOriginalValue(newValue),
|
|
23
38
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computedUpdater.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/initComputed/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,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"computedUpdater.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/initComputed/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,SAAS,GAAY,IAAI,CAAC,IAAI,CAAC;YACnC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBAE7B,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;oBACvB,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM,OAAO,CAAC;gBAChB,CAAC;gBACD,SAAS,GAAI,SAAqC,CAAC,IAAI,CAAC,CAAC;YAC3D,CAAC;YAED,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnC,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,cAAc,GAAyB,EAAE,CAAC;YAChD,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE;gBAChC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;oBACxB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;wBACpB,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;oBAChD,CAAC;oBACD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAC7C,CAAC;gBACD,GAAG;oBACD,MAAM,kBAAkB,CAAC;gBAC3B,CAAC;aACF,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAElD,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,4 +1,4 @@
|
|
|
1
1
|
import type { Func } from "hry-types/src/Misc/Func";
|
|
2
2
|
import type { ComputedConstraint } from "../../../RootComponent/Computed/ComputedConstraint";
|
|
3
3
|
import type { Instance } from "../../../RootComponent/Instance/RootComponentInstance";
|
|
4
|
-
export declare function initComputed(computedConfig: ComputedConstraint
|
|
4
|
+
export declare function initComputed(computedConfig: ComputedConstraint, watchConfig: Record<string, Func>): (this: Instance) => void;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { deepClone } from "../../../../utils/deepClone";
|
|
1
2
|
import { isEmptyObject } from "../../../../utils/isEmptyObject";
|
|
2
3
|
import { nonNullable } from "../../../../utils/nonNullable";
|
|
3
4
|
import { getPathsValue } from "../watchHandler/getPathsValue";
|
|
@@ -5,16 +6,13 @@ import { hasComputedPath } from "../watchHandler/hasComputedPath";
|
|
|
5
6
|
import { initComputedAndGetCache } from "./initComputedAndGetCache";
|
|
6
7
|
export function initComputed(computedConfig, watchConfig) {
|
|
7
8
|
return function () {
|
|
8
|
-
if (!computedConfig || this.data.__computedInitializing__ === true)
|
|
9
|
-
return;
|
|
10
|
-
this.data.__computedInitializing__ = true;
|
|
11
9
|
const __computedInitCache__ = initComputedAndGetCache.call(this, computedConfig);
|
|
12
10
|
this.data.__computedCache__ = __computedInitCache__;
|
|
13
11
|
if (!isEmptyObject(watchConfig)) {
|
|
14
12
|
const watchOldValue = nonNullable(this.data.__watchOldValue__);
|
|
15
13
|
for (const path in watchConfig) {
|
|
16
14
|
if (hasComputedPath(path, Object.keys(computedConfig))) {
|
|
17
|
-
watchOldValue[path] = getPathsValue(this.data, path);
|
|
15
|
+
watchOldValue[path] = deepClone(getPathsValue(this.data, path));
|
|
18
16
|
}
|
|
19
17
|
}
|
|
20
18
|
}
|