@genesislcap/foundation-ui 15.22.0 → 15.22.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"options-datasource.d.ts","sourceRoot":"","sources":["../../../src/options-datasource/options-datasource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAgB,MAAM,+BAA+B,CAAC;AAY/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EACL,cAAc,EAKf,MAAM,UAAU,CAAC;AAElB;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;GAOG;AACH,qBAGa,iBAAkB,SAAQ,cAAc;IACjC,SAAS,EAAG,gBAAgB,CAAC;IAEX,UAAU,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAyB;IAC1B,kBAAkB,UAAS;IAEzF;;;;;;;;;;;;OAYG;IACsD,cAAc,UAAS;IAEhF;;OAEG;IAEH,QAAQ,SAAqC;IACjC,cAAc,MAAC;IACf,iBAAiB,EAAE,CAAC,GAAG,KAAA,KAAK,MAAM,CAAC;IAEnC,oBAAoB,EAAE,MAAM,GAAG,MAAM,CAAC;IAClD,2BAA2B,CAAC,QAAQ,KAAA,EAAE,QAAQ,KAAA;IAY9C,8BAA8B,EAAE,OAAO,CAAS;IAEhD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAQ;IAElC,SAAS,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,YAAY,EAAE,MAAM,CAAM;IAEjC,OAAO,CAAC,cAAc,CAAiB;IAEvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAM;IAC7C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAM;IACnD,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,qBAAqB,CAAM;IACnC,OAAO,CAAC,eAAe,CAAkC;IAEnD,iBAAiB;IAgCvB,oBAAoB;IAYpB;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB,CAM7B;IAEF;;;;OAIG;YACW,4BAA4B;IAU1C,OAAO,CAAC,2BAA2B;IAmBnC;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,oBAAoB,CAO1B;YAEY,YAAY;IAoB1B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,sBAAsB,CAI5B;IAEF,mBAAmB,GAAI,MAAC,UAQtB;IAEF,SAAS;IAcH,sBAAsB;IAa5B,SAAS,IAAI,IAAI;IAmBjB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,qBAAqB;IAO7B,iBAAiB,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE;IA6DtC,eAAe;IAIf,OAAO,CAAC,kBAAkB;IAS1B,aAAa;IAMb;;;OAGG;IACH,mBAAmB,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,IAAI;IA4B9C;;;;;;OAMG;IACH,mBAAmB,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,IAAI;IAI7C;;;OAGG;IACH,mBAAmB,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,IAAI;CAG9C"}
1
+ {"version":3,"file":"options-datasource.d.ts","sourceRoot":"","sources":["../../../src/options-datasource/options-datasource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAgB,MAAM,+BAA+B,CAAC;AAY/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EACL,cAAc,EAKf,MAAM,UAAU,CAAC;AAElB;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;GAOG;AACH,qBAGa,iBAAkB,SAAQ,cAAc;IACjC,SAAS,EAAG,gBAAgB,CAAC;IAEX,UAAU,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAyB;IAC1B,kBAAkB,UAAS;IAEzF;;;;;;;;;;;;OAYG;IACsD,cAAc,UAAS;IAEhF;;OAEG;IAEH,QAAQ,SAAqC;IACjC,cAAc,MAAC;IACf,iBAAiB,EAAE,CAAC,GAAG,KAAA,KAAK,MAAM,CAAC;IAEnC,oBAAoB,EAAE,MAAM,GAAG,MAAM,CAAC;IAClD,2BAA2B,CAAC,QAAQ,KAAA,EAAE,QAAQ,KAAA;IA4B9C,8BAA8B,EAAE,OAAO,CAAS;IAEhD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAQ;IAElC,SAAS,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,YAAY,EAAE,MAAM,CAAM;IAEjC,OAAO,CAAC,cAAc,CAAiB;IAEvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAM;IAC7C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAM;IACnD,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,qBAAqB,CAAM;IACnC,OAAO,CAAC,eAAe,CAAkC;IAEnD,iBAAiB;IAgCvB,oBAAoB;IAYpB;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB,CAM7B;IAEF;;;;OAIG;YACW,4BAA4B;IAU1C,OAAO,CAAC,2BAA2B;IAmBnC;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,oBAAoB,CAO1B;YAEY,YAAY;IAoB1B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,sBAAsB,CAI5B;IAEF,mBAAmB,GAAI,MAAC,UAQtB;IAEF,SAAS;IAcH,sBAAsB;IAe5B,SAAS,IAAI,IAAI;IAmBjB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,qBAAqB;IAO7B,iBAAiB,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE;IA6DtC,eAAe;IAIf,OAAO,CAAC,kBAAkB;IAS1B,aAAa;IAMb;;;OAGG;IACH,mBAAmB,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,IAAI;IA4B9C;;;;;;OAMG;IACH,mBAAmB,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,IAAI;IAI7C;;;OAGG;IACH,mBAAmB,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,IAAI;CAG9C"}
@@ -133,6 +133,15 @@ interface HTMLWCProps extends React.AriaAttributes {
133
133
  onInput?(e: Event): void;
134
134
  }
135
135
 
136
+ export declare const Accordion: React.ForwardRefExoticComponent<
137
+ React.PropsWithChildren<
138
+ Omit<PublicOf<AccordionWC>, 'children' | 'style'> &
139
+ HTMLWCProps & {
140
+ }
141
+ > & React.RefAttributes<AccordionWC>
142
+ >;
143
+ export type AccordionRef = AccordionWC;
144
+
136
145
  export declare const AccordionItem: React.ForwardRefExoticComponent<
137
146
  React.PropsWithChildren<
138
147
  Omit<PublicOf<AccordionItemWC>, 'children' | 'style'> &
@@ -171,15 +180,6 @@ export declare const AiIndicator: React.ForwardRefExoticComponent<
171
180
  >;
172
181
  export type AiIndicatorRef = AiIndicatorWC;
173
182
 
174
- export declare const Accordion: React.ForwardRefExoticComponent<
175
- React.PropsWithChildren<
176
- Omit<PublicOf<AccordionWC>, 'children' | 'style'> &
177
- HTMLWCProps & {
178
- }
179
- > & React.RefAttributes<AccordionWC>
180
- >;
181
- export type AccordionRef = AccordionWC;
182
-
183
183
  export declare const Anchor: React.ForwardRefExoticComponent<
184
184
  React.PropsWithChildren<
185
185
  Omit<PublicOf<AnchorWC>, 'children' | 'style'> &
@@ -1,4 +1,12 @@
1
1
  import type { MultiselectDatasource, OptionsDatasource } from '../options-datasource';
2
2
  export declare function dataserverCriteriaBuilder(datasource: OptionsDatasource | MultiselectDatasource, value: string | number): void;
3
+ /**
4
+ * Resolves a known field value (e.g. a bound `initialSelectedValue`) by exact match on
5
+ * `valueField`, as opposed to {@link dataserverCriteriaBuilder}, which treats `value` as
6
+ * typed search text and matches it against `labelField`. Using the label-based search to
7
+ * resolve an initial value only works by coincidence: an id like `"CP123"` will not be found
8
+ * by searching a `NAME`/label column for that same string.
9
+ */
10
+ export declare function resolveByValueCriteriaBuilder(datasource: OptionsDatasource | MultiselectDatasource, value: string | number): void;
3
11
  export declare function requestServerCriteriaBuilder(datasource: OptionsDatasource | MultiselectDatasource, value: string | number): void;
4
12
  //# sourceMappingURL=options-datasource-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"options-datasource-utils.d.ts","sourceRoot":"","sources":["../../../src/utils/options-datasource-utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAEtF,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,iBAAiB,GAAG,qBAAqB,EACrD,KAAK,EAAE,MAAM,GAAG,MAAM,QAgBvB;AAED,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,iBAAiB,GAAG,qBAAqB,EACrD,KAAK,EAAE,MAAM,GAAG,MAAM,QAOvB"}
1
+ {"version":3,"file":"options-datasource-utils.d.ts","sourceRoot":"","sources":["../../../src/utils/options-datasource-utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAEtF,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,iBAAiB,GAAG,qBAAqB,EACrD,KAAK,EAAE,MAAM,GAAG,MAAM,QAgBvB;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,iBAAiB,GAAG,qBAAqB,EACrD,KAAK,EAAE,MAAM,GAAG,MAAM,QAgBvB;AAED,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,iBAAiB,GAAG,qBAAqB,EACrD,KAAK,EAAE,MAAM,GAAG,MAAM,QAOvB"}
@@ -3,7 +3,7 @@ import { __awaiter, __decorate } from "tslib";
3
3
  import { GenesisResources, ResourceType } from '@genesislcap/foundation-comms';
4
4
  import { Combobox as FASTComboBox, } from '@microsoft/fast-components';
5
5
  import { attr, customElement, DOM, nullableNumberConverter, observable, } from '@microsoft/fast-element';
6
- import { BaseDatasource, getPrefix, logger, dataserverCriteriaBuilder as criteriaMatchBuilder, } from '../utils';
6
+ import { BaseDatasource, getPrefix, logger, resolveByValueCriteriaBuilder, } from '../utils';
7
7
  /**
8
8
  * Datasource element for select/combobox option loading.
9
9
  * @public
@@ -84,8 +84,24 @@ let OptionsDatasource = OptionsDatasource_1 = class OptionsDatasource extends Ba
84
84
  };
85
85
  }
86
86
  initialSelectedValueChanged(oldValue, newValue) {
87
- if (!newValue || newValue === oldValue)
87
+ if (newValue === oldValue)
88
88
  return;
89
+ if (!newValue) {
90
+ // The bound value was cleared (e.g. a dependent field like counterparty changed,
91
+ // clearing the trader that no longer applies) - reset the datasource so the combobox
92
+ // doesn't keep displaying the previous selection's stale text. clearData() drops the
93
+ // stale options/rows; resetCombobox() clears the combobox's own selectedIndex/
94
+ // selectedOptions/value, which slottedOptionsChanged would otherwise re-derive back to
95
+ // the removed selection once the child-removal mutation is observed. A separate
96
+ // `request`/`datasourceConfig` change (if any) re-scopes and refetches the option list
97
+ // on its own via `requestChanged`.
98
+ if (this.select) {
99
+ this.initalSelectedValueInitialized = false;
100
+ this.clearData();
101
+ this.resetCombobox();
102
+ }
103
+ return;
104
+ }
89
105
  // Skip reset when already displaying this value (avoids clearing user selections
90
106
  // when parent re-passes the value, e.g. ConnectedSelectControlRenderer)
91
107
  if (this.select && this.getDisplayForValue(newValue) === String(this.select.value || '')) {
@@ -247,7 +263,9 @@ let OptionsDatasource = OptionsDatasource_1 = class OptionsDatasource extends Ba
247
263
  });
248
264
  return;
249
265
  }
250
- criteriaMatchBuilder(this, this.initialSelectedValue);
266
+ // Resolve by value-field equality, not by searching label text for the raw value —
267
+ // the two are never the same string except by coincidence (see resolveByValueCriteriaBuilder).
268
+ resolveByValueCriteriaBuilder(this, this.initialSelectedValue);
251
269
  });
252
270
  }
253
271
  clearData() {
@@ -14,6 +14,27 @@ export function dataserverCriteriaBuilder(datasource, value) {
14
14
  datasource.criteria = criteriaBuilder.build();
15
15
  }
16
16
  }
17
+ /**
18
+ * Resolves a known field value (e.g. a bound `initialSelectedValue`) by exact match on
19
+ * `valueField`, as opposed to {@link dataserverCriteriaBuilder}, which treats `value` as
20
+ * typed search text and matches it against `labelField`. Using the label-based search to
21
+ * resolve an initial value only works by coincidence: an id like `"CP123"` will not be found
22
+ * by searching a `NAME`/label column for that same string.
23
+ */
24
+ export function resolveByValueCriteriaBuilder(datasource, value) {
25
+ const criteriaBuilder = new CriteriaBuilder();
26
+ criteriaBuilder.withExpression(new ExpressionBuilder()
27
+ .withField(datasource.valueField)
28
+ .withValue(value)
29
+ .withSerialiser(Serialisers.equals)
30
+ .build());
31
+ if (datasource.baseCriteria) {
32
+ datasource.criteria = `${datasource.baseCriteria} && ${criteriaBuilder.build()}`;
33
+ }
34
+ else {
35
+ datasource.criteria = criteriaBuilder.build();
36
+ }
37
+ }
17
38
  export function requestServerCriteriaBuilder(datasource, value) {
18
39
  var _a;
19
40
  const requestFieldName = (_a = datasource.labelField) !== null && _a !== void 0 ? _a : datasource.valueField;
package/dist/react.cjs CHANGED
@@ -113,6 +113,11 @@ function _mergeRefs(...refs) {
113
113
  };
114
114
  }
115
115
 
116
+ const Accordion = React.forwardRef(function Accordion(props, ref) {
117
+ const { children, ...rest } = props;
118
+ return React.createElement(customElements.getName(AccordionWC) ?? '%%prefix%%-accordion', { ...rest, ref }, children);
119
+ });
120
+
116
121
  const AccordionItem = React.forwardRef(function AccordionItem(props, ref) {
117
122
  const { children, ...rest } = props;
118
123
  return React.createElement(customElements.getName(AccordionItemWC) ?? '%%prefix%%-accordion-item', { ...rest, ref }, children);
@@ -150,11 +155,6 @@ const AiIndicator = React.forwardRef(function AiIndicator(props, ref) {
150
155
  return React.createElement(customElements.getName(AiIndicatorWC) ?? '%%prefix%%-ai-indicator', { ...rest, ref }, children);
151
156
  });
152
157
 
153
- const Accordion = React.forwardRef(function Accordion(props, ref) {
154
- const { children, ...rest } = props;
155
- return React.createElement(customElements.getName(AccordionWC) ?? '%%prefix%%-accordion', { ...rest, ref }, children);
156
- });
157
-
158
158
  const Anchor = React.forwardRef(function Anchor(props, ref) {
159
159
  const { children, ...rest } = props;
160
160
  return React.createElement(customElements.getName(AnchorWC) ?? '%%prefix%%-anchor', { ...rest, ref }, children);
@@ -1143,11 +1143,11 @@ const WeeklyRecurrence = React.forwardRef(function WeeklyRecurrence(props, ref)
1143
1143
  });
1144
1144
 
1145
1145
  module.exports = {
1146
+ Accordion,
1146
1147
  AccordionItem,
1147
1148
  ActionsMenu,
1148
1149
  AiCriteriaSearch,
1149
1150
  AiIndicator,
1150
- Accordion,
1151
1151
  Anchor,
1152
1152
  AnchoredRegion,
1153
1153
  Avatar,
package/dist/react.mjs CHANGED
@@ -111,6 +111,11 @@ function _mergeRefs(...refs) {
111
111
  };
112
112
  }
113
113
 
114
+ export const Accordion = React.forwardRef(function Accordion(props, ref) {
115
+ const { children, ...rest } = props;
116
+ return React.createElement(customElements.getName(AccordionWC) ?? '%%prefix%%-accordion', { ...rest, ref }, children);
117
+ });
118
+
114
119
  export const AccordionItem = React.forwardRef(function AccordionItem(props, ref) {
115
120
  const { children, ...rest } = props;
116
121
  return React.createElement(customElements.getName(AccordionItemWC) ?? '%%prefix%%-accordion-item', { ...rest, ref }, children);
@@ -148,11 +153,6 @@ export const AiIndicator = React.forwardRef(function AiIndicator(props, ref) {
148
153
  return React.createElement(customElements.getName(AiIndicatorWC) ?? '%%prefix%%-ai-indicator', { ...rest, ref }, children);
149
154
  });
150
155
 
151
- export const Accordion = React.forwardRef(function Accordion(props, ref) {
152
- const { children, ...rest } = props;
153
- return React.createElement(customElements.getName(AccordionWC) ?? '%%prefix%%-accordion', { ...rest, ref }, children);
154
- });
155
-
156
156
  export const Anchor = React.forwardRef(function Anchor(props, ref) {
157
157
  const { children, ...rest } = props;
158
158
  return React.createElement(customElements.getName(AnchorWC) ?? '%%prefix%%-anchor', { ...rest, ref }, children);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/foundation-ui",
3
3
  "description": "Genesis Foundation UI",
4
- "version": "15.22.0",
4
+ "version": "15.22.2",
5
5
  "sideEffects": false,
6
6
  "license": "SEE LICENSE IN license.txt",
7
7
  "main": "dist/esm/index.js",
@@ -85,13 +85,13 @@
85
85
  }
86
86
  },
87
87
  "devDependencies": {
88
- "@genesislcap/foundation-testing": "15.22.0",
89
- "@genesislcap/genx": "15.22.0",
90
- "@genesislcap/rollup-builder": "15.22.0",
91
- "@genesislcap/ts-builder": "15.22.0",
92
- "@genesislcap/uvu-playwright-builder": "15.22.0",
93
- "@genesislcap/vite-builder": "15.22.0",
94
- "@genesislcap/webpack-builder": "15.22.0",
88
+ "@genesislcap/foundation-testing": "15.22.2",
89
+ "@genesislcap/genx": "15.22.2",
90
+ "@genesislcap/rollup-builder": "15.22.2",
91
+ "@genesislcap/ts-builder": "15.22.2",
92
+ "@genesislcap/uvu-playwright-builder": "15.22.2",
93
+ "@genesislcap/vite-builder": "15.22.2",
94
+ "@genesislcap/webpack-builder": "15.22.2",
95
95
  "copyfiles": "^2.4.1"
96
96
  },
97
97
  "dependencies": {
@@ -100,16 +100,16 @@
100
100
  "@fortawesome/free-regular-svg-icons": "^6.2.1",
101
101
  "@fortawesome/free-solid-svg-icons": "^6.2.1",
102
102
  "@genesiscommunitysuccess/analyzer-import-alias-plugin": "^5.0.3",
103
- "@genesislcap/expression-builder": "15.22.0",
104
- "@genesislcap/foundation-ai": "15.22.0",
105
- "@genesislcap/foundation-comms": "15.22.0",
106
- "@genesislcap/foundation-criteria": "15.22.0",
107
- "@genesislcap/foundation-errors": "15.22.0",
108
- "@genesislcap/foundation-events": "15.22.0",
109
- "@genesislcap/foundation-logger": "15.22.0",
110
- "@genesislcap/foundation-notifications": "15.22.0",
111
- "@genesislcap/foundation-user": "15.22.0",
112
- "@genesislcap/foundation-utils": "15.22.0",
103
+ "@genesislcap/expression-builder": "15.22.2",
104
+ "@genesislcap/foundation-ai": "15.22.2",
105
+ "@genesislcap/foundation-comms": "15.22.2",
106
+ "@genesislcap/foundation-criteria": "15.22.2",
107
+ "@genesislcap/foundation-errors": "15.22.2",
108
+ "@genesislcap/foundation-events": "15.22.2",
109
+ "@genesislcap/foundation-logger": "15.22.2",
110
+ "@genesislcap/foundation-notifications": "15.22.2",
111
+ "@genesislcap/foundation-user": "15.22.2",
112
+ "@genesislcap/foundation-utils": "15.22.2",
113
113
  "@microsoft/fast-colors": "5.3.1",
114
114
  "@microsoft/fast-components": "2.30.6",
115
115
  "@microsoft/fast-element": "1.14.0",