@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.
- package/dist/components/actions-table/actionsTable.component.d.ts +0 -1
- package/dist/components/actions-table/actionsTable.stories.d.ts +0 -1
- package/dist/components/alert/alert.component.d.ts +1 -2
- package/dist/components/alert/alert.stories.d.ts +0 -1
- package/dist/components/card/card.stories.d.ts +0 -1
- package/dist/components/form/form.component.d.ts +3 -2
- package/dist/components/form/form.component.spec.d.ts +1 -0
- package/dist/components/form/form.stories.d.ts +3689 -79
- package/dist/components/form/useForm.hook.d.ts +1 -1
- package/dist/components/form-access/formAccess.stories.d.ts +1 -2
- package/dist/components/form-action/formAction.stories.d.ts +0 -1
- package/dist/components/form-builder/formBuilder.stories.d.ts +518 -153
- package/dist/components/form-edit/formEdit.component.d.ts +0 -1
- package/dist/components/form-edit/formEdit.stories.d.ts +18 -19
- package/dist/components/form-settings/formSettings.component.d.ts +0 -1
- package/dist/components/form-settings/formSettings.stories.d.ts +1 -2
- package/dist/components/forms-table/components/formCell.component.d.ts +0 -1
- package/dist/components/forms-table/formsTable.component.d.ts +0 -1
- package/dist/components/forms-table/formsTable.stories.d.ts +0 -1
- package/dist/components/input-tags/inputTags.component.d.ts +0 -1
- package/dist/components/input-tags/inputTags.stories.d.ts +2 -3
- package/dist/components/input-text/inputText.component.d.ts +0 -1
- package/dist/components/input-text/inputText.stories.d.ts +0 -1
- package/dist/components/loader/loader.component.d.ts +1 -1
- package/dist/components/loader/loader.stories.d.ts +0 -1
- package/dist/components/modal/modal.component.d.ts +1 -1
- package/dist/components/modal/modal.stories.d.ts +0 -1
- package/dist/components/pagination/pagination.component.d.ts +0 -1
- package/dist/components/pagination/pagination.stories.d.ts +0 -1
- package/dist/components/react-component/reactComponent.component.d.ts +3 -3
- package/dist/components/select/select.stories.d.ts +2 -3
- package/dist/components/submissions-table/submissionsTable.component.d.ts +0 -1
- package/dist/components/submissions-table/submissionsTable.stories.d.ts +13 -14
- package/dist/components/table/components/defaultArrowSort.component.d.ts +0 -1
- package/dist/components/table/components/defaultCell.component.d.ts +0 -1
- package/dist/components/table/components/defaultCellHeader.component.d.ts +0 -1
- package/dist/components/table/components/defaultCellOperations.component.d.ts +0 -1
- package/dist/components/table/components/defaultOperationButton.component.d.ts +0 -1
- package/dist/components/table/filters/defaultColumnFilter.component.d.ts +0 -1
- package/dist/components/table/filters/selectColumnFilter.component.d.ts +0 -1
- package/dist/components/table/filters/sliderColumnFilter.component.d.ts +0 -1
- package/dist/components/table/table.stories.d.ts +4 -5
- package/dist/components/tabs/tabs.component.stories.d.ts +0 -1
- package/dist/hooks/useTooltip.d.ts +1 -1
- package/dist/index.js +342 -274
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +313 -268
- package/dist/index.modern.js.map +1 -1
- package/dist/stores/auth/auth.selectors.d.ts +1 -1
- package/jest.config.js +1 -1
- package/package.json +5 -5
- package/readme.md +51 -18
- package/src/components/__fixtures__/form.fixture.json +23 -0
- package/src/components/form/form.component.spec.tsx +56 -0
- package/src/components/form/form.component.tsx +5 -3
- package/src/components/form/form.stories.tsx +182 -11
- package/src/components/form/useForm.hook.ts +54 -29
- package/src/components/form-access/formAccess.component.tsx +1 -1
- package/src/components/form-access/formAccess.utils.ts +13 -13
- package/src/components/form-action/formAction.component.tsx +1 -1
- package/src/components/form-builder/formBuilder.component.tsx +1 -1
- package/src/components/form-edit/formCtas.component.tsx +32 -30
- package/src/components/form-edit/formEdit.component.tsx +1 -1
- package/src/components/form-settings/formSettings.utils.ts +3 -3
- package/src/components/input-tags/inputTags.component.tsx +3 -3
- package/src/components/input-text/inputText.component.spec.tsx +1 -1
- package/src/components/input-text/inputText.component.tsx +3 -3
- package/src/components/modal/modal.component.tsx +2 -2
- package/src/components/react-component/reactComponent.component.tsx +9 -6
- package/src/components/select/select.component.tsx +2 -2
- package/src/components/submissions-table/submissionsTable.component.tsx +6 -6
- package/src/components/table/table.component.tsx +58 -44
- package/src/components/table/utils/mapFormToColumns.tsx +1 -1
- package/src/components/tabs/tabs.component.tsx +1 -1
- package/src/hooks/useTooltip.ts +1 -1
- package/src/stores/action-info/action-info.selectors.ts +1 -1
- package/src/stores/auth/auth.utils.tsx +2 -2
- package/src/stores/auth/getAccess.action.ts +2 -2
- package/src/stores/auth/logout.action.spec.ts +1 -0
- package/src/stores/form/form.selectors.ts +1 -1
- package/src/stores/root/root.selectors.ts +2 -2
- package/tsconfig.json +10 -27
- package/tsconfig.node.json +8 -0
- package/craco.config.js +0 -11
- package/tsconfig.test.json +0 -6
package/dist/index.modern.js
CHANGED
|
@@ -361,7 +361,7 @@ function checkRoleFormAccess(auth, form, roles) {
|
|
|
361
361
|
return true;
|
|
362
362
|
}
|
|
363
363
|
|
|
364
|
-
return
|
|
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:
|
|
1204
|
-
}, React.createElement("span", {
|
|
1205
|
-
className:
|
|
1206
|
-
}, prefix)), children, suffix && React.createElement("div", {
|
|
1207
|
-
className:
|
|
1208
|
-
}, React.createElement("span", {
|
|
1209
|
-
className:
|
|
1210
|
-
}, suffix))), description && React.createElement("div", {
|
|
1211
|
-
className:
|
|
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",
|
|
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,
|
|
1360
|
-
"data-testid":
|
|
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":
|
|
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:
|
|
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:
|
|
1404
|
+
return /*#__PURE__*/React.createElement("li", {
|
|
1405
|
+
className: "page-item",
|
|
1406
1406
|
key: page
|
|
1407
|
-
}, React.createElement(PaginationButton, {
|
|
1408
|
-
"aria-hidden":
|
|
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:
|
|
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"), "\
|
|
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",
|
|
1463
|
-
className:
|
|
1464
|
-
}, column.getSortByToggleProps()), React.createElement("span", null, column.render("Header")), column.render("ArrowSort")), column.canFilter ? React.createElement("div", {
|
|
1465
|
-
className:
|
|
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",
|
|
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 ||
|
|
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(
|
|
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:
|
|
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,
|
|
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,
|
|
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:
|
|
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",
|
|
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",
|
|
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
|
-
}
|
|
1762
|
+
}), headerGroup.headers.map(column => /*#__PURE__*/React.createElement("th", _extends({}, column.getHeaderProps(), {
|
|
1763
1763
|
key: `tableInstance.headers.column.${column.id}`
|
|
1764
|
-
}
|
|
1764
|
+
}), /*#__PURE__*/React.createElement(CellHeader, {
|
|
1765
1765
|
column: column
|
|
1766
|
-
})))))), !isLoading ? React.createElement("tbody",
|
|
1766
|
+
})))))), !isLoading ? /*#__PURE__*/React.createElement("tbody", tableInstance.getTableBodyProps(), tableInstance.page.map(row => {
|
|
1767
1767
|
tableInstance.prepareRow(row);
|
|
1768
|
-
return React.createElement("tr",
|
|
1769
|
-
key: `tableInstance.page.${row.id}`,
|
|
1768
|
+
return /*#__PURE__*/React.createElement("tr", _extends({
|
|
1770
1769
|
onClick: () => _onClick(row.original, "row")
|
|
1771
|
-
}, row.getRowProps()
|
|
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",
|
|
1782
|
-
key: `tableInstance.page.cells.${cell.value || "value"}.${i}`,
|
|
1782
|
+
return /*#__PURE__*/React.createElement("td", _extends({
|
|
1783
1783
|
colSpan: colspan
|
|
1784
|
-
}, cell.getCellProps()
|
|
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,
|
|
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,
|
|
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:
|
|
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
|
|
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
|
|
1994
|
+
const eventName = `on${event.charAt(7).toUpperCase()}${event.slice(8)}`;
|
|
1945
1995
|
|
|
1946
|
-
if (
|
|
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
|
-
|
|
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":
|
|
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(
|
|
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:
|
|
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",
|
|
2796
|
+
}, /*#__PURE__*/React.createElement("input", _extends({
|
|
2757
2797
|
ref: ref,
|
|
2758
|
-
type:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
3038
|
-
}, React.createElement(FormParameters,
|
|
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,
|
|
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":
|
|
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:
|
|
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:
|
|
8389
|
-
}, React.createElement("span", {
|
|
8390
|
-
className:
|
|
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:
|
|
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,
|
|
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,
|
|
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,
|
|
8475
|
+
})) : /*#__PURE__*/React.createElement(DefaultColumnFilter, props)
|
|
8436
8476
|
}], [Cell]);
|
|
8437
|
-
return React.createElement(Table,
|
|
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:
|
|
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:
|
|
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,
|
|
8560
|
+
}, /*#__PURE__*/React.createElement(ModalFooter, _extends({}, props, {
|
|
8521
8561
|
closeModal: closeModal,
|
|
8522
8562
|
onClose: onClickClose
|
|
8523
|
-
}))) : null), React.createElement("button", {
|
|
8524
|
-
className:
|
|
8525
|
-
"aria-label":
|
|
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":
|
|
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":
|
|
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,
|
|
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), ",\
|
|
8584
|
-
name:
|
|
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
|
-
|
|
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
|
|
8781
|
+
return false;
|
|
8743
8782
|
}
|
|
8744
8783
|
/**
|
|
8745
|
-
*
|
|
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
|
-
* @
|
|
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(
|
|
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,
|
|
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,
|
|
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 =
|
|
8837
|
-
return React.createElement(Table,
|
|
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(
|
|
8860
|
-
type:
|
|
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:
|
|
8918
|
-
}, React.createElement("div", {
|
|
8919
|
-
className:
|
|
8920
|
-
}, React.createElement("div", {
|
|
8921
|
-
className:
|
|
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,
|
|
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,
|
|
8976
|
+
}, additionalProps, item), i18n(item.label || ""));
|
|
8977
|
+
}), AddButton && /*#__PURE__*/React.createElement(AddButton, _extends({}, additionalProps, {
|
|
8933
8978
|
current: current
|
|
8934
|
-
})))), HeaderChildren && React.createElement(HeaderChildren,
|
|
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)}`
|