@genesislcap/foundation-forms 14.403.0 → 14.406.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.
@@ -24,7 +24,7 @@
24
24
  "type": {
25
25
  "text": "array"
26
26
  },
27
- "default": "[\n fallbackEntry,\n stringEntry,\n BooleanControlEntry,\n StringArrayEntry,\n LayoutArrayRendererEntry,\n LayoutCategorizationRendererEntry,\n LayoutGroupRendererEntry,\n LayoutHorizontalEntry,\n LayoutFormGridEntry,\n LayoutVertical2ColumnsEntry,\n LayoutRendererEntry,\n LayoutStepperRendererEntry,\n NumberControlRendererEntry,\n ConnectedMultiselectControlRendererEntry,\n EnumControlRendererEntry,\n ConnectedSelectControlRendererEntry,\n DateControlRendererEntry,\n InvisibleControlEntry,\n DividerControlRenderer,\n]",
27
+ "default": "[\n fallbackEntry,\n stringEntry,\n BooleanControlEntry,\n StringArrayEntry,\n LayoutArrayRendererEntry,\n LayoutCategorizationRendererEntry,\n LayoutGroupRendererEntry,\n LayoutHorizontalEntry,\n LayoutFormGridEntry,\n LayoutVertical2ColumnsEntry,\n LayoutRendererEntry,\n LayoutStepperRendererEntry,\n NumberControlRendererEntry,\n ConnectedMultiselectControlRendererEntry,\n EnumControlRendererEntry,\n ConnectedSelectControlRendererEntry,\n DateControlRendererEntry,\n InvisibleControlEntry,\n DividerControlRenderer,\n MulticolumnDropdownControlRendererEntry,\n]",
28
28
  "description": "Set of default renderers used by the foundation-forms.",
29
29
  "privacy": "public"
30
30
  },
@@ -100,7 +100,7 @@
100
100
  "type": {
101
101
  "text": "RendererEntry[]"
102
102
  },
103
- "default": "[\n fallbackEntry,\n stringEntry,\n BooleanControlEntry,\n StringArrayEntry,\n LayoutArrayRendererEntry,\n LayoutCategorizationRendererEntry,\n LayoutGroupRendererEntry,\n LayoutHorizontalEntry,\n LayoutFormGridEntry,\n LayoutVertical2ColumnsEntry,\n LayoutRendererEntry,\n LayoutStepperRendererEntry,\n NumberControlRendererEntry,\n ConnectedMultiselectControlRendererEntry,\n EnumControlRendererEntry,\n ConnectedSelectControlRendererEntry,\n DateControlRendererEntry,\n InvisibleControlEntry,\n DividerControlRenderer,\n]",
103
+ "default": "[\n fallbackEntry,\n stringEntry,\n BooleanControlEntry,\n StringArrayEntry,\n LayoutArrayRendererEntry,\n LayoutCategorizationRendererEntry,\n LayoutGroupRendererEntry,\n LayoutHorizontalEntry,\n LayoutFormGridEntry,\n LayoutVertical2ColumnsEntry,\n LayoutRendererEntry,\n LayoutStepperRendererEntry,\n NumberControlRendererEntry,\n ConnectedMultiselectControlRendererEntry,\n EnumControlRendererEntry,\n ConnectedSelectControlRendererEntry,\n DateControlRendererEntry,\n InvisibleControlEntry,\n DividerControlRenderer,\n MulticolumnDropdownControlRendererEntry,\n]",
104
104
  "description": "Allows to provide the main set of renderers used by the form. If not provided, the built-in renderers will be used by default.",
105
105
  "privacy": "public"
106
106
  },
@@ -628,6 +628,22 @@
628
628
  "package": "./form.template"
629
629
  }
630
630
  },
631
+ {
632
+ "kind": "js",
633
+ "name": "MulticolumnDropdownControlRendererEntry",
634
+ "declaration": {
635
+ "name": "MulticolumnDropdownControlRendererEntry",
636
+ "module": "./jsonforms/renderers/MulticolumnDropdownControlRenderer"
637
+ }
638
+ },
639
+ {
640
+ "kind": "js",
641
+ "name": "MulticolumnDropdownControlRendererTemplate",
642
+ "declaration": {
643
+ "name": "MulticolumnDropdownControlRendererTemplate",
644
+ "module": "./jsonforms/renderers/MulticolumnDropdownControlRenderer"
645
+ }
646
+ },
631
647
  {
632
648
  "kind": "js",
633
649
  "name": "*",
@@ -2902,6 +2918,51 @@
2902
2918
  }
2903
2919
  ]
2904
2920
  },
2921
+ {
2922
+ "kind": "javascript-module",
2923
+ "path": "src/jsonforms/renderers/MulticolumnDropdownControlRenderer.ts",
2924
+ "declarations": [
2925
+ {
2926
+ "kind": "function",
2927
+ "name": "MulticolumnDropdownControlRendererTemplate",
2928
+ "parameters": [
2929
+ {
2930
+ "name": "prefix",
2931
+ "default": "'zero'",
2932
+ "type": {
2933
+ "text": "string"
2934
+ }
2935
+ }
2936
+ ]
2937
+ },
2938
+ {
2939
+ "kind": "variable",
2940
+ "name": "MulticolumnDropdownControlRendererEntry",
2941
+ "type": {
2942
+ "text": "any"
2943
+ },
2944
+ "default": "{\n renderer: html<DispatchRenderer>`\n ${(x) => MulticolumnDropdownControlRendererTemplate(x.prefix)}\n `,\n tester: rankWith(MULTICOLUMN_DROPDOWN_CONTROL_RANK, optionIs('columnDefinitions')),\n mapper: mapStateToControlProps,\n}"
2945
+ }
2946
+ ],
2947
+ "exports": [
2948
+ {
2949
+ "kind": "js",
2950
+ "name": "MulticolumnDropdownControlRendererTemplate",
2951
+ "declaration": {
2952
+ "name": "MulticolumnDropdownControlRendererTemplate",
2953
+ "module": "src/jsonforms/renderers/MulticolumnDropdownControlRenderer.ts"
2954
+ }
2955
+ },
2956
+ {
2957
+ "kind": "js",
2958
+ "name": "MulticolumnDropdownControlRendererEntry",
2959
+ "declaration": {
2960
+ "name": "MulticolumnDropdownControlRendererEntry",
2961
+ "module": "src/jsonforms/renderers/MulticolumnDropdownControlRenderer.ts"
2962
+ }
2963
+ }
2964
+ ]
2965
+ },
2905
2966
  {
2906
2967
  "kind": "javascript-module",
2907
2968
  "path": "src/jsonforms/renderers/NumberControlRenderer.ts",
@@ -3079,6 +3140,14 @@
3079
3140
  },
3080
3141
  "default": "2"
3081
3142
  },
3143
+ {
3144
+ "kind": "variable",
3145
+ "name": "MULTICOLUMN_DROPDOWN_CONTROL_RANK",
3146
+ "type": {
3147
+ "text": "number"
3148
+ },
3149
+ "default": "5"
3150
+ },
3082
3151
  {
3083
3152
  "kind": "variable",
3084
3153
  "name": "INVISIBLE_CONTROL_RANK",
@@ -3225,6 +3294,14 @@
3225
3294
  "module": "src/jsonforms/renderers/RenderersRanks.ts"
3226
3295
  }
3227
3296
  },
3297
+ {
3298
+ "kind": "js",
3299
+ "name": "MULTICOLUMN_DROPDOWN_CONTROL_RANK",
3300
+ "declaration": {
3301
+ "name": "MULTICOLUMN_DROPDOWN_CONTROL_RANK",
3302
+ "module": "src/jsonforms/renderers/RenderersRanks.ts"
3303
+ }
3304
+ },
3228
3305
  {
3229
3306
  "kind": "js",
3230
3307
  "name": "INVISIBLE_CONTROL_RANK",
@@ -1 +1 @@
1
- {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../src/form.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../src/form.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ export * from './filters';
2
2
  export * from './form';
3
3
  export * from './form.styles';
4
4
  export * from './form.template';
5
+ export { MulticolumnDropdownControlRendererEntry, MulticolumnDropdownControlRendererTemplate, } from './jsonforms/renderers/MulticolumnDropdownControlRenderer';
5
6
  export * from './types';
6
7
  export * from './utils';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,OAAO,EACL,uCAAuC,EACvC,0CAA0C,GAC3C,MAAM,0DAA0D,CAAC;AAClE,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ArrayListWrapperRenderer.d.ts","sourceRoot":"","sources":["../../../../src/jsonforms/renderers/ArrayListWrapperRenderer.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,WAAW,EAIZ,MAAM,yBAAyB,CAAC;AAIjC,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAsFF,eAAO,MAAM,gCAAgC,GAAI,SAAQ,MAAe,6DA8HvE,CAAC;AAsRF,qBAOa,gBAAiB,SAAQ,WAAW;IACnC,IAAI,MAAC;IACL,OAAO,MAAC;IACR,MAAM,MAAC;IACP,QAAQ,MAAC;IACT,UAAU,EAAE,OAAO,CAAS;IAC5B,mBAAmB,EAAE,cAAc,EAAE,CAAM;IAC3C,gBAAgB,EAAE,GAAG,CAAQ;IAEzC,cAAc;IAoBd,OAAO;IAOP,UAAU,CAAC,KAAK,EAAE,MAAM;IAIxB;;;OAGG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM;CAGxB"}
1
+ {"version":3,"file":"ArrayListWrapperRenderer.d.ts","sourceRoot":"","sources":["../../../../src/jsonforms/renderers/ArrayListWrapperRenderer.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,WAAW,EAIZ,MAAM,yBAAyB,CAAC;AAIjC,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAgGF,eAAO,MAAM,gCAAgC,GAAI,SAAQ,MAAe,6DA+HvE,CAAC;AAsRF,qBAOa,gBAAiB,SAAQ,WAAW;IACnC,IAAI,MAAC;IACL,OAAO,MAAC;IACR,MAAM,MAAC;IACP,QAAQ,MAAC;IACT,UAAU,EAAE,OAAO,CAAS;IAC5B,mBAAmB,EAAE,cAAc,EAAE,CAAM;IAC3C,gBAAgB,EAAE,GAAG,CAAQ;IAEzC,cAAc;IAoBd,OAAO;IAOP,UAAU,CAAC,KAAK,EAAE,MAAM;IAIxB;;;OAGG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM;CAGxB"}
@@ -0,0 +1,33 @@
1
+ import { DispatchRenderer } from './dispatch-renderer';
2
+ /**
3
+ * @beta
4
+ * A JSON Forms renderer that uses the multicolumn-dropdown component.
5
+ *
6
+ * Activated when the uischema element has `columnDefinitions` set.
7
+ * Takes precedence over `ConnectedSelectControlRendererEntry` due to its higher rank.
8
+ *
9
+ * Options are typed via {@link MulticolumnDropdownRendererOptions}.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * {
14
+ * type: 'Control',
15
+ * scope: '#/properties/INSTRUMENT_ID',
16
+ * label: 'Instrument',
17
+ * options: <MulticolumnDropdownRendererOptions>{
18
+ * allOptionsResourceName: 'ALL_INSTRUMENTS',
19
+ * valueField: 'INSTRUMENT_ID',
20
+ * labelField: 'NAME',
21
+ * searchKey: ['INSTRUMENT_ID', 'NAME'],
22
+ * columnDefinitions: [
23
+ * { field: 'INSTRUMENT_ID', headerName: 'ID' },
24
+ * { field: 'NAME', headerName: 'Name' },
25
+ * ],
26
+ * },
27
+ * }
28
+ * ```
29
+ */
30
+ export declare const MulticolumnDropdownControlRendererTemplate: (prefix?: string) => import("@microsoft/fast-element").ViewTemplate<DispatchRenderer, any>;
31
+ /** @beta */
32
+ export declare const MulticolumnDropdownControlRendererEntry: any;
33
+ //# sourceMappingURL=MulticolumnDropdownControlRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MulticolumnDropdownControlRenderer.d.ts","sourceRoot":"","sources":["../../../../src/jsonforms/renderers/MulticolumnDropdownControlRenderer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAMvD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,0CAA0C,GAAI,SAAQ,MAAe,0EAyC/E,CAAC;AAEJ,YAAY;AACZ,eAAO,MAAM,uCAAuC,EAAE,GAMrD,CAAC"}
@@ -14,6 +14,7 @@ export declare const LAYOUT_HORIZONTAL_RANK = 2;
14
14
  export declare const LAYOUT_STEPPER_RANK = 3;
15
15
  export declare const LAYOUT2COLUMNS_RANK = 2;
16
16
  export declare const LAYOUT_FORM_GRID_RANK = 2;
17
+ export declare const MULTICOLUMN_DROPDOWN_CONTROL_RANK = 5;
17
18
  export declare const INVISIBLE_CONTROL_RANK = 5;
18
19
  export declare const DIVIDER_CONTROL_RANK = 5;
19
20
  //# sourceMappingURL=RenderersRanks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RenderersRanks.d.ts","sourceRoot":"","sources":["../../../../src/jsonforms/renderers/RenderersRanks.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAC5C,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,oBAAoB,IAAI,CAAC"}
1
+ {"version":3,"file":"RenderersRanks.d.ts","sourceRoot":"","sources":["../../../../src/jsonforms/renderers/RenderersRanks.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAC5C,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,eAAO,MAAM,iCAAiC,IAAI,CAAC;AACnD,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,oBAAoB,IAAI,CAAC"}
@@ -74,6 +74,60 @@ export type ConnectedRenderersOptions = {
74
74
  */
75
75
  labelRowFormatter?: (any: any) => string;
76
76
  };
77
+ /**
78
+ * Configuration options for the multicolumn-dropdown renderer.
79
+ *
80
+ * Shares `allOptionsResourceName` with {@link ConnectedRenderersOptions} so the same
81
+ * reqrep/dataserver resource name field is reused. The renderer is activated when
82
+ * `columnDefinitions` is present (higher rank than the combobox renderer).
83
+ *
84
+ * @public
85
+ */
86
+ export type MulticolumnDropdownRendererOptions = Pick<ConnectedRenderersOptions, 'allOptionsResourceName' | 'valueField' | 'labelField'> & {
87
+ /**
88
+ * Field key(s) used to filter rows when the user types in the search box.
89
+ * Pass an array together with `advancedSearchReq: true` for multi-key search on GPAL ReqReps.
90
+ * @public
91
+ */
92
+ searchKey?: string | string[];
93
+ /**
94
+ * AG Grid column definitions for the dropdown grid.
95
+ * Compatible with ColDef from @ag-grid-community/core.
96
+ * This field is also the tester key that activates this renderer.
97
+ * @public
98
+ */
99
+ columnDefinitions: Record<string, unknown>[];
100
+ /**
101
+ * Additional request params merged into every reqrep call.
102
+ * @public
103
+ */
104
+ request?: Record<string, unknown>;
105
+ /**
106
+ * Base Groovy criteria string always applied to requests (combined with search criteria via AND).
107
+ * @public
108
+ */
109
+ baseCriteria?: string;
110
+ /**
111
+ * Set to `true` for GPAL ReqReps to enable multi-key Groovy expression search.
112
+ * Do not use for custom ReqReps that don't support groovy expressions.
113
+ * @public
114
+ */
115
+ advancedSearchReq?: boolean;
116
+ /**
117
+ * Position of the dropdown panel relative to the control.
118
+ * - `'bottom-right'` – default; opens below and aligns to the right edge
119
+ * - `'bottom-left'` – opens below and extends to the left
120
+ * - `'top-right'` – opens above and aligns to the right edge
121
+ * - `'top-left'` – opens above and extends to the left
122
+ * @public
123
+ */
124
+ dropdownPlacement?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
125
+ /**
126
+ * Explicit pixel width for the dropdown panel. Inherits control width when omitted.
127
+ * @public
128
+ */
129
+ dropdownWidth?: number;
130
+ };
77
131
  /**
78
132
  * Resolver for dynamic per-row UI schema in array/bulk-insert mode.
79
133
  * Receives the row index, that row's data, and the full form data.
@@ -165,6 +219,37 @@ export type ArrayRendererOptions = {
165
219
  * ```
166
220
  */
167
221
  canDelete?: (item: any) => boolean;
222
+ /**
223
+ * Controls whether the add button is shown for the array.
224
+ * If a boolean: `false` hides the add button, `true` or omitted shows it.
225
+ * If a function: receives the current array and should return `true` to show the add button.
226
+ * @public
227
+ *
228
+ * @example
229
+ * ```ts
230
+ * {
231
+ * type: 'Control',
232
+ * scope: '#/properties/array',
233
+ * options: <ArrayRendererOptions>{
234
+ * canAdd: false, // hide add button entirely
235
+ * childUiSchema: { ... }
236
+ * }
237
+ * }
238
+ * ```
239
+ *
240
+ * @example
241
+ * ```ts
242
+ * {
243
+ * type: 'Control',
244
+ * scope: '#/properties/array',
245
+ * options: <ArrayRendererOptions>{
246
+ * canAdd: (array) => (array?.length ?? 0) < 10, // max 10 items
247
+ * childUiSchema: { ... }
248
+ * }
249
+ * }
250
+ * ```
251
+ */
252
+ canAdd?: boolean | ((array: any[]) => boolean);
168
253
  /**
169
254
  * When true, renders column labels once as a header row at the top and data rows
170
255
  * as a compact, table-like grid. Labels inside each row's controls are suppressed.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/dist/esm/form.js CHANGED
@@ -22,6 +22,7 @@ import { LayoutHorizontalEntry } from './jsonforms/renderers/LayoutHorizontalRen
22
22
  import { LayoutRendererEntry } from './jsonforms/renderers/LayoutRenderer';
23
23
  import { LayoutStepperRendererEntry } from './jsonforms/renderers/LayoutStepperRenderer';
24
24
  import { LayoutVertical2ColumnsEntry } from './jsonforms/renderers/LayoutVertical2ColumnsRenderer';
25
+ import { MulticolumnDropdownControlRendererEntry } from './jsonforms/renderers/MulticolumnDropdownControlRenderer';
25
26
  import { NumberControlRendererEntry } from './jsonforms/renderers/NumberControlRenderer';
26
27
  import { StringArrayEntry } from './jsonforms/renderers/StringArrayControlRenderer';
27
28
  import { StringControlRendererTemplate } from './jsonforms/renderers/StringControlRenderer';
@@ -63,6 +64,7 @@ export const renderers = [
63
64
  DateControlRendererEntry,
64
65
  InvisibleControlEntry,
65
66
  DividerControlRenderer,
67
+ MulticolumnDropdownControlRendererEntry,
66
68
  ];
67
69
  /**
68
70
  * Foundation form component for automatically generated forms based on json schema
package/dist/esm/index.js CHANGED
@@ -2,5 +2,6 @@ export * from './filters';
2
2
  export * from './form';
3
3
  export * from './form.styles';
4
4
  export * from './form.template';
5
+ export { MulticolumnDropdownControlRendererEntry, MulticolumnDropdownControlRendererTemplate, } from './jsonforms/renderers/MulticolumnDropdownControlRenderer';
5
6
  export * from './types';
6
7
  export * from './utils';
@@ -55,6 +55,17 @@ const isDeleteButtonHidden = (ctx) => {
55
55
  const controlData = formData[ctx.parent.control.path] && formData[ctx.parent.control.path][ctx.index];
56
56
  return !canDeleteFn(controlData);
57
57
  };
58
+ const isAddButtonHidden = (host) => {
59
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
60
+ const canAddOpt = (_c = (_b = (_a = host.control) === null || _a === void 0 ? void 0 : _a.uischema) === null || _b === void 0 ? void 0 : _b.options) === null || _c === void 0 ? void 0 : _c.canAdd;
61
+ if (canAddOpt === undefined)
62
+ return false;
63
+ if (typeof canAddOpt === 'boolean')
64
+ return !canAddOpt;
65
+ const formData = (_f = (_e = (_d = host.form) === null || _d === void 0 ? void 0 : _d.jsonforms) === null || _e === void 0 ? void 0 : _e.core) === null || _f === void 0 ? void 0 : _f.data;
66
+ const array = (_j = (formData && ((_g = host.control) === null || _g === void 0 ? void 0 : _g.path) ? formData[host.control.path] : (_h = host.control) === null || _h === void 0 ? void 0 : _h.data)) !== null && _j !== void 0 ? _j : [];
67
+ return !canAddOpt(Array.isArray(array) ? array : []);
68
+ };
58
69
  const getRowStatus = (ctx) => {
59
70
  var _a;
60
71
  const statuses = (_a = ctx.parent.form.jsonforms) === null || _a === void 0 ? void 0 : _a.rowSubmitStatuses;
@@ -162,6 +173,7 @@ export const ArrayListWrapperRendererTemplate = (prefix = 'zero') => html `
162
173
  </div>
163
174
  `, { positioning: true })}
164
175
  <${prefix}-button
176
+ ?hidden=${(x) => isAddButtonHidden(x)}
165
177
  appearance="lightweight"
166
178
  class="item-control-btn"
167
179
  data-test-id=${(x) => `${x.control.path}-add-item`}
@@ -0,0 +1,83 @@
1
+ import { mapStateToControlProps, rankWith } from '@jsonforms/core';
2
+ import { html } from '@microsoft/fast-element';
3
+ import { optionIs } from '../testers/optionIs';
4
+ import { MULTICOLUMN_DROPDOWN_CONTROL_RANK } from './RenderersRanks';
5
+ const getOptions = (x) => x.control.uischema.options;
6
+ /**
7
+ * @beta
8
+ * A JSON Forms renderer that uses the multicolumn-dropdown component.
9
+ *
10
+ * Activated when the uischema element has `columnDefinitions` set.
11
+ * Takes precedence over `ConnectedSelectControlRendererEntry` due to its higher rank.
12
+ *
13
+ * Options are typed via {@link MulticolumnDropdownRendererOptions}.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * {
18
+ * type: 'Control',
19
+ * scope: '#/properties/INSTRUMENT_ID',
20
+ * label: 'Instrument',
21
+ * options: <MulticolumnDropdownRendererOptions>{
22
+ * allOptionsResourceName: 'ALL_INSTRUMENTS',
23
+ * valueField: 'INSTRUMENT_ID',
24
+ * labelField: 'NAME',
25
+ * searchKey: ['INSTRUMENT_ID', 'NAME'],
26
+ * columnDefinitions: [
27
+ * { field: 'INSTRUMENT_ID', headerName: 'ID' },
28
+ * { field: 'NAME', headerName: 'Name' },
29
+ * ],
30
+ * },
31
+ * }
32
+ * ```
33
+ */
34
+ export const MulticolumnDropdownControlRendererTemplate = (prefix = 'zero') => html `
35
+ <template>
36
+ <control-wrapper
37
+ :control=${(x) => x.control}
38
+ :jsonForms=${(x) => x.jsonforms}
39
+ :touched=${(x) => x.touched}
40
+ ?submitted=${(x) => x.submitted}
41
+ prefix="${prefix}"
42
+ >
43
+ <${prefix}-multicolumn-dropdown
44
+ style="width: 100%;"
45
+ resource-name=${(x) => getOptions(x).allOptionsResourceName}
46
+ value-key=${(x) => getOptions(x).valueField}
47
+ label-key=${(x) => getOptions(x).labelField}
48
+ ?disabled=${(x) => !x.control.enabled}
49
+ ?dropdown-above=${(x) => { var _a, _b; return (_b = (_a = getOptions(x).dropdownPlacement) === null || _a === void 0 ? void 0 : _a.startsWith('top')) !== null && _b !== void 0 ? _b : false; }}
50
+ ?dropdown-left=${(x) => { var _a, _b; return (_b = (_a = getOptions(x).dropdownPlacement) === null || _a === void 0 ? void 0 : _a.endsWith('left')) !== null && _b !== void 0 ? _b : false; }}
51
+ ?advanced-search-req=${(x) => !!getOptions(x).advancedSearchReq}
52
+ :searchKey=${(x) => getOptions(x).searchKey}
53
+ :request=${(x) => getOptions(x).request}
54
+ :columnDefinitions=${(x) => getOptions(x).columnDefinitions}
55
+ :baseCriteria=${(x) => getOptions(x).baseCriteria}
56
+ :dropdownWidth=${(x) => getOptions(x).dropdownWidth}
57
+ :value=${(x) => x.control.data}
58
+ id=${(x) => x.control.path}
59
+ data-test-id=${(x) => x.control.path}
60
+ @change=${(x, c) => {
61
+ var _a, _b;
62
+ const value = (_a = c.event.detail) !== null && _a !== void 0 ? _a : null;
63
+ // Guard against the feedback loop caused by the :value binding.
64
+ // MulticolumnDropdown's set value() always calls emitValue() (even when set
65
+ // programmatically), which fires a 'change' event that would otherwise trigger
66
+ // handleChange → form re-render → :value re-bind → set value() → loop.
67
+ if (value !== ((_b = x.control.data) !== null && _b !== void 0 ? _b : null)) {
68
+ x.control.handleChange(x.control.path, value);
69
+ x.onBlur();
70
+ }
71
+ }}
72
+ ></${prefix}-multicolumn-dropdown>
73
+ </control-wrapper>
74
+ </template>
75
+ `;
76
+ /** @beta */
77
+ export const MulticolumnDropdownControlRendererEntry = {
78
+ renderer: html `
79
+ ${(x) => MulticolumnDropdownControlRendererTemplate(x.prefix)}
80
+ `,
81
+ tester: rankWith(MULTICOLUMN_DROPDOWN_CONTROL_RANK, optionIs('columnDefinitions')),
82
+ mapper: mapStateToControlProps,
83
+ };
@@ -14,5 +14,6 @@ export const LAYOUT_HORIZONTAL_RANK = 2;
14
14
  export const LAYOUT_STEPPER_RANK = 3;
15
15
  export const LAYOUT2COLUMNS_RANK = 2;
16
16
  export const LAYOUT_FORM_GRID_RANK = 2;
17
+ export const MULTICOLUMN_DROPDOWN_CONTROL_RANK = 5;
17
18
  export const INVISIBLE_CONTROL_RANK = 5;
18
19
  export const DIVIDER_CONTROL_RANK = 5;
@@ -201,7 +201,7 @@
201
201
  },
202
202
  {
203
203
  "kind": "Content",
204
- "text": ";\n addLabel?: string;\n deleteLabel?: string;\n border?: boolean;\n canDelete?: (item: any) => boolean;\n gridView?: boolean;\n}"
204
+ "text": ";\n addLabel?: string;\n deleteLabel?: string;\n border?: boolean;\n canDelete?: (item: any) => boolean;\n canAdd?: boolean | ((array: any[]) => boolean);\n gridView?: boolean;\n}"
205
205
  },
206
206
  {
207
207
  "kind": "Content",
@@ -2522,6 +2522,146 @@
2522
2522
  ],
2523
2523
  "name": "mapCsvToSchema"
2524
2524
  },
2525
+ {
2526
+ "kind": "Variable",
2527
+ "canonicalReference": "@genesislcap/foundation-forms!MulticolumnDropdownControlRendererEntry:var",
2528
+ "docComment": "/**\n * @beta\n */\n",
2529
+ "excerptTokens": [
2530
+ {
2531
+ "kind": "Content",
2532
+ "text": "MulticolumnDropdownControlRendererEntry: "
2533
+ },
2534
+ {
2535
+ "kind": "Content",
2536
+ "text": "any"
2537
+ }
2538
+ ],
2539
+ "fileUrlPath": "src/jsonforms/renderers/MulticolumnDropdownControlRenderer.ts",
2540
+ "isReadonly": true,
2541
+ "releaseTag": "Beta",
2542
+ "name": "MulticolumnDropdownControlRendererEntry",
2543
+ "variableTypeTokenRange": {
2544
+ "startIndex": 1,
2545
+ "endIndex": 2
2546
+ }
2547
+ },
2548
+ {
2549
+ "kind": "Function",
2550
+ "canonicalReference": "@genesislcap/foundation-forms!MulticolumnDropdownControlRendererTemplate:function(1)",
2551
+ "docComment": "/**\n * A JSON Forms renderer that uses the multicolumn-dropdown component.\n *\n * Activated when the uischema element has `columnDefinitions` set. Takes precedence over `ConnectedSelectControlRendererEntry` due to its higher rank.\n *\n * Options are typed via {@link MulticolumnDropdownRendererOptions}.\n *\n * @example\n * ```ts\n * {\n * type: 'Control',\n * scope: '#/properties/INSTRUMENT_ID',\n * label: 'Instrument',\n * options: <MulticolumnDropdownRendererOptions>{\n * allOptionsResourceName: 'ALL_INSTRUMENTS',\n * valueField: 'INSTRUMENT_ID',\n * labelField: 'NAME',\n * searchKey: ['INSTRUMENT_ID', 'NAME'],\n * columnDefinitions: [\n * { field: 'INSTRUMENT_ID', headerName: 'ID' },\n * { field: 'NAME', headerName: 'Name' },\n * ],\n * },\n * }\n * ```\n *\n * @beta\n */\n",
2552
+ "excerptTokens": [
2553
+ {
2554
+ "kind": "Content",
2555
+ "text": "MulticolumnDropdownControlRendererTemplate: (prefix?: "
2556
+ },
2557
+ {
2558
+ "kind": "Content",
2559
+ "text": "string"
2560
+ },
2561
+ {
2562
+ "kind": "Content",
2563
+ "text": ") => "
2564
+ },
2565
+ {
2566
+ "kind": "Content",
2567
+ "text": "import(\"@microsoft/fast-element\")."
2568
+ },
2569
+ {
2570
+ "kind": "Reference",
2571
+ "text": "ViewTemplate",
2572
+ "canonicalReference": "@microsoft/fast-element!ViewTemplate:class"
2573
+ },
2574
+ {
2575
+ "kind": "Content",
2576
+ "text": "<"
2577
+ },
2578
+ {
2579
+ "kind": "Reference",
2580
+ "text": "DispatchRenderer",
2581
+ "canonicalReference": "@genesislcap/foundation-forms!~DispatchRenderer:class"
2582
+ },
2583
+ {
2584
+ "kind": "Content",
2585
+ "text": ", any>"
2586
+ }
2587
+ ],
2588
+ "fileUrlPath": "src/jsonforms/renderers/MulticolumnDropdownControlRenderer.ts",
2589
+ "returnTypeTokenRange": {
2590
+ "startIndex": 3,
2591
+ "endIndex": 8
2592
+ },
2593
+ "releaseTag": "Beta",
2594
+ "overloadIndex": 1,
2595
+ "parameters": [
2596
+ {
2597
+ "parameterName": "prefix",
2598
+ "parameterTypeTokenRange": {
2599
+ "startIndex": 1,
2600
+ "endIndex": 2
2601
+ },
2602
+ "isOptional": true
2603
+ }
2604
+ ],
2605
+ "name": "MulticolumnDropdownControlRendererTemplate"
2606
+ },
2607
+ {
2608
+ "kind": "TypeAlias",
2609
+ "canonicalReference": "@genesislcap/foundation-forms!MulticolumnDropdownRendererOptions:type",
2610
+ "docComment": "/**\n * Configuration options for the multicolumn-dropdown renderer.\n *\n * Shares `allOptionsResourceName` with {@link ConnectedRenderersOptions} so the same reqrep/dataserver resource name field is reused. The renderer is activated when `columnDefinitions` is present (higher rank than the combobox renderer).\n *\n * @public\n */\n",
2611
+ "excerptTokens": [
2612
+ {
2613
+ "kind": "Content",
2614
+ "text": "export type MulticolumnDropdownRendererOptions = "
2615
+ },
2616
+ {
2617
+ "kind": "Reference",
2618
+ "text": "Pick",
2619
+ "canonicalReference": "!Pick:type"
2620
+ },
2621
+ {
2622
+ "kind": "Content",
2623
+ "text": "<"
2624
+ },
2625
+ {
2626
+ "kind": "Reference",
2627
+ "text": "ConnectedRenderersOptions",
2628
+ "canonicalReference": "@genesislcap/foundation-forms!ConnectedRenderersOptions:type"
2629
+ },
2630
+ {
2631
+ "kind": "Content",
2632
+ "text": ", 'allOptionsResourceName' | 'valueField' | 'labelField'> & {\n searchKey?: string | string[];\n columnDefinitions: "
2633
+ },
2634
+ {
2635
+ "kind": "Reference",
2636
+ "text": "Record",
2637
+ "canonicalReference": "!Record:type"
2638
+ },
2639
+ {
2640
+ "kind": "Content",
2641
+ "text": "<string, unknown>[];\n request?: "
2642
+ },
2643
+ {
2644
+ "kind": "Reference",
2645
+ "text": "Record",
2646
+ "canonicalReference": "!Record:type"
2647
+ },
2648
+ {
2649
+ "kind": "Content",
2650
+ "text": "<string, unknown>;\n baseCriteria?: string;\n advancedSearchReq?: boolean;\n dropdownPlacement?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';\n dropdownWidth?: number;\n}"
2651
+ },
2652
+ {
2653
+ "kind": "Content",
2654
+ "text": ";"
2655
+ }
2656
+ ],
2657
+ "fileUrlPath": "src/types.ts",
2658
+ "releaseTag": "Public",
2659
+ "name": "MulticolumnDropdownRendererOptions",
2660
+ "typeTokenRange": {
2661
+ "startIndex": 1,
2662
+ "endIndex": 9
2663
+ }
2664
+ },
2525
2665
  {
2526
2666
  "kind": "Function",
2527
2667
  "canonicalReference": "@genesislcap/foundation-forms!mustMatch:function(1)",
@@ -108,6 +108,37 @@ export declare type ArrayRendererOptions = {
108
108
  * ```
109
109
  */
110
110
  canDelete?: (item: any) => boolean;
111
+ /**
112
+ * Controls whether the add button is shown for the array.
113
+ * If a boolean: `false` hides the add button, `true` or omitted shows it.
114
+ * If a function: receives the current array and should return `true` to show the add button.
115
+ * @public
116
+ *
117
+ * @example
118
+ * ```ts
119
+ * {
120
+ * type: 'Control',
121
+ * scope: '#/properties/array',
122
+ * options: <ArrayRendererOptions>{
123
+ * canAdd: false, // hide add button entirely
124
+ * childUiSchema: { ... }
125
+ * }
126
+ * }
127
+ * ```
128
+ *
129
+ * @example
130
+ * ```ts
131
+ * {
132
+ * type: 'Control',
133
+ * scope: '#/properties/array',
134
+ * options: <ArrayRendererOptions>{
135
+ * canAdd: (array) => (array?.length ?? 0) < 10, // max 10 items
136
+ * childUiSchema: { ... }
137
+ * }
138
+ * }
139
+ * ```
140
+ */
141
+ canAdd?: boolean | ((array: any[]) => boolean);
111
142
  /**
112
143
  * When true, renders column labels once as a header row at the top and data rows
113
144
  * as a compact, table-like grid. Labels inside each row's controls are suppressed.
@@ -1640,6 +1671,94 @@ export declare const logger: Logger;
1640
1671
  */
1641
1672
  export declare function mapCsvToSchema(csvRows: Record<string, string>[], schema: JSONSchema7 | undefined, uiSchema?: UiSchema): CsvMappingResult;
1642
1673
 
1674
+ /** @beta */
1675
+ export declare const MulticolumnDropdownControlRendererEntry: any;
1676
+
1677
+ /**
1678
+ * @beta
1679
+ * A JSON Forms renderer that uses the multicolumn-dropdown component.
1680
+ *
1681
+ * Activated when the uischema element has `columnDefinitions` set.
1682
+ * Takes precedence over `ConnectedSelectControlRendererEntry` due to its higher rank.
1683
+ *
1684
+ * Options are typed via {@link MulticolumnDropdownRendererOptions}.
1685
+ *
1686
+ * @example
1687
+ * ```ts
1688
+ * {
1689
+ * type: 'Control',
1690
+ * scope: '#/properties/INSTRUMENT_ID',
1691
+ * label: 'Instrument',
1692
+ * options: <MulticolumnDropdownRendererOptions>{
1693
+ * allOptionsResourceName: 'ALL_INSTRUMENTS',
1694
+ * valueField: 'INSTRUMENT_ID',
1695
+ * labelField: 'NAME',
1696
+ * searchKey: ['INSTRUMENT_ID', 'NAME'],
1697
+ * columnDefinitions: [
1698
+ * { field: 'INSTRUMENT_ID', headerName: 'ID' },
1699
+ * { field: 'NAME', headerName: 'Name' },
1700
+ * ],
1701
+ * },
1702
+ * }
1703
+ * ```
1704
+ */
1705
+ export declare const MulticolumnDropdownControlRendererTemplate: (prefix?: string) => ViewTemplate<DispatchRenderer, any>;
1706
+
1707
+ /**
1708
+ * Configuration options for the multicolumn-dropdown renderer.
1709
+ *
1710
+ * Shares `allOptionsResourceName` with {@link ConnectedRenderersOptions} so the same
1711
+ * reqrep/dataserver resource name field is reused. The renderer is activated when
1712
+ * `columnDefinitions` is present (higher rank than the combobox renderer).
1713
+ *
1714
+ * @public
1715
+ */
1716
+ export declare type MulticolumnDropdownRendererOptions = Pick<ConnectedRenderersOptions, 'allOptionsResourceName' | 'valueField' | 'labelField'> & {
1717
+ /**
1718
+ * Field key(s) used to filter rows when the user types in the search box.
1719
+ * Pass an array together with `advancedSearchReq: true` for multi-key search on GPAL ReqReps.
1720
+ * @public
1721
+ */
1722
+ searchKey?: string | string[];
1723
+ /**
1724
+ * AG Grid column definitions for the dropdown grid.
1725
+ * Compatible with ColDef from @ag-grid-community/core.
1726
+ * This field is also the tester key that activates this renderer.
1727
+ * @public
1728
+ */
1729
+ columnDefinitions: Record<string, unknown>[];
1730
+ /**
1731
+ * Additional request params merged into every reqrep call.
1732
+ * @public
1733
+ */
1734
+ request?: Record<string, unknown>;
1735
+ /**
1736
+ * Base Groovy criteria string always applied to requests (combined with search criteria via AND).
1737
+ * @public
1738
+ */
1739
+ baseCriteria?: string;
1740
+ /**
1741
+ * Set to `true` for GPAL ReqReps to enable multi-key Groovy expression search.
1742
+ * Do not use for custom ReqReps that don't support groovy expressions.
1743
+ * @public
1744
+ */
1745
+ advancedSearchReq?: boolean;
1746
+ /**
1747
+ * Position of the dropdown panel relative to the control.
1748
+ * - `'bottom-right'` – default; opens below and aligns to the right edge
1749
+ * - `'bottom-left'` – opens below and extends to the left
1750
+ * - `'top-right'` – opens above and aligns to the right edge
1751
+ * - `'top-left'` – opens above and extends to the left
1752
+ * @public
1753
+ */
1754
+ dropdownPlacement?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
1755
+ /**
1756
+ * Explicit pixel width for the dropdown panel. Inherits control width when omitted.
1757
+ * @public
1758
+ */
1759
+ dropdownWidth?: number;
1760
+ };
1761
+
1643
1762
  /**
1644
1763
  * Ensures the value of the current field (the one the validator is on) matches the one of the target field.
1645
1764
  * @param target - any other field
@@ -15,6 +15,7 @@ export type ArrayRendererOptions = {
15
15
  deleteLabel?: string;
16
16
  border?: boolean;
17
17
  canDelete?: (item: any) => boolean;
18
+ canAdd?: boolean | ((array: any[]) => boolean);
18
19
  gridView?: boolean;
19
20
  };
20
21
  ```
@@ -97,6 +97,21 @@ Computes a human-friendly anyOf error message for a given control path. Prefers
97
97
  Maps CSV rows to schema fields with case-insensitive matching. When uiSchema is provided, CSV headers can also match UI schema labels. Converts values to appropriate types based on schema definition.
98
98
 
99
99
 
100
+ </td></tr>
101
+ <tr><td>
102
+
103
+ [MulticolumnDropdownControlRendererTemplate(prefix)](./foundation-forms.multicolumndropdowncontrolrenderertemplate.md)
104
+
105
+
106
+ </td><td>
107
+
108
+ **_(BETA)_** A JSON Forms renderer that uses the multicolumn-dropdown component.
109
+
110
+ Activated when the uischema element has `columnDefinitions` set. Takes precedence over `ConnectedSelectControlRendererEntry` due to its higher rank.
111
+
112
+ Options are typed via [MulticolumnDropdownRendererOptions](./foundation-forms.multicolumndropdownrendereroptions.md)<!-- -->.
113
+
114
+
100
115
  </td></tr>
101
116
  <tr><td>
102
117
 
@@ -182,6 +197,17 @@ Description
182
197
  Set of default renderers used by the foundation-filters.
183
198
 
184
199
 
200
+ </td></tr>
201
+ <tr><td>
202
+
203
+ [MulticolumnDropdownControlRendererEntry](./foundation-forms.multicolumndropdowncontrolrendererentry.md)
204
+
205
+
206
+ </td><td>
207
+
208
+ **_(BETA)_**
209
+
210
+
185
211
  </td></tr>
186
212
  <tr><td>
187
213
 
@@ -340,6 +366,19 @@ Orientation options available for stepper renderer.
340
366
  Available aligment for labels.
341
367
 
342
368
 
369
+ </td></tr>
370
+ <tr><td>
371
+
372
+ [MulticolumnDropdownRendererOptions](./foundation-forms.multicolumndropdownrendereroptions.md)
373
+
374
+
375
+ </td><td>
376
+
377
+ Configuration options for the multicolumn-dropdown renderer.
378
+
379
+ Shares `allOptionsResourceName` with [ConnectedRenderersOptions](./foundation-forms.connectedrenderersoptions.md) so the same reqrep/dataserver resource name field is reused. The renderer is activated when `columnDefinitions` is present (higher rank than the combobox renderer).
380
+
381
+
343
382
  </td></tr>
344
383
  <tr><td>
345
384
 
@@ -0,0 +1,15 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-forms](./foundation-forms.md) &gt; [MulticolumnDropdownControlRendererEntry](./foundation-forms.multicolumndropdowncontrolrendererentry.md)
4
+
5
+ ## MulticolumnDropdownControlRendererEntry variable
6
+
7
+ > This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
8
+ >
9
+
10
+
11
+ **Signature:**
12
+
13
+ ```typescript
14
+ MulticolumnDropdownControlRendererEntry: any
15
+ ```
@@ -0,0 +1,82 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-forms](./foundation-forms.md) &gt; [MulticolumnDropdownControlRendererTemplate](./foundation-forms.multicolumndropdowncontrolrenderertemplate.md)
4
+
5
+ ## MulticolumnDropdownControlRendererTemplate() function
6
+
7
+ > This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
8
+ >
9
+
10
+ A JSON Forms renderer that uses the multicolumn-dropdown component.
11
+
12
+ Activated when the uischema element has `columnDefinitions` set. Takes precedence over `ConnectedSelectControlRendererEntry` due to its higher rank.
13
+
14
+ Options are typed via [MulticolumnDropdownRendererOptions](./foundation-forms.multicolumndropdownrendereroptions.md)<!-- -->.
15
+
16
+ **Signature:**
17
+
18
+ ```typescript
19
+ MulticolumnDropdownControlRendererTemplate: (prefix?: string) => import("@microsoft/fast-element").ViewTemplate<DispatchRenderer, any>
20
+ ```
21
+
22
+ ## Parameters
23
+
24
+ <table><thead><tr><th>
25
+
26
+ Parameter
27
+
28
+
29
+ </th><th>
30
+
31
+ Type
32
+
33
+
34
+ </th><th>
35
+
36
+ Description
37
+
38
+
39
+ </th></tr></thead>
40
+ <tbody><tr><td>
41
+
42
+ prefix
43
+
44
+
45
+ </td><td>
46
+
47
+ string
48
+
49
+
50
+ </td><td>
51
+
52
+ _(Optional)_
53
+
54
+
55
+ </td></tr>
56
+ </tbody></table>
57
+
58
+ **Returns:**
59
+
60
+ import("@microsoft/fast-element").ViewTemplate&lt;DispatchRenderer, any&gt;
61
+
62
+ ## Example
63
+
64
+
65
+ ```ts
66
+ {
67
+ type: 'Control',
68
+ scope: '#/properties/INSTRUMENT_ID',
69
+ label: 'Instrument',
70
+ options: <MulticolumnDropdownRendererOptions>{
71
+ allOptionsResourceName: 'ALL_INSTRUMENTS',
72
+ valueField: 'INSTRUMENT_ID',
73
+ labelField: 'NAME',
74
+ searchKey: ['INSTRUMENT_ID', 'NAME'],
75
+ columnDefinitions: [
76
+ { field: 'INSTRUMENT_ID', headerName: 'ID' },
77
+ { field: 'NAME', headerName: 'Name' },
78
+ ],
79
+ },
80
+ }
81
+ ```
82
+
@@ -0,0 +1,25 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-forms](./foundation-forms.md) &gt; [MulticolumnDropdownRendererOptions](./foundation-forms.multicolumndropdownrendereroptions.md)
4
+
5
+ ## MulticolumnDropdownRendererOptions type
6
+
7
+ Configuration options for the multicolumn-dropdown renderer.
8
+
9
+ Shares `allOptionsResourceName` with [ConnectedRenderersOptions](./foundation-forms.connectedrenderersoptions.md) so the same reqrep/dataserver resource name field is reused. The renderer is activated when `columnDefinitions` is present (higher rank than the combobox renderer).
10
+
11
+ **Signature:**
12
+
13
+ ```typescript
14
+ export type MulticolumnDropdownRendererOptions = Pick<ConnectedRenderersOptions, 'allOptionsResourceName' | 'valueField' | 'labelField'> & {
15
+ searchKey?: string | string[];
16
+ columnDefinitions: Record<string, unknown>[];
17
+ request?: Record<string, unknown>;
18
+ baseCriteria?: string;
19
+ advancedSearchReq?: boolean;
20
+ dropdownPlacement?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
21
+ dropdownWidth?: number;
22
+ };
23
+ ```
24
+ **References:** [ConnectedRenderersOptions](./foundation-forms.connectedrenderersoptions.md)
25
+
@@ -36,6 +36,7 @@ export type ArrayRendererOptions = {
36
36
  deleteLabel?: string;
37
37
  border?: boolean;
38
38
  canDelete?: (item: any) => boolean;
39
+ canAdd?: boolean | ((array: any[]) => boolean);
39
40
  gridView?: boolean;
40
41
  };
41
42
 
@@ -324,6 +325,25 @@ export const logger: Logger;
324
325
  // @public
325
326
  export function mapCsvToSchema(csvRows: Record<string, string>[], schema: JSONSchema7 | undefined, uiSchema?: UiSchema): CsvMappingResult;
326
327
 
328
+ // @beta (undocumented)
329
+ export const MulticolumnDropdownControlRendererEntry: any;
330
+
331
+ // Warning: (ae-forgotten-export) The symbol "DispatchRenderer" needs to be exported by the entry point index.d.ts
332
+ //
333
+ // @beta
334
+ export const MulticolumnDropdownControlRendererTemplate: (prefix?: string) => ViewTemplate<DispatchRenderer, any>;
335
+
336
+ // @public
337
+ export type MulticolumnDropdownRendererOptions = Pick<ConnectedRenderersOptions, 'allOptionsResourceName' | 'valueField' | 'labelField'> & {
338
+ searchKey?: string | string[];
339
+ columnDefinitions: Record<string, unknown>[];
340
+ request?: Record<string, unknown>;
341
+ baseCriteria?: string;
342
+ advancedSearchReq?: boolean;
343
+ dropdownPlacement?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
344
+ dropdownWidth?: number;
345
+ };
346
+
327
347
  // @public
328
348
  export const mustMatch: (target: string) => (data: any, path: any, label: any) => {
329
349
  instancePath: string;
@@ -413,8 +433,7 @@ export type UiSchemaOptions = StepperOrientationOptions | LabelPlacementOptions;
413
433
 
414
434
  // Warnings were encountered during analysis:
415
435
  //
416
- // src/types.ts:397:3 - (ae-forgotten-export) The symbol "Rule" needs to be exported by the entry point index.d.ts
417
- // src/types.ts:447:3 - (ae-forgotten-export) The symbol "DispatchRenderer" needs to be exported by the entry point index.d.ts
436
+ // src/types.ts:487:3 - (ae-forgotten-export) The symbol "Rule" needs to be exported by the entry point index.d.ts
418
437
 
419
438
  // (No @packageDocumentation comment for this package)
420
439
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/foundation-forms",
3
3
  "description": "Genesis Foundation Forms",
4
- "version": "14.403.0",
4
+ "version": "14.406.0",
5
5
  "sideEffects": false,
6
6
  "license": "SEE LICENSE IN license.txt",
7
7
  "main": "dist/esm/index.js",
@@ -50,23 +50,23 @@
50
50
  }
51
51
  },
52
52
  "devDependencies": {
53
- "@genesislcap/foundation-testing": "14.403.0",
54
- "@genesislcap/genx": "14.403.0",
55
- "@genesislcap/rollup-builder": "14.403.0",
56
- "@genesislcap/ts-builder": "14.403.0",
57
- "@genesislcap/uvu-playwright-builder": "14.403.0",
58
- "@genesislcap/vite-builder": "14.403.0",
59
- "@genesislcap/webpack-builder": "14.403.0",
53
+ "@genesislcap/foundation-testing": "14.406.0",
54
+ "@genesislcap/genx": "14.406.0",
55
+ "@genesislcap/rollup-builder": "14.406.0",
56
+ "@genesislcap/ts-builder": "14.406.0",
57
+ "@genesislcap/uvu-playwright-builder": "14.406.0",
58
+ "@genesislcap/vite-builder": "14.406.0",
59
+ "@genesislcap/webpack-builder": "14.406.0",
60
60
  "@types/json-schema": "^7.0.11",
61
61
  "@types/papaparse": "^5.3.14"
62
62
  },
63
63
  "dependencies": {
64
- "@genesislcap/foundation-comms": "14.403.0",
65
- "@genesislcap/foundation-criteria": "14.403.0",
66
- "@genesislcap/foundation-logger": "14.403.0",
67
- "@genesislcap/foundation-notifications": "14.403.0",
68
- "@genesislcap/foundation-ui": "14.403.0",
69
- "@genesislcap/foundation-utils": "14.403.0",
64
+ "@genesislcap/foundation-comms": "14.406.0",
65
+ "@genesislcap/foundation-criteria": "14.406.0",
66
+ "@genesislcap/foundation-logger": "14.406.0",
67
+ "@genesislcap/foundation-notifications": "14.406.0",
68
+ "@genesislcap/foundation-ui": "14.406.0",
69
+ "@genesislcap/foundation-utils": "14.406.0",
70
70
  "@json-schema-tools/dereferencer": "^1.6.1",
71
71
  "@jsonforms/core": "^3.2.1",
72
72
  "@microsoft/fast-components": "2.30.6",
@@ -88,5 +88,5 @@
88
88
  "access": "public"
89
89
  },
90
90
  "customElements": "dist/custom-elements.json",
91
- "gitHead": "9e1e2d8c0309a4b540c65de0ebf8acd44f4ce73b"
91
+ "gitHead": "69e2b4662605a6e5e60efe537b8871a7e0c00f44"
92
92
  }