@genesislcap/foundation-forms 15.23.2 → 15.23.3

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.
@@ -3068,6 +3068,35 @@
3068
3068
  "kind": "javascript-module",
3069
3069
  "path": "src/jsonforms/renderers/ConnectedSelectControlRenderer.ts",
3070
3070
  "declarations": [
3071
+ {
3072
+ "kind": "function",
3073
+ "name": "shouldReuseDisplayedValue",
3074
+ "return": {
3075
+ "type": {
3076
+ "text": "boolean"
3077
+ }
3078
+ },
3079
+ "parameters": [
3080
+ {
3081
+ "name": "currentValue",
3082
+ "type": {
3083
+ "text": "unknown"
3084
+ }
3085
+ },
3086
+ {
3087
+ "name": "previousRawValue",
3088
+ "type": {
3089
+ "text": "unknown"
3090
+ }
3091
+ },
3092
+ {
3093
+ "name": "displayedValue",
3094
+ "type": {
3095
+ "text": "string | undefined"
3096
+ }
3097
+ }
3098
+ ]
3099
+ },
3071
3100
  {
3072
3101
  "kind": "function",
3073
3102
  "name": "ConnectedSelectControlRendererTemplate",
@@ -3091,6 +3120,14 @@
3091
3120
  }
3092
3121
  ],
3093
3122
  "exports": [
3123
+ {
3124
+ "kind": "js",
3125
+ "name": "shouldReuseDisplayedValue",
3126
+ "declaration": {
3127
+ "name": "shouldReuseDisplayedValue",
3128
+ "module": "src/jsonforms/renderers/ConnectedSelectControlRenderer.ts"
3129
+ }
3130
+ },
3094
3131
  {
3095
3132
  "kind": "js",
3096
3133
  "name": "ConnectedSelectControlRendererTemplate",
@@ -1,4 +1,5 @@
1
1
  import { DispatchRenderer } from './dispatch-renderer';
2
+ export declare const shouldReuseDisplayedValue: (currentValue: unknown, previousRawValue: unknown, displayedValue: string | undefined) => boolean;
2
3
  export declare const ConnectedSelectControlRendererTemplate: (prefix?: string) => import("@microsoft/fast-element").ViewTemplate<DispatchRenderer, any>;
3
4
  export declare const ConnectedSelectControlRendererEntry: any;
4
5
  //# sourceMappingURL=ConnectedSelectControlRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectedSelectControlRenderer.d.ts","sourceRoot":"","sources":["../../../../src/jsonforms/renderers/ConnectedSelectControlRenderer.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAmBvD,eAAO,MAAM,sCAAsC,GACjD,SAAQ,MAAe,0EA6CxB,CAAC;AAEF,eAAO,MAAM,mCAAmC,EAAE,GAMjD,CAAC"}
1
+ {"version":3,"file":"ConnectedSelectControlRenderer.d.ts","sourceRoot":"","sources":["../../../../src/jsonforms/renderers/ConnectedSelectControlRenderer.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAKvD,eAAO,MAAM,yBAAyB,GACpC,cAAc,OAAO,EACrB,kBAAkB,OAAO,EACzB,gBAAgB,MAAM,GAAG,SAAS,KACjC,OAAgE,CAAC;AAqCpE,eAAO,MAAM,sCAAsC,GACjD,SAAQ,MAAe,0EA6CxB,CAAC;AAEF,eAAO,MAAM,mCAAmC,EAAE,GAMjD,CAAC"}
@@ -6,6 +6,8 @@ import { optionIs } from '../testers/optionIs';
6
6
  import { controlWrapperTemplate } from './ControlWrapperRenderer';
7
7
  import { SELECT_CONTROL_RANK } from './RenderersRanks';
8
8
  OptionsDatasource;
9
+ export const shouldReuseDisplayedValue = (currentValue, previousRawValue, displayedValue) => previousRawValue === currentValue && !!displayedValue;
10
+ const lastRawValueByRenderer = new WeakMap();
9
11
  /**
10
12
  * Gets the display value for the connected select control
11
13
  * @param dispatchRenderer - The dispatch renderer instance
@@ -16,9 +18,24 @@ const getConnectedSelectDisplayValue = (dispatchRenderer) => {
16
18
  const currentValue = dispatchRenderer.control.data;
17
19
  if (!currentValue)
18
20
  return '';
19
- const options = ((_a = dispatchRenderer.control.uischema.options) === null || _a === void 0 ? void 0 : _a.data) || [];
20
- const option = options.find((opt) => opt.value === currentValue);
21
- return String((option === null || option === void 0 ? void 0 : option.label) || currentValue);
21
+ const options = (_a = dispatchRenderer.control.uischema.options) === null || _a === void 0 ? void 0 : _a.data;
22
+ if (options) {
23
+ const option = options.find((opt) => opt.value === currentValue);
24
+ return String((option === null || option === void 0 ? void 0 : option.label) || currentValue);
25
+ }
26
+ // allOptionsResourceName-backed controls have no static list to resolve a label from -
27
+ // the sibling <options-datasource> resolves it asynchronously instead. This binding
28
+ // re-evaluates on every unrelated form change, so reuse what's already displayed rather
29
+ // than resetting it back to the raw stored value each time.
30
+ const previousRawValue = lastRawValueByRenderer.get(dispatchRenderer);
31
+ const path = dispatchRenderer.control.path;
32
+ const escapedPath = typeof CSS !== 'undefined' ? CSS.escape(path) : path;
33
+ const combobox = dispatchRenderer.querySelector(`#${escapedPath}`);
34
+ if (shouldReuseDisplayedValue(currentValue, previousRawValue, combobox === null || combobox === void 0 ? void 0 : combobox.value)) {
35
+ return combobox.value;
36
+ }
37
+ lastRawValueByRenderer.set(dispatchRenderer, currentValue);
38
+ return String(currentValue);
22
39
  };
23
40
  export const ConnectedSelectControlRendererTemplate = (prefix = 'zero') => html `
24
41
  <template>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/foundation-forms",
3
3
  "description": "Genesis Foundation Forms",
4
- "version": "15.23.2",
4
+ "version": "15.23.3",
5
5
  "sideEffects": false,
6
6
  "license": "SEE LICENSE IN license.txt",
7
7
  "main": "dist/esm/index.js",
@@ -59,13 +59,13 @@
59
59
  }
60
60
  },
61
61
  "devDependencies": {
62
- "@genesislcap/foundation-testing": "15.23.2",
63
- "@genesislcap/genx": "15.23.2",
64
- "@genesislcap/rollup-builder": "15.23.2",
65
- "@genesislcap/ts-builder": "15.23.2",
66
- "@genesislcap/uvu-playwright-builder": "15.23.2",
67
- "@genesislcap/vite-builder": "15.23.2",
68
- "@genesislcap/webpack-builder": "15.23.2",
62
+ "@genesislcap/foundation-testing": "15.23.3",
63
+ "@genesislcap/genx": "15.23.3",
64
+ "@genesislcap/rollup-builder": "15.23.3",
65
+ "@genesislcap/ts-builder": "15.23.3",
66
+ "@genesislcap/uvu-playwright-builder": "15.23.3",
67
+ "@genesislcap/vite-builder": "15.23.3",
68
+ "@genesislcap/webpack-builder": "15.23.3",
69
69
  "@types/json-schema": "^7.0.11",
70
70
  "@types/papaparse": "^5.3.14"
71
71
  },
@@ -82,12 +82,12 @@
82
82
  }
83
83
  },
84
84
  "dependencies": {
85
- "@genesislcap/foundation-comms": "15.23.2",
86
- "@genesislcap/foundation-criteria": "15.23.2",
87
- "@genesislcap/foundation-logger": "15.23.2",
88
- "@genesislcap/foundation-notifications": "15.23.2",
89
- "@genesislcap/foundation-ui": "15.23.2",
90
- "@genesislcap/foundation-utils": "15.23.2",
85
+ "@genesislcap/foundation-comms": "15.23.3",
86
+ "@genesislcap/foundation-criteria": "15.23.3",
87
+ "@genesislcap/foundation-logger": "15.23.3",
88
+ "@genesislcap/foundation-notifications": "15.23.3",
89
+ "@genesislcap/foundation-ui": "15.23.3",
90
+ "@genesislcap/foundation-utils": "15.23.3",
91
91
  "@json-schema-tools/dereferencer": "^1.6.1",
92
92
  "@jsonforms/core": "^3.2.1",
93
93
  "@microsoft/fast-components": "2.30.6",