@tsed/react-formio 1.12.0 → 1.13.2

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.
Files changed (85) hide show
  1. package/dist/components/actions-table/actionsTable.component.d.ts +0 -1
  2. package/dist/components/actions-table/actionsTable.stories.d.ts +0 -1
  3. package/dist/components/alert/alert.component.d.ts +1 -2
  4. package/dist/components/alert/alert.stories.d.ts +0 -1
  5. package/dist/components/card/card.stories.d.ts +0 -1
  6. package/dist/components/form/form.component.d.ts +3 -2
  7. package/dist/components/form/form.component.spec.d.ts +1 -0
  8. package/dist/components/form/form.stories.d.ts +3689 -79
  9. package/dist/components/form/useForm.hook.d.ts +1 -1
  10. package/dist/components/form-access/formAccess.stories.d.ts +1 -2
  11. package/dist/components/form-action/formAction.stories.d.ts +0 -1
  12. package/dist/components/form-builder/formBuilder.stories.d.ts +518 -153
  13. package/dist/components/form-edit/formEdit.component.d.ts +0 -1
  14. package/dist/components/form-edit/formEdit.stories.d.ts +18 -19
  15. package/dist/components/form-settings/formSettings.component.d.ts +0 -1
  16. package/dist/components/form-settings/formSettings.stories.d.ts +1 -2
  17. package/dist/components/forms-table/components/formCell.component.d.ts +0 -1
  18. package/dist/components/forms-table/formsTable.component.d.ts +0 -1
  19. package/dist/components/forms-table/formsTable.stories.d.ts +0 -1
  20. package/dist/components/input-tags/inputTags.component.d.ts +0 -1
  21. package/dist/components/input-tags/inputTags.stories.d.ts +2 -3
  22. package/dist/components/input-text/inputText.component.d.ts +0 -1
  23. package/dist/components/input-text/inputText.stories.d.ts +0 -1
  24. package/dist/components/loader/loader.component.d.ts +1 -1
  25. package/dist/components/loader/loader.stories.d.ts +0 -1
  26. package/dist/components/modal/modal.component.d.ts +1 -1
  27. package/dist/components/modal/modal.stories.d.ts +0 -1
  28. package/dist/components/pagination/pagination.component.d.ts +0 -1
  29. package/dist/components/pagination/pagination.stories.d.ts +0 -1
  30. package/dist/components/react-component/reactComponent.component.d.ts +3 -3
  31. package/dist/components/select/select.stories.d.ts +2 -3
  32. package/dist/components/submissions-table/submissionsTable.component.d.ts +0 -1
  33. package/dist/components/submissions-table/submissionsTable.stories.d.ts +13 -14
  34. package/dist/components/table/components/defaultArrowSort.component.d.ts +0 -1
  35. package/dist/components/table/components/defaultCell.component.d.ts +0 -1
  36. package/dist/components/table/components/defaultCellHeader.component.d.ts +0 -1
  37. package/dist/components/table/components/defaultCellOperations.component.d.ts +0 -1
  38. package/dist/components/table/components/defaultOperationButton.component.d.ts +0 -1
  39. package/dist/components/table/filters/defaultColumnFilter.component.d.ts +0 -1
  40. package/dist/components/table/filters/selectColumnFilter.component.d.ts +0 -1
  41. package/dist/components/table/filters/sliderColumnFilter.component.d.ts +0 -1
  42. package/dist/components/table/table.stories.d.ts +4 -5
  43. package/dist/components/tabs/tabs.component.stories.d.ts +0 -1
  44. package/dist/hooks/useTooltip.d.ts +1 -1
  45. package/dist/index.js +342 -274
  46. package/dist/index.js.map +1 -1
  47. package/dist/index.modern.js +313 -268
  48. package/dist/index.modern.js.map +1 -1
  49. package/dist/stores/auth/auth.selectors.d.ts +1 -1
  50. package/jest.config.js +1 -1
  51. package/package.json +5 -5
  52. package/readme.md +51 -18
  53. package/src/components/__fixtures__/form.fixture.json +23 -0
  54. package/src/components/form/form.component.spec.tsx +56 -0
  55. package/src/components/form/form.component.tsx +5 -3
  56. package/src/components/form/form.stories.tsx +182 -11
  57. package/src/components/form/useForm.hook.ts +54 -29
  58. package/src/components/form-access/formAccess.component.tsx +1 -1
  59. package/src/components/form-access/formAccess.utils.ts +13 -13
  60. package/src/components/form-action/formAction.component.tsx +1 -1
  61. package/src/components/form-builder/formBuilder.component.tsx +1 -1
  62. package/src/components/form-edit/formCtas.component.tsx +32 -30
  63. package/src/components/form-edit/formEdit.component.tsx +1 -1
  64. package/src/components/form-settings/formSettings.utils.ts +3 -3
  65. package/src/components/input-tags/inputTags.component.tsx +3 -3
  66. package/src/components/input-text/inputText.component.spec.tsx +1 -1
  67. package/src/components/input-text/inputText.component.tsx +3 -3
  68. package/src/components/modal/modal.component.tsx +2 -2
  69. package/src/components/react-component/reactComponent.component.tsx +9 -6
  70. package/src/components/select/select.component.tsx +2 -2
  71. package/src/components/submissions-table/submissionsTable.component.tsx +6 -6
  72. package/src/components/table/table.component.tsx +58 -44
  73. package/src/components/table/utils/mapFormToColumns.tsx +1 -1
  74. package/src/components/tabs/tabs.component.tsx +1 -1
  75. package/src/hooks/useTooltip.ts +1 -1
  76. package/src/stores/action-info/action-info.selectors.ts +1 -1
  77. package/src/stores/auth/auth.utils.tsx +2 -2
  78. package/src/stores/auth/getAccess.action.ts +2 -2
  79. package/src/stores/auth/logout.action.spec.ts +1 -0
  80. package/src/stores/form/form.selectors.ts +1 -1
  81. package/src/stores/root/root.selectors.ts +2 -2
  82. package/tsconfig.json +10 -27
  83. package/tsconfig.node.json +8 -0
  84. package/craco.config.js +0 -11
  85. package/tsconfig.test.json +0 -6
@@ -361,7 +361,7 @@ function checkRoleFormAccess(auth, form, roles) {
361
361
  return true;
362
362
  }
363
363
 
364
- return !!(roles.includes("owner") && get(form, "owner") === get(auth, "user._id"));
364
+ return roles.includes("owner") && get(form, "owner") === get(auth, "user._id");
365
365
  }
366
366
 
367
367
  return true;
@@ -1191,24 +1191,24 @@ function FormControl({
1191
1191
  label,
1192
1192
  className
1193
1193
  }) {
1194
- return React.createElement("div", {
1194
+ return /*#__PURE__*/React.createElement("div", {
1195
1195
  id: `form-group-${name || ""}`,
1196
1196
  className: classnames("form-group", className)
1197
- }, label && React.createElement("label", {
1197
+ }, label && /*#__PURE__*/React.createElement("label", {
1198
1198
  htmlFor: name,
1199
1199
  className: `col-form-label ${required ? " field-required" : ""}`
1200
- }, label), React.createElement("div", {
1200
+ }, label), /*#__PURE__*/React.createElement("div", {
1201
1201
  className: "input-group"
1202
- }, prefix && React.createElement("div", {
1203
- className: 'input-group-prepend'
1204
- }, React.createElement("span", {
1205
- className: 'input-group-text'
1206
- }, prefix)), children, suffix && React.createElement("div", {
1207
- className: 'input-group-append'
1208
- }, React.createElement("span", {
1209
- className: 'input-group-text'
1210
- }, suffix))), description && React.createElement("div", {
1211
- className: 'form-text text-muted'
1202
+ }, prefix && /*#__PURE__*/React.createElement("div", {
1203
+ className: "input-group-prepend"
1204
+ }, /*#__PURE__*/React.createElement("span", {
1205
+ className: "input-group-text"
1206
+ }, prefix)), children, suffix && /*#__PURE__*/React.createElement("div", {
1207
+ className: "input-group-append"
1208
+ }, /*#__PURE__*/React.createElement("span", {
1209
+ className: "input-group-text"
1210
+ }, suffix))), description && /*#__PURE__*/React.createElement("div", {
1211
+ className: "form-text text-muted"
1212
1212
  }, description));
1213
1213
  }
1214
1214
  FormControl.propTypes = {
@@ -1256,7 +1256,7 @@ function Select(_ref) {
1256
1256
  label: placeholder,
1257
1257
  value: ""
1258
1258
  }, ...choices];
1259
- return React.createElement(FormControl, {
1259
+ return /*#__PURE__*/React.createElement(FormControl, {
1260
1260
  name: name,
1261
1261
  label: label,
1262
1262
  required: required,
@@ -1264,7 +1264,7 @@ function Select(_ref) {
1264
1264
  prefix: prefix,
1265
1265
  suffix: suffix,
1266
1266
  shadow: false
1267
- }, React.createElement("select", Object.assign({
1267
+ }, /*#__PURE__*/React.createElement("select", _extends({
1268
1268
  ref: ref
1269
1269
  }, props, {
1270
1270
  "data-testid": `select_${name}`,
@@ -1275,13 +1275,13 @@ function Select(_ref) {
1275
1275
  value: value || "",
1276
1276
  placeholder: placeholder,
1277
1277
  onChange: event => {
1278
- onChange(name, getEventValue(event));
1278
+ onChange && onChange(name, getEventValue(event));
1279
1279
  }
1280
1280
  }), choices.map(({
1281
1281
  label,
1282
1282
  value
1283
1283
  }) => {
1284
- return React.createElement("option", {
1284
+ return /*#__PURE__*/React.createElement("option", {
1285
1285
  key: String(value),
1286
1286
  label: label,
1287
1287
  value: value
@@ -1356,8 +1356,8 @@ function PaginationButton(props) {
1356
1356
  } = props,
1357
1357
  otherProps = _objectWithoutPropertiesLoose(props, ["component", "children", "disabled", "active"]);
1358
1358
 
1359
- return React.createElement(Component, Object.assign({}, otherProps, {
1360
- "data-testid": 'pagination-button',
1359
+ return /*#__PURE__*/React.createElement(Component, _extends({}, otherProps, {
1360
+ "data-testid": "pagination-button",
1361
1361
  disabled: disabled,
1362
1362
  className: classnames("page-link", disabled ? "disabled" : "", active ? "" : "", props.className)
1363
1363
  }), children);
@@ -1388,56 +1388,56 @@ function Pagination(props) {
1388
1388
  value,
1389
1389
  label: value
1390
1390
  }));
1391
- return React.createElement("nav", {
1392
- "aria-label": 'Page navigation',
1391
+ return /*#__PURE__*/React.createElement("nav", {
1392
+ "aria-label": "Page navigation",
1393
1393
  className: classnames("pagination-group -mb-3", className)
1394
- }, React.createElement("ul", {
1395
- className: 'pagination mb-3 mr-3'
1396
- }, React.createElement("li", {
1394
+ }, /*#__PURE__*/React.createElement("ul", {
1395
+ className: "pagination mb-3 mr-3"
1396
+ }, /*#__PURE__*/React.createElement("li", {
1397
1397
  className: classnames("page-item", !canPreviousPage && "disabled")
1398
- }, React.createElement(PaginationButton, {
1398
+ }, /*#__PURE__*/React.createElement(PaginationButton, {
1399
1399
  tabIndex: -1,
1400
1400
  disabled: !canPreviousPage,
1401
1401
  onClick: () => previousPage()
1402
1402
  }, i18n("Previous"))), pageNumbers.map(page => {
1403
1403
  if ([LEFT_PAGE, RIGHT_PAGE].includes(page)) {
1404
- return React.createElement("li", {
1405
- className: 'page-item',
1404
+ return /*#__PURE__*/React.createElement("li", {
1405
+ className: "page-item",
1406
1406
  key: page
1407
- }, React.createElement(PaginationButton, {
1408
- "aria-hidden": 'true'
1407
+ }, /*#__PURE__*/React.createElement(PaginationButton, {
1408
+ "aria-hidden": "true"
1409
1409
  }, "..."));
1410
1410
  }
1411
1411
 
1412
1412
  const active = page - 1 === pageIndex;
1413
- return React.createElement("li", {
1413
+ return /*#__PURE__*/React.createElement("li", {
1414
1414
  className: classnames("page-item", active && "active"),
1415
1415
  key: page
1416
- }, React.createElement(PaginationButton, {
1416
+ }, /*#__PURE__*/React.createElement(PaginationButton, {
1417
1417
  tabIndex: pageIndex,
1418
1418
  active: active,
1419
1419
  onClick: () => gotoPage(page - 1)
1420
1420
  }, page));
1421
- }), React.createElement("li", {
1421
+ }), /*#__PURE__*/React.createElement("li", {
1422
1422
  className: classnames("page-item", !canNextPage && "disabled")
1423
- }, React.createElement(PaginationButton, {
1423
+ }, /*#__PURE__*/React.createElement(PaginationButton, {
1424
1424
  tabIndex: pageNumbers.length,
1425
1425
  disabled: !canNextPage,
1426
1426
  onClick: () => nextPage()
1427
- }, i18n("Next")))), React.createElement("li", {
1428
- className: 'mb-3 mr-3 flex items-center'
1429
- }, React.createElement(Select, {
1427
+ }, i18n("Next")))), /*#__PURE__*/React.createElement("li", {
1428
+ className: "mb-3 mr-3 flex items-center"
1429
+ }, /*#__PURE__*/React.createElement(Select, {
1430
1430
  name: "page",
1431
1431
  value: pageSize,
1432
1432
  choices: choices,
1433
1433
  onChange: (name, value) => {
1434
1434
  setPageSize(+value);
1435
1435
  }
1436
- }), React.createElement("span", {
1436
+ }), /*#__PURE__*/React.createElement("span", {
1437
1437
  className: "ml-3"
1438
- }, i18n("items per page"))), pageOptions && React.createElement("li", {
1438
+ }, i18n("items per page"))), pageOptions && /*#__PURE__*/React.createElement("li", {
1439
1439
  className: "mb-3 flex items-center"
1440
- }, React.createElement("span", null, i18n("Page"), "\u00A0"), React.createElement("strong", null, pageIndex + 1, " of ", pageOptions.length)));
1440
+ }, /*#__PURE__*/React.createElement("span", null, i18n("Page"), "\xA0"), /*#__PURE__*/React.createElement("strong", null, pageIndex + 1, " of ", pageOptions.length)));
1441
1441
  }
1442
1442
 
1443
1443
  function DefaultArrowSort({
@@ -1447,9 +1447,9 @@ function DefaultArrowSort({
1447
1447
  isSorted,
1448
1448
  isSortedDesc
1449
1449
  } = column;
1450
- return React.createElement("span", {
1450
+ return /*#__PURE__*/React.createElement("span", {
1451
1451
  className: "table-arrow-sort"
1452
- }, isSorted ? React.createElement("i", {
1452
+ }, isSorted ? /*#__PURE__*/React.createElement("i", {
1453
1453
  className: iconClass(undefined, isSortedDesc ? "sort-up" : "sort-down")
1454
1454
  }) : "");
1455
1455
  }
@@ -1457,12 +1457,12 @@ function DefaultArrowSort({
1457
1457
  function DefaultCellHeader({
1458
1458
  column
1459
1459
  }) {
1460
- return React.createElement("div", {
1460
+ return /*#__PURE__*/React.createElement("div", {
1461
1461
  className: "table-cell-header"
1462
- }, React.createElement("div", Object.assign({
1463
- className: 'table-cell-header__label'
1464
- }, column.getSortByToggleProps()), React.createElement("span", null, column.render("Header")), column.render("ArrowSort")), column.canFilter ? React.createElement("div", {
1465
- className: 'table-cell-header__filter'
1462
+ }, /*#__PURE__*/React.createElement("div", _extends({
1463
+ className: "table-cell-header__label"
1464
+ }, column.getSortByToggleProps()), /*#__PURE__*/React.createElement("span", null, column.render("Header")), column.render("ArrowSort")), column.canFilter ? /*#__PURE__*/React.createElement("div", {
1465
+ className: "table-cell-header__filter"
1466
1466
  }, column.render("Filter")) : null);
1467
1467
  }
1468
1468
 
@@ -1496,11 +1496,11 @@ function InputText(_ref) {
1496
1496
  props = _objectWithoutPropertiesLoose(_ref, ["name", "value", "label", "onChange", "required", "size", "type", "prefix", "suffix", "description", "className", "placeholder"]);
1497
1497
 
1498
1498
  const [localValue, setValue] = useState(value);
1499
- const change = useMemo(() => callLast(onChange, 300), [onChange]);
1499
+ const change = useMemo(() => onChange && callLast(onChange, 300), [onChange]);
1500
1500
  useEffect(() => {
1501
1501
  setValue(value);
1502
1502
  }, [value]);
1503
- return React.createElement(FormControl, {
1503
+ return /*#__PURE__*/React.createElement(FormControl, {
1504
1504
  name: name,
1505
1505
  label: label,
1506
1506
  required: required,
@@ -1508,19 +1508,19 @@ function InputText(_ref) {
1508
1508
  prefix: prefix,
1509
1509
  suffix: suffix,
1510
1510
  className: className
1511
- }, React.createElement("input", Object.assign({
1511
+ }, /*#__PURE__*/React.createElement("input", _extends({
1512
1512
  type: type || "text"
1513
1513
  }, props, {
1514
1514
  "data-testid": `input_${name}`,
1515
1515
  className: classnames("form-control", size && `form-control-${size}`),
1516
1516
  id: name,
1517
1517
  required: required,
1518
- value: localValue || placeholder || "",
1518
+ value: localValue || "",
1519
1519
  placeholder: placeholder,
1520
1520
  onChange: event => {
1521
1521
  const value = getEventValue(event);
1522
1522
  setValue(value);
1523
- return change(name, value);
1523
+ return change && change(name, value);
1524
1524
  }
1525
1525
  })));
1526
1526
  }
@@ -1552,7 +1552,7 @@ function DefaultColumnFilter(props) {
1552
1552
  setFilterId(id);
1553
1553
  setFilter(value || undefined);
1554
1554
  }, [id, setValue, setFilterId, setFilter]);
1555
- return React.createElement(InputText, {
1555
+ return /*#__PURE__*/React.createElement(InputText, {
1556
1556
  size: "sm",
1557
1557
  id: id,
1558
1558
  name: id,
@@ -1581,12 +1581,12 @@ function DefaultOperationButton(props) {
1581
1581
  title = "",
1582
1582
  i18n = f => f
1583
1583
  } = props;
1584
- return React.createElement("button", {
1584
+ return /*#__PURE__*/React.createElement("button", {
1585
1585
  className: classnames(className, ["btn", buttonOutline && "outline", buttonType].filter(Boolean).join("-"), `btn-${buttonSize}`),
1586
1586
  onClick: stopPropagationWrapper(() => onClick(action))
1587
- }, icon ? React.createElement(React.Fragment, null, React.createElement("i", {
1587
+ }, icon ? /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement("i", {
1588
1588
  className: iconClass(undefined, icon)
1589
- }), " ", title && " ") : null, title && React.createElement("span", {
1589
+ }), " ", title && " ") : null, title && /*#__PURE__*/React.createElement("span", {
1590
1590
  className: icon && title ? "ml-1" : ""
1591
1591
  }, i18n(title)));
1592
1592
  }
@@ -1599,8 +1599,8 @@ function DefaultCellOperations({
1599
1599
  i18n
1600
1600
  }) {
1601
1601
  const data = row.original;
1602
- return React.createElement("div", {
1603
- className: 'btn-group'
1602
+ return /*#__PURE__*/React.createElement("div", {
1603
+ className: "btn-group"
1604
1604
  }, operations.filter(({
1605
1605
  permissionsResolver
1606
1606
  }) => !permissionsResolver || permissionsResolver(data, ctx)).map(_ref => {
@@ -1609,7 +1609,7 @@ function DefaultCellOperations({
1609
1609
  } = _ref,
1610
1610
  operation = _objectWithoutPropertiesLoose(_ref, ["OperationButton"]);
1611
1611
 
1612
- return React.createElement(OperationButton, Object.assign({
1612
+ return /*#__PURE__*/React.createElement(OperationButton, _extends({
1613
1613
  key: operation.action
1614
1614
  }, operation, {
1615
1615
  onClick: action => onClick(data, action),
@@ -1636,10 +1636,10 @@ function useOperations({
1636
1636
  return [...columns, {
1637
1637
  id: "operations",
1638
1638
  groupByBoundary: true,
1639
- Header: () => React.createElement("div", {
1639
+ Header: () => /*#__PURE__*/React.createElement("div", {
1640
1640
  className: "text-center"
1641
1641
  }, i18n("Operations")),
1642
- Cell: props => React.createElement(CellOperations, Object.assign({}, props, {
1642
+ Cell: props => /*#__PURE__*/React.createElement(CellOperations, _extends({}, props, {
1643
1643
  operations: operations,
1644
1644
  onClick: onClick,
1645
1645
  ctx: ctx,
@@ -1661,14 +1661,14 @@ function getOperationCallback(operations, onClick) {
1661
1661
  }
1662
1662
 
1663
1663
  function DefaultLoader() {
1664
- return React.createElement("div", {
1664
+ return /*#__PURE__*/React.createElement("div", {
1665
1665
  className: "text-center p-2 pb-4 font-bold"
1666
1666
  }, "Loading in progress");
1667
1667
  }
1668
1668
 
1669
1669
  function DefaultEmptyData() {
1670
- return React.createElement("div", {
1671
- className: 'text-center p-2 pb-4 font-bold'
1670
+ return /*#__PURE__*/React.createElement("div", {
1671
+ className: "text-center p-2 pb-4 font-bold"
1672
1672
  }, "No data found");
1673
1673
  }
1674
1674
 
@@ -1753,22 +1753,23 @@ function Table(props) {
1753
1753
  });
1754
1754
  }, [onChange, pageIndex, pageSize, sortBy, filters, filterId]); // Render the UI for your table
1755
1755
 
1756
- return React.createElement("div", {
1756
+ return /*#__PURE__*/React.createElement("div", {
1757
1757
  className: classnames("table-group table-responsive", className)
1758
- }, React.createElement("table", Object.assign({
1758
+ }, /*#__PURE__*/React.createElement("table", _extends({
1759
1759
  className: "table table-striped table-hover"
1760
- }, tableInstance.getTableProps()), React.createElement("thead", null, tableInstance.headerGroups.map((headerGroup, i) => React.createElement("tr", Object.assign({
1760
+ }, tableInstance.getTableProps()), /*#__PURE__*/React.createElement("thead", null, tableInstance.headerGroups.map((headerGroup, i) => /*#__PURE__*/React.createElement("tr", _extends({}, headerGroup.getHeaderGroupProps(), {
1761
1761
  key: `tableInstance.headerGroups${i}`
1762
- }, headerGroup.getHeaderGroupProps()), headerGroup.headers.map(column => React.createElement("th", Object.assign({
1762
+ }), headerGroup.headers.map(column => /*#__PURE__*/React.createElement("th", _extends({}, column.getHeaderProps(), {
1763
1763
  key: `tableInstance.headers.column.${column.id}`
1764
- }, column.getHeaderProps()), React.createElement(CellHeader, {
1764
+ }), /*#__PURE__*/React.createElement(CellHeader, {
1765
1765
  column: column
1766
- })))))), !isLoading ? React.createElement("tbody", Object.assign({}, tableInstance.getTableBodyProps()), tableInstance.page.map(row => {
1766
+ })))))), !isLoading ? /*#__PURE__*/React.createElement("tbody", tableInstance.getTableBodyProps(), tableInstance.page.map(row => {
1767
1767
  tableInstance.prepareRow(row);
1768
- return React.createElement("tr", Object.assign({
1769
- key: `tableInstance.page.${row.id}`,
1768
+ return /*#__PURE__*/React.createElement("tr", _extends({
1770
1769
  onClick: () => _onClick(row.original, "row")
1771
- }, row.getRowProps()), row.cells.map((cell, i) => {
1770
+ }, row.getRowProps(), {
1771
+ key: `tableInstance.page.${row.id}`
1772
+ }), row.cells.map((cell, i) => {
1772
1773
  const {
1773
1774
  hidden,
1774
1775
  colspan
@@ -1778,14 +1779,15 @@ function Table(props) {
1778
1779
  return null;
1779
1780
  }
1780
1781
 
1781
- return React.createElement("td", Object.assign({
1782
- key: `tableInstance.page.cells.${cell.value || "value"}.${i}`,
1782
+ return /*#__PURE__*/React.createElement("td", _extends({
1783
1783
  colSpan: colspan
1784
- }, cell.getCellProps()), cell.render("Cell"));
1784
+ }, cell.getCellProps(), {
1785
+ key: `tableInstance.page.cells.${cell.value || "value"}.${i}`
1786
+ }), cell.render("Cell"));
1785
1787
  }));
1786
- })) : null), isLoading ? React.createElement(Loader, null) : null, !data.length ? React.createElement(EmptyData, null) : null, !isLoading && data.length && !disablePagination ? React.createElement("div", {
1788
+ })) : null), isLoading ? /*#__PURE__*/React.createElement(Loader, null) : null, !data.length ? /*#__PURE__*/React.createElement(EmptyData, null) : null, !isLoading && data.length && !disablePagination ? /*#__PURE__*/React.createElement("div", {
1787
1789
  className: "overflow-hidden"
1788
- }, React.createElement(Pagination$1, Object.assign({}, tableInstance, {
1790
+ }, /*#__PURE__*/React.createElement(Pagination$1, _extends({}, tableInstance, {
1789
1791
  className: "text-sm",
1790
1792
  pageIndex: pageIndex,
1791
1793
  pageSize: pageSize,
@@ -1815,13 +1817,13 @@ function ActionsTable(_ref) {
1815
1817
  id: "title"
1816
1818
  }];
1817
1819
  }, []);
1818
- return React.createElement(Table, Object.assign({}, props, {
1820
+ return /*#__PURE__*/React.createElement(Table, _extends({}, props, {
1819
1821
  disableFilters: disableFilters,
1820
1822
  disablePagination: disablePagination,
1821
1823
  columns: columns
1822
- }), React.createElement("div", {
1824
+ }), /*#__PURE__*/React.createElement("div", {
1823
1825
  className: "pagination-group"
1824
- }, React.createElement(Select, {
1826
+ }, /*#__PURE__*/React.createElement(Select, {
1825
1827
  name: "actions",
1826
1828
  value: currentAction,
1827
1829
  choices: [{
@@ -1829,15 +1831,15 @@ function ActionsTable(_ref) {
1829
1831
  value: ""
1830
1832
  }].concat(availableActions),
1831
1833
  onChange: (name, action) => setAction(action)
1832
- }), React.createElement("div", {
1834
+ }), /*#__PURE__*/React.createElement("div", {
1833
1835
  className: "pl-3"
1834
- }, React.createElement("button", {
1836
+ }, /*#__PURE__*/React.createElement("button", {
1835
1837
  "data-testid": "submit",
1836
1838
  disabled: currentAction === "",
1837
1839
  className: "btn btn-success",
1838
1840
  onClick: () => currentAction && onAddAction(currentAction),
1839
1841
  type: "submit"
1840
- }, React.createElement("i", {
1842
+ }, /*#__PURE__*/React.createElement("i", {
1841
1843
  className: classnames(iconClass(undefined, "plus"), "mr-1")
1842
1844
  }), " ", i18n("Add action")))));
1843
1845
  }
@@ -1854,9 +1856,9 @@ function formatError(error) {
1854
1856
  if (Object.prototype.hasOwnProperty.call(error, "errors")) {
1855
1857
  return Object.keys(error.errors).map((key, index) => {
1856
1858
  const item = error.errors[key];
1857
- return React.createElement("div", {
1859
+ return /*#__PURE__*/React.createElement("div", {
1858
1860
  key: index
1859
- }, React.createElement("strong", null, item.name, " (", item.path, ")"), " ", "- ", item.message);
1861
+ }, /*#__PURE__*/React.createElement("strong", null, item.name, " (", item.path, ")"), " ", "- ", item.message);
1860
1862
  });
1861
1863
  } // If this is a standard error.
1862
1864
 
@@ -1868,7 +1870,7 @@ function formatError(error) {
1868
1870
 
1869
1871
  if (Object.prototype.hasOwnProperty.call(error, "name") && error.name === "ValidationError") {
1870
1872
  return error.details.map((item, index) => {
1871
- return React.createElement("div", {
1873
+ return /*#__PURE__*/React.createElement("div", {
1872
1874
  key: index
1873
1875
  }, item.message);
1874
1876
  });
@@ -1890,9 +1892,9 @@ function Alert({
1890
1892
  return null;
1891
1893
  }
1892
1894
 
1893
- return React.createElement("div", {
1895
+ return /*#__PURE__*/React.createElement("div", {
1894
1896
  className: `alert alert-${type}`,
1895
- role: 'alert'
1897
+ role: "alert"
1896
1898
  }, formatError(error));
1897
1899
  }
1898
1900
 
@@ -1901,18 +1903,46 @@ function Card({
1901
1903
  label,
1902
1904
  className
1903
1905
  }) {
1904
- return React.createElement("div", {
1906
+ return /*#__PURE__*/React.createElement("div", {
1905
1907
  className: classnames("card", className)
1906
- }, React.createElement("div", {
1908
+ }, /*#__PURE__*/React.createElement("div", {
1907
1909
  className: "card-header "
1908
- }, React.createElement("h4", {
1910
+ }, /*#__PURE__*/React.createElement("h4", {
1909
1911
  className: "card-title"
1910
- }, label)), React.createElement("div", {
1912
+ }, label)), /*#__PURE__*/React.createElement("div", {
1911
1913
  className: "card-body",
1912
1914
  role: "article"
1913
1915
  }, children));
1914
1916
  }
1915
1917
 
1918
+ function useDebounce(event, callback, events) {
1919
+ useEffect(() => {
1920
+ callback && events.set(event, callLast(callback, 100));
1921
+ }, [callback, event, events]);
1922
+ }
1923
+
1924
+ function useEvents(funcs) {
1925
+ const events = useRef(new Map());
1926
+
1927
+ const hasEvent = event => {
1928
+ return funcs.hasOwnProperty(event) && typeof funcs[event] === "function";
1929
+ };
1930
+
1931
+ const emit = (event, ...args) => {
1932
+ if (hasEvent(event)) {
1933
+ const fn = events.current.has(event) ? events.current.get(event) : funcs[event];
1934
+ return fn(...args);
1935
+ }
1936
+ };
1937
+
1938
+ useDebounce("onChange", funcs.onChange, events.current);
1939
+ return {
1940
+ events,
1941
+ emit,
1942
+ hasEvent
1943
+ };
1944
+ }
1945
+
1916
1946
  function useForm(props) {
1917
1947
  const {
1918
1948
  src,
@@ -1926,14 +1956,34 @@ function useForm(props) {
1926
1956
  const element = useRef();
1927
1957
  const isLoaded = useRef();
1928
1958
  const instance = useRef();
1929
- const events = useRef(new Map());
1959
+ const {
1960
+ emit,
1961
+ hasEvent
1962
+ } = useEvents(funcs);
1963
+
1964
+ async function customValidation(submission, callback) {
1965
+ if (hasEvent("onAsyncSubmit")) {
1966
+ try {
1967
+ await emit("onAsyncSubmit", submission, instance.current);
1968
+ } catch (err) {
1969
+ callback((err == null ? void 0 : err.errors) || err);
1970
+ }
1971
+ } else {
1972
+ callback(null);
1973
+ }
1974
+ }
1930
1975
 
1931
1976
  const createWebForm = (srcOrForm, options) => {
1932
1977
  options = Object.assign({}, options);
1933
1978
  srcOrForm = typeof srcOrForm === "string" ? srcOrForm : cloneDeep(srcOrForm);
1934
1979
 
1935
1980
  if (!instance.current) {
1981
+ var _options, _options$hooks;
1982
+
1936
1983
  isLoaded.current = false;
1984
+ options.hooks = _extends({}, options.hooks || {}, {
1985
+ customValidation: ((_options = options) == null ? void 0 : (_options$hooks = _options.hooks) == null ? void 0 : _options$hooks.customValidation) || customValidation
1986
+ });
1937
1987
  instance.current = new Form$1(element.current, srcOrForm, options);
1938
1988
  instance.current.onAny((event, ...args) => {
1939
1989
  if (!instance.current) {
@@ -1941,23 +1991,15 @@ function useForm(props) {
1941
1991
  }
1942
1992
 
1943
1993
  if (event.startsWith("formio.")) {
1944
- const funcName = `on${event.charAt(7).toUpperCase()}${event.slice(8)}`;
1994
+ const eventName = `on${event.charAt(7).toUpperCase()}${event.slice(8)}`;
1945
1995
 
1946
- if (funcName === "onChange") {
1996
+ if (eventName === "onChange") {
1947
1997
  if (isEqual(get$1(submission, "data"), args[0].data)) {
1948
1998
  return;
1949
1999
  }
1950
2000
  }
1951
2001
 
1952
- if ( // eslint-disable-next-line no-prototype-builtins
1953
- props.hasOwnProperty(funcName) && typeof funcs[funcName] === "function") {
1954
- if (!events.current.has(funcName)) {
1955
- const fn = callLast(funcs[funcName], 100);
1956
- events.current.set(funcName, fn);
1957
- }
1958
-
1959
- events.current.get(funcName)(...args);
1960
- }
2002
+ emit(eventName, ...args, instance.current);
1961
2003
  }
1962
2004
  });
1963
2005
  instance.current.ready.then(formio => {
@@ -2012,12 +2054,6 @@ function useForm(props) {
2012
2054
  instance.current && instance.current.destroy(true);
2013
2055
  };
2014
2056
  }, []);
2015
- useEffect(() => {
2016
- props.onSubmit && events.current.set("onSubmit", props.onSubmit);
2017
- }, [props.onSubmit, events]);
2018
- useEffect(() => {
2019
- props.onSubmitDone && events.current.set("onSubmitDone", props.onSubmitDone);
2020
- }, [props.onSubmitDone, events]);
2021
2057
  return {
2022
2058
  element
2023
2059
  };
@@ -2028,8 +2064,8 @@ function Form(props) {
2028
2064
  const {
2029
2065
  element
2030
2066
  } = useForm(props);
2031
- return React.createElement("div", {
2032
- "data-testid": "formioContainer" + (props.name || ""),
2067
+ return /*#__PURE__*/React.createElement("div", {
2068
+ "data-testid": `formioContainer${props.name || ""}`,
2033
2069
  ref: element,
2034
2070
  className: props.className
2035
2071
  });
@@ -2066,7 +2102,8 @@ Form.propTypes = {
2066
2102
  noAlerts: PropTypes.bool,
2067
2103
  i18n: PropTypes.any,
2068
2104
  template: PropTypes.string,
2069
- saveDraft: PropTypes.bool
2105
+ saveDraft: PropTypes.bool,
2106
+ hooks: PropTypes.any
2070
2107
  }),
2071
2108
  onPrevPage: PropTypes.func,
2072
2109
  onNextPage: PropTypes.func,
@@ -2075,6 +2112,7 @@ Form.propTypes = {
2075
2112
  onCustomEvent: PropTypes.func,
2076
2113
  onComponentChange: PropTypes.func,
2077
2114
  onSubmit: PropTypes.func,
2115
+ onAsyncSubmit: PropTypes.func,
2078
2116
  onSubmitDone: PropTypes.func,
2079
2117
  onFormLoad: PropTypes.func,
2080
2118
  onError: PropTypes.func,
@@ -2216,8 +2254,8 @@ function getAccessPermissionForm({
2216
2254
  function rolesToChoices(roles) {
2217
2255
  return Object.values(roles).map(role => {
2218
2256
  return {
2219
- label: role.title,
2220
- value: role._id
2257
+ label: role.title || "",
2258
+ value: role._id || ""
2221
2259
  };
2222
2260
  });
2223
2261
  }
@@ -2227,7 +2265,7 @@ function accessToHash(keys, access = []) {
2227
2265
  o[role.type] = role.roles;
2228
2266
  return o;
2229
2267
  }, {});
2230
- return keys.reduce((data, key) => {
2268
+ return (keys || []).filter(Boolean).reduce((data, key) => {
2231
2269
  return _extends({}, data, {
2232
2270
  [key]: hash[key] || []
2233
2271
  });
@@ -2326,7 +2364,7 @@ function useFormAccess({
2326
2364
  submissions,
2327
2365
  onChange,
2328
2366
  onSubmit: () => {
2329
- onSubmit(submissionsToDataAccess(formDefinition, submissions));
2367
+ onSubmit && onSubmit(submissionsToDataAccess(formDefinition, submissions));
2330
2368
  }
2331
2369
  };
2332
2370
  }
@@ -2341,7 +2379,7 @@ function NamedFormAccess({
2341
2379
  children
2342
2380
  }) {
2343
2381
  const [isValid, setIsValid] = useState(true);
2344
- return React.createElement(React.Fragment, null, React.createElement(Form, {
2382
+ return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(Form, {
2345
2383
  name: name,
2346
2384
  form: form[name],
2347
2385
  submission: submissions[name],
@@ -2355,11 +2393,11 @@ function NamedFormAccess({
2355
2393
  setIsValid(isValid);
2356
2394
  },
2357
2395
  options: options
2358
- }), React.createElement("button", {
2396
+ }), /*#__PURE__*/React.createElement("button", {
2359
2397
  disabled: !isValid,
2360
2398
  className: "mt-5 btn btn-primary",
2361
2399
  onClick: onSubmit
2362
- }, "Save access"), children, React.createElement("div", {
2400
+ }, "Save access"), children, /*#__PURE__*/React.createElement("div", {
2363
2401
  className: "alert alert-warning mt-5"
2364
2402
  }, "Elevated permissions allow users to access and modify other user's entities. Assign with caution."));
2365
2403
  }
@@ -2373,43 +2411,43 @@ function FormAccess(props) {
2373
2411
  onChange,
2374
2412
  onSubmit
2375
2413
  } = useFormAccess(props);
2376
- return React.createElement("div", null, props.children, React.createElement("div", {
2414
+ return /*#__PURE__*/React.createElement("div", null, props.children, /*#__PURE__*/React.createElement("div", {
2377
2415
  className: "flex mb-5"
2378
- }, React.createElement(Card, {
2416
+ }, /*#__PURE__*/React.createElement(Card, {
2379
2417
  label: "Manage submission access",
2380
2418
  className: "flex-1"
2381
- }, React.createElement(NamedFormAccess, {
2419
+ }, /*#__PURE__*/React.createElement(NamedFormAccess, {
2382
2420
  name: "submissionAccess",
2383
2421
  form: form,
2384
2422
  submissions: submissions,
2385
2423
  onChange: onChange,
2386
2424
  onSubmit: onSubmit,
2387
2425
  options: options
2388
- }, props.children)), React.createElement("div", {
2426
+ }, props.children)), /*#__PURE__*/React.createElement("div", {
2389
2427
  className: "w-1/4 pl-4"
2390
- }, React.createElement(Card, {
2428
+ }, /*#__PURE__*/React.createElement(Card, {
2391
2429
  label: "About Submission Data Permissions"
2392
- }, React.createElement("p", null, "Submission Data Permissions allow you to control who can create, view, and modify form submission data."), React.createElement("ul", {
2430
+ }, /*#__PURE__*/React.createElement("p", null, "Submission Data Permissions allow you to control who can create, view, and modify form submission data."), /*#__PURE__*/React.createElement("ul", {
2393
2431
  className: "mt-5 pl-7 list-disc"
2394
- }, React.createElement("li", {
2432
+ }, /*#__PURE__*/React.createElement("li", {
2395
2433
  className: "pb-2"
2396
- }, React.createElement("strong", null, "Own Permissions"), " - These permissions apply if the user is the original creator of the submission data and is listed as the owner of the submission in submission.owner. This allows users to create and edit their own submission data without seeing other user's data."), React.createElement("li", null, React.createElement("strong", null, "All Permissions"), " - These permissions apply to all submission data regardless of who owns it."))))), React.createElement("div", {
2434
+ }, /*#__PURE__*/React.createElement("strong", null, "Own Permissions"), " - These permissions apply if the user is the original creator of the submission data and is listed as the owner of the submission in submission.owner. This allows users to create and edit their own submission data without seeing other user's data."), /*#__PURE__*/React.createElement("li", null, /*#__PURE__*/React.createElement("strong", null, "All Permissions"), " - These permissions apply to all submission data regardless of who owns it."))))), /*#__PURE__*/React.createElement("div", {
2397
2435
  className: "flex mb-5"
2398
- }, React.createElement(Card, {
2436
+ }, /*#__PURE__*/React.createElement(Card, {
2399
2437
  label: `Manage ${type} definition access`,
2400
2438
  className: "flex-1"
2401
- }, React.createElement(NamedFormAccess, {
2439
+ }, /*#__PURE__*/React.createElement(NamedFormAccess, {
2402
2440
  name: "access",
2403
2441
  form: form,
2404
2442
  submissions: submissions,
2405
2443
  onChange: onChange,
2406
2444
  onSubmit: onSubmit,
2407
2445
  options: options
2408
- }, props.children)), React.createElement("div", {
2446
+ }, props.children)), /*#__PURE__*/React.createElement("div", {
2409
2447
  className: "w-1/4 pl-4"
2410
- }, React.createElement(Card, {
2448
+ }, /*#__PURE__*/React.createElement(Card, {
2411
2449
  label: "About Form Definition Access"
2412
- }, React.createElement("p", null, "These permissions allow you to give access to a single form's JSON definition so they can render the form."), React.createElement("p", null, "Typically you will want to allow all of your roles to be able to Read the form definition."), React.createElement("p", null, "Each form also has an owner at ", React.createElement("strong", null, "form.owner"), " which is the user who created the form. In some applications users are allowed to create their own forms. In those cases it is helpful to have Owner based permissions as well.")))));
2450
+ }, /*#__PURE__*/React.createElement("p", null, "These permissions allow you to give access to a single form's JSON definition so they can render the form."), /*#__PURE__*/React.createElement("p", null, "Typically you will want to allow all of your roles to be able to Read the form definition."), /*#__PURE__*/React.createElement("p", null, "Each form also has an owner at ", /*#__PURE__*/React.createElement("strong", null, "form.owner"), " which is the user who created the form. In some applications users are allowed to create their own forms. In those cases it is helpful to have Owner based permissions as well.")))));
2413
2451
  }
2414
2452
  FormAccess.propTypes = {
2415
2453
  type: PropTypes.string.isRequired,
@@ -2467,7 +2505,7 @@ function FormAction(_ref2) {
2467
2505
  }
2468
2506
  };
2469
2507
  }, [props.submission, actionInfo.settingsForm]);
2470
- return React.createElement("div", null, children, React.createElement(Form, {
2508
+ return /*#__PURE__*/React.createElement("div", null, children, /*#__PURE__*/React.createElement(Form, {
2471
2509
  form: form,
2472
2510
  submission: submission,
2473
2511
  onSubmit: onSubmit,
@@ -2514,6 +2552,8 @@ async function createBuilder(el, {
2514
2552
  class FormBuilder extends React.Component {
2515
2553
  constructor(props) {
2516
2554
  super(props);
2555
+ this.elRef = void 0;
2556
+ this.builderRef = void 0;
2517
2557
  this.state = {
2518
2558
  display: props.display,
2519
2559
  components: cloneDeep(props.components)
@@ -2590,17 +2630,17 @@ class FormBuilder extends React.Component {
2590
2630
  }, () => {
2591
2631
  var _this$props;
2592
2632
 
2593
- (_this$props = this.props) == null ? void 0 : _this$props.onChange(components);
2633
+ ((_this$props = this.props) == null ? void 0 : _this$props.onChange) && this.props.onChange(components);
2594
2634
  });
2595
2635
  }
2596
2636
 
2597
2637
  render() {
2598
- return React.createElement("div", {
2638
+ return /*#__PURE__*/React.createElement("div", {
2599
2639
  ref: ref => {
2600
2640
  this.elRef = ref;
2601
2641
  },
2602
2642
  onClick: e => e.stopPropagation()
2603
- }, React.createElement("div", null));
2643
+ }, /*#__PURE__*/React.createElement("div", null));
2604
2644
  }
2605
2645
 
2606
2646
  }
@@ -2670,37 +2710,37 @@ function FormEditCTAs({
2670
2710
  placement: "top",
2671
2711
  title: t("Reset all changes")
2672
2712
  });
2673
- return React.createElement("div", {
2713
+ return /*#__PURE__*/React.createElement("div", {
2674
2714
  className: "form-edit__actions"
2675
- }, React.createElement("div", null, React.createElement("button", {
2715
+ }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("button", {
2676
2716
  className: `btn btn-primary btn-save flex ${disabled ? "disabled" : ""}`,
2677
2717
  disabled: disabled,
2678
- onClick: () => !disabled && onSubmit()
2679
- }, React.createElement("i", {
2718
+ onClick: () => !disabled && onSubmit && onSubmit()
2719
+ }, /*#__PURE__*/React.createElement("i", {
2680
2720
  className: `mr-1 ${iconClass(options.iconset, "save")}`
2681
- }), saveText), React.createElement("div", null, React.createElement("button", {
2721
+ }), saveText), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("button", {
2682
2722
  className: `btn btn-light btn-undo ${hasUndo ? "" : "disabled"}`,
2683
- onClick: () => onUndo(),
2723
+ onClick: () => onUndo && onUndo(),
2684
2724
  ref: undoTooltipRef
2685
- }, React.createElement("i", {
2725
+ }, /*#__PURE__*/React.createElement("i", {
2686
2726
  className: iconClass(options.iconset, "undo")
2687
- })), React.createElement("button", {
2727
+ })), /*#__PURE__*/React.createElement("button", {
2688
2728
  className: `btn btn-light btn-redo ${hasRedo ? "" : "disabled"}`,
2689
- onClick: () => onRedo(),
2729
+ onClick: () => onRedo && onRedo(),
2690
2730
  ref: redoTooltipRef
2691
- }, React.createElement("i", {
2731
+ }, /*#__PURE__*/React.createElement("i", {
2692
2732
  className: iconClass(options.iconset, "redo")
2693
- }))), React.createElement("div", null, onCopy && React.createElement("button", {
2694
- className: 'btn btn-light',
2733
+ }))), /*#__PURE__*/React.createElement("div", null, onCopy && /*#__PURE__*/React.createElement("button", {
2734
+ className: "btn btn-light",
2695
2735
  onClick: () => onCopy(),
2696
2736
  ref: copyTooltipRef
2697
- }, React.createElement("i", {
2737
+ }, /*#__PURE__*/React.createElement("i", {
2698
2738
  className: iconClass(options.iconset, "copy")
2699
- })), React.createElement("button", {
2739
+ })), /*#__PURE__*/React.createElement("button", {
2700
2740
  className: `btn btn-light btn-reset`,
2701
- onClick: () => onReset(),
2741
+ onClick: () => onReset && onReset(),
2702
2742
  ref: resetTooltipRef
2703
- }, React.createElement("i", {
2743
+ }, /*#__PURE__*/React.createElement("i", {
2704
2744
  className: iconClass(options.iconset, "reset")
2705
2745
  })))));
2706
2746
  }
@@ -2737,25 +2777,25 @@ function InputTags(_ref) {
2737
2777
  });
2738
2778
  instance.setValue([].concat(value, []));
2739
2779
  instance.passedElement.element.addEventListener("addItem", event => {
2740
- onChange(name, uniq(value.concat(event.detail.value)));
2780
+ onChange && onChange(name, uniq(value.concat(event.detail.value)));
2741
2781
  });
2742
2782
  instance.passedElement.element.addEventListener("removeItem", event => {
2743
- onChange(name, value.filter(v => v !== event.detail.value));
2783
+ onChange && onChange(name, value.filter(v => v !== event.detail.value));
2744
2784
  });
2745
2785
  return () => {
2746
2786
  instance.destroy();
2747
2787
  };
2748
2788
  }, []);
2749
- return React.createElement(FormControl, {
2789
+ return /*#__PURE__*/React.createElement(FormControl, {
2750
2790
  name: name,
2751
2791
  label: label,
2752
2792
  required: required,
2753
2793
  description: description,
2754
2794
  prefix: prefix,
2755
2795
  suffix: suffix
2756
- }, React.createElement("input", Object.assign({
2796
+ }, /*#__PURE__*/React.createElement("input", _extends({
2757
2797
  ref: ref,
2758
- type: 'text'
2798
+ type: "text"
2759
2799
  }, props, {
2760
2800
  id: name,
2761
2801
  required: required
@@ -2788,36 +2828,36 @@ function FormParameters({
2788
2828
  className = ""
2789
2829
  }) {
2790
2830
  const hasTypeChoices = typeChoices && typeChoices.length > 1;
2791
- return React.createElement("div", {
2831
+ return /*#__PURE__*/React.createElement("div", {
2792
2832
  className: `form-edit__settings ${className}`
2793
- }, React.createElement("div", {
2833
+ }, /*#__PURE__*/React.createElement("div", {
2794
2834
  className: "w-1/3"
2795
- }, React.createElement(InputText, {
2835
+ }, /*#__PURE__*/React.createElement(InputText, {
2796
2836
  label: "Title",
2797
- placeholder: 'Enter the form title',
2837
+ placeholder: "Enter the form title",
2798
2838
  name: "title",
2799
2839
  required: true,
2800
2840
  value: form.title,
2801
2841
  onChange: onChange
2802
- })), React.createElement("div", {
2842
+ })), /*#__PURE__*/React.createElement("div", {
2803
2843
  className: "w-1/3"
2804
- }, React.createElement(InputText, {
2844
+ }, /*#__PURE__*/React.createElement(InputText, {
2805
2845
  label: "Name",
2806
- placeholder: 'Enter the form machine name',
2846
+ placeholder: "Enter the form machine name",
2807
2847
  name: "name",
2808
2848
  required: true,
2809
2849
  value: form.name,
2810
2850
  onChange: onChange
2811
- })), React.createElement("div", {
2851
+ })), /*#__PURE__*/React.createElement("div", {
2812
2852
  className: "w-1/3"
2813
- }, React.createElement(InputText, {
2853
+ }, /*#__PURE__*/React.createElement(InputText, {
2814
2854
  label: "Path",
2815
- placeholder: 'example',
2855
+ placeholder: "example",
2816
2856
  name: "path",
2817
2857
  className: "mb-0",
2818
- description: React.createElement("span", {
2858
+ description: /*#__PURE__*/React.createElement("span", {
2819
2859
  className: "text-xxs flex items-center"
2820
- }, React.createElement("i", {
2860
+ }, /*#__PURE__*/React.createElement("i", {
2821
2861
  className: "bx bx-link ml-1 mr-1"
2822
2862
  }), window.location.origin + "/" + form.path),
2823
2863
  required: true,
@@ -2827,25 +2867,25 @@ function FormParameters({
2827
2867
  width: "120px"
2828
2868
  },
2829
2869
  onChange: onChange
2830
- })), React.createElement("div", {
2870
+ })), /*#__PURE__*/React.createElement("div", {
2831
2871
  className: "w-1/3"
2832
- }, React.createElement(Select, {
2872
+ }, /*#__PURE__*/React.createElement(Select, {
2833
2873
  label: "Display as",
2834
2874
  name: "display",
2835
2875
  value: form.display,
2836
2876
  choices: displayChoices,
2837
2877
  onChange: onChange
2838
- })), hasTypeChoices && React.createElement("div", {
2878
+ })), hasTypeChoices && /*#__PURE__*/React.createElement("div", {
2839
2879
  className: "w-1/3"
2840
- }, React.createElement(Select, {
2880
+ }, /*#__PURE__*/React.createElement(Select, {
2841
2881
  label: "Type",
2842
2882
  name: "type",
2843
2883
  value: form.type,
2844
2884
  choices: typeChoices,
2845
2885
  onChange: onChange
2846
- })), enableTags && React.createElement("div", {
2886
+ })), enableTags && /*#__PURE__*/React.createElement("div", {
2847
2887
  className: "w-1/3"
2848
- }, React.createElement(InputTags, {
2888
+ }, /*#__PURE__*/React.createElement(InputTags, {
2849
2889
  label: "Tags",
2850
2890
  name: "tags",
2851
2891
  value: form.tags,
@@ -3033,14 +3073,14 @@ function FormEdit(props) {
3033
3073
  options = {},
3034
3074
  builder
3035
3075
  } = props;
3036
- return React.createElement("div", null, React.createElement("div", {
3037
- className: 'form-edit'
3038
- }, React.createElement(FormParameters, Object.assign({}, props, {
3076
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
3077
+ className: "form-edit"
3078
+ }, /*#__PURE__*/React.createElement(FormParameters, _extends({}, props, {
3039
3079
  className: "",
3040
3080
  key: `form-settings-${form._id}`,
3041
3081
  form: form,
3042
3082
  onChange: setChange
3043
- })), React.createElement(FormEditCTAs, Object.assign({}, props, {
3083
+ })), /*#__PURE__*/React.createElement(FormEditCTAs, _extends({}, props, {
3044
3084
  className: "",
3045
3085
  key: `form-edit-ctas-${form._id}`,
3046
3086
  options: options,
@@ -3052,7 +3092,7 @@ function FormEdit(props) {
3052
3092
  onReset: reset,
3053
3093
  onCopy: onCopy,
3054
3094
  onSubmit: onSubmit
3055
- }))), React.createElement(FormBuilder, {
3095
+ }))), /*#__PURE__*/React.createElement(FormBuilder, {
3056
3096
  key: `form-builder-${form._id}`,
3057
3097
  components: form.components,
3058
3098
  display: form.display,
@@ -3199,13 +3239,13 @@ function FormSettings(props) {
3199
3239
 
3200
3240
  const i18n = options.i18n || (f => f);
3201
3241
 
3202
- return React.createElement("div", null, React.createElement(Form, {
3242
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Form, {
3203
3243
  form: form,
3204
3244
  submission: submission,
3205
3245
  onChange: onChange,
3206
3246
  options: options
3207
- }), React.createElement("button", {
3208
- "data-testid": 'submit',
3247
+ }), /*#__PURE__*/React.createElement("button", {
3248
+ "data-testid": "submit",
3209
3249
  disabled: !isValid,
3210
3250
  className: "mt-5 btn btn-primary",
3211
3251
  onClick: onSubmit,
@@ -3229,7 +3269,7 @@ function SelectColumnFilter({
3229
3269
  label: value,
3230
3270
  value
3231
3271
  }));
3232
- return React.createElement(Select, {
3272
+ return /*#__PURE__*/React.createElement(Select, {
3233
3273
  key: `filter-${column.id}`,
3234
3274
  name: `filter-${column.id}`,
3235
3275
  size: "sm",
@@ -8374,30 +8414,30 @@ function FormsCell(props) {
8374
8414
  original: form
8375
8415
  }
8376
8416
  } = props;
8377
- return React.createElement("div", {
8417
+ return /*#__PURE__*/React.createElement("div", {
8378
8418
  className: "p-1"
8379
- }, React.createElement("h4", {
8419
+ }, /*#__PURE__*/React.createElement("h4", {
8380
8420
  className: "text-primary text-lg flex items-center"
8381
- }, React.createElement("i", {
8421
+ }, /*#__PURE__*/React.createElement("i", {
8382
8422
  className: classnames(iconClass(undefined, icon), "mr-1")
8383
- }), form.title), React.createElement("ul", {
8384
- className: 'reset-list text-gray-500'
8385
- }, React.createElement("li", {
8423
+ }), form.title), /*#__PURE__*/React.createElement("ul", {
8424
+ className: "reset-list text-gray-500"
8425
+ }, /*#__PURE__*/React.createElement("li", {
8386
8426
  className: "text-sm"
8387
- }, "Name: ", form.name || form.machineName), React.createElement("li", {
8388
- className: 'mt-5'
8389
- }, React.createElement("span", {
8390
- className: 'badge bg-light mr-1'
8391
- }, React.createElement("i", {
8427
+ }, "Name: ", form.name || form.machineName), /*#__PURE__*/React.createElement("li", {
8428
+ className: "mt-5"
8429
+ }, /*#__PURE__*/React.createElement("span", {
8430
+ className: "badge bg-light mr-1"
8431
+ }, /*#__PURE__*/React.createElement("i", {
8392
8432
  className: classnames(iconClass(undefined, "history"), "mr-1")
8393
- }), React.createElement("span", null, "Updated ", moment(form.modified).fromNow())), (form.tags || []).map((tag, index) => React.createElement("button", {
8433
+ }), /*#__PURE__*/React.createElement("span", null, "Updated ", moment(form.modified).fromNow())), (form.tags || []).map((tag, index) => /*#__PURE__*/React.createElement("button", {
8394
8434
  key: index,
8395
- className: 'badge badge-hover bg-secondary mr-1',
8435
+ className: "badge badge-hover bg-secondary mr-1",
8396
8436
  onClick: stopPropagationWrapper(() => {
8397
8437
  props.setFilter("tags", tag);
8398
8438
  props.gotoPage(0);
8399
8439
  })
8400
- }, React.createElement("i", {
8440
+ }, /*#__PURE__*/React.createElement("i", {
8401
8441
  className: classnames(iconClass(undefined, "tags"), "mr-1")
8402
8442
  }), tag)))));
8403
8443
  }
@@ -8417,7 +8457,7 @@ function FormsTable(_ref) {
8417
8457
  Header: i18n("Title"),
8418
8458
  accessor: "title",
8419
8459
  id: "title",
8420
- Cell: props => React.createElement(FormCell, Object.assign({}, props, {
8460
+ Cell: props => /*#__PURE__*/React.createElement(FormCell, _extends({}, props, {
8421
8461
  icon: props.icon,
8422
8462
  i18n: i18n
8423
8463
  })),
@@ -8428,13 +8468,13 @@ function FormsTable(_ref) {
8428
8468
  accessor: "tags",
8429
8469
  id: "tags",
8430
8470
  hidden: true,
8431
- Filter: props => tags && tags.length ? React.createElement(SelectColumnFilter, Object.assign({}, props, {
8471
+ Filter: props => tags && tags.length ? /*#__PURE__*/React.createElement(SelectColumnFilter, _extends({}, props, {
8432
8472
  column: _extends({}, props.columns, {
8433
8473
  choices: tags
8434
8474
  })
8435
- })) : React.createElement(DefaultColumnFilter, Object.assign({}, props))
8475
+ })) : /*#__PURE__*/React.createElement(DefaultColumnFilter, props)
8436
8476
  }], [Cell]);
8437
- return React.createElement(Table, Object.assign({}, props, {
8477
+ return /*#__PURE__*/React.createElement(Table, _extends({}, props, {
8438
8478
  columns: columns
8439
8479
  }));
8440
8480
  }
@@ -8492,37 +8532,37 @@ function Modal(_ref) {
8492
8532
  return null;
8493
8533
  }
8494
8534
 
8495
- return React.createElement("div", {
8535
+ return /*#__PURE__*/React.createElement("div", {
8496
8536
  role: "dialog",
8497
8537
  className: `formio-dialog formio-dialog-theme-default ${className}`
8498
- }, React.createElement("div", {
8499
- className: 'formio-dialog-overlay',
8538
+ }, /*#__PURE__*/React.createElement("div", {
8539
+ className: "formio-dialog-overlay",
8500
8540
  onClick: onClickClose
8501
- }), React.createElement("div", {
8541
+ }), /*#__PURE__*/React.createElement("div", {
8502
8542
  style: style,
8503
8543
  className: "formio-dialog-content"
8504
- }, React.createElement("div", {
8544
+ }, /*#__PURE__*/React.createElement("div", {
8505
8545
  className: "formio-dialog-wrapper"
8506
- }, title ? React.createElement("div", {
8546
+ }, title ? /*#__PURE__*/React.createElement("div", {
8507
8547
  className: "formio-dialog-title",
8508
8548
  ref: titleRef,
8509
8549
  "data-testid": "modalTitle"
8510
- }, title) : null, React.createElement("div", {
8511
- className: 'formio-dialog-body',
8550
+ }, title) : null, /*#__PURE__*/React.createElement("div", {
8551
+ className: "formio-dialog-body",
8512
8552
  style: {
8513
8553
  maxHeight
8514
8554
  },
8515
8555
  "data-testid": "modalBody"
8516
- }, show && children), ModalFooter ? React.createElement("div", {
8556
+ }, show && children), ModalFooter ? /*#__PURE__*/React.createElement("div", {
8517
8557
  className: "formio-dialog-footer",
8518
8558
  ref: footerRef,
8519
8559
  "data-testid": "modalFooter"
8520
- }, React.createElement(ModalFooter, Object.assign({}, props, {
8560
+ }, /*#__PURE__*/React.createElement(ModalFooter, _extends({}, props, {
8521
8561
  closeModal: closeModal,
8522
8562
  onClose: onClickClose
8523
- }))) : null), React.createElement("button", {
8524
- className: 'formio-dialog-close float-right btn btn-secondary btn-sm',
8525
- "aria-label": 'close',
8563
+ }))) : null), /*#__PURE__*/React.createElement("button", {
8564
+ className: "formio-dialog-close float-right btn btn-secondary btn-sm",
8565
+ "aria-label": "close",
8526
8566
  "data-testid": "closeModal",
8527
8567
  onClick: onClickClose
8528
8568
  })));
@@ -8535,22 +8575,22 @@ function RemoveModalFooter({
8535
8575
  onClose,
8536
8576
  i18n = f => f
8537
8577
  }) {
8538
- return React.createElement("div", {
8578
+ return /*#__PURE__*/React.createElement("div", {
8539
8579
  className: "flex items-center justify-center bg-white p-2"
8540
- }, React.createElement("button", {
8541
- "data-testid": 'customCloseModal',
8580
+ }, /*#__PURE__*/React.createElement("button", {
8581
+ "data-testid": "customCloseModal",
8542
8582
  className: "btn btn-outline-dark mx-2",
8543
8583
  onClick: onClose
8544
- }, i18n("Cancel")), React.createElement("button", {
8584
+ }, i18n("Cancel")), /*#__PURE__*/React.createElement("button", {
8545
8585
  disabled: valueToCompare !== value,
8546
- "data-testid": 'customSubmitModal',
8586
+ "data-testid": "customSubmitModal",
8547
8587
  className: "btn btn-danger mx-2",
8548
8588
  onClick: e => {
8549
8589
  if (valueToCompare === value) {
8550
8590
  onSubmit(e);
8551
8591
  }
8552
8592
  }
8553
- }, React.createElement("i", {
8593
+ }, /*#__PURE__*/React.createElement("i", {
8554
8594
  className: classnames(iconClass(undefined, "trash"), "mr-2")
8555
8595
  }), i18n("Remove")));
8556
8596
  }
@@ -8568,7 +8608,7 @@ function RemoveModal(_ref) {
8568
8608
  i18n = noop
8569
8609
  } = props;
8570
8610
  const [value, setValue] = useState();
8571
- return React.createElement(Modal, Object.assign({}, props, {
8611
+ return /*#__PURE__*/React.createElement(Modal, _extends({}, props, {
8572
8612
  className: classnames(props.className, "formio-dialog-theme-remove"),
8573
8613
  style: {
8574
8614
  maxWidth
@@ -8576,12 +8616,12 @@ function RemoveModal(_ref) {
8576
8616
  title: `Drop ${(_props$itemType = props.itemType) == null ? void 0 : _props$itemType.toLowerCase()}`,
8577
8617
  value: value,
8578
8618
  footer: RemoveModalFooter
8579
- }), React.createElement("div", {
8619
+ }), /*#__PURE__*/React.createElement("div", {
8580
8620
  className: "px-4 pt-3 pb-5"
8581
- }, React.createElement("div", {
8621
+ }, /*#__PURE__*/React.createElement("div", {
8582
8622
  className: "pb-1"
8583
- }, children, i18n("To drop"), " ", React.createElement("strong", null, props.valueToCompare), ",\u00A0", i18n("type the"), "\u00A0", React.createElement("strong", null, "\"", (_props$itemType2 = props.itemType) == null ? void 0 : _props$itemType2.toLowerCase(), "\""), "\u00A0", i18n("name"), " ", React.createElement("strong", null, "\"", props.valueToCompare, "\""), "."), React.createElement(InputText, {
8584
- name: 'remove',
8623
+ }, children, i18n("To drop"), " ", /*#__PURE__*/React.createElement("strong", null, props.valueToCompare), ",\xA0", i18n("type the"), "\xA0", /*#__PURE__*/React.createElement("strong", null, "\"", (_props$itemType2 = props.itemType) == null ? void 0 : _props$itemType2.toLowerCase(), "\""), "\xA0", i18n("name"), " ", /*#__PURE__*/React.createElement("strong", null, "\"", props.valueToCompare, "\""), "."), /*#__PURE__*/React.createElement(InputText, {
8624
+ name: "remove",
8585
8625
  value: value,
8586
8626
  onChange: (name, value) => setValue(value)
8587
8627
  })));
@@ -8598,12 +8638,9 @@ class ReactComponent extends Components.components.field {
8598
8638
  // eslint-disable-next-line no-useless-constructor
8599
8639
  constructor(component, options, data) {
8600
8640
  super(component, options, data);
8601
- /**
8602
- * The user has changed the value in the component and the value needs to be updated on the main submission object and other components notified of a change event.
8603
- *
8604
- * @param value
8605
- * @param flags
8606
- */
8641
+ this.reactInstance = void 0;
8642
+ this.shouldSetValue = void 0;
8643
+ this.dataForSetting = void 0;
8607
8644
 
8608
8645
  this.updateValue = (value, flags) => {
8609
8646
  flags = flags || {};
@@ -8664,9 +8701,10 @@ class ReactComponent extends Components.components.field {
8664
8701
 
8665
8702
  this.loadRefs(element, {
8666
8703
  [`react-${this.id}`]: "single"
8667
- });
8704
+ }); // @ts-ignore
8668
8705
 
8669
8706
  if (this.refs[`react-${this.id}`]) {
8707
+ // @ts-ignore
8670
8708
  this.reactInstance = this.attachReact(this.refs[`react-${this.id}`]);
8671
8709
 
8672
8710
  if (this.shouldSetValue) {
@@ -8682,7 +8720,9 @@ class ReactComponent extends Components.components.field {
8682
8720
 
8683
8721
 
8684
8722
  detach() {
8723
+ // @ts-ignore
8685
8724
  if (this.refs[`react-${this.id}`]) {
8725
+ // @ts-ignore
8686
8726
  this.detachReact(this.refs[`react-${this.id}`]);
8687
8727
  }
8688
8728
 
@@ -8725,7 +8765,6 @@ class ReactComponent extends Components.components.field {
8725
8765
  * @param value
8726
8766
  * @param flags
8727
8767
  */
8728
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
8729
8768
 
8730
8769
 
8731
8770
  setValue(value, flags) {
@@ -8739,15 +8778,21 @@ class ReactComponent extends Components.components.field {
8739
8778
  this.dataForSetting = value;
8740
8779
  }
8741
8780
 
8742
- return undefined;
8781
+ return false;
8743
8782
  }
8744
8783
  /**
8745
- * Get the current value of the component. Should return the value set in the react component.
8784
+ * The user has changed the value in the component and the value needs to be updated on the main submission object and other components notified of a change event.
8746
8785
  *
8747
- * @returns {*}
8786
+ * @param value
8787
+ * @param flags
8748
8788
  */
8749
8789
 
8750
8790
 
8791
+ /**
8792
+ * Get the current value of the component. Should return the value set in the react component.
8793
+ *
8794
+ * @returns {*}
8795
+ */
8751
8796
  getValue() {
8752
8797
  if (this.reactInstance) {
8753
8798
  return this.reactInstance.state.value;
@@ -8787,31 +8832,31 @@ function DefaultCell({
8787
8832
  render = f => f
8788
8833
  }) {
8789
8834
  if (value === undefined) {
8790
- return React.createElement(React.Fragment, null);
8835
+ return /*#__PURE__*/React.createElement(Fragment, null);
8791
8836
  }
8792
8837
 
8793
8838
  const rendered = render(value);
8794
8839
 
8795
8840
  if (value !== rendered) {
8796
- return React.createElement("div", {
8841
+ return /*#__PURE__*/React.createElement("div", {
8797
8842
  dangerouslySetInnerHTML: {
8798
8843
  __html: rendered
8799
8844
  }
8800
8845
  });
8801
8846
  }
8802
8847
 
8803
- return React.createElement("span", null, String(value));
8848
+ return /*#__PURE__*/React.createElement("span", null, String(value));
8804
8849
  }
8805
8850
 
8806
8851
  function mapFormToColumns(form) {
8807
8852
  const columns = [];
8808
8853
  FormioUtils.eachComponent(form.components, component => {
8809
8854
  if (component.tableView && component.key) {
8810
- const cmp = Components.create(component, null, null, true);
8855
+ const cmp = Components.create(component, {}, null, true);
8811
8856
  const column = {
8812
8857
  Header: component.label || component.title || component.key,
8813
8858
  accessor: `data.${component.key}`,
8814
- Cell: props => React.createElement(DefaultCell, Object.assign({}, props, {
8859
+ Cell: props => /*#__PURE__*/React.createElement(DefaultCell, _extends({}, props, {
8815
8860
  render: value => cmp.asString(value)
8816
8861
  }))
8817
8862
  };
@@ -8833,8 +8878,8 @@ function SubmissionsTable(_ref) {
8833
8878
  } = _ref,
8834
8879
  props = _objectWithoutPropertiesLoose(_ref, ["form"]);
8835
8880
 
8836
- const columns = React.useMemo(() => form && mapFormToColumns(form), [form]);
8837
- return React.createElement(Table, Object.assign({}, props, {
8881
+ const columns = form && mapFormToColumns(form);
8882
+ return /*#__PURE__*/React.createElement(Table, _extends({}, props, {
8838
8883
  columns: columns
8839
8884
  }));
8840
8885
  }
@@ -8856,15 +8901,15 @@ function SliderColumnFilter({
8856
8901
  });
8857
8902
  return [min, max];
8858
8903
  }, [id, preFilteredRows]);
8859
- return React.createElement(React.Fragment, null, React.createElement("input", {
8860
- type: 'range',
8904
+ return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement("input", {
8905
+ type: "range",
8861
8906
  min: min,
8862
8907
  max: max,
8863
8908
  value: filterValue || min,
8864
8909
  onChange: e => {
8865
8910
  setFilter(parseInt(e.target.value, 10));
8866
8911
  }
8867
- }), React.createElement("button", {
8912
+ }), /*#__PURE__*/React.createElement("button", {
8868
8913
  onClick: () => setFilter(undefined)
8869
8914
  }, "Off"));
8870
8915
  }
@@ -8879,18 +8924,18 @@ function ButtonTab({
8879
8924
  className,
8880
8925
  after
8881
8926
  }) {
8882
- return React.createElement("div", {
8927
+ return /*#__PURE__*/React.createElement("div", {
8883
8928
  title: 'button-wrapper',
8884
8929
  className: classnames("tw-tabs__button-wrapper", isActive ? "-active" : "", back ? "-back" : "", className)
8885
- }, React.createElement("button", {
8930
+ }, /*#__PURE__*/React.createElement("button", {
8886
8931
  title: 'button-tab',
8887
8932
  className: classnames("tw-tabs__button", reverse ? "-reverse" : "", isActive ? "-active" : "", back ? "-back" : ""),
8888
8933
  onClick: onClick
8889
- }, icon && React.createElement("i", {
8934
+ }, icon && /*#__PURE__*/React.createElement("i", {
8890
8935
  className: classnames(iconClass(undefined, icon), "tw-tabs__button-icon")
8891
- }), React.createElement("span", {
8936
+ }), /*#__PURE__*/React.createElement("span", {
8892
8937
  className: "tw-tabs__button-label"
8893
- }, children), after), React.createElement("div", {
8938
+ }, children), after), /*#__PURE__*/React.createElement("div", {
8894
8939
  className: classnames("tw-tabs__button-border", isActive ? "-active" : "")
8895
8940
  }));
8896
8941
  }
@@ -8909,18 +8954,18 @@ function Tabs(_ref) {
8909
8954
  } = _ref,
8910
8955
  additionalProps = _objectWithoutPropertiesLoose(_ref, ["style", "current", "items", "children", "HeaderChildren", "AddButton", "Button", "className", "onClick", "i18n"]);
8911
8956
 
8912
- return React.createElement("div", {
8957
+ return /*#__PURE__*/React.createElement("div", {
8913
8958
  "data-testid": 'tabs-comp',
8914
8959
  className: `tw-tabs ${className}`,
8915
8960
  style: style
8916
- }, React.createElement("div", null, React.createElement("nav", {
8917
- className: 'tw-tabs__header'
8918
- }, React.createElement("div", {
8919
- className: 'tw-tabs__header-wrapper'
8920
- }, React.createElement("div", {
8921
- className: 'tw-tabs__header-border'
8961
+ }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("nav", {
8962
+ className: "tw-tabs__header"
8963
+ }, /*#__PURE__*/React.createElement("div", {
8964
+ className: "tw-tabs__header-wrapper"
8965
+ }, /*#__PURE__*/React.createElement("div", {
8966
+ className: "tw-tabs__header-border"
8922
8967
  }), items.filter(item => item.label || item.icon).map((item, index) => {
8923
- return React.createElement(Button, Object.assign({
8968
+ return /*#__PURE__*/React.createElement(Button, _extends({
8924
8969
  key: index,
8925
8970
  back: item.back,
8926
8971
  isActive: (current == null ? void 0 : current.action) === item.action,
@@ -8928,12 +8973,12 @@ function Tabs(_ref) {
8928
8973
  onClick: () => {
8929
8974
  onClick && onClick(item);
8930
8975
  }
8931
- }, additionalProps, item), i18n(item.label));
8932
- }), AddButton && React.createElement(AddButton, Object.assign({}, additionalProps, {
8976
+ }, additionalProps, item), i18n(item.label || ""));
8977
+ }), AddButton && /*#__PURE__*/React.createElement(AddButton, _extends({}, additionalProps, {
8933
8978
  current: current
8934
- })))), HeaderChildren && React.createElement(HeaderChildren, Object.assign({}, additionalProps, {
8979
+ })))), HeaderChildren && /*#__PURE__*/React.createElement(HeaderChildren, _extends({}, additionalProps, {
8935
8980
  current: current
8936
- }))), React.createElement("div", {
8981
+ }))), /*#__PURE__*/React.createElement("div", {
8937
8982
  title: "tab-body",
8938
8983
  className: "tw-tabs__body"
8939
8984
  }, children));
@@ -8946,9 +8991,9 @@ function Loader({
8946
8991
  className = ""
8947
8992
  }) {
8948
8993
  if (isActive) {
8949
- return React.createElement("div", {
8994
+ return /*#__PURE__*/React.createElement("div", {
8950
8995
  className: classnames("opacity-85 z-20 flex items-center justify-center p-5 absolute top-0 right-0 left-0 bottom-0 bg-white", className)
8951
- }, React.createElement("span", {
8996
+ }, /*#__PURE__*/React.createElement("span", {
8952
8997
  "data-testid": `icon_${icon}`,
8953
8998
  color: color,
8954
8999
  className: `text-11xl ${iconClass(undefined, icon, true)}`