@react-typed-forms/schemas 1.0.0-dev.22 → 1.0.0-dev.23

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,3 +1,3 @@
1
1
  {
2
- "nonCachedDurationMs": 3000.2550149969757
2
+ "nonCachedDurationMs": 3113.995449002832
3
3
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "../../packages/schemas": "../../packages/schemas:KYJHqX0/2s5p/GBg62Zng+f7Wt1p9D8KtzOYa1oAQKg=:",
2
+ "../../packages/schemas": "../../packages/schemas:eU7ssxS7Ev5KWQUiYd/2cCdUFVPgcpz19kqctNKmw5w=:",
3
3
  "/@ampproject/remapping/2.2.1": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
4
4
  "/@babel/code-frame/7.22.13": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
5
5
  "/@babel/compat-data/7.23.2": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==",
package/README.md CHANGED
@@ -95,9 +95,78 @@ A `SchemaField` is a JSON object which describes the definition of a field insid
95
95
 
96
96
  Each `SchemaField` can also be marked as a `collection` which means that it will be mapped to a JSON array of the defined `FieldType`.
97
97
 
98
- TODO - buildSchema, FieldOptions, extending FieldType
98
+ ### Defining fields
99
+
100
+ While you can define a `SchemaField` as plain JSON, e.g.
101
+ ```json
102
+ [
103
+ {
104
+ "type": "String",
105
+ "field": "firstName",
106
+ "displayName": "First Name"
107
+ },
108
+ {
109
+ "type": "String",
110
+ "field": "lastName",
111
+ "displayName": "Last Name",
112
+ "required": true
113
+ },
114
+ {
115
+ "type": "Int",
116
+ "field": "yearOfBirth",
117
+ "displayName": "Year of birth",
118
+ "defaultValue": 1980
119
+ }
120
+ ]
121
+ ```
122
+
123
+ However if you have existing types which you would like to define `SchemaField`s for the library contains a function called `buildSchema` a type safe way of generating fields for a type:
124
+
125
+ ```tsx
126
+ interface SimpleForm {
127
+ firstName: string;
128
+ lastName: string;
129
+ yearOfBirth: number;
130
+ }
131
+
132
+ const simpleSchema = buildSchema<SimpleForm>({
133
+ firstName: stringField("First Name"),
134
+ lastName: stringField("Last Name", { required: true }),
135
+ yearOfBirth: intField("Year of birth", { defaultValue: 1980 }),
136
+ });
137
+ ```
138
+
139
+ ### Field options
140
+
141
+ Often a field only has a set of allowed values, e.g. a enum. `SchemaField` allows this to be modeled by
142
+ providing an array of `FieldOption`:
143
+
144
+ <!-- AUTO-GENERATED-CONTENT:START (CODE:src=./src/types.ts&lines=37-41) -->
145
+ <!-- The below code snippet is automatically added from ./src/types.ts -->
146
+ ```ts
147
+ export interface FieldOption {
148
+ name: string;
149
+ value: any;
150
+ }
151
+ ```
152
+ <!-- AUTO-GENERATED-CONTENT:END -->
153
+
154
+ For example you could only allow certain last names:
155
+
156
+ ```ts
157
+ stringField('Last Name', {
158
+ required: true,
159
+ options:[
160
+ { name: "Smith", value: "smith" },
161
+ { name: "Jones", value: "jones" }
162
+ ]
163
+ });
164
+ ```
165
+
166
+ <img src="../../images/schemas-option.png">
99
167
 
100
168
  ### `ControlDefinition`
169
+
101
170
  A `ControlDefinition` is a JSON object which describes what should be rendered in a UI. Each `ControlDefinition` can be one of 4 distinct types:
102
171
 
103
172
  * `DataControlDefinition` - Points to a `SchemaField` in order to render a control for editing of data.
@@ -0,0 +1,7 @@
1
+ import { DataControlDefinition, DisplayControlDefinition, DynamicProperty, EntityExpression, FieldValueExpression, JsonataExpression } from "./types";
2
+ export declare function dataControl(field: string, title?: string | null, options?: Partial<DataControlDefinition>): DataControlDefinition;
3
+ export declare function textDisplayControl(text: string, options?: Partial<DisplayControlDefinition>): DisplayControlDefinition;
4
+ export declare function htmlDisplayControl(html: string, options?: Partial<DisplayControlDefinition>): DisplayControlDefinition;
5
+ export declare function visibility(expr: EntityExpression): DynamicProperty;
6
+ export declare function fieldEqExpr(field: string, value: any): FieldValueExpression;
7
+ export declare function jsonataExpr(expression: string): JsonataExpression;
package/lib/hooks.d.ts CHANGED
@@ -8,4 +8,5 @@ export declare function getOptionsForScalarField(field: SchemaField): FieldOptio
8
8
  export declare function createDefaultSchemaHooks(): SchemaHooks;
9
9
  export declare const defaultFormEditHooks: FormEditHooks;
10
10
  export declare function createFormEditHooks(schemaHooks: SchemaHooks): FormEditHooks;
11
+ export declare const emptyGroupDefinition: GroupedControlsDefinition;
11
12
  export declare function useControlDefinitionForSchema(sf: SchemaField[], definition?: GroupedControlsDefinition): GroupedControlsDefinition;
package/lib/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from "./types";
2
2
  export * from "./schemaBuilder";
3
+ export * from "./controlBuilder";
3
4
  export * from "./controlRender";
4
5
  export * from "./hooks";
5
6
  export * from "./util";
package/lib/index.js CHANGED
@@ -9,64 +9,6 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
9
9
  var jsonata__default = /*#__PURE__*/_interopDefaultLegacy(jsonata);
10
10
  var clsx__default = /*#__PURE__*/_interopDefaultLegacy(clsx);
11
11
 
12
- function _extends() {
13
- _extends = Object.assign ? Object.assign.bind() : function (target) {
14
- for (var i = 1; i < arguments.length; i++) {
15
- var source = arguments[i];
16
- for (var key in source) {
17
- if (Object.prototype.hasOwnProperty.call(source, key)) {
18
- target[key] = source[key];
19
- }
20
- }
21
- }
22
- return target;
23
- };
24
- return _extends.apply(this, arguments);
25
- }
26
- function _objectWithoutPropertiesLoose(source, excluded) {
27
- if (source == null) return {};
28
- var target = {};
29
- var sourceKeys = Object.keys(source);
30
- var key, i;
31
- for (i = 0; i < sourceKeys.length; i++) {
32
- key = sourceKeys[i];
33
- if (excluded.indexOf(key) >= 0) continue;
34
- target[key] = source[key];
35
- }
36
- return target;
37
- }
38
- function _unsupportedIterableToArray(o, minLen) {
39
- if (!o) return;
40
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
41
- var n = Object.prototype.toString.call(o).slice(8, -1);
42
- if (n === "Object" && o.constructor) n = o.constructor.name;
43
- if (n === "Map" || n === "Set") return Array.from(o);
44
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
45
- }
46
- function _arrayLikeToArray(arr, len) {
47
- if (len == null || len > arr.length) len = arr.length;
48
- for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
49
- return arr2;
50
- }
51
- function _createForOfIteratorHelperLoose(o, allowArrayLike) {
52
- var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
53
- if (it) return (it = it.call(o)).next.bind(it);
54
- if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
55
- if (it) o = it;
56
- var i = 0;
57
- return function () {
58
- if (i >= o.length) return {
59
- done: true
60
- };
61
- return {
62
- done: false,
63
- value: o[i++]
64
- };
65
- };
66
- }
67
- throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
68
- }
69
-
70
12
  exports.FieldType = void 0;
71
13
  (function (FieldType) {
72
14
  FieldType["String"] = "String";
@@ -179,27 +121,66 @@ function visitControlDefinition(x, visitor, defaultValue) {
179
121
  return defaultValue(x);
180
122
  }
181
123
  }
182
- function dataControl(field, options) {
183
- return _extends({
184
- type: exports.ControlDefinitionType.Data,
185
- field: field
186
- }, options);
124
+ function isGridRenderer(options) {
125
+ return options.type === exports.GroupRenderType.Grid;
187
126
  }
188
- function fieldValueExpr(field, value) {
189
- return {
190
- type: exports.ExpressionType.FieldValue,
191
- field: field,
192
- value: value
127
+
128
+ function _extends() {
129
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
130
+ for (var i = 1; i < arguments.length; i++) {
131
+ var source = arguments[i];
132
+ for (var key in source) {
133
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
134
+ target[key] = source[key];
135
+ }
136
+ }
137
+ }
138
+ return target;
193
139
  };
140
+ return _extends.apply(this, arguments);
194
141
  }
195
- function visibility(expr) {
196
- return {
197
- type: exports.DynamicPropertyType.Visible,
198
- expr: expr
199
- };
142
+ function _objectWithoutPropertiesLoose(source, excluded) {
143
+ if (source == null) return {};
144
+ var target = {};
145
+ var sourceKeys = Object.keys(source);
146
+ var key, i;
147
+ for (i = 0; i < sourceKeys.length; i++) {
148
+ key = sourceKeys[i];
149
+ if (excluded.indexOf(key) >= 0) continue;
150
+ target[key] = source[key];
151
+ }
152
+ return target;
200
153
  }
201
- function isGridRenderer(options) {
202
- return options.type === exports.GroupRenderType.Grid;
154
+ function _unsupportedIterableToArray(o, minLen) {
155
+ if (!o) return;
156
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
157
+ var n = Object.prototype.toString.call(o).slice(8, -1);
158
+ if (n === "Object" && o.constructor) n = o.constructor.name;
159
+ if (n === "Map" || n === "Set") return Array.from(o);
160
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
161
+ }
162
+ function _arrayLikeToArray(arr, len) {
163
+ if (len == null || len > arr.length) len = arr.length;
164
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
165
+ return arr2;
166
+ }
167
+ function _createForOfIteratorHelperLoose(o, allowArrayLike) {
168
+ var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
169
+ if (it) return (it = it.call(o)).next.bind(it);
170
+ if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
171
+ if (it) o = it;
172
+ var i = 0;
173
+ return function () {
174
+ if (i >= o.length) return {
175
+ done: true
176
+ };
177
+ return {
178
+ done: false,
179
+ value: o[i++]
180
+ };
181
+ };
182
+ }
183
+ throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
203
184
  }
204
185
 
205
186
  function buildSchema(def) {
@@ -276,6 +257,51 @@ function defaultCompoundField(field, displayName, collection) {
276
257
  };
277
258
  }
278
259
 
260
+ function dataControl(field, title, options) {
261
+ return _extends({
262
+ type: exports.ControlDefinitionType.Data,
263
+ field: field,
264
+ title: title
265
+ }, options);
266
+ }
267
+ function textDisplayControl(text, options) {
268
+ return _extends({
269
+ type: exports.ControlDefinitionType.Display,
270
+ displayData: {
271
+ type: exports.DisplayDataType.Text,
272
+ text: text
273
+ }
274
+ }, options);
275
+ }
276
+ function htmlDisplayControl(html, options) {
277
+ return _extends({
278
+ type: exports.ControlDefinitionType.Display,
279
+ displayData: {
280
+ type: exports.DisplayDataType.Html,
281
+ html: html
282
+ }
283
+ }, options);
284
+ }
285
+ function visibility(expr) {
286
+ return {
287
+ type: exports.DynamicPropertyType.Visible,
288
+ expr: expr
289
+ };
290
+ }
291
+ function fieldEqExpr(field, value) {
292
+ return {
293
+ type: exports.ExpressionType.FieldValue,
294
+ field: field,
295
+ value: value
296
+ };
297
+ }
298
+ function jsonataExpr(expression) {
299
+ return {
300
+ type: exports.ExpressionType.Jsonata,
301
+ expression: expression
302
+ };
303
+ }
304
+
279
305
  function applyDefaultValues(v, fields) {
280
306
  if (!v) return defaultValueForFields(fields);
281
307
  var applyValue = fields.filter(function (x) {
@@ -670,7 +696,7 @@ function createDefaultSchemaHooks() {
670
696
  } catch (e) {
671
697
  return Promise.reject(e);
672
698
  }
673
- });
699
+ }, true);
674
700
  return control;
675
701
  case exports.ExpressionType.FieldValue:
676
702
  var fvExpr = expr;
@@ -875,8 +901,8 @@ function useControlDefinitionForSchema(sf, definition) {
875
901
  definition = emptyGroupDefinition;
876
902
  }
877
903
  return React.useMemo(function () {
878
- return definition.children.length ? definition : _extends({}, definition, {
879
- children: addMissingControls(sf, [])
904
+ return _extends({}, definition, {
905
+ children: addMissingControls(sf, definition.children)
880
906
  });
881
907
  }, [sf, definition]);
882
908
  }
@@ -1554,16 +1580,18 @@ exports.defaultTailwindTheme = defaultTailwindTheme;
1554
1580
  exports.defaultValueForField = defaultValueForField;
1555
1581
  exports.defaultValueForFields = defaultValueForFields;
1556
1582
  exports.elementValueForField = elementValueForField;
1583
+ exports.emptyGroupDefinition = emptyGroupDefinition;
1557
1584
  exports.fieldDisplayName = fieldDisplayName;
1585
+ exports.fieldEqExpr = fieldEqExpr;
1558
1586
  exports.fieldForControl = fieldForControl;
1559
1587
  exports.fieldHasTag = fieldHasTag;
1560
- exports.fieldValueExpr = fieldValueExpr;
1561
1588
  exports.findCompoundField = findCompoundField;
1562
1589
  exports.findField = findField;
1563
1590
  exports.findScalarField = findScalarField;
1564
1591
  exports.getDefaultScalarControlProperties = getDefaultScalarControlProperties;
1565
1592
  exports.getOptionsForScalarField = getOptionsForScalarField;
1566
1593
  exports.hasOptions = hasOptions;
1594
+ exports.htmlDisplayControl = htmlDisplayControl;
1567
1595
  exports.intField = intField;
1568
1596
  exports.isActionControlsDefinition = isActionControlsDefinition;
1569
1597
  exports.isCompoundField = isCompoundField;
@@ -1574,11 +1602,13 @@ exports.isGridRenderer = isGridRenderer;
1574
1602
  exports.isGroupControl = isGroupControl;
1575
1603
  exports.isGroupControlsDefinition = isGroupControlsDefinition;
1576
1604
  exports.isScalarField = isScalarField;
1605
+ exports.jsonataExpr = jsonataExpr;
1577
1606
  exports.makeCompoundField = makeCompoundField;
1578
1607
  exports.makeScalarField = makeScalarField;
1579
1608
  exports.renderControl = renderControl;
1580
1609
  exports.stringField = stringField;
1581
1610
  exports.stringOptionsField = stringOptionsField;
1611
+ exports.textDisplayControl = textDisplayControl;
1582
1612
  exports.useControlDefinitionForSchema = useControlDefinitionForSchema;
1583
1613
  exports.useDefaultValue = useDefaultValue;
1584
1614
  exports.useIsControlVisible = useIsControlVisible;
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/types.ts","../src/schemaBuilder.ts","../src/util.ts","../src/controlRender.tsx","../src/hooks.tsx","../src/renderers.tsx","../src/tailwind.tsx"],"sourcesContent":["export interface SchemaField {\n type: string;\n field: string;\n displayName?: string | null;\n tags?: string[] | null;\n system?: boolean | null;\n collection?: boolean | null;\n onlyForTypes?: string[] | null;\n required?: boolean | null;\n defaultValue?: any;\n isTypeField?: boolean | null;\n searchable?: boolean | null;\n options?: FieldOption[] | null;\n validators?: SchemaValidator[] | null;\n}\n\nexport enum FieldType {\n String = \"String\",\n Bool = \"Bool\",\n Int = \"Int\",\n Date = \"Date\",\n DateTime = \"DateTime\",\n Double = \"Double\",\n EntityRef = \"EntityRef\",\n Compound = \"Compound\",\n AutoId = \"AutoId\",\n Image = \"Image\",\n Any = \"Any\",\n}\n\nexport interface EntityRefField extends SchemaField {\n type: FieldType.EntityRef;\n entityRefType: string;\n parentField: string;\n}\n\nexport interface FieldOption {\n name: string;\n value: any;\n}\n\nexport interface CompoundField extends SchemaField {\n type: FieldType.Compound;\n children: SchemaField[];\n treeChildren?: boolean;\n}\n\nexport type AnyControlDefinition =\n | DataControlDefinition\n | GroupedControlsDefinition\n | ActionControlDefinition\n | DisplayControlDefinition;\n\nexport interface ControlDefinition {\n type: string;\n title?: string | null;\n dynamic?: DynamicProperty[] | null;\n adornments?: ControlAdornment[] | null;\n}\n\nexport enum ControlDefinitionType {\n Data = \"Data\",\n Group = \"Group\",\n Display = \"Display\",\n Action = \"Action\",\n}\n\nexport interface DynamicProperty {\n type: string;\n expr: EntityExpression;\n}\n\nexport enum DynamicPropertyType {\n Visible = \"Visible\",\n DefaultValue = \"DefaultValue\",\n}\n\nexport interface EntityExpression {\n type: string;\n}\n\nexport enum ExpressionType {\n Jsonata = \"Jsonata\",\n FieldValue = \"FieldValue\",\n UserMatch = \"UserMatch\",\n}\n\nexport interface JsonataExpression extends EntityExpression {\n type: ExpressionType.Jsonata;\n expression: string;\n}\n\nexport interface FieldValueExpression extends EntityExpression {\n type: ExpressionType.FieldValue;\n field: string;\n value: any;\n}\n\nexport interface UserMatchExpression extends EntityExpression {\n type: ExpressionType.UserMatch;\n userMatch: string;\n}\n\nexport interface ControlAdornment {\n type: string;\n}\n\nexport enum AdornmentPlacement {\n ControlStart = \"ControlStart\",\n ControlEnd = \"ControlEnd\",\n LabelStart = \"LabelStart\",\n LabelEnd = \"LabelEnd\",\n}\n\nexport enum ControlAdornmentType {\n Tooltip = \"Tooltip\",\n Accordion = \"Accordion\",\n HelpText = \"HelpText\",\n}\n\nexport interface TooltipAdornment extends ControlAdornment {\n type: ControlAdornmentType.Tooltip;\n tooltip: string;\n}\n\nexport interface AccordionAdornment extends ControlAdornment {\n type: ControlAdornmentType.Accordion;\n title: string;\n defaultExpanded: boolean;\n}\n\nexport interface HelpTextAdornment extends ControlAdornment {\n type: ControlAdornmentType.HelpText;\n helpText: string;\n placement: AdornmentPlacement;\n}\n\nexport interface DataControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Data;\n field: string;\n required?: boolean | null;\n renderOptions?: RenderOptions | null;\n defaultValue?: any;\n readonly?: boolean | null;\n validators?: SchemaValidator[] | null;\n}\n\nexport interface RenderOptions {\n type: string;\n}\n\nexport enum DataRenderType {\n Standard = \"Standard\",\n Radio = \"Radio\",\n HtmlEditor = \"HtmlEditor\",\n IconList = \"IconList\",\n CheckList = \"CheckList\",\n UserSelection = \"UserSelection\",\n Synchronised = \"Synchronised\",\n IconSelector = \"IconSelector\",\n DateTime = \"DateTime\",\n Checkbox = \"Checkbox\",\n Dropdown = \"Dropdown\",\n}\n\nexport interface RadioButtonRenderOptions extends RenderOptions {\n type: DataRenderType.Radio;\n}\n\nexport interface StandardRenderer extends RenderOptions {\n type: DataRenderType.Standard;\n}\n\nexport interface HtmlEditorRenderOptions extends RenderOptions {\n type: DataRenderType.HtmlEditor;\n allowImages: boolean;\n}\n\nexport interface DateTimeRenderOptions extends RenderOptions {\n type: DataRenderType.DateTime;\n format?: string | null;\n}\n\nexport interface IconListRenderOptions extends RenderOptions {\n type: DataRenderType.IconList;\n iconMappings: IconMapping[];\n}\n\nexport interface IconMapping {\n value: string;\n materialIcon?: string | null;\n}\n\nexport interface CheckListRenderOptions extends RenderOptions {\n type: DataRenderType.CheckList;\n}\n\nexport interface SynchronisedRenderOptions extends RenderOptions {\n type: DataRenderType.Synchronised;\n fieldToSync: string;\n syncType: SyncTextType;\n}\n\nexport enum SyncTextType {\n Camel = \"Camel\",\n Snake = \"Snake\",\n Pascal = \"Pascal\",\n}\n\nexport interface UserSelectionRenderOptions extends RenderOptions {\n type: DataRenderType.UserSelection;\n noGroups: boolean;\n noUsers: boolean;\n}\n\nexport interface IconSelectionRenderOptions extends RenderOptions {\n type: DataRenderType.IconSelector;\n}\n\nexport interface GroupedControlsDefinition extends ControlDefinition {\n type: ControlDefinitionType.Group;\n children: ControlDefinition[];\n compoundField?: string | null;\n groupOptions: GroupRenderOptions;\n}\n\nexport interface GroupRenderOptions {\n type: string;\n hideTitle?: boolean | null;\n}\n\nexport enum GroupRenderType {\n Standard = \"Standard\",\n Grid = \"Grid\",\n GroupElement = \"GroupElement\",\n}\n\nexport interface StandardGroupRenderer extends GroupRenderOptions {\n type: GroupRenderType.Standard;\n}\n\nexport interface GroupElementRenderer extends GroupRenderOptions {\n type: GroupRenderType.GroupElement;\n value: any;\n}\n\nexport interface GridRenderer extends GroupRenderOptions {\n type: GroupRenderType.Grid;\n columns?: number | null;\n}\n\nexport interface DisplayControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Display;\n displayData: DisplayData;\n}\n\nexport interface DisplayData {\n type: string;\n}\n\nexport enum DisplayDataType {\n Text = \"Text\",\n Html = \"Html\",\n}\n\nexport interface TextDisplay extends DisplayData {\n type: DisplayDataType.Text;\n text: string;\n}\n\nexport interface HtmlDisplay extends DisplayData {\n type: DisplayDataType.Html;\n html: string;\n}\n\nexport interface ActionControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Action;\n actionId: string;\n}\n\nexport enum ValidatorType {\n Jsonata = \"Jsonata\",\n Date = \"Date\",\n}\nexport interface SchemaValidator {\n type: string;\n}\n\nexport interface JsonataValidator extends SchemaValidator {\n type: ValidatorType.Jsonata;\n expression: string;\n}\n\nexport enum DateComparison {\n NotBefore = \"NotBefore\",\n NotAfter = \"NotAfter\",\n}\n\nexport interface DateValidator extends SchemaValidator {\n type: ValidatorType.Date;\n comparison: DateComparison;\n fixedDate?: string | null;\n daysFromCurrent?: number | null;\n}\n\nexport function isDataControlDefinition(\n x: ControlDefinition,\n): x is DataControlDefinition {\n return x.type === ControlDefinitionType.Data;\n}\n\nexport function isGroupControlsDefinition(\n x: ControlDefinition,\n): x is GroupedControlsDefinition {\n return x.type === ControlDefinitionType.Group;\n}\n\nexport function isDisplayControlsDefinition(\n x: ControlDefinition,\n): x is DisplayControlDefinition {\n return x.type === ControlDefinitionType.Display;\n}\n\nexport function isActionControlsDefinition(\n x: ControlDefinition,\n): x is ActionControlDefinition {\n return x.type === ControlDefinitionType.Action;\n}\n\nexport interface ControlVisitor<A> {\n data(d: DataControlDefinition): A;\n group(d: GroupedControlsDefinition): A;\n display(d: DisplayControlDefinition): A;\n action(d: ActionControlDefinition): A;\n}\n\nexport function visitControlDefinition<A>(\n x: ControlDefinition,\n visitor: ControlVisitor<A>,\n defaultValue: (c: ControlDefinition) => A,\n): A {\n switch (x.type) {\n case ControlDefinitionType.Action:\n return visitor.action(x as ActionControlDefinition);\n case ControlDefinitionType.Data:\n return visitor.data(x as DataControlDefinition);\n case ControlDefinitionType.Display:\n return visitor.display(x as DisplayControlDefinition);\n case ControlDefinitionType.Group:\n return visitor.group(x as GroupedControlsDefinition);\n default:\n return defaultValue(x);\n }\n}\n\nexport function dataControl(\n field: string,\n options?: Partial<DataControlDefinition>,\n): DataControlDefinition {\n return { type: ControlDefinitionType.Data, field, ...options };\n}\n\nexport function fieldValueExpr(\n field: string,\n value: any,\n): FieldValueExpression {\n return { type: ExpressionType.FieldValue, field, value };\n}\n\nexport function visibility(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Visible, expr };\n}\n\nexport function isGridRenderer(\n options: GroupRenderOptions,\n): options is GridRenderer {\n return options.type === GroupRenderType.Grid;\n}\n","import { CompoundField, FieldOption, FieldType, SchemaField } from \"./types\";\n\ntype AllowedSchema<T> = T extends string\n ? SchemaField & {\n type: FieldType.String | FieldType.Date | FieldType.DateTime;\n }\n : T extends number\n ? SchemaField & {\n type: FieldType.Int | FieldType.Double;\n }\n : T extends boolean\n ? SchemaField & {\n type: FieldType.Bool;\n }\n : T extends Array<infer E>\n ? AllowedSchema<E> & {\n collection: true;\n }\n : T extends { [key: string]: any }\n ? CompoundField & {\n type: FieldType.Compound;\n }\n : SchemaField & { type: FieldType.Any };\n\ntype AllowedField<T, K> = (\n name: string\n) => (SchemaField & { type: K }) | AllowedSchema<T>;\n\nexport function buildSchema<T, Custom = \"\">(def: {\n [K in keyof T]-?: AllowedField<T[K], Custom>;\n}): SchemaField[] {\n return Object.entries(def).map((x) =>\n (x[1] as (n: string) => SchemaField)(x[0])\n );\n}\n\nexport function stringField(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>\n) {\n return makeScalarField({\n type: FieldType.String as const,\n displayName,\n ...options,\n });\n}\n\nexport function stringOptionsField(\n displayName: string,\n ...options: FieldOption[]\n) {\n return makeScalarField({\n type: FieldType.String as const,\n displayName,\n options,\n });\n}\n\nexport function withScalarOptions<S extends SchemaField>(\n options: Partial<SchemaField>,\n v: (name: string) => S\n): (name: string) => S {\n return (n) => ({ ...v(n), ...options });\n}\n\nexport function makeScalarField<S extends Partial<SchemaField>>(\n options: S\n): (name: string) => SchemaField & S {\n return (n) => ({ ...defaultScalarField(n, n), ...options });\n}\n\nexport function makeCompoundField<S extends Partial<CompoundField>>(\n options: S\n): (name: string) => CompoundField & {\n type: FieldType.Compound;\n} & S {\n return (n) => ({ ...defaultCompoundField(n, n, false), ...options });\n}\n\nexport function intField(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>\n) {\n return makeScalarField({\n type: FieldType.Int as const,\n displayName,\n ...options,\n });\n}\n\nexport function boolField(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>\n) {\n return makeScalarField({\n type: FieldType.Bool as const,\n displayName,\n ...options,\n });\n}\n\nexport function compoundField<\n Other extends Partial<Omit<CompoundField, \"type\" | \"schemaType\">>\n>(\n displayName: string,\n fields: SchemaField[],\n other: Other\n): (name: string) => CompoundField & {\n collection: Other[\"collection\"];\n} {\n return (field) =>\n ({\n ...defaultCompoundField(field, displayName, false),\n ...other,\n children: fields,\n } as any);\n}\n\nexport function defaultScalarField(\n field: string,\n displayName: string\n): Omit<SchemaField, \"type\"> & {\n type: FieldType.String;\n} {\n return {\n field,\n displayName,\n type: FieldType.String,\n };\n}\n\nexport function defaultCompoundField(\n field: string,\n displayName: string,\n collection: boolean\n): CompoundField & {\n type: FieldType.Compound;\n} {\n return {\n tags: [],\n field,\n displayName,\n type: FieldType.Compound,\n collection,\n system: false,\n treeChildren: false,\n children: [],\n onlyForTypes: [],\n required: true,\n };\n}\n","import {\n CompoundField,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataRenderType,\n FieldOption,\n FieldType,\n GridRenderer,\n GroupedControlsDefinition,\n GroupRenderType,\n SchemaField,\n} from \"./types\";\n\nexport function applyDefaultValues(\n v: { [k: string]: any } | undefined,\n fields: SchemaField[],\n): any {\n if (!v) return defaultValueForFields(fields);\n const applyValue = fields.filter(\n (x) => isCompoundField(x) || !(x.field in v),\n );\n if (!applyValue.length) return v;\n const out = { ...v };\n applyValue.forEach((x) => {\n out[x.field] =\n x.field in v\n ? applyDefaultForField(v[x.field], x, fields)\n : defaultValueForField(x);\n });\n return out;\n}\n\nexport function applyDefaultForField(\n v: any,\n field: SchemaField,\n parent: SchemaField[],\n notElement?: boolean,\n): any {\n if (field.collection && !notElement) {\n return ((v as any[]) ?? []).map((x) =>\n applyDefaultForField(x, field, parent, true),\n );\n }\n if (isCompoundField(field)) {\n if (!v && !field.required) return v;\n return applyDefaultValues(v, field.treeChildren ? parent : field.children);\n }\n return defaultValueForField(field);\n}\n\nexport function defaultValueForFields(fields: SchemaField[]): any {\n return Object.fromEntries(\n fields.map((x) => [x.field, defaultValueForField(x)]),\n );\n}\n\nexport function defaultValueForField(sf: SchemaField): any {\n if (isCompoundField(sf)) {\n return sf.required\n ? sf.collection\n ? []\n : defaultValueForFields(sf.children)\n : undefined;\n }\n if (sf.collection) return [];\n return sf.defaultValue;\n}\n\nexport function elementValueForField(sf: SchemaField): any {\n if (isCompoundField(sf)) {\n return defaultValueForFields(sf.children);\n }\n return sf.defaultValue;\n}\n\nexport function findScalarField(\n fields: SchemaField[],\n field: string,\n): SchemaField | undefined {\n return findField(fields, field);\n}\n\nexport function findCompoundField(\n fields: SchemaField[],\n field: string,\n): CompoundField | undefined {\n return findField(fields, field) as CompoundField | undefined;\n}\n\nexport function findField(\n fields: SchemaField[],\n field: string,\n): SchemaField | undefined {\n return fields.find((x) => x.field === field);\n}\n\nexport function isScalarField(sf: SchemaField): sf is SchemaField {\n return !isCompoundField(sf);\n}\n\nexport function isCompoundField(sf: SchemaField): sf is CompoundField {\n return sf.type === FieldType.Compound;\n}\n\nexport function isDataControl(\n c: ControlDefinition,\n): c is DataControlDefinition {\n return c.type === ControlDefinitionType.Data;\n}\n\nexport function isGroupControl(\n c: ControlDefinition,\n): c is GroupedControlsDefinition {\n return c.type === ControlDefinitionType.Group;\n}\n\nexport function fieldHasTag(field: SchemaField, tag: string) {\n return Boolean(field.tags?.includes(tag));\n}\n\nexport function fieldDisplayName(field: SchemaField) {\n return field.displayName ?? field.field;\n}\n\nexport function hasOptions(o: { options: FieldOption[] | undefined | null }) {\n return (o.options?.length ?? 0) > 0;\n}\n\nexport function defaultControlForField(\n sf: SchemaField,\n): DataControlDefinition | GroupedControlsDefinition {\n if (isCompoundField(sf)) {\n return {\n type: ControlDefinitionType.Group,\n title: sf.displayName,\n compoundField: sf.field,\n groupOptions: {\n type: GroupRenderType.Grid,\n hideTitle: false,\n } as GridRenderer,\n children: sf.children.map(defaultControlForField),\n } satisfies GroupedControlsDefinition;\n } else if (isScalarField(sf)) {\n const htmlEditor = sf.tags?.includes(\"_HtmlEditor\");\n return {\n type: ControlDefinitionType.Data,\n title: sf.displayName,\n field: sf.field,\n required: sf.required,\n renderOptions: {\n type: htmlEditor ? DataRenderType.HtmlEditor : DataRenderType.Standard,\n },\n } satisfies DataControlDefinition;\n }\n throw \"Unknown schema field\";\n}\nfunction findReferencedControl(\n field: string,\n control: ControlDefinition,\n): ControlDefinition | undefined {\n if (isDataControl(control) && field === control.field) return control;\n if (isGroupControl(control)) {\n if (control.compoundField)\n return field === control.compoundField ? control : undefined;\n return findReferencedControlInArray(field, control.children);\n }\n return undefined;\n}\n\nfunction findReferencedControlInArray(\n field: string,\n controls: ControlDefinition[],\n): ControlDefinition | undefined {\n for (const c of controls) {\n const ref = findReferencedControl(field, c);\n if (ref) return ref;\n }\n return undefined;\n}\n\nexport function addMissingControls(\n fields: SchemaField[],\n controls: ControlDefinition[],\n): ControlDefinition[] {\n const changes: {\n field: SchemaField;\n existing: ControlDefinition | undefined;\n }[] = fields.flatMap((x) => {\n if (fieldHasTag(x, \"_NoControl\")) return [];\n const existing = findReferencedControlInArray(x.field, controls);\n if (!existing || isCompoundField(x)) return { field: x, existing };\n return [];\n });\n const changedCompounds = controls.map((x) => {\n const ex = changes.find((c) => c.existing === x);\n if (!ex) return x;\n const cf = x as GroupedControlsDefinition;\n return {\n ...cf,\n children: addMissingControls(\n (ex.field as CompoundField).children,\n cf.children,\n ),\n };\n });\n return changedCompounds.concat(\n changes\n .filter((x) => !x.existing)\n .map((x) => defaultControlForField(x.field)),\n );\n}\n","import {\n ActionControlDefinition,\n AdornmentPlacement,\n CompoundField,\n ControlAdornment,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DisplayControlDefinition,\n EntityExpression,\n FieldOption,\n GroupedControlsDefinition,\n RenderOptions,\n SchemaField,\n SchemaValidator,\n visitControlDefinition,\n} from \"./types\";\nimport React, { Key, ReactElement, ReactNode } from \"react\";\nimport { Control, newControl } from \"@react-typed-forms/core\";\nimport {\n fieldDisplayName,\n findCompoundField,\n findField,\n findScalarField,\n isDataControl,\n isGroupControl,\n} from \"./util\";\n\nexport interface SchemaHooks {\n useExpression(\n expr: EntityExpression,\n formState: FormEditState,\n ): Control<any | undefined>;\n useValidators(\n formState: FormEditState,\n isVisible: boolean,\n control: Control<any>,\n required: boolean,\n validations?: SchemaValidator[] | null,\n ): void;\n}\n\nexport interface FormEditHooks {\n useDataProperties(\n formState: FormEditState,\n definition: DataControlDefinition,\n field: SchemaField,\n ): DataRendererProps;\n useGroupProperties(\n formState: FormEditState,\n definition: GroupedControlsDefinition,\n ): GroupRendererProps;\n useDisplayProperties(\n formState: FormEditState,\n definition: DisplayControlDefinition,\n ): DisplayRendererProps;\n useActionProperties(\n formState: FormEditState,\n definition: ActionControlDefinition,\n ): ActionRendererProps;\n schemaHooks: SchemaHooks;\n}\n\nexport interface DataRendererProps {\n definition: DataControlDefinition;\n renderOptions: RenderOptions;\n visible: Visibility;\n control: Control<any>;\n field: SchemaField;\n array?: ArrayRendererProps;\n readonly: boolean;\n defaultValue: any;\n required: boolean;\n options: FieldOption[] | undefined | null;\n customRender?: (props: DataRendererProps) => ReactElement;\n formState: FormEditState;\n}\n\nexport interface GroupRendererProps {\n definition: Omit<GroupedControlsDefinition, \"children\">;\n visible: Visibility;\n field?: CompoundField;\n array?: ArrayRendererProps;\n hideTitle: boolean;\n hooks: FormEditHooks;\n childCount: number;\n renderChild: (child: number) => ReactElement;\n}\n\nexport interface ControlData {\n [field: string]: any;\n}\n\nexport interface FormDataContext {\n fields: SchemaField[];\n data: Control<ControlData>;\n}\nexport interface FormEditState extends FormDataContext {\n hooks: FormEditHooks;\n renderer: FormRenderer;\n readonly?: boolean;\n invisible?: boolean;\n}\n\nexport type RenderControlOptions = Omit<FormEditState, \"data\">;\n\nexport interface ArrayRendererProps {\n definition: DataControlDefinition | GroupedControlsDefinition;\n control: Control<any[]>;\n field: SchemaField;\n addAction?: ActionRendererProps;\n removeAction?: (childCount: number) => ActionRendererProps;\n childCount: number;\n renderChild: (childCount: number) => ReactElement;\n childKey: (childCount: number) => Key;\n}\n\nexport interface AdornmentProps {\n key: Key;\n definition: ControlAdornment;\n}\n\nexport interface AdornmentRenderer {\n wrap?: (children: ReactElement) => ReactElement;\n child?: [AdornmentPlacement, ReactNode];\n}\n\nexport interface FormRenderer {\n renderData: (props: DataRendererProps) => ReactElement;\n renderGroup: (props: GroupRendererProps) => ReactElement;\n renderDisplay: (props: DisplayRendererProps) => ReactElement;\n renderAction: (props: ActionRendererProps) => ReactElement;\n renderArray: (props: ArrayRendererProps) => ReactElement;\n renderLabel: (props: LabelRendererProps, elem: ReactElement) => ReactElement;\n renderVisibility: (visible: Visibility, elem: ReactElement) => ReactElement;\n renderAdornment: (props: AdornmentProps) => AdornmentRenderer;\n}\n\nexport interface Visibility {\n value: boolean;\n canChange: boolean;\n}\nexport interface LabelRendererProps {\n visible: Visibility;\n title?: ReactNode;\n forId?: string;\n required: boolean;\n control?: Control<any>;\n group?: boolean;\n renderAdornment: (placement: AdornmentPlacement) => ReactElement;\n}\n\nexport interface DisplayRendererProps {\n definition: DisplayControlDefinition;\n visible: Visibility;\n}\n\nexport interface ActionRendererProps {\n definition: ActionControlDefinition;\n visible: Visibility;\n onClick: () => void;\n}\n\nexport type AnySchemaFields =\n | SchemaField\n | (Omit<CompoundField, \"children\"> & { children: AnySchemaFields[] });\n\nexport function controlTitle(\n title: string | undefined | null,\n field: SchemaField,\n) {\n return title ? title : fieldDisplayName(field);\n}\n\nexport function renderControl<S extends ControlDefinition>(\n definition: S,\n data: Control<any>,\n options: RenderControlOptions,\n key?: Key,\n): ReactElement {\n const { fields } = options;\n const formState = { ...options, data };\n return visitControlDefinition(\n definition,\n {\n data: (def) => {\n const fieldData = findScalarField(fields, def.field);\n if (!fieldData)\n return <h1 key={key}>No schema field for: {def.field}</h1>;\n return (\n <DataRenderer\n key={key}\n formState={formState}\n controlDef={def}\n fieldData={fieldData}\n />\n );\n },\n group: (d: GroupedControlsDefinition) => (\n <GroupRenderer key={key} groupDef={d} formState={formState} />\n ),\n action: (d: ActionControlDefinition) => (\n <ActionRenderer key={key} formState={formState} actionDef={d} />\n ),\n display: (d: DisplayControlDefinition) => (\n <DisplayRenderer key={key} formState={formState} displayDef={d} />\n ),\n },\n () => <h1>Unknown control: {(definition as any).type}</h1>,\n );\n}\n\n/** @trackControls */\nfunction DataRenderer({\n formState,\n controlDef,\n fieldData,\n}: {\n controlDef: DataControlDefinition;\n formState: FormEditState;\n fieldData: SchemaField;\n}) {\n const props = formState.hooks.useDataProperties(\n formState,\n controlDef,\n fieldData,\n );\n return (props.customRender ?? formState.renderer.renderData)(props);\n}\n\n/** @trackControls */\nfunction ActionRenderer({\n formState,\n actionDef,\n}: {\n actionDef: ActionControlDefinition;\n formState: FormEditState;\n}) {\n const actionControlProperties = formState.hooks.useActionProperties(\n formState,\n actionDef,\n );\n return formState.renderer.renderAction(actionControlProperties);\n}\n\n/** @trackControls */\nfunction GroupRenderer({\n formState,\n groupDef,\n}: {\n groupDef: GroupedControlsDefinition;\n formState: FormEditState;\n}) {\n const groupProps = formState.hooks.useGroupProperties(formState, groupDef);\n return formState.renderer.renderGroup(groupProps);\n}\n\n/** @trackControls */\nfunction DisplayRenderer({\n formState,\n displayDef,\n}: {\n displayDef: DisplayControlDefinition;\n formState: FormEditState;\n}) {\n const displayProps = formState.hooks.useDisplayProperties(\n formState,\n displayDef,\n );\n return formState.renderer.renderDisplay(displayProps);\n}\n\nexport function controlForField(\n field: string,\n formState: FormEditState,\n): Control<any> {\n const refField = findField(formState.fields, field);\n return (\n (refField && formState.data.fields[refField.field]) ?? newControl(undefined)\n );\n}\n\nexport function fieldForControl(c: ControlDefinition) {\n return isDataControl(c)\n ? c.field\n : isGroupControl(c)\n ? c.compoundField\n : undefined;\n}\n\nexport const AlwaysVisible: Visibility = { value: true, canChange: false };\n\nexport function createAction(\n label: string,\n onClick: () => void,\n actionId?: string,\n): ActionRendererProps {\n return {\n definition: {\n type: ControlDefinitionType.Action,\n actionId: actionId ?? label,\n title: label,\n },\n visible: AlwaysVisible,\n onClick,\n };\n}\n\nexport function visitControlData<S extends ControlDefinition, A>(\n definition: S,\n { fields, data }: FormDataContext,\n cb: (\n definition: DataControlDefinition,\n control: Control<any>,\n ) => A | undefined,\n): A | undefined {\n return visitControlDefinition<A | undefined>(\n definition,\n {\n data(def: DataControlDefinition) {\n const fieldData = findScalarField(fields, def.field);\n if (!fieldData) return undefined;\n return cb(def, data.fields[fieldData.field]);\n },\n group(d: GroupedControlsDefinition) {\n if (d.compoundField) {\n const compound = findCompoundField(fields, d.compoundField);\n if (!compound) return;\n fields = compound.children;\n data = data.fields[compound.field];\n }\n const childState = { fields, data };\n for (let c of d.children) {\n const res = visitControlData(c, childState, cb);\n if (res !== undefined) return res;\n }\n return undefined;\n },\n action(d: ActionControlDefinition) {\n return undefined;\n },\n display(d: DisplayControlDefinition) {\n return undefined;\n },\n },\n () => undefined,\n );\n}\n","import {\n ActionControlDefinition,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataRenderType,\n DateComparison,\n DateValidator,\n DynamicPropertyType,\n EntityExpression,\n ExpressionType,\n FieldOption,\n FieldValueExpression,\n GroupedControlsDefinition,\n GroupRenderType,\n JsonataExpression,\n SchemaField,\n SchemaValidator,\n ValidatorType,\n} from \"./types\";\nimport {\n ActionRendererProps,\n ArrayRendererProps,\n controlForField,\n controlTitle,\n DataRendererProps,\n fieldForControl,\n FormEditHooks,\n FormEditState,\n GroupRendererProps,\n renderControl,\n RenderControlOptions,\n SchemaHooks,\n Visibility,\n} from \"./controlRender\";\nimport React, { Fragment, ReactElement, useEffect, useMemo } from \"react\";\nimport {\n addElement,\n Control,\n ControlChange,\n newControl,\n removeElement,\n useComputed,\n useControl,\n useControlEffect,\n useValidator,\n} from \"@react-typed-forms/core\";\nimport jsonata from \"jsonata\";\nimport {\n addMissingControls,\n elementValueForField,\n findCompoundField,\n findField,\n isGroupControl,\n isScalarField,\n} from \"./util\";\n\nexport function useDefaultValue(\n definition: DataControlDefinition,\n field: SchemaField,\n formState: FormEditState,\n hooks: SchemaHooks,\n) {\n const valueExpression = definition.dynamic?.find(\n (x) => x.type === DynamicPropertyType.DefaultValue,\n );\n if (valueExpression) {\n return hooks.useExpression(valueExpression.expr, formState).value;\n }\n return field.defaultValue;\n}\n\nexport function useIsControlVisible(\n definition: ControlDefinition,\n formState: FormEditState,\n hooks: SchemaHooks,\n): Visibility {\n const visibleExpression = definition.dynamic?.find(\n (x) => x.type === DynamicPropertyType.Visible,\n );\n if (visibleExpression && visibleExpression.expr) {\n const exprValue = hooks.useExpression(\n visibleExpression.expr,\n formState,\n ).value;\n return {\n value: Boolean(exprValue),\n canChange: true,\n };\n }\n const schemaFields = formState.fields;\n\n const { typeControl, compoundField } = useMemo(() => {\n const typeField = schemaFields.find(\n (x) => isScalarField(x) && x.isTypeField,\n ) as SchemaField | undefined;\n\n const typeControl = ((typeField &&\n formState.data.fields?.[typeField.field]) ??\n newControl(undefined)) as Control<string | undefined>;\n const compoundField =\n isGroupControl(definition) && definition.compoundField\n ? formState.data.fields[definition.compoundField]\n : undefined;\n return { typeControl, compoundField };\n }, [schemaFields, formState.data]);\n\n const fieldName = fieldForControl(definition);\n const onlyForTypes = (\n fieldName ? findField(schemaFields, fieldName) : undefined\n )?.onlyForTypes;\n const canChange = Boolean(compoundField || (onlyForTypes?.length ?? 0) > 0);\n const value =\n (!compoundField || compoundField.value != null) &&\n (!onlyForTypes ||\n onlyForTypes.length === 0 ||\n Boolean(typeControl.value && onlyForTypes.includes(typeControl.value)));\n return { value, canChange };\n}\n\nexport function getDefaultScalarControlProperties(\n definition: DataControlDefinition,\n field: SchemaField,\n visible: Visibility,\n defaultValue: any,\n control: Control<any>,\n formState: FormEditState,\n): DataRendererProps {\n return {\n definition,\n field,\n defaultValue,\n options: getOptionsForScalarField(field),\n renderOptions: definition.renderOptions ?? {\n type: DataRenderType.Standard,\n },\n required: definition.required ?? false,\n visible,\n readonly: formState.readonly ?? definition.readonly ?? false,\n control,\n formState,\n };\n}\n\nexport function getOptionsForScalarField(\n field: SchemaField,\n): FieldOption[] | undefined | null {\n const opts = field.options;\n if (opts?.length ?? 0 > 0) {\n return opts;\n }\n return undefined;\n}\n\nexport function createDefaultSchemaHooks(): SchemaHooks {\n function useExpression(\n expr: EntityExpression,\n formState: FormEditState,\n ): Control<any | undefined> {\n switch (expr.type) {\n case ExpressionType.Jsonata:\n const jExpr = expr as JsonataExpression;\n const compiledExpr = useMemo(\n () => jsonata(jExpr.expression),\n [jExpr.expression],\n );\n const control = useControl();\n useControlEffect(\n () => formState.data.value,\n async (v) => {\n control.value = await compiledExpr.evaluate(v);\n },\n );\n return control;\n case ExpressionType.FieldValue:\n const fvExpr = expr as FieldValueExpression;\n return useComputed(() => {\n const fv = controlForField(fvExpr.field, formState).value;\n return Array.isArray(fv)\n ? fv.includes(fvExpr.value)\n : fv === fvExpr.value;\n });\n default:\n return useControl(undefined);\n }\n }\n\n function useValidators(\n formState: FormEditState,\n isVisible: boolean,\n control: Control<any>,\n required: boolean,\n validators?: SchemaValidator[] | null,\n ) {\n if (required)\n useValidator(\n control,\n (v) =>\n isVisible && (v == null || v == \"\") ? \"Please enter a value\" : null,\n \"required\",\n );\n validators?.forEach((v, i) => {\n switch (v.type) {\n case ValidatorType.Date:\n processDateValidator(v as DateValidator);\n break;\n case ValidatorType.Jsonata:\n const errorMsg = useExpression(\n v satisfies EntityExpression,\n formState,\n );\n useControlEffect(\n () => [isVisible, errorMsg.value],\n ([isVisible, msg]) =>\n control.setError(v.type + i, isVisible ? msg : null),\n true,\n );\n break;\n }\n\n function processDateValidator(dv: DateValidator) {\n let comparisonDate: number;\n if (dv.fixedDate) {\n comparisonDate = Date.parse(dv.fixedDate);\n } else {\n const nowDate = new Date();\n comparisonDate = Date.UTC(\n nowDate.getFullYear(),\n nowDate.getMonth(),\n nowDate.getDate(),\n );\n if (dv.daysFromCurrent) {\n comparisonDate += dv.daysFromCurrent * 86400000;\n }\n }\n useValidator(\n control,\n (v) => {\n if (v) {\n const selDate = Date.parse(v);\n const notAfter = dv.comparison === DateComparison.NotAfter;\n if (\n notAfter ? selDate > comparisonDate : selDate < comparisonDate\n ) {\n return `Date must not be ${\n notAfter ? \"after\" : \"before\"\n } ${new Date(comparisonDate).toDateString()}`;\n }\n }\n return null;\n },\n \"date\" + i,\n );\n }\n });\n }\n return { useExpression, useValidators };\n}\n\nexport const defaultFormEditHooks = createFormEditHooks(\n createDefaultSchemaHooks(),\n);\n\nexport function createFormEditHooks(schemaHooks: SchemaHooks): FormEditHooks {\n return {\n schemaHooks,\n useDataProperties(formState, definition, field): DataRendererProps {\n const visible = useIsControlVisible(definition, formState, schemaHooks);\n const isVisible = visible.value && !formState.invisible;\n const defaultValue = useDefaultValue(\n definition,\n field,\n formState,\n schemaHooks,\n );\n const scalarControl = formState.data.fields[field.field];\n\n useEffect(() => {\n if (!isVisible) scalarControl.value = null;\n else if (scalarControl.current.value == null) {\n scalarControl.value = defaultValue;\n }\n }, [isVisible, defaultValue]);\n\n const dataProps = getDefaultScalarControlProperties(\n definition,\n field,\n visible,\n defaultValue,\n scalarControl,\n formState,\n );\n\n schemaHooks.useValidators(\n formState,\n isVisible,\n scalarControl,\n dataProps.required,\n definition.validators,\n );\n\n useEffect(() => {\n const subscription = scalarControl.subscribe(\n (c) => (c.touched = true),\n ControlChange.Validate,\n );\n return () => scalarControl.unsubscribe(subscription);\n }, []);\n\n if (!field.collection) return dataProps;\n return {\n ...dataProps,\n array: defaultArrayRendererProps(\n scalarControl,\n field,\n definition,\n dataProps.readonly,\n (c) => formState.renderer.renderData({ ...dataProps, control: c }),\n ),\n };\n },\n useDisplayProperties: (fs, definition) => {\n const visible = useIsControlVisible(definition, fs, schemaHooks);\n return { visible, definition };\n },\n useGroupProperties: (fs, definition) => {\n const visible = useIsControlVisible(definition, fs, schemaHooks);\n const field = definition.compoundField\n ? findCompoundField(fs.fields, definition.compoundField)\n : undefined;\n const newFs: RenderControlOptions = {\n ...fs,\n fields: field ? field.children : fs.fields,\n invisible: !visible.value || fs.invisible,\n };\n const data = field ? fs.data.fields[field.field] : fs.data;\n const groupProps = {\n visible,\n hooks: fs.hooks,\n hideTitle: definition.groupOptions.hideTitle ?? false,\n childCount: definition.children.length,\n renderChild: (i) =>\n renderControl(definition.children[i], data, newFs, i),\n definition,\n } satisfies GroupRendererProps;\n if (field?.collection) {\n return {\n ...groupProps,\n array: defaultArrayRendererProps(\n data,\n field,\n definition,\n fs.readonly,\n (e) =>\n fs.renderer.renderGroup({\n ...groupProps,\n hideTitle: true,\n renderChild: (i) =>\n renderControl(definition.children[i], e, newFs, i),\n }),\n ),\n };\n }\n return groupProps;\n },\n useActionProperties(\n formState: FormEditState,\n definition: ActionControlDefinition,\n ): ActionRendererProps {\n const visible = useIsControlVisible(definition, formState, schemaHooks);\n return {\n visible,\n onClick: () => {},\n definition,\n };\n },\n };\n}\n\nfunction defaultArrayRendererProps(\n control: Control<any[]>,\n field: SchemaField,\n definition: DataControlDefinition | GroupedControlsDefinition,\n readonly: boolean | undefined | null,\n renderElem: (c: Control<any>) => ReactElement,\n): ArrayRendererProps {\n return {\n control,\n childCount: control.elements?.length ?? 0,\n field,\n definition,\n addAction: !readonly\n ? {\n definition: {\n title: \"Add \" + controlTitle(definition.title, field),\n type: ControlDefinitionType.Action,\n actionId: \"addElement\",\n },\n visible: { value: true, canChange: false },\n onClick: () => addElement(control, elementValueForField(field)),\n }\n : undefined,\n removeAction: !readonly\n ? (i) => ({\n definition: {\n title: \"Remove\",\n type: ControlDefinitionType.Action,\n actionId: \"removeElement\",\n },\n visible: { value: true, canChange: false },\n onClick: () => removeElement(control, control.elements[i]),\n })\n : undefined,\n childKey: (i) => control.elements[i].uniqueId,\n renderChild: (i) => {\n const c = control.elements[i];\n return <Fragment key={c.uniqueId}>{renderElem(c)}</Fragment>;\n },\n };\n}\n\nconst emptyGroupDefinition: GroupedControlsDefinition = {\n type: ControlDefinitionType.Group,\n children: [],\n groupOptions: { type: GroupRenderType.Standard, hideTitle: true },\n};\n\nexport function useControlDefinitionForSchema(\n sf: SchemaField[],\n definition: GroupedControlsDefinition = emptyGroupDefinition,\n) {\n return useMemo(\n () =>\n definition.children.length\n ? definition\n : { ...definition, children: addMissingControls(sf, []) },\n [sf, definition],\n );\n}\n","import React, {\n CSSProperties,\n Fragment,\n ReactElement,\n ReactNode,\n useMemo,\n useState,\n} from \"react\";\nimport {\n ActionRendererProps,\n AdornmentProps,\n AdornmentRenderer,\n ArrayRendererProps,\n controlTitle,\n DataRendererProps,\n DisplayRendererProps,\n FormRenderer,\n GroupRendererProps,\n LabelRendererProps,\n Visibility,\n} from \"./controlRender\";\nimport clsx from \"clsx\";\nimport {\n AdornmentPlacement,\n ControlDefinition,\n DataRenderType,\n DisplayDataType,\n FieldOption,\n FieldType,\n GridRenderer,\n HtmlDisplay,\n isGridRenderer,\n TextDisplay,\n} from \"./types\";\nimport { Control, Fcheckbox, formControlProps } from \"@react-typed-forms/core\";\nimport { hasOptions } from \"./util\";\n\nexport interface DefaultRenderers {\n data: DataRendererRegistration;\n label: LabelRendererRegistration;\n action: ActionRendererRegistration;\n array: ArrayRendererRegistration;\n group: GroupRendererRegistration;\n display: DisplayRendererRegistration;\n visibility: VisibilityRendererRegistration;\n adornment: AdornmentRendererRegistration;\n}\nexport interface DataRendererRegistration {\n type: \"data\";\n schemaType?: string | string[];\n renderType?: string | string[];\n options?: boolean;\n collection?: boolean;\n match?: (props: DataRendererProps) => boolean;\n render: (\n props: DataRendererProps,\n defaultLabel: (label?: Partial<LabelRendererProps>) => LabelRendererProps,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface LabelRendererRegistration {\n type: \"label\";\n render: (\n labelProps: LabelRendererProps,\n elem: ReactElement,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface ActionRendererRegistration {\n type: \"action\";\n render: (props: ActionRendererProps, renderers: FormRenderer) => ReactElement;\n}\n\nexport interface ArrayRendererRegistration {\n type: \"array\";\n render: (props: ArrayRendererProps, renderers: FormRenderer) => ReactElement;\n}\n\nexport interface GroupRendererRegistration {\n type: \"group\";\n render: (\n props: GroupRendererProps,\n defaultLabel: (label?: Partial<LabelRendererProps>) => LabelRendererProps,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface DisplayRendererRegistration {\n type: \"display\";\n render: (\n props: DisplayRendererProps,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface VisibilityRendererRegistration {\n type: \"visibility\";\n render: (visible: Visibility, elem: ReactElement) => ReactElement;\n}\n\nexport interface AdornmentRendererRegistration {\n type: \"adornment\";\n adornmentType?: string | string[];\n render: (props: AdornmentProps) => AdornmentRenderer;\n}\n\nexport type RendererRegistration =\n | DataRendererRegistration\n | GroupRendererRegistration\n | DisplayRendererRegistration\n | ActionRendererRegistration\n | LabelRendererRegistration\n | ArrayRendererRegistration\n | AdornmentRendererRegistration\n | VisibilityRendererRegistration;\n\nexport function createFormRenderer(\n customRenderers: RendererRegistration[] = [],\n defaultRenderers: DefaultRenderers = createClassStyledRenderers(),\n): FormRenderer {\n const dataRegistrations = customRenderers.filter(isDataRegistration);\n const adornmentRegistrations = customRenderers.filter(\n isAdornmentRegistration,\n );\n const labelRenderer =\n customRenderers.find(isLabelRegistration) ?? defaultRenderers.label;\n const arrayRenderer =\n customRenderers.find(isArrayRegistration) ?? defaultRenderers.array;\n const renderVisibility = (\n customRenderers.find(isVisibilityRegistration) ??\n defaultRenderers.visibility\n ).render;\n\n const formRenderers = {\n renderAction,\n renderData,\n renderGroup,\n renderDisplay,\n renderLabel,\n renderArray,\n renderVisibility,\n renderAdornment,\n };\n\n function renderAdornment(props: AdornmentProps): AdornmentRenderer {\n const renderer =\n adornmentRegistrations.find((x) =>\n isOneOf(x.adornmentType, props.definition.type),\n ) ?? defaultRenderers.adornment;\n return renderer.render(props);\n }\n\n function renderArray(props: ArrayRendererProps) {\n return arrayRenderer.render(props, formRenderers);\n }\n\n function renderLabel(props: LabelRendererProps, elem: ReactElement) {\n return labelRenderer.render(props, elem, formRenderers);\n }\n\n function withAdornments(\n definition: ControlDefinition,\n adornments?: AdornmentRenderer[],\n ): [\n AdornmentRenderer[],\n (placement: AdornmentPlacement) => ReactElement,\n (elem: ReactElement) => ReactElement,\n ] {\n const rAdornments = adornments\n ? adornments\n : definition.adornments?.map((x, i) =>\n renderAdornment({ definition: x, key: i }),\n ) ?? [];\n function combineAdornments(placement: AdornmentPlacement) {\n return (\n <>\n {rAdornments\n .filter((x) => x.child && x.child[0] === placement)\n .map((x) => x.child![1])}\n </>\n );\n }\n return [\n rAdornments,\n combineAdornments,\n (mainElem) =>\n !adornments\n ? mainElem\n : rAdornments.reduce((e, n) => n.wrap?.(e) ?? e, mainElem),\n ];\n }\n\n function renderData(\n props: DataRendererProps,\n adornments?: AdornmentRenderer[],\n ): ReactElement {\n const {\n definition,\n renderOptions: { type: renderType },\n visible,\n required,\n control,\n field,\n } = props;\n\n const options = hasOptions(props);\n const renderer =\n dataRegistrations.find(\n (x) =>\n (x.collection ?? false) === (field.collection ?? false) &&\n (x.options ?? false) === options &&\n isOneOf(x.schemaType, field.type) &&\n isOneOf(x.renderType, renderType) &&\n (!x.match || x.match(props)),\n ) ?? defaultRenderers.data;\n\n const [rAdornments, renderAdornment, wrapElem] = withAdornments(\n definition,\n adornments,\n );\n return wrapElem(\n renderer.render(props, createLabel, {\n ...formRenderers,\n renderData: (p) => renderData(p, rAdornments),\n }),\n );\n\n function createLabel(labelProps?: Partial<LabelRendererProps>) {\n return {\n visible,\n required,\n control,\n forId: \"c\" + control.uniqueId,\n renderAdornment,\n ...labelProps,\n title: labelProps?.title ?? controlTitle(definition.title, field),\n };\n }\n }\n\n function renderGroup(\n props: GroupRendererProps,\n adornments?: AdornmentRenderer[],\n ): ReactElement {\n const { definition, visible, field } = props;\n\n const [rAdornments, renderAdornment, wrapElem] = withAdornments(\n props.definition,\n adornments,\n );\n\n const title = props.hideTitle\n ? undefined\n : field\n ? controlTitle(definition.title, field)\n : definition.title;\n\n return wrapElem(\n defaultRenderers.group.render(props, createLabel, {\n ...formRenderers,\n renderGroup: (p) => renderGroup(p, rAdornments),\n }),\n );\n\n function createLabel(\n labelProps?: Partial<LabelRendererProps>,\n ): LabelRendererProps {\n return {\n required: false,\n visible,\n group: true,\n renderAdornment,\n title,\n ...labelProps,\n };\n }\n }\n\n function renderAction(\n props: ActionRendererProps,\n adornments?: AdornmentRenderer[],\n ) {\n const renderer =\n customRenderers.find(isActionRegistration) ?? defaultRenderers.action;\n const [rAdornments, renderAdornment, wrapElem] = withAdornments(\n props.definition,\n adornments,\n );\n return wrapElem(renderer.render(props, formRenderers));\n }\n\n function renderDisplay(\n props: DisplayRendererProps,\n adornments?: AdornmentRenderer[],\n ) {\n const [rAdornments, renderAdornment, wrapElem] = withAdornments(\n props.definition,\n adornments,\n );\n return wrapElem(defaultRenderers.display.render(props, formRenderers));\n }\n\n return formRenderers;\n}\n\ninterface DefaultLabelRendererOptions {\n className?: string;\n groupLabelClass?: string;\n requiredElement?: ReactNode;\n labelClass?: string;\n}\n\ninterface DefaultActionRendererOptions {\n className?: string;\n}\n\nexport function createDefaultActionRenderer(\n options: DefaultActionRendererOptions = {},\n): ActionRendererRegistration {\n function render(\n { visible, onClick, definition: { title } }: ActionRendererProps,\n { renderVisibility }: Pick<FormRenderer, \"renderVisibility\">,\n ) {\n return renderVisibility(\n visible,\n <button className={options.className} onClick={onClick}>\n {title}\n </button>,\n );\n }\n return { render, type: \"action\" };\n}\nexport function createDefaultLabelRenderer(\n options: DefaultLabelRendererOptions = { requiredElement: <span> *</span> },\n): LabelRendererRegistration {\n return {\n render: (p, elem, { renderVisibility }) =>\n renderVisibility(\n p.visible,\n <DefaultLabelRenderer {...p} {...options} children={elem} />,\n ),\n type: \"label\",\n };\n}\n\nexport function DefaultLabelRenderer({\n className,\n labelClass,\n title,\n forId,\n required,\n children,\n group,\n groupLabelClass,\n renderAdornment,\n requiredElement,\n}: LabelRendererProps &\n DefaultLabelRendererOptions & { children: ReactElement }) {\n return title ? (\n <div className={className}>\n {renderAdornment(AdornmentPlacement.LabelStart)}\n <label\n htmlFor={forId}\n className={clsx(labelClass, group && groupLabelClass)}\n >\n {title}\n {required && requiredElement}\n </label>\n {renderAdornment(AdornmentPlacement.LabelEnd)}\n {renderAdornment(AdornmentPlacement.ControlStart)}\n {children}\n {renderAdornment(AdornmentPlacement.ControlEnd)}\n </div>\n ) : (\n <>{children}</>\n );\n}\n\ninterface DefaultArrayRendererOptions {\n className?: string;\n removableClass?: string;\n childClass?: string;\n removableChildClass?: string;\n removeActionClass?: string;\n addActionClass?: string;\n}\n\nexport function createDefaultArrayRenderer(\n options?: DefaultArrayRendererOptions,\n): ArrayRendererRegistration {\n const {\n className,\n removableClass,\n childClass,\n removableChildClass,\n removeActionClass,\n addActionClass,\n } = options ?? {};\n function render(\n {\n childCount,\n renderChild,\n addAction,\n removeAction,\n childKey,\n }: ArrayRendererProps,\n { renderAction }: Pick<FormRenderer, \"renderAction\">,\n ) {\n return (\n <>\n <div className={clsx(className, removeAction && removableClass)}>\n {Array.from({ length: childCount }, (_, x) =>\n removeAction ? (\n <Fragment key={childKey(x)}>\n <div className={clsx(childClass, removableChildClass)}>\n {renderChild(x)}\n </div>\n <div className={removeActionClass}>\n {renderAction(removeAction(x))}\n </div>\n </Fragment>\n ) : (\n <div key={childKey(x)} className={childClass}>\n {renderChild(x)}\n </div>\n ),\n )}\n </div>\n {addAction && (\n <div className={addActionClass}>{renderAction(addAction)}</div>\n )}\n </>\n );\n }\n return { render, type: \"array\" };\n}\n\ninterface StyleProps {\n className?: string;\n style?: CSSProperties;\n}\n\ninterface DefaultGroupRendererOptions {\n className?: string;\n standardClassName?: string;\n gridStyles?: (columns: GridRenderer) => StyleProps;\n gridClassName?: string;\n defaultGridColumns?: number;\n}\n\nexport function createDefaultGroupRenderer(\n options?: DefaultGroupRendererOptions,\n): GroupRendererRegistration {\n const {\n className,\n gridStyles = defaultGridStyles,\n defaultGridColumns = 2,\n gridClassName,\n standardClassName,\n } = options ?? {};\n\n function defaultGridStyles({\n columns = defaultGridColumns,\n }: GridRenderer): StyleProps {\n return {\n className: gridClassName,\n style: {\n display: \"grid\",\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n },\n };\n }\n\n function render(\n props: GroupRendererProps,\n defaultLabel: (label?: Partial<LabelRendererProps>) => LabelRendererProps,\n {\n renderLabel,\n renderArray,\n }: Pick<FormRenderer, \"renderLabel\" | \"renderArray\" | \"renderGroup\">,\n ) {\n const { childCount, renderChild, definition } = props;\n\n return renderLabel(\n defaultLabel(),\n props.array ? renderArray(props.array) : renderChildren(),\n );\n\n function renderChildren() {\n const { groupOptions } = definition;\n const { style, className: gcn } = isGridRenderer(groupOptions)\n ? gridStyles(groupOptions)\n : ({ className: standardClassName } satisfies StyleProps);\n return (\n <div className={clsx(className, gcn)} style={style}>\n {Array.from({ length: childCount }, (_, x) => renderChild(x))}\n </div>\n );\n }\n }\n return { type: \"group\", render };\n}\n\nexport interface DefaultDisplayRendererOptions {\n textClassName?: string;\n htmlClassName?: string;\n}\nexport function createDefaultDisplayRenderer(\n options: DefaultDisplayRendererOptions = {},\n): DisplayRendererRegistration {\n function doRender({ definition: { displayData } }: DisplayRendererProps) {\n switch (displayData.type) {\n case DisplayDataType.Text:\n return (\n <div className={options.textClassName}>\n {(displayData as TextDisplay).text}\n </div>\n );\n case DisplayDataType.Html:\n return (\n <div\n className={options.htmlClassName}\n dangerouslySetInnerHTML={{\n __html: (displayData as HtmlDisplay).html,\n }}\n />\n );\n default:\n return <h1>Unknown display type: {displayData.type}</h1>;\n }\n }\n return {\n render: (p, { renderVisibility }) =>\n renderVisibility(p.visible, doRender(p)),\n type: \"display\",\n };\n}\n\nexport const DefaultBoolOptions: FieldOption[] = [\n { name: \"Yes\", value: true },\n { name: \"No\", value: false },\n];\ninterface DefaultDataRendererOptions {\n inputClass?: string;\n selectOptions?: SelectRendererOptions;\n booleanOptions?: FieldOption[];\n optionRenderer?: DataRendererRegistration;\n}\n\nexport function createDefaultDataRenderer(\n options: DefaultDataRendererOptions = {},\n): DataRendererRegistration {\n const selectRenderer = createSelectRenderer(options.selectOptions ?? {});\n const { inputClass, booleanOptions, optionRenderer } = {\n optionRenderer: selectRenderer,\n booleanOptions: DefaultBoolOptions,\n ...options,\n };\n return createDataRenderer((props, defaultLabel, renderers) => {\n if (props.array) {\n return renderers.renderArray(props.array);\n }\n let renderType = props.renderOptions.type;\n const fieldType = props.field.type;\n const isBool = fieldType === FieldType.Bool;\n if (booleanOptions != null && isBool && props.options == null) {\n return renderers.renderData({ ...props, options: booleanOptions });\n }\n if (renderType === DataRenderType.Standard && hasOptions(props)) {\n return optionRenderer.render(props, defaultLabel, renderers);\n }\n switch (renderType) {\n case DataRenderType.Dropdown:\n return selectRenderer.render(props, defaultLabel, renderers);\n }\n const l = defaultLabel();\n return renderers.renderLabel(\n l,\n renderType === DataRenderType.Checkbox ? (\n <Fcheckbox control={props.control} />\n ) : (\n <ControlInput\n className={inputClass}\n id={l.forId}\n readOnly={props.readonly}\n control={props.control}\n convert={createInputConversion(props.field.type)}\n />\n ),\n );\n });\n}\n\nexport function ControlInput({\n control,\n convert,\n ...props\n}: React.InputHTMLAttributes<HTMLInputElement> & {\n control: Control<any>;\n convert: InputConversion;\n}) {\n const { errorText, value, onChange, ...inputProps } =\n formControlProps(control);\n return (\n <input\n {...inputProps}\n type={convert[0]}\n value={value == null ? \"\" : convert[2](value)}\n onChange={(e) => {\n control.value = convert[1](e.target.value);\n }}\n {...props}\n />\n );\n}\n\nexport interface DefaultVisibilityRendererOptions {}\n\nexport interface DefaultAdornmentRendererOptions {}\n\nexport function createDefaultAdornmentRenderer(\n options: DefaultAdornmentRendererOptions = {},\n): AdornmentRendererRegistration {\n return { type: \"adornment\", render: () => ({}) };\n}\nexport function createDefaultVisibilityRenderer(\n options: DefaultVisibilityRendererOptions = {},\n): VisibilityRendererRegistration {\n return {\n type: \"visibility\",\n render: (visible, children) => (visible.value ? children : <></>),\n };\n}\n\nexport interface DefaultRendererOptions {\n data?: DefaultDataRendererOptions;\n display?: DefaultDisplayRendererOptions;\n action?: DefaultActionRendererOptions;\n array?: DefaultArrayRendererOptions;\n group?: DefaultGroupRendererOptions;\n label?: DefaultLabelRendererOptions;\n visibility?: DefaultVisibilityRendererOptions;\n adornment?: DefaultAdornmentRendererOptions;\n}\n\nexport function createDefaultRenderers(\n options: DefaultRendererOptions = {},\n): DefaultRenderers {\n return {\n data: createDefaultDataRenderer(options.data),\n display: createDefaultDisplayRenderer(options.display),\n action: createDefaultActionRenderer(options.action),\n array: createDefaultArrayRenderer(options.array),\n group: createDefaultGroupRenderer(options.group),\n label: createDefaultLabelRenderer(options.label),\n visibility: createDefaultVisibilityRenderer(options.visibility),\n adornment: createDefaultAdornmentRenderer(options.adornment),\n };\n}\n\nfunction createClassStyledRenderers() {\n return createDefaultRenderers({\n label: { className: \"control\" },\n group: { className: \"group\" },\n array: { className: \"control-array\" },\n action: { className: \"action\" },\n data: { inputClass: \"data\" },\n display: { htmlClassName: \"html\", textClassName: \"text\" },\n });\n}\n\nfunction isAdornmentRegistration(\n x: RendererRegistration,\n): x is AdornmentRendererRegistration {\n return x.type === \"adornment\";\n}\n\nfunction isDataRegistration(\n x: RendererRegistration,\n): x is DataRendererRegistration {\n return x.type === \"data\";\n}\n\nfunction isLabelRegistration(\n x: RendererRegistration,\n): x is LabelRendererRegistration {\n return x.type === \"label\";\n}\n\nfunction isActionRegistration(\n x: RendererRegistration,\n): x is ActionRendererRegistration {\n return x.type === \"action\";\n}\n\nfunction isArrayRegistration(\n x: RendererRegistration,\n): x is ArrayRendererRegistration {\n return x.type === \"array\";\n}\n\nfunction isVisibilityRegistration(\n x: RendererRegistration,\n): x is VisibilityRendererRegistration {\n return x.type === \"visibility\";\n}\n\nfunction isOneOf(x: string | string[] | undefined, v: string) {\n return x == null ? true : Array.isArray(x) ? x.includes(v) : v === x;\n}\n\nexport function createArrayRenderer(\n render: ArrayRendererRegistration[\"render\"],\n options?: Partial<ArrayRendererRegistration>,\n): ArrayRendererRegistration {\n return { type: \"array\", render, ...options };\n}\n\nexport function createDataRenderer(\n render: DataRendererRegistration[\"render\"],\n options?: Partial<DataRendererRegistration>,\n): DataRendererRegistration {\n return { type: \"data\", render, ...options };\n}\n\nexport function createDataRendererLabelled(\n render: (\n props: DataRendererProps,\n id: string,\n renderers: FormRenderer,\n ) => ReactElement,\n options?: Partial<DataRendererRegistration>,\n): DataRendererRegistration {\n return {\n type: \"data\",\n render: (props, defaultLabel, renderers) => {\n const dl = defaultLabel();\n return renderers.renderLabel(dl, render(props, dl.forId!, renderers));\n },\n ...options,\n };\n}\n\nexport function createLabelRenderer(\n options: Omit<LabelRendererRegistration, \"type\">,\n): LabelRendererRegistration {\n return { type: \"label\", ...options };\n}\n\nexport function createAdornmentRenderer(\n render: (props: AdornmentProps) => AdornmentRenderer,\n options?: Omit<AdornmentRendererRegistration, \"type\">,\n): AdornmentRendererRegistration {\n return { type: \"adornment\", ...options, render };\n}\n\nexport interface SelectRendererOptions {\n className?: string;\n emptyText?: string;\n requiredText?: string;\n}\n\nexport function createSelectRenderer(options: SelectRendererOptions = {}) {\n return createDataRendererLabelled(\n (props, id) => (\n <SelectDataRenderer\n className={options.className}\n state={props.control}\n id={id}\n options={props.options!}\n required={props.required}\n emptyText={options.emptyText}\n requiredText={options.requiredText}\n convert={createSelectConversion(props.field.type)}\n />\n ),\n {\n options: true,\n },\n );\n}\n\ntype SelectConversion = (a: any) => string | number;\n\ninterface SelectDataRendererProps {\n id?: string;\n className?: string;\n options: {\n name: string;\n value: any;\n disabled?: boolean;\n }[];\n emptyText?: string;\n requiredText?: string;\n required: boolean;\n state: Control<any>;\n convert: SelectConversion;\n}\n\nexport function SelectDataRenderer({\n state,\n options,\n className,\n convert,\n required,\n emptyText = \"N/A\",\n requiredText = \"<please select>\",\n ...props\n}: SelectDataRendererProps) {\n const { value, disabled } = state;\n const [showEmpty] = useState(!required || value == null);\n const optionStringMap = useMemo(\n () => Object.fromEntries(options.map((x) => [convert(x.value), x.value])),\n [options],\n );\n return (\n <select\n {...props}\n className={className}\n onChange={(v) => (state.value = optionStringMap[v.target.value])}\n value={convert(value)}\n disabled={disabled}\n >\n {showEmpty && (\n <option value=\"\">{required ? requiredText : emptyText}</option>\n )}\n {options.map((x, i) => (\n <option key={i} value={convert(x.value)} disabled={x.disabled}>\n {x.name}\n </option>\n ))}\n </select>\n );\n}\n\nexport function createSelectConversion(ft: string): SelectConversion {\n switch (ft) {\n case FieldType.String:\n case FieldType.Int:\n case FieldType.Double:\n return (a) => a;\n default:\n return (a) => a?.toString() ?? \"\";\n }\n}\n\ntype InputConversion = [string, (s: any) => any, (a: any) => string | number];\n\nexport function createInputConversion(ft: string): InputConversion {\n switch (ft) {\n case FieldType.String:\n return [\"text\", (a) => a, (a) => a];\n case FieldType.Bool:\n return [\"text\", (a) => a === \"true\", (a) => a?.toString() ?? \"\"];\n case FieldType.Int:\n return [\n \"number\",\n (a) => (a !== \"\" ? parseInt(a) : null),\n (a) => (a == null ? \"\" : a),\n ];\n case FieldType.Date:\n return [\"date\", (a) => a, (a) => a];\n case FieldType.Double:\n return [\"number\", (a) => parseFloat(a), (a) => a];\n default:\n return [\"text\", (a) => a, (a) => a];\n }\n}\n","import React from \"react\";\nimport { DefaultRendererOptions } from \"./renderers\";\n\nexport const defaultTailwindTheme: DefaultRendererOptions = {\n label: {\n className: \"flex flex-col\",\n groupLabelClass: \"font-bold\",\n requiredElement: <span className=\"text-red-500\"> *</span>,\n },\n array: {\n removableClass: \"grid grid-cols-[1fr_auto] items-center gap-x-2\",\n childClass: \"grow\",\n },\n group: {\n standardClassName: \"space-y-4\",\n gridClassName: \"gap-x-2 gap-y-4\",\n },\n action: {\n className: \"bg-primary rounded-lg p-3 text-white\",\n },\n};\n"],"names":["FieldType","ControlDefinitionType","DynamicPropertyType","ExpressionType","AdornmentPlacement","ControlAdornmentType","DataRenderType","SyncTextType","GroupRenderType","DisplayDataType","ValidatorType","DateComparison","isDataControlDefinition","x","type","Data","isGroupControlsDefinition","Group","isDisplayControlsDefinition","Display","isActionControlsDefinition","Action","visitControlDefinition","visitor","defaultValue","action","data","display","group","dataControl","field","options","_extends","fieldValueExpr","value","FieldValue","visibility","expr","Visible","isGridRenderer","Grid","buildSchema","def","Object","entries","map","stringField","displayName","makeScalarField","String","stringOptionsField","slice","call","arguments","withScalarOptions","v","n","defaultScalarField","makeCompoundField","defaultCompoundField","intField","Int","boolField","Bool","compoundField","fields","other","children","collection","tags","Compound","system","treeChildren","onlyForTypes","required","applyDefaultValues","defaultValueForFields","applyValue","filter","isCompoundField","length","out","forEach","applyDefaultForField","defaultValueForField","parent","notElement","fromEntries","sf","undefined","elementValueForField","findScalarField","findField","findCompoundField","find","isScalarField","isDataControl","c","isGroupControl","fieldHasTag","tag","_field$tags","Boolean","includes","fieldDisplayName","_field$displayName","hasOptions","o","_o$options$length","_o$options","defaultControlForField","title","groupOptions","hideTitle","_sf$tags","htmlEditor","renderOptions","HtmlEditor","Standard","findReferencedControl","control","findReferencedControlInArray","controls","_iterator","_createForOfIteratorHelperLoose","_step","done","ref","addMissingControls","changes","flatMap","existing","changedCompounds","ex","cf","concat","controlTitle","renderControl","definition","key","formState","fieldData","React","createElement","DataRenderer","controlDef","d","GroupRenderer","groupDef","ActionRenderer","actionDef","DisplayRenderer","displayDef","_ref","_effect","_useComponentTracking","_props$customRender","props","hooks","useDataProperties","customRender","renderer","renderData","_ref2","_effect2","actionControlProperties","useActionProperties","renderAction","_ref3","_effect3","groupProps","useGroupProperties","renderGroup","_ref4","_effect4","displayProps","useDisplayProperties","renderDisplay","controlForField","_ref5","refField","newControl","fieldForControl","AlwaysVisible","canChange","createAction","label","onClick","actionId","visible","visitControlData","_ref6","cb","compound","childState","res","useDefaultValue","_definition$dynamic","valueExpression","dynamic","DefaultValue","useExpression","useIsControlVisible","_definition$dynamic2","_onlyForTypes$length","visibleExpression","exprValue","schemaFields","_useMemo","useMemo","_formState$data$field","typeField","isTypeField","typeControl","fieldName","getDefaultScalarControlProperties","_definition$renderOpt","_definition$required","_formState$readonly","getOptionsForScalarField","readonly","_opts$length","opts","createDefaultSchemaHooks","Jsonata","jExpr","compiledExpr","jsonata","expression","useControl","useControlEffect","Promise","resolve","evaluate","then","_compiledExpr$evaluat","e","reject","fvExpr","useComputed","fv","Array","isArray","useValidators","isVisible","validators","useValidator","i","Date","processDateValidator","errorMsg","msg","setError","dv","comparisonDate","fixedDate","parse","nowDate","UTC","getFullYear","getMonth","getDate","daysFromCurrent","selDate","notAfter","comparison","NotAfter","toDateString","defaultFormEditHooks","createFormEditHooks","schemaHooks","invisible","scalarControl","useEffect","current","dataProps","subscription","subscribe","touched","ControlChange","Validate","unsubscribe","array","defaultArrayRendererProps","fs","_definition$groupOpti","newFs","childCount","renderChild","renderElem","_control$elements$len","_control$elements","elements","addAction","addElement","removeAction","removeElement","childKey","uniqueId","Fragment","emptyGroupDefinition","useControlDefinitionForSchema","createFormRenderer","customRenderers","defaultRenderers","_customRenderers$find","_customRenderers$find2","_customRenderers$find3","createClassStyledRenderers","dataRegistrations","isDataRegistration","adornmentRegistrations","isAdornmentRegistration","labelRenderer","isLabelRegistration","arrayRenderer","isArrayRegistration","renderVisibility","isVisibilityRegistration","render","formRenderers","renderLabel","renderArray","renderAdornment","_adornmentRegistratio","isOneOf","adornmentType","adornment","elem","withAdornments","adornments","_definition$adornment","_definition$adornment2","rAdornments","combineAdornments","placement","child","mainElem","reduce","_n$wrap","wrap","_dataRegistrations$fi","renderType","_x$collection","_field$collection","_x$options","schemaType","match","_withAdornments","wrapElem","createLabel","p","labelProps","_labelProps$title","forId","_withAdornments2","_customRenderers$find4","isActionRegistration","_withAdornments3","_withAdornments4","createDefaultActionRenderer","className","createDefaultLabelRenderer","requiredElement","DefaultLabelRenderer","labelClass","groupLabelClass","LabelStart","htmlFor","clsx","LabelEnd","ControlStart","ControlEnd","createDefaultArrayRenderer","removableClass","childClass","removableChildClass","removeActionClass","addActionClass","_ref7","from","_","createDefaultGroupRenderer","_ref8","_ref8$gridStyles","gridStyles","defaultGridStyles","_ref8$defaultGridColu","defaultGridColumns","gridClassName","standardClassName","_ref9","_ref9$columns","columns","style","gridTemplateColumns","defaultLabel","_ref10","renderChildren","_ref11","gcn","createDefaultDisplayRenderer","doRender","_ref12","displayData","Text","textClassName","text","Html","htmlClassName","dangerouslySetInnerHTML","__html","html","_ref13","DefaultBoolOptions","name","createDefaultDataRenderer","_options$selectOption","selectRenderer","createSelectRenderer","selectOptions","_optionRenderer$boole","optionRenderer","booleanOptions","inputClass","createDataRenderer","renderers","fieldType","isBool","Dropdown","l","Checkbox","Fcheckbox","ControlInput","id","readOnly","convert","createInputConversion","_ref14","_objectWithoutPropertiesLoose","_excluded","_formControlProps","formControlProps","errorText","onChange","inputProps","_excluded2","target","createDefaultAdornmentRenderer","createDefaultVisibilityRenderer","createDefaultRenderers","createArrayRenderer","createDataRendererLabelled","dl","createLabelRenderer","createAdornmentRenderer","SelectDataRenderer","state","emptyText","requiredText","createSelectConversion","_ref15","_ref15$emptyText","_ref15$requiredText","_excluded3","disabled","_useState","useState","showEmpty","optionStringMap","ft","Double","a","_a$toString","toString","_a$toString2","parseInt","parseFloat","defaultTailwindTheme"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/types.ts","../src/schemaBuilder.ts","../src/controlBuilder.ts","../src/util.ts","../src/controlRender.tsx","../src/hooks.tsx","../src/renderers.tsx","../src/tailwind.tsx"],"sourcesContent":["export interface SchemaField {\n type: string;\n field: string;\n displayName?: string | null;\n tags?: string[] | null;\n system?: boolean | null;\n collection?: boolean | null;\n onlyForTypes?: string[] | null;\n required?: boolean | null;\n defaultValue?: any;\n isTypeField?: boolean | null;\n searchable?: boolean | null;\n options?: FieldOption[] | null;\n validators?: SchemaValidator[] | null;\n}\n\nexport enum FieldType {\n String = \"String\",\n Bool = \"Bool\",\n Int = \"Int\",\n Date = \"Date\",\n DateTime = \"DateTime\",\n Double = \"Double\",\n EntityRef = \"EntityRef\",\n Compound = \"Compound\",\n AutoId = \"AutoId\",\n Image = \"Image\",\n Any = \"Any\",\n}\n\nexport interface EntityRefField extends SchemaField {\n type: FieldType.EntityRef;\n entityRefType: string;\n parentField: string;\n}\n\nexport interface FieldOption {\n name: string;\n value: any;\n}\n\nexport interface CompoundField extends SchemaField {\n type: FieldType.Compound;\n children: SchemaField[];\n treeChildren?: boolean;\n}\n\nexport type AnyControlDefinition =\n | DataControlDefinition\n | GroupedControlsDefinition\n | ActionControlDefinition\n | DisplayControlDefinition;\n\nexport interface ControlDefinition {\n type: string;\n title?: string | null;\n dynamic?: DynamicProperty[] | null;\n adornments?: ControlAdornment[] | null;\n}\n\nexport enum ControlDefinitionType {\n Data = \"Data\",\n Group = \"Group\",\n Display = \"Display\",\n Action = \"Action\",\n}\n\nexport interface DynamicProperty {\n type: string;\n expr: EntityExpression;\n}\n\nexport enum DynamicPropertyType {\n Visible = \"Visible\",\n DefaultValue = \"DefaultValue\",\n}\n\nexport interface EntityExpression {\n type: string;\n}\n\nexport enum ExpressionType {\n Jsonata = \"Jsonata\",\n FieldValue = \"FieldValue\",\n UserMatch = \"UserMatch\",\n}\n\nexport interface JsonataExpression extends EntityExpression {\n type: ExpressionType.Jsonata;\n expression: string;\n}\n\nexport interface FieldValueExpression extends EntityExpression {\n type: ExpressionType.FieldValue;\n field: string;\n value: any;\n}\n\nexport interface UserMatchExpression extends EntityExpression {\n type: ExpressionType.UserMatch;\n userMatch: string;\n}\n\nexport interface ControlAdornment {\n type: string;\n}\n\nexport enum AdornmentPlacement {\n ControlStart = \"ControlStart\",\n ControlEnd = \"ControlEnd\",\n LabelStart = \"LabelStart\",\n LabelEnd = \"LabelEnd\",\n}\n\nexport enum ControlAdornmentType {\n Tooltip = \"Tooltip\",\n Accordion = \"Accordion\",\n HelpText = \"HelpText\",\n}\n\nexport interface TooltipAdornment extends ControlAdornment {\n type: ControlAdornmentType.Tooltip;\n tooltip: string;\n}\n\nexport interface AccordionAdornment extends ControlAdornment {\n type: ControlAdornmentType.Accordion;\n title: string;\n defaultExpanded: boolean;\n}\n\nexport interface HelpTextAdornment extends ControlAdornment {\n type: ControlAdornmentType.HelpText;\n helpText: string;\n placement: AdornmentPlacement;\n}\n\nexport interface DataControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Data;\n field: string;\n required?: boolean | null;\n renderOptions?: RenderOptions | null;\n defaultValue?: any;\n readonly?: boolean | null;\n validators?: SchemaValidator[] | null;\n}\n\nexport interface RenderOptions {\n type: string;\n}\n\nexport enum DataRenderType {\n Standard = \"Standard\",\n Radio = \"Radio\",\n HtmlEditor = \"HtmlEditor\",\n IconList = \"IconList\",\n CheckList = \"CheckList\",\n UserSelection = \"UserSelection\",\n Synchronised = \"Synchronised\",\n IconSelector = \"IconSelector\",\n DateTime = \"DateTime\",\n Checkbox = \"Checkbox\",\n Dropdown = \"Dropdown\",\n}\n\nexport interface RadioButtonRenderOptions extends RenderOptions {\n type: DataRenderType.Radio;\n}\n\nexport interface StandardRenderer extends RenderOptions {\n type: DataRenderType.Standard;\n}\n\nexport interface HtmlEditorRenderOptions extends RenderOptions {\n type: DataRenderType.HtmlEditor;\n allowImages: boolean;\n}\n\nexport interface DateTimeRenderOptions extends RenderOptions {\n type: DataRenderType.DateTime;\n format?: string | null;\n}\n\nexport interface IconListRenderOptions extends RenderOptions {\n type: DataRenderType.IconList;\n iconMappings: IconMapping[];\n}\n\nexport interface IconMapping {\n value: string;\n materialIcon?: string | null;\n}\n\nexport interface CheckListRenderOptions extends RenderOptions {\n type: DataRenderType.CheckList;\n}\n\nexport interface SynchronisedRenderOptions extends RenderOptions {\n type: DataRenderType.Synchronised;\n fieldToSync: string;\n syncType: SyncTextType;\n}\n\nexport enum SyncTextType {\n Camel = \"Camel\",\n Snake = \"Snake\",\n Pascal = \"Pascal\",\n}\n\nexport interface UserSelectionRenderOptions extends RenderOptions {\n type: DataRenderType.UserSelection;\n noGroups: boolean;\n noUsers: boolean;\n}\n\nexport interface IconSelectionRenderOptions extends RenderOptions {\n type: DataRenderType.IconSelector;\n}\n\nexport interface GroupedControlsDefinition extends ControlDefinition {\n type: ControlDefinitionType.Group;\n children: ControlDefinition[];\n compoundField?: string | null;\n groupOptions: GroupRenderOptions;\n}\n\nexport interface GroupRenderOptions {\n type: string;\n hideTitle?: boolean | null;\n}\n\nexport enum GroupRenderType {\n Standard = \"Standard\",\n Grid = \"Grid\",\n GroupElement = \"GroupElement\",\n}\n\nexport interface StandardGroupRenderer extends GroupRenderOptions {\n type: GroupRenderType.Standard;\n}\n\nexport interface GroupElementRenderer extends GroupRenderOptions {\n type: GroupRenderType.GroupElement;\n value: any;\n}\n\nexport interface GridRenderer extends GroupRenderOptions {\n type: GroupRenderType.Grid;\n columns?: number | null;\n}\n\nexport interface DisplayControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Display;\n displayData: DisplayData;\n}\n\nexport interface DisplayData {\n type: string;\n}\n\nexport enum DisplayDataType {\n Text = \"Text\",\n Html = \"Html\",\n}\n\nexport interface TextDisplay extends DisplayData {\n type: DisplayDataType.Text;\n text: string;\n}\n\nexport interface HtmlDisplay extends DisplayData {\n type: DisplayDataType.Html;\n html: string;\n}\n\nexport interface ActionControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Action;\n actionId: string;\n}\n\nexport enum ValidatorType {\n Jsonata = \"Jsonata\",\n Date = \"Date\",\n}\nexport interface SchemaValidator {\n type: string;\n}\n\nexport interface JsonataValidator extends SchemaValidator {\n type: ValidatorType.Jsonata;\n expression: string;\n}\n\nexport enum DateComparison {\n NotBefore = \"NotBefore\",\n NotAfter = \"NotAfter\",\n}\n\nexport interface DateValidator extends SchemaValidator {\n type: ValidatorType.Date;\n comparison: DateComparison;\n fixedDate?: string | null;\n daysFromCurrent?: number | null;\n}\n\nexport function isDataControlDefinition(\n x: ControlDefinition,\n): x is DataControlDefinition {\n return x.type === ControlDefinitionType.Data;\n}\n\nexport function isGroupControlsDefinition(\n x: ControlDefinition,\n): x is GroupedControlsDefinition {\n return x.type === ControlDefinitionType.Group;\n}\n\nexport function isDisplayControlsDefinition(\n x: ControlDefinition,\n): x is DisplayControlDefinition {\n return x.type === ControlDefinitionType.Display;\n}\n\nexport function isActionControlsDefinition(\n x: ControlDefinition,\n): x is ActionControlDefinition {\n return x.type === ControlDefinitionType.Action;\n}\n\nexport interface ControlVisitor<A> {\n data(d: DataControlDefinition): A;\n group(d: GroupedControlsDefinition): A;\n display(d: DisplayControlDefinition): A;\n action(d: ActionControlDefinition): A;\n}\n\nexport function visitControlDefinition<A>(\n x: ControlDefinition,\n visitor: ControlVisitor<A>,\n defaultValue: (c: ControlDefinition) => A,\n): A {\n switch (x.type) {\n case ControlDefinitionType.Action:\n return visitor.action(x as ActionControlDefinition);\n case ControlDefinitionType.Data:\n return visitor.data(x as DataControlDefinition);\n case ControlDefinitionType.Display:\n return visitor.display(x as DisplayControlDefinition);\n case ControlDefinitionType.Group:\n return visitor.group(x as GroupedControlsDefinition);\n default:\n return defaultValue(x);\n }\n}\nexport function isGridRenderer(\n options: GroupRenderOptions,\n): options is GridRenderer {\n return options.type === GroupRenderType.Grid;\n}\n","import { CompoundField, FieldOption, FieldType, SchemaField } from \"./types\";\n\ntype AllowedSchema<T> = T extends string\n ? SchemaField & {\n type: FieldType.String | FieldType.Date | FieldType.DateTime;\n }\n : T extends number\n ? SchemaField & {\n type: FieldType.Int | FieldType.Double;\n }\n : T extends boolean\n ? SchemaField & {\n type: FieldType.Bool;\n }\n : T extends Array<infer E>\n ? AllowedSchema<E> & {\n collection: true;\n }\n : T extends { [key: string]: any }\n ? CompoundField & {\n type: FieldType.Compound;\n }\n : SchemaField & { type: FieldType.Any };\n\ntype AllowedField<T, K> = (\n name: string\n) => (SchemaField & { type: K }) | AllowedSchema<T>;\n\nexport function buildSchema<T, Custom = \"\">(def: {\n [K in keyof T]-?: AllowedField<T[K], Custom>;\n}): SchemaField[] {\n return Object.entries(def).map((x) =>\n (x[1] as (n: string) => SchemaField)(x[0])\n );\n}\n\nexport function stringField(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>\n) {\n return makeScalarField({\n type: FieldType.String as const,\n displayName,\n ...options,\n });\n}\n\nexport function stringOptionsField(\n displayName: string,\n ...options: FieldOption[]\n) {\n return makeScalarField({\n type: FieldType.String as const,\n displayName,\n options,\n });\n}\n\nexport function withScalarOptions<S extends SchemaField>(\n options: Partial<SchemaField>,\n v: (name: string) => S\n): (name: string) => S {\n return (n) => ({ ...v(n), ...options });\n}\n\nexport function makeScalarField<S extends Partial<SchemaField>>(\n options: S\n): (name: string) => SchemaField & S {\n return (n) => ({ ...defaultScalarField(n, n), ...options });\n}\n\nexport function makeCompoundField<S extends Partial<CompoundField>>(\n options: S\n): (name: string) => CompoundField & {\n type: FieldType.Compound;\n} & S {\n return (n) => ({ ...defaultCompoundField(n, n, false), ...options });\n}\n\nexport function intField(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>\n) {\n return makeScalarField({\n type: FieldType.Int as const,\n displayName,\n ...options,\n });\n}\n\nexport function boolField(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>\n) {\n return makeScalarField({\n type: FieldType.Bool as const,\n displayName,\n ...options,\n });\n}\n\nexport function compoundField<\n Other extends Partial<Omit<CompoundField, \"type\" | \"schemaType\">>\n>(\n displayName: string,\n fields: SchemaField[],\n other: Other\n): (name: string) => CompoundField & {\n collection: Other[\"collection\"];\n} {\n return (field) =>\n ({\n ...defaultCompoundField(field, displayName, false),\n ...other,\n children: fields,\n } as any);\n}\n\nexport function defaultScalarField(\n field: string,\n displayName: string\n): Omit<SchemaField, \"type\"> & {\n type: FieldType.String;\n} {\n return {\n field,\n displayName,\n type: FieldType.String,\n };\n}\n\nexport function defaultCompoundField(\n field: string,\n displayName: string,\n collection: boolean\n): CompoundField & {\n type: FieldType.Compound;\n} {\n return {\n tags: [],\n field,\n displayName,\n type: FieldType.Compound,\n collection,\n system: false,\n treeChildren: false,\n children: [],\n onlyForTypes: [],\n required: true,\n };\n}\n","import {\n ControlDefinitionType,\n DataControlDefinition,\n DisplayControlDefinition,\n DisplayDataType,\n DynamicProperty,\n DynamicPropertyType,\n EntityExpression,\n ExpressionType,\n FieldValueExpression,\n HtmlDisplay,\n JsonataExpression,\n TextDisplay,\n} from \"./types\";\n\nexport function dataControl(\n field: string,\n title?: string | null,\n options?: Partial<DataControlDefinition>,\n): DataControlDefinition {\n return { type: ControlDefinitionType.Data, field, title, ...options };\n}\n\nexport function textDisplayControl(\n text: string,\n options?: Partial<DisplayControlDefinition>,\n): DisplayControlDefinition {\n return {\n type: ControlDefinitionType.Display,\n displayData: { type: DisplayDataType.Text, text } as TextDisplay,\n ...options,\n };\n}\n\nexport function htmlDisplayControl(\n html: string,\n options?: Partial<DisplayControlDefinition>,\n): DisplayControlDefinition {\n return {\n type: ControlDefinitionType.Display,\n displayData: { type: DisplayDataType.Html, html } as HtmlDisplay,\n ...options,\n };\n}\n\nexport function visibility(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Visible, expr };\n}\n\nexport function fieldEqExpr(field: string, value: any): FieldValueExpression {\n return { type: ExpressionType.FieldValue, field, value };\n}\nexport function jsonataExpr(expression: string): JsonataExpression {\n return { type: ExpressionType.Jsonata, expression };\n}\n","import {\n CompoundField,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataRenderType,\n FieldOption,\n FieldType,\n GridRenderer,\n GroupedControlsDefinition,\n GroupRenderType,\n SchemaField,\n} from \"./types\";\n\nexport function applyDefaultValues(\n v: { [k: string]: any } | undefined,\n fields: SchemaField[],\n): any {\n if (!v) return defaultValueForFields(fields);\n const applyValue = fields.filter(\n (x) => isCompoundField(x) || !(x.field in v),\n );\n if (!applyValue.length) return v;\n const out = { ...v };\n applyValue.forEach((x) => {\n out[x.field] =\n x.field in v\n ? applyDefaultForField(v[x.field], x, fields)\n : defaultValueForField(x);\n });\n return out;\n}\n\nexport function applyDefaultForField(\n v: any,\n field: SchemaField,\n parent: SchemaField[],\n notElement?: boolean,\n): any {\n if (field.collection && !notElement) {\n return ((v as any[]) ?? []).map((x) =>\n applyDefaultForField(x, field, parent, true),\n );\n }\n if (isCompoundField(field)) {\n if (!v && !field.required) return v;\n return applyDefaultValues(v, field.treeChildren ? parent : field.children);\n }\n return defaultValueForField(field);\n}\n\nexport function defaultValueForFields(fields: SchemaField[]): any {\n return Object.fromEntries(\n fields.map((x) => [x.field, defaultValueForField(x)]),\n );\n}\n\nexport function defaultValueForField(sf: SchemaField): any {\n if (isCompoundField(sf)) {\n return sf.required\n ? sf.collection\n ? []\n : defaultValueForFields(sf.children)\n : undefined;\n }\n if (sf.collection) return [];\n return sf.defaultValue;\n}\n\nexport function elementValueForField(sf: SchemaField): any {\n if (isCompoundField(sf)) {\n return defaultValueForFields(sf.children);\n }\n return sf.defaultValue;\n}\n\nexport function findScalarField(\n fields: SchemaField[],\n field: string,\n): SchemaField | undefined {\n return findField(fields, field);\n}\n\nexport function findCompoundField(\n fields: SchemaField[],\n field: string,\n): CompoundField | undefined {\n return findField(fields, field) as CompoundField | undefined;\n}\n\nexport function findField(\n fields: SchemaField[],\n field: string,\n): SchemaField | undefined {\n return fields.find((x) => x.field === field);\n}\n\nexport function isScalarField(sf: SchemaField): sf is SchemaField {\n return !isCompoundField(sf);\n}\n\nexport function isCompoundField(sf: SchemaField): sf is CompoundField {\n return sf.type === FieldType.Compound;\n}\n\nexport function isDataControl(\n c: ControlDefinition,\n): c is DataControlDefinition {\n return c.type === ControlDefinitionType.Data;\n}\n\nexport function isGroupControl(\n c: ControlDefinition,\n): c is GroupedControlsDefinition {\n return c.type === ControlDefinitionType.Group;\n}\n\nexport function fieldHasTag(field: SchemaField, tag: string) {\n return Boolean(field.tags?.includes(tag));\n}\n\nexport function fieldDisplayName(field: SchemaField) {\n return field.displayName ?? field.field;\n}\n\nexport function hasOptions(o: { options: FieldOption[] | undefined | null }) {\n return (o.options?.length ?? 0) > 0;\n}\n\nexport function defaultControlForField(\n sf: SchemaField,\n): DataControlDefinition | GroupedControlsDefinition {\n if (isCompoundField(sf)) {\n return {\n type: ControlDefinitionType.Group,\n title: sf.displayName,\n compoundField: sf.field,\n groupOptions: {\n type: GroupRenderType.Grid,\n hideTitle: false,\n } as GridRenderer,\n children: sf.children.map(defaultControlForField),\n } satisfies GroupedControlsDefinition;\n } else if (isScalarField(sf)) {\n const htmlEditor = sf.tags?.includes(\"_HtmlEditor\");\n return {\n type: ControlDefinitionType.Data,\n title: sf.displayName,\n field: sf.field,\n required: sf.required,\n renderOptions: {\n type: htmlEditor ? DataRenderType.HtmlEditor : DataRenderType.Standard,\n },\n } satisfies DataControlDefinition;\n }\n throw \"Unknown schema field\";\n}\nfunction findReferencedControl(\n field: string,\n control: ControlDefinition,\n): ControlDefinition | undefined {\n if (isDataControl(control) && field === control.field) return control;\n if (isGroupControl(control)) {\n if (control.compoundField)\n return field === control.compoundField ? control : undefined;\n return findReferencedControlInArray(field, control.children);\n }\n return undefined;\n}\n\nfunction findReferencedControlInArray(\n field: string,\n controls: ControlDefinition[],\n): ControlDefinition | undefined {\n for (const c of controls) {\n const ref = findReferencedControl(field, c);\n if (ref) return ref;\n }\n return undefined;\n}\n\nexport function addMissingControls(\n fields: SchemaField[],\n controls: ControlDefinition[],\n): ControlDefinition[] {\n const changes: {\n field: SchemaField;\n existing: ControlDefinition | undefined;\n }[] = fields.flatMap((x) => {\n if (fieldHasTag(x, \"_NoControl\")) return [];\n const existing = findReferencedControlInArray(x.field, controls);\n if (!existing || isCompoundField(x)) return { field: x, existing };\n return [];\n });\n const changedCompounds = controls.map((x) => {\n const ex = changes.find((c) => c.existing === x);\n if (!ex) return x;\n const cf = x as GroupedControlsDefinition;\n return {\n ...cf,\n children: addMissingControls(\n (ex.field as CompoundField).children,\n cf.children,\n ),\n };\n });\n return changedCompounds.concat(\n changes\n .filter((x) => !x.existing)\n .map((x) => defaultControlForField(x.field)),\n );\n}\n","import {\n ActionControlDefinition,\n AdornmentPlacement,\n CompoundField,\n ControlAdornment,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DisplayControlDefinition,\n EntityExpression,\n FieldOption,\n GroupedControlsDefinition,\n RenderOptions,\n SchemaField,\n SchemaValidator,\n visitControlDefinition,\n} from \"./types\";\nimport React, { Key, ReactElement, ReactNode } from \"react\";\nimport { Control, newControl } from \"@react-typed-forms/core\";\nimport {\n fieldDisplayName,\n findCompoundField,\n findField,\n findScalarField,\n isDataControl,\n isGroupControl,\n} from \"./util\";\n\nexport interface SchemaHooks {\n useExpression(\n expr: EntityExpression,\n formState: FormEditState,\n ): Control<any | undefined>;\n useValidators(\n formState: FormEditState,\n isVisible: boolean,\n control: Control<any>,\n required: boolean,\n validations?: SchemaValidator[] | null,\n ): void;\n}\n\nexport interface FormEditHooks {\n useDataProperties(\n formState: FormEditState,\n definition: DataControlDefinition,\n field: SchemaField,\n ): DataRendererProps;\n useGroupProperties(\n formState: FormEditState,\n definition: GroupedControlsDefinition,\n ): GroupRendererProps;\n useDisplayProperties(\n formState: FormEditState,\n definition: DisplayControlDefinition,\n ): DisplayRendererProps;\n useActionProperties(\n formState: FormEditState,\n definition: ActionControlDefinition,\n ): ActionRendererProps;\n schemaHooks: SchemaHooks;\n}\n\nexport interface DataRendererProps {\n definition: DataControlDefinition;\n renderOptions: RenderOptions;\n visible: Visibility;\n control: Control<any>;\n field: SchemaField;\n array?: ArrayRendererProps;\n readonly: boolean;\n defaultValue: any;\n required: boolean;\n options: FieldOption[] | undefined | null;\n customRender?: (props: DataRendererProps) => ReactElement;\n formState: FormEditState;\n}\n\nexport interface GroupRendererProps {\n definition: Omit<GroupedControlsDefinition, \"children\">;\n visible: Visibility;\n field?: CompoundField;\n array?: ArrayRendererProps;\n hideTitle: boolean;\n hooks: FormEditHooks;\n childCount: number;\n renderChild: (child: number) => ReactElement;\n}\n\nexport interface ControlData {\n [field: string]: any;\n}\n\nexport interface FormDataContext {\n fields: SchemaField[];\n data: Control<ControlData>;\n}\nexport interface FormEditState extends FormDataContext {\n hooks: FormEditHooks;\n renderer: FormRenderer;\n readonly?: boolean;\n invisible?: boolean;\n}\n\nexport type RenderControlOptions = Omit<FormEditState, \"data\">;\n\nexport interface ArrayRendererProps {\n definition: DataControlDefinition | GroupedControlsDefinition;\n control: Control<any[]>;\n field: SchemaField;\n addAction?: ActionRendererProps;\n removeAction?: (childCount: number) => ActionRendererProps;\n childCount: number;\n renderChild: (childCount: number) => ReactElement;\n childKey: (childCount: number) => Key;\n}\n\nexport interface AdornmentProps {\n key: Key;\n definition: ControlAdornment;\n}\n\nexport interface AdornmentRenderer {\n wrap?: (children: ReactElement) => ReactElement;\n child?: [AdornmentPlacement, ReactNode];\n}\n\nexport interface FormRenderer {\n renderData: (props: DataRendererProps) => ReactElement;\n renderGroup: (props: GroupRendererProps) => ReactElement;\n renderDisplay: (props: DisplayRendererProps) => ReactElement;\n renderAction: (props: ActionRendererProps) => ReactElement;\n renderArray: (props: ArrayRendererProps) => ReactElement;\n renderLabel: (props: LabelRendererProps, elem: ReactElement) => ReactElement;\n renderVisibility: (visible: Visibility, elem: ReactElement) => ReactElement;\n renderAdornment: (props: AdornmentProps) => AdornmentRenderer;\n}\n\nexport interface Visibility {\n value: boolean;\n canChange: boolean;\n}\nexport interface LabelRendererProps {\n visible: Visibility;\n title?: ReactNode;\n forId?: string;\n required: boolean;\n control?: Control<any>;\n group?: boolean;\n renderAdornment: (placement: AdornmentPlacement) => ReactElement;\n}\n\nexport interface DisplayRendererProps {\n definition: DisplayControlDefinition;\n visible: Visibility;\n}\n\nexport interface ActionRendererProps {\n definition: ActionControlDefinition;\n visible: Visibility;\n onClick: () => void;\n}\n\nexport type AnySchemaFields =\n | SchemaField\n | (Omit<CompoundField, \"children\"> & { children: AnySchemaFields[] });\n\nexport function controlTitle(\n title: string | undefined | null,\n field: SchemaField,\n) {\n return title ? title : fieldDisplayName(field);\n}\n\nexport function renderControl<S extends ControlDefinition>(\n definition: S,\n data: Control<any>,\n options: RenderControlOptions,\n key?: Key,\n): ReactElement {\n const { fields } = options;\n const formState = { ...options, data };\n return visitControlDefinition(\n definition,\n {\n data: (def) => {\n const fieldData = findScalarField(fields, def.field);\n if (!fieldData)\n return <h1 key={key}>No schema field for: {def.field}</h1>;\n return (\n <DataRenderer\n key={key}\n formState={formState}\n controlDef={def}\n fieldData={fieldData}\n />\n );\n },\n group: (d: GroupedControlsDefinition) => (\n <GroupRenderer key={key} groupDef={d} formState={formState} />\n ),\n action: (d: ActionControlDefinition) => (\n <ActionRenderer key={key} formState={formState} actionDef={d} />\n ),\n display: (d: DisplayControlDefinition) => (\n <DisplayRenderer key={key} formState={formState} displayDef={d} />\n ),\n },\n () => <h1>Unknown control: {(definition as any).type}</h1>,\n );\n}\n\n/** @trackControls */\nfunction DataRenderer({\n formState,\n controlDef,\n fieldData,\n}: {\n controlDef: DataControlDefinition;\n formState: FormEditState;\n fieldData: SchemaField;\n}) {\n const props = formState.hooks.useDataProperties(\n formState,\n controlDef,\n fieldData,\n );\n return (props.customRender ?? formState.renderer.renderData)(props);\n}\n\n/** @trackControls */\nfunction ActionRenderer({\n formState,\n actionDef,\n}: {\n actionDef: ActionControlDefinition;\n formState: FormEditState;\n}) {\n const actionControlProperties = formState.hooks.useActionProperties(\n formState,\n actionDef,\n );\n return formState.renderer.renderAction(actionControlProperties);\n}\n\n/** @trackControls */\nfunction GroupRenderer({\n formState,\n groupDef,\n}: {\n groupDef: GroupedControlsDefinition;\n formState: FormEditState;\n}) {\n const groupProps = formState.hooks.useGroupProperties(formState, groupDef);\n return formState.renderer.renderGroup(groupProps);\n}\n\n/** @trackControls */\nfunction DisplayRenderer({\n formState,\n displayDef,\n}: {\n displayDef: DisplayControlDefinition;\n formState: FormEditState;\n}) {\n const displayProps = formState.hooks.useDisplayProperties(\n formState,\n displayDef,\n );\n return formState.renderer.renderDisplay(displayProps);\n}\n\nexport function controlForField(\n field: string,\n formState: FormEditState,\n): Control<any> {\n const refField = findField(formState.fields, field);\n return (\n (refField && formState.data.fields[refField.field]) ?? newControl(undefined)\n );\n}\n\nexport function fieldForControl(c: ControlDefinition) {\n return isDataControl(c)\n ? c.field\n : isGroupControl(c)\n ? c.compoundField\n : undefined;\n}\n\nexport const AlwaysVisible: Visibility = { value: true, canChange: false };\n\nexport function createAction(\n label: string,\n onClick: () => void,\n actionId?: string,\n): ActionRendererProps {\n return {\n definition: {\n type: ControlDefinitionType.Action,\n actionId: actionId ?? label,\n title: label,\n },\n visible: AlwaysVisible,\n onClick,\n };\n}\n\nexport function visitControlData<S extends ControlDefinition, A>(\n definition: S,\n { fields, data }: FormDataContext,\n cb: (\n definition: DataControlDefinition,\n control: Control<any>,\n ) => A | undefined,\n): A | undefined {\n return visitControlDefinition<A | undefined>(\n definition,\n {\n data(def: DataControlDefinition) {\n const fieldData = findScalarField(fields, def.field);\n if (!fieldData) return undefined;\n return cb(def, data.fields[fieldData.field]);\n },\n group(d: GroupedControlsDefinition) {\n if (d.compoundField) {\n const compound = findCompoundField(fields, d.compoundField);\n if (!compound) return;\n fields = compound.children;\n data = data.fields[compound.field];\n }\n const childState = { fields, data };\n for (let c of d.children) {\n const res = visitControlData(c, childState, cb);\n if (res !== undefined) return res;\n }\n return undefined;\n },\n action(d: ActionControlDefinition) {\n return undefined;\n },\n display(d: DisplayControlDefinition) {\n return undefined;\n },\n },\n () => undefined,\n );\n}\n","import {\n ActionControlDefinition,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataRenderType,\n DateComparison,\n DateValidator,\n DynamicPropertyType,\n EntityExpression,\n ExpressionType,\n FieldOption,\n FieldValueExpression,\n GroupedControlsDefinition,\n GroupRenderType,\n JsonataExpression,\n SchemaField,\n SchemaValidator,\n ValidatorType,\n} from \"./types\";\nimport {\n ActionRendererProps,\n ArrayRendererProps,\n controlForField,\n controlTitle,\n DataRendererProps,\n fieldForControl,\n FormEditHooks,\n FormEditState,\n GroupRendererProps,\n renderControl,\n RenderControlOptions,\n SchemaHooks,\n Visibility,\n} from \"./controlRender\";\nimport React, { Fragment, ReactElement, useEffect, useMemo } from \"react\";\nimport {\n addElement,\n Control,\n ControlChange,\n newControl,\n removeElement,\n useComputed,\n useControl,\n useControlEffect,\n useValidator,\n} from \"@react-typed-forms/core\";\nimport jsonata from \"jsonata\";\nimport {\n addMissingControls,\n elementValueForField,\n findCompoundField,\n findField,\n isGroupControl,\n isScalarField,\n} from \"./util\";\n\nexport function useDefaultValue(\n definition: DataControlDefinition,\n field: SchemaField,\n formState: FormEditState,\n hooks: SchemaHooks,\n) {\n const valueExpression = definition.dynamic?.find(\n (x) => x.type === DynamicPropertyType.DefaultValue,\n );\n if (valueExpression) {\n return hooks.useExpression(valueExpression.expr, formState).value;\n }\n return field.defaultValue;\n}\n\nexport function useIsControlVisible(\n definition: ControlDefinition,\n formState: FormEditState,\n hooks: SchemaHooks,\n): Visibility {\n const visibleExpression = definition.dynamic?.find(\n (x) => x.type === DynamicPropertyType.Visible,\n );\n if (visibleExpression && visibleExpression.expr) {\n const exprValue = hooks.useExpression(\n visibleExpression.expr,\n formState,\n ).value;\n return {\n value: Boolean(exprValue),\n canChange: true,\n };\n }\n const schemaFields = formState.fields;\n\n const { typeControl, compoundField } = useMemo(() => {\n const typeField = schemaFields.find(\n (x) => isScalarField(x) && x.isTypeField,\n ) as SchemaField | undefined;\n\n const typeControl = ((typeField &&\n formState.data.fields?.[typeField.field]) ??\n newControl(undefined)) as Control<string | undefined>;\n const compoundField =\n isGroupControl(definition) && definition.compoundField\n ? formState.data.fields[definition.compoundField]\n : undefined;\n return { typeControl, compoundField };\n }, [schemaFields, formState.data]);\n\n const fieldName = fieldForControl(definition);\n const onlyForTypes = (\n fieldName ? findField(schemaFields, fieldName) : undefined\n )?.onlyForTypes;\n const canChange = Boolean(compoundField || (onlyForTypes?.length ?? 0) > 0);\n const value =\n (!compoundField || compoundField.value != null) &&\n (!onlyForTypes ||\n onlyForTypes.length === 0 ||\n Boolean(typeControl.value && onlyForTypes.includes(typeControl.value)));\n return { value, canChange };\n}\n\nexport function getDefaultScalarControlProperties(\n definition: DataControlDefinition,\n field: SchemaField,\n visible: Visibility,\n defaultValue: any,\n control: Control<any>,\n formState: FormEditState,\n): DataRendererProps {\n return {\n definition,\n field,\n defaultValue,\n options: getOptionsForScalarField(field),\n renderOptions: definition.renderOptions ?? {\n type: DataRenderType.Standard,\n },\n required: definition.required ?? false,\n visible,\n readonly: formState.readonly ?? definition.readonly ?? false,\n control,\n formState,\n };\n}\n\nexport function getOptionsForScalarField(\n field: SchemaField,\n): FieldOption[] | undefined | null {\n const opts = field.options;\n if (opts?.length ?? 0 > 0) {\n return opts;\n }\n return undefined;\n}\n\nexport function createDefaultSchemaHooks(): SchemaHooks {\n function useExpression(\n expr: EntityExpression,\n formState: FormEditState,\n ): Control<any | undefined> {\n switch (expr.type) {\n case ExpressionType.Jsonata:\n const jExpr = expr as JsonataExpression;\n const compiledExpr = useMemo(\n () => jsonata(jExpr.expression),\n [jExpr.expression],\n );\n const control = useControl();\n useControlEffect(\n () => formState.data.value,\n async (v) => {\n control.value = await compiledExpr.evaluate(v);\n },\n true,\n );\n return control;\n case ExpressionType.FieldValue:\n const fvExpr = expr as FieldValueExpression;\n return useComputed(() => {\n const fv = controlForField(fvExpr.field, formState).value;\n return Array.isArray(fv)\n ? fv.includes(fvExpr.value)\n : fv === fvExpr.value;\n });\n default:\n return useControl(undefined);\n }\n }\n\n function useValidators(\n formState: FormEditState,\n isVisible: boolean,\n control: Control<any>,\n required: boolean,\n validators?: SchemaValidator[] | null,\n ) {\n if (required)\n useValidator(\n control,\n (v) =>\n isVisible && (v == null || v == \"\") ? \"Please enter a value\" : null,\n \"required\",\n );\n validators?.forEach((v, i) => {\n switch (v.type) {\n case ValidatorType.Date:\n processDateValidator(v as DateValidator);\n break;\n case ValidatorType.Jsonata:\n const errorMsg = useExpression(\n v satisfies EntityExpression,\n formState,\n );\n useControlEffect(\n () => [isVisible, errorMsg.value],\n ([isVisible, msg]) =>\n control.setError(v.type + i, isVisible ? msg : null),\n true,\n );\n break;\n }\n\n function processDateValidator(dv: DateValidator) {\n let comparisonDate: number;\n if (dv.fixedDate) {\n comparisonDate = Date.parse(dv.fixedDate);\n } else {\n const nowDate = new Date();\n comparisonDate = Date.UTC(\n nowDate.getFullYear(),\n nowDate.getMonth(),\n nowDate.getDate(),\n );\n if (dv.daysFromCurrent) {\n comparisonDate += dv.daysFromCurrent * 86400000;\n }\n }\n useValidator(\n control,\n (v) => {\n if (v) {\n const selDate = Date.parse(v);\n const notAfter = dv.comparison === DateComparison.NotAfter;\n if (\n notAfter ? selDate > comparisonDate : selDate < comparisonDate\n ) {\n return `Date must not be ${\n notAfter ? \"after\" : \"before\"\n } ${new Date(comparisonDate).toDateString()}`;\n }\n }\n return null;\n },\n \"date\" + i,\n );\n }\n });\n }\n return { useExpression, useValidators };\n}\n\nexport const defaultFormEditHooks = createFormEditHooks(\n createDefaultSchemaHooks(),\n);\n\nexport function createFormEditHooks(schemaHooks: SchemaHooks): FormEditHooks {\n return {\n schemaHooks,\n useDataProperties(formState, definition, field): DataRendererProps {\n const visible = useIsControlVisible(definition, formState, schemaHooks);\n const isVisible = visible.value && !formState.invisible;\n const defaultValue = useDefaultValue(\n definition,\n field,\n formState,\n schemaHooks,\n );\n const scalarControl = formState.data.fields[field.field];\n\n useEffect(() => {\n if (!isVisible) scalarControl.value = null;\n else if (scalarControl.current.value == null) {\n scalarControl.value = defaultValue;\n }\n }, [isVisible, defaultValue]);\n\n const dataProps = getDefaultScalarControlProperties(\n definition,\n field,\n visible,\n defaultValue,\n scalarControl,\n formState,\n );\n\n schemaHooks.useValidators(\n formState,\n isVisible,\n scalarControl,\n dataProps.required,\n definition.validators,\n );\n\n useEffect(() => {\n const subscription = scalarControl.subscribe(\n (c) => (c.touched = true),\n ControlChange.Validate,\n );\n return () => scalarControl.unsubscribe(subscription);\n }, []);\n\n if (!field.collection) return dataProps;\n return {\n ...dataProps,\n array: defaultArrayRendererProps(\n scalarControl,\n field,\n definition,\n dataProps.readonly,\n (c) => formState.renderer.renderData({ ...dataProps, control: c }),\n ),\n };\n },\n useDisplayProperties: (fs, definition) => {\n const visible = useIsControlVisible(definition, fs, schemaHooks);\n return { visible, definition };\n },\n useGroupProperties: (fs, definition) => {\n const visible = useIsControlVisible(definition, fs, schemaHooks);\n const field = definition.compoundField\n ? findCompoundField(fs.fields, definition.compoundField)\n : undefined;\n const newFs: RenderControlOptions = {\n ...fs,\n fields: field ? field.children : fs.fields,\n invisible: !visible.value || fs.invisible,\n };\n const data = field ? fs.data.fields[field.field] : fs.data;\n const groupProps = {\n visible,\n hooks: fs.hooks,\n hideTitle: definition.groupOptions.hideTitle ?? false,\n childCount: definition.children.length,\n renderChild: (i) =>\n renderControl(definition.children[i], data, newFs, i),\n definition,\n } satisfies GroupRendererProps;\n if (field?.collection) {\n return {\n ...groupProps,\n array: defaultArrayRendererProps(\n data,\n field,\n definition,\n fs.readonly,\n (e) =>\n fs.renderer.renderGroup({\n ...groupProps,\n hideTitle: true,\n renderChild: (i) =>\n renderControl(definition.children[i], e, newFs, i),\n }),\n ),\n };\n }\n return groupProps;\n },\n useActionProperties(\n formState: FormEditState,\n definition: ActionControlDefinition,\n ): ActionRendererProps {\n const visible = useIsControlVisible(definition, formState, schemaHooks);\n return {\n visible,\n onClick: () => {},\n definition,\n };\n },\n };\n}\n\nfunction defaultArrayRendererProps(\n control: Control<any[]>,\n field: SchemaField,\n definition: DataControlDefinition | GroupedControlsDefinition,\n readonly: boolean | undefined | null,\n renderElem: (c: Control<any>) => ReactElement,\n): ArrayRendererProps {\n return {\n control,\n childCount: control.elements?.length ?? 0,\n field,\n definition,\n addAction: !readonly\n ? {\n definition: {\n title: \"Add \" + controlTitle(definition.title, field),\n type: ControlDefinitionType.Action,\n actionId: \"addElement\",\n },\n visible: { value: true, canChange: false },\n onClick: () => addElement(control, elementValueForField(field)),\n }\n : undefined,\n removeAction: !readonly\n ? (i) => ({\n definition: {\n title: \"Remove\",\n type: ControlDefinitionType.Action,\n actionId: \"removeElement\",\n },\n visible: { value: true, canChange: false },\n onClick: () => removeElement(control, control.elements[i]),\n })\n : undefined,\n childKey: (i) => control.elements[i].uniqueId,\n renderChild: (i) => {\n const c = control.elements[i];\n return <Fragment key={c.uniqueId}>{renderElem(c)}</Fragment>;\n },\n };\n}\n\nexport const emptyGroupDefinition: GroupedControlsDefinition = {\n type: ControlDefinitionType.Group,\n children: [],\n groupOptions: { type: GroupRenderType.Standard, hideTitle: true },\n};\n\nexport function useControlDefinitionForSchema(\n sf: SchemaField[],\n definition: GroupedControlsDefinition = emptyGroupDefinition,\n): GroupedControlsDefinition {\n return useMemo<GroupedControlsDefinition>(\n () => ({\n ...definition,\n children: addMissingControls(sf, definition.children),\n }),\n [sf, definition],\n );\n}\n","import React, {\n CSSProperties,\n Fragment,\n ReactElement,\n ReactNode,\n useMemo,\n useState,\n} from \"react\";\nimport {\n ActionRendererProps,\n AdornmentProps,\n AdornmentRenderer,\n ArrayRendererProps,\n controlTitle,\n DataRendererProps,\n DisplayRendererProps,\n FormRenderer,\n GroupRendererProps,\n LabelRendererProps,\n Visibility,\n} from \"./controlRender\";\nimport clsx from \"clsx\";\nimport {\n AdornmentPlacement,\n ControlDefinition,\n DataRenderType,\n DisplayDataType,\n FieldOption,\n FieldType,\n GridRenderer,\n HtmlDisplay,\n isGridRenderer,\n TextDisplay,\n} from \"./types\";\nimport { Control, Fcheckbox, formControlProps } from \"@react-typed-forms/core\";\nimport { hasOptions } from \"./util\";\n\nexport interface DefaultRenderers {\n data: DataRendererRegistration;\n label: LabelRendererRegistration;\n action: ActionRendererRegistration;\n array: ArrayRendererRegistration;\n group: GroupRendererRegistration;\n display: DisplayRendererRegistration;\n visibility: VisibilityRendererRegistration;\n adornment: AdornmentRendererRegistration;\n}\nexport interface DataRendererRegistration {\n type: \"data\";\n schemaType?: string | string[];\n renderType?: string | string[];\n options?: boolean;\n collection?: boolean;\n match?: (props: DataRendererProps) => boolean;\n render: (\n props: DataRendererProps,\n defaultLabel: (label?: Partial<LabelRendererProps>) => LabelRendererProps,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface LabelRendererRegistration {\n type: \"label\";\n render: (\n labelProps: LabelRendererProps,\n elem: ReactElement,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface ActionRendererRegistration {\n type: \"action\";\n render: (props: ActionRendererProps, renderers: FormRenderer) => ReactElement;\n}\n\nexport interface ArrayRendererRegistration {\n type: \"array\";\n render: (props: ArrayRendererProps, renderers: FormRenderer) => ReactElement;\n}\n\nexport interface GroupRendererRegistration {\n type: \"group\";\n render: (\n props: GroupRendererProps,\n defaultLabel: (label?: Partial<LabelRendererProps>) => LabelRendererProps,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface DisplayRendererRegistration {\n type: \"display\";\n render: (\n props: DisplayRendererProps,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface VisibilityRendererRegistration {\n type: \"visibility\";\n render: (visible: Visibility, elem: ReactElement) => ReactElement;\n}\n\nexport interface AdornmentRendererRegistration {\n type: \"adornment\";\n adornmentType?: string | string[];\n render: (props: AdornmentProps) => AdornmentRenderer;\n}\n\nexport type RendererRegistration =\n | DataRendererRegistration\n | GroupRendererRegistration\n | DisplayRendererRegistration\n | ActionRendererRegistration\n | LabelRendererRegistration\n | ArrayRendererRegistration\n | AdornmentRendererRegistration\n | VisibilityRendererRegistration;\n\nexport function createFormRenderer(\n customRenderers: RendererRegistration[] = [],\n defaultRenderers: DefaultRenderers = createClassStyledRenderers(),\n): FormRenderer {\n const dataRegistrations = customRenderers.filter(isDataRegistration);\n const adornmentRegistrations = customRenderers.filter(\n isAdornmentRegistration,\n );\n const labelRenderer =\n customRenderers.find(isLabelRegistration) ?? defaultRenderers.label;\n const arrayRenderer =\n customRenderers.find(isArrayRegistration) ?? defaultRenderers.array;\n const renderVisibility = (\n customRenderers.find(isVisibilityRegistration) ??\n defaultRenderers.visibility\n ).render;\n\n const formRenderers = {\n renderAction,\n renderData,\n renderGroup,\n renderDisplay,\n renderLabel,\n renderArray,\n renderVisibility,\n renderAdornment,\n };\n\n function renderAdornment(props: AdornmentProps): AdornmentRenderer {\n const renderer =\n adornmentRegistrations.find((x) =>\n isOneOf(x.adornmentType, props.definition.type),\n ) ?? defaultRenderers.adornment;\n return renderer.render(props);\n }\n\n function renderArray(props: ArrayRendererProps) {\n return arrayRenderer.render(props, formRenderers);\n }\n\n function renderLabel(props: LabelRendererProps, elem: ReactElement) {\n return labelRenderer.render(props, elem, formRenderers);\n }\n\n function withAdornments(\n definition: ControlDefinition,\n adornments?: AdornmentRenderer[],\n ): [\n AdornmentRenderer[],\n (placement: AdornmentPlacement) => ReactElement,\n (elem: ReactElement) => ReactElement,\n ] {\n const rAdornments = adornments\n ? adornments\n : definition.adornments?.map((x, i) =>\n renderAdornment({ definition: x, key: i }),\n ) ?? [];\n function combineAdornments(placement: AdornmentPlacement) {\n return (\n <>\n {rAdornments\n .filter((x) => x.child && x.child[0] === placement)\n .map((x) => x.child![1])}\n </>\n );\n }\n return [\n rAdornments,\n combineAdornments,\n (mainElem) =>\n !adornments\n ? mainElem\n : rAdornments.reduce((e, n) => n.wrap?.(e) ?? e, mainElem),\n ];\n }\n\n function renderData(\n props: DataRendererProps,\n adornments?: AdornmentRenderer[],\n ): ReactElement {\n const {\n definition,\n renderOptions: { type: renderType },\n visible,\n required,\n control,\n field,\n } = props;\n\n const options = hasOptions(props);\n const renderer =\n dataRegistrations.find(\n (x) =>\n (x.collection ?? false) === (field.collection ?? false) &&\n (x.options ?? false) === options &&\n isOneOf(x.schemaType, field.type) &&\n isOneOf(x.renderType, renderType) &&\n (!x.match || x.match(props)),\n ) ?? defaultRenderers.data;\n\n const [rAdornments, renderAdornment, wrapElem] = withAdornments(\n definition,\n adornments,\n );\n return wrapElem(\n renderer.render(props, createLabel, {\n ...formRenderers,\n renderData: (p) => renderData(p, rAdornments),\n }),\n );\n\n function createLabel(labelProps?: Partial<LabelRendererProps>) {\n return {\n visible,\n required,\n control,\n forId: \"c\" + control.uniqueId,\n renderAdornment,\n ...labelProps,\n title: labelProps?.title ?? controlTitle(definition.title, field),\n };\n }\n }\n\n function renderGroup(\n props: GroupRendererProps,\n adornments?: AdornmentRenderer[],\n ): ReactElement {\n const { definition, visible, field } = props;\n\n const [rAdornments, renderAdornment, wrapElem] = withAdornments(\n props.definition,\n adornments,\n );\n\n const title = props.hideTitle\n ? undefined\n : field\n ? controlTitle(definition.title, field)\n : definition.title;\n\n return wrapElem(\n defaultRenderers.group.render(props, createLabel, {\n ...formRenderers,\n renderGroup: (p) => renderGroup(p, rAdornments),\n }),\n );\n\n function createLabel(\n labelProps?: Partial<LabelRendererProps>,\n ): LabelRendererProps {\n return {\n required: false,\n visible,\n group: true,\n renderAdornment,\n title,\n ...labelProps,\n };\n }\n }\n\n function renderAction(\n props: ActionRendererProps,\n adornments?: AdornmentRenderer[],\n ) {\n const renderer =\n customRenderers.find(isActionRegistration) ?? defaultRenderers.action;\n const [rAdornments, renderAdornment, wrapElem] = withAdornments(\n props.definition,\n adornments,\n );\n return wrapElem(renderer.render(props, formRenderers));\n }\n\n function renderDisplay(\n props: DisplayRendererProps,\n adornments?: AdornmentRenderer[],\n ) {\n const [rAdornments, renderAdornment, wrapElem] = withAdornments(\n props.definition,\n adornments,\n );\n return wrapElem(defaultRenderers.display.render(props, formRenderers));\n }\n\n return formRenderers;\n}\n\ninterface DefaultLabelRendererOptions {\n className?: string;\n groupLabelClass?: string;\n requiredElement?: ReactNode;\n labelClass?: string;\n}\n\ninterface DefaultActionRendererOptions {\n className?: string;\n}\n\nexport function createDefaultActionRenderer(\n options: DefaultActionRendererOptions = {},\n): ActionRendererRegistration {\n function render(\n { visible, onClick, definition: { title } }: ActionRendererProps,\n { renderVisibility }: Pick<FormRenderer, \"renderVisibility\">,\n ) {\n return renderVisibility(\n visible,\n <button className={options.className} onClick={onClick}>\n {title}\n </button>,\n );\n }\n return { render, type: \"action\" };\n}\nexport function createDefaultLabelRenderer(\n options: DefaultLabelRendererOptions = { requiredElement: <span> *</span> },\n): LabelRendererRegistration {\n return {\n render: (p, elem, { renderVisibility }) =>\n renderVisibility(\n p.visible,\n <DefaultLabelRenderer {...p} {...options} children={elem} />,\n ),\n type: \"label\",\n };\n}\n\nexport function DefaultLabelRenderer({\n className,\n labelClass,\n title,\n forId,\n required,\n children,\n group,\n groupLabelClass,\n renderAdornment,\n requiredElement,\n}: LabelRendererProps &\n DefaultLabelRendererOptions & { children: ReactElement }) {\n return title ? (\n <div className={className}>\n {renderAdornment(AdornmentPlacement.LabelStart)}\n <label\n htmlFor={forId}\n className={clsx(labelClass, group && groupLabelClass)}\n >\n {title}\n {required && requiredElement}\n </label>\n {renderAdornment(AdornmentPlacement.LabelEnd)}\n {renderAdornment(AdornmentPlacement.ControlStart)}\n {children}\n {renderAdornment(AdornmentPlacement.ControlEnd)}\n </div>\n ) : (\n <>{children}</>\n );\n}\n\ninterface DefaultArrayRendererOptions {\n className?: string;\n removableClass?: string;\n childClass?: string;\n removableChildClass?: string;\n removeActionClass?: string;\n addActionClass?: string;\n}\n\nexport function createDefaultArrayRenderer(\n options?: DefaultArrayRendererOptions,\n): ArrayRendererRegistration {\n const {\n className,\n removableClass,\n childClass,\n removableChildClass,\n removeActionClass,\n addActionClass,\n } = options ?? {};\n function render(\n {\n childCount,\n renderChild,\n addAction,\n removeAction,\n childKey,\n }: ArrayRendererProps,\n { renderAction }: Pick<FormRenderer, \"renderAction\">,\n ) {\n return (\n <>\n <div className={clsx(className, removeAction && removableClass)}>\n {Array.from({ length: childCount }, (_, x) =>\n removeAction ? (\n <Fragment key={childKey(x)}>\n <div className={clsx(childClass, removableChildClass)}>\n {renderChild(x)}\n </div>\n <div className={removeActionClass}>\n {renderAction(removeAction(x))}\n </div>\n </Fragment>\n ) : (\n <div key={childKey(x)} className={childClass}>\n {renderChild(x)}\n </div>\n ),\n )}\n </div>\n {addAction && (\n <div className={addActionClass}>{renderAction(addAction)}</div>\n )}\n </>\n );\n }\n return { render, type: \"array\" };\n}\n\ninterface StyleProps {\n className?: string;\n style?: CSSProperties;\n}\n\ninterface DefaultGroupRendererOptions {\n className?: string;\n standardClassName?: string;\n gridStyles?: (columns: GridRenderer) => StyleProps;\n gridClassName?: string;\n defaultGridColumns?: number;\n}\n\nexport function createDefaultGroupRenderer(\n options?: DefaultGroupRendererOptions,\n): GroupRendererRegistration {\n const {\n className,\n gridStyles = defaultGridStyles,\n defaultGridColumns = 2,\n gridClassName,\n standardClassName,\n } = options ?? {};\n\n function defaultGridStyles({\n columns = defaultGridColumns,\n }: GridRenderer): StyleProps {\n return {\n className: gridClassName,\n style: {\n display: \"grid\",\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n },\n };\n }\n\n function render(\n props: GroupRendererProps,\n defaultLabel: (label?: Partial<LabelRendererProps>) => LabelRendererProps,\n {\n renderLabel,\n renderArray,\n }: Pick<FormRenderer, \"renderLabel\" | \"renderArray\" | \"renderGroup\">,\n ) {\n const { childCount, renderChild, definition } = props;\n\n return renderLabel(\n defaultLabel(),\n props.array ? renderArray(props.array) : renderChildren(),\n );\n\n function renderChildren() {\n const { groupOptions } = definition;\n const { style, className: gcn } = isGridRenderer(groupOptions)\n ? gridStyles(groupOptions)\n : ({ className: standardClassName } satisfies StyleProps);\n return (\n <div className={clsx(className, gcn)} style={style}>\n {Array.from({ length: childCount }, (_, x) => renderChild(x))}\n </div>\n );\n }\n }\n return { type: \"group\", render };\n}\n\nexport interface DefaultDisplayRendererOptions {\n textClassName?: string;\n htmlClassName?: string;\n}\nexport function createDefaultDisplayRenderer(\n options: DefaultDisplayRendererOptions = {},\n): DisplayRendererRegistration {\n function doRender({ definition: { displayData } }: DisplayRendererProps) {\n switch (displayData.type) {\n case DisplayDataType.Text:\n return (\n <div className={options.textClassName}>\n {(displayData as TextDisplay).text}\n </div>\n );\n case DisplayDataType.Html:\n return (\n <div\n className={options.htmlClassName}\n dangerouslySetInnerHTML={{\n __html: (displayData as HtmlDisplay).html,\n }}\n />\n );\n default:\n return <h1>Unknown display type: {displayData.type}</h1>;\n }\n }\n return {\n render: (p, { renderVisibility }) =>\n renderVisibility(p.visible, doRender(p)),\n type: \"display\",\n };\n}\n\nexport const DefaultBoolOptions: FieldOption[] = [\n { name: \"Yes\", value: true },\n { name: \"No\", value: false },\n];\ninterface DefaultDataRendererOptions {\n inputClass?: string;\n selectOptions?: SelectRendererOptions;\n booleanOptions?: FieldOption[];\n optionRenderer?: DataRendererRegistration;\n}\n\nexport function createDefaultDataRenderer(\n options: DefaultDataRendererOptions = {},\n): DataRendererRegistration {\n const selectRenderer = createSelectRenderer(options.selectOptions ?? {});\n const { inputClass, booleanOptions, optionRenderer } = {\n optionRenderer: selectRenderer,\n booleanOptions: DefaultBoolOptions,\n ...options,\n };\n return createDataRenderer((props, defaultLabel, renderers) => {\n if (props.array) {\n return renderers.renderArray(props.array);\n }\n let renderType = props.renderOptions.type;\n const fieldType = props.field.type;\n const isBool = fieldType === FieldType.Bool;\n if (booleanOptions != null && isBool && props.options == null) {\n return renderers.renderData({ ...props, options: booleanOptions });\n }\n if (renderType === DataRenderType.Standard && hasOptions(props)) {\n return optionRenderer.render(props, defaultLabel, renderers);\n }\n switch (renderType) {\n case DataRenderType.Dropdown:\n return selectRenderer.render(props, defaultLabel, renderers);\n }\n const l = defaultLabel();\n return renderers.renderLabel(\n l,\n renderType === DataRenderType.Checkbox ? (\n <Fcheckbox control={props.control} />\n ) : (\n <ControlInput\n className={inputClass}\n id={l.forId}\n readOnly={props.readonly}\n control={props.control}\n convert={createInputConversion(props.field.type)}\n />\n ),\n );\n });\n}\n\nexport function ControlInput({\n control,\n convert,\n ...props\n}: React.InputHTMLAttributes<HTMLInputElement> & {\n control: Control<any>;\n convert: InputConversion;\n}) {\n const { errorText, value, onChange, ...inputProps } =\n formControlProps(control);\n return (\n <input\n {...inputProps}\n type={convert[0]}\n value={value == null ? \"\" : convert[2](value)}\n onChange={(e) => {\n control.value = convert[1](e.target.value);\n }}\n {...props}\n />\n );\n}\n\nexport interface DefaultVisibilityRendererOptions {}\n\nexport interface DefaultAdornmentRendererOptions {}\n\nexport function createDefaultAdornmentRenderer(\n options: DefaultAdornmentRendererOptions = {},\n): AdornmentRendererRegistration {\n return { type: \"adornment\", render: () => ({}) };\n}\nexport function createDefaultVisibilityRenderer(\n options: DefaultVisibilityRendererOptions = {},\n): VisibilityRendererRegistration {\n return {\n type: \"visibility\",\n render: (visible, children) => (visible.value ? children : <></>),\n };\n}\n\nexport interface DefaultRendererOptions {\n data?: DefaultDataRendererOptions;\n display?: DefaultDisplayRendererOptions;\n action?: DefaultActionRendererOptions;\n array?: DefaultArrayRendererOptions;\n group?: DefaultGroupRendererOptions;\n label?: DefaultLabelRendererOptions;\n visibility?: DefaultVisibilityRendererOptions;\n adornment?: DefaultAdornmentRendererOptions;\n}\n\nexport function createDefaultRenderers(\n options: DefaultRendererOptions = {},\n): DefaultRenderers {\n return {\n data: createDefaultDataRenderer(options.data),\n display: createDefaultDisplayRenderer(options.display),\n action: createDefaultActionRenderer(options.action),\n array: createDefaultArrayRenderer(options.array),\n group: createDefaultGroupRenderer(options.group),\n label: createDefaultLabelRenderer(options.label),\n visibility: createDefaultVisibilityRenderer(options.visibility),\n adornment: createDefaultAdornmentRenderer(options.adornment),\n };\n}\n\nfunction createClassStyledRenderers() {\n return createDefaultRenderers({\n label: { className: \"control\" },\n group: { className: \"group\" },\n array: { className: \"control-array\" },\n action: { className: \"action\" },\n data: { inputClass: \"data\" },\n display: { htmlClassName: \"html\", textClassName: \"text\" },\n });\n}\n\nfunction isAdornmentRegistration(\n x: RendererRegistration,\n): x is AdornmentRendererRegistration {\n return x.type === \"adornment\";\n}\n\nfunction isDataRegistration(\n x: RendererRegistration,\n): x is DataRendererRegistration {\n return x.type === \"data\";\n}\n\nfunction isLabelRegistration(\n x: RendererRegistration,\n): x is LabelRendererRegistration {\n return x.type === \"label\";\n}\n\nfunction isActionRegistration(\n x: RendererRegistration,\n): x is ActionRendererRegistration {\n return x.type === \"action\";\n}\n\nfunction isArrayRegistration(\n x: RendererRegistration,\n): x is ArrayRendererRegistration {\n return x.type === \"array\";\n}\n\nfunction isVisibilityRegistration(\n x: RendererRegistration,\n): x is VisibilityRendererRegistration {\n return x.type === \"visibility\";\n}\n\nfunction isOneOf(x: string | string[] | undefined, v: string) {\n return x == null ? true : Array.isArray(x) ? x.includes(v) : v === x;\n}\n\nexport function createArrayRenderer(\n render: ArrayRendererRegistration[\"render\"],\n options?: Partial<ArrayRendererRegistration>,\n): ArrayRendererRegistration {\n return { type: \"array\", render, ...options };\n}\n\nexport function createDataRenderer(\n render: DataRendererRegistration[\"render\"],\n options?: Partial<DataRendererRegistration>,\n): DataRendererRegistration {\n return { type: \"data\", render, ...options };\n}\n\nexport function createDataRendererLabelled(\n render: (\n props: DataRendererProps,\n id: string,\n renderers: FormRenderer,\n ) => ReactElement,\n options?: Partial<DataRendererRegistration>,\n): DataRendererRegistration {\n return {\n type: \"data\",\n render: (props, defaultLabel, renderers) => {\n const dl = defaultLabel();\n return renderers.renderLabel(dl, render(props, dl.forId!, renderers));\n },\n ...options,\n };\n}\n\nexport function createLabelRenderer(\n options: Omit<LabelRendererRegistration, \"type\">,\n): LabelRendererRegistration {\n return { type: \"label\", ...options };\n}\n\nexport function createAdornmentRenderer(\n render: (props: AdornmentProps) => AdornmentRenderer,\n options?: Omit<AdornmentRendererRegistration, \"type\">,\n): AdornmentRendererRegistration {\n return { type: \"adornment\", ...options, render };\n}\n\nexport interface SelectRendererOptions {\n className?: string;\n emptyText?: string;\n requiredText?: string;\n}\n\nexport function createSelectRenderer(options: SelectRendererOptions = {}) {\n return createDataRendererLabelled(\n (props, id) => (\n <SelectDataRenderer\n className={options.className}\n state={props.control}\n id={id}\n options={props.options!}\n required={props.required}\n emptyText={options.emptyText}\n requiredText={options.requiredText}\n convert={createSelectConversion(props.field.type)}\n />\n ),\n {\n options: true,\n },\n );\n}\n\ntype SelectConversion = (a: any) => string | number;\n\ninterface SelectDataRendererProps {\n id?: string;\n className?: string;\n options: {\n name: string;\n value: any;\n disabled?: boolean;\n }[];\n emptyText?: string;\n requiredText?: string;\n required: boolean;\n state: Control<any>;\n convert: SelectConversion;\n}\n\nexport function SelectDataRenderer({\n state,\n options,\n className,\n convert,\n required,\n emptyText = \"N/A\",\n requiredText = \"<please select>\",\n ...props\n}: SelectDataRendererProps) {\n const { value, disabled } = state;\n const [showEmpty] = useState(!required || value == null);\n const optionStringMap = useMemo(\n () => Object.fromEntries(options.map((x) => [convert(x.value), x.value])),\n [options],\n );\n return (\n <select\n {...props}\n className={className}\n onChange={(v) => (state.value = optionStringMap[v.target.value])}\n value={convert(value)}\n disabled={disabled}\n >\n {showEmpty && (\n <option value=\"\">{required ? requiredText : emptyText}</option>\n )}\n {options.map((x, i) => (\n <option key={i} value={convert(x.value)} disabled={x.disabled}>\n {x.name}\n </option>\n ))}\n </select>\n );\n}\n\nexport function createSelectConversion(ft: string): SelectConversion {\n switch (ft) {\n case FieldType.String:\n case FieldType.Int:\n case FieldType.Double:\n return (a) => a;\n default:\n return (a) => a?.toString() ?? \"\";\n }\n}\n\ntype InputConversion = [string, (s: any) => any, (a: any) => string | number];\n\nexport function createInputConversion(ft: string): InputConversion {\n switch (ft) {\n case FieldType.String:\n return [\"text\", (a) => a, (a) => a];\n case FieldType.Bool:\n return [\"text\", (a) => a === \"true\", (a) => a?.toString() ?? \"\"];\n case FieldType.Int:\n return [\n \"number\",\n (a) => (a !== \"\" ? parseInt(a) : null),\n (a) => (a == null ? \"\" : a),\n ];\n case FieldType.Date:\n return [\"date\", (a) => a, (a) => a];\n case FieldType.Double:\n return [\"number\", (a) => parseFloat(a), (a) => a];\n default:\n return [\"text\", (a) => a, (a) => a];\n }\n}\n","import React from \"react\";\nimport { DefaultRendererOptions } from \"./renderers\";\n\nexport const defaultTailwindTheme: DefaultRendererOptions = {\n label: {\n className: \"flex flex-col\",\n groupLabelClass: \"font-bold\",\n requiredElement: <span className=\"text-red-500\"> *</span>,\n },\n array: {\n removableClass: \"grid grid-cols-[1fr_auto] items-center gap-x-2\",\n childClass: \"grow\",\n },\n group: {\n standardClassName: \"space-y-4\",\n gridClassName: \"gap-x-2 gap-y-4\",\n },\n action: {\n className: \"bg-primary rounded-lg p-3 text-white\",\n },\n};\n"],"names":["FieldType","ControlDefinitionType","DynamicPropertyType","ExpressionType","AdornmentPlacement","ControlAdornmentType","DataRenderType","SyncTextType","GroupRenderType","DisplayDataType","ValidatorType","DateComparison","isDataControlDefinition","x","type","Data","isGroupControlsDefinition","Group","isDisplayControlsDefinition","Display","isActionControlsDefinition","Action","visitControlDefinition","visitor","defaultValue","action","data","display","group","isGridRenderer","options","Grid","buildSchema","def","Object","entries","map","stringField","displayName","makeScalarField","_extends","String","stringOptionsField","slice","call","arguments","withScalarOptions","v","n","defaultScalarField","makeCompoundField","defaultCompoundField","intField","Int","boolField","Bool","compoundField","fields","other","field","children","collection","tags","Compound","system","treeChildren","onlyForTypes","required","dataControl","title","textDisplayControl","text","displayData","Text","htmlDisplayControl","html","Html","visibility","expr","Visible","fieldEqExpr","value","FieldValue","jsonataExpr","expression","Jsonata","applyDefaultValues","defaultValueForFields","applyValue","filter","isCompoundField","length","out","forEach","applyDefaultForField","defaultValueForField","parent","notElement","fromEntries","sf","undefined","elementValueForField","findScalarField","findField","findCompoundField","find","isScalarField","isDataControl","c","isGroupControl","fieldHasTag","tag","_field$tags","Boolean","includes","fieldDisplayName","_field$displayName","hasOptions","o","_o$options$length","_o$options","defaultControlForField","groupOptions","hideTitle","_sf$tags","htmlEditor","renderOptions","HtmlEditor","Standard","findReferencedControl","control","findReferencedControlInArray","controls","_iterator","_createForOfIteratorHelperLoose","_step","done","ref","addMissingControls","changes","flatMap","existing","changedCompounds","ex","cf","concat","controlTitle","renderControl","definition","key","formState","fieldData","React","createElement","DataRenderer","controlDef","d","GroupRenderer","groupDef","ActionRenderer","actionDef","DisplayRenderer","displayDef","_ref","_effect","_useComponentTracking","_props$customRender","props","hooks","useDataProperties","customRender","renderer","renderData","_ref2","_effect2","actionControlProperties","useActionProperties","renderAction","_ref3","_effect3","groupProps","useGroupProperties","renderGroup","_ref4","_effect4","displayProps","useDisplayProperties","renderDisplay","controlForField","_ref5","refField","newControl","fieldForControl","AlwaysVisible","canChange","createAction","label","onClick","actionId","visible","visitControlData","_ref6","cb","compound","childState","res","useDefaultValue","_definition$dynamic","valueExpression","dynamic","DefaultValue","useExpression","useIsControlVisible","_definition$dynamic2","_onlyForTypes$length","visibleExpression","exprValue","schemaFields","_useMemo","useMemo","_formState$data$field","typeField","isTypeField","typeControl","fieldName","getDefaultScalarControlProperties","_definition$renderOpt","_definition$required","_formState$readonly","getOptionsForScalarField","readonly","_opts$length","opts","createDefaultSchemaHooks","jExpr","compiledExpr","jsonata","useControl","useControlEffect","Promise","resolve","evaluate","then","_compiledExpr$evaluat","e","reject","fvExpr","useComputed","fv","Array","isArray","useValidators","isVisible","validators","useValidator","i","Date","processDateValidator","errorMsg","msg","setError","dv","comparisonDate","fixedDate","parse","nowDate","UTC","getFullYear","getMonth","getDate","daysFromCurrent","selDate","notAfter","comparison","NotAfter","toDateString","defaultFormEditHooks","createFormEditHooks","schemaHooks","invisible","scalarControl","useEffect","current","dataProps","subscription","subscribe","touched","ControlChange","Validate","unsubscribe","array","defaultArrayRendererProps","fs","_definition$groupOpti","newFs","childCount","renderChild","renderElem","_control$elements$len","_control$elements","elements","addAction","addElement","removeAction","removeElement","childKey","uniqueId","Fragment","emptyGroupDefinition","useControlDefinitionForSchema","createFormRenderer","customRenderers","defaultRenderers","_customRenderers$find","_customRenderers$find2","_customRenderers$find3","createClassStyledRenderers","dataRegistrations","isDataRegistration","adornmentRegistrations","isAdornmentRegistration","labelRenderer","isLabelRegistration","arrayRenderer","isArrayRegistration","renderVisibility","isVisibilityRegistration","render","formRenderers","renderLabel","renderArray","renderAdornment","_adornmentRegistratio","isOneOf","adornmentType","adornment","elem","withAdornments","adornments","_definition$adornment","_definition$adornment2","rAdornments","combineAdornments","placement","child","mainElem","reduce","_n$wrap","wrap","_dataRegistrations$fi","renderType","_x$collection","_field$collection","_x$options","schemaType","match","_withAdornments","wrapElem","createLabel","p","labelProps","_labelProps$title","forId","_withAdornments2","_customRenderers$find4","isActionRegistration","_withAdornments3","_withAdornments4","createDefaultActionRenderer","className","createDefaultLabelRenderer","requiredElement","DefaultLabelRenderer","labelClass","groupLabelClass","LabelStart","htmlFor","clsx","LabelEnd","ControlStart","ControlEnd","createDefaultArrayRenderer","removableClass","childClass","removableChildClass","removeActionClass","addActionClass","_ref7","from","_","createDefaultGroupRenderer","_ref8","_ref8$gridStyles","gridStyles","defaultGridStyles","_ref8$defaultGridColu","defaultGridColumns","gridClassName","standardClassName","_ref9","_ref9$columns","columns","style","gridTemplateColumns","defaultLabel","_ref10","renderChildren","_ref11","gcn","createDefaultDisplayRenderer","doRender","_ref12","textClassName","htmlClassName","dangerouslySetInnerHTML","__html","_ref13","DefaultBoolOptions","name","createDefaultDataRenderer","_options$selectOption","selectRenderer","createSelectRenderer","selectOptions","_optionRenderer$boole","optionRenderer","booleanOptions","inputClass","createDataRenderer","renderers","fieldType","isBool","Dropdown","l","Checkbox","Fcheckbox","ControlInput","id","readOnly","convert","createInputConversion","_ref14","_objectWithoutPropertiesLoose","_excluded","_formControlProps","formControlProps","errorText","onChange","inputProps","_excluded2","target","createDefaultAdornmentRenderer","createDefaultVisibilityRenderer","createDefaultRenderers","createArrayRenderer","createDataRendererLabelled","dl","createLabelRenderer","createAdornmentRenderer","SelectDataRenderer","state","emptyText","requiredText","createSelectConversion","_ref15","_ref15$emptyText","_ref15$requiredText","_excluded3","disabled","_useState","useState","showEmpty","optionStringMap","ft","Double","a","_a$toString","toString","_a$toString2","parseInt","parseFloat","defaultTailwindTheme"],"mappings":"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"}
package/lib/types.d.ts CHANGED
@@ -259,7 +259,4 @@ export interface ControlVisitor<A> {
259
259
  action(d: ActionControlDefinition): A;
260
260
  }
261
261
  export declare function visitControlDefinition<A>(x: ControlDefinition, visitor: ControlVisitor<A>, defaultValue: (c: ControlDefinition) => A): A;
262
- export declare function dataControl(field: string, options?: Partial<DataControlDefinition>): DataControlDefinition;
263
- export declare function fieldValueExpr(field: string, value: any): FieldValueExpression;
264
- export declare function visibility(expr: EntityExpression): DynamicProperty;
265
262
  export declare function isGridRenderer(options: GroupRenderOptions): options is GridRenderer;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-typed-forms/schemas",
3
- "version": "1.0.0-dev.22",
3
+ "version": "1.0.0-dev.23",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -30,7 +30,7 @@
30
30
  "react": "^18.2.0"
31
31
  },
32
32
  "devDependencies": {
33
- "@react-typed-forms/transform": "^0.1.0",
33
+ "@react-typed-forms/transform": "^0.2.0",
34
34
  "@types/react": "^18.2.28",
35
35
  "markdown-magic": "^2.6.1",
36
36
  "microbundle": "^0.15.1",
@@ -0,0 +1,55 @@
1
+ import {
2
+ ControlDefinitionType,
3
+ DataControlDefinition,
4
+ DisplayControlDefinition,
5
+ DisplayDataType,
6
+ DynamicProperty,
7
+ DynamicPropertyType,
8
+ EntityExpression,
9
+ ExpressionType,
10
+ FieldValueExpression,
11
+ HtmlDisplay,
12
+ JsonataExpression,
13
+ TextDisplay,
14
+ } from "./types";
15
+
16
+ export function dataControl(
17
+ field: string,
18
+ title?: string | null,
19
+ options?: Partial<DataControlDefinition>,
20
+ ): DataControlDefinition {
21
+ return { type: ControlDefinitionType.Data, field, title, ...options };
22
+ }
23
+
24
+ export function textDisplayControl(
25
+ text: string,
26
+ options?: Partial<DisplayControlDefinition>,
27
+ ): DisplayControlDefinition {
28
+ return {
29
+ type: ControlDefinitionType.Display,
30
+ displayData: { type: DisplayDataType.Text, text } as TextDisplay,
31
+ ...options,
32
+ };
33
+ }
34
+
35
+ export function htmlDisplayControl(
36
+ html: string,
37
+ options?: Partial<DisplayControlDefinition>,
38
+ ): DisplayControlDefinition {
39
+ return {
40
+ type: ControlDefinitionType.Display,
41
+ displayData: { type: DisplayDataType.Html, html } as HtmlDisplay,
42
+ ...options,
43
+ };
44
+ }
45
+
46
+ export function visibility(expr: EntityExpression): DynamicProperty {
47
+ return { type: DynamicPropertyType.Visible, expr };
48
+ }
49
+
50
+ export function fieldEqExpr(field: string, value: any): FieldValueExpression {
51
+ return { type: ExpressionType.FieldValue, field, value };
52
+ }
53
+ export function jsonataExpr(expression: string): JsonataExpression {
54
+ return { type: ExpressionType.Jsonata, expression };
55
+ }
package/src/hooks.tsx CHANGED
@@ -170,6 +170,7 @@ export function createDefaultSchemaHooks(): SchemaHooks {
170
170
  async (v) => {
171
171
  control.value = await compiledExpr.evaluate(v);
172
172
  },
173
+ true,
173
174
  );
174
175
  return control;
175
176
  case ExpressionType.FieldValue:
@@ -419,7 +420,7 @@ function defaultArrayRendererProps(
419
420
  };
420
421
  }
421
422
 
422
- const emptyGroupDefinition: GroupedControlsDefinition = {
423
+ export const emptyGroupDefinition: GroupedControlsDefinition = {
423
424
  type: ControlDefinitionType.Group,
424
425
  children: [],
425
426
  groupOptions: { type: GroupRenderType.Standard, hideTitle: true },
@@ -428,12 +429,12 @@ const emptyGroupDefinition: GroupedControlsDefinition = {
428
429
  export function useControlDefinitionForSchema(
429
430
  sf: SchemaField[],
430
431
  definition: GroupedControlsDefinition = emptyGroupDefinition,
431
- ) {
432
- return useMemo(
433
- () =>
434
- definition.children.length
435
- ? definition
436
- : { ...definition, children: addMissingControls(sf, []) },
432
+ ): GroupedControlsDefinition {
433
+ return useMemo<GroupedControlsDefinition>(
434
+ () => ({
435
+ ...definition,
436
+ children: addMissingControls(sf, definition.children),
437
+ }),
437
438
  [sf, definition],
438
439
  );
439
440
  }
package/src/index.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from "./types";
2
2
  export * from "./schemaBuilder";
3
+ export * from "./controlBuilder";
3
4
  export * from "./controlRender";
4
5
  export * from "./hooks";
5
6
  export * from "./util";
package/src/types.ts CHANGED
@@ -352,25 +352,6 @@ export function visitControlDefinition<A>(
352
352
  return defaultValue(x);
353
353
  }
354
354
  }
355
-
356
- export function dataControl(
357
- field: string,
358
- options?: Partial<DataControlDefinition>,
359
- ): DataControlDefinition {
360
- return { type: ControlDefinitionType.Data, field, ...options };
361
- }
362
-
363
- export function fieldValueExpr(
364
- field: string,
365
- value: any,
366
- ): FieldValueExpression {
367
- return { type: ExpressionType.FieldValue, field, value };
368
- }
369
-
370
- export function visibility(expr: EntityExpression): DynamicProperty {
371
- return { type: DynamicPropertyType.Visible, expr };
372
- }
373
-
374
355
  export function isGridRenderer(
375
356
  options: GroupRenderOptions,
376
357
  ): options is GridRenderer {