@react-typed-forms/schemas 9.1.0 → 9.2.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
@@ -66,6 +66,7 @@ exports.ControlAdornmentType = void 0;
66
66
  exports.DataRenderType = void 0;
67
67
  (function (DataRenderType) {
68
68
  DataRenderType["Standard"] = "Standard";
69
+ DataRenderType["Textfield"] = "Textfield";
69
70
  DataRenderType["Radio"] = "Radio";
70
71
  DataRenderType["HtmlEditor"] = "HtmlEditor";
71
72
  DataRenderType["IconList"] = "IconList";
@@ -143,6 +144,9 @@ function isFlexRenderer(options) {
143
144
  function isDisplayOnlyRenderer(options) {
144
145
  return options.type === exports.DataRenderType.DisplayOnly;
145
146
  }
147
+ function isTextfieldRenderer(options) {
148
+ return options.type === exports.DataRenderType.Textfield;
149
+ }
146
150
  function isDataGroupRenderer(options) {
147
151
  return options.type === exports.DataRenderType.Group;
148
152
  }
@@ -857,7 +861,7 @@ function trackedStructure(c, tracker) {
857
861
  if (nc == null) return null;
858
862
  return trackedStructure(nc, tracker);
859
863
  }
860
- if (p in cv) return trackedStructure(cc.fields[p], tracker);
864
+ if (p in cc.fields || p in cv) return trackedStructure(cc.fields[p], tracker);
861
865
  return undefined;
862
866
  }
863
867
  });
@@ -1149,7 +1153,7 @@ function defaultTextValue(f, value) {
1149
1153
  }
1150
1154
  }
1151
1155
 
1152
- var _excluded$1 = ["definition", "field", "control", "options", "elementRenderer", "style", "allowedOptions"];
1156
+ var _excluded$3 = ["definition", "field", "control", "options", "elementRenderer", "style", "allowedOptions"];
1153
1157
  var AppendAdornmentPriority = 0;
1154
1158
  var WrapAdornmentPriority = 1000;
1155
1159
  exports.LabelType = void 0;
@@ -1375,12 +1379,13 @@ function defaultDataProps(_ref4) {
1375
1379
  elementRenderer = _ref4.elementRenderer,
1376
1380
  style = _ref4.style,
1377
1381
  allowedOptions = _ref4.allowedOptions,
1378
- props = _objectWithoutPropertiesLoose(_ref4, _excluded$1);
1382
+ props = _objectWithoutPropertiesLoose(_ref4, _excluded$3);
1379
1383
  var className = cc(definition.styleClass);
1380
1384
  var required = !!definition.required;
1381
1385
  var fieldOptions = ((_field$options$length = (_field$options = field.options) == null ? void 0 : _field$options.length) != null ? _field$options$length : 0) === 0 ? null : field.options;
1382
1386
  var allowed = (_allowedOptions$value = allowedOptions == null ? void 0 : allowedOptions.value) != null ? _allowedOptions$value : [];
1383
1387
  return _extends({
1388
+ definition: definition,
1384
1389
  childDefinitions: (_definition$children2 = definition.children) != null ? _definition$children2 : [],
1385
1390
  control: control,
1386
1391
  field: field,
@@ -1593,119 +1598,424 @@ function controlTitle(title, field) {
1593
1598
  return title ? title : fieldDisplayName(field);
1594
1599
  }
1595
1600
 
1596
- var _excluded = ["data", "display", "className", "style"],
1597
- _excluded2 = ["control", "convert"],
1598
- _excluded3 = ["errorText", "value", "onChange"],
1599
- _excluded4 = ["state", "options", "className", "convert", "required", "emptyText", "requiredText"];
1600
- function createFormRenderer(customRenderers, defaultRenderers) {
1601
- var _customRenderers$find;
1602
- if (customRenderers === void 0) {
1603
- customRenderers = [];
1601
+ function isIconAdornment(a) {
1602
+ return a.type === exports.ControlAdornmentType.Icon;
1603
+ }
1604
+ function createLayoutRenderer(render, options) {
1605
+ return _extends({
1606
+ type: "layout",
1607
+ render: render
1608
+ }, options);
1609
+ }
1610
+ function createArrayRenderer(render, options) {
1611
+ return _extends({
1612
+ type: "array",
1613
+ render: render
1614
+ }, options);
1615
+ }
1616
+ function createDataRenderer(render, options) {
1617
+ return _extends({
1618
+ type: "data",
1619
+ render: render
1620
+ }, options);
1621
+ }
1622
+ function createGroupRenderer(render, options) {
1623
+ return _extends({
1624
+ type: "group",
1625
+ render: render
1626
+ }, options);
1627
+ }
1628
+ function createDisplayRenderer(render, options) {
1629
+ return _extends({
1630
+ type: "display",
1631
+ render: render
1632
+ }, options);
1633
+ }
1634
+ function createLabelRenderer(render, options) {
1635
+ return _extends({
1636
+ type: "label",
1637
+ render: render
1638
+ }, options);
1639
+ }
1640
+ function createVisibilityRenderer(render, options) {
1641
+ return _extends({
1642
+ type: "visibility",
1643
+ render: render
1644
+ }, options);
1645
+ }
1646
+ function createAdornmentRenderer(render, options) {
1647
+ return _extends({
1648
+ type: "adornment"
1649
+ }, options, {
1650
+ render: render
1651
+ });
1652
+ }
1653
+
1654
+ var defaultTailwindTheme = {
1655
+ label: {
1656
+ groupLabelClass: "font-bold",
1657
+ requiredElement: /*#__PURE__*/React__default["default"].createElement("span", {
1658
+ className: "text-red-500"
1659
+ }, " *")
1660
+ },
1661
+ array: {
1662
+ removableClass: "grid grid-cols-[1fr_auto] items-center gap-x-2",
1663
+ childClass: "grow my-2",
1664
+ addActionClass: "my-2"
1665
+ },
1666
+ group: {
1667
+ standardClassName: "flex flex-col gap-4",
1668
+ gridClassName: "gap-x-2 gap-y-4",
1669
+ flexClassName: "gap-2"
1670
+ },
1671
+ action: {
1672
+ className: "bg-primary-500 rounded-lg p-3 text-white"
1673
+ },
1674
+ layout: {
1675
+ className: "flex flex-col",
1676
+ errorClass: "text-sm text-danger-500"
1677
+ },
1678
+ data: {
1679
+ displayOnlyClass: "flex flex-row items-center gap-2"
1604
1680
  }
1605
- if (defaultRenderers === void 0) {
1606
- defaultRenderers = createClassStyledRenderers();
1681
+ };
1682
+
1683
+ var _excluded$2 = ["data", "display", "className", "style"];
1684
+ function createDefaultDisplayRenderer(options) {
1685
+ if (options === void 0) {
1686
+ options = {};
1607
1687
  }
1608
- var dataRegistrations = customRenderers.filter(isDataRegistration);
1609
- var groupRegistrations = customRenderers.filter(isGroupRegistration);
1610
- var adornmentRegistrations = customRenderers.filter(isAdornmentRegistration);
1611
- var displayRegistrations = customRenderers.filter(isDisplayRegistration);
1612
- var labelRenderers = customRenderers.filter(isLabelRegistration);
1613
- var arrayRenderers = customRenderers.filter(isArrayRegistration);
1614
- var actionRenderers = customRenderers.filter(isActionRegistration);
1615
- var layoutRenderers = customRenderers.filter(isLayoutRegistration);
1616
- var visibilityRenderer = (_customRenderers$find = customRenderers.find(isVisibilityRegistration)) != null ? _customRenderers$find : defaultRenderers.visibility;
1617
- var formRenderers = {
1618
- renderAction: renderAction,
1619
- renderData: renderData,
1620
- renderGroup: renderGroup,
1621
- renderDisplay: renderDisplay,
1622
- renderLabel: renderLabel,
1623
- renderArray: renderArray,
1624
- renderAdornment: renderAdornment,
1625
- renderLayout: renderLayout,
1626
- renderVisibility: visibilityRenderer.render
1688
+ return {
1689
+ render: function render(props) {
1690
+ return /*#__PURE__*/React__default["default"].createElement(DefaultDisplay, _extends({}, options, props));
1691
+ },
1692
+ type: "display"
1627
1693
  };
1628
- function renderLayout(props) {
1629
- var _layoutRenderers$find;
1630
- var renderer = (_layoutRenderers$find = layoutRenderers.find(function (x) {
1631
- return !x.match || x.match(props);
1632
- })) != null ? _layoutRenderers$find : defaultRenderers.renderLayout;
1633
- return renderer.render(props, formRenderers);
1634
- }
1635
- function renderAdornment(props) {
1636
- var _adornmentRegistratio;
1637
- var renderer = (_adornmentRegistratio = adornmentRegistrations.find(function (x) {
1638
- return isOneOf(x.adornmentType, props.adornment.type);
1639
- })) != null ? _adornmentRegistratio : defaultRenderers.adornment;
1640
- return renderer.render(props);
1641
- }
1642
- function renderArray(props) {
1643
- var _arrayRenderers$;
1644
- return ((_arrayRenderers$ = arrayRenderers[0]) != null ? _arrayRenderers$ : defaultRenderers.array).render(props, formRenderers);
1645
- }
1646
- function renderLabel(props, labelStart, labelEnd) {
1647
- var _labelRenderers$find;
1648
- var renderer = (_labelRenderers$find = labelRenderers.find(function (x) {
1649
- return isOneOf(x.labelType, props.type);
1650
- })) != null ? _labelRenderers$find : defaultRenderers.label;
1651
- return renderer.render(props, labelStart, labelEnd, formRenderers);
1652
- }
1653
- function renderData(props) {
1654
- var _dataRegistrations$fi;
1655
- var renderType = props.renderOptions.type,
1656
- field = props.field;
1657
- var options = hasOptions(props);
1658
- var renderer = (_dataRegistrations$fi = dataRegistrations.find(function (x) {
1659
- var _x$collection, _field$collection, _x$options;
1660
- return ((_x$collection = x.collection) != null ? _x$collection : false) === ((_field$collection = field.collection) != null ? _field$collection : false) && ((_x$options = x.options) != null ? _x$options : false) === options && isOneOf(x.schemaType, field.type) && isOneOf(x.renderType, renderType) && (!x.match || x.match(props));
1661
- })) != null ? _dataRegistrations$fi : defaultRenderers.data;
1662
- var result = renderer.render(props, formRenderers);
1663
- if (typeof result === "function") return result;
1664
- return function (l) {
1665
- return _extends({}, l, {
1666
- children: result
1667
- });
1668
- };
1669
- }
1670
- function renderGroup(props) {
1671
- var _groupRegistrations$f;
1672
- var renderType = props.renderOptions.type;
1673
- var renderer = (_groupRegistrations$f = groupRegistrations.find(function (x) {
1674
- return isOneOf(x.renderType, renderType);
1675
- })) != null ? _groupRegistrations$f : defaultRenderers.group;
1676
- var result = renderer.render(props, formRenderers);
1677
- if (typeof result === "function") return result;
1678
- return function (l) {
1679
- return _extends({}, l, {
1680
- children: result
1681
- });
1682
- };
1694
+ }
1695
+ function DefaultDisplay(_ref) {
1696
+ var _effect = core.useComponentTracking();
1697
+ try {
1698
+ var _display$value;
1699
+ var data = _ref.data,
1700
+ display = _ref.display,
1701
+ className = _ref.className,
1702
+ style = _ref.style,
1703
+ options = _objectWithoutPropertiesLoose(_ref, _excluded$2);
1704
+ switch (data.type) {
1705
+ case exports.DisplayDataType.Icon:
1706
+ return /*#__PURE__*/React__default["default"].createElement("i", {
1707
+ style: style,
1708
+ className: clsx__default["default"](getOverrideClass(className), display ? display.value : data.iconClass)
1709
+ });
1710
+ case exports.DisplayDataType.Text:
1711
+ return /*#__PURE__*/React__default["default"].createElement("div", {
1712
+ style: style,
1713
+ className: rendererClass(className, options.textClassName)
1714
+ }, display ? display.value : data.text);
1715
+ case exports.DisplayDataType.Html:
1716
+ return /*#__PURE__*/React__default["default"].createElement("div", {
1717
+ style: style,
1718
+ className: rendererClass(className, options.htmlClassName),
1719
+ dangerouslySetInnerHTML: {
1720
+ __html: display ? (_display$value = display.value) != null ? _display$value : "" : data.html
1721
+ }
1722
+ });
1723
+ default:
1724
+ return /*#__PURE__*/React__default["default"].createElement("h1", null, "Unknown display type: ", data.type);
1725
+ }
1726
+ } finally {
1727
+ _effect();
1683
1728
  }
1684
- function renderAction(props) {
1685
- var _actionRenderers$find;
1686
- var renderer = (_actionRenderers$find = actionRenderers.find(function (x) {
1687
- return isOneOf(x.actionType, props.actionId);
1688
- })) != null ? _actionRenderers$find : defaultRenderers.action;
1689
- return renderer.render(props, formRenderers);
1729
+ }
1730
+
1731
+ function DefaultLayout(_ref) {
1732
+ var _effect = core.useComponentTracking();
1733
+ try {
1734
+ var errorClass = _ref.errorClass,
1735
+ _ref$layout = _ref.layout,
1736
+ controlEnd = _ref$layout.controlEnd,
1737
+ controlStart = _ref$layout.controlStart,
1738
+ label = _ref$layout.label,
1739
+ children = _ref$layout.children,
1740
+ errorControl = _ref$layout.errorControl;
1741
+ var ec = errorControl;
1742
+ var errorText = ec && ec.touched ? ec.error : undefined;
1743
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, label, controlStart, children, errorText && /*#__PURE__*/React__default["default"].createElement("div", {
1744
+ className: errorClass
1745
+ }, errorText), controlEnd);
1746
+ } finally {
1747
+ _effect();
1690
1748
  }
1691
- function renderDisplay(props) {
1692
- var _displayRegistrations;
1693
- var renderType = props.data.type;
1694
- var renderer = (_displayRegistrations = displayRegistrations.find(function (x) {
1695
- return isOneOf(x.renderType, renderType);
1696
- })) != null ? _displayRegistrations : defaultRenderers.display;
1697
- return renderer.render(props, formRenderers);
1749
+ }
1750
+
1751
+ function createDefaultVisibilityRenderer() {
1752
+ return createVisibilityRenderer(function (props) {
1753
+ return /*#__PURE__*/React__default["default"].createElement(DefaultVisibility, props);
1754
+ });
1755
+ }
1756
+ function DefaultVisibility(_ref) {
1757
+ var _effect = core.useComponentTracking();
1758
+ try {
1759
+ var visibility = _ref.visibility,
1760
+ children = _ref.children,
1761
+ className = _ref.className,
1762
+ style = _ref.style,
1763
+ divRef = _ref.divRef;
1764
+ var v = visibility.value;
1765
+ React.useEffect(function () {
1766
+ if (v) {
1767
+ visibility.setValue(function (ex) {
1768
+ return {
1769
+ visible: v.visible,
1770
+ showing: v.visible
1771
+ };
1772
+ });
1773
+ }
1774
+ }, [v == null ? void 0 : v.visible]);
1775
+ return v != null && v.visible ? /*#__PURE__*/React__default["default"].createElement("div", {
1776
+ className: clsx__default["default"](className),
1777
+ style: style,
1778
+ ref: divRef
1779
+ }, children) : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null);
1780
+ } finally {
1781
+ _effect();
1698
1782
  }
1699
- return formRenderers;
1700
1783
  }
1701
- function createDefaultActionRenderer(options) {
1784
+
1785
+ var _excluded$1 = ["state", "options", "className", "convert", "required", "emptyText", "requiredText", "readonly"];
1786
+ function createSelectRenderer(options) {
1702
1787
  if (options === void 0) {
1703
1788
  options = {};
1704
1789
  }
1705
- function render(_ref) {
1706
- var onClick = _ref.onClick,
1707
- actionText = _ref.actionText;
1708
- return /*#__PURE__*/React__default["default"].createElement("button", {
1790
+ return createDataRenderer(function (props, asArray) {
1791
+ return /*#__PURE__*/React__default["default"].createElement(SelectDataRenderer, {
1792
+ className: rendererClass(props.className, options.className),
1793
+ state: props.control,
1794
+ id: props.id,
1795
+ readonly: props.readonly,
1796
+ options: props.options,
1797
+ required: props.required,
1798
+ emptyText: options.emptyText,
1799
+ requiredText: options.requiredText,
1800
+ convert: createSelectConversion(props.field.type)
1801
+ });
1802
+ }, {
1803
+ options: true
1804
+ });
1805
+ }
1806
+ function SelectDataRenderer(_ref) {
1807
+ var _effect = core.useComponentTracking();
1808
+ try {
1809
+ var state = _ref.state,
1810
+ options = _ref.options,
1811
+ className = _ref.className,
1812
+ convert = _ref.convert,
1813
+ required = _ref.required,
1814
+ _ref$emptyText = _ref.emptyText,
1815
+ emptyText = _ref$emptyText === void 0 ? "N/A" : _ref$emptyText,
1816
+ _ref$requiredText = _ref.requiredText,
1817
+ requiredText = _ref$requiredText === void 0 ? "<please select>" : _ref$requiredText,
1818
+ readonly = _ref.readonly,
1819
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$1);
1820
+ var value = state.value,
1821
+ disabled = state.disabled;
1822
+ var _useState = React.useState(!required || value == null),
1823
+ showEmpty = _useState[0];
1824
+ var optionStringMap = React.useMemo(function () {
1825
+ return Object.fromEntries(options.map(function (x) {
1826
+ return [convert(x.value), x.value];
1827
+ }));
1828
+ }, [options]);
1829
+ return /*#__PURE__*/React__default["default"].createElement("select", _extends({}, props, {
1830
+ className: className,
1831
+ onChange: function onChange(v) {
1832
+ return state.value = optionStringMap[v.target.value];
1833
+ },
1834
+ value: convert(value),
1835
+ disabled: disabled || readonly
1836
+ }), showEmpty && /*#__PURE__*/React__default["default"].createElement("option", {
1837
+ value: ""
1838
+ }, required ? requiredText : emptyText), options.map(function (x, i) {
1839
+ return /*#__PURE__*/React__default["default"].createElement("option", {
1840
+ key: i,
1841
+ value: convert(x.value),
1842
+ disabled: !!x.disabled
1843
+ }, x.name);
1844
+ }));
1845
+ } finally {
1846
+ _effect();
1847
+ }
1848
+ }
1849
+ function createSelectConversion(ft) {
1850
+ switch (ft) {
1851
+ case exports.FieldType.String:
1852
+ case exports.FieldType.Int:
1853
+ case exports.FieldType.Double:
1854
+ return function (a) {
1855
+ return a;
1856
+ };
1857
+ default:
1858
+ return function (a) {
1859
+ var _a$toString;
1860
+ return (_a$toString = a == null ? void 0 : a.toString()) != null ? _a$toString : "";
1861
+ };
1862
+ }
1863
+ }
1864
+
1865
+ function DefaultDisplayOnly(_ref) {
1866
+ var _effect = core.useComponentTracking();
1867
+ try {
1868
+ var _ref2;
1869
+ var control = _ref.control,
1870
+ className = _ref.className,
1871
+ emptyText = _ref.emptyText,
1872
+ schemaInterface = _ref.schemaInterface,
1873
+ field = _ref.field,
1874
+ style = _ref.style;
1875
+ var v = control.value;
1876
+ var text = (_ref2 = schemaInterface.isEmptyValue(field, v) ? emptyText : schemaInterface.textValue(field, v)) != null ? _ref2 : "";
1877
+ return /*#__PURE__*/React__default["default"].createElement("div", {
1878
+ style: style,
1879
+ className: rendererClass(className)
1880
+ }, text);
1881
+ } finally {
1882
+ _effect();
1883
+ }
1884
+ }
1885
+
1886
+ var _excluded = ["control", "convert"],
1887
+ _excluded2 = ["errorText", "value", "onChange"];
1888
+ function ControlInput(_ref) {
1889
+ var _effect = core.useComponentTracking();
1890
+ try {
1891
+ var control = _ref.control,
1892
+ convert = _ref.convert,
1893
+ props = _objectWithoutPropertiesLoose(_ref, _excluded);
1894
+ var _formControlProps = core.formControlProps(control),
1895
+ errorText = _formControlProps.errorText,
1896
+ value = _formControlProps.value,
1897
+ onChange = _formControlProps.onChange,
1898
+ inputProps = _objectWithoutPropertiesLoose(_formControlProps, _excluded2);
1899
+ return /*#__PURE__*/React__default["default"].createElement("input", _extends({}, inputProps, {
1900
+ type: convert[0],
1901
+ value: value == null ? "" : convert[2](value),
1902
+ onChange: function onChange(e) {
1903
+ control.value = convert[1](e.target.value);
1904
+ }
1905
+ }, props));
1906
+ } finally {
1907
+ _effect();
1908
+ }
1909
+ }
1910
+ function createInputConversion(ft) {
1911
+ switch (ft) {
1912
+ case exports.FieldType.String:
1913
+ return ["text", function (a) {
1914
+ return a;
1915
+ }, function (a) {
1916
+ return a;
1917
+ }];
1918
+ case exports.FieldType.Bool:
1919
+ return ["text", function (a) {
1920
+ return a === "true";
1921
+ }, function (a) {
1922
+ var _a$toString;
1923
+ return (_a$toString = a == null ? void 0 : a.toString()) != null ? _a$toString : "";
1924
+ }];
1925
+ case exports.FieldType.Int:
1926
+ return ["number", function (a) {
1927
+ return a !== "" ? parseInt(a) : null;
1928
+ }, function (a) {
1929
+ return a == null ? "" : a;
1930
+ }];
1931
+ case exports.FieldType.Date:
1932
+ return ["date", function (a) {
1933
+ return a;
1934
+ }, function (a) {
1935
+ return a;
1936
+ }];
1937
+ case exports.FieldType.Double:
1938
+ return ["number", function (a) {
1939
+ return parseFloat(a);
1940
+ }, function (a) {
1941
+ return a;
1942
+ }];
1943
+ default:
1944
+ return ["text", function (a) {
1945
+ return a;
1946
+ }, function (a) {
1947
+ return a;
1948
+ }];
1949
+ }
1950
+ }
1951
+
1952
+ function createRadioRenderer(options) {
1953
+ if (options === void 0) {
1954
+ options = {};
1955
+ }
1956
+ return createDataRenderer(function (p) {
1957
+ return /*#__PURE__*/React__default["default"].createElement(RadioButtons, _extends({}, options, p, {
1958
+ className: rendererClass(p.className, options.className),
1959
+ control: p.control
1960
+ }));
1961
+ }, {
1962
+ renderType: exports.DataRenderType.Radio
1963
+ });
1964
+ }
1965
+ function RadioButtons(_ref) {
1966
+ var _effect = core.useComponentTracking();
1967
+ try {
1968
+ var control = _ref.control,
1969
+ options = _ref.options,
1970
+ labelClass = _ref.labelClass,
1971
+ radioClass = _ref.radioClass,
1972
+ readonly = _ref.readonly,
1973
+ entryClass = _ref.entryClass,
1974
+ className = _ref.className,
1975
+ id = _ref.id;
1976
+ var disabled = control.disabled;
1977
+ var canChange = !disabled && !readonly;
1978
+ var name = "r" + control.uniqueId;
1979
+ return /*#__PURE__*/React__default["default"].createElement("div", {
1980
+ className: className,
1981
+ id: id
1982
+ }, /*#__PURE__*/React__default["default"].createElement(core.RenderArrayElements, {
1983
+ array: options == null ? void 0 : options.filter(function (x) {
1984
+ return x.value != null;
1985
+ })
1986
+ }, function (o, i) {
1987
+ return /*#__PURE__*/React__default["default"].createElement("div", {
1988
+ key: i,
1989
+ className: entryClass
1990
+ }, /*#__PURE__*/React__default["default"].createElement("input", {
1991
+ id: name + "_" + i,
1992
+ className: radioClass,
1993
+ type: "radio",
1994
+ name: name,
1995
+ readOnly: readonly,
1996
+ disabled: disabled,
1997
+ checked: control.value == o.value,
1998
+ onChange: function onChange(x) {
1999
+ return control.value = o.value;
2000
+ }
2001
+ }), /*#__PURE__*/React__default["default"].createElement("label", {
2002
+ className: labelClass,
2003
+ htmlFor: name + "_" + i
2004
+ }, o.name));
2005
+ }));
2006
+ } finally {
2007
+ _effect();
2008
+ }
2009
+ }
2010
+
2011
+ function createDefaultActionRenderer(options) {
2012
+ if (options === void 0) {
2013
+ options = {};
2014
+ }
2015
+ function render(_ref) {
2016
+ var onClick = _ref.onClick,
2017
+ actionText = _ref.actionText;
2018
+ return /*#__PURE__*/React__default["default"].createElement("button", {
1709
2019
  className: options.className,
1710
2020
  onClick: onClick
1711
2021
  }, actionText);
@@ -1715,27 +2025,6 @@ function createDefaultActionRenderer(options) {
1715
2025
  type: "action"
1716
2026
  };
1717
2027
  }
1718
- function createDefaultLabelRenderer(options) {
1719
- if (options === void 0) {
1720
- options = {
1721
- requiredElement: /*#__PURE__*/React__default["default"].createElement("span", null, " *")
1722
- };
1723
- }
1724
- var _options = options,
1725
- className = _options.className,
1726
- groupLabelClass = _options.groupLabelClass,
1727
- controlLabelClass = _options.controlLabelClass,
1728
- requiredElement = _options.requiredElement;
1729
- return {
1730
- render: function render(props, labelStart, labelEnd) {
1731
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, labelStart, /*#__PURE__*/React__default["default"].createElement("label", {
1732
- htmlFor: props.forId,
1733
- className: rendererClass(props.className, clsx__default["default"](className, props.type === exports.LabelType.Group && groupLabelClass, props.type === exports.LabelType.Control && controlLabelClass))
1734
- }, props.label, props.required && requiredElement), labelEnd);
1735
- },
1736
- type: "label"
1737
- };
1738
- }
1739
2028
  function createDefaultArrayRenderer(options) {
1740
2029
  var _ref2 = options != null ? options : {},
1741
2030
  className = _ref2.className,
@@ -1834,52 +2123,6 @@ function createDefaultGroupRenderer(options) {
1834
2123
  render: render
1835
2124
  };
1836
2125
  }
1837
- function createDefaultDisplayRenderer(options) {
1838
- if (options === void 0) {
1839
- options = {};
1840
- }
1841
- return {
1842
- render: function render(props) {
1843
- return /*#__PURE__*/React__default["default"].createElement(DefaultDisplay, _extends({}, options, props));
1844
- },
1845
- type: "display"
1846
- };
1847
- }
1848
- function DefaultDisplay(_ref8) {
1849
- var _effect = core.useComponentTracking();
1850
- try {
1851
- var _display$value;
1852
- var data = _ref8.data,
1853
- display = _ref8.display,
1854
- className = _ref8.className,
1855
- style = _ref8.style,
1856
- options = _objectWithoutPropertiesLoose(_ref8, _excluded);
1857
- switch (data.type) {
1858
- case exports.DisplayDataType.Icon:
1859
- return /*#__PURE__*/React__default["default"].createElement("i", {
1860
- style: style,
1861
- className: clsx__default["default"](getOverrideClass(className), display ? display.value : data.iconClass)
1862
- });
1863
- case exports.DisplayDataType.Text:
1864
- return /*#__PURE__*/React__default["default"].createElement("div", {
1865
- style: style,
1866
- className: rendererClass(className, options.textClassName)
1867
- }, display ? display.value : data.text);
1868
- case exports.DisplayDataType.Html:
1869
- return /*#__PURE__*/React__default["default"].createElement("div", {
1870
- style: style,
1871
- className: rendererClass(className, options.htmlClassName),
1872
- dangerouslySetInnerHTML: {
1873
- __html: display ? (_display$value = display.value) != null ? _display$value : "" : data.html
1874
- }
1875
- });
1876
- default:
1877
- return /*#__PURE__*/React__default["default"].createElement("h1", null, "Unknown display type: ", data.type);
1878
- }
1879
- } finally {
1880
- _effect();
1881
- }
1882
- }
1883
2126
  var DefaultBoolOptions = [{
1884
2127
  name: "Yes",
1885
2128
  value: true
@@ -1888,11 +2131,11 @@ var DefaultBoolOptions = [{
1888
2131
  value: false
1889
2132
  }];
1890
2133
  function createDefaultDataRenderer(options) {
1891
- var _options$selectOption;
1892
2134
  if (options === void 0) {
1893
2135
  options = {};
1894
2136
  }
1895
- var selectRenderer = createSelectRenderer((_options$selectOption = options.selectOptions) != null ? _options$selectOption : {});
2137
+ var selectRenderer = createSelectRenderer(options.selectOptions);
2138
+ var radioRenderer = createRadioRenderer(options.radioOptions);
1896
2139
  var _optionRenderer$boole = _extends({
1897
2140
  optionRenderer: selectRenderer,
1898
2141
  booleanOptions: DefaultBoolOptions
@@ -1959,68 +2202,32 @@ function createDefaultDataRenderer(options) {
1959
2202
  switch (renderType) {
1960
2203
  case exports.DataRenderType.Dropdown:
1961
2204
  return selectRenderer.render(props, renderers);
2205
+ case exports.DataRenderType.Radio:
2206
+ return radioRenderer.render(props, renderers);
2207
+ case exports.DataRenderType.Checkbox:
2208
+ return /*#__PURE__*/React__default["default"].createElement(core.Fcheckbox, {
2209
+ style: props.style,
2210
+ className: props.className,
2211
+ control: props.control
2212
+ });
1962
2213
  }
1963
- return renderType === exports.DataRenderType.Checkbox ? /*#__PURE__*/React__default["default"].createElement(core.Fcheckbox, {
1964
- style: props.style,
1965
- className: props.className,
1966
- control: props.control
1967
- }) : /*#__PURE__*/React__default["default"].createElement(ControlInput, {
2214
+ var placeholder = isTextfieldRenderer(renderOptions) ? renderOptions.placeholder : undefined;
2215
+ return /*#__PURE__*/React__default["default"].createElement(ControlInput, {
1968
2216
  className: rendererClass(props.className, inputClass),
1969
2217
  style: props.style,
1970
2218
  id: props.id,
1971
2219
  readOnly: props.readonly,
1972
2220
  control: props.control,
2221
+ placeholder: placeholder != null ? placeholder : undefined,
1973
2222
  convert: createInputConversion(props.field.type)
1974
2223
  });
1975
2224
  });
1976
2225
  }
1977
- function DefaultDisplayOnly(_ref9) {
1978
- var _effect2 = core.useComponentTracking();
1979
- try {
1980
- var _ref10;
1981
- var control = _ref9.control,
1982
- className = _ref9.className,
1983
- emptyText = _ref9.emptyText,
1984
- schemaInterface = _ref9.schemaInterface,
1985
- field = _ref9.field,
1986
- style = _ref9.style;
1987
- var v = control.value;
1988
- var text = (_ref10 = schemaInterface.isEmptyValue(field, v) ? emptyText : schemaInterface.textValue(field, v)) != null ? _ref10 : "";
1989
- return /*#__PURE__*/React__default["default"].createElement("div", {
1990
- style: style,
1991
- className: rendererClass(className)
1992
- }, text);
1993
- } finally {
1994
- _effect2();
1995
- }
1996
- }
1997
- function ControlInput(_ref11) {
1998
- var _effect3 = core.useComponentTracking();
1999
- try {
2000
- var control = _ref11.control,
2001
- convert = _ref11.convert,
2002
- props = _objectWithoutPropertiesLoose(_ref11, _excluded2);
2003
- var _formControlProps = core.formControlProps(control),
2004
- errorText = _formControlProps.errorText,
2005
- value = _formControlProps.value,
2006
- onChange = _formControlProps.onChange,
2007
- inputProps = _objectWithoutPropertiesLoose(_formControlProps, _excluded3);
2008
- return /*#__PURE__*/React__default["default"].createElement("input", _extends({}, inputProps, {
2009
- type: convert[0],
2010
- value: value == null ? "" : convert[2](value),
2011
- onChange: function onChange(e) {
2012
- control.value = convert[1](e.target.value);
2013
- }
2014
- }, props));
2015
- } finally {
2016
- _effect3();
2017
- }
2018
- }
2019
2226
  function createDefaultAdornmentRenderer(options) {
2020
2227
  return {
2021
2228
  type: "adornment",
2022
- render: function render(_ref12) {
2023
- var adornment = _ref12.adornment;
2229
+ render: function render(_ref8) {
2230
+ var adornment = _ref8.adornment;
2024
2231
  return {
2025
2232
  apply: function apply(rl) {
2026
2233
  if (isIconAdornment(adornment)) {
@@ -2036,22 +2243,6 @@ function createDefaultAdornmentRenderer(options) {
2036
2243
  }
2037
2244
  };
2038
2245
  }
2039
- function createDefaultRenderers(options) {
2040
- if (options === void 0) {
2041
- options = {};
2042
- }
2043
- return {
2044
- data: createDefaultDataRenderer(options.data),
2045
- display: createDefaultDisplayRenderer(options.display),
2046
- action: createDefaultActionRenderer(options.action),
2047
- array: createDefaultArrayRenderer(options.array),
2048
- group: createDefaultGroupRenderer(options.group),
2049
- label: createDefaultLabelRenderer(options.label),
2050
- adornment: createDefaultAdornmentRenderer(),
2051
- renderLayout: createDefaultLayoutRenderer(options.layout),
2052
- visibility: createDefaultVisibilityRenderer()
2053
- };
2054
- }
2055
2246
  function createDefaultLayoutRenderer(options) {
2056
2247
  if (options === void 0) {
2057
2248
  options = {};
@@ -2072,7 +2263,147 @@ function createDefaultLayoutRenderer(options) {
2072
2263
  };
2073
2264
  });
2074
2265
  }
2075
- function createClassStyledRenderers() {
2266
+ function createDefaultLabelRenderer(options) {
2267
+ var _requiredElement$labe = _extends({
2268
+ requiredElement: /*#__PURE__*/React__default["default"].createElement("span", null, " *"),
2269
+ labelContainer: function labelContainer(c) {
2270
+ return c;
2271
+ }
2272
+ }, options),
2273
+ className = _requiredElement$labe.className,
2274
+ groupLabelClass = _requiredElement$labe.groupLabelClass,
2275
+ controlLabelClass = _requiredElement$labe.controlLabelClass,
2276
+ requiredElement = _requiredElement$labe.requiredElement,
2277
+ labelContainer = _requiredElement$labe.labelContainer;
2278
+ return {
2279
+ render: function render(props, labelStart, labelEnd) {
2280
+ return labelContainer( /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, labelStart, /*#__PURE__*/React__default["default"].createElement("label", {
2281
+ htmlFor: props.forId,
2282
+ className: rendererClass(props.className, clsx__default["default"](className, props.type === exports.LabelType.Group && groupLabelClass, props.type === exports.LabelType.Control && controlLabelClass))
2283
+ }, props.label, props.required && requiredElement), labelEnd));
2284
+ },
2285
+ type: "label"
2286
+ };
2287
+ }
2288
+ function createDefaultRenderers(options) {
2289
+ if (options === void 0) {
2290
+ options = {};
2291
+ }
2292
+ return {
2293
+ data: createDefaultDataRenderer(options.data),
2294
+ display: createDefaultDisplayRenderer(options.display),
2295
+ action: createDefaultActionRenderer(options.action),
2296
+ array: createDefaultArrayRenderer(options.array),
2297
+ group: createDefaultGroupRenderer(options.group),
2298
+ label: createDefaultLabelRenderer(options.label),
2299
+ adornment: createDefaultAdornmentRenderer(),
2300
+ renderLayout: createDefaultLayoutRenderer(options.layout),
2301
+ visibility: createDefaultVisibilityRenderer()
2302
+ };
2303
+ }
2304
+
2305
+ function createFormRenderer(customRenderers, defaultRenderers) {
2306
+ var _customRenderers$find;
2307
+ if (customRenderers === void 0) {
2308
+ customRenderers = [];
2309
+ }
2310
+ if (defaultRenderers === void 0) {
2311
+ defaultRenderers = createClassStyledRenderers();
2312
+ }
2313
+ var dataRegistrations = customRenderers.filter(isDataRegistration);
2314
+ var groupRegistrations = customRenderers.filter(isGroupRegistration);
2315
+ var adornmentRegistrations = customRenderers.filter(isAdornmentRegistration);
2316
+ var displayRegistrations = customRenderers.filter(isDisplayRegistration);
2317
+ var labelRenderers = customRenderers.filter(isLabelRegistration);
2318
+ var arrayRenderers = customRenderers.filter(isArrayRegistration);
2319
+ var actionRenderers = customRenderers.filter(isActionRegistration);
2320
+ var layoutRenderers = customRenderers.filter(isLayoutRegistration);
2321
+ var visibilityRenderer = (_customRenderers$find = customRenderers.find(isVisibilityRegistration)) != null ? _customRenderers$find : defaultRenderers.visibility;
2322
+ var formRenderers = {
2323
+ renderAction: renderAction,
2324
+ renderData: renderData,
2325
+ renderGroup: renderGroup,
2326
+ renderDisplay: renderDisplay,
2327
+ renderLabel: renderLabel,
2328
+ renderArray: renderArray,
2329
+ renderAdornment: renderAdornment,
2330
+ renderLayout: renderLayout,
2331
+ renderVisibility: visibilityRenderer.render
2332
+ };
2333
+ function renderLayout(props) {
2334
+ var _layoutRenderers$find;
2335
+ var renderer = (_layoutRenderers$find = layoutRenderers.find(function (x) {
2336
+ return !x.match || x.match(props);
2337
+ })) != null ? _layoutRenderers$find : defaultRenderers.renderLayout;
2338
+ return renderer.render(props, formRenderers);
2339
+ }
2340
+ function renderAdornment(props) {
2341
+ var _adornmentRegistratio;
2342
+ var renderer = (_adornmentRegistratio = adornmentRegistrations.find(function (x) {
2343
+ return isOneOf(x.adornmentType, props.adornment.type);
2344
+ })) != null ? _adornmentRegistratio : defaultRenderers.adornment;
2345
+ return renderer.render(props);
2346
+ }
2347
+ function renderArray(props) {
2348
+ var _arrayRenderers$;
2349
+ return ((_arrayRenderers$ = arrayRenderers[0]) != null ? _arrayRenderers$ : defaultRenderers.array).render(props, formRenderers);
2350
+ }
2351
+ function renderLabel(props, labelStart, labelEnd) {
2352
+ var _labelRenderers$find;
2353
+ var renderer = (_labelRenderers$find = labelRenderers.find(function (x) {
2354
+ return isOneOf(x.labelType, props.type);
2355
+ })) != null ? _labelRenderers$find : defaultRenderers.label;
2356
+ return renderer.render(props, labelStart, labelEnd, formRenderers);
2357
+ }
2358
+ function renderData(props) {
2359
+ var _dataRegistrations$fi;
2360
+ var renderType = props.renderOptions.type,
2361
+ field = props.field;
2362
+ var options = hasOptions(props);
2363
+ var renderer = (_dataRegistrations$fi = dataRegistrations.find(function (x) {
2364
+ var _x$collection, _field$collection, _x$options;
2365
+ return ((_x$collection = x.collection) != null ? _x$collection : false) === ((_field$collection = field.collection) != null ? _field$collection : false) && ((_x$options = x.options) != null ? _x$options : false) === options && (x.schemaType && isOneOf(x.schemaType, field.type) || x.renderType && isOneOf(x.renderType, renderType) || x.match && x.match(props));
2366
+ })) != null ? _dataRegistrations$fi : defaultRenderers.data;
2367
+ var result = renderer.render(props, formRenderers);
2368
+ if (typeof result === "function") return result;
2369
+ return function (l) {
2370
+ return _extends({}, l, {
2371
+ children: result
2372
+ });
2373
+ };
2374
+ }
2375
+ function renderGroup(props) {
2376
+ var _groupRegistrations$f;
2377
+ var renderType = props.renderOptions.type;
2378
+ var renderer = (_groupRegistrations$f = groupRegistrations.find(function (x) {
2379
+ return isOneOf(x.renderType, renderType);
2380
+ })) != null ? _groupRegistrations$f : defaultRenderers.group;
2381
+ var result = renderer.render(props, formRenderers);
2382
+ if (typeof result === "function") return result;
2383
+ return function (l) {
2384
+ return _extends({}, l, {
2385
+ children: result
2386
+ });
2387
+ };
2388
+ }
2389
+ function renderAction(props) {
2390
+ var _actionRenderers$find;
2391
+ var renderer = (_actionRenderers$find = actionRenderers.find(function (x) {
2392
+ return isOneOf(x.actionType, props.actionId);
2393
+ })) != null ? _actionRenderers$find : defaultRenderers.action;
2394
+ return renderer.render(props, formRenderers);
2395
+ }
2396
+ function renderDisplay(props) {
2397
+ var _displayRegistrations;
2398
+ var renderType = props.data.type;
2399
+ var renderer = (_displayRegistrations = displayRegistrations.find(function (x) {
2400
+ return isOneOf(x.renderType, renderType);
2401
+ })) != null ? _displayRegistrations : defaultRenderers.display;
2402
+ return renderer.render(props, formRenderers);
2403
+ }
2404
+ return formRenderers;
2405
+ }
2406
+ function createClassStyledRenderers() {
2076
2407
  return createDefaultRenderers({
2077
2408
  layout: {
2078
2409
  className: "control"
@@ -2095,6 +2426,9 @@ function createClassStyledRenderers() {
2095
2426
  }
2096
2427
  });
2097
2428
  }
2429
+ function isOneOf(x, v) {
2430
+ return x == null ? true : Array.isArray(x) ? x.includes(v) : v === x;
2431
+ }
2098
2432
  function isAdornmentRegistration(x) {
2099
2433
  return x.type === "adornment";
2100
2434
  }
@@ -2122,259 +2456,6 @@ function isDisplayRegistration(x) {
2122
2456
  function isArrayRegistration(x) {
2123
2457
  return x.type === "array";
2124
2458
  }
2125
- function isOneOf(x, v) {
2126
- return x == null ? true : Array.isArray(x) ? x.includes(v) : v === x;
2127
- }
2128
- function isIconAdornment(a) {
2129
- return a.type === exports.ControlAdornmentType.Icon;
2130
- }
2131
- function createLayoutRenderer(render, options) {
2132
- return _extends({
2133
- type: "layout",
2134
- render: render
2135
- }, options);
2136
- }
2137
- function createArrayRenderer(render, options) {
2138
- return _extends({
2139
- type: "array",
2140
- render: render
2141
- }, options);
2142
- }
2143
- function createDataRenderer(render, options) {
2144
- return _extends({
2145
- type: "data",
2146
- render: render
2147
- }, options);
2148
- }
2149
- function createGroupRenderer(render, options) {
2150
- return _extends({
2151
- type: "group",
2152
- render: render
2153
- }, options);
2154
- }
2155
- function createDisplayRenderer(render, options) {
2156
- return _extends({
2157
- type: "display",
2158
- render: render
2159
- }, options);
2160
- }
2161
- function createLabelRenderer(render, options) {
2162
- return _extends({
2163
- type: "label",
2164
- render: render
2165
- }, options);
2166
- }
2167
- function createVisibilityRenderer(render, options) {
2168
- return _extends({
2169
- type: "visibility",
2170
- render: render
2171
- }, options);
2172
- }
2173
- function createAdornmentRenderer(render, options) {
2174
- return _extends({
2175
- type: "adornment"
2176
- }, options, {
2177
- render: render
2178
- });
2179
- }
2180
- function createSelectRenderer(options) {
2181
- if (options === void 0) {
2182
- options = {};
2183
- }
2184
- return createDataRenderer(function (props, asArray) {
2185
- return /*#__PURE__*/React__default["default"].createElement(SelectDataRenderer, {
2186
- className: rendererClass(props.className, options.className),
2187
- state: props.control,
2188
- id: props.id,
2189
- options: props.options,
2190
- required: props.required,
2191
- emptyText: options.emptyText,
2192
- requiredText: options.requiredText,
2193
- convert: createSelectConversion(props.field.type)
2194
- });
2195
- }, {
2196
- options: true
2197
- });
2198
- }
2199
- function SelectDataRenderer(_ref13) {
2200
- var _effect4 = core.useComponentTracking();
2201
- try {
2202
- var state = _ref13.state,
2203
- options = _ref13.options,
2204
- className = _ref13.className,
2205
- convert = _ref13.convert,
2206
- required = _ref13.required,
2207
- _ref13$emptyText = _ref13.emptyText,
2208
- emptyText = _ref13$emptyText === void 0 ? "N/A" : _ref13$emptyText,
2209
- _ref13$requiredText = _ref13.requiredText,
2210
- requiredText = _ref13$requiredText === void 0 ? "<please select>" : _ref13$requiredText,
2211
- props = _objectWithoutPropertiesLoose(_ref13, _excluded4);
2212
- var value = state.value,
2213
- disabled = state.disabled;
2214
- var _useState = React.useState(!required || value == null),
2215
- showEmpty = _useState[0];
2216
- var optionStringMap = React.useMemo(function () {
2217
- return Object.fromEntries(options.map(function (x) {
2218
- return [convert(x.value), x.value];
2219
- }));
2220
- }, [options]);
2221
- return /*#__PURE__*/React__default["default"].createElement("select", _extends({}, props, {
2222
- className: className,
2223
- onChange: function onChange(v) {
2224
- return state.value = optionStringMap[v.target.value];
2225
- },
2226
- value: convert(value),
2227
- disabled: disabled
2228
- }), showEmpty && /*#__PURE__*/React__default["default"].createElement("option", {
2229
- value: ""
2230
- }, required ? requiredText : emptyText), options.map(function (x, i) {
2231
- return /*#__PURE__*/React__default["default"].createElement("option", {
2232
- key: i,
2233
- value: convert(x.value),
2234
- disabled: x.disabled
2235
- }, x.name);
2236
- }));
2237
- } finally {
2238
- _effect4();
2239
- }
2240
- }
2241
- function createSelectConversion(ft) {
2242
- switch (ft) {
2243
- case exports.FieldType.String:
2244
- case exports.FieldType.Int:
2245
- case exports.FieldType.Double:
2246
- return function (a) {
2247
- return a;
2248
- };
2249
- default:
2250
- return function (a) {
2251
- var _a$toString;
2252
- return (_a$toString = a == null ? void 0 : a.toString()) != null ? _a$toString : "";
2253
- };
2254
- }
2255
- }
2256
- function createInputConversion(ft) {
2257
- switch (ft) {
2258
- case exports.FieldType.String:
2259
- return ["text", function (a) {
2260
- return a;
2261
- }, function (a) {
2262
- return a;
2263
- }];
2264
- case exports.FieldType.Bool:
2265
- return ["text", function (a) {
2266
- return a === "true";
2267
- }, function (a) {
2268
- var _a$toString2;
2269
- return (_a$toString2 = a == null ? void 0 : a.toString()) != null ? _a$toString2 : "";
2270
- }];
2271
- case exports.FieldType.Int:
2272
- return ["number", function (a) {
2273
- return a !== "" ? parseInt(a) : null;
2274
- }, function (a) {
2275
- return a == null ? "" : a;
2276
- }];
2277
- case exports.FieldType.Date:
2278
- return ["date", function (a) {
2279
- return a;
2280
- }, function (a) {
2281
- return a;
2282
- }];
2283
- case exports.FieldType.Double:
2284
- return ["number", function (a) {
2285
- return parseFloat(a);
2286
- }, function (a) {
2287
- return a;
2288
- }];
2289
- default:
2290
- return ["text", function (a) {
2291
- return a;
2292
- }, function (a) {
2293
- return a;
2294
- }];
2295
- }
2296
- }
2297
- function createDefaultVisibilityRenderer() {
2298
- return createVisibilityRenderer(function (props) {
2299
- return /*#__PURE__*/React__default["default"].createElement(DefaultVisibility, props);
2300
- });
2301
- }
2302
- function DefaultVisibility(_ref14) {
2303
- var _effect5 = core.useComponentTracking();
2304
- try {
2305
- var visibility = _ref14.visibility,
2306
- children = _ref14.children,
2307
- className = _ref14.className,
2308
- style = _ref14.style,
2309
- divRef = _ref14.divRef;
2310
- var v = visibility.value;
2311
- React.useEffect(function () {
2312
- if (v) {
2313
- visibility.setValue(function (ex) {
2314
- return {
2315
- visible: v.visible,
2316
- showing: v.visible
2317
- };
2318
- });
2319
- }
2320
- }, [v == null ? void 0 : v.visible]);
2321
- return v != null && v.visible ? /*#__PURE__*/React__default["default"].createElement("div", {
2322
- className: clsx__default["default"](className),
2323
- style: style,
2324
- ref: divRef
2325
- }, children) : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null);
2326
- } finally {
2327
- _effect5();
2328
- }
2329
- }
2330
- function DefaultLayout(_ref15) {
2331
- var _effect6 = core.useComponentTracking();
2332
- try {
2333
- var errorClass = _ref15.errorClass,
2334
- _ref15$layout = _ref15.layout,
2335
- controlEnd = _ref15$layout.controlEnd,
2336
- controlStart = _ref15$layout.controlStart,
2337
- label = _ref15$layout.label,
2338
- children = _ref15$layout.children,
2339
- errorControl = _ref15$layout.errorControl;
2340
- var ec = errorControl;
2341
- var errorText = ec && ec.touched ? ec.error : undefined;
2342
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, label, controlStart, children, errorText && /*#__PURE__*/React__default["default"].createElement("div", {
2343
- className: errorClass
2344
- }, errorText), controlEnd);
2345
- } finally {
2346
- _effect6();
2347
- }
2348
- }
2349
-
2350
- var defaultTailwindTheme = {
2351
- label: {
2352
- groupLabelClass: "font-bold",
2353
- requiredElement: /*#__PURE__*/React__default["default"].createElement("span", {
2354
- className: "text-red-500"
2355
- }, " *")
2356
- },
2357
- array: {
2358
- removableClass: "grid grid-cols-[1fr_auto] items-center gap-x-2",
2359
- childClass: "grow my-2",
2360
- addActionClass: "my-2"
2361
- },
2362
- group: {
2363
- standardClassName: "flex flex-col gap-4",
2364
- gridClassName: "gap-x-2 gap-y-4",
2365
- flexClassName: "gap-2"
2366
- },
2367
- action: {
2368
- className: "bg-primary rounded-lg p-3 text-white"
2369
- },
2370
- layout: {
2371
- className: "flex flex-col",
2372
- errorClass: "text-sm text-danger-500"
2373
- },
2374
- data: {
2375
- displayOnlyClass: "flex flex-row items-center gap-2"
2376
- }
2377
- };
2378
2459
 
2379
2460
  exports.AppendAdornmentPriority = AppendAdornmentPriority;
2380
2461
  exports.ControlInput = ControlInput;
@@ -2384,6 +2465,7 @@ exports.DefaultDisplay = DefaultDisplay;
2384
2465
  exports.DefaultDisplayOnly = DefaultDisplayOnly;
2385
2466
  exports.DefaultLayout = DefaultLayout;
2386
2467
  exports.DefaultVisibility = DefaultVisibility;
2468
+ exports.RadioButtons = RadioButtons;
2387
2469
  exports.SelectDataRenderer = SelectDataRenderer;
2388
2470
  exports.WrapAdornmentPriority = WrapAdornmentPriority;
2389
2471
  exports.addFieldOption = addFieldOption;
@@ -2419,6 +2501,7 @@ exports.createGroupRenderer = createGroupRenderer;
2419
2501
  exports.createInputConversion = createInputConversion;
2420
2502
  exports.createLabelRenderer = createLabelRenderer;
2421
2503
  exports.createLayoutRenderer = createLayoutRenderer;
2504
+ exports.createRadioRenderer = createRadioRenderer;
2422
2505
  exports.createSelectConversion = createSelectConversion;
2423
2506
  exports.createSelectRenderer = createSelectRenderer;
2424
2507
  exports.createVisibilityRenderer = createVisibilityRenderer;
@@ -2473,6 +2556,7 @@ exports.isGroupControl = isGroupControl;
2473
2556
  exports.isGroupControlsDefinition = isGroupControlsDefinition;
2474
2557
  exports.isIconAdornment = isIconAdornment;
2475
2558
  exports.isScalarField = isScalarField;
2559
+ exports.isTextfieldRenderer = isTextfieldRenderer;
2476
2560
  exports.jsonPathString = jsonPathString;
2477
2561
  exports.jsonataExpr = jsonataExpr;
2478
2562
  exports.layoutKeyForPlacement = layoutKeyForPlacement;