@flashist/appframework 0.0.100 → 0.0.102
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/package.json +1 -1
- package/state/data/AppStateChangeType.d.ts +6 -0
- package/state/data/AppStateChangeType.js +8 -0
- package/state/data/AppStateChangeType.js.map +1 -0
- package/state/data/AppStateStorage.d.ts +10 -1
- package/state/data/AppStateStorage.js +120 -19
- package/state/data/AppStateStorage.js.map +1 -1
- package/state/data/IPreChangeHook.d.ts +2 -1
- package/state/data/IappStateChangeConfigVO.d.ts +8 -0
- package/state/data/IappStateChangeConfigVO.js +2 -0
- package/state/data/IappStateChangeConfigVO.js.map +1 -0
- package/state/tools/AppStateDeepKeyTools.d.ts +2 -1
- package/state/tools/AppStateDeepKeyTools.js +29 -25
- package/state/tools/AppStateDeepKeyTools.js.map +1 -1
package/package.json
CHANGED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export var AppStateChangeType;
|
|
2
|
+
(function (AppStateChangeType) {
|
|
3
|
+
AppStateChangeType["DELETE"] = "delete";
|
|
4
|
+
AppStateChangeType["CHANGE"] = "change";
|
|
5
|
+
AppStateChangeType["SPLICE"] = "splice";
|
|
6
|
+
AppStateChangeType["PUSH"] = "push";
|
|
7
|
+
})(AppStateChangeType || (AppStateChangeType = {}));
|
|
8
|
+
//# sourceMappingURL=AppStateChangeType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppStateChangeType.js","sourceRoot":"","sources":["../../../src/state/data/AppStateChangeType.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC1B,uCAAiB,CAAA;IACjB,uCAAiB,CAAA;IACjB,uCAAiB,CAAA;IACjB,mCAAa,CAAA;AACjB,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B"}
|
|
@@ -3,6 +3,7 @@ import { BaseObjectWithGlobalDispatcher } from "../../base/BaseObjectWithGlobalD
|
|
|
3
3
|
import { IDeepKeyHelperVO } from "../tools/INestedPathHelperVO";
|
|
4
4
|
import { DeepReadonly } from "./DeepReadableTypings";
|
|
5
5
|
import { IPreChangeHook } from "./IPreChangeHook";
|
|
6
|
+
import { IAppStateChangeConfigVO } from "./IappStateChangeConfigVO";
|
|
6
7
|
export declare class AppStateStorage extends BaseObjectWithGlobalDispatcher {
|
|
7
8
|
/**
|
|
8
9
|
* The purpose of the method is to "prepare" a "wrapper" of a part of a state,
|
|
@@ -37,9 +38,17 @@ export declare class AppStateStorage extends BaseObjectWithGlobalDispatcher {
|
|
|
37
38
|
getState<StateType extends object>(): DeepReadonly<StateType>;
|
|
38
39
|
getMutableState<StateType extends object>(): StateType;
|
|
39
40
|
protected dispatchChangeEvents(helperData: IDeepKeyHelperVO): void;
|
|
40
|
-
protected getPathsHelperData(deepKey: string,
|
|
41
|
+
protected getPathsHelperData(deepKey: string, config?: IAppStateChangeConfigVO): IDeepKeyHelperVO;
|
|
42
|
+
protected triggerPreChangeHooks<StateType, DeepKeyType extends keyof Flatten<StateType>>(stateForTypings: StateType, deepKey: DeepKeyType, config: IAppStateChangeConfigVO): void;
|
|
41
43
|
getValue<StateType extends object>(): <DeepKeyType extends keyof Flatten<StateType, never>>(key: DeepKeyType) => Partial<Flatten<StateType, never>[DeepKeyType]>;
|
|
42
44
|
protected innerGetValue<StateType, DeepKeyType extends keyof Flatten<StateType>, ValueType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType): Partial<ValueType>;
|
|
45
|
+
protected processStateAction<StateType, DeepKeyType extends keyof Flatten<StateType>, ValueType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType, config: IAppStateChangeConfigVO<ValueType>): any;
|
|
43
46
|
change<StateType extends object>(): <DeepKeyType extends keyof Flatten<StateType, never>>(key: DeepKeyType, value: Partial<Flatten<StateType, never>[DeepKeyType]>) => void;
|
|
44
47
|
protected innerChange<StateType, DeepKeyType extends keyof Flatten<StateType>, ValueType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType, value: Partial<ValueType>): void;
|
|
48
|
+
delete<StateType extends object>(): void;
|
|
49
|
+
protected innerDelete<StateType, DeepKeyType extends keyof Flatten<StateType>, ValueType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType): ValueType;
|
|
50
|
+
push<StateType extends object>(): void;
|
|
51
|
+
protected innerPush<StateType, DeepKeyType extends keyof Flatten<StateType>, ArrayType extends Flatten<StateType>[DeepKeyType] & Array<any> = Flatten<StateType>[DeepKeyType] & Array<any>>(stateForTypings: StateType, deepKey: DeepKeyType, ...elements: ArrayType): void;
|
|
52
|
+
splice<StateType extends object>(): void;
|
|
53
|
+
protected innerSplice<StateType, DeepKeyType extends keyof Flatten<StateType>, ArrayType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType, start: number, deleteCount?: number): ArrayType[];
|
|
45
54
|
}
|
|
@@ -13,10 +13,20 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
13
13
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
14
14
|
};
|
|
15
15
|
})();
|
|
16
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
17
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
18
|
+
if (ar || !(i in from)) {
|
|
19
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
20
|
+
ar[i] = from[i];
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
24
|
+
};
|
|
16
25
|
import { ObjectTools } from "@flashist/fcore";
|
|
17
26
|
import { BaseObjectWithGlobalDispatcher } from "../../base/BaseObjectWithGlobalDispatcher";
|
|
18
27
|
import { AppStateEventChangeTools } from "../tools/AppStateEventChangeTools";
|
|
19
28
|
import { AppStateDeepKeyTools } from "../tools/AppStateDeepKeyTools";
|
|
29
|
+
import { AppStateChangeType } from "./AppStateChangeType";
|
|
20
30
|
var AppStateStorage = /** @class */ (function (_super) {
|
|
21
31
|
__extends(AppStateStorage, _super);
|
|
22
32
|
function AppStateStorage() {
|
|
@@ -26,6 +36,7 @@ var AppStateStorage = /** @class */ (function (_super) {
|
|
|
26
36
|
_this.pathsHelperDataCache = {};
|
|
27
37
|
_this.preChangeHooks = [];
|
|
28
38
|
return _this;
|
|
39
|
+
// SPLICE: END
|
|
29
40
|
// // public change<StateType extends object, ChangeType>(nestedPaths: ObjectNestedPathsType<StateType>, value: ChangeType): void {
|
|
30
41
|
// public change<StateType, DeepKeyType extends keyof Flatten<StateType>>(obj: StateType, key: DeepKeyType, value: Flatten<StateType>[DeepKeyType]): void {
|
|
31
42
|
// // AS ANY needed to calm compiler and autocomplete
|
|
@@ -134,15 +145,23 @@ var AppStateStorage = /** @class */ (function (_super) {
|
|
|
134
145
|
this.dispatchEvent(eventName);
|
|
135
146
|
}
|
|
136
147
|
};
|
|
137
|
-
AppStateStorage.prototype.getPathsHelperData = function (deepKey,
|
|
138
|
-
if (
|
|
148
|
+
AppStateStorage.prototype.getPathsHelperData = function (deepKey, config) {
|
|
149
|
+
if (config === void 0) { config = null; }
|
|
139
150
|
var result = this.pathsHelperDataCache[deepKey];
|
|
140
151
|
if (!result) {
|
|
141
|
-
result = AppStateDeepKeyTools.prepareDeepKeyHelperData(deepKey,
|
|
152
|
+
result = AppStateDeepKeyTools.prepareDeepKeyHelperData(deepKey, config);
|
|
142
153
|
this.pathsHelperDataCache[deepKey] = result;
|
|
143
154
|
}
|
|
144
155
|
return result;
|
|
145
156
|
};
|
|
157
|
+
AppStateStorage.prototype.triggerPreChangeHooks = function (stateForTypings, deepKey, config) {
|
|
158
|
+
if (this.preChangeHooks.length <= 0) {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
this.preChangeHooks.forEach(function (item) {
|
|
162
|
+
item(stateForTypings, deepKey, config);
|
|
163
|
+
});
|
|
164
|
+
};
|
|
146
165
|
AppStateStorage.prototype.getValue = function () {
|
|
147
166
|
var _this = this;
|
|
148
167
|
return function (key) {
|
|
@@ -151,7 +170,7 @@ var AppStateStorage = /** @class */ (function (_super) {
|
|
|
151
170
|
};
|
|
152
171
|
AppStateStorage.prototype.innerGetValue = function (stateForTypings, deepKey) {
|
|
153
172
|
var result;
|
|
154
|
-
var pathsHelperData = this.getPathsHelperData(deepKey);
|
|
173
|
+
var pathsHelperData = this.getPathsHelperData(deepKey, null);
|
|
155
174
|
// console.log("AppStateStorage | innerChange __ pathsHelperData: ", pathsHelperData);
|
|
156
175
|
var tempObject = this.state;
|
|
157
176
|
var nestedPathsCount = pathsHelperData.splitDeepKeyParts.length;
|
|
@@ -166,33 +185,115 @@ var AppStateStorage = /** @class */ (function (_super) {
|
|
|
166
185
|
}
|
|
167
186
|
return result;
|
|
168
187
|
};
|
|
169
|
-
AppStateStorage.prototype.
|
|
170
|
-
var
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
};
|
|
174
|
-
};
|
|
175
|
-
AppStateStorage.prototype.innerChange = function (stateForTypings, deepKey, value) {
|
|
176
|
-
// Pre Change Hooks: execute pre-change-hooks on every element: e.g. ecs module hooks might change prepare the new ecs components to sort their container-type-keys to make sure they are always the same q
|
|
177
|
-
if (this.preChangeHooks.length > 0) {
|
|
178
|
-
this.preChangeHooks.forEach(function (item) {
|
|
179
|
-
item(stateForTypings, deepKey, value);
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
var pathsHelperData = this.getPathsHelperData(deepKey, value);
|
|
188
|
+
AppStateStorage.prototype.processStateAction = function (stateForTypings, deepKey, config) {
|
|
189
|
+
var _a;
|
|
190
|
+
var result;
|
|
191
|
+
var pathsHelperData = this.getPathsHelperData(deepKey, config);
|
|
183
192
|
// console.log("AppStateStorage | innerChange __ pathsHelperData: ", pathsHelperData);
|
|
184
193
|
var tempObject = this.state;
|
|
185
194
|
var nestedPathsCount = pathsHelperData.splitDeepKeyParts.length;
|
|
186
195
|
for (var nestedPathIndex = 0; nestedPathIndex < nestedPathsCount; nestedPathIndex++) {
|
|
187
196
|
var singlePath = pathsHelperData.splitDeepKeyParts[nestedPathIndex];
|
|
188
197
|
if (nestedPathIndex === (nestedPathsCount - 1)) {
|
|
189
|
-
ObjectTools.copySinglePropFromValue(tempObject, singlePath, value);
|
|
198
|
+
// ObjectTools.copySinglePropFromValue(tempObject, singlePath as string, value);
|
|
199
|
+
if (config.changeType === AppStateChangeType.CHANGE) {
|
|
200
|
+
ObjectTools.copySinglePropFromValue(tempObject, singlePath, config.value);
|
|
201
|
+
}
|
|
202
|
+
else if (config.changeType === AppStateChangeType.DELETE) {
|
|
203
|
+
result = tempObject[singlePath];
|
|
204
|
+
delete tempObject[singlePath];
|
|
205
|
+
}
|
|
206
|
+
else if (config.changeType === AppStateChangeType.PUSH) {
|
|
207
|
+
(_a = tempObject[singlePath]).push.apply(_a, config.elements);
|
|
208
|
+
}
|
|
209
|
+
else if (config.changeType === AppStateChangeType.SPLICE) {
|
|
210
|
+
result = tempObject[singlePath].splice(config.start, config.deleteCount);
|
|
211
|
+
}
|
|
190
212
|
}
|
|
191
213
|
else {
|
|
192
214
|
tempObject = tempObject[singlePath];
|
|
193
215
|
}
|
|
194
216
|
}
|
|
195
217
|
this.dispatchChangeEvents(pathsHelperData);
|
|
218
|
+
return result;
|
|
219
|
+
};
|
|
220
|
+
// CHANGE: START
|
|
221
|
+
AppStateStorage.prototype.change = function () {
|
|
222
|
+
var _this = this;
|
|
223
|
+
return function (key, value) {
|
|
224
|
+
_this.innerChange({}, key, value);
|
|
225
|
+
};
|
|
226
|
+
};
|
|
227
|
+
AppStateStorage.prototype.innerChange = function (stateForTypings, deepKey, value) {
|
|
228
|
+
var config = {
|
|
229
|
+
changeType: AppStateChangeType.SPLICE,
|
|
230
|
+
value: value
|
|
231
|
+
};
|
|
232
|
+
// Pre Change Hooks: execute pre-change-hooks on every element: e.g. ecs module hooks might change prepare the new ecs components to sort their container-type-keys to make sure they are always the same q
|
|
233
|
+
this.triggerPreChangeHooks(stateForTypings, deepKey, config);
|
|
234
|
+
this.processStateAction(stateForTypings, deepKey, config);
|
|
235
|
+
};
|
|
236
|
+
// CHANGE: END
|
|
237
|
+
// DELETE: START
|
|
238
|
+
AppStateStorage.prototype.delete = function () {
|
|
239
|
+
var _this = this;
|
|
240
|
+
return;
|
|
241
|
+
(function (key) {
|
|
242
|
+
return _this.innerDelete({}, key);
|
|
243
|
+
});
|
|
244
|
+
};
|
|
245
|
+
AppStateStorage.prototype.innerDelete = function (stateForTypings, deepKey) {
|
|
246
|
+
var config = {
|
|
247
|
+
changeType: AppStateChangeType.DELETE
|
|
248
|
+
};
|
|
249
|
+
// Pre Change Hooks: execute pre-change-hooks on every element: e.g. ecs module hooks might change prepare the new ecs components to sort their container-type-keys to make sure they are always the same q
|
|
250
|
+
this.triggerPreChangeHooks(stateForTypings, deepKey, config);
|
|
251
|
+
return this.processStateAction(stateForTypings, deepKey, config);
|
|
252
|
+
};
|
|
253
|
+
// DELETE: END
|
|
254
|
+
// PUSH: START
|
|
255
|
+
AppStateStorage.prototype.push = function () {
|
|
256
|
+
var _this = this;
|
|
257
|
+
return;
|
|
258
|
+
(function (key) {
|
|
259
|
+
var elements = [];
|
|
260
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
261
|
+
elements[_i - 1] = arguments[_i];
|
|
262
|
+
}
|
|
263
|
+
_this.innerPush.apply(_this, __spreadArray([{}, key], elements, false));
|
|
264
|
+
});
|
|
265
|
+
};
|
|
266
|
+
AppStateStorage.prototype.innerPush = function (stateForTypings, deepKey) {
|
|
267
|
+
var elements = [];
|
|
268
|
+
for (var _i = 2; _i < arguments.length; _i++) {
|
|
269
|
+
elements[_i - 2] = arguments[_i];
|
|
270
|
+
}
|
|
271
|
+
var config = {
|
|
272
|
+
changeType: AppStateChangeType.SPLICE,
|
|
273
|
+
elements: elements
|
|
274
|
+
};
|
|
275
|
+
// Pre Change Hooks: execute pre-change-hooks on every element: e.g. ecs module hooks might change prepare the new ecs components to sort their container-type-keys to make sure they are always the same q
|
|
276
|
+
this.triggerPreChangeHooks(stateForTypings, deepKey, config);
|
|
277
|
+
this.processStateAction(stateForTypings, deepKey, config);
|
|
278
|
+
};
|
|
279
|
+
// PUSH: END
|
|
280
|
+
// SPLICE: START
|
|
281
|
+
AppStateStorage.prototype.splice = function () {
|
|
282
|
+
var _this = this;
|
|
283
|
+
return;
|
|
284
|
+
(function (key, start, deleteCount) {
|
|
285
|
+
return _this.innerSplice({}, key, start, deleteCount);
|
|
286
|
+
});
|
|
287
|
+
};
|
|
288
|
+
AppStateStorage.prototype.innerSplice = function (stateForTypings, deepKey, start, deleteCount) {
|
|
289
|
+
var config = {
|
|
290
|
+
changeType: AppStateChangeType.SPLICE,
|
|
291
|
+
start: start,
|
|
292
|
+
deleteCount: deleteCount
|
|
293
|
+
};
|
|
294
|
+
// Pre Change Hooks: execute pre-change-hooks on every element: e.g. ecs module hooks might change prepare the new ecs components to sort their container-type-keys to make sure they are always the same q
|
|
295
|
+
this.triggerPreChangeHooks(stateForTypings, deepKey, config);
|
|
296
|
+
return this.processStateAction(stateForTypings, deepKey, config);
|
|
196
297
|
};
|
|
197
298
|
return AppStateStorage;
|
|
198
299
|
}(BaseObjectWithGlobalDispatcher));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppStateStorage.js","sourceRoot":"","sources":["../../../src/state/data/AppStateStorage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AppStateStorage.js","sourceRoot":"","sources":["../../../src/state/data/AppStateStorage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Flatten } from "./DeepKeyTypings";
|
|
2
|
+
import { IAppStateChangeConfigVO } from "./IappStateChangeConfigVO";
|
|
2
3
|
export interface IPreChangeHook extends Function {
|
|
3
|
-
<StateType, DeepKeyType extends keyof Flatten<StateType
|
|
4
|
+
<StateType, DeepKeyType extends keyof Flatten<StateType>>(stateForTypings: StateType, deepKey: DeepKeyType, changeConfig: IAppStateChangeConfigVO): void;
|
|
4
5
|
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AppStateChangeType } from "./AppStateChangeType";
|
|
2
|
+
export interface IAppStateChangeConfigVO<ValueType extends any = any, ArrayType = ValueType & Array<any>> {
|
|
3
|
+
changeType: AppStateChangeType;
|
|
4
|
+
value?: Partial<ValueType>;
|
|
5
|
+
elements?: ArrayType;
|
|
6
|
+
start?: number;
|
|
7
|
+
deleteCount?: number;
|
|
8
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IappStateChangeConfigVO.js","sourceRoot":"","sources":["../../../src/state/data/IappStateChangeConfigVO.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { IAppStateChangeConfigVO } from "../data/IappStateChangeConfigVO";
|
|
1
2
|
import { IDeepKeyHelperVO } from "./INestedPathHelperVO";
|
|
2
3
|
export declare class AppStateDeepKeyTools {
|
|
3
|
-
static prepareDeepKeyHelperData(deepKey: string,
|
|
4
|
+
static prepareDeepKeyHelperData(deepKey: string, config?: IAppStateChangeConfigVO): IDeepKeyHelperVO;
|
|
4
5
|
static splitDeepKeyIntoEvents(deepKey: string): IDeepKeyHelperVO;
|
|
5
6
|
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { ObjectTools } from "@flashist/fcore";
|
|
2
|
+
import { AppStateChangeType } from "../data/AppStateChangeType";
|
|
2
3
|
var AppStateDeepKeyTools = /** @class */ (function () {
|
|
3
4
|
function AppStateDeepKeyTools() {
|
|
4
5
|
}
|
|
5
|
-
AppStateDeepKeyTools.prepareDeepKeyHelperData = function (deepKey,
|
|
6
|
+
AppStateDeepKeyTools.prepareDeepKeyHelperData = function (deepKey, config) {
|
|
7
|
+
if (config === void 0) { config = null; }
|
|
6
8
|
var result = {
|
|
7
9
|
splitDeepKeyParts: [],
|
|
8
10
|
dispatchingChangePaths: [],
|
|
@@ -20,31 +22,33 @@ var AppStateDeepKeyTools = /** @class */ (function () {
|
|
|
20
22
|
result.dispatchingChangePaths.push(tempTotalPath);
|
|
21
23
|
result.dispatchingChangePathsMap[tempTotalPath] = true;
|
|
22
24
|
}
|
|
23
|
-
if (
|
|
24
|
-
|
|
25
|
-
var
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
var
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
25
|
+
if (config && config.changeType === AppStateChangeType.CHANGE) {
|
|
26
|
+
if (!ObjectTools.isSimpleType(config.value)) {
|
|
27
|
+
var getComplexValueKeyPaths_1 = function (value, valueDeepKey) {
|
|
28
|
+
var result = [valueDeepKey];
|
|
29
|
+
if (!ObjectTools.isSimpleType(value)) {
|
|
30
|
+
var keys = Object.keys(value);
|
|
31
|
+
for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
|
|
32
|
+
var singleKey = keys_1[_i];
|
|
33
|
+
var singlePropValue = value[singleKey];
|
|
34
|
+
var singleKeyDeepKeyPaths = getComplexValueKeyPaths_1(singlePropValue, "".concat(valueDeepKey, ".").concat(singleKey));
|
|
35
|
+
result.push.apply(result, singleKeyDeepKeyPaths);
|
|
36
|
+
}
|
|
33
37
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
var valueDeepKeyPaths = getComplexValueKeyPaths_1(config.value, deepKey);
|
|
41
|
+
for (var _a = 0, valueDeepKeyPaths_1 = valueDeepKeyPaths; _a < valueDeepKeyPaths_1.length; _a++) {
|
|
42
|
+
var singleValueDeepKeyPath = valueDeepKeyPaths_1[_a];
|
|
43
|
+
// tempTotalPath += "." + singleValueDeepKeyPath;
|
|
44
|
+
// result.dispatchingChangePaths.push(tempTotalPath);
|
|
45
|
+
var singleValueHelper = AppStateDeepKeyTools.splitDeepKeyIntoEvents(singleValueDeepKeyPath);
|
|
46
|
+
for (var _b = 0, _c = singleValueHelper.dispatchingChangePaths; _b < _c.length; _b++) {
|
|
47
|
+
var singleSplitDispatchingPart = _c[_b];
|
|
48
|
+
if (!result.dispatchingChangePathsMap[singleSplitDispatchingPart]) {
|
|
49
|
+
result.dispatchingChangePathsMap[singleSplitDispatchingPart] = true;
|
|
50
|
+
result.dispatchingChangePaths.push(singleSplitDispatchingPart);
|
|
51
|
+
}
|
|
48
52
|
}
|
|
49
53
|
}
|
|
50
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppStateDeepKeyTools.js","sourceRoot":"","sources":["../../../src/state/tools/AppStateDeepKeyTools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"AppStateDeepKeyTools.js","sourceRoot":"","sources":["../../../src/state/tools/AppStateDeepKeyTools.ts"],"names":[],"mappings":"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"}
|