@j2inn/resolvable-ui-elements 0.0.1-alpha.11

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.
Files changed (134) hide show
  1. package/README.md +22 -0
  2. package/dist/index.d.ts +6 -0
  3. package/dist/index.js +32 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/resolvableElements/Resolver.d.ts +18 -0
  6. package/dist/resolvableElements/Resolver.js +29 -0
  7. package/dist/resolvableElements/Resolver.js.map +1 -0
  8. package/dist/resolvableElements/elements/ResolvableElement.d.ts +14 -0
  9. package/dist/resolvableElements/elements/ResolvableElement.js +30 -0
  10. package/dist/resolvableElements/elements/ResolvableElement.js.map +1 -0
  11. package/dist/resolvableElements/elements/ResolvableValueElement.d.ts +16 -0
  12. package/dist/resolvableElements/elements/ResolvableValueElement.js +39 -0
  13. package/dist/resolvableElements/elements/ResolvableValueElement.js.map +1 -0
  14. package/dist/resolvableElements/elements/UiElement.d.ts +40 -0
  15. package/dist/resolvableElements/elements/UiElement.js +54 -0
  16. package/dist/resolvableElements/elements/UiElement.js.map +1 -0
  17. package/dist/resolvableElements/elements/expr/ResolvableExprElement.d.ts +14 -0
  18. package/dist/resolvableElements/elements/expr/ResolvableExprElement.js +63 -0
  19. package/dist/resolvableElements/elements/expr/ResolvableExprElement.js.map +1 -0
  20. package/dist/resolvableElements/elements/expr/ResolvableExprElementMeta.d.ts +9 -0
  21. package/dist/resolvableElements/elements/expr/ResolvableExprElementMeta.js +15 -0
  22. package/dist/resolvableElements/elements/expr/ResolvableExprElementMeta.js.map +1 -0
  23. package/dist/resolvableElements/elements/function/FunctionElement.d.ts +12 -0
  24. package/dist/resolvableElements/elements/function/FunctionElement.js +37 -0
  25. package/dist/resolvableElements/elements/function/FunctionElement.js.map +1 -0
  26. package/dist/resolvableElements/elements/function/FunctionElementMeta.d.ts +8 -0
  27. package/dist/resolvableElements/elements/function/FunctionElementMeta.js +15 -0
  28. package/dist/resolvableElements/elements/function/FunctionElementMeta.js.map +1 -0
  29. package/dist/resolvableElements/elements/list/ListElementMeta.d.ts +12 -0
  30. package/dist/resolvableElements/elements/list/ListElementMeta.js +15 -0
  31. package/dist/resolvableElements/elements/list/ListElementMeta.js.map +1 -0
  32. package/dist/resolvableElements/elements/list/ResolvableListElement.d.ts +16 -0
  33. package/dist/resolvableElements/elements/list/ResolvableListElement.js +103 -0
  34. package/dist/resolvableElements/elements/list/ResolvableListElement.js.map +1 -0
  35. package/dist/resolvableElements/elements/makeElement.d.ts +7 -0
  36. package/dist/resolvableElements/elements/makeElement.js +41 -0
  37. package/dist/resolvableElements/elements/makeElement.js.map +1 -0
  38. package/dist/resolvableElements/elements/section/ResolvableSectionElement.d.ts +21 -0
  39. package/dist/resolvableElements/elements/section/ResolvableSectionElement.js +113 -0
  40. package/dist/resolvableElements/elements/section/ResolvableSectionElement.js.map +1 -0
  41. package/dist/resolvableElements/elements/section/SectionElementMeta.d.ts +9 -0
  42. package/dist/resolvableElements/elements/section/SectionElementMeta.js +12 -0
  43. package/dist/resolvableElements/elements/section/SectionElementMeta.js.map +1 -0
  44. package/dist/resolvableElements/elements/tag/ResolvableTagElement.d.ts +16 -0
  45. package/dist/resolvableElements/elements/tag/ResolvableTagElement.js +106 -0
  46. package/dist/resolvableElements/elements/tag/ResolvableTagElement.js.map +1 -0
  47. package/dist/resolvableElements/elements/tag/TagElementMeta.d.ts +12 -0
  48. package/dist/resolvableElements/elements/tag/TagElementMeta.js +15 -0
  49. package/dist/resolvableElements/elements/tag/TagElementMeta.js.map +1 -0
  50. package/dist/resolvableElements/interfacesGeneration/generateInterfaces.d.ts +3 -0
  51. package/dist/resolvableElements/interfacesGeneration/generateInterfaces.js +136 -0
  52. package/dist/resolvableElements/interfacesGeneration/generateInterfaces.js.map +1 -0
  53. package/dist/resolvableElements/interfacesGeneration/generateTypescriptInterfacesFile.d.ts +4 -0
  54. package/dist/resolvableElements/interfacesGeneration/generateTypescriptInterfacesFile.js +42 -0
  55. package/dist/resolvableElements/interfacesGeneration/generateTypescriptInterfacesFile.js.map +1 -0
  56. package/dist/resolvableElements/react/useResolveSection.d.ts +21 -0
  57. package/dist/resolvableElements/react/useResolveSection.js +71 -0
  58. package/dist/resolvableElements/react/useResolveSection.js.map +1 -0
  59. package/dist/resolvableElements/react/useResolverContext.d.ts +4 -0
  60. package/dist/resolvableElements/react/useResolverContext.jsx +57 -0
  61. package/dist/resolvableElements/react/useResolverContext.jsx.map +1 -0
  62. package/dist/resolvableElements/resolveTemplatedExpression.d.ts +19 -0
  63. package/dist/resolvableElements/resolveTemplatedExpression.js +36 -0
  64. package/dist/resolvableElements/resolveTemplatedExpression.js.map +1 -0
  65. package/dist/useCurrentUser.d.ts +10 -0
  66. package/dist/useCurrentUser.jsx +51 -0
  67. package/dist/useCurrentUser.jsx.map +1 -0
  68. package/dist_es/index.d.ts +6 -0
  69. package/dist_es/index.js +14 -0
  70. package/dist_es/index.js.map +1 -0
  71. package/dist_es/resolvableElements/Resolver.d.ts +18 -0
  72. package/dist_es/resolvableElements/Resolver.js +25 -0
  73. package/dist_es/resolvableElements/Resolver.js.map +1 -0
  74. package/dist_es/resolvableElements/elements/ResolvableElement.d.ts +14 -0
  75. package/dist_es/resolvableElements/elements/ResolvableElement.js +26 -0
  76. package/dist_es/resolvableElements/elements/ResolvableElement.js.map +1 -0
  77. package/dist_es/resolvableElements/elements/ResolvableValueElement.d.ts +16 -0
  78. package/dist_es/resolvableElements/elements/ResolvableValueElement.js +33 -0
  79. package/dist_es/resolvableElements/elements/ResolvableValueElement.js.map +1 -0
  80. package/dist_es/resolvableElements/elements/UiElement.d.ts +40 -0
  81. package/dist_es/resolvableElements/elements/UiElement.js +49 -0
  82. package/dist_es/resolvableElements/elements/UiElement.js.map +1 -0
  83. package/dist_es/resolvableElements/elements/expr/ResolvableExprElement.d.ts +14 -0
  84. package/dist_es/resolvableElements/elements/expr/ResolvableExprElement.js +59 -0
  85. package/dist_es/resolvableElements/elements/expr/ResolvableExprElement.js.map +1 -0
  86. package/dist_es/resolvableElements/elements/expr/ResolvableExprElementMeta.d.ts +9 -0
  87. package/dist_es/resolvableElements/elements/expr/ResolvableExprElementMeta.js +10 -0
  88. package/dist_es/resolvableElements/elements/expr/ResolvableExprElementMeta.js.map +1 -0
  89. package/dist_es/resolvableElements/elements/function/FunctionElement.d.ts +12 -0
  90. package/dist_es/resolvableElements/elements/function/FunctionElement.js +32 -0
  91. package/dist_es/resolvableElements/elements/function/FunctionElement.js.map +1 -0
  92. package/dist_es/resolvableElements/elements/function/FunctionElementMeta.d.ts +8 -0
  93. package/dist_es/resolvableElements/elements/function/FunctionElementMeta.js +10 -0
  94. package/dist_es/resolvableElements/elements/function/FunctionElementMeta.js.map +1 -0
  95. package/dist_es/resolvableElements/elements/list/ListElementMeta.d.ts +12 -0
  96. package/dist_es/resolvableElements/elements/list/ListElementMeta.js +10 -0
  97. package/dist_es/resolvableElements/elements/list/ListElementMeta.js.map +1 -0
  98. package/dist_es/resolvableElements/elements/list/ResolvableListElement.d.ts +16 -0
  99. package/dist_es/resolvableElements/elements/list/ResolvableListElement.js +99 -0
  100. package/dist_es/resolvableElements/elements/list/ResolvableListElement.js.map +1 -0
  101. package/dist_es/resolvableElements/elements/makeElement.d.ts +7 -0
  102. package/dist_es/resolvableElements/elements/makeElement.js +37 -0
  103. package/dist_es/resolvableElements/elements/makeElement.js.map +1 -0
  104. package/dist_es/resolvableElements/elements/section/ResolvableSectionElement.d.ts +21 -0
  105. package/dist_es/resolvableElements/elements/section/ResolvableSectionElement.js +108 -0
  106. package/dist_es/resolvableElements/elements/section/ResolvableSectionElement.js.map +1 -0
  107. package/dist_es/resolvableElements/elements/section/SectionElementMeta.d.ts +9 -0
  108. package/dist_es/resolvableElements/elements/section/SectionElementMeta.js +7 -0
  109. package/dist_es/resolvableElements/elements/section/SectionElementMeta.js.map +1 -0
  110. package/dist_es/resolvableElements/elements/tag/ResolvableTagElement.d.ts +16 -0
  111. package/dist_es/resolvableElements/elements/tag/ResolvableTagElement.js +102 -0
  112. package/dist_es/resolvableElements/elements/tag/ResolvableTagElement.js.map +1 -0
  113. package/dist_es/resolvableElements/elements/tag/TagElementMeta.d.ts +12 -0
  114. package/dist_es/resolvableElements/elements/tag/TagElementMeta.js +10 -0
  115. package/dist_es/resolvableElements/elements/tag/TagElementMeta.js.map +1 -0
  116. package/dist_es/resolvableElements/interfacesGeneration/generateInterfaces.d.ts +3 -0
  117. package/dist_es/resolvableElements/interfacesGeneration/generateInterfaces.js +132 -0
  118. package/dist_es/resolvableElements/interfacesGeneration/generateInterfaces.js.map +1 -0
  119. package/dist_es/resolvableElements/interfacesGeneration/generateTypescriptInterfacesFile.d.ts +4 -0
  120. package/dist_es/resolvableElements/interfacesGeneration/generateTypescriptInterfacesFile.js +16 -0
  121. package/dist_es/resolvableElements/interfacesGeneration/generateTypescriptInterfacesFile.js.map +1 -0
  122. package/dist_es/resolvableElements/react/useResolveSection.d.ts +21 -0
  123. package/dist_es/resolvableElements/react/useResolveSection.js +67 -0
  124. package/dist_es/resolvableElements/react/useResolveSection.js.map +1 -0
  125. package/dist_es/resolvableElements/react/useResolverContext.d.ts +4 -0
  126. package/dist_es/resolvableElements/react/useResolverContext.jsx +29 -0
  127. package/dist_es/resolvableElements/react/useResolverContext.jsx.map +1 -0
  128. package/dist_es/resolvableElements/resolveTemplatedExpression.d.ts +19 -0
  129. package/dist_es/resolvableElements/resolveTemplatedExpression.js +31 -0
  130. package/dist_es/resolvableElements/resolveTemplatedExpression.js.map +1 -0
  131. package/dist_es/useCurrentUser.d.ts +10 -0
  132. package/dist_es/useCurrentUser.jsx +23 -0
  133. package/dist_es/useCurrentUser.jsx.map +1 -0
  134. package/package.json +51 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateInterfaces.js","sourceRoot":"","sources":["../../../src/resolvableElements/interfacesGeneration/generateInterfaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Generate typescript interfaces file from json ui-elements data
3
+ */
4
+ export default function generateTypescriptInterfacesFile(inputPath?: string, outputPath?: string): Promise<void>;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022, J2 Innovations. All Rights Reserved
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const fs = __importStar(require("fs"));
30
+ const generateInterfaces_1 = require("./generateInterfaces");
31
+ /**
32
+ * Generate typescript interfaces file from json ui-elements data
33
+ */
34
+ async function generateTypescriptInterfacesFile(inputPath = '../elements.json', outputPath = '../elements.ts') {
35
+ console.log(`Generating interfaces from ${inputPath} \n...`);
36
+ const json = fs.readFileSync(inputPath, { encoding: 'utf-8' });
37
+ const result = (0, generateInterfaces_1.generateInterfaces)(JSON.parse(json));
38
+ fs.writeFileSync(outputPath, result);
39
+ console.log(`File successfully generated at: ${outputPath}`);
40
+ }
41
+ exports.default = generateTypescriptInterfacesFile;
42
+ //# sourceMappingURL=generateTypescriptInterfacesFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateTypescriptInterfacesFile.js","sourceRoot":"","sources":["../../../src/resolvableElements/interfacesGeneration/generateTypescriptInterfacesFile.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAwB;AACxB,6DAAyD;AAEzD;;GAEG;AACY,KAAK,UAAU,gCAAgC,CAC7D,SAAS,GAAG,kBAAkB,EAC9B,UAAU,GAAG,gBAAgB;IAE7B,OAAO,CAAC,GAAG,CAAC,8BAA8B,SAAS,QAAQ,CAAC,CAAA;IAE5D,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;IAE9D,MAAM,MAAM,GAAG,IAAA,uCAAkB,EAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;IAEnD,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;IAEpC,OAAO,CAAC,GAAG,CAAC,mCAAmC,UAAU,EAAE,CAAC,CAAA;AAC7D,CAAC;AAbD,mDAaC"}
@@ -0,0 +1,21 @@
1
+ import { ResolvableSectionElement } from '../elements/section/ResolvableSectionElement';
2
+ import { ResolvedSectionResult } from '../elements/section/SectionElementMeta';
3
+ import { ParametersOfSection, UiElementData } from '../elements/UiElement';
4
+ /**
5
+ * Resolves a section UI element.
6
+ * IMPORTANT: This hook requires a resolver react context defined. @See `ResolverProvider`.
7
+ * @param sectionData section data object
8
+ * @param parameters parameters for the resolution
9
+ * @returns the resolved result of the section that will be updated and force rendering when a subvalue changes.
10
+ */
11
+ export declare function useResolveSection<T extends UiElementData>(sectionData: T, parameters?: ParametersOfSection<T>): UseResolveSectionResult<T>;
12
+ export declare type UseResolveSectionResult<T extends UiElementData> = [
13
+ ResolvedSectionResult<T>,
14
+ UseResolveSectionExtra<T>
15
+ ];
16
+ export interface UseResolveSectionExtra<T extends UiElementData> {
17
+ refresh: () => void;
18
+ element?: ResolvableSectionElement<T>;
19
+ loads: number;
20
+ isLoading: boolean;
21
+ }
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022, J2 Innovations. All Rights Reserved
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.useResolveSection = void 0;
7
+ const react_1 = require("react");
8
+ const FunctionElement_1 = require("../elements/function/FunctionElement");
9
+ const ResolvableSectionElement_1 = require("../elements/section/ResolvableSectionElement");
10
+ const useResolverContext_1 = require("./useResolverContext");
11
+ /**
12
+ * Resolves a section UI element.
13
+ * IMPORTANT: This hook requires a resolver react context defined. @See `ResolverProvider`.
14
+ * @param sectionData section data object
15
+ * @param parameters parameters for the resolution
16
+ * @returns the resolved result of the section that will be updated and force rendering when a subvalue changes.
17
+ */
18
+ function useResolveSection(sectionData, parameters) {
19
+ const [, update] = (0, react_1.useReducer)((count) => count + 1, 0);
20
+ const resolver = (0, useResolverContext_1.useResolverContext)();
21
+ const [refreshes, refresh] = (0, react_1.useReducer)((count) => count + 1, 0);
22
+ const [loads, setLoads] = (0, react_1.useState)(0);
23
+ const [isLoading, setLoading] = (0, react_1.useState)(false);
24
+ const ref = (0, react_1.useRef)();
25
+ if (!ref.current) {
26
+ ref.current = new ResolvableSectionElement_1.ResolvableSectionElement({
27
+ element: sectionData,
28
+ resolver,
29
+ onUpdate: update,
30
+ });
31
+ }
32
+ const parametersDict = (0, FunctionElement_1.makeParametersDict)(parameters);
33
+ (0, react_1.useEffect)(() => {
34
+ if (areParametersValid(parameters)) {
35
+ ref.current = new ResolvableSectionElement_1.ResolvableSectionElement({
36
+ element: sectionData,
37
+ resolver,
38
+ onUpdate: update,
39
+ });
40
+ setLoading(true);
41
+ const promise = ref.current
42
+ .initialize(parametersDict)
43
+ .then(() => setLoads(loads + 1))
44
+ .finally(() => setLoading(false));
45
+ return () => {
46
+ promise.finally(() => {
47
+ ref.current?.close();
48
+ });
49
+ };
50
+ }
51
+ return;
52
+ }, [sectionData, resolver, refreshes, parametersDict.toAxon()]);
53
+ return [
54
+ (ref.current.value ?? {}),
55
+ {
56
+ refresh: refresh,
57
+ element: ref.current,
58
+ loads,
59
+ isLoading,
60
+ },
61
+ ];
62
+ }
63
+ exports.useResolveSection = useResolveSection;
64
+ const areParametersValid = (parameters) => {
65
+ if (parameters &&
66
+ Object.entries(parameters).some(([, value]) => value == null)) {
67
+ return false;
68
+ }
69
+ return true;
70
+ };
71
+ //# sourceMappingURL=useResolveSection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useResolveSection.js","sourceRoot":"","sources":["../../../src/resolvableElements/react/useResolveSection.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,iCAA+D;AAC/D,0EAAyE;AACzE,2FAAuF;AAGvF,6DAAyD;AAEzD;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAChC,WAAc,EACd,UAAmC;IAEnC,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,IAAA,kBAAU,EAAC,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IAC9D,MAAM,QAAQ,GAAG,IAAA,uCAAkB,GAAE,CAAA;IACrC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,IAAA,kBAAU,EAAC,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IACxE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAA;IACrC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAC/C,MAAM,GAAG,GAAG,IAAA,cAAM,GAA+B,CAAA;IAEjD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;QACjB,GAAG,CAAC,OAAO,GAAG,IAAI,mDAAwB,CAAC;YAC1C,OAAO,EAAE,WAAW;YACpB,QAAQ;YACR,QAAQ,EAAE,MAAM;SAChB,CAAC,CAAA;KACF;IAED,MAAM,cAAc,GAAG,IAAA,oCAAkB,EAAC,UAAU,CAAC,CAAA;IAErD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACd,IAAI,kBAAkB,CAAC,UAAU,CAAC,EAAE;YACnC,GAAG,CAAC,OAAO,GAAG,IAAI,mDAAwB,CAAC;gBAC1C,OAAO,EAAE,WAAW;gBACpB,QAAQ;gBACR,QAAQ,EAAE,MAAM;aAChB,CAAC,CAAA;YAEF,UAAU,CAAC,IAAI,CAAC,CAAA;YAChB,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO;iBACzB,UAAU,CAAC,cAAc,CAAC;iBAC1B,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;iBAC/B,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;YAElC,OAAO,GAAG,EAAE;gBACX,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE;oBACpB,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,CAAA;gBACrB,CAAC,CAAC,CAAA;YACH,CAAC,CAAA;SACD;QACD,OAAM;IACP,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IAE/D,OAAO;QACN,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAA6B;QACrD;YACC,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,KAAK;YACL,SAAS;SACT;KACD,CAAA;AACF,CAAC;AArDD,8CAqDC;AAED,MAAM,kBAAkB,GAAG,CAC1B,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"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { Resolver } from '../Resolver';
3
+ export declare function useResolverContext(): Resolver;
4
+ export declare const ResolverProvider: React.FC;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022, J2 Innovations. All Rights Reserved
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.ResolverProvider = exports.useResolverContext = void 0;
30
+ const haystack_nclient_1 = require("haystack-nclient");
31
+ const haystack_react_1 = require("haystack-react");
32
+ const react_1 = __importStar(require("react"));
33
+ const useCurrentUser_1 = require("../../useCurrentUser");
34
+ const Resolver_1 = require("../Resolver");
35
+ const ResolverContext = react_1.default.createContext(new Resolver_1.Resolver({
36
+ client: new haystack_nclient_1.Client({
37
+ base: new URL(window.location.href),
38
+ }),
39
+ }));
40
+ ResolverContext.displayName = 'ResolverContext';
41
+ function useResolverContext() {
42
+ return (0, react_1.useContext)(ResolverContext);
43
+ }
44
+ exports.useResolverContext = useResolverContext;
45
+ const ResolverProvider = ({ children }) => {
46
+ const client = (0, haystack_react_1.useClient)();
47
+ const user = (0, useCurrentUser_1.useCurrentUser)();
48
+ const [resolver, setResolver] = (0, react_1.useState)(() => new Resolver_1.Resolver({ client, user }));
49
+ (0, react_1.useEffect)(() => {
50
+ setResolver(new Resolver_1.Resolver({ client, user }));
51
+ }, [client, user]);
52
+ return (<ResolverContext.Provider value={resolver}>
53
+ {children}
54
+ </ResolverContext.Provider>);
55
+ };
56
+ exports.ResolverProvider = ResolverProvider;
57
+ //# sourceMappingURL=useResolverContext.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useResolverContext.jsx","sourceRoot":"","sources":["../../../src/resolvableElements/react/useResolverContext.tsx"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uDAAyC;AACzC,mDAA0C;AAC1C,+CAA8D;AAC9D,yDAAqD;AACrD,0CAAsC;AAEtC,MAAM,eAAe,GAAG,eAAK,CAAC,aAAa,CAC1C,IAAI,mBAAQ,CAAC;IACZ,MAAM,EAAE,IAAI,yBAAM,CAAC;QAClB,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;KACnC,CAAC;CACF,CAAC,CACF,CAAA;AAED,eAAe,CAAC,WAAW,GAAG,iBAAiB,CAAA;AAE/C,SAAgB,kBAAkB;IACjC,OAAO,IAAA,kBAAU,EAAC,eAAe,CAAC,CAAA;AACnC,CAAC;AAFD,gDAEC;AAEM,MAAM,gBAAgB,GAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC1D,MAAM,MAAM,GAAG,IAAA,0BAAS,GAAE,CAAA;IAC1B,MAAM,IAAI,GAAG,IAAA,+BAAc,GAAE,CAAA;IAE7B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EACvC,GAAG,EAAE,CAAC,IAAI,mBAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CACpC,CAAA;IAED,IAAA,iBAAS,EAAC,GAAG,EAAE;QACd,WAAW,CAAC,IAAI,mBAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IAC5C,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;IAElB,OAAO,CACN,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CACzC;GAAA,CAAC,QAAQ,CACV;EAAA,EAAE,eAAe,CAAC,QAAQ,CAAC,CAC3B,CAAA;AACF,CAAC,CAAA;AAjBY,QAAA,gBAAgB,oBAiB5B"}
@@ -0,0 +1,19 @@
1
+ import { HDict } from 'haystack-core';
2
+ export declare const REG_EXPR_MATCHING_TEMPLATE: RegExp;
3
+ /**
4
+ * Replaces variables (defined as <$parameterName>) in an expression with the values given in the parameters dict.
5
+ * The HVal.toAxon function is used for conversion to a string.
6
+ * @example
7
+ * resolveTemplatedExpression("func({{num}})", HDict.make({num: HNum.make("22")})) => "func(22)"
8
+ * @param expr the axon expression
9
+ * @param params the parameters expressed as dict
10
+ * @returns the axon expression resolved with the specified params
11
+ */
12
+ export declare const resolveTemplateExpression: (expr: string, parameters?: HDict) => string;
13
+ /**
14
+ * Replaces template variable found in the given string using a given replacer function
15
+ * @param templateString
16
+ * @param replacer
17
+ * @returns a new string containing the compiled template string
18
+ */
19
+ export declare const replaceTemplateVariables: (templateString: string, replacer: (substring: string, match: string) => string) => string;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022, J2 Innovations. All Rights Reserved
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.replaceTemplateVariables = exports.resolveTemplateExpression = exports.REG_EXPR_MATCHING_TEMPLATE = void 0;
7
+ exports.REG_EXPR_MATCHING_TEMPLATE = new RegExp('{{([^{}]*)}}', 'g');
8
+ /**
9
+ * Replaces variables (defined as <$parameterName>) in an expression with the values given in the parameters dict.
10
+ * The HVal.toAxon function is used for conversion to a string.
11
+ * @example
12
+ * resolveTemplatedExpression("func({{num}})", HDict.make({num: HNum.make("22")})) => "func(22)"
13
+ * @param expr the axon expression
14
+ * @param params the parameters expressed as dict
15
+ * @returns the axon expression resolved with the specified params
16
+ */
17
+ const resolveTemplateExpression = (expr, parameters) => {
18
+ const paramDict = parameters;
19
+ return (0, exports.replaceTemplateVariables)(expr, (_substring, match) => {
20
+ const parameter = paramDict?.get(match)?.toAxon();
21
+ if (parameter != null) {
22
+ return parameter;
23
+ }
24
+ throw new Error(`ERROR: Missing parameter: ${match} in ${paramDict?.toAxon()}`);
25
+ });
26
+ };
27
+ exports.resolveTemplateExpression = resolveTemplateExpression;
28
+ /**
29
+ * Replaces template variable found in the given string using a given replacer function
30
+ * @param templateString
31
+ * @param replacer
32
+ * @returns a new string containing the compiled template string
33
+ */
34
+ const replaceTemplateVariables = (templateString, replacer) => templateString.replace(exports.REG_EXPR_MATCHING_TEMPLATE, replacer);
35
+ exports.replaceTemplateVariables = replaceTemplateVariables;
36
+ //# sourceMappingURL=resolveTemplatedExpression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveTemplatedExpression.js","sourceRoot":"","sources":["../../src/resolvableElements/resolveTemplatedExpression.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAIU,QAAA,0BAA0B,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;AAEzE;;;;;;;;GAQG;AACI,MAAM,yBAAyB,GAAG,CACxC,IAAY,EACZ,UAAkB,EACT,EAAE;IACX,MAAM,SAAS,GAAG,UAAU,CAAA;IAE5B,OAAO,IAAA,gCAAwB,EAC9B,IAAI,EACJ,CAAC,UAAkB,EAAE,KAAa,EAAE,EAAE;QACrC,MAAM,SAAS,GAAG,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;QACjD,IAAI,SAAS,IAAI,IAAI,EAAE;YACtB,OAAO,SAAS,CAAA;SAChB;QACD,MAAM,IAAI,KAAK,CACd,6BAA6B,KAAK,OAAO,SAAS,EAAE,MAAM,EAAE,EAAE,CAC9D,CAAA;IACF,CAAC,CACD,CAAA;AACF,CAAC,CAAA;AAlBY,QAAA,yBAAyB,6BAkBrC;AAED;;;;;GAKG;AACI,MAAM,wBAAwB,GAAG,CACvC,cAAsB,EACtB,QAAsD,EAC7C,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,kCAA0B,EAAE,QAAQ,CAAC,CAAA;AAH5D,QAAA,wBAAwB,4BAGoC"}
@@ -0,0 +1,10 @@
1
+ import { HDict } from 'haystack-core';
2
+ import React from 'react';
3
+ /**
4
+ * User context retrieval hook.
5
+ */
6
+ export declare function useCurrentUser(): HDict | undefined;
7
+ /**
8
+ * User context provider for FIN 5.
9
+ */
10
+ export declare const UserContextProvider: React.FC;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022, J2 Innovations. All Rights Reserved
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.UserContextProvider = exports.useCurrentUser = void 0;
30
+ const haystack_react_1 = require("haystack-react");
31
+ const react_1 = __importStar(require("react"));
32
+ const UserContext = react_1.default.createContext(undefined);
33
+ UserContext.displayName = 'CurrentUser';
34
+ /**
35
+ * User context retrieval hook.
36
+ */
37
+ function useCurrentUser() {
38
+ return (0, react_1.useContext)(UserContext);
39
+ }
40
+ exports.useCurrentUser = useCurrentUser;
41
+ /**
42
+ * User context provider for FIN 5.
43
+ */
44
+ const UserContextProvider = ({ children }) => {
45
+ const { grid, isLoading } = (0, haystack_react_1.useEval)('finGetCurrentUser()');
46
+ return (<UserContext.Provider value={isLoading ? undefined : grid[0]}>
47
+ {children}
48
+ </UserContext.Provider>);
49
+ };
50
+ exports.UserContextProvider = UserContextProvider;
51
+ //# sourceMappingURL=useCurrentUser.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCurrentUser.jsx","sourceRoot":"","sources":["../src/useCurrentUser.tsx"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;AAGH,mDAAwC;AACxC,+CAAyC;AAEzC,MAAM,WAAW,GAAG,eAAK,CAAC,aAAa,CAAoB,SAAS,CAAC,CAAA;AAErE,WAAW,CAAC,WAAW,GAAG,aAAa,CAAA;AAEvC;;GAEG;AACH,SAAgB,cAAc;IAC7B,OAAO,IAAA,kBAAU,EAAC,WAAW,CAAC,CAAA;AAC/B,CAAC;AAFD,wCAEC;AAED;;GAEG;AACI,MAAM,mBAAmB,GAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC7D,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,IAAA,wBAAO,EAAC,qBAAqB,CAAC,CAAA;IAE1D,OAAO,CACN,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAC5D;GAAA,CAAC,QAAQ,CACV;EAAA,EAAE,WAAW,CAAC,QAAQ,CAAC,CACvB,CAAA;AACF,CAAC,CAAA;AARY,QAAA,mBAAmB,uBAQ/B"}
@@ -0,0 +1,6 @@
1
+ export { type FunctionResult } from './resolvableElements/elements/function/FunctionElement';
2
+ export { isSectionData } from './resolvableElements/elements/section/SectionElementMeta';
3
+ export { type ParametersOfSection, type ResolvedElementValue, type UiElementData, } from './resolvableElements/elements/UiElement';
4
+ export * from './resolvableElements/react/useResolverContext';
5
+ export * from './resolvableElements/react/useResolveSection';
6
+ export * from './useCurrentUser';
@@ -0,0 +1,14 @@
1
+ /*
2
+ * Copyright (c) 2022, J2 Innovations. All Rights Reserved
3
+ */
4
+ export { isSectionData } from './resolvableElements/elements/section/SectionElementMeta';
5
+ //////////////////////////////////////////////////////////////////////////
6
+ // React
7
+ //////////////////////////////////////////////////////////////////////////
8
+ export * from './resolvableElements/react/useResolverContext';
9
+ export * from './resolvableElements/react/useResolveSection';
10
+ //////////////////////////////////////////////////////////////////////////
11
+ // Other
12
+ //////////////////////////////////////////////////////////////////////////
13
+ export * from './useCurrentUser';
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAAE,aAAa,EAAE,MAAM,0DAA0D,CAAA;AAMxF,0EAA0E;AAC1E,QAAQ;AACR,0EAA0E;AAC1E,cAAc,+CAA+C,CAAA;AAC7D,cAAc,8CAA8C,CAAA;AAC5D,0EAA0E;AAC1E,QAAQ;AACR,0EAA0E;AAC1E,cAAc,kBAAkB,CAAA"}
@@ -0,0 +1,18 @@
1
+ import { HDict, HGrid } from 'haystack-core';
2
+ import { Client, Watch } from 'haystack-nclient';
3
+ export interface ResolverData {
4
+ client: Client;
5
+ user?: HDict;
6
+ }
7
+ /**
8
+ * Resolver is a mediator for the network interactions during the resolution process,
9
+ * in order to enable future optimizations.
10
+ */
11
+ export declare class Resolver {
12
+ constructor({ client, user }: ResolverData);
13
+ client: Client;
14
+ user?: HDict;
15
+ read(filter: string): Promise<HGrid<HDict>>;
16
+ makeWatch(dis: string, grid: HGrid<HDict>): Promise<Watch>;
17
+ eval(expr: string): Promise<HGrid<HDict>>;
18
+ }
@@ -0,0 +1,25 @@
1
+ /*
2
+ * Copyright (c) 2022, J2 Innovations. All Rights Reserved
3
+ */
4
+ /**
5
+ * Resolver is a mediator for the network interactions during the resolution process,
6
+ * in order to enable future optimizations.
7
+ */
8
+ export class Resolver {
9
+ constructor({ client, user }) {
10
+ this.client = client;
11
+ this.user = user;
12
+ }
13
+ client;
14
+ user;
15
+ async read(filter) {
16
+ return this.client.ext.read(filter);
17
+ }
18
+ async makeWatch(dis, grid) {
19
+ return this.client.ops.watch.make(dis, grid);
20
+ }
21
+ async eval(expr) {
22
+ return this.client.ext.eval(expr);
23
+ }
24
+ }
25
+ //# sourceMappingURL=Resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Resolver.js","sourceRoot":"","sources":["../../src/resolvableElements/Resolver.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH;;;GAGG;AACH,MAAM,OAAO,QAAQ;IACpB,YAAY,EAAE,MAAM,EAAE,IAAI,EAAgB;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IACjB,CAAC;IAED,MAAM,CAAQ;IACd,IAAI,CAAQ;IAEZ,KAAK,CAAC,IAAI,CAAC,MAAc;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAW,EAAE,IAAkB;QAC9C,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC7C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAClC,CAAC;CACD"}
@@ -0,0 +1,14 @@
1
+ import { HDict } from 'haystack-core';
2
+ import { UiElement, UiElementConstructorData, UiElementData } from './UiElement';
3
+ /**
4
+ * base class for elements that can be resolved
5
+ */
6
+ export declare abstract class ResolvableElement<T extends UiElementData> extends UiElement<T> {
7
+ #private;
8
+ constructor(data: UiElementConstructorData<T>);
9
+ initialize: (parameters: HDict) => Promise<void>;
10
+ protected abstract doInitialize: (parameters: HDict) => Promise<void>;
11
+ close: () => Promise<void>;
12
+ protected abstract doClose: () => Promise<void>;
13
+ abstract getParameterList: () => string[];
14
+ }
@@ -0,0 +1,26 @@
1
+ /*
2
+ * Copyright (c) 2022, J2 Innovations. All Rights Reserved
3
+ */
4
+ import { UiElement } from './UiElement';
5
+ /**
6
+ * base class for elements that can be resolved
7
+ */
8
+ export class ResolvableElement extends UiElement {
9
+ constructor(data) {
10
+ super(data);
11
+ }
12
+ #initialized = false;
13
+ initialize = async (parameters) => {
14
+ if (this.isAccessAllowed() && !this.#initialized) {
15
+ this.#initialized = true;
16
+ return await this.doInitialize(parameters);
17
+ }
18
+ };
19
+ close = async () => {
20
+ if (this.#initialized) {
21
+ await this.doClose();
22
+ this.#initialized = false;
23
+ }
24
+ };
25
+ }
26
+ //# sourceMappingURL=ResolvableElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResolvableElement.js","sourceRoot":"","sources":["../../../src/resolvableElements/elements/ResolvableElement.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAA2C,MAAM,aAAa,CAAA;AAEhF;;GAEG;AACH,MAAM,OAAgB,iBAEpB,SAAQ,SAAY;IACrB,YAAY,IAAiC;QAC5C,KAAK,CAAC,IAAI,CAAC,CAAA;IACZ,CAAC;IAED,YAAY,GAAG,KAAK,CAAA;IACpB,UAAU,GAAyC,KAAK,EAAE,UAAU,EAAE,EAAE;QACvE,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACjD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;YACxB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;SAC1C;IACF,CAAC,CAAA;IAGD,KAAK,GAAwB,KAAK,IAAI,EAAE;QACvC,IAAI,IAAI,CAAC,YAAY,EAAE;YACtB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;YACpB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;SACzB;IACF,CAAC,CAAA;CAID"}
@@ -0,0 +1,16 @@
1
+ import { ResolvableElement } from './ResolvableElement';
2
+ import { UiElementConstructorData, UiElementData, UiElementMeta } from './UiElement';
3
+ export interface ResolvableValueElementMeta extends UiElementMeta {
4
+ resolutionType: string;
5
+ resolvedType: string;
6
+ defaultValue: string;
7
+ }
8
+ export declare const isResolvableValueElement: (element: UiElementData) => element is UiElementData<ResolvableValueElementMeta>;
9
+ export declare const isResolvableValueElementMeta: (meta: UiElementMeta) => meta is ResolvableValueElementMeta;
10
+ /**
11
+ * base class for leaf resolvable elements that are resolved into a value defined by the resolvedType property in the metadata
12
+ */
13
+ export declare abstract class ResolvableValueElement<T extends UiElementData = UiElementData> extends ResolvableElement<T> {
14
+ #private;
15
+ constructor(data: UiElementConstructorData<T>);
16
+ }
@@ -0,0 +1,33 @@
1
+ /*
2
+ * Copyright (c) 2022, J2 Innovations. All Rights Reserved
3
+ */
4
+ import { ZincReader } from 'haystack-core';
5
+ import { ResolvableElement } from './ResolvableElement';
6
+ export const isResolvableValueElement = (element) => {
7
+ return !!element?._meta && isResolvableValueElementMeta(element._meta);
8
+ };
9
+ export const isResolvableValueElementMeta = (meta) => {
10
+ return (!!meta.resolutionType &&
11
+ !!meta.resolvedType);
12
+ };
13
+ /**
14
+ * base class for leaf resolvable elements that are resolved into a value defined by the resolvedType property in the metadata
15
+ */
16
+ export class ResolvableValueElement extends ResolvableElement {
17
+ constructor(data) {
18
+ super(data);
19
+ this.#setDefaultValue();
20
+ }
21
+ #setDefaultValue() {
22
+ const { defaultValue } = this._meta;
23
+ if (defaultValue) {
24
+ try {
25
+ this.value = ZincReader.readValue(defaultValue);
26
+ }
27
+ catch (e) {
28
+ console.error('Failed to parse element default value from: ', JSON.stringify(this._meta), e);
29
+ }
30
+ }
31
+ }
32
+ }
33
+ //# sourceMappingURL=ResolvableValueElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResolvableValueElement.js","sourceRoot":"","sources":["../../../src/resolvableElements/elements/ResolvableValueElement.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAcvD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACvC,OAAsB,EACiC,EAAE;IACzD,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,IAAI,4BAA4B,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AACvE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC3C,IAAmB,EACkB,EAAE;IACvC,OAAO,CACN,CAAC,CAA8B,IAAK,CAAC,cAAc;QACnD,CAAC,CAA8B,IAAK,CAAC,YAAY,CACjD,CAAA;AACF,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,OAAgB,sBAEpB,SAAQ,iBAAoB;IAC7B,YAAY,IAAiC;QAC5C,KAAK,CAAC,IAAI,CAAC,CAAA;QACX,IAAI,CAAC,gBAAgB,EAAE,CAAA;IACxB,CAAC;IAED,gBAAgB;QACf,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,KAAmC,CAAA;QAEjE,IAAI,YAAY,EAAE;YACjB,IAAI;gBACH,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,SAAS,CAChC,YAAY,CAC0B,CAAA;aACvC;YAAC,OAAO,CAAC,EAAE;gBACX,OAAO,CAAC,KAAK,CACZ,8CAA8C,EAC9C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAC1B,CAAC,CACD,CAAA;aACD;SACD;IACF,CAAC;CACD"}
@@ -0,0 +1,40 @@
1
+ import { HVal } from 'haystack-core';
2
+ import { Resolver } from '../Resolver';
3
+ export interface UiElementData<Meta extends UiElementMeta = UiElementMeta> {
4
+ _meta?: Meta;
5
+ }
6
+ export interface UiElementMeta {
7
+ access?: string[];
8
+ }
9
+ export declare type ResolvedElementValue<T extends UiElementData> = T extends {
10
+ _resolved?: unknown;
11
+ } ? Required<T>['_resolved'] : unknown;
12
+ export declare type ParametersOfSection<T extends UiElementData> = T extends {
13
+ _parameters?: Record<string, HVal>;
14
+ } ? PartialExplicitUndefined<T['_parameters']> : undefined;
15
+ export declare type PartialExplicitUndefined<T> = {
16
+ [P in keyof T]: T[P] | null | undefined;
17
+ };
18
+ export interface UiElementConstructorData<T extends UiElementData> {
19
+ resolver: Resolver;
20
+ onUpdate: (value: ResolvedElementValue<T> | undefined) => void;
21
+ element: T;
22
+ name?: string;
23
+ }
24
+ /**
25
+ * Base UiElement class
26
+ */
27
+ export declare abstract class UiElement<T extends UiElementData = UiElementData> {
28
+ constructor({ name, element, resolver, onUpdate, }: UiElementConstructorData<T>);
29
+ resolver: Resolver;
30
+ _meta?: UiElementMeta;
31
+ name?: string;
32
+ toJSON(): Record<string, unknown>;
33
+ inspect(): void;
34
+ isAccessAllowed(): boolean;
35
+ protected _value?: ResolvedElementValue<T>;
36
+ get value(): ResolvedElementValue<T> | undefined;
37
+ set value(value: ResolvedElementValue<T> | undefined);
38
+ onUpdate: (value: ResolvedElementValue<T> | undefined) => void;
39
+ }
40
+ export declare function joinFilters(...filter: (string | undefined)[]): string;
@@ -0,0 +1,49 @@
1
+ /*
2
+ * Copyright (c) 2022, J2 Innovations. All Rights Reserved
3
+ */
4
+ const USER_ROLE_TAG_NAME = 'uiElementPermissions';
5
+ /**
6
+ * Base UiElement class
7
+ */
8
+ export class UiElement {
9
+ constructor({ name, element, resolver, onUpdate, }) {
10
+ this._meta = element._meta;
11
+ this.name = name;
12
+ this.resolver = resolver;
13
+ this.onUpdate = onUpdate;
14
+ }
15
+ resolver;
16
+ _meta;
17
+ name;
18
+ toJSON() {
19
+ return { _meta: this._meta };
20
+ }
21
+ inspect() {
22
+ console.log(this);
23
+ }
24
+ isAccessAllowed() {
25
+ if (!this._meta?.access || isSuperuser(this.resolver.user)) {
26
+ return true;
27
+ }
28
+ const userRole = this.resolver.user?.get(USER_ROLE_TAG_NAME);
29
+ if (userRole) {
30
+ return this._meta.access.includes(userRole.value);
31
+ }
32
+ // If userRole is not defined return false.
33
+ return false;
34
+ }
35
+ _value;
36
+ get value() {
37
+ return this._value;
38
+ }
39
+ set value(value) {
40
+ this._value = value;
41
+ this.onUpdate(value);
42
+ }
43
+ onUpdate;
44
+ }
45
+ export function joinFilters(...filter) {
46
+ return filter.filter((filter) => filter).join(' and ');
47
+ }
48
+ const isSuperuser = (user) => user?.get('userRole')?.value === 'su';
49
+ //# sourceMappingURL=UiElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UiElement.js","sourceRoot":"","sources":["../../../src/resolvableElements/elements/UiElement.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,kBAAkB,GAAG,sBAAsB,CAAA;AAiCjD;;GAEG;AACH,MAAM,OAAgB,SAAS;IAC9B,YAAY,EACX,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,QAAQ,GACqB;QAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IACzB,CAAC;IACD,QAAQ,CAAU;IAElB,KAAK,CAAgB;IAErB,IAAI,CAAS;IAEb,MAAM;QACL,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAA;IAC7B,CAAC;IACD,OAAO;QACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAClB,CAAC;IAED,eAAe;QACd,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAC3D,OAAO,IAAI,CAAA;SACX;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAO,kBAAkB,CAAC,CAAA;QAClE,IAAI,QAAQ,EAAE;YACb,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;SACjD;QAED,2CAA2C;QAC3C,OAAO,KAAK,CAAA;IACb,CAAC;IAES,MAAM,CAA0B;IAE1C,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,MAAM,CAAA;IACnB,CAAC;IAED,IAAI,KAAK,CAAC,KAA0C;QACnD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACrB,CAAC;IACD,QAAQ,CAAsD;CAC9D;AACD,MAAM,UAAU,WAAW,CAAC,GAAG,MAA8B;IAC5D,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AACvD,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE,CACpC,IAAI,EAAE,GAAG,CAAO,UAAU,CAAC,EAAE,KAAK,KAAK,IAAI,CAAA"}