@j2inn/resolvable-ui-elements 1.0.2-alpha.0 → 1.0.2-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 CHANGED
@@ -2,6 +2,7 @@ export { type FunctionResult } from './resolvableElements/elements/function/Func
2
2
  export { type ResolvableValueElementMeta } from './resolvableElements/elements/ResolvableValueElement';
3
3
  export { isSectionData, type ParametersOfSection, type ResolvedSection, } from './resolvableElements/elements/section/SectionElementMeta';
4
4
  export { type UiElementData } from './resolvableElements/elements/UiElement';
5
+ export { resolveTemplateExpression } from './resolvableElements/resolveTemplatedExpression';
5
6
  export * from './resolvableElements/react/SectionChecker';
6
7
  export * from './resolvableElements/react/useResolverContext';
7
8
  export * from './resolvableElements/react/useResolveSection';
package/dist/index.js CHANGED
@@ -17,9 +17,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
17
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.isSectionData = void 0;
20
+ exports.resolveTemplateExpression = exports.isSectionData = void 0;
21
21
  var SectionElementMeta_1 = require("./resolvableElements/elements/section/SectionElementMeta");
22
22
  Object.defineProperty(exports, "isSectionData", { enumerable: true, get: function () { return SectionElementMeta_1.isSectionData; } });
23
+ var resolveTemplatedExpression_1 = require("./resolvableElements/resolveTemplatedExpression");
24
+ Object.defineProperty(exports, "resolveTemplateExpression", { enumerable: true, get: function () { return resolveTemplatedExpression_1.resolveTemplateExpression; } });
23
25
  //////////////////////////////////////////////////////////////////////////
24
26
  // React
25
27
  //////////////////////////////////////////////////////////////////////////
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;AAOH,+FAIiE;AAHhE,mHAAA,aAAa,OAAA;AAKd,0EAA0E;AAC1E,QAAQ;AACR,0EAA0E;AAC1E,4EAAyD;AACzD,gFAA6D;AAC7D,+EAA4D;AAC5D,0EAA0E;AAC1E,QAAQ;AACR,0EAA0E;AAC1E,mDAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;AAOH,+FAIiE;AAHhE,mHAAA,aAAa,OAAA;AAKd,8FAA2F;AAAlF,uIAAA,yBAAyB,OAAA;AAClC,0EAA0E;AAC1E,QAAQ;AACR,0EAA0E;AAC1E,4EAAyD;AACzD,gFAA6D;AAC7D,+EAA4D;AAC5D,0EAA0E;AAC1E,QAAQ;AACR,0EAA0E;AAC1E,mDAAgC"}
@@ -1,5 +1,4 @@
1
1
  import { HDict } from 'haystack-core';
2
- import { Watch } from 'haystack-nclient';
3
2
  import { ResolvableValueElement } from '../ResolvableValueElement';
4
3
  import { UiElementConstructorData, UiElementData } from '../UiElement';
5
4
  /**
@@ -10,8 +9,6 @@ export declare class ResolvableExprElement<T extends UiElementData> extends Reso
10
9
  static collectionTypes: Set<string>;
11
10
  constructor(data: UiElementConstructorData<T>);
12
11
  refreshes: number;
13
- watch?: Watch;
14
- resolvedExpression?: string;
15
12
  protected doInitialize: (parameters: HDict) => Promise<void>;
16
13
  /**
17
14
  * Checks whether the declared resolvedType of this element is a collection.
@@ -7,7 +7,6 @@ exports.ResolvableExprElement = void 0;
7
7
  const haystack_core_1 = require("haystack-core");
8
8
  const haystack_units_1 = require("haystack-units");
9
9
  const resolveTemplatedExpression_1 = require("../../resolveTemplatedExpression");
10
- const haystack_nclient_1 = require("haystack-nclient");
11
10
  const ResolvableValueElement_1 = require("../ResolvableValueElement");
12
11
  /**
13
12
  * Resolves to the result of an expression.
@@ -19,41 +18,17 @@ class ResolvableExprElement extends ResolvableValueElement_1.ResolvableValueElem
19
18
  }
20
19
  refreshes = 0;
21
20
  #timeout;
22
- watch;
23
- resolvedExpression;
24
21
  doInitialize = async (parameters) => {
25
22
  await this.#updateValue(parameters);
26
- // Setup watch if we're expecting a grid or dict result containing a record id.
27
- if (this.isExpectedResultACollection()) {
28
- let grid;
29
- if ((0, haystack_core_1.valueIsKind)(this.value, haystack_core_1.Kind.Grid)) {
30
- grid = this.value;
31
- }
32
- else if ((0, haystack_core_1.valueIsKind)(this.value, haystack_core_1.Kind.Dict)) {
33
- grid = haystack_core_1.HGrid.make(this.value);
34
- }
35
- if (grid && grid.hasColumn('id')) {
36
- await this.#setupWatch(grid);
37
- }
38
- }
39
23
  };
40
24
  #updateValue = async (parameters) => {
41
25
  const { expr, refreshAfter } = this._meta;
42
- this.resolvedExpression = (0, resolveTemplatedExpression_1.resolveTemplateExpression)(expr, parameters);
43
- const grid = await this.resolver.eval(this.resolvedExpression);
26
+ const resolvedExpression = (0, resolveTemplatedExpression_1.resolveTemplateExpression)(expr, parameters);
27
+ const grid = await this.resolver.eval(resolvedExpression);
44
28
  if (grid.isError()) {
45
- console.error('Empty grid result for expression: \n', this.resolvedExpression, grid.getError());
29
+ console.error('Empty grid result for expression: \n', resolvedExpression, grid.getError());
46
30
  return;
47
31
  }
48
- this.#setValue(grid);
49
- if (refreshAfter) {
50
- this.#timeout = setTimeout(() => {
51
- this.refreshes++;
52
- this.#updateValue(parameters);
53
- }, haystack_core_1.HNum.make(refreshAfter, haystack_units_1.second).convertTo(haystack_units_1.millisecond).value);
54
- }
55
- };
56
- #setValue(grid) {
57
32
  const val = grid[0]?.get('val');
58
33
  // Identify when it's necessary to unpack the result `val` or not
59
34
  // since the eval wraps the result value in a grid's first dict `val` tag for non-collections.
@@ -64,7 +39,13 @@ class ResolvableExprElement extends ResolvableValueElement_1.ResolvableValueElem
64
39
  else {
65
40
  this.value = grid;
66
41
  }
67
- }
42
+ if (refreshAfter) {
43
+ this.#timeout = setTimeout(() => {
44
+ this.refreshes++;
45
+ this.#updateValue(parameters);
46
+ }, haystack_core_1.HNum.make(refreshAfter, haystack_units_1.second).convertTo(haystack_units_1.millisecond).value);
47
+ }
48
+ };
68
49
  /**
69
50
  * Checks whether the declared resolvedType of this element is a collection.
70
51
  * @returns true if the resolvedType is a collection.
@@ -78,7 +59,6 @@ class ResolvableExprElement extends ResolvableValueElement_1.ResolvableValueElem
78
59
  if (this.#timeout) {
79
60
  clearTimeout(this.#timeout);
80
61
  }
81
- return this.watch?.close();
82
62
  };
83
63
  getParameterList = () => {
84
64
  const { expr } = this._meta;
@@ -91,30 +71,6 @@ class ResolvableExprElement extends ResolvableValueElement_1.ResolvableValueElem
91
71
  }
92
72
  return parameters;
93
73
  };
94
- #setupWatch = async (grid) => {
95
- const { subscribePollRate, subscribe } = this
96
- ._meta;
97
- if (subscribe) {
98
- this.watch = await this.resolver.makeWatch(this.#getWatchDisplayName(), grid);
99
- const updateValue = () => {
100
- if (this.watch?.grid) {
101
- this.#setValue(this.watch?.grid);
102
- }
103
- };
104
- // Update with the value received when opening the watch
105
- updateValue();
106
- // Configure polling options
107
- this.watch.pollRate = subscribePollRate ?? haystack_nclient_1.DEFAULT_POLL_RATE_SECS;
108
- this.watch.changed({
109
- callback: updateValue,
110
- });
111
- }
112
- };
113
- #getWatchDisplayName = () => {
114
- return `ResolvableElement Watch for ${this.name ??
115
- this.resolvedExpression ??
116
- this._meta.expr}`;
117
- };
118
74
  }
119
75
  exports.ResolvableExprElement = ResolvableExprElement;
120
76
  //# sourceMappingURL=ResolvableExprElement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResolvableExprElement.js","sourceRoot":"","sources":["../../../../src/resolvableElements/elements/expr/ResolvableExprElement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ResolvableExprElement.js","sourceRoot":"","sources":["../../../../src/resolvableElements/elements/expr/ResolvableExprElement.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,iDAA2C;AAC3C,mDAAoD;AACpD,iFAGyC;AAEzC,sEAAkE;AAIlE;;GAEG;AACH,MAAa,qBAEX,SAAQ,+CAAyB;IAClC,MAAM,CAAC,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;IAEpD,YAAY,IAAiC;QAC5C,KAAK,CAAC,IAAI,CAAC,CAAA;IACZ,CAAC;IAED,SAAS,GAAG,CAAC,CAAA;IACb,QAAQ,CAAS;IAEP,YAAY,GAAG,KAAK,EAAE,UAAiB,EAAiB,EAAE;QACnE,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;IACpC,CAAC,CAAA;IAED,YAAY,GAAG,KAAK,EAAE,UAAiB,EAAiB,EAAE;QACzD,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,KAAkC,CAAA;QAEtE,MAAM,kBAAkB,GAAG,IAAA,sDAAyB,EAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QAEtE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;QAEzD,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YACnB,OAAO,CAAC,KAAK,CACZ,sCAAsC,EACtC,kBAAkB,EAClB,IAAI,CAAC,QAAQ,EAAE,CACf,CAAA;YACD,OAAM;SACN;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;QAE/B,iEAAiE;QACjE,8FAA8F;QAC9F,MAAM,kBAAkB,GAAG,CAAC,IAAI,CAAC,2BAA2B,EAAE,IAAI,GAAG,CAAA;QACrE,IAAI,kBAAkB,EAAE;YACvB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAA;SAChB;aAAM;YACN,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;SACjB;QAED,IAAI,YAAY,EAAE;YACjB,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC/B,IAAI,CAAC,SAAS,EAAE,CAAA;gBAChB,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;YAC9B,CAAC,EAAE,oBAAI,CAAC,IAAI,CAAC,YAAY,EAAE,uBAAM,CAAC,CAAC,SAAS,CAAC,4BAAW,CAAC,CAAC,KAAK,CAAsB,CAAA;SACrF;IACF,CAAC,CAAA;IAED;;;OAGG;IACH,2BAA2B,GAAG,GAAY,EAAE;QAC3C,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,KAAkC,CAAA;QAEhE,OAAO,CACN,qBAAqB,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC;YACvD,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC3B,CAAA;IACF,CAAC,CAAA;IAES,OAAO,GAAG,KAAK,IAAmB,EAAE;QAC7C,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClB,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;SAC3B;IACF,CAAC,CAAA;IAED,gBAAgB,GAAmB,GAAG,EAAE;QACvC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAkC,CAAA;QAExD,MAAM,UAAU,GAAa,EAAE,CAAA;QAE/B,IAAI,IAAI,EAAE;YACT,IAAA,qDAAwB,EAAC,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;gBAC3C,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACtB,OAAO,EAAE,CAAA;YACV,CAAC,CAAC,CAAA;SACF;QAED,OAAO,UAAU,CAAA;IAClB,CAAC,CAAA;;AAnFF,sDAoFC"}
@@ -4,8 +4,6 @@ export interface ResolvableExprElementMeta extends ResolvableValueElementMeta {
4
4
  resolutionType: 'expr';
5
5
  expr: string;
6
6
  refreshAfter: number;
7
- subscribe?: boolean;
8
- subscribePollRate?: number;
9
7
  }
10
8
  export declare const isResolvableExprElementData: (element: UiElementData) => element is UiElementData<ResolvableExprElementMeta>;
11
9
  export declare const isResolvableExprElementMeta: (meta: UiElementMeta) => meta is ResolvableExprElementMeta;
@@ -1 +1 @@
1
- {"version":3,"file":"ResolvableExprElementMeta.js","sourceRoot":"","sources":["../../../../src/resolvableElements/elements/expr/ResolvableExprElementMeta.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAaI,MAAM,2BAA2B,GAAG,CAC1C,OAAsB,EACgC,EAAE;IACxD,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,IAAI,IAAA,mCAA2B,EAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AACvE,CAAC,CAAA;AAJY,QAAA,2BAA2B,+BAIvC;AAEM,MAAM,2BAA2B,GAAG,CAC1C,IAAmB,EACiB,EAAE;IACtC,OAAQ,IAAkC,CAAC,cAAc,KAAK,MAAM,CAAA;AACrE,CAAC,CAAA;AAJY,QAAA,2BAA2B,+BAIvC"}
1
+ {"version":3,"file":"ResolvableExprElementMeta.js","sourceRoot":"","sources":["../../../../src/resolvableElements/elements/expr/ResolvableExprElementMeta.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAWI,MAAM,2BAA2B,GAAG,CAC1C,OAAsB,EACgC,EAAE;IACxD,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,IAAI,IAAA,mCAA2B,EAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AACvE,CAAC,CAAA;AAJY,QAAA,2BAA2B,+BAIvC;AAEM,MAAM,2BAA2B,GAAG,CAC1C,IAAmB,EACiB,EAAE;IACtC,OAAQ,IAAkC,CAAC,cAAc,KAAK,MAAM,CAAA;AACrE,CAAC,CAAA;AAJY,QAAA,2BAA2B,+BAIvC"}
@@ -2,6 +2,7 @@ export { type FunctionResult } from './resolvableElements/elements/function/Func
2
2
  export { type ResolvableValueElementMeta } from './resolvableElements/elements/ResolvableValueElement';
3
3
  export { isSectionData, type ParametersOfSection, type ResolvedSection, } from './resolvableElements/elements/section/SectionElementMeta';
4
4
  export { type UiElementData } from './resolvableElements/elements/UiElement';
5
+ export { resolveTemplateExpression } from './resolvableElements/resolveTemplatedExpression';
5
6
  export * from './resolvableElements/react/SectionChecker';
6
7
  export * from './resolvableElements/react/useResolverContext';
7
8
  export * from './resolvableElements/react/useResolveSection';
package/dist_es/index.js CHANGED
@@ -2,6 +2,7 @@
2
2
  * Copyright (c) 2022, J2 Innovations. All Rights Reserved
3
3
  */
4
4
  export { isSectionData, } from './resolvableElements/elements/section/SectionElementMeta';
5
+ export { resolveTemplateExpression } from './resolvableElements/resolveTemplatedExpression';
5
6
  //////////////////////////////////////////////////////////////////////////
6
7
  // React
7
8
  //////////////////////////////////////////////////////////////////////////
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EACN,aAAa,GAGb,MAAM,0DAA0D,CAAA;AAEjE,0EAA0E;AAC1E,QAAQ;AACR,0EAA0E;AAC1E,cAAc,2CAA2C,CAAA;AACzD,cAAc,+CAA+C,CAAA;AAC7D,cAAc,8CAA8C,CAAA;AAC5D,0EAA0E;AAC1E,QAAQ;AACR,0EAA0E;AAC1E,cAAc,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EACN,aAAa,GAGb,MAAM,0DAA0D,CAAA;AAEjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iDAAiD,CAAA;AAC3F,0EAA0E;AAC1E,QAAQ;AACR,0EAA0E;AAC1E,cAAc,2CAA2C,CAAA;AACzD,cAAc,+CAA+C,CAAA;AAC7D,cAAc,8CAA8C,CAAA;AAC5D,0EAA0E;AAC1E,QAAQ;AACR,0EAA0E;AAC1E,cAAc,kBAAkB,CAAA"}
@@ -1,5 +1,4 @@
1
1
  import { HDict } from 'haystack-core';
2
- import { Watch } from 'haystack-nclient';
3
2
  import { ResolvableValueElement } from '../ResolvableValueElement';
4
3
  import { UiElementConstructorData, UiElementData } from '../UiElement';
5
4
  /**
@@ -10,8 +9,6 @@ export declare class ResolvableExprElement<T extends UiElementData> extends Reso
10
9
  static collectionTypes: Set<string>;
11
10
  constructor(data: UiElementConstructorData<T>);
12
11
  refreshes: number;
13
- watch?: Watch;
14
- resolvedExpression?: string;
15
12
  protected doInitialize: (parameters: HDict) => Promise<void>;
16
13
  /**
17
14
  * Checks whether the declared resolvedType of this element is a collection.
@@ -1,10 +1,9 @@
1
1
  /*
2
2
  * Copyright (c) 2022, J2 Innovations. All Rights Reserved
3
3
  */
4
- import { HGrid, HNum, Kind, valueIsKind } from 'haystack-core';
4
+ import { HNum } from 'haystack-core';
5
5
  import { millisecond, second } from 'haystack-units';
6
6
  import { replaceTemplateVariables, resolveTemplateExpression, } from '../../resolveTemplatedExpression';
7
- import { DEFAULT_POLL_RATE_SECS } from 'haystack-nclient';
8
7
  import { ResolvableValueElement } from '../ResolvableValueElement';
9
8
  /**
10
9
  * Resolves to the result of an expression.
@@ -16,41 +15,17 @@ export class ResolvableExprElement extends ResolvableValueElement {
16
15
  }
17
16
  refreshes = 0;
18
17
  #timeout;
19
- watch;
20
- resolvedExpression;
21
18
  doInitialize = async (parameters) => {
22
19
  await this.#updateValue(parameters);
23
- // Setup watch if we're expecting a grid or dict result containing a record id.
24
- if (this.isExpectedResultACollection()) {
25
- let grid;
26
- if (valueIsKind(this.value, Kind.Grid)) {
27
- grid = this.value;
28
- }
29
- else if (valueIsKind(this.value, Kind.Dict)) {
30
- grid = HGrid.make(this.value);
31
- }
32
- if (grid && grid.hasColumn('id')) {
33
- await this.#setupWatch(grid);
34
- }
35
- }
36
20
  };
37
21
  #updateValue = async (parameters) => {
38
22
  const { expr, refreshAfter } = this._meta;
39
- this.resolvedExpression = resolveTemplateExpression(expr, parameters);
40
- const grid = await this.resolver.eval(this.resolvedExpression);
23
+ const resolvedExpression = resolveTemplateExpression(expr, parameters);
24
+ const grid = await this.resolver.eval(resolvedExpression);
41
25
  if (grid.isError()) {
42
- console.error('Empty grid result for expression: \n', this.resolvedExpression, grid.getError());
26
+ console.error('Empty grid result for expression: \n', resolvedExpression, grid.getError());
43
27
  return;
44
28
  }
45
- this.#setValue(grid);
46
- if (refreshAfter) {
47
- this.#timeout = setTimeout(() => {
48
- this.refreshes++;
49
- this.#updateValue(parameters);
50
- }, HNum.make(refreshAfter, second).convertTo(millisecond).value);
51
- }
52
- };
53
- #setValue(grid) {
54
29
  const val = grid[0]?.get('val');
55
30
  // Identify when it's necessary to unpack the result `val` or not
56
31
  // since the eval wraps the result value in a grid's first dict `val` tag for non-collections.
@@ -61,7 +36,13 @@ export class ResolvableExprElement extends ResolvableValueElement {
61
36
  else {
62
37
  this.value = grid;
63
38
  }
64
- }
39
+ if (refreshAfter) {
40
+ this.#timeout = setTimeout(() => {
41
+ this.refreshes++;
42
+ this.#updateValue(parameters);
43
+ }, HNum.make(refreshAfter, second).convertTo(millisecond).value);
44
+ }
45
+ };
65
46
  /**
66
47
  * Checks whether the declared resolvedType of this element is a collection.
67
48
  * @returns true if the resolvedType is a collection.
@@ -75,7 +56,6 @@ export class ResolvableExprElement extends ResolvableValueElement {
75
56
  if (this.#timeout) {
76
57
  clearTimeout(this.#timeout);
77
58
  }
78
- return this.watch?.close();
79
59
  };
80
60
  getParameterList = () => {
81
61
  const { expr } = this._meta;
@@ -88,29 +68,5 @@ export class ResolvableExprElement extends ResolvableValueElement {
88
68
  }
89
69
  return parameters;
90
70
  };
91
- #setupWatch = async (grid) => {
92
- const { subscribePollRate, subscribe } = this
93
- ._meta;
94
- if (subscribe) {
95
- this.watch = await this.resolver.makeWatch(this.#getWatchDisplayName(), grid);
96
- const updateValue = () => {
97
- if (this.watch?.grid) {
98
- this.#setValue(this.watch?.grid);
99
- }
100
- };
101
- // Update with the value received when opening the watch
102
- updateValue();
103
- // Configure polling options
104
- this.watch.pollRate = subscribePollRate ?? DEFAULT_POLL_RATE_SECS;
105
- this.watch.changed({
106
- callback: updateValue,
107
- });
108
- }
109
- };
110
- #getWatchDisplayName = () => {
111
- return `ResolvableElement Watch for ${this.name ??
112
- this.resolvedExpression ??
113
- this._meta.expr}`;
114
- };
115
71
  }
116
72
  //# sourceMappingURL=ResolvableExprElement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResolvableExprElement.js","sourceRoot":"","sources":["../../../../src/resolvableElements/elements/expr/ResolvableExprElement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ResolvableExprElement.js","sourceRoot":"","sources":["../../../../src/resolvableElements/elements/expr/ResolvableExprElement.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,6 @@ export interface ResolvableExprElementMeta extends ResolvableValueElementMeta {
4
4
  resolutionType: 'expr';
5
5
  expr: string;
6
6
  refreshAfter: number;
7
- subscribe?: boolean;
8
- subscribePollRate?: number;
9
7
  }
10
8
  export declare const isResolvableExprElementData: (element: UiElementData) => element is UiElementData<ResolvableExprElementMeta>;
11
9
  export declare const isResolvableExprElementMeta: (meta: UiElementMeta) => meta is ResolvableExprElementMeta;
@@ -1 +1 @@
1
- {"version":3,"file":"ResolvableExprElementMeta.js","sourceRoot":"","sources":["../../../../src/resolvableElements/elements/expr/ResolvableExprElementMeta.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAC1C,OAAsB,EACgC,EAAE;IACxD,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,IAAI,2BAA2B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AACvE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAC1C,IAAmB,EACiB,EAAE;IACtC,OAAQ,IAAkC,CAAC,cAAc,KAAK,MAAM,CAAA;AACrE,CAAC,CAAA"}
1
+ {"version":3,"file":"ResolvableExprElementMeta.js","sourceRoot":"","sources":["../../../../src/resolvableElements/elements/expr/ResolvableExprElementMeta.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAC1C,OAAsB,EACgC,EAAE;IACxD,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,IAAI,2BAA2B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AACvE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAC1C,IAAmB,EACiB,EAAE;IACtC,OAAQ,IAAkC,CAAC,cAAc,KAAK,MAAM,CAAA;AACrE,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@j2inn/resolvable-ui-elements",
3
- "version": "1.0.2-alpha.0",
3
+ "version": "1.0.2-beta.0",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",