@j2inn/resolvable-ui-elements 2.0.0 → 2.1.1-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 +50 -41
- package/dist/resolvableElements/elements/section/resolveSection.js.map +1 -1
- 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 +45 -36
- package/dist_es/resolvableElements/elements/section/resolveSection.js.map +1 -1
- 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,7 +1,7 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2022, J2 Innovations. All Rights Reserved
|
|
3
|
-
*/
|
|
4
|
-
import { isResolvableValueElementMeta } from '../ResolvableValueElement';
|
|
5
|
-
export const isSectionData = (element) => isSectionMeta(element._meta);
|
|
6
|
-
export const isSectionMeta = (meta) => meta == null || !isResolvableValueElementMeta(meta);
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2022, J2 Innovations. All Rights Reserved
|
|
3
|
+
*/
|
|
4
|
+
import { isResolvableValueElementMeta } from '../ResolvableValueElement';
|
|
5
|
+
export const isSectionData = (element) => isSectionMeta(element._meta);
|
|
6
|
+
export const isSectionMeta = (meta) => meta == null || !isResolvableValueElementMeta(meta);
|
|
7
7
|
//# sourceMappingURL=SectionElementMeta.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { Resolver } from 'resolvableElements/Resolver';
|
|
2
|
-
import { UiElementData } from '../UiElement';
|
|
3
|
-
import { ParametersOfSection, ResolvedSection } from './SectionElementMeta';
|
|
4
|
-
/**
|
|
5
|
-
* Resolves a section UI element.
|
|
6
|
-
* @param resolver the Resolver context
|
|
7
|
-
* @param sectionData section data object
|
|
8
|
-
* @param parameters parameters for the resolution
|
|
9
|
-
* @returns the resolved result of the section.
|
|
10
|
-
*/
|
|
11
|
-
export declare function resolveSection<T extends UiElementData>(resolver: Resolver, sectionData: T, parameters?: ParametersOfSection<T>): Promise<ResolvedSection<T> | undefined>;
|
|
12
|
-
export declare const areParametersValid: <T extends UiElementData<import("../UiElement").UiElementMeta>>(parameters: ParametersOfSection<T>) => boolean;
|
|
1
|
+
import { Resolver } from 'resolvableElements/Resolver';
|
|
2
|
+
import { UiElementData } from '../UiElement';
|
|
3
|
+
import { ParametersOfSection, ResolvedSection } from './SectionElementMeta';
|
|
4
|
+
/**
|
|
5
|
+
* Resolves a section UI element.
|
|
6
|
+
* @param resolver the Resolver context
|
|
7
|
+
* @param sectionData section data object
|
|
8
|
+
* @param parameters parameters for the resolution
|
|
9
|
+
* @returns the resolved result of the section.
|
|
10
|
+
*/
|
|
11
|
+
export declare function resolveSection<T extends UiElementData>(resolver: Resolver, sectionData: T, parameters?: ParametersOfSection<T>): Promise<ResolvedSection<T> | undefined>;
|
|
12
|
+
export declare const areParametersValid: <T extends UiElementData<import("../UiElement").UiElementMeta>>(parameters: ParametersOfSection<T>) => boolean;
|
|
@@ -1,37 +1,46 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2024, J2 Innovations. All Rights Reserved
|
|
3
|
-
*/
|
|
4
|
-
import { makeParametersDict } from '../function/FunctionElement';
|
|
5
|
-
import { ResolvableSectionElement } from './ResolvableSectionElement';
|
|
6
|
-
/**
|
|
7
|
-
* Resolves a section UI element.
|
|
8
|
-
* @param resolver the Resolver context
|
|
9
|
-
* @param sectionData section data object
|
|
10
|
-
* @param parameters parameters for the resolution
|
|
11
|
-
* @returns the resolved result of the section.
|
|
12
|
-
*/
|
|
13
|
-
export async function resolveSection(resolver, sectionData, parameters) {
|
|
14
|
-
const parametersDict = makeParametersDict(parameters);
|
|
15
|
-
if (areParametersValid(parameters)) {
|
|
16
|
-
const sectionElement = new ResolvableSectionElement({
|
|
17
|
-
element: sectionData,
|
|
18
|
-
resolver,
|
|
19
|
-
onUpdate: () => {
|
|
20
|
-
return;
|
|
21
|
-
},
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
.
|
|
25
|
-
.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2024, J2 Innovations. All Rights Reserved
|
|
3
|
+
*/
|
|
4
|
+
import { makeParametersDict } from '../function/FunctionElement';
|
|
5
|
+
import { ResolvableSectionElement } from './ResolvableSectionElement';
|
|
6
|
+
/**
|
|
7
|
+
* Resolves a section UI element.
|
|
8
|
+
* @param resolver the Resolver context
|
|
9
|
+
* @param sectionData section data object
|
|
10
|
+
* @param parameters parameters for the resolution
|
|
11
|
+
* @returns the resolved result of the section.
|
|
12
|
+
*/
|
|
13
|
+
export async function resolveSection(resolver, sectionData, parameters) {
|
|
14
|
+
const parametersDict = makeParametersDict(parameters);
|
|
15
|
+
if (areParametersValid(parameters)) {
|
|
16
|
+
const sectionElement = new ResolvableSectionElement({
|
|
17
|
+
element: sectionData,
|
|
18
|
+
resolver,
|
|
19
|
+
onUpdate: () => {
|
|
20
|
+
return;
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
try {
|
|
24
|
+
const children = sectionElement.children;
|
|
25
|
+
console.log('Initializing section ', sectionElement);
|
|
26
|
+
await sectionElement.initialize(parametersDict);
|
|
27
|
+
console.log('Section initialized, children ', sectionElement.children);
|
|
28
|
+
const childrenAfterInitialization = sectionElement.children;
|
|
29
|
+
console.log('Same children', children === childrenAfterInitialization);
|
|
30
|
+
console.log('section value', sectionElement.value);
|
|
31
|
+
}
|
|
32
|
+
finally {
|
|
33
|
+
sectionElement.close();
|
|
34
|
+
}
|
|
35
|
+
return sectionElement.value;
|
|
36
|
+
}
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
export const areParametersValid = (parameters) => {
|
|
40
|
+
if (parameters &&
|
|
41
|
+
Object.entries(parameters).some(([, value]) => value == null)) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
return true;
|
|
45
|
+
};
|
|
37
46
|
//# sourceMappingURL=resolveSection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveSection.js","sourceRoot":"","sources":["../../../../src/resolvableElements/elements/section/resolveSection.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAGrE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,QAAkB,EAClB,WAAc,EACd,UAAmC;IAEnC,MAAM,cAAc,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAA;IACrD,IAAI,kBAAkB,CAAC,UAAU,CAAC,EAAE;QACnC,MAAM,cAAc,GAAG,IAAI,wBAAwB,CAAC;YACnD,OAAO,EAAE,WAAW;YACpB,QAAQ;YACR,QAAQ,EAAE,GAAG,EAAE;gBACd,OAAM;YACP,CAAC;SACD,CAAC,CAAA;QAEF,MAAM,cAAc;
|
|
1
|
+
{"version":3,"file":"resolveSection.js","sourceRoot":"","sources":["../../../../src/resolvableElements/elements/section/resolveSection.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAGrE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,QAAkB,EAClB,WAAc,EACd,UAAmC;IAEnC,MAAM,cAAc,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAA;IACrD,IAAI,kBAAkB,CAAC,UAAU,CAAC,EAAE;QACnC,MAAM,cAAc,GAAG,IAAI,wBAAwB,CAAC;YACnD,OAAO,EAAE,WAAW;YACpB,QAAQ;YACR,QAAQ,EAAE,GAAG,EAAE;gBACd,OAAM;YACP,CAAC;SACD,CAAC,CAAA;QAEF,IAAI;YACH,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAA;YACxC,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,cAAc,CAAC,CAAA;YACpD,MAAM,cAAc,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;YAC/C,OAAO,CAAC,GAAG,CACV,gCAAgC,EAChC,cAAc,CAAC,QAAQ,CACvB,CAAA;YACD,MAAM,2BAA2B,GAAG,cAAc,CAAC,QAAQ,CAAA;YAC3D,OAAO,CAAC,GAAG,CACV,eAAe,EACf,QAAQ,KAAK,2BAA2B,CACxC,CAAA;YACD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,cAAc,CAAC,KAAK,CAAC,CAAA;SAClD;gBAAS;YACT,cAAc,CAAC,KAAK,EAAE,CAAA;SACtB;QAED,OAAO,cAAc,CAAC,KAA2B,CAAA;KACjD;IAED,OAAO,SAAS,CAAA;AACjB,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CACjC,UAAkC,EACjC,EAAE;IACH,IACC,UAAU;QACV,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,EAC5D;QACD,OAAO,KAAK,CAAA;KACZ;IACD,OAAO,IAAI,CAAA;AACZ,CAAC,CAAA"}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
import { HDict } from 'haystack-core';
|
|
2
|
-
import { Watch } from 'haystack-nclient';
|
|
3
|
-
import { ResolvableValueElement } from '../ResolvableValueElement';
|
|
4
|
-
import { UiElementConstructorData, UiElementData } from '../UiElement';
|
|
5
|
-
/**
|
|
6
|
-
* Resolves to the value of a tag on a record and keeps it updated using a watch.
|
|
7
|
-
*/
|
|
8
|
-
export declare class ResolvableTagElement<T extends UiElementData> extends ResolvableValueElement<T> {
|
|
9
|
-
#private;
|
|
10
|
-
constructor(data: UiElementConstructorData<T>);
|
|
11
|
-
filter?: string;
|
|
12
|
-
watch?: Watch;
|
|
13
|
-
|
|
14
|
-
protected
|
|
15
|
-
|
|
16
|
-
|
|
1
|
+
import { HDict, HGrid } from 'haystack-core';
|
|
2
|
+
import { Watch } from 'haystack-nclient';
|
|
3
|
+
import { ResolvableValueElement } from '../ResolvableValueElement';
|
|
4
|
+
import { UiElementConstructorData, UiElementData } from '../UiElement';
|
|
5
|
+
/**
|
|
6
|
+
* Resolves to the value of a tag on a record and keeps it updated using a watch.
|
|
7
|
+
*/
|
|
8
|
+
export declare class ResolvableTagElement<T extends UiElementData> extends ResolvableValueElement<T> {
|
|
9
|
+
#private;
|
|
10
|
+
constructor(data: UiElementConstructorData<T>);
|
|
11
|
+
filter?: string;
|
|
12
|
+
watch?: Watch;
|
|
13
|
+
buildFilter: (parameters: HDict) => string;
|
|
14
|
+
protected doInitialize: (parameters: HDict) => Promise<void>;
|
|
15
|
+
onReadResult: (grid: HGrid<HDict>) => Promise<void>;
|
|
16
|
+
protected doClose: () => Promise<void>;
|
|
17
|
+
getParameterList: () => string[];
|
|
18
|
+
}
|
|
@@ -1,102 +1,110 @@
|
|
|
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 the value of a tag on a record and keeps it updated using a watch.
|
|
11
|
-
*/
|
|
12
|
-
export class ResolvableTagElement extends ResolvableValueElement {
|
|
13
|
-
constructor(data) {
|
|
14
|
-
super(data);
|
|
15
|
-
}
|
|
16
|
-
filter;
|
|
17
|
-
watch;
|
|
18
|
-
|
|
19
|
-
const {
|
|
20
|
-
._meta;
|
|
21
|
-
const filter = resolveTemplateExpression(UiElement.joinFilters(entityBinding, parentBinding), parameters);
|
|
22
|
-
if (!this.#isValidFilter(filter)) {
|
|
23
|
-
throw Error('Invalid filter');
|
|
24
|
-
}
|
|
25
|
-
this.filter = filter;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
this
|
|
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
|
-
if (
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}
|
|
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 the value of a tag on a record and keeps it updated using a watch.
|
|
11
|
+
*/
|
|
12
|
+
export class ResolvableTagElement extends ResolvableValueElement {
|
|
13
|
+
constructor(data) {
|
|
14
|
+
super(data);
|
|
15
|
+
}
|
|
16
|
+
filter;
|
|
17
|
+
watch;
|
|
18
|
+
buildFilter = (parameters) => {
|
|
19
|
+
const { entityBinding, parentBinding } = this
|
|
20
|
+
._meta;
|
|
21
|
+
const filter = resolveTemplateExpression(UiElement.joinFilters(entityBinding, parentBinding), parameters);
|
|
22
|
+
if (!this.#isValidFilter(filter)) {
|
|
23
|
+
throw Error('Invalid filter');
|
|
24
|
+
}
|
|
25
|
+
this.filter = filter;
|
|
26
|
+
return filter;
|
|
27
|
+
};
|
|
28
|
+
doInitialize = async (parameters) => {
|
|
29
|
+
this.filter = this.buildFilter(parameters);
|
|
30
|
+
const grid = await this.resolver.read(this.filter);
|
|
31
|
+
await this.onReadResult(grid);
|
|
32
|
+
};
|
|
33
|
+
onReadResult = async (grid) => {
|
|
34
|
+
if (!this.#isValidReadGrid(grid)) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
this.#updateValue(grid);
|
|
38
|
+
const { subscribe } = this._meta;
|
|
39
|
+
if (subscribe) {
|
|
40
|
+
await this.#setupWatch(grid);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
doClose = async () => {
|
|
44
|
+
return this.watch?.close();
|
|
45
|
+
};
|
|
46
|
+
getParameterList = () => {
|
|
47
|
+
const { entityBinding, parentBinding } = this
|
|
48
|
+
._meta;
|
|
49
|
+
const parameters = [];
|
|
50
|
+
if (entityBinding) {
|
|
51
|
+
replaceTemplateVariables(entityBinding, (_, match) => {
|
|
52
|
+
parameters.push(match);
|
|
53
|
+
return '';
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
if (parentBinding) {
|
|
57
|
+
replaceTemplateVariables(parentBinding, (_, match) => {
|
|
58
|
+
parameters.push(match);
|
|
59
|
+
return '';
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
return parameters;
|
|
63
|
+
};
|
|
64
|
+
#isValidFilter = (filter) => {
|
|
65
|
+
try {
|
|
66
|
+
HFilter.parse(filter);
|
|
67
|
+
}
|
|
68
|
+
catch (e) {
|
|
69
|
+
console.error('Invalid filter: \n', this.filter, e);
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
return true;
|
|
73
|
+
};
|
|
74
|
+
#isValidReadGrid = (grid) => {
|
|
75
|
+
if (grid.isEmpty()) {
|
|
76
|
+
console.error('Empty grid result for query: \n', this.filter);
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
if (grid.length > 1) {
|
|
80
|
+
console.warn('More than 1 result for query: \n', this.filter);
|
|
81
|
+
}
|
|
82
|
+
return true;
|
|
83
|
+
};
|
|
84
|
+
#setupWatch = async (grid) => {
|
|
85
|
+
const { readTag, subscribePollRate, subscribe } = this
|
|
86
|
+
._meta;
|
|
87
|
+
if (subscribe) {
|
|
88
|
+
this.watch = await this.resolver.makeWatch(this.#getWatchDisplayName(), grid);
|
|
89
|
+
const updateValue = () => this.#updateValue(this.watch?.grid);
|
|
90
|
+
// Update with the value received when opening the watch
|
|
91
|
+
updateValue();
|
|
92
|
+
// Configure polling options
|
|
93
|
+
this.watch.pollRate = subscribePollRate ?? DEFAULT_POLL_RATE_SECS;
|
|
94
|
+
this.watch.changed({
|
|
95
|
+
interests: [readTag],
|
|
96
|
+
callback: updateValue,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
#updateValue = (grid) => {
|
|
101
|
+
const { readTag } = this._meta;
|
|
102
|
+
if (grid) {
|
|
103
|
+
this.value = grid[0]?.get(readTag);
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
#getWatchDisplayName = () => {
|
|
107
|
+
return `ResolvableElement Watch for ${this.name ?? this.filter}`;
|
|
108
|
+
};
|
|
109
|
+
}
|
|
102
110
|
//# sourceMappingURL=ResolvableTagElement.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResolvableTagElement.js","sourceRoot":"","sources":["../../../../src/resolvableElements/elements/tag/ResolvableTagElement.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAS,OAAO,EAAS,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,sBAAsB,EAAS,MAAM,kBAAkB,CAAA;AAChE,OAAO,EACN,wBAAwB,EACxB,yBAAyB,GACzB,MAAM,kCAAkC,CAAA;AAEzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,EACN,SAAS,GAGT,MAAM,cAAc,CAAA;AAIrB;;GAEG;AACH,MAAM,OAAO,oBAEX,SAAQ,sBAAyB;IAClC,YAAY,IAAiC;QAC5C,KAAK,CAAC,IAAI,CAAC,CAAA;IACZ,CAAC;IAED,MAAM,CAAS;IACf,KAAK,CAAQ;
|
|
1
|
+
{"version":3,"file":"ResolvableTagElement.js","sourceRoot":"","sources":["../../../../src/resolvableElements/elements/tag/ResolvableTagElement.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { HDict } from 'haystack-core';
|
|
2
|
+
import { UiElementData } from '../UiElement';
|
|
3
|
+
import { ResolvableTagElement } from './ResolvableTagElement';
|
|
4
|
+
/**
|
|
5
|
+
* Utility class to group ResolvableTagElement queries.
|
|
6
|
+
* If two or more elements have the same filter (reading different tags of the same record),
|
|
7
|
+
* only one query will be executed over the network.
|
|
8
|
+
*/
|
|
9
|
+
export declare class ResolvableTagElementBatchProcessor<T extends UiElementData> {
|
|
10
|
+
elements: ResolvableTagElement<T>[];
|
|
11
|
+
constructor();
|
|
12
|
+
addElement(tagElement: ResolvableTagElement<T>): void;
|
|
13
|
+
isEmpty(): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Initialize all the ResolvableTagElements, optimizing the number of queries sent
|
|
16
|
+
* over the network.
|
|
17
|
+
* @param parameters the HDict with the query parameters.
|
|
18
|
+
*/
|
|
19
|
+
initialize(parameters: HDict): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Creates a map with the filter as key, and the list of elements with that
|
|
22
|
+
* filter as values.
|
|
23
|
+
*/
|
|
24
|
+
private groupElementsByFilter;
|
|
25
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility class to group ResolvableTagElement queries.
|
|
3
|
+
* If two or more elements have the same filter (reading different tags of the same record),
|
|
4
|
+
* only one query will be executed over the network.
|
|
5
|
+
*/
|
|
6
|
+
export class ResolvableTagElementBatchProcessor {
|
|
7
|
+
elements;
|
|
8
|
+
constructor() {
|
|
9
|
+
this.elements = [];
|
|
10
|
+
}
|
|
11
|
+
addElement(tagElement) {
|
|
12
|
+
this.elements.push(tagElement);
|
|
13
|
+
}
|
|
14
|
+
isEmpty() {
|
|
15
|
+
return this.elements.length === 0;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Initialize all the ResolvableTagElements, optimizing the number of queries sent
|
|
19
|
+
* over the network.
|
|
20
|
+
* @param parameters the HDict with the query parameters.
|
|
21
|
+
*/
|
|
22
|
+
async initialize(parameters) {
|
|
23
|
+
if (!this.isEmpty()) {
|
|
24
|
+
// Take the resolver of the first element
|
|
25
|
+
const resolver = this.elements[0]?.resolver;
|
|
26
|
+
if (!resolver) {
|
|
27
|
+
throw Error('Resolver is null, cannot initialize batch');
|
|
28
|
+
}
|
|
29
|
+
const groupByFilterMap = this.groupElementsByFilter(parameters);
|
|
30
|
+
// Execute each unique filter once.
|
|
31
|
+
const filterQueryMap = new Map();
|
|
32
|
+
for (const filter of groupByFilterMap.keys()) {
|
|
33
|
+
filterQueryMap.set(filter, resolver.read(filter));
|
|
34
|
+
}
|
|
35
|
+
// Reuse the result for all the elements with the same filter.
|
|
36
|
+
const promises = [];
|
|
37
|
+
for (const entry of filterQueryMap.entries()) {
|
|
38
|
+
const [filter, readOp] = entry;
|
|
39
|
+
const grid = await readOp;
|
|
40
|
+
const elements = groupByFilterMap.get(filter);
|
|
41
|
+
if (elements) {
|
|
42
|
+
promises.push(...elements.map((element) => element.onReadResult(grid)));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
await Promise.allSettled(promises);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Creates a map with the filter as key, and the list of elements with that
|
|
50
|
+
* filter as values.
|
|
51
|
+
*/
|
|
52
|
+
groupElementsByFilter(parameters) {
|
|
53
|
+
const groupByFilterMap = new Map();
|
|
54
|
+
this.elements.forEach((element) => {
|
|
55
|
+
const filter = element.buildFilter(parameters);
|
|
56
|
+
if (!groupByFilterMap.has(filter)) {
|
|
57
|
+
groupByFilterMap.set(filter, []);
|
|
58
|
+
}
|
|
59
|
+
groupByFilterMap.get(filter)?.push(element);
|
|
60
|
+
});
|
|
61
|
+
return groupByFilterMap;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=ResolvableTagElementBatchProcessor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResolvableTagElementBatchProcessor.js","sourceRoot":"","sources":["../../../../src/resolvableElements/elements/tag/ResolvableTagElementBatchProcessor.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,MAAM,OAAO,kCAAkC;IAC9C,QAAQ,CAA2B;IAEnC;QACC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;IACnB,CAAC;IAED,UAAU,CAAC,UAAmC;QAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC/B,CAAC;IAED,OAAO;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAA;IAClC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,UAAiB;QACjC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;YACpB,yCAAyC;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAA;YAC3C,IAAI,CAAC,QAAQ,EAAE;gBACd,MAAM,KAAK,CAAC,2CAA2C,CAAC,CAAA;aACxD;YAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAA;YAE/D,mCAAmC;YACnC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAiC,CAAA;YAC/D,KAAK,MAAM,MAAM,IAAI,gBAAgB,CAAC,IAAI,EAAE,EAAE;gBAC7C,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;aACjD;YAED,8DAA8D;YAC9D,MAAM,QAAQ,GAAG,EAAE,CAAA;YACnB,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,OAAO,EAAE,EAAE;gBAC7C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAA;gBAC9B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAA;gBAEzB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;gBAC7C,IAAI,QAAQ,EAAE;oBACb,QAAQ,CAAC,IAAI,CACZ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CACxD,CAAA;iBACD;aACD;YAED,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;SAClC;IACF,CAAC;IAED;;;OAGG;IACK,qBAAqB,CAC5B,UAAiB;QAEjB,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAqC,CAAA;QACrE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACjC,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;YAC9C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBAClC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;aAChC;YAED,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAC5C,CAAC,CAAC,CAAA;QACF,OAAO,gBAAgB,CAAA;IACxB,CAAC;CACD"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { ResolvableValueElementMeta } from '../ResolvableValueElement';
|
|
2
|
-
import { UiElementData, UiElementMeta } from '../UiElement';
|
|
3
|
-
export interface UiElementTagMetaBase extends ResolvableValueElementMeta {
|
|
4
|
-
resolutionType: 'tag';
|
|
5
|
-
readTag: string;
|
|
6
|
-
parentBinding?: string;
|
|
7
|
-
entityBinding?: string;
|
|
8
|
-
subscribe?: boolean;
|
|
9
|
-
subscribePollRate?: number;
|
|
10
|
-
}
|
|
11
|
-
export declare const isResolvableTagElementData: (element: UiElementData) => element is UiElementData<UiElementTagMetaBase>;
|
|
12
|
-
export declare const isResolvableTagMeta: (meta: UiElementMeta) => meta is UiElementTagMetaBase;
|
|
1
|
+
import { ResolvableValueElementMeta } from '../ResolvableValueElement';
|
|
2
|
+
import { UiElementData, UiElementMeta } from '../UiElement';
|
|
3
|
+
export interface UiElementTagMetaBase extends ResolvableValueElementMeta {
|
|
4
|
+
resolutionType: 'tag';
|
|
5
|
+
readTag: string;
|
|
6
|
+
parentBinding?: string;
|
|
7
|
+
entityBinding?: string;
|
|
8
|
+
subscribe?: boolean;
|
|
9
|
+
subscribePollRate?: number;
|
|
10
|
+
}
|
|
11
|
+
export declare const isResolvableTagElementData: (element: UiElementData) => element is UiElementData<UiElementTagMetaBase>;
|
|
12
|
+
export declare const isResolvableTagMeta: (meta: UiElementMeta) => meta is UiElementTagMetaBase;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2022, J2 Innovations. All Rights Reserved
|
|
3
|
-
*/
|
|
4
|
-
export const isResolvableTagElementData = (element) => {
|
|
5
|
-
return !!element?._meta && isResolvableTagMeta(element._meta);
|
|
6
|
-
};
|
|
7
|
-
export const isResolvableTagMeta = (meta) => {
|
|
8
|
-
return meta.resolutionType === 'tag';
|
|
9
|
-
};
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2022, J2 Innovations. All Rights Reserved
|
|
3
|
+
*/
|
|
4
|
+
export const isResolvableTagElementData = (element) => {
|
|
5
|
+
return !!element?._meta && isResolvableTagMeta(element._meta);
|
|
6
|
+
};
|
|
7
|
+
export const isResolvableTagMeta = (meta) => {
|
|
8
|
+
return meta.resolutionType === 'tag';
|
|
9
|
+
};
|
|
10
10
|
//# sourceMappingURL=TagElementMeta.js.map
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { ResolvableSectionElement } from '../elements/section/ResolvableSectionElement';
|
|
2
|
-
import { UiElementSectionMeta } from '../elements/section/SectionElementMeta';
|
|
3
|
-
import { UiElementData } from '../elements/UiElement';
|
|
4
|
-
export declare const generateInterfaces: (section: UiElementData<UiElementSectionMeta>) => string;
|
|
5
|
-
/**
|
|
6
|
-
* Class for generating typescript interfaces from a section data.
|
|
7
|
-
*/
|
|
8
|
-
export declare class SectionInterfacesGenerator {
|
|
9
|
-
#private;
|
|
10
|
-
constructor(section: UiElementData<UiElementSectionMeta>);
|
|
11
|
-
sectionData: UiElementData<UiElementSectionMeta>;
|
|
12
|
-
output: string;
|
|
13
|
-
generate: () => string;
|
|
14
|
-
generateInterface(section: ResolvableSectionElement, indentation: number): void;
|
|
15
|
-
generateNamespace(section: ResolvableSectionElement<UiElementData<UiElementSectionMeta>>, indentation: number): void;
|
|
16
|
-
}
|
|
17
|
-
export declare function makeResolvableSectionElementMock(sectionData: UiElementData<UiElementSectionMeta>, name?: string): ResolvableSectionElement<UiElementData<UiElementSectionMeta>>;
|
|
1
|
+
import { ResolvableSectionElement } from '../elements/section/ResolvableSectionElement';
|
|
2
|
+
import { UiElementSectionMeta } from '../elements/section/SectionElementMeta';
|
|
3
|
+
import { UiElementData } from '../elements/UiElement';
|
|
4
|
+
export declare const generateInterfaces: (section: UiElementData<UiElementSectionMeta>) => string;
|
|
5
|
+
/**
|
|
6
|
+
* Class for generating typescript interfaces from a section data.
|
|
7
|
+
*/
|
|
8
|
+
export declare class SectionInterfacesGenerator {
|
|
9
|
+
#private;
|
|
10
|
+
constructor(section: UiElementData<UiElementSectionMeta>);
|
|
11
|
+
sectionData: UiElementData<UiElementSectionMeta>;
|
|
12
|
+
output: string;
|
|
13
|
+
generate: () => string;
|
|
14
|
+
generateInterface(section: ResolvableSectionElement, indentation: number): void;
|
|
15
|
+
generateNamespace(section: ResolvableSectionElement<UiElementData<UiElementSectionMeta>>, indentation: number): void;
|
|
16
|
+
}
|
|
17
|
+
export declare function makeResolvableSectionElementMock(sectionData: UiElementData<UiElementSectionMeta>, name?: string): ResolvableSectionElement<UiElementData<UiElementSectionMeta>>;
|