@react-typed-forms/schemas 5.0.2 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -36,11 +36,15 @@ exports.DynamicPropertyType = void 0;
36
36
  DynamicPropertyType["DefaultValue"] = "DefaultValue";
37
37
  DynamicPropertyType["Readonly"] = "Readonly";
38
38
  DynamicPropertyType["Disabled"] = "Disabled";
39
+ DynamicPropertyType["Display"] = "Display";
40
+ DynamicPropertyType["Style"] = "Style";
41
+ DynamicPropertyType["LayoutStyle"] = "LayoutStyle";
39
42
  })(exports.DynamicPropertyType || (exports.DynamicPropertyType = {}));
40
43
  exports.ExpressionType = void 0;
41
44
  (function (ExpressionType) {
42
45
  ExpressionType["Jsonata"] = "Jsonata";
43
- ExpressionType["FieldValue"] = "FieldValue";
46
+ ExpressionType["Data"] = "Data";
47
+ ExpressionType["DataMatch"] = "FieldValue";
44
48
  ExpressionType["UserMatch"] = "UserMatch";
45
49
  })(exports.ExpressionType || (exports.ExpressionType = {}));
46
50
  exports.AdornmentPlacement = void 0;
@@ -55,6 +59,7 @@ exports.ControlAdornmentType = void 0;
55
59
  ControlAdornmentType["Tooltip"] = "Tooltip";
56
60
  ControlAdornmentType["Accordion"] = "Accordion";
57
61
  ControlAdornmentType["HelpText"] = "HelpText";
62
+ ControlAdornmentType["Icon"] = "Icon";
58
63
  })(exports.ControlAdornmentType || (exports.ControlAdornmentType = {}));
59
64
  exports.DataRenderType = void 0;
60
65
  (function (DataRenderType) {
@@ -69,6 +74,7 @@ exports.DataRenderType = void 0;
69
74
  DataRenderType["DateTime"] = "DateTime";
70
75
  DataRenderType["Checkbox"] = "Checkbox";
71
76
  DataRenderType["Dropdown"] = "Dropdown";
77
+ DataRenderType["DisplayOnly"] = "DisplayOnly";
72
78
  })(exports.DataRenderType || (exports.DataRenderType = {}));
73
79
  exports.SyncTextType = void 0;
74
80
  (function (SyncTextType) {
@@ -80,12 +86,14 @@ exports.GroupRenderType = void 0;
80
86
  (function (GroupRenderType) {
81
87
  GroupRenderType["Standard"] = "Standard";
82
88
  GroupRenderType["Grid"] = "Grid";
89
+ GroupRenderType["Flex"] = "Flex";
83
90
  GroupRenderType["GroupElement"] = "GroupElement";
84
91
  })(exports.GroupRenderType || (exports.GroupRenderType = {}));
85
92
  exports.DisplayDataType = void 0;
86
93
  (function (DisplayDataType) {
87
94
  DisplayDataType["Text"] = "Text";
88
95
  DisplayDataType["Html"] = "Html";
96
+ DisplayDataType["Icon"] = "Icon";
89
97
  })(exports.DisplayDataType || (exports.DisplayDataType = {}));
90
98
  exports.ValidatorType = void 0;
91
99
  (function (ValidatorType) {
@@ -126,6 +134,12 @@ function visitControlDefinition(x, visitor, defaultValue) {
126
134
  function isGridRenderer(options) {
127
135
  return options.type === exports.GroupRenderType.Grid;
128
136
  }
137
+ function isFlexRenderer(options) {
138
+ return options.type === exports.GroupRenderType.Flex;
139
+ }
140
+ function isDisplayOnlyRenderer(options) {
141
+ return options.type === exports.DataRenderType.DisplayOnly;
142
+ }
129
143
 
130
144
  function _extends() {
131
145
  _extends = Object.assign ? Object.assign.bind() : function (target) {
@@ -418,6 +432,9 @@ function useUpdatedRef(a) {
418
432
  function isControlReadonly(c) {
419
433
  return isDataControl(c) && !!c.readonly;
420
434
  }
435
+ function getDisplayOnlyOptions(d) {
436
+ return isDataControlDefinition(d) && d.renderOptions && isDisplayOnlyRenderer(d.renderOptions) ? d.renderOptions : undefined;
437
+ }
421
438
  function getTypeField(context) {
422
439
  var _context$groupControl;
423
440
  var typeSchemaField = context.fields.find(function (x) {
@@ -466,7 +483,8 @@ function visitControlData(definition, ctx, cb) {
466
483
  if (isCompoundField(fieldData)) {
467
484
  var cfResult = visitControlDataArray(children, {
468
485
  fields: fieldData.children,
469
- groupControl: c
486
+ groupControl: c,
487
+ schemaInterface: ctx.schemaInterface
470
488
  }, cb);
471
489
  if (cfResult !== undefined) return cfResult;
472
490
  }
@@ -567,7 +585,7 @@ function dynamicDisabled(expr) {
567
585
  }
568
586
  function fieldEqExpr(field, value) {
569
587
  return {
570
- type: exports.ExpressionType.FieldValue,
588
+ type: exports.ExpressionType.DataMatch,
571
589
  field: field,
572
590
  value: value
573
591
  };
@@ -634,15 +652,23 @@ function useCalculatedControl(calculate) {
634
652
  });
635
653
  return c;
636
654
  }
655
+ function cc(n) {
656
+ return n ? n : undefined;
657
+ }
637
658
 
638
659
  function useEvalVisibilityHook(useEvalExpressionHook, definition, schemaField) {
639
660
  var dynamicVisibility = useEvalDynamicHook(definition, exports.DynamicPropertyType.Visible, useEvalExpressionHook);
640
- var r = useUpdatedRef(schemaField);
661
+ var r = useUpdatedRef({
662
+ schemaField: schemaField,
663
+ definition: definition
664
+ });
641
665
  return React.useCallback(function (ctx) {
642
666
  var _dynamicVisibility;
643
- var schemaField = r.current;
667
+ var _r$current = r.current,
668
+ schemaField = _r$current.schemaField,
669
+ definition = _r$current.definition;
644
670
  return (_dynamicVisibility = dynamicVisibility == null ? void 0 : dynamicVisibility(ctx)) != null ? _dynamicVisibility : core.useComputed(function () {
645
- return matchesType(ctx, schemaField == null ? void 0 : schemaField.onlyForTypes);
671
+ return matchesType(ctx, schemaField == null ? void 0 : schemaField.onlyForTypes) && (!schemaField || !hideDisplayOnly(ctx, schemaField, definition, ctx.schemaInterface));
646
672
  });
647
673
  }, [dynamicVisibility, r]);
648
674
  }
@@ -656,6 +682,13 @@ function useEvalReadonlyHook(useEvalExpressionHook, definition) {
656
682
  });
657
683
  }, [dynamicReadonly, r]);
658
684
  }
685
+ function useEvalStyleHook(useEvalExpressionHook, property, definition) {
686
+ var dynamicStyle = useEvalDynamicHook(definition, property, useEvalExpressionHook);
687
+ return React.useCallback(function (ctx) {
688
+ if (dynamicStyle) return dynamicStyle(ctx);
689
+ return core.useControl(undefined);
690
+ }, [dynamicStyle]);
691
+ }
659
692
  function useEvalDisabledHook(useEvalExpressionHook, definition) {
660
693
  var dynamicDisabled = useEvalDynamicHook(definition, exports.DynamicPropertyType.Disabled, useEvalExpressionHook);
661
694
  return React.useCallback(function (ctx) {
@@ -663,6 +696,12 @@ function useEvalDisabledHook(useEvalExpressionHook, definition) {
663
696
  return core.useControl(false);
664
697
  }, [dynamicDisabled]);
665
698
  }
699
+ function useEvalDisplayHook(useEvalExpressionHook, definition) {
700
+ var dynamicDisplay = useEvalDynamicHook(definition, exports.DynamicPropertyType.Display, useEvalExpressionHook);
701
+ return React.useCallback(function (ctx) {
702
+ return dynamicDisplay == null ? void 0 : dynamicDisplay(ctx);
703
+ }, [dynamicDisplay]);
704
+ }
666
705
  function useEvalDefaultValueHook(useEvalExpressionHook, definition, schemaField) {
667
706
  var dynamicValue = useEvalDynamicHook(definition, exports.DynamicPropertyType.DefaultValue, useEvalExpressionHook);
668
707
  var r = useUpdatedRef({
@@ -671,9 +710,9 @@ function useEvalDefaultValueHook(useEvalExpressionHook, definition, schemaField)
671
710
  });
672
711
  return React.useCallback(function (ctx) {
673
712
  var _dynamicValue;
674
- var _r$current = r.current,
675
- definition = _r$current.definition,
676
- schemaField = _r$current.schemaField;
713
+ var _r$current2 = r.current,
714
+ definition = _r$current2.definition,
715
+ schemaField = _r$current2.schemaField;
677
716
  return (_dynamicValue = dynamicValue == null ? void 0 : dynamicValue(ctx)) != null ? _dynamicValue : core.useComputed(calcDefault);
678
717
  function calcDefault() {
679
718
  var _ref = isDataControlDefinition(definition) ? [definition.required, definition.defaultValue] : [false, undefined],
@@ -683,7 +722,14 @@ function useEvalDefaultValueHook(useEvalExpressionHook, definition, schemaField)
683
722
  }
684
723
  }, [dynamicValue, r]);
685
724
  }
686
- function useFieldValueExpression(fvExpr, fields, data) {
725
+ function useDataExpression(fvExpr, fields, data) {
726
+ var refField = findField(fields, fvExpr.field);
727
+ var otherField = refField ? data.fields[refField.field] : undefined;
728
+ return useCalculatedControl(function () {
729
+ return otherField == null ? void 0 : otherField.value;
730
+ });
731
+ }
732
+ function useDataMatchExpression(fvExpr, fields, data) {
687
733
  var refField = findField(fields, fvExpr.field);
688
734
  var otherField = refField ? data.fields[refField.field] : undefined;
689
735
  return core.useComputed(function () {
@@ -695,8 +741,10 @@ function defaultEvalHooks(expr, context) {
695
741
  switch (expr.type) {
696
742
  case exports.ExpressionType.Jsonata:
697
743
  return useJsonataExpression(expr.expression, context.groupControl);
698
- case exports.ExpressionType.FieldValue:
699
- return useFieldValueExpression(expr, context.fields, context.groupControl);
744
+ case exports.ExpressionType.Data:
745
+ return useDataExpression(expr, context.fields, context.groupControl);
746
+ case exports.ExpressionType.DataMatch:
747
+ return useDataMatchExpression(expr, context.fields, context.groupControl);
700
748
  default:
701
749
  return core.useControl(undefined);
702
750
  }
@@ -724,9 +772,18 @@ function matchesType(context, types) {
724
772
  var typeField = getTypeField(context);
725
773
  return typeField && types.includes(typeField.value);
726
774
  }
775
+ function hideDisplayOnly(context, field, definition, schemaInterface) {
776
+ var displayOptions = getDisplayOnlyOptions(definition);
777
+ return displayOptions && !displayOptions.emptyText && schemaInterface.isEmptyValue(field, context.groupControl.fields[field.field].value);
778
+ }
727
779
  function useJsonataExpression(jExpr, data) {
728
780
  var compiledExpr = React.useMemo(function () {
729
- return jsonata__default["default"](jExpr);
781
+ try {
782
+ return jsonata__default["default"](jExpr);
783
+ } catch (e) {
784
+ console.error(e);
785
+ return jsonata__default["default"]("");
786
+ }
730
787
  }, [jExpr]);
731
788
  var control = core.useControl();
732
789
  core.useControlEffect(function () {
@@ -802,6 +859,30 @@ function useDateValidator(control, dv, i) {
802
859
  }, "date" + i);
803
860
  }
804
861
 
862
+ var defaultSchemaInterface = {
863
+ isEmptyValue: defaultIsEmpty,
864
+ textValue: defaultTextValue
865
+ };
866
+ function defaultIsEmpty(f, value) {
867
+ if (f.collection) return Array.isArray(value) ? value.length === 0 : value == null;
868
+ switch (f.type) {
869
+ case exports.FieldType.String:
870
+ return !value;
871
+ default:
872
+ return value == null;
873
+ }
874
+ }
875
+ function defaultTextValue(f, value) {
876
+ switch (f.type) {
877
+ case exports.FieldType.DateTime:
878
+ return new Date(value).toLocaleDateString();
879
+ case exports.FieldType.Date:
880
+ return new Date(value).toLocaleDateString();
881
+ default:
882
+ return value != null ? value.toString() : undefined;
883
+ }
884
+ }
885
+
805
886
  var AppendAdornmentPriority = 0;
806
887
  var WrapAdornmentPriority = 1000;
807
888
  exports.LabelType = void 0;
@@ -810,17 +891,21 @@ exports.LabelType = void 0;
810
891
  LabelType[LabelType["Group"] = 1] = "Group";
811
892
  })(exports.LabelType || (exports.LabelType = {}));
812
893
  function useControlRenderer(definition, fields, renderer, options) {
813
- var _options$useDataHook, _options$useEvalExpre;
894
+ var _options$useDataHook, _options$schemaInterf, _options$useEvalExpre;
814
895
  if (options === void 0) {
815
896
  options = {};
816
897
  }
817
898
  var dataProps = (_options$useDataHook = options.useDataHook == null ? void 0 : options.useDataHook(definition)) != null ? _options$useDataHook : defaultDataProps;
899
+ var schemaInterface = (_options$schemaInterf = options.schemaInterface) != null ? _options$schemaInterf : defaultSchemaInterface;
818
900
  var useExpr = (_options$useEvalExpre = options.useEvalExpressionHook) != null ? _options$useEvalExpre : defaultUseEvalExpressionHook;
819
901
  var schemaField = lookupSchemaField(definition, fields);
820
902
  var useDefaultValue = useEvalDefaultValueHook(useExpr, definition, schemaField);
821
903
  var useIsVisible = useEvalVisibilityHook(useExpr, definition, schemaField);
822
904
  var useIsReadonly = useEvalReadonlyHook(useExpr, definition);
823
905
  var useIsDisabled = useEvalDisabledHook(useExpr, definition);
906
+ var useCustomStyle = useEvalStyleHook(useExpr, exports.DynamicPropertyType.Style, definition);
907
+ var useLayoutStyle = useEvalStyleHook(useExpr, exports.DynamicPropertyType.LayoutStyle, definition);
908
+ var useDynamicDisplay = useEvalDisplayHook(useExpr, definition);
824
909
  var useValidation = useValidationHook(definition);
825
910
  var r = useUpdatedRef({
826
911
  options: options,
@@ -838,13 +923,17 @@ function useControlRenderer(definition, fields, renderer, options) {
838
923
  _options = _r$current.options,
839
924
  _fields = _r$current.fields,
840
925
  _schemaField = _r$current.schemaField;
841
- var groupContext = {
926
+ var dataContext = {
842
927
  groupControl: parentControl,
843
- fields: _fields
928
+ fields: _fields,
929
+ schemaInterface: schemaInterface
844
930
  };
845
- var readonlyControl = useIsReadonly(groupContext);
846
- var disabledControl = useIsDisabled(groupContext);
847
- var visibleControl = useIsVisible(groupContext);
931
+ var readonlyControl = useIsReadonly(dataContext);
932
+ var disabledControl = useIsDisabled(dataContext);
933
+ var visibleControl = useIsVisible(dataContext);
934
+ var displayControl = useDynamicDisplay(dataContext);
935
+ var customStyle = useCustomStyle(dataContext).value;
936
+ var layoutStyle = useLayoutStyle(dataContext).value;
848
937
  var visible = visibleControl.current.value;
849
938
  var visibility = core.useControl(function () {
850
939
  return visible != null ? {
@@ -862,8 +951,8 @@ function useControlRenderer(definition, fields, renderer, options) {
862
951
  };
863
952
  });
864
953
  });
865
- var defaultValueControl = useDefaultValue(groupContext);
866
- var _getControlData = getControlData(_schemaField, groupContext),
954
+ var defaultValueControl = useDefaultValue(dataContext);
955
+ var _getControlData = getControlData(_schemaField, dataContext),
867
956
  control = _getControlData[0],
868
957
  childContext = _getControlData[1];
869
958
  core.useControlEffect(function () {
@@ -892,7 +981,7 @@ function useControlRenderer(definition, fields, renderer, options) {
892
981
  disabled: _options.disabled || disabledControl.value
893
982
  };
894
983
  }).value;
895
- useValidation(control, !!myOptions.hidden, groupContext);
984
+ useValidation(control, !!myOptions.hidden, dataContext);
896
985
  var childRenderers = (_c$children$map = (_c$children = c.children) == null ? void 0 : _c$children.map(function (cd) {
897
986
  return useControlRenderer(cd, childContext.fields, renderer, _extends({}, _options, myOptions));
898
987
  })) != null ? _c$children$map : [];
@@ -905,21 +994,36 @@ function useControlRenderer(definition, fields, renderer, options) {
905
994
  adornment: x
906
995
  });
907
996
  })) != null ? _definition$adornment : [];
908
- var labelAndChildren = renderControlLayout(c, renderer, childRenderers.length, function (k, i, props) {
909
- var RenderChild = childRenderers[i];
910
- return /*#__PURE__*/React__default["default"].createElement(RenderChild, _extends({
911
- key: k
912
- }, props));
913
- }, dataProps, myOptions, groupContext, control, _schemaField);
914
- return renderer.renderVisibility(visibility, function () {
915
- return renderer.renderLayout(_extends({}, labelAndChildren, {
916
- adornments: adornments
917
- }));
997
+ var labelAndChildren = renderControlLayout({
998
+ definition: c,
999
+ renderer: renderer,
1000
+ childCount: childRenderers.length,
1001
+ renderChild: function renderChild(k, i, props) {
1002
+ var RenderChild = childRenderers[i];
1003
+ return /*#__PURE__*/React__default["default"].createElement(RenderChild, _extends({
1004
+ key: k
1005
+ }, props));
1006
+ },
1007
+ createDataProps: dataProps,
1008
+ formOptions: myOptions,
1009
+ dataContext: dataContext,
1010
+ control: displayControl != null ? displayControl : control,
1011
+ schemaField: _schemaField,
1012
+ displayControl: displayControl,
1013
+ style: customStyle
918
1014
  });
1015
+ var renderedControl = renderer.renderLayout(_extends({}, labelAndChildren, {
1016
+ adornments: adornments,
1017
+ className: c.layoutClass,
1018
+ style: layoutStyle
1019
+ }));
1020
+ return renderer.renderVisibility(_extends({
1021
+ visibility: visibility
1022
+ }, renderedControl));
919
1023
  } finally {
920
1024
  stopTracking();
921
1025
  }
922
- }, [r, dataProps, useIsVisible, useDefaultValue, useIsReadonly, useIsDisabled, useValidation, renderer]);
1026
+ }, [r, dataProps, useIsVisible, useDefaultValue, useIsReadonly, useIsDisabled, useCustomStyle, useLayoutStyle, useDynamicDisplay, useValidation, renderer, schemaInterface]);
923
1027
  Component.displayName = "RenderControl";
924
1028
  return Component;
925
1029
  }
@@ -932,10 +1036,11 @@ function getControlData(schemaField, parentContext) {
932
1036
  var childControl = schemaField ? (_parentContext$groupC = (_parentContext$groupC2 = parentContext.groupControl.fields) == null ? void 0 : _parentContext$groupC2[schemaField.field]) != null ? _parentContext$groupC : core.newControl({}) : undefined;
933
1037
  return [childControl, schemaField && isCompoundField(schemaField) ? {
934
1038
  groupControl: childControl,
935
- fields: schemaField.children
1039
+ fields: schemaField.children,
1040
+ schemaInterface: parentContext.schemaInterface
936
1041
  } : parentContext];
937
1042
  }
938
- function renderArray(renderer, noun, field, required, arrayControl, _renderChild) {
1043
+ function renderArray(renderer, noun, field, required, arrayControl, _renderChild, className, style) {
939
1044
  var _arrayControl$element;
940
1045
  var elems = (_arrayControl$element = arrayControl.elements) != null ? _arrayControl$element : [];
941
1046
  return renderer.renderArray({
@@ -963,10 +1068,12 @@ function renderArray(renderer, noun, field, required, arrayControl, _renderChild
963
1068
  },
964
1069
  renderChild: function renderChild(i) {
965
1070
  return _renderChild(i, elems[i]);
966
- }
1071
+ },
1072
+ className: cc(className),
1073
+ style: style
967
1074
  });
968
1075
  }
969
- function groupProps(renderOptions, childCount, _renderChild2, control) {
1076
+ function groupProps(renderOptions, childCount, _renderChild2, control, className, style) {
970
1077
  if (renderOptions === void 0) {
971
1078
  renderOptions = {
972
1079
  type: "Standard"
@@ -979,11 +1086,19 @@ function groupProps(renderOptions, childCount, _renderChild2, control) {
979
1086
  control: control
980
1087
  });
981
1088
  },
982
- renderOptions: renderOptions
1089
+ renderOptions: renderOptions,
1090
+ className: cc(className),
1091
+ style: style
983
1092
  };
984
1093
  }
985
- var defaultDataProps = function defaultDataProps(definition, field, groupContext, control, options) {
1094
+ function defaultDataProps(_ref3) {
986
1095
  var _field$options$length, _field$options, _definition$renderOpt;
1096
+ var definition = _ref3.definition,
1097
+ field = _ref3.field,
1098
+ dataContext = _ref3.dataContext,
1099
+ control = _ref3.control,
1100
+ options = _ref3.options,
1101
+ style = _ref3.style;
987
1102
  return {
988
1103
  control: control,
989
1104
  field: field,
@@ -994,10 +1109,24 @@ var defaultDataProps = function defaultDataProps(definition, field, groupContext
994
1109
  type: "Standard"
995
1110
  },
996
1111
  required: !!definition.required,
997
- hidden: !!options.hidden
1112
+ hidden: !!options.hidden,
1113
+ className: cc(definition.styleClass),
1114
+ style: style,
1115
+ dataContext: dataContext
998
1116
  };
999
- };
1000
- function renderControlLayout(c, renderer, childCount, childRenderer, dataProps, dataOptions, groupContext, childControl, schemaField) {
1117
+ }
1118
+ function renderControlLayout(_ref4) {
1119
+ var c = _ref4.definition,
1120
+ renderer = _ref4.renderer,
1121
+ childCount = _ref4.childCount,
1122
+ childRenderer = _ref4.renderChild,
1123
+ childControl = _ref4.control,
1124
+ schemaField = _ref4.schemaField,
1125
+ dataContext = _ref4.dataContext,
1126
+ dataOptions = _ref4.formOptions,
1127
+ dataProps = _ref4.createDataProps,
1128
+ displayControl = _ref4.displayControl,
1129
+ style = _ref4.style;
1001
1130
  if (isDataControlDefinition(c)) {
1002
1131
  return renderData(c);
1003
1132
  }
@@ -1011,7 +1140,7 @@ function renderControlLayout(c, renderer, childCount, childRenderer, dataProps,
1011
1140
  }));
1012
1141
  }
1013
1142
  return {
1014
- children: renderer.renderGroup(groupProps(c.groupOptions, childCount, childRenderer, groupContext.groupControl)),
1143
+ processLayout: renderer.renderGroup(groupProps(c.groupOptions, childCount, childRenderer, dataContext.groupControl, c.styleClass, style)),
1015
1144
  label: {
1016
1145
  label: c.title,
1017
1146
  type: exports.LabelType.Group,
@@ -1025,7 +1154,9 @@ function renderControlLayout(c, renderer, childCount, childRenderer, dataProps,
1025
1154
  children: renderer.renderAction({
1026
1155
  actionText: (_c$title = c.title) != null ? _c$title : c.actionId,
1027
1156
  actionId: c.actionId,
1028
- onClick: function onClick() {}
1157
+ onClick: function onClick() {},
1158
+ className: cc(c.styleClass),
1159
+ style: style
1029
1160
  })
1030
1161
  };
1031
1162
  }
@@ -1033,7 +1164,10 @@ function renderControlLayout(c, renderer, childCount, childRenderer, dataProps,
1033
1164
  var _c$displayData;
1034
1165
  return {
1035
1166
  children: renderer.renderDisplay({
1036
- data: (_c$displayData = c.displayData) != null ? _c$displayData : {}
1167
+ data: (_c$displayData = c.displayData) != null ? _c$displayData : {},
1168
+ className: cc(c.styleClass),
1169
+ style: style,
1170
+ display: displayControl
1037
1171
  })
1038
1172
  };
1039
1173
  }
@@ -1051,23 +1185,30 @@ function renderControlLayout(c, renderer, childCount, childRenderer, dataProps,
1051
1185
  if (schemaField.collection) {
1052
1186
  return {
1053
1187
  label: label,
1054
- children: renderArray(renderer, controlTitle(c.title, schemaField), schemaField, !!c.required, childControl, compoundRenderer),
1188
+ children: renderArray(renderer, controlTitle(c.title, schemaField), schemaField, !!c.required, childControl, compoundRenderer, c.styleClass, style),
1055
1189
  errorControl: childControl
1056
1190
  };
1057
1191
  }
1058
1192
  return {
1059
- children: renderer.renderGroup(groupProps({
1193
+ processLayout: renderer.renderGroup(groupProps({
1060
1194
  type: "Standard"
1061
- }, childCount, childRenderer, childControl)),
1195
+ }, childCount, childRenderer, childControl, c.styleClass, style)),
1062
1196
  label: label,
1063
1197
  errorControl: childControl
1064
1198
  };
1065
1199
  }
1066
- var props = dataProps(c, schemaField, groupContext, childControl, dataOptions);
1200
+ var props = dataProps({
1201
+ definition: c,
1202
+ field: schemaField,
1203
+ dataContext: dataContext,
1204
+ control: childControl,
1205
+ options: dataOptions,
1206
+ style: style
1207
+ });
1067
1208
  var labelText = !c.hideTitle ? controlTitle(c.title, schemaField) : undefined;
1068
1209
  return {
1069
1210
  processLayout: renderer.renderData(props, schemaField.collection ? function () {
1070
- return renderArray(renderer, controlTitle(c.title, schemaField), schemaField, !!c.required, childControl, scalarRenderer(props));
1211
+ return renderArray(renderer, controlTitle(c.title, schemaField), schemaField, !!c.required, childControl, scalarRenderer(props), c.styleClass, style);
1071
1212
  } : undefined),
1072
1213
  label: {
1073
1214
  type: exports.LabelType.Control,
@@ -1080,20 +1221,28 @@ function renderControlLayout(c, renderer, childCount, childRenderer, dataProps,
1080
1221
  };
1081
1222
  }
1082
1223
  function compoundRenderer(i, control) {
1083
- return /*#__PURE__*/React__default["default"].createElement(React.Fragment, {
1084
- key: control.uniqueId
1085
- }, renderer.renderGroup({
1086
- renderOptions: {
1087
- type: "Standard",
1088
- hideTitle: true
1089
- },
1090
- childCount: childCount,
1091
- renderChild: function renderChild(ci) {
1092
- return childRenderer(ci, ci, {
1093
- control: control
1094
- });
1095
- }
1096
- }));
1224
+ var _renderer$renderLayou = renderer.renderLayout({
1225
+ processLayout: renderer.renderGroup({
1226
+ renderOptions: {
1227
+ type: "Standard",
1228
+ hideTitle: true
1229
+ },
1230
+ childCount: childCount,
1231
+ renderChild: function renderChild(ci) {
1232
+ return childRenderer(ci, ci, {
1233
+ control: control
1234
+ });
1235
+ }
1236
+ })
1237
+ }),
1238
+ className = _renderer$renderLayou.className,
1239
+ style = _renderer$renderLayou.style,
1240
+ children = _renderer$renderLayou.children;
1241
+ return /*#__PURE__*/React__default["default"].createElement("div", {
1242
+ key: control.uniqueId,
1243
+ style: style,
1244
+ className: cc(className)
1245
+ }, children);
1097
1246
  }
1098
1247
  function scalarRenderer(dataProps) {
1099
1248
  return function (i, control) {
@@ -1134,28 +1283,36 @@ function wrapMarkupAt(pos, wrap) {
1134
1283
  return wrapMarkup(layoutKeyForPlacement(pos), wrap);
1135
1284
  }
1136
1285
  function renderLayoutParts(props, renderer) {
1137
- var _props$processLayout, _processed$adornments;
1138
- var processed = (_props$processLayout = props.processLayout == null ? void 0 : props.processLayout(props)) != null ? _props$processLayout : props;
1286
+ var _props$processLayout;
1287
+ var _ref5 = (_props$processLayout = props.processLayout == null ? void 0 : props.processLayout(props)) != null ? _props$processLayout : props,
1288
+ className = _ref5.className,
1289
+ children = _ref5.children,
1290
+ style = _ref5.style,
1291
+ errorControl = _ref5.errorControl,
1292
+ label = _ref5.label,
1293
+ adornments = _ref5.adornments;
1139
1294
  var layout = {
1140
- children: processed.children,
1141
- errorControl: processed.errorControl
1295
+ children: children,
1296
+ errorControl: errorControl,
1297
+ style: style,
1298
+ className: cc(className)
1142
1299
  };
1143
- ((_processed$adornments = processed.adornments) != null ? _processed$adornments : []).sort(function (a, b) {
1300
+ (adornments != null ? adornments : []).sort(function (a, b) {
1144
1301
  return a.priority - b.priority;
1145
1302
  }).forEach(function (x) {
1146
1303
  return x.apply(layout);
1147
1304
  });
1148
- var l = processed.label;
1149
- layout.label = l && !l.hide ? renderer.renderLabel(l, layout.labelStart, layout.labelEnd) : undefined;
1305
+ layout.label = label && !label.hide ? renderer.renderLabel(label, layout.labelStart, layout.labelEnd) : undefined;
1150
1306
  return layout;
1151
1307
  }
1152
1308
  function controlTitle(title, field) {
1153
1309
  return title ? title : fieldDisplayName(field);
1154
1310
  }
1155
1311
 
1156
- var _excluded = ["control", "convert"],
1157
- _excluded2 = ["errorText", "value", "onChange"],
1158
- _excluded3 = ["state", "options", "className", "convert", "required", "emptyText", "requiredText"];
1312
+ var _excluded = ["data", "display", "className", "style"],
1313
+ _excluded2 = ["control", "convert"],
1314
+ _excluded3 = ["errorText", "value", "onChange"],
1315
+ _excluded4 = ["state", "options", "className", "convert", "required", "emptyText", "requiredText"];
1159
1316
  function createFormRenderer(customRenderers, defaultRenderers) {
1160
1317
  var _customRenderers$find;
1161
1318
  if (customRenderers === void 0) {
@@ -1232,7 +1389,13 @@ function createFormRenderer(customRenderers, defaultRenderers) {
1232
1389
  var renderer = (_groupRegistrations$f = groupRegistrations.find(function (x) {
1233
1390
  return isOneOf(x.renderType, renderType);
1234
1391
  })) != null ? _groupRegistrations$f : defaultRenderers.group;
1235
- return renderer.render(props, formRenderers);
1392
+ var result = renderer.render(props, formRenderers);
1393
+ if (typeof result === "function") return result;
1394
+ return function (l) {
1395
+ return _extends({}, l, {
1396
+ children: result
1397
+ });
1398
+ };
1236
1399
  }
1237
1400
  function renderAction(props) {
1238
1401
  var _actionRenderers$find;
@@ -1337,7 +1500,9 @@ function createDefaultGroupRenderer(options) {
1337
1500
  _ref5$defaultGridColu = _ref5.defaultGridColumns,
1338
1501
  defaultGridColumns = _ref5$defaultGridColu === void 0 ? 2 : _ref5$defaultGridColu,
1339
1502
  gridClassName = _ref5.gridClassName,
1340
- standardClassName = _ref5.standardClassName;
1503
+ standardClassName = _ref5.standardClassName,
1504
+ flexClassName = _ref5.flexClassName,
1505
+ defaultFlexGap = _ref5.defaultFlexGap;
1341
1506
  function defaultGridStyles(_ref6) {
1342
1507
  var _ref6$columns = _ref6.columns,
1343
1508
  columns = _ref6$columns === void 0 ? defaultGridColumns : _ref6$columns;
@@ -1349,23 +1514,37 @@ function createDefaultGroupRenderer(options) {
1349
1514
  }
1350
1515
  };
1351
1516
  }
1517
+ function flexStyles(options) {
1518
+ return {
1519
+ className: flexClassName,
1520
+ style: {
1521
+ display: "flex",
1522
+ gap: options.gap ? options.gap : defaultFlexGap,
1523
+ flexDirection: options.direction ? options.direction : undefined
1524
+ }
1525
+ };
1526
+ }
1352
1527
  function render(props) {
1353
1528
  var childCount = props.childCount,
1354
1529
  renderChild = props.renderChild,
1355
1530
  renderOptions = props.renderOptions;
1356
- var _ref7 = isGridRenderer(renderOptions) ? gridStyles(renderOptions) : {
1531
+ var _ref7 = isGridRenderer(renderOptions) ? gridStyles(renderOptions) : isFlexRenderer(renderOptions) ? flexStyles(renderOptions) : {
1357
1532
  className: standardClassName
1358
1533
  },
1359
1534
  style = _ref7.style,
1360
1535
  gcn = _ref7.className;
1361
- return /*#__PURE__*/React__default["default"].createElement("div", {
1362
- className: clsx__default["default"](className, gcn),
1363
- style: style
1364
- }, Array.from({
1365
- length: childCount
1366
- }, function (_, x) {
1367
- return renderChild(x);
1368
- }));
1536
+ return function (cp) {
1537
+ return _extends({}, cp, {
1538
+ children: /*#__PURE__*/React__default["default"].createElement("div", {
1539
+ className: clsx__default["default"](props.className, className, gcn),
1540
+ style: style
1541
+ }, Array.from({
1542
+ length: childCount
1543
+ }, function (_, x) {
1544
+ return renderChild(x);
1545
+ }))
1546
+ });
1547
+ };
1369
1548
  }
1370
1549
  return {
1371
1550
  type: "group",
@@ -1377,27 +1556,47 @@ function createDefaultDisplayRenderer(options) {
1377
1556
  options = {};
1378
1557
  }
1379
1558
  return {
1380
- render: function render(_ref8) {
1381
- var data = _ref8.data;
1382
- switch (data.type) {
1383
- case exports.DisplayDataType.Text:
1384
- return /*#__PURE__*/React__default["default"].createElement("div", {
1385
- className: options.textClassName
1386
- }, data.text);
1387
- case exports.DisplayDataType.Html:
1388
- return /*#__PURE__*/React__default["default"].createElement("div", {
1389
- className: options.htmlClassName,
1390
- dangerouslySetInnerHTML: {
1391
- __html: data.html
1392
- }
1393
- });
1394
- default:
1395
- return /*#__PURE__*/React__default["default"].createElement("h1", null, "Unknown display type: ", data.type);
1396
- }
1559
+ render: function render(props) {
1560
+ return /*#__PURE__*/React__default["default"].createElement(DefaultDisplay, _extends({}, options, props));
1397
1561
  },
1398
1562
  type: "display"
1399
1563
  };
1400
1564
  }
1565
+ function DefaultDisplay(_ref8) {
1566
+ var _effect = core.useComponentTracking();
1567
+ try {
1568
+ var _display$value;
1569
+ var data = _ref8.data,
1570
+ display = _ref8.display,
1571
+ className = _ref8.className,
1572
+ style = _ref8.style,
1573
+ options = _objectWithoutPropertiesLoose(_ref8, _excluded);
1574
+ switch (data.type) {
1575
+ case exports.DisplayDataType.Icon:
1576
+ return /*#__PURE__*/React__default["default"].createElement("i", {
1577
+ style: style,
1578
+ className: clsx__default["default"](className, display ? display.value : data.iconClass)
1579
+ });
1580
+ case exports.DisplayDataType.Text:
1581
+ return /*#__PURE__*/React__default["default"].createElement("div", {
1582
+ style: style,
1583
+ className: clsx__default["default"](className, options.textClassName)
1584
+ }, display ? display.value : data.text);
1585
+ case exports.DisplayDataType.Html:
1586
+ return /*#__PURE__*/React__default["default"].createElement("div", {
1587
+ style: style,
1588
+ className: clsx__default["default"](className, options.htmlClassName),
1589
+ dangerouslySetInnerHTML: {
1590
+ __html: display ? (_display$value = display.value) != null ? _display$value : "" : data.html
1591
+ }
1592
+ });
1593
+ default:
1594
+ return /*#__PURE__*/React__default["default"].createElement("h1", null, "Unknown display type: ", data.type);
1595
+ }
1596
+ } finally {
1597
+ _effect();
1598
+ }
1599
+ }
1401
1600
  var DefaultBoolOptions = [{
1402
1601
  name: "Yes",
1403
1602
  value: true
@@ -1417,14 +1616,29 @@ function createDefaultDataRenderer(options) {
1417
1616
  }, options),
1418
1617
  inputClass = _optionRenderer$boole.inputClass,
1419
1618
  booleanOptions = _optionRenderer$boole.booleanOptions,
1420
- optionRenderer = _optionRenderer$boole.optionRenderer;
1619
+ optionRenderer = _optionRenderer$boole.optionRenderer,
1620
+ displayOnlyClass = _optionRenderer$boole.displayOnlyClass;
1421
1621
  return createDataRenderer(function (props, asArray, renderers) {
1422
1622
  if (asArray) {
1423
1623
  return asArray();
1424
1624
  }
1425
- var renderType = props.renderOptions.type;
1625
+ var renderOptions = props.renderOptions;
1626
+ var renderType = renderOptions.type;
1426
1627
  var fieldType = props.field.type;
1427
1628
  if (fieldType == exports.FieldType.Any) return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, "No control for Any");
1629
+ if (isDisplayOnlyRenderer(renderOptions)) return function (p) {
1630
+ return _extends({}, p, {
1631
+ className: displayOnlyClass,
1632
+ children: /*#__PURE__*/React__default["default"].createElement(DefaultDisplayOnly, {
1633
+ field: props.field,
1634
+ schemaInterface: props.dataContext.schemaInterface,
1635
+ control: props.control,
1636
+ className: props.className,
1637
+ style: props.style,
1638
+ emptyText: renderOptions.emptyText
1639
+ })
1640
+ });
1641
+ };
1428
1642
  var isBool = fieldType === exports.FieldType.Bool;
1429
1643
  if (booleanOptions != null && isBool && props.options == null) {
1430
1644
  return renderers.renderData(_extends({}, props, {
@@ -1439,9 +1653,12 @@ function createDefaultDataRenderer(options) {
1439
1653
  return selectRenderer.render(props, undefined, renderers);
1440
1654
  }
1441
1655
  return renderType === exports.DataRenderType.Checkbox ? /*#__PURE__*/React__default["default"].createElement(core.Fcheckbox, {
1656
+ style: props.style,
1657
+ className: props.className,
1442
1658
  control: props.control
1443
1659
  }) : /*#__PURE__*/React__default["default"].createElement(ControlInput, {
1444
- className: inputClass,
1660
+ className: clsx__default["default"](props.className, inputClass),
1661
+ style: props.style,
1445
1662
  id: props.id,
1446
1663
  readOnly: props.readonly,
1447
1664
  control: props.control,
@@ -1449,17 +1666,37 @@ function createDefaultDataRenderer(options) {
1449
1666
  });
1450
1667
  });
1451
1668
  }
1452
- function ControlInput(_ref9) {
1453
- var _effect = core.useComponentTracking();
1669
+ function DefaultDisplayOnly(_ref9) {
1670
+ var _effect2 = core.useComponentTracking();
1454
1671
  try {
1672
+ var _ref10;
1455
1673
  var control = _ref9.control,
1456
- convert = _ref9.convert,
1457
- props = _objectWithoutPropertiesLoose(_ref9, _excluded);
1674
+ className = _ref9.className,
1675
+ emptyText = _ref9.emptyText,
1676
+ schemaInterface = _ref9.schemaInterface,
1677
+ field = _ref9.field,
1678
+ style = _ref9.style;
1679
+ var v = control.value;
1680
+ var text = (_ref10 = schemaInterface.isEmptyValue(field, v) ? emptyText : schemaInterface.textValue(field, v)) != null ? _ref10 : "";
1681
+ return /*#__PURE__*/React__default["default"].createElement("div", {
1682
+ style: style,
1683
+ className: className
1684
+ }, text);
1685
+ } finally {
1686
+ _effect2();
1687
+ }
1688
+ }
1689
+ function ControlInput(_ref11) {
1690
+ var _effect3 = core.useComponentTracking();
1691
+ try {
1692
+ var control = _ref11.control,
1693
+ convert = _ref11.convert,
1694
+ props = _objectWithoutPropertiesLoose(_ref11, _excluded2);
1458
1695
  var _formControlProps = core.formControlProps(control),
1459
1696
  errorText = _formControlProps.errorText,
1460
1697
  value = _formControlProps.value,
1461
1698
  onChange = _formControlProps.onChange,
1462
- inputProps = _objectWithoutPropertiesLoose(_formControlProps, _excluded2);
1699
+ inputProps = _objectWithoutPropertiesLoose(_formControlProps, _excluded3);
1463
1700
  return /*#__PURE__*/React__default["default"].createElement("input", _extends({}, inputProps, {
1464
1701
  type: convert[0],
1465
1702
  value: value == null ? "" : convert[2](value),
@@ -1468,16 +1705,23 @@ function ControlInput(_ref9) {
1468
1705
  }
1469
1706
  }, props));
1470
1707
  } finally {
1471
- _effect();
1708
+ _effect3();
1472
1709
  }
1473
1710
  }
1474
1711
  function createDefaultAdornmentRenderer(options) {
1475
1712
  return {
1476
1713
  type: "adornment",
1477
- render: function render(_ref10) {
1478
- var adornment = _ref10.adornment;
1714
+ render: function render(_ref12) {
1715
+ var adornment = _ref12.adornment;
1479
1716
  return {
1480
- apply: function apply() {},
1717
+ apply: function apply(rl) {
1718
+ if (isIconAdornment(adornment)) {
1719
+ var _adornment$placement;
1720
+ return appendMarkupAt((_adornment$placement = adornment.placement) != null ? _adornment$placement : exports.AdornmentPlacement.ControlStart, /*#__PURE__*/React__default["default"].createElement("i", {
1721
+ className: adornment.iconClass
1722
+ }))(rl);
1723
+ }
1724
+ },
1481
1725
  priority: 0,
1482
1726
  adornment: adornment
1483
1727
  };
@@ -1505,9 +1749,19 @@ function createDefaultLayoutRenderer(options) {
1505
1749
  options = {};
1506
1750
  }
1507
1751
  return createLayoutRenderer(function (props, renderers) {
1508
- return /*#__PURE__*/React__default["default"].createElement(DefaultLayout, _extends({
1509
- layout: renderLayoutParts(props, renderers)
1510
- }, options));
1752
+ var layout = renderLayoutParts(_extends({}, props, {
1753
+ className: clsx__default["default"](props.className, options.className)
1754
+ }), renderers);
1755
+ return {
1756
+ children: /*#__PURE__*/React__default["default"].createElement(DefaultLayout, _extends({
1757
+ layout: layout
1758
+ }, options)),
1759
+ className: layout.className,
1760
+ style: layout.style,
1761
+ divRef: function divRef(e) {
1762
+ return e && props.errorControl ? props.errorControl.meta.scrollElement = e : undefined;
1763
+ }
1764
+ };
1511
1765
  });
1512
1766
  }
1513
1767
  function createClassStyledRenderers() {
@@ -1563,6 +1817,9 @@ function isArrayRegistration(x) {
1563
1817
  function isOneOf(x, v) {
1564
1818
  return x == null ? true : Array.isArray(x) ? x.includes(v) : v === x;
1565
1819
  }
1820
+ function isIconAdornment(a) {
1821
+ return a.type === exports.ControlAdornmentType.Icon;
1822
+ }
1566
1823
  function createLayoutRenderer(render, options) {
1567
1824
  return _extends({
1568
1825
  type: "layout",
@@ -1606,7 +1863,7 @@ function createSelectRenderer(options) {
1606
1863
  }
1607
1864
  return createDataRenderer(function (props, asArray) {
1608
1865
  return /*#__PURE__*/React__default["default"].createElement(SelectDataRenderer, {
1609
- className: options.className,
1866
+ className: clsx__default["default"](props.className, options.className),
1610
1867
  state: props.control,
1611
1868
  id: props.id,
1612
1869
  options: props.options,
@@ -1619,19 +1876,19 @@ function createSelectRenderer(options) {
1619
1876
  options: true
1620
1877
  });
1621
1878
  }
1622
- function SelectDataRenderer(_ref11) {
1623
- var _effect2 = core.useComponentTracking();
1879
+ function SelectDataRenderer(_ref13) {
1880
+ var _effect4 = core.useComponentTracking();
1624
1881
  try {
1625
- var state = _ref11.state,
1626
- options = _ref11.options,
1627
- className = _ref11.className,
1628
- convert = _ref11.convert,
1629
- required = _ref11.required,
1630
- _ref11$emptyText = _ref11.emptyText,
1631
- emptyText = _ref11$emptyText === void 0 ? "N/A" : _ref11$emptyText,
1632
- _ref11$requiredText = _ref11.requiredText,
1633
- requiredText = _ref11$requiredText === void 0 ? "<please select>" : _ref11$requiredText,
1634
- props = _objectWithoutPropertiesLoose(_ref11, _excluded3);
1882
+ var state = _ref13.state,
1883
+ options = _ref13.options,
1884
+ className = _ref13.className,
1885
+ convert = _ref13.convert,
1886
+ required = _ref13.required,
1887
+ _ref13$emptyText = _ref13.emptyText,
1888
+ emptyText = _ref13$emptyText === void 0 ? "N/A" : _ref13$emptyText,
1889
+ _ref13$requiredText = _ref13.requiredText,
1890
+ requiredText = _ref13$requiredText === void 0 ? "<please select>" : _ref13$requiredText,
1891
+ props = _objectWithoutPropertiesLoose(_ref13, _excluded4);
1635
1892
  var value = state.value,
1636
1893
  disabled = state.disabled;
1637
1894
  var _useState = React.useState(!required || value == null),
@@ -1658,7 +1915,7 @@ function SelectDataRenderer(_ref11) {
1658
1915
  }, x.name);
1659
1916
  }));
1660
1917
  } finally {
1661
- _effect2();
1918
+ _effect4();
1662
1919
  }
1663
1920
  }
1664
1921
  function createSelectConversion(ft) {
@@ -1718,18 +1975,18 @@ function createInputConversion(ft) {
1718
1975
  }
1719
1976
  }
1720
1977
  function createDefaultVisibilityRenderer() {
1721
- return createVisibilityRenderer(function (cv, ch) {
1722
- return /*#__PURE__*/React__default["default"].createElement(DefaultVisibility, {
1723
- visibility: cv,
1724
- children: ch
1725
- });
1978
+ return createVisibilityRenderer(function (props) {
1979
+ return /*#__PURE__*/React__default["default"].createElement(DefaultVisibility, props);
1726
1980
  });
1727
1981
  }
1728
- function DefaultVisibility(_ref12) {
1729
- var _effect3 = core.useComponentTracking();
1982
+ function DefaultVisibility(_ref14) {
1983
+ var _effect5 = core.useComponentTracking();
1730
1984
  try {
1731
- var visibility = _ref12.visibility,
1732
- children = _ref12.children;
1985
+ var visibility = _ref14.visibility,
1986
+ children = _ref14.children,
1987
+ className = _ref14.className,
1988
+ style = _ref14.style,
1989
+ divRef = _ref14.divRef;
1733
1990
  var v = visibility.value;
1734
1991
  React.useEffect(function () {
1735
1992
  if (v) {
@@ -1741,35 +1998,33 @@ function DefaultVisibility(_ref12) {
1741
1998
  });
1742
1999
  }
1743
2000
  }, [v == null ? void 0 : v.visible]);
1744
- return v != null && v.visible ? children() : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null);
2001
+ return v != null && v.visible ? /*#__PURE__*/React__default["default"].createElement("div", {
2002
+ className: clsx__default["default"](className),
2003
+ style: style,
2004
+ ref: divRef
2005
+ }, children) : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null);
1745
2006
  } finally {
1746
- _effect3();
2007
+ _effect5();
1747
2008
  }
1748
2009
  }
1749
- function DefaultLayout(_ref13) {
1750
- var _effect4 = core.useComponentTracking();
2010
+ function DefaultLayout(_ref15) {
2011
+ var _effect6 = core.useComponentTracking();
1751
2012
  try {
1752
- var className = _ref13.className,
1753
- errorClass = _ref13.errorClass,
1754
- _ref13$layout = _ref13.layout,
1755
- controlEnd = _ref13$layout.controlEnd,
1756
- controlStart = _ref13$layout.controlStart,
1757
- label = _ref13$layout.label,
1758
- children = _ref13$layout.children,
1759
- errorControl = _ref13$layout.errorControl;
2013
+ var errorClass = _ref15.errorClass,
2014
+ className = _ref15.className,
2015
+ _ref15$layout = _ref15.layout,
2016
+ controlEnd = _ref15$layout.controlEnd,
2017
+ controlStart = _ref15$layout.controlStart,
2018
+ label = _ref15$layout.label,
2019
+ children = _ref15$layout.children,
2020
+ errorControl = _ref15$layout.errorControl;
1760
2021
  var ec = errorControl;
1761
2022
  var errorText = ec && ec.touched ? ec.error : undefined;
1762
- var refCb = React.useCallback(function (e) {
1763
- if (ec) ec.meta.scrollElement = e;
1764
- }, [ec]);
1765
- return /*#__PURE__*/React__default["default"].createElement("div", {
1766
- className: className,
1767
- ref: refCb
1768
- }, label, controlStart, children, errorText && /*#__PURE__*/React__default["default"].createElement("div", {
2023
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, label, controlStart, children, errorText && /*#__PURE__*/React__default["default"].createElement("div", {
1769
2024
  className: errorClass
1770
2025
  }, errorText), controlEnd);
1771
2026
  } finally {
1772
- _effect4();
2027
+ _effect6();
1773
2028
  }
1774
2029
  }
1775
2030
 
@@ -1786,8 +2041,9 @@ var defaultTailwindTheme = {
1786
2041
  addActionClass: "my-2"
1787
2042
  },
1788
2043
  group: {
1789
- standardClassName: "space-y-4",
1790
- gridClassName: "gap-x-2 gap-y-4"
2044
+ standardClassName: "flex flex-col gap-4",
2045
+ gridClassName: "gap-x-2 gap-y-4",
2046
+ flexClassName: "gap-2"
1791
2047
  },
1792
2048
  action: {
1793
2049
  className: "bg-primary rounded-lg p-3 text-white"
@@ -1795,12 +2051,17 @@ var defaultTailwindTheme = {
1795
2051
  layout: {
1796
2052
  className: "flex flex-col",
1797
2053
  errorClass: "text-sm text-danger-500"
2054
+ },
2055
+ data: {
2056
+ displayOnlyClass: "flex flex-row items-center gap-2"
1798
2057
  }
1799
2058
  };
1800
2059
 
1801
2060
  exports.AppendAdornmentPriority = AppendAdornmentPriority;
1802
2061
  exports.ControlInput = ControlInput;
1803
2062
  exports.DefaultBoolOptions = DefaultBoolOptions;
2063
+ exports.DefaultDisplay = DefaultDisplay;
2064
+ exports.DefaultDisplayOnly = DefaultDisplayOnly;
1804
2065
  exports.DefaultLayout = DefaultLayout;
1805
2066
  exports.DefaultVisibility = DefaultVisibility;
1806
2067
  exports.SelectDataRenderer = SelectDataRenderer;
@@ -1840,8 +2101,12 @@ exports.dataControl = dataControl;
1840
2101
  exports.defaultCompoundField = defaultCompoundField;
1841
2102
  exports.defaultControlForField = defaultControlForField;
1842
2103
  exports.defaultDataProps = defaultDataProps;
2104
+ exports.defaultEvalHooks = defaultEvalHooks;
2105
+ exports.defaultIsEmpty = defaultIsEmpty;
1843
2106
  exports.defaultScalarField = defaultScalarField;
2107
+ exports.defaultSchemaInterface = defaultSchemaInterface;
1844
2108
  exports.defaultTailwindTheme = defaultTailwindTheme;
2109
+ exports.defaultTextValue = defaultTextValue;
1845
2110
  exports.defaultUseEvalExpressionHook = defaultUseEvalExpressionHook;
1846
2111
  exports.defaultValueForField = defaultValueForField;
1847
2112
  exports.defaultValueForFields = defaultValueForFields;
@@ -1858,9 +2123,11 @@ exports.findCompoundField = findCompoundField;
1858
2123
  exports.findField = findField;
1859
2124
  exports.findScalarField = findScalarField;
1860
2125
  exports.getControlData = getControlData;
2126
+ exports.getDisplayOnlyOptions = getDisplayOnlyOptions;
1861
2127
  exports.getTypeField = getTypeField;
1862
2128
  exports.groupedControl = groupedControl;
1863
2129
  exports.hasOptions = hasOptions;
2130
+ exports.hideDisplayOnly = hideDisplayOnly;
1864
2131
  exports.htmlDisplayControl = htmlDisplayControl;
1865
2132
  exports.intField = intField;
1866
2133
  exports.isActionControlsDefinition = isActionControlsDefinition;
@@ -1869,9 +2136,12 @@ exports.isControlReadonly = isControlReadonly;
1869
2136
  exports.isDataControl = isDataControl;
1870
2137
  exports.isDataControlDefinition = isDataControlDefinition;
1871
2138
  exports.isDisplayControlsDefinition = isDisplayControlsDefinition;
2139
+ exports.isDisplayOnlyRenderer = isDisplayOnlyRenderer;
2140
+ exports.isFlexRenderer = isFlexRenderer;
1872
2141
  exports.isGridRenderer = isGridRenderer;
1873
2142
  exports.isGroupControl = isGroupControl;
1874
2143
  exports.isGroupControlsDefinition = isGroupControlsDefinition;
2144
+ exports.isIconAdornment = isIconAdornment;
1875
2145
  exports.isScalarField = isScalarField;
1876
2146
  exports.jsonataExpr = jsonataExpr;
1877
2147
  exports.layoutKeyForPlacement = layoutKeyForPlacement;
@@ -1889,8 +2159,10 @@ exports.useControlDefinitionForSchema = useControlDefinitionForSchema;
1889
2159
  exports.useControlRenderer = useControlRenderer;
1890
2160
  exports.useEvalDefaultValueHook = useEvalDefaultValueHook;
1891
2161
  exports.useEvalDisabledHook = useEvalDisabledHook;
2162
+ exports.useEvalDisplayHook = useEvalDisplayHook;
1892
2163
  exports.useEvalDynamicHook = useEvalDynamicHook;
1893
2164
  exports.useEvalReadonlyHook = useEvalReadonlyHook;
2165
+ exports.useEvalStyleHook = useEvalStyleHook;
1894
2166
  exports.useEvalVisibilityHook = useEvalVisibilityHook;
1895
2167
  exports.useJsonataExpression = useJsonataExpression;
1896
2168
  exports.useUpdatedRef = useUpdatedRef;