@j2inn/resolvable-ui-elements 2.0.0 → 2.1.0-beta.0
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/dist/index.d.ts +12 -12
- package/dist/index.js +39 -39
- package/dist/resolvableElements/Resolver.d.ts +47 -47
- package/dist/resolvableElements/Resolver.js +57 -57
- package/dist/resolvableElements/elements/ResolvableElement.d.ts +14 -14
- package/dist/resolvableElements/elements/ResolvableElement.js +29 -29
- package/dist/resolvableElements/elements/ResolvableValueElement.d.ts +16 -16
- package/dist/resolvableElements/elements/ResolvableValueElement.js +38 -38
- package/dist/resolvableElements/elements/UiElement.d.ts +31 -31
- package/dist/resolvableElements/elements/UiElement.js +56 -56
- package/dist/resolvableElements/elements/expr/ResolvableExprElement.d.ts +26 -26
- package/dist/resolvableElements/elements/expr/ResolvableExprElement.js +105 -105
- package/dist/resolvableElements/elements/expr/ResolvableExprElementMeta.d.ts +10 -10
- package/dist/resolvableElements/elements/expr/ResolvableExprElementMeta.js +14 -14
- package/dist/resolvableElements/elements/function/FunctionElement.d.ts +12 -12
- package/dist/resolvableElements/elements/function/FunctionElement.js +41 -41
- package/dist/resolvableElements/elements/function/FunctionElementMeta.d.ts +9 -9
- package/dist/resolvableElements/elements/function/FunctionElementMeta.js +14 -14
- package/dist/resolvableElements/elements/list/ListElementMeta.d.ts +12 -12
- package/dist/resolvableElements/elements/list/ListElementMeta.js +14 -14
- package/dist/resolvableElements/elements/list/ResolvableListElement.d.ts +16 -16
- package/dist/resolvableElements/elements/list/ResolvableListElement.js +102 -102
- package/dist/resolvableElements/elements/makeElement.d.ts +7 -7
- package/dist/resolvableElements/elements/makeElement.js +40 -40
- package/dist/resolvableElements/elements/section/ResolvableSectionElement.d.ts +24 -24
- package/dist/resolvableElements/elements/section/ResolvableSectionElement.js +133 -122
- package/dist/resolvableElements/elements/section/ResolvableSectionElement.js.map +1 -1
- package/dist/resolvableElements/elements/section/SectionElementMeta.d.ts +16 -16
- package/dist/resolvableElements/elements/section/SectionElementMeta.js +11 -11
- package/dist/resolvableElements/elements/section/resolveSection.d.ts +12 -12
- package/dist/resolvableElements/elements/section/resolveSection.js +41 -41
- package/dist/resolvableElements/elements/tag/ResolvableTagElement.d.ts +18 -16
- package/dist/resolvableElements/elements/tag/ResolvableTagElement.js +113 -105
- package/dist/resolvableElements/elements/tag/ResolvableTagElement.js.map +1 -1
- package/dist/resolvableElements/elements/tag/ResolvableTagElementBatchProcessor.d.ts +25 -0
- package/dist/resolvableElements/elements/tag/ResolvableTagElementBatchProcessor.js +68 -0
- package/dist/resolvableElements/elements/tag/ResolvableTagElementBatchProcessor.js.map +1 -0
- package/dist/resolvableElements/elements/tag/TagElementMeta.d.ts +12 -12
- package/dist/resolvableElements/elements/tag/TagElementMeta.js +14 -14
- package/dist/resolvableElements/interfacesGeneration/generateInterfaces.d.ts +17 -17
- package/dist/resolvableElements/interfacesGeneration/generateInterfaces.js +134 -134
- package/dist/resolvableElements/interfacesGeneration/generateTypescriptInterfacesFile.d.ts +4 -4
- package/dist/resolvableElements/interfacesGeneration/generateTypescriptInterfacesFile.js +41 -41
- package/dist/resolvableElements/react/SectionChecker.d.ts +24 -24
- package/dist/resolvableElements/react/SectionChecker.jsx +27 -27
- package/dist/resolvableElements/react/useResolveSection.d.ts +21 -21
- package/dist/resolvableElements/react/useResolveSection.js +65 -65
- package/dist/resolvableElements/react/useResolverContext.d.ts +9 -9
- package/dist/resolvableElements/react/useResolverContext.jsx +64 -64
- package/dist/resolvableElements/resolveTemplatedExpression.d.ts +22 -22
- package/dist/resolvableElements/resolveTemplatedExpression.js +43 -43
- package/dist/useCurrentUser.d.ts +10 -10
- package/dist/useCurrentUser.jsx +48 -48
- package/dist_es/index.d.ts +12 -12
- package/dist_es/index.js +20 -20
- package/dist_es/resolvableElements/Resolver.d.ts +47 -47
- package/dist_es/resolvableElements/Resolver.js +53 -53
- package/dist_es/resolvableElements/elements/ResolvableElement.d.ts +14 -14
- package/dist_es/resolvableElements/elements/ResolvableElement.js +25 -25
- package/dist_es/resolvableElements/elements/ResolvableValueElement.d.ts +16 -16
- package/dist_es/resolvableElements/elements/ResolvableValueElement.js +32 -32
- package/dist_es/resolvableElements/elements/UiElement.d.ts +31 -31
- package/dist_es/resolvableElements/elements/UiElement.js +52 -52
- package/dist_es/resolvableElements/elements/expr/ResolvableExprElement.d.ts +26 -26
- package/dist_es/resolvableElements/elements/expr/ResolvableExprElement.js +101 -101
- package/dist_es/resolvableElements/elements/expr/ResolvableExprElementMeta.d.ts +10 -10
- package/dist_es/resolvableElements/elements/expr/ResolvableExprElementMeta.js +9 -9
- package/dist_es/resolvableElements/elements/function/FunctionElement.d.ts +12 -12
- package/dist_es/resolvableElements/elements/function/FunctionElement.js +36 -36
- package/dist_es/resolvableElements/elements/function/FunctionElementMeta.d.ts +9 -9
- package/dist_es/resolvableElements/elements/function/FunctionElementMeta.js +9 -9
- package/dist_es/resolvableElements/elements/list/ListElementMeta.d.ts +12 -12
- package/dist_es/resolvableElements/elements/list/ListElementMeta.js +9 -9
- package/dist_es/resolvableElements/elements/list/ResolvableListElement.d.ts +16 -16
- package/dist_es/resolvableElements/elements/list/ResolvableListElement.js +98 -98
- package/dist_es/resolvableElements/elements/makeElement.d.ts +7 -7
- package/dist_es/resolvableElements/elements/makeElement.js +36 -36
- package/dist_es/resolvableElements/elements/section/ResolvableSectionElement.d.ts +24 -24
- package/dist_es/resolvableElements/elements/section/ResolvableSectionElement.js +128 -117
- package/dist_es/resolvableElements/elements/section/ResolvableSectionElement.js.map +1 -1
- package/dist_es/resolvableElements/elements/section/SectionElementMeta.d.ts +16 -16
- package/dist_es/resolvableElements/elements/section/SectionElementMeta.js +6 -6
- package/dist_es/resolvableElements/elements/section/resolveSection.d.ts +12 -12
- package/dist_es/resolvableElements/elements/section/resolveSection.js +36 -36
- package/dist_es/resolvableElements/elements/tag/ResolvableTagElement.d.ts +18 -16
- package/dist_es/resolvableElements/elements/tag/ResolvableTagElement.js +109 -101
- package/dist_es/resolvableElements/elements/tag/ResolvableTagElement.js.map +1 -1
- package/dist_es/resolvableElements/elements/tag/ResolvableTagElementBatchProcessor.d.ts +25 -0
- package/dist_es/resolvableElements/elements/tag/ResolvableTagElementBatchProcessor.js +64 -0
- package/dist_es/resolvableElements/elements/tag/ResolvableTagElementBatchProcessor.js.map +1 -0
- package/dist_es/resolvableElements/elements/tag/TagElementMeta.d.ts +12 -12
- package/dist_es/resolvableElements/elements/tag/TagElementMeta.js +9 -9
- package/dist_es/resolvableElements/interfacesGeneration/generateInterfaces.d.ts +17 -17
- package/dist_es/resolvableElements/interfacesGeneration/generateInterfaces.js +128 -128
- package/dist_es/resolvableElements/interfacesGeneration/generateTypescriptInterfacesFile.d.ts +4 -4
- package/dist_es/resolvableElements/interfacesGeneration/generateTypescriptInterfacesFile.js +15 -15
- package/dist_es/resolvableElements/react/SectionChecker.d.ts +24 -24
- package/dist_es/resolvableElements/react/SectionChecker.jsx +20 -20
- package/dist_es/resolvableElements/react/useResolveSection.d.ts +21 -21
- package/dist_es/resolvableElements/react/useResolveSection.js +61 -61
- package/dist_es/resolvableElements/react/useResolverContext.d.ts +9 -9
- package/dist_es/resolvableElements/react/useResolverContext.jsx +36 -36
- package/dist_es/resolvableElements/resolveTemplatedExpression.d.ts +22 -22
- package/dist_es/resolvableElements/resolveTemplatedExpression.js +38 -38
- package/dist_es/useCurrentUser.d.ts +10 -10
- package/dist_es/useCurrentUser.jsx +20 -20
- package/package.json +2 -2
|
@@ -1,99 +1,99 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2022, J2 Innovations. All Rights Reserved
|
|
3
|
-
*/
|
|
4
|
-
import { HFilter } from 'haystack-core';
|
|
5
|
-
import { DEFAULT_POLL_RATE_SECS } from 'haystack-nclient';
|
|
6
|
-
import { replaceTemplateVariables, resolveTemplateExpression, } from '../../resolveTemplatedExpression';
|
|
7
|
-
import { ResolvableValueElement } from '../ResolvableValueElement';
|
|
8
|
-
import { UiElement, } from '../UiElement';
|
|
9
|
-
/**
|
|
10
|
-
* Resolves to a list of records and keeps them updated using a watch.
|
|
11
|
-
*/
|
|
12
|
-
export class ResolvableListElement extends ResolvableValueElement {
|
|
13
|
-
constructor(data) {
|
|
14
|
-
super(data);
|
|
15
|
-
}
|
|
16
|
-
filter;
|
|
17
|
-
watch;
|
|
18
|
-
doInitialize = async (parameters) => {
|
|
19
|
-
const { subscribe, entityBinding, parentBinding } = this
|
|
20
|
-
._meta;
|
|
21
|
-
this.filter = resolveTemplateExpression(UiElement.joinFilters(entityBinding, parentBinding), parameters);
|
|
22
|
-
if (!this.#isValidFilter(this.filter)) {
|
|
23
|
-
throw Error('Invalid filter');
|
|
24
|
-
}
|
|
25
|
-
const grid = await this.resolver.read(this.filter);
|
|
26
|
-
if (!this.#isValidReadGrid(grid)) {
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
this.#updateValue(grid);
|
|
30
|
-
if (subscribe) {
|
|
31
|
-
await this.#setupWatch(grid);
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
doClose = async () => {
|
|
35
|
-
return this.watch?.close();
|
|
36
|
-
};
|
|
37
|
-
getParameterList = () => {
|
|
38
|
-
const { entityBinding, parentBinding } = this
|
|
39
|
-
._meta;
|
|
40
|
-
const parameters = [];
|
|
41
|
-
if (entityBinding) {
|
|
42
|
-
replaceTemplateVariables(entityBinding, (_, match) => {
|
|
43
|
-
parameters.push(match);
|
|
44
|
-
return '';
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
if (parentBinding) {
|
|
48
|
-
replaceTemplateVariables(parentBinding, (_, match) => {
|
|
49
|
-
parameters.push(match);
|
|
50
|
-
return '';
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
return parameters;
|
|
54
|
-
};
|
|
55
|
-
#isValidFilter = (filter) => {
|
|
56
|
-
try {
|
|
57
|
-
HFilter.parse(filter);
|
|
58
|
-
}
|
|
59
|
-
catch (e) {
|
|
60
|
-
console.error('Invalid filter: \n', this.filter, e);
|
|
61
|
-
return false;
|
|
62
|
-
}
|
|
63
|
-
return true;
|
|
64
|
-
};
|
|
65
|
-
#isValidReadGrid = (grid) => {
|
|
66
|
-
if (grid.isError()) {
|
|
67
|
-
console.error('Error grid result for query: \n', this.filter, grid.getError());
|
|
68
|
-
}
|
|
69
|
-
return true;
|
|
70
|
-
};
|
|
71
|
-
#setupWatch = async (grid) => {
|
|
72
|
-
const { subscribePollRate, subscribe } = this
|
|
73
|
-
._meta;
|
|
74
|
-
if (subscribe) {
|
|
75
|
-
this.watch = await this.resolver.makeWatch(this.#getWatchDisplayName(), grid);
|
|
76
|
-
const updateValue = () => this.#updateValue(this.watch?.grid);
|
|
77
|
-
// Update with the value received when opening the watch
|
|
78
|
-
updateValue();
|
|
79
|
-
// Configure polling options
|
|
80
|
-
this.watch.pollRate = subscribePollRate ?? DEFAULT_POLL_RATE_SECS;
|
|
81
|
-
this.watch.changed({
|
|
82
|
-
callback: updateValue,
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
};
|
|
86
|
-
#updateValue = (grid) => {
|
|
87
|
-
const { orderBy } = this._meta;
|
|
88
|
-
if (grid) {
|
|
89
|
-
if (orderBy) {
|
|
90
|
-
grid.sortBy(orderBy);
|
|
91
|
-
}
|
|
92
|
-
this.value = grid;
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
|
-
#getWatchDisplayName = () => {
|
|
96
|
-
return `ResolvableElement Watch for ${this.name ?? this.filter}`;
|
|
97
|
-
};
|
|
98
|
-
}
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2022, J2 Innovations. All Rights Reserved
|
|
3
|
+
*/
|
|
4
|
+
import { HFilter } from 'haystack-core';
|
|
5
|
+
import { DEFAULT_POLL_RATE_SECS } from 'haystack-nclient';
|
|
6
|
+
import { replaceTemplateVariables, resolveTemplateExpression, } from '../../resolveTemplatedExpression';
|
|
7
|
+
import { ResolvableValueElement } from '../ResolvableValueElement';
|
|
8
|
+
import { UiElement, } from '../UiElement';
|
|
9
|
+
/**
|
|
10
|
+
* Resolves to a list of records and keeps them updated using a watch.
|
|
11
|
+
*/
|
|
12
|
+
export class ResolvableListElement extends ResolvableValueElement {
|
|
13
|
+
constructor(data) {
|
|
14
|
+
super(data);
|
|
15
|
+
}
|
|
16
|
+
filter;
|
|
17
|
+
watch;
|
|
18
|
+
doInitialize = async (parameters) => {
|
|
19
|
+
const { subscribe, entityBinding, parentBinding } = this
|
|
20
|
+
._meta;
|
|
21
|
+
this.filter = resolveTemplateExpression(UiElement.joinFilters(entityBinding, parentBinding), parameters);
|
|
22
|
+
if (!this.#isValidFilter(this.filter)) {
|
|
23
|
+
throw Error('Invalid filter');
|
|
24
|
+
}
|
|
25
|
+
const grid = await this.resolver.read(this.filter);
|
|
26
|
+
if (!this.#isValidReadGrid(grid)) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
this.#updateValue(grid);
|
|
30
|
+
if (subscribe) {
|
|
31
|
+
await this.#setupWatch(grid);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
doClose = async () => {
|
|
35
|
+
return this.watch?.close();
|
|
36
|
+
};
|
|
37
|
+
getParameterList = () => {
|
|
38
|
+
const { entityBinding, parentBinding } = this
|
|
39
|
+
._meta;
|
|
40
|
+
const parameters = [];
|
|
41
|
+
if (entityBinding) {
|
|
42
|
+
replaceTemplateVariables(entityBinding, (_, match) => {
|
|
43
|
+
parameters.push(match);
|
|
44
|
+
return '';
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
if (parentBinding) {
|
|
48
|
+
replaceTemplateVariables(parentBinding, (_, match) => {
|
|
49
|
+
parameters.push(match);
|
|
50
|
+
return '';
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
return parameters;
|
|
54
|
+
};
|
|
55
|
+
#isValidFilter = (filter) => {
|
|
56
|
+
try {
|
|
57
|
+
HFilter.parse(filter);
|
|
58
|
+
}
|
|
59
|
+
catch (e) {
|
|
60
|
+
console.error('Invalid filter: \n', this.filter, e);
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
return true;
|
|
64
|
+
};
|
|
65
|
+
#isValidReadGrid = (grid) => {
|
|
66
|
+
if (grid.isError()) {
|
|
67
|
+
console.error('Error grid result for query: \n', this.filter, grid.getError());
|
|
68
|
+
}
|
|
69
|
+
return true;
|
|
70
|
+
};
|
|
71
|
+
#setupWatch = async (grid) => {
|
|
72
|
+
const { subscribePollRate, subscribe } = this
|
|
73
|
+
._meta;
|
|
74
|
+
if (subscribe) {
|
|
75
|
+
this.watch = await this.resolver.makeWatch(this.#getWatchDisplayName(), grid);
|
|
76
|
+
const updateValue = () => this.#updateValue(this.watch?.grid);
|
|
77
|
+
// Update with the value received when opening the watch
|
|
78
|
+
updateValue();
|
|
79
|
+
// Configure polling options
|
|
80
|
+
this.watch.pollRate = subscribePollRate ?? DEFAULT_POLL_RATE_SECS;
|
|
81
|
+
this.watch.changed({
|
|
82
|
+
callback: updateValue,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
#updateValue = (grid) => {
|
|
87
|
+
const { orderBy } = this._meta;
|
|
88
|
+
if (grid) {
|
|
89
|
+
if (orderBy) {
|
|
90
|
+
grid.sortBy(orderBy);
|
|
91
|
+
}
|
|
92
|
+
this.value = grid;
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
#getWatchDisplayName = () => {
|
|
96
|
+
return `ResolvableElement Watch for ${this.name ?? this.filter}`;
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
99
|
//# sourceMappingURL=ResolvableListElement.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { UiElement, UiElementConstructorData, UiElementData } from './UiElement';
|
|
2
|
-
/**
|
|
3
|
-
* Factory function used to build an element.
|
|
4
|
-
* @param data
|
|
5
|
-
* @returns
|
|
6
|
-
*/
|
|
7
|
-
export declare const makeElement: <T extends UiElementData<import("./UiElement").UiElementMeta>>(data: UiElementConstructorData<T>) => UiElement<T>;
|
|
1
|
+
import { UiElement, UiElementConstructorData, UiElementData } from './UiElement';
|
|
2
|
+
/**
|
|
3
|
+
* Factory function used to build an element.
|
|
4
|
+
* @param data
|
|
5
|
+
* @returns
|
|
6
|
+
*/
|
|
7
|
+
export declare const makeElement: <T extends UiElementData<import("./UiElement").UiElementMeta>>(data: UiElementConstructorData<T>) => UiElement<T>;
|
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2022, J2 Innovations. All Rights Reserved
|
|
3
|
-
*/
|
|
4
|
-
import { ResolvableExprElement } from './expr/ResolvableExprElement';
|
|
5
|
-
import { isResolvableExprElementData } from './expr/ResolvableExprElementMeta';
|
|
6
|
-
import { FunctionElement } from './function/FunctionElement';
|
|
7
|
-
import { isFunctionElementData } from './function/FunctionElementMeta';
|
|
8
|
-
import { isResolvableListElementData } from './list/ListElementMeta';
|
|
9
|
-
import { ResolvableListElement } from './list/ResolvableListElement';
|
|
10
|
-
import { ResolvableSectionElement } from './section/ResolvableSectionElement';
|
|
11
|
-
import { isSectionData } from './section/SectionElementMeta';
|
|
12
|
-
import { ResolvableTagElement } from './tag/ResolvableTagElement';
|
|
13
|
-
import { isResolvableTagElementData } from './tag/TagElementMeta';
|
|
14
|
-
/**
|
|
15
|
-
* Factory function used to build an element.
|
|
16
|
-
* @param data
|
|
17
|
-
* @returns
|
|
18
|
-
*/
|
|
19
|
-
export const makeElement = (data) => {
|
|
20
|
-
if (isSectionData(data.element)) {
|
|
21
|
-
return new ResolvableSectionElement(data);
|
|
22
|
-
}
|
|
23
|
-
if (isResolvableTagElementData(data.element)) {
|
|
24
|
-
return new ResolvableTagElement(data);
|
|
25
|
-
}
|
|
26
|
-
if (isResolvableListElementData(data.element)) {
|
|
27
|
-
return new ResolvableListElement(data);
|
|
28
|
-
}
|
|
29
|
-
if (isResolvableExprElementData(data.element)) {
|
|
30
|
-
return new ResolvableExprElement(data);
|
|
31
|
-
}
|
|
32
|
-
if (isFunctionElementData(data.element)) {
|
|
33
|
-
return new FunctionElement(data);
|
|
34
|
-
}
|
|
35
|
-
throw new Error(`Element cannot be deserialized: \n${JSON.stringify(data.element)}`);
|
|
36
|
-
};
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2022, J2 Innovations. All Rights Reserved
|
|
3
|
+
*/
|
|
4
|
+
import { ResolvableExprElement } from './expr/ResolvableExprElement';
|
|
5
|
+
import { isResolvableExprElementData } from './expr/ResolvableExprElementMeta';
|
|
6
|
+
import { FunctionElement } from './function/FunctionElement';
|
|
7
|
+
import { isFunctionElementData } from './function/FunctionElementMeta';
|
|
8
|
+
import { isResolvableListElementData } from './list/ListElementMeta';
|
|
9
|
+
import { ResolvableListElement } from './list/ResolvableListElement';
|
|
10
|
+
import { ResolvableSectionElement } from './section/ResolvableSectionElement';
|
|
11
|
+
import { isSectionData } from './section/SectionElementMeta';
|
|
12
|
+
import { ResolvableTagElement } from './tag/ResolvableTagElement';
|
|
13
|
+
import { isResolvableTagElementData } from './tag/TagElementMeta';
|
|
14
|
+
/**
|
|
15
|
+
* Factory function used to build an element.
|
|
16
|
+
* @param data
|
|
17
|
+
* @returns
|
|
18
|
+
*/
|
|
19
|
+
export const makeElement = (data) => {
|
|
20
|
+
if (isSectionData(data.element)) {
|
|
21
|
+
return new ResolvableSectionElement(data);
|
|
22
|
+
}
|
|
23
|
+
if (isResolvableTagElementData(data.element)) {
|
|
24
|
+
return new ResolvableTagElement(data);
|
|
25
|
+
}
|
|
26
|
+
if (isResolvableListElementData(data.element)) {
|
|
27
|
+
return new ResolvableListElement(data);
|
|
28
|
+
}
|
|
29
|
+
if (isResolvableExprElementData(data.element)) {
|
|
30
|
+
return new ResolvableExprElement(data);
|
|
31
|
+
}
|
|
32
|
+
if (isFunctionElementData(data.element)) {
|
|
33
|
+
return new FunctionElement(data);
|
|
34
|
+
}
|
|
35
|
+
throw new Error(`Element cannot be deserialized: \n${JSON.stringify(data.element)}`);
|
|
36
|
+
};
|
|
37
37
|
//# sourceMappingURL=makeElement.js.map
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import { HDict } from 'haystack-core';
|
|
2
|
-
import { ResolvableElement } from '../ResolvableElement';
|
|
3
|
-
import { UiElement, UiElementConstructorData, UiElementData } from '../UiElement';
|
|
4
|
-
import { ResolvedSection, UiElementSectionMeta } from './SectionElementMeta';
|
|
5
|
-
/**
|
|
6
|
-
* A container of elements that can be resolve them by propagation of the lifecycle functions.
|
|
7
|
-
*/
|
|
8
|
-
export declare class ResolvableSectionElement<T extends UiElementData<UiElementSectionMeta> = UiElementData<UiElementSectionMeta>> extends ResolvableElement<T> {
|
|
9
|
-
#private;
|
|
10
|
-
constructor(data: UiElementConstructorData<T>);
|
|
11
|
-
protected _value: Record<string, unknown>;
|
|
12
|
-
get value(): ResolvedSection<T>;
|
|
13
|
-
set value(value: ResolvedSection<T>);
|
|
14
|
-
children: (UiElement<UiElementData> | ChildUnresolvedSection)[];
|
|
15
|
-
toJSON(): Record<string, unknown>;
|
|
16
|
-
protected doInitialize: (parameters: HDict) => Promise<void>;
|
|
17
|
-
protected doClose: () => Promise<void>;
|
|
18
|
-
getParameterList: () => string[];
|
|
19
|
-
}
|
|
20
|
-
export declare const isChildUnresolvedSection: (value: unknown) => value is ChildUnresolvedSection;
|
|
21
|
-
export type ChildUnresolvedSection = [
|
|
22
|
-
string | undefined,
|
|
23
|
-
UiElementData<UiElementSectionMeta>
|
|
24
|
-
];
|
|
1
|
+
import { HDict } from 'haystack-core';
|
|
2
|
+
import { ResolvableElement } from '../ResolvableElement';
|
|
3
|
+
import { UiElement, UiElementConstructorData, UiElementData } from '../UiElement';
|
|
4
|
+
import { ResolvedSection, UiElementSectionMeta } from './SectionElementMeta';
|
|
5
|
+
/**
|
|
6
|
+
* A container of elements that can be resolve them by propagation of the lifecycle functions.
|
|
7
|
+
*/
|
|
8
|
+
export declare class ResolvableSectionElement<T extends UiElementData<UiElementSectionMeta> = UiElementData<UiElementSectionMeta>> extends ResolvableElement<T> {
|
|
9
|
+
#private;
|
|
10
|
+
constructor(data: UiElementConstructorData<T>);
|
|
11
|
+
protected _value: Record<string, unknown>;
|
|
12
|
+
get value(): ResolvedSection<T>;
|
|
13
|
+
set value(value: ResolvedSection<T>);
|
|
14
|
+
children: (UiElement<UiElementData> | ChildUnresolvedSection)[];
|
|
15
|
+
toJSON(): Record<string, unknown>;
|
|
16
|
+
protected doInitialize: (parameters: HDict) => Promise<void>;
|
|
17
|
+
protected doClose: () => Promise<void>;
|
|
18
|
+
getParameterList: () => string[];
|
|
19
|
+
}
|
|
20
|
+
export declare const isChildUnresolvedSection: (value: unknown) => value is ChildUnresolvedSection;
|
|
21
|
+
export type ChildUnresolvedSection = [
|
|
22
|
+
string | undefined,
|
|
23
|
+
UiElementData<UiElementSectionMeta>
|
|
24
|
+
];
|
|
@@ -1,118 +1,129 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2022, J2 Innovations. All Rights Reserved
|
|
3
|
-
*/
|
|
4
|
-
import { makeElement } from '../makeElement';
|
|
5
|
-
import { ResolvableElement } from '../ResolvableElement';
|
|
6
|
-
import { ResolvableValueElement } from '../ResolvableValueElement';
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
}
|
|
117
|
-
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2022, J2 Innovations. All Rights Reserved
|
|
3
|
+
*/
|
|
4
|
+
import { makeElement } from '../makeElement';
|
|
5
|
+
import { ResolvableElement } from '../ResolvableElement';
|
|
6
|
+
import { ResolvableValueElement } from '../ResolvableValueElement';
|
|
7
|
+
import { ResolvableTagElement } from '../tag/ResolvableTagElement';
|
|
8
|
+
import { ResolvableTagElementBatchProcessor } from '../tag/ResolvableTagElementBatchProcessor';
|
|
9
|
+
import { isSectionData, } from './SectionElementMeta';
|
|
10
|
+
/**
|
|
11
|
+
* A container of elements that can be resolve them by propagation of the lifecycle functions.
|
|
12
|
+
*/
|
|
13
|
+
export class ResolvableSectionElement extends ResolvableElement {
|
|
14
|
+
constructor(data) {
|
|
15
|
+
super(data);
|
|
16
|
+
this.children = this.#deserializeChildren(data);
|
|
17
|
+
}
|
|
18
|
+
_value = {};
|
|
19
|
+
get value() {
|
|
20
|
+
return this._value;
|
|
21
|
+
}
|
|
22
|
+
set value(value) {
|
|
23
|
+
this._value = value;
|
|
24
|
+
this.onUpdate(value);
|
|
25
|
+
}
|
|
26
|
+
#deserializeChildren = (data) => {
|
|
27
|
+
return Object.entries(data.element)
|
|
28
|
+
.filter(([name, element]) => {
|
|
29
|
+
// Filter out non-valid children
|
|
30
|
+
if (name.startsWith('_')) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
// Filter out non-accessible subsections
|
|
34
|
+
if (isSectionData(element)) {
|
|
35
|
+
return this.isAccessAllowed(element._meta);
|
|
36
|
+
}
|
|
37
|
+
return true;
|
|
38
|
+
})
|
|
39
|
+
.map(([name, element]) => {
|
|
40
|
+
return this.#deserializeChild({
|
|
41
|
+
...data,
|
|
42
|
+
element,
|
|
43
|
+
name,
|
|
44
|
+
onUpdate: (childVal) => {
|
|
45
|
+
this._value[name] = childVal;
|
|
46
|
+
this.onUpdate(this.value);
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
})
|
|
50
|
+
.filter((element) => !!element);
|
|
51
|
+
};
|
|
52
|
+
#deserializeChild = (data, deepDeserialize = false) => {
|
|
53
|
+
if (!deepDeserialize && isSectionData(data.element)) {
|
|
54
|
+
return [data.name, data.element];
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
try {
|
|
58
|
+
// Make a resolvable element
|
|
59
|
+
return makeElement(data);
|
|
60
|
+
}
|
|
61
|
+
catch (e) {
|
|
62
|
+
// return children section name and data
|
|
63
|
+
return [data.name, data.element];
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
children = [];
|
|
68
|
+
toJSON() {
|
|
69
|
+
const props = { _meta: this._meta };
|
|
70
|
+
this.children?.forEach((child) => {
|
|
71
|
+
let name, val;
|
|
72
|
+
if (isChildUnresolvedSection(child)) {
|
|
73
|
+
name = child[0];
|
|
74
|
+
val = child[1];
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
name = child.name;
|
|
78
|
+
val = child.toJSON();
|
|
79
|
+
}
|
|
80
|
+
if (name) {
|
|
81
|
+
props[name] = val;
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
return props;
|
|
85
|
+
}
|
|
86
|
+
doInitialize = async (parameters) => {
|
|
87
|
+
const promises = [];
|
|
88
|
+
const batchProcessor = new ResolvableTagElementBatchProcessor();
|
|
89
|
+
for (const child of this.children) {
|
|
90
|
+
if (isChildUnresolvedSection(child) && child[0]) {
|
|
91
|
+
this._value[child[0]] = child[1];
|
|
92
|
+
}
|
|
93
|
+
else if (child instanceof ResolvableElement) {
|
|
94
|
+
if (child instanceof ResolvableTagElement) {
|
|
95
|
+
batchProcessor.addElement(child);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
promises.push(child.initialize(parameters));
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
if (!batchProcessor.isEmpty()) {
|
|
103
|
+
promises.push(batchProcessor.initialize(parameters));
|
|
104
|
+
}
|
|
105
|
+
this.onUpdate(this.value);
|
|
106
|
+
await Promise.all(promises);
|
|
107
|
+
};
|
|
108
|
+
doClose = async () => {
|
|
109
|
+
const promises = [];
|
|
110
|
+
for (const child of this.children) {
|
|
111
|
+
if (child instanceof ResolvableElement) {
|
|
112
|
+
promises.push(child.close());
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
await Promise.all(promises);
|
|
116
|
+
};
|
|
117
|
+
getParameterList = () => {
|
|
118
|
+
const parameters = [];
|
|
119
|
+
this.children.forEach((element) => {
|
|
120
|
+
if (!isChildUnresolvedSection(element) &&
|
|
121
|
+
element instanceof ResolvableValueElement) {
|
|
122
|
+
parameters.push(...element.getParameterList());
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
return [...new Set(parameters)]; // Retrieve unique values
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
export const isChildUnresolvedSection = (value) => value instanceof Array && value.length === 2 && isSectionData(value[1]);
|
|
118
129
|
//# sourceMappingURL=ResolvableSectionElement.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResolvableSectionElement.js","sourceRoot":"","sources":["../../../../src/resolvableElements/elements/section/ResolvableSectionElement.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"ResolvableSectionElement.js","sourceRoot":"","sources":["../../../../src/resolvableElements/elements/section/ResolvableSectionElement.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { HVal } from 'haystack-core';
|
|
2
|
-
import { UiElementData, UiElementMeta } from '../UiElement';
|
|
3
|
-
export interface UiElementSectionMeta extends UiElementMeta {
|
|
4
|
-
resolutionType?: never;
|
|
5
|
-
}
|
|
6
|
-
export type ResolvedSection<T extends UiElementData<UiElementSectionMeta>> = T extends {
|
|
7
|
-
_resolved?: Record<string, unknown>;
|
|
8
|
-
} ? Required<T>['_resolved'] : Record<string, unknown>;
|
|
9
|
-
export type ParametersOfSection<T extends UiElementData> = T extends {
|
|
10
|
-
_parameters?: Record<string, HVal>;
|
|
11
|
-
} ? PartialExplicitUndefined<T['_parameters']> : undefined;
|
|
12
|
-
export type PartialExplicitUndefined<T> = {
|
|
13
|
-
[P in keyof T]: T[P] | null | undefined;
|
|
14
|
-
};
|
|
15
|
-
export declare const isSectionData: (element: UiElementData) => element is UiElementData<UiElementSectionMeta>;
|
|
16
|
-
export declare const isSectionMeta: (meta: UiElementMeta | undefined) => meta is UiElementSectionMeta;
|
|
1
|
+
import { HVal } from 'haystack-core';
|
|
2
|
+
import { UiElementData, UiElementMeta } from '../UiElement';
|
|
3
|
+
export interface UiElementSectionMeta extends UiElementMeta {
|
|
4
|
+
resolutionType?: never;
|
|
5
|
+
}
|
|
6
|
+
export type ResolvedSection<T extends UiElementData<UiElementSectionMeta>> = T extends {
|
|
7
|
+
_resolved?: Record<string, unknown>;
|
|
8
|
+
} ? Required<T>['_resolved'] : Record<string, unknown>;
|
|
9
|
+
export type ParametersOfSection<T extends UiElementData> = T extends {
|
|
10
|
+
_parameters?: Record<string, HVal>;
|
|
11
|
+
} ? PartialExplicitUndefined<T['_parameters']> : undefined;
|
|
12
|
+
export type PartialExplicitUndefined<T> = {
|
|
13
|
+
[P in keyof T]: T[P] | null | undefined;
|
|
14
|
+
};
|
|
15
|
+
export declare const isSectionData: (element: UiElementData) => element is UiElementData<UiElementSectionMeta>;
|
|
16
|
+
export declare const isSectionMeta: (meta: UiElementMeta | undefined) => meta is UiElementSectionMeta;
|