@j2inn/resolvable-ui-elements 1.1.3-beta.0 → 2.0.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.
Files changed (99) hide show
  1. package/dist/index.d.ts +12 -12
  2. package/dist/index.js +39 -39
  3. package/dist/resolvableElements/Resolver.d.ts +47 -47
  4. package/dist/resolvableElements/Resolver.js +57 -57
  5. package/dist/resolvableElements/elements/ResolvableElement.d.ts +14 -14
  6. package/dist/resolvableElements/elements/ResolvableElement.js +29 -29
  7. package/dist/resolvableElements/elements/ResolvableValueElement.d.ts +16 -16
  8. package/dist/resolvableElements/elements/ResolvableValueElement.js +38 -38
  9. package/dist/resolvableElements/elements/UiElement.d.ts +31 -31
  10. package/dist/resolvableElements/elements/UiElement.js +56 -56
  11. package/dist/resolvableElements/elements/expr/ResolvableExprElement.d.ts +26 -26
  12. package/dist/resolvableElements/elements/expr/ResolvableExprElement.js +105 -105
  13. package/dist/resolvableElements/elements/expr/ResolvableExprElementMeta.d.ts +10 -10
  14. package/dist/resolvableElements/elements/expr/ResolvableExprElementMeta.js +14 -14
  15. package/dist/resolvableElements/elements/function/FunctionElement.d.ts +12 -12
  16. package/dist/resolvableElements/elements/function/FunctionElement.js +41 -41
  17. package/dist/resolvableElements/elements/function/FunctionElementMeta.d.ts +9 -9
  18. package/dist/resolvableElements/elements/function/FunctionElementMeta.js +14 -14
  19. package/dist/resolvableElements/elements/list/ListElementMeta.d.ts +12 -12
  20. package/dist/resolvableElements/elements/list/ListElementMeta.js +14 -14
  21. package/dist/resolvableElements/elements/list/ResolvableListElement.d.ts +16 -16
  22. package/dist/resolvableElements/elements/list/ResolvableListElement.js +102 -102
  23. package/dist/resolvableElements/elements/makeElement.d.ts +7 -7
  24. package/dist/resolvableElements/elements/makeElement.js +40 -40
  25. package/dist/resolvableElements/elements/section/ResolvableSectionElement.d.ts +24 -24
  26. package/dist/resolvableElements/elements/section/ResolvableSectionElement.js +122 -122
  27. package/dist/resolvableElements/elements/section/SectionElementMeta.d.ts +16 -16
  28. package/dist/resolvableElements/elements/section/SectionElementMeta.js +11 -11
  29. package/dist/resolvableElements/elements/section/resolveSection.d.ts +12 -12
  30. package/dist/resolvableElements/elements/section/resolveSection.js +41 -41
  31. package/dist/resolvableElements/elements/tag/ResolvableTagElement.d.ts +16 -16
  32. package/dist/resolvableElements/elements/tag/ResolvableTagElement.js +105 -105
  33. package/dist/resolvableElements/elements/tag/TagElementMeta.d.ts +12 -12
  34. package/dist/resolvableElements/elements/tag/TagElementMeta.js +14 -14
  35. package/dist/resolvableElements/interfacesGeneration/generateInterfaces.d.ts +17 -17
  36. package/dist/resolvableElements/interfacesGeneration/generateInterfaces.js +135 -134
  37. package/dist/resolvableElements/interfacesGeneration/generateInterfaces.js.map +1 -1
  38. package/dist/resolvableElements/interfacesGeneration/generateTypescriptInterfacesFile.d.ts +4 -4
  39. package/dist/resolvableElements/interfacesGeneration/generateTypescriptInterfacesFile.js +41 -41
  40. package/dist/resolvableElements/react/SectionChecker.d.ts +24 -24
  41. package/dist/resolvableElements/react/SectionChecker.jsx +27 -27
  42. package/dist/resolvableElements/react/useResolveSection.d.ts +21 -21
  43. package/dist/resolvableElements/react/useResolveSection.js +65 -65
  44. package/dist/resolvableElements/react/useResolverContext.d.ts +9 -9
  45. package/dist/resolvableElements/react/useResolverContext.jsx +64 -64
  46. package/dist/resolvableElements/resolveTemplatedExpression.d.ts +22 -22
  47. package/dist/resolvableElements/resolveTemplatedExpression.js +43 -43
  48. package/dist/useCurrentUser.d.ts +10 -10
  49. package/dist/useCurrentUser.jsx +48 -48
  50. package/dist_es/index.d.ts +12 -12
  51. package/dist_es/index.js +20 -20
  52. package/dist_es/resolvableElements/Resolver.d.ts +47 -47
  53. package/dist_es/resolvableElements/Resolver.js +53 -53
  54. package/dist_es/resolvableElements/elements/ResolvableElement.d.ts +14 -14
  55. package/dist_es/resolvableElements/elements/ResolvableElement.js +25 -25
  56. package/dist_es/resolvableElements/elements/ResolvableValueElement.d.ts +16 -16
  57. package/dist_es/resolvableElements/elements/ResolvableValueElement.js +32 -32
  58. package/dist_es/resolvableElements/elements/UiElement.d.ts +31 -31
  59. package/dist_es/resolvableElements/elements/UiElement.js +52 -52
  60. package/dist_es/resolvableElements/elements/expr/ResolvableExprElement.d.ts +26 -26
  61. package/dist_es/resolvableElements/elements/expr/ResolvableExprElement.js +101 -101
  62. package/dist_es/resolvableElements/elements/expr/ResolvableExprElementMeta.d.ts +10 -10
  63. package/dist_es/resolvableElements/elements/expr/ResolvableExprElementMeta.js +9 -9
  64. package/dist_es/resolvableElements/elements/function/FunctionElement.d.ts +12 -12
  65. package/dist_es/resolvableElements/elements/function/FunctionElement.js +36 -36
  66. package/dist_es/resolvableElements/elements/function/FunctionElementMeta.d.ts +9 -9
  67. package/dist_es/resolvableElements/elements/function/FunctionElementMeta.js +9 -9
  68. package/dist_es/resolvableElements/elements/list/ListElementMeta.d.ts +12 -12
  69. package/dist_es/resolvableElements/elements/list/ListElementMeta.js +9 -9
  70. package/dist_es/resolvableElements/elements/list/ResolvableListElement.d.ts +16 -16
  71. package/dist_es/resolvableElements/elements/list/ResolvableListElement.js +98 -98
  72. package/dist_es/resolvableElements/elements/makeElement.d.ts +7 -7
  73. package/dist_es/resolvableElements/elements/makeElement.js +36 -36
  74. package/dist_es/resolvableElements/elements/section/ResolvableSectionElement.d.ts +24 -24
  75. package/dist_es/resolvableElements/elements/section/ResolvableSectionElement.js +117 -117
  76. package/dist_es/resolvableElements/elements/section/SectionElementMeta.d.ts +16 -16
  77. package/dist_es/resolvableElements/elements/section/SectionElementMeta.js +6 -6
  78. package/dist_es/resolvableElements/elements/section/resolveSection.d.ts +12 -12
  79. package/dist_es/resolvableElements/elements/section/resolveSection.js +36 -36
  80. package/dist_es/resolvableElements/elements/tag/ResolvableTagElement.d.ts +16 -16
  81. package/dist_es/resolvableElements/elements/tag/ResolvableTagElement.js +101 -101
  82. package/dist_es/resolvableElements/elements/tag/TagElementMeta.d.ts +12 -12
  83. package/dist_es/resolvableElements/elements/tag/TagElementMeta.js +9 -9
  84. package/dist_es/resolvableElements/interfacesGeneration/generateInterfaces.d.ts +17 -17
  85. package/dist_es/resolvableElements/interfacesGeneration/generateInterfaces.js +129 -128
  86. package/dist_es/resolvableElements/interfacesGeneration/generateInterfaces.js.map +1 -1
  87. package/dist_es/resolvableElements/interfacesGeneration/generateTypescriptInterfacesFile.d.ts +4 -4
  88. package/dist_es/resolvableElements/interfacesGeneration/generateTypescriptInterfacesFile.js +15 -15
  89. package/dist_es/resolvableElements/react/SectionChecker.d.ts +24 -24
  90. package/dist_es/resolvableElements/react/SectionChecker.jsx +20 -20
  91. package/dist_es/resolvableElements/react/useResolveSection.d.ts +21 -21
  92. package/dist_es/resolvableElements/react/useResolveSection.js +61 -61
  93. package/dist_es/resolvableElements/react/useResolverContext.d.ts +9 -9
  94. package/dist_es/resolvableElements/react/useResolverContext.jsx +36 -36
  95. package/dist_es/resolvableElements/resolveTemplatedExpression.d.ts +22 -22
  96. package/dist_es/resolvableElements/resolveTemplatedExpression.js +38 -38
  97. package/dist_es/useCurrentUser.d.ts +10 -10
  98. package/dist_es/useCurrentUser.jsx +20 -20
  99. package/package.json +5 -5
@@ -1,57 +1,57 @@
1
- "use strict";
2
- /*
3
- * Copyright (c) 2022, J2 Innovations. All Rights Reserved
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.UiElement = void 0;
7
- const Resolver_1 = require("../Resolver");
8
- /**
9
- * Base UiElement class
10
- */
11
- class UiElement {
12
- constructor({ name, element, resolver, onUpdate, }) {
13
- this._meta = element._meta;
14
- this.name = name;
15
- this.resolver = resolver;
16
- this.onUpdate = onUpdate;
17
- }
18
- resolver;
19
- _meta;
20
- name;
21
- toJSON() {
22
- return { _meta: this._meta };
23
- }
24
- inspect() {
25
- console.log(this);
26
- }
27
- isAccessAllowed(meta) {
28
- return UiElement.#isElementAccessible(meta, this.resolver.user, this.resolver.userRoleTagName);
29
- }
30
- _value;
31
- get value() {
32
- return this._value;
33
- }
34
- set value(value) {
35
- this._value = value;
36
- this.onUpdate(value);
37
- }
38
- onUpdate;
39
- static #isElementAccessible(meta, user, userRoleTagName = Resolver_1.DEFAULT_USER_ROLE_TAG_NAME) {
40
- if (!meta || !meta.access || UiElement.#isSuperuser(user)) {
41
- return true;
42
- }
43
- const userRole = user?.get(userRoleTagName);
44
- if (userRole && meta.access.includes(userRole.value)) {
45
- return true;
46
- }
47
- return false;
48
- }
49
- static #isSuperuser(user) {
50
- return user?.get('userRole')?.value === 'su';
51
- }
52
- static joinFilters(...filter) {
53
- return filter.filter((filter) => filter).join(' and ');
54
- }
55
- }
56
- exports.UiElement = UiElement;
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022, J2 Innovations. All Rights Reserved
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.UiElement = void 0;
7
+ const Resolver_1 = require("../Resolver");
8
+ /**
9
+ * Base UiElement class
10
+ */
11
+ class UiElement {
12
+ constructor({ name, element, resolver, onUpdate, }) {
13
+ this._meta = element._meta;
14
+ this.name = name;
15
+ this.resolver = resolver;
16
+ this.onUpdate = onUpdate;
17
+ }
18
+ resolver;
19
+ _meta;
20
+ name;
21
+ toJSON() {
22
+ return { _meta: this._meta };
23
+ }
24
+ inspect() {
25
+ console.log(this);
26
+ }
27
+ isAccessAllowed(meta) {
28
+ return UiElement.#isElementAccessible(meta, this.resolver.user, this.resolver.userRoleTagName);
29
+ }
30
+ _value;
31
+ get value() {
32
+ return this._value;
33
+ }
34
+ set value(value) {
35
+ this._value = value;
36
+ this.onUpdate(value);
37
+ }
38
+ onUpdate;
39
+ static #isElementAccessible(meta, user, userRoleTagName = Resolver_1.DEFAULT_USER_ROLE_TAG_NAME) {
40
+ if (!meta || !meta.access || UiElement.#isSuperuser(user)) {
41
+ return true;
42
+ }
43
+ const userRole = user?.get(userRoleTagName);
44
+ if (userRole && meta.access.includes(userRole.value)) {
45
+ return true;
46
+ }
47
+ return false;
48
+ }
49
+ static #isSuperuser(user) {
50
+ return user?.get('userRole')?.value === 'su';
51
+ }
52
+ static joinFilters(...filter) {
53
+ return filter.filter((filter) => filter).join(' and ');
54
+ }
55
+ }
56
+ exports.UiElement = UiElement;
57
57
  //# sourceMappingURL=UiElement.js.map
@@ -1,26 +1,26 @@
1
- import { HDict } from 'haystack-core';
2
- import { ResolvableValueElement } from '../ResolvableValueElement';
3
- import { UiElementConstructorData, UiElementData } from '../UiElement';
4
- import { ResolvableExprElementMeta } from './ResolvableExprElementMeta';
5
- /**
6
- * Resolves to the result of an expression.
7
- */
8
- export declare class ResolvableExprElement<T extends UiElementData> extends ResolvableValueElement<T> {
9
- #private;
10
- constructor(data: UiElementConstructorData<T>);
11
- refreshes: number;
12
- protected getMeta: () => ResolvableExprElementMeta;
13
- protected doInitialize: (parameters: HDict) => Promise<void>;
14
- /**
15
- * Checks whether the declared resolvedType of this element is a collection.
16
- * @returns true if the resolvedType is a collection.
17
- */
18
- isExpectedResultACollection: () => boolean;
19
- /**
20
- * Checks whether the declared resolvedType of this element is a single value.
21
- * @returns true if the resolvedType is a value.
22
- */
23
- isExpectedResultVal: () => boolean;
24
- protected doClose: () => Promise<void>;
25
- getParameterList: () => string[];
26
- }
1
+ import { HDict } from 'haystack-core';
2
+ import { ResolvableValueElement } from '../ResolvableValueElement';
3
+ import { UiElementConstructorData, UiElementData } from '../UiElement';
4
+ import { ResolvableExprElementMeta } from './ResolvableExprElementMeta';
5
+ /**
6
+ * Resolves to the result of an expression.
7
+ */
8
+ export declare class ResolvableExprElement<T extends UiElementData> extends ResolvableValueElement<T> {
9
+ #private;
10
+ constructor(data: UiElementConstructorData<T>);
11
+ refreshes: number;
12
+ protected getMeta: () => ResolvableExprElementMeta;
13
+ protected doInitialize: (parameters: HDict) => Promise<void>;
14
+ /**
15
+ * Checks whether the declared resolvedType of this element is a collection.
16
+ * @returns true if the resolvedType is a collection.
17
+ */
18
+ isExpectedResultACollection: () => boolean;
19
+ /**
20
+ * Checks whether the declared resolvedType of this element is a single value.
21
+ * @returns true if the resolvedType is a value.
22
+ */
23
+ isExpectedResultVal: () => boolean;
24
+ protected doClose: () => Promise<void>;
25
+ getParameterList: () => string[];
26
+ }
@@ -1,106 +1,106 @@
1
- "use strict";
2
- /*
3
- * Copyright (c) 2022, J2 Innovations. All Rights Reserved
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ResolvableExprElement = void 0;
7
- const haystack_core_1 = require("haystack-core");
8
- const haystack_units_1 = require("haystack-units");
9
- const resolveTemplatedExpression_1 = require("../../resolveTemplatedExpression");
10
- const ResolvableValueElement_1 = require("../ResolvableValueElement");
11
- const GRID_VAL_COLUMN_NAME = 'val';
12
- /**
13
- * Resolves to the result of an expression.
14
- */
15
- class ResolvableExprElement extends ResolvableValueElement_1.ResolvableValueElement {
16
- constructor(data) {
17
- super(data);
18
- }
19
- refreshes = 0;
20
- #timeout;
21
- getMeta = () => this._meta;
22
- doInitialize = async (parameters) => {
23
- const { refreshAfter } = this.getMeta();
24
- await this.#updateValue(parameters);
25
- if (refreshAfter) {
26
- this.#setRefreshTimeout(refreshAfter, parameters);
27
- }
28
- };
29
- #setRefreshTimeout = (refreshAfter, parameters) => {
30
- this.#timeout = setTimeout(() => {
31
- this.refreshes++;
32
- this.#updateValue(parameters);
33
- this.#setRefreshTimeout(refreshAfter, parameters);
34
- }, haystack_core_1.HNum.make(refreshAfter, haystack_units_1.second).convertTo(haystack_units_1.millisecond).value);
35
- };
36
- #updateValue = async (parameters) => {
37
- const { expr, path } = this.getMeta();
38
- const grid = await this.resolver.evalExprElement(expr, parameters, path);
39
- this.value = this.#unpackResult(grid);
40
- };
41
- /**
42
- * Unpacks grid if expected `resolvedType` result requires it.
43
- * @param grid result grid
44
- * @returns unpacked value
45
- */
46
- #unpackResult = (grid) => {
47
- // Identify when it's necessary to unpack the result from `val` column or not
48
- if (this.isExpectedResultACollection()) {
49
- if (!grid.hasColumn(GRID_VAL_COLUMN_NAME)) {
50
- this.#logValColumnNotFound(grid);
51
- }
52
- // Unpack val column into array
53
- return grid.map((row) => row.get(GRID_VAL_COLUMN_NAME));
54
- }
55
- else if (this.isExpectedResultVal()) {
56
- if (!grid.hasColumn(GRID_VAL_COLUMN_NAME)) {
57
- this.#logValColumnNotFound(grid);
58
- }
59
- // Unpack first dict val column into value
60
- return grid[0]?.get(GRID_VAL_COLUMN_NAME);
61
- }
62
- else {
63
- // Default to using the grid response as it is
64
- return grid;
65
- }
66
- };
67
- #logValColumnNotFound = (grid) => {
68
- const { expr } = this.getMeta();
69
- console.warn(`expected "${GRID_VAL_COLUMN_NAME}" column on expr result not found`, expr, grid);
70
- grid.inspect();
71
- };
72
- /**
73
- * Checks whether the declared resolvedType of this element is a collection.
74
- * @returns true if the resolvedType is a collection.
75
- */
76
- isExpectedResultACollection = () => {
77
- const { resolvedType } = this.getMeta();
78
- return resolvedType.endsWith('[]');
79
- };
80
- /**
81
- * Checks whether the declared resolvedType of this element is a single value.
82
- * @returns true if the resolvedType is a value.
83
- */
84
- isExpectedResultVal = () => {
85
- const { resolvedType } = this.getMeta();
86
- return resolvedType !== 'HGrid' && !this.isExpectedResultACollection();
87
- };
88
- doClose = async () => {
89
- if (this.#timeout) {
90
- clearTimeout(this.#timeout);
91
- }
92
- };
93
- getParameterList = () => {
94
- const { expr } = this.getMeta();
95
- const parameters = [];
96
- if (expr) {
97
- (0, resolveTemplatedExpression_1.replaceTemplateVariables)(expr, (_, match) => {
98
- parameters.push(match);
99
- return '';
100
- });
101
- }
102
- return parameters;
103
- };
104
- }
105
- exports.ResolvableExprElement = ResolvableExprElement;
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022, J2 Innovations. All Rights Reserved
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ResolvableExprElement = void 0;
7
+ const haystack_core_1 = require("haystack-core");
8
+ const haystack_units_1 = require("haystack-units");
9
+ const resolveTemplatedExpression_1 = require("../../resolveTemplatedExpression");
10
+ const ResolvableValueElement_1 = require("../ResolvableValueElement");
11
+ const GRID_VAL_COLUMN_NAME = 'val';
12
+ /**
13
+ * Resolves to the result of an expression.
14
+ */
15
+ class ResolvableExprElement extends ResolvableValueElement_1.ResolvableValueElement {
16
+ constructor(data) {
17
+ super(data);
18
+ }
19
+ refreshes = 0;
20
+ #timeout;
21
+ getMeta = () => this._meta;
22
+ doInitialize = async (parameters) => {
23
+ const { refreshAfter } = this.getMeta();
24
+ await this.#updateValue(parameters);
25
+ if (refreshAfter) {
26
+ this.#setRefreshTimeout(refreshAfter, parameters);
27
+ }
28
+ };
29
+ #setRefreshTimeout = (refreshAfter, parameters) => {
30
+ this.#timeout = setTimeout(() => {
31
+ this.refreshes++;
32
+ this.#updateValue(parameters);
33
+ this.#setRefreshTimeout(refreshAfter, parameters);
34
+ }, haystack_core_1.HNum.make(refreshAfter, haystack_units_1.second).convertTo(haystack_units_1.millisecond).value);
35
+ };
36
+ #updateValue = async (parameters) => {
37
+ const { expr, path } = this.getMeta();
38
+ const grid = await this.resolver.evalExprElement(expr, parameters, path);
39
+ this.value = this.#unpackResult(grid);
40
+ };
41
+ /**
42
+ * Unpacks grid if expected `resolvedType` result requires it.
43
+ * @param grid result grid
44
+ * @returns unpacked value
45
+ */
46
+ #unpackResult = (grid) => {
47
+ // Identify when it's necessary to unpack the result from `val` column or not
48
+ if (this.isExpectedResultACollection()) {
49
+ if (!grid.hasColumn(GRID_VAL_COLUMN_NAME)) {
50
+ this.#logValColumnNotFound(grid);
51
+ }
52
+ // Unpack val column into array
53
+ return grid.map((row) => row.get(GRID_VAL_COLUMN_NAME));
54
+ }
55
+ else if (this.isExpectedResultVal()) {
56
+ if (!grid.hasColumn(GRID_VAL_COLUMN_NAME)) {
57
+ this.#logValColumnNotFound(grid);
58
+ }
59
+ // Unpack first dict val column into value
60
+ return grid[0]?.get(GRID_VAL_COLUMN_NAME);
61
+ }
62
+ else {
63
+ // Default to using the grid response as it is
64
+ return grid;
65
+ }
66
+ };
67
+ #logValColumnNotFound = (grid) => {
68
+ const { expr } = this.getMeta();
69
+ console.warn(`expected "${GRID_VAL_COLUMN_NAME}" column on expr result not found`, expr, grid);
70
+ grid.inspect();
71
+ };
72
+ /**
73
+ * Checks whether the declared resolvedType of this element is a collection.
74
+ * @returns true if the resolvedType is a collection.
75
+ */
76
+ isExpectedResultACollection = () => {
77
+ const { resolvedType } = this.getMeta();
78
+ return resolvedType.endsWith('[]');
79
+ };
80
+ /**
81
+ * Checks whether the declared resolvedType of this element is a single value.
82
+ * @returns true if the resolvedType is a value.
83
+ */
84
+ isExpectedResultVal = () => {
85
+ const { resolvedType } = this.getMeta();
86
+ return resolvedType !== 'HGrid' && !this.isExpectedResultACollection();
87
+ };
88
+ doClose = async () => {
89
+ if (this.#timeout) {
90
+ clearTimeout(this.#timeout);
91
+ }
92
+ };
93
+ getParameterList = () => {
94
+ const { expr } = this.getMeta();
95
+ const parameters = [];
96
+ if (expr) {
97
+ (0, resolveTemplatedExpression_1.replaceTemplateVariables)(expr, (_, match) => {
98
+ parameters.push(match);
99
+ return '';
100
+ });
101
+ }
102
+ return parameters;
103
+ };
104
+ }
105
+ exports.ResolvableExprElement = ResolvableExprElement;
106
106
  //# sourceMappingURL=ResolvableExprElement.js.map
@@ -1,10 +1,10 @@
1
- import { ResolvableValueElementMeta } from '../ResolvableValueElement';
2
- import { UiElementData, UiElementMeta } from '../UiElement';
3
- export interface ResolvableExprElementMeta extends ResolvableValueElementMeta {
4
- resolutionType: 'expr';
5
- expr: string;
6
- refreshAfter: number;
7
- path?: string;
8
- }
9
- export declare const isResolvableExprElementData: (element: UiElementData) => element is UiElementData<ResolvableExprElementMeta>;
10
- export declare const isResolvableExprElementMeta: (meta: UiElementMeta) => meta is ResolvableExprElementMeta;
1
+ import { ResolvableValueElementMeta } from '../ResolvableValueElement';
2
+ import { UiElementData, UiElementMeta } from '../UiElement';
3
+ export interface ResolvableExprElementMeta extends ResolvableValueElementMeta {
4
+ resolutionType: 'expr';
5
+ expr: string;
6
+ refreshAfter: number;
7
+ path?: string;
8
+ }
9
+ export declare const isResolvableExprElementData: (element: UiElementData) => element is UiElementData<ResolvableExprElementMeta>;
10
+ export declare const isResolvableExprElementMeta: (meta: UiElementMeta) => meta is ResolvableExprElementMeta;
@@ -1,15 +1,15 @@
1
- "use strict";
2
- /*
3
- * Copyright (c) 2022, J2 Innovations. All Rights Reserved
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.isResolvableExprElementMeta = exports.isResolvableExprElementData = void 0;
7
- const isResolvableExprElementData = (element) => {
8
- return !!element?._meta && (0, exports.isResolvableExprElementMeta)(element?._meta);
9
- };
10
- exports.isResolvableExprElementData = isResolvableExprElementData;
11
- const isResolvableExprElementMeta = (meta) => {
12
- return meta.resolutionType === 'expr';
13
- };
14
- exports.isResolvableExprElementMeta = isResolvableExprElementMeta;
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022, J2 Innovations. All Rights Reserved
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.isResolvableExprElementMeta = exports.isResolvableExprElementData = void 0;
7
+ const isResolvableExprElementData = (element) => {
8
+ return !!element?._meta && (0, exports.isResolvableExprElementMeta)(element?._meta);
9
+ };
10
+ exports.isResolvableExprElementData = isResolvableExprElementData;
11
+ const isResolvableExprElementMeta = (meta) => {
12
+ return meta.resolutionType === 'expr';
13
+ };
14
+ exports.isResolvableExprElementMeta = isResolvableExprElementMeta;
15
15
  //# sourceMappingURL=ResolvableExprElementMeta.js.map
@@ -1,12 +1,12 @@
1
- import { DictStore, HaysonVal, HDict, HGrid, OptionalHVal } from 'haystack-core';
2
- import { UiElement, UiElementConstructorData, UiElementData } from '../UiElement';
3
- /**
4
- * Resolves to a function that can be called to achieve side effects.
5
- */
6
- export declare class FunctionElement<T extends UiElementData> extends UiElement<T> {
7
- #private;
8
- constructor(data: UiElementConstructorData<T>);
9
- }
10
- export type FunctionResult = (parameters: Parameters) => Promise<HGrid>;
11
- export type Parameters = Record<string, OptionalHVal | HaysonVal | undefined> | OptionalHVal | DictStore | undefined;
12
- export declare const makeParametersDict: (parameters: Record<string, OptionalHVal | HaysonVal | undefined> | OptionalHVal | DictStore | undefined) => HDict;
1
+ import { DictStore, HaysonVal, HDict, HGrid, OptionalHVal } from 'haystack-core';
2
+ import { UiElement, UiElementConstructorData, UiElementData } from '../UiElement';
3
+ /**
4
+ * Resolves to a function that can be called to achieve side effects.
5
+ */
6
+ export declare class FunctionElement<T extends UiElementData> extends UiElement<T> {
7
+ #private;
8
+ constructor(data: UiElementConstructorData<T>);
9
+ }
10
+ export type FunctionResult = (parameters: Parameters) => Promise<HGrid>;
11
+ export type Parameters = Record<string, OptionalHVal | HaysonVal | undefined> | OptionalHVal | DictStore | undefined;
12
+ export declare const makeParametersDict: (parameters: Record<string, OptionalHVal | HaysonVal | undefined> | OptionalHVal | DictStore | undefined) => HDict;
@@ -1,42 +1,42 @@
1
- "use strict";
2
- /*
3
- * Copyright (c) 2022, J2 Innovations. All Rights Reserved
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.makeParametersDict = exports.FunctionElement = void 0;
7
- const haystack_core_1 = require("haystack-core");
8
- const UiElement_1 = require("../UiElement");
9
- /**
10
- * Resolves to a function that can be called to achieve side effects.
11
- */
12
- class FunctionElement extends UiElement_1.UiElement {
13
- constructor(data) {
14
- super(data);
15
- if (this.isAccessAllowed(this._meta)) {
16
- this.value = this.#buildFunction();
17
- }
18
- }
19
- #buildFunction = () => {
20
- const { expr, path } = this._meta;
21
- return async (parameters) => {
22
- const result = await this.resolver.evalExprElement(expr, (0, exports.makeParametersDict)(parameters), path);
23
- // Update watch records
24
- if (!result.isError()) {
25
- this.resolver.client.ops.watch.update(result.filter('id and mod'));
26
- }
27
- return result;
28
- };
29
- };
30
- }
31
- exports.FunctionElement = FunctionElement;
32
- const makeParametersDict = (parameters) => {
33
- if (!parameters) {
34
- return haystack_core_1.HDict.make();
35
- }
36
- if (parameters instanceof haystack_core_1.HDict) {
37
- return parameters;
38
- }
39
- return haystack_core_1.HDict.make(Object.fromEntries(Object.entries(parameters).filter(([, v]) => v != null)));
40
- };
41
- exports.makeParametersDict = makeParametersDict;
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022, J2 Innovations. All Rights Reserved
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.makeParametersDict = exports.FunctionElement = void 0;
7
+ const haystack_core_1 = require("haystack-core");
8
+ const UiElement_1 = require("../UiElement");
9
+ /**
10
+ * Resolves to a function that can be called to achieve side effects.
11
+ */
12
+ class FunctionElement extends UiElement_1.UiElement {
13
+ constructor(data) {
14
+ super(data);
15
+ if (this.isAccessAllowed(this._meta)) {
16
+ this.value = this.#buildFunction();
17
+ }
18
+ }
19
+ #buildFunction = () => {
20
+ const { expr, path } = this._meta;
21
+ return async (parameters) => {
22
+ const result = await this.resolver.evalExprElement(expr, (0, exports.makeParametersDict)(parameters), path);
23
+ // Update watch records
24
+ if (!result.isError()) {
25
+ this.resolver.client.ops.watch.update(result.filter('id and mod'));
26
+ }
27
+ return result;
28
+ };
29
+ };
30
+ }
31
+ exports.FunctionElement = FunctionElement;
32
+ const makeParametersDict = (parameters) => {
33
+ if (!parameters) {
34
+ return haystack_core_1.HDict.make();
35
+ }
36
+ if (parameters instanceof haystack_core_1.HDict) {
37
+ return parameters;
38
+ }
39
+ return haystack_core_1.HDict.make(Object.fromEntries(Object.entries(parameters).filter(([, v]) => v != null)));
40
+ };
41
+ exports.makeParametersDict = makeParametersDict;
42
42
  //# sourceMappingURL=FunctionElement.js.map
@@ -1,9 +1,9 @@
1
- import { ResolvableValueElementMeta } from '../ResolvableValueElement';
2
- import { UiElementData, UiElementMeta } from '../UiElement';
3
- export interface FunctionElementMeta extends ResolvableValueElementMeta {
4
- resolutionType: 'function';
5
- expr: string;
6
- path?: string;
7
- }
8
- export declare const isFunctionElementData: (element: UiElementData) => element is UiElementData<FunctionElementMeta>;
9
- export declare const isFunctionElementMeta: (meta: UiElementMeta) => meta is FunctionElementMeta;
1
+ import { ResolvableValueElementMeta } from '../ResolvableValueElement';
2
+ import { UiElementData, UiElementMeta } from '../UiElement';
3
+ export interface FunctionElementMeta extends ResolvableValueElementMeta {
4
+ resolutionType: 'function';
5
+ expr: string;
6
+ path?: string;
7
+ }
8
+ export declare const isFunctionElementData: (element: UiElementData) => element is UiElementData<FunctionElementMeta>;
9
+ export declare const isFunctionElementMeta: (meta: UiElementMeta) => meta is FunctionElementMeta;
@@ -1,15 +1,15 @@
1
- "use strict";
2
- /*
3
- * Copyright (c) 2022, J2 Innovations. All Rights Reserved
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.isFunctionElementMeta = exports.isFunctionElementData = void 0;
7
- const isFunctionElementData = (element) => {
8
- return !!element?._meta && (0, exports.isFunctionElementMeta)(element._meta);
9
- };
10
- exports.isFunctionElementData = isFunctionElementData;
11
- const isFunctionElementMeta = (meta) => {
12
- return meta.resolutionType === 'function';
13
- };
14
- exports.isFunctionElementMeta = isFunctionElementMeta;
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022, J2 Innovations. All Rights Reserved
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.isFunctionElementMeta = exports.isFunctionElementData = void 0;
7
+ const isFunctionElementData = (element) => {
8
+ return !!element?._meta && (0, exports.isFunctionElementMeta)(element._meta);
9
+ };
10
+ exports.isFunctionElementData = isFunctionElementData;
11
+ const isFunctionElementMeta = (meta) => {
12
+ return meta.resolutionType === 'function';
13
+ };
14
+ exports.isFunctionElementMeta = isFunctionElementMeta;
15
15
  //# sourceMappingURL=FunctionElementMeta.js.map
@@ -1,12 +1,12 @@
1
- import { ResolvableValueElementMeta } from '../ResolvableValueElement';
2
- import { UiElementData, UiElementMeta } from '../UiElement';
3
- export interface ResolvableListElementMeta extends ResolvableValueElementMeta {
4
- resolutionType: 'list';
5
- parentBinding?: string;
6
- entityBinding?: string;
7
- subscribe?: boolean;
8
- subscribePollRate?: number;
9
- orderBy: string | string[];
10
- }
11
- export declare const isResolvableListElementData: (element: UiElementData) => element is UiElementData<ResolvableListElementMeta>;
12
- export declare const isResolvableListElementMeta: (meta: UiElementMeta) => meta is ResolvableListElementMeta;
1
+ import { ResolvableValueElementMeta } from '../ResolvableValueElement';
2
+ import { UiElementData, UiElementMeta } from '../UiElement';
3
+ export interface ResolvableListElementMeta extends ResolvableValueElementMeta {
4
+ resolutionType: 'list';
5
+ parentBinding?: string;
6
+ entityBinding?: string;
7
+ subscribe?: boolean;
8
+ subscribePollRate?: number;
9
+ orderBy: string | string[];
10
+ }
11
+ export declare const isResolvableListElementData: (element: UiElementData) => element is UiElementData<ResolvableListElementMeta>;
12
+ export declare const isResolvableListElementMeta: (meta: UiElementMeta) => meta is ResolvableListElementMeta;
@@ -1,15 +1,15 @@
1
- "use strict";
2
- /*
3
- * Copyright (c) 2022, J2 Innovations. All Rights Reserved
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.isResolvableListElementMeta = exports.isResolvableListElementData = void 0;
7
- const isResolvableListElementData = (element) => {
8
- return !!element?._meta && (0, exports.isResolvableListElementMeta)(element._meta);
9
- };
10
- exports.isResolvableListElementData = isResolvableListElementData;
11
- const isResolvableListElementMeta = (meta) => {
12
- return meta.resolutionType === 'list';
13
- };
14
- exports.isResolvableListElementMeta = isResolvableListElementMeta;
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022, J2 Innovations. All Rights Reserved
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.isResolvableListElementMeta = exports.isResolvableListElementData = void 0;
7
+ const isResolvableListElementData = (element) => {
8
+ return !!element?._meta && (0, exports.isResolvableListElementMeta)(element._meta);
9
+ };
10
+ exports.isResolvableListElementData = isResolvableListElementData;
11
+ const isResolvableListElementMeta = (meta) => {
12
+ return meta.resolutionType === 'list';
13
+ };
14
+ exports.isResolvableListElementMeta = isResolvableListElementMeta;
15
15
  //# sourceMappingURL=ListElementMeta.js.map