@pinuts/bsr-uikit-relaunch 0.0.3
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/.eslintrc.js +80 -0
- package/.idea/.name +1 -0
- package/.idea/misc.xml +6 -0
- package/.idea/modules.xml +8 -0
- package/.idea/vcs.xml +6 -0
- package/CHANGELOG.md +3 -0
- package/README.md +75 -0
- package/bsr-uikit-relaunch.iml +9 -0
- package/config-overrides.js +32 -0
- package/dist/assets/Icon.js +64 -0
- package/dist/assets/IconComponents/getIconAdditionalCostsLarge.js +31 -0
- package/dist/assets/IconComponents/getIconAlertCircle.js +31 -0
- package/dist/assets/IconComponents/getIconAlertTriangle.js +27 -0
- package/dist/assets/IconComponents/getIconArchive.js +31 -0
- package/dist/assets/IconComponents/getIconArrowCornerUpLeft.js +25 -0
- package/dist/assets/IconComponents/getIconArrowDown.js +36 -0
- package/dist/assets/IconComponents/getIconArrowDownNoCircle.js +25 -0
- package/dist/assets/IconComponents/getIconArrowLeftNoCircle.js +25 -0
- package/dist/assets/IconComponents/getIconArrowRightDown.js +28 -0
- package/dist/assets/IconComponents/getIconArrowRightNoCircle.js +19 -0
- package/dist/assets/IconComponents/getIconArrowRightUp.js +28 -0
- package/dist/assets/IconComponents/getIconArrowUpNoCircle.js +25 -0
- package/dist/assets/IconComponents/getIconBarChart.js +40 -0
- package/dist/assets/IconComponents/getIconBell.js +25 -0
- package/dist/assets/IconComponents/getIconBriefCaseLarge.js +29 -0
- package/dist/assets/IconComponents/getIconCalendar.js +40 -0
- package/dist/assets/IconComponents/getIconChairman.js +19 -0
- package/dist/assets/IconComponents/getIconCheck.js +19 -0
- package/dist/assets/IconComponents/getIconCheckCircle.js +23 -0
- package/dist/assets/IconComponents/getIconCheckCircleOpen.js +31 -0
- package/dist/assets/IconComponents/getIconChevronDown.js +19 -0
- package/dist/assets/IconComponents/getIconChevronLeft.js +19 -0
- package/dist/assets/IconComponents/getIconChevronRight.js +19 -0
- package/dist/assets/IconComponents/getIconChevronUp.js +19 -0
- package/dist/assets/IconComponents/getIconCircle.js +21 -0
- package/dist/assets/IconComponents/getIconCircleMinus.js +26 -0
- package/dist/assets/IconComponents/getIconCirclePause.js +19 -0
- package/dist/assets/IconComponents/getIconCirclePlus.js +31 -0
- package/dist/assets/IconComponents/getIconCircleX.js +31 -0
- package/dist/assets/IconComponents/getIconCity.js +23 -0
- package/dist/assets/IconComponents/getIconCross.js +27 -0
- package/dist/assets/IconComponents/getIconDocumentLarge.js +28 -0
- package/dist/assets/IconComponents/getIconDoubleChevronLeft.js +21 -0
- package/dist/assets/IconComponents/getIconDoubleChevronRight.js +21 -0
- package/dist/assets/IconComponents/getIconDownload.js +37 -0
- package/dist/assets/IconComponents/getIconEdit.js +25 -0
- package/dist/assets/IconComponents/getIconEditPen.js +25 -0
- package/dist/assets/IconComponents/getIconEuro.js +21 -0
- package/dist/assets/IconComponents/getIconExclamationMark.js +21 -0
- package/dist/assets/IconComponents/getIconExternalLink.js +26 -0
- package/dist/assets/IconComponents/getIconEye.js +31 -0
- package/dist/assets/IconComponents/getIconEyeOff.js +34 -0
- package/dist/assets/IconComponents/getIconFile.js +25 -0
- package/dist/assets/IconComponents/getIconFileAddLarge.js +29 -0
- package/dist/assets/IconComponents/getIconFileReport.js +37 -0
- package/dist/assets/IconComponents/getIconFileText.js +43 -0
- package/dist/assets/IconComponents/getIconFilter.js +35 -0
- package/dist/assets/IconComponents/getIconFolder.js +37 -0
- package/dist/assets/IconComponents/getIconFolderLarge.js +32 -0
- package/dist/assets/IconComponents/getIconFunnel.js +19 -0
- package/dist/assets/IconComponents/getIconGraduateCapLarge.js +31 -0
- package/dist/assets/IconComponents/getIconInbox.js +25 -0
- package/dist/assets/IconComponents/getIconInfo.js +28 -0
- package/dist/assets/IconComponents/getIconInfoCircle.js +25 -0
- package/dist/assets/IconComponents/getIconInternshipLarge.js +49 -0
- package/dist/assets/IconComponents/getIconLeaf.js +21 -0
- package/dist/assets/IconComponents/getIconLeftChevron.js +21 -0
- package/dist/assets/IconComponents/getIconLineChart.js +24 -0
- package/dist/assets/IconComponents/getIconLineChartWithAxis.js +37 -0
- package/dist/assets/IconComponents/getIconLineDotChart.js +61 -0
- package/dist/assets/IconComponents/getIconLink.js +31 -0
- package/dist/assets/IconComponents/getIconList.js +49 -0
- package/dist/assets/IconComponents/getIconLock.js +25 -0
- package/dist/assets/IconComponents/getIconLogin.js +31 -0
- package/dist/assets/IconComponents/getIconLogout.js +19 -0
- package/dist/assets/IconComponents/getIconMail.js +25 -0
- package/dist/assets/IconComponents/getIconMan.js +36 -0
- package/dist/assets/IconComponents/getIconManagement.js +59 -0
- package/dist/assets/IconComponents/getIconMap.js +29 -0
- package/dist/assets/IconComponents/getIconMapPin.js +19 -0
- package/dist/assets/IconComponents/getIconMenu.js +31 -0
- package/dist/assets/IconComponents/getIconMessageCircle.js +25 -0
- package/dist/assets/IconComponents/getIconMessageSquare.js +39 -0
- package/dist/assets/IconComponents/getIconMinus.js +22 -0
- package/dist/assets/IconComponents/getIconMinusVertical.js +22 -0
- package/dist/assets/IconComponents/getIconMoreHorizontal.js +31 -0
- package/dist/assets/IconComponents/getIconNumbers.js +25 -0
- package/dist/assets/IconComponents/getIconPauseCircle.js +31 -0
- package/dist/assets/IconComponents/getIconPlus.js +31 -0
- package/dist/assets/IconComponents/getIconPresentation.js +36 -0
- package/dist/assets/IconComponents/getIconRect.js +24 -0
- package/dist/assets/IconComponents/getIconRefresh.js +31 -0
- package/dist/assets/IconComponents/getIconRefreshRepeatLarge.js +25 -0
- package/dist/assets/IconComponents/getIconReportAnalytics.js +31 -0
- package/dist/assets/IconComponents/getIconReportMoney.js +29 -0
- package/dist/assets/IconComponents/getIconReportOff.js +23 -0
- package/dist/assets/IconComponents/getIconReqWizAdditionalFundingLarge.js +28 -0
- package/dist/assets/IconComponents/getIconReqWizExtendFundingLarge.js +28 -0
- package/dist/assets/IconComponents/getIconReqWizJobLarge.js +32 -0
- package/dist/assets/IconComponents/getIconReqWizPauseFundingLarge.js +60 -0
- package/dist/assets/IconComponents/getIconReqWizScientificNetworkLarge.js +35 -0
- package/dist/assets/IconComponents/getIconReqWizStayAbroadLarge.js +31 -0
- package/dist/assets/IconComponents/getIconReqWizStudyDataLarge.js +31 -0
- package/dist/assets/IconComponents/getIconReqWizSubsequentFundingLarge.js +26 -0
- package/dist/assets/IconComponents/getIconReqWizWorldGraduateCapLarge copy.js +31 -0
- package/dist/assets/IconComponents/getIconReqWizWorldGraduateCapLarge.js +31 -0
- package/dist/assets/IconComponents/getIconRequestLarge.js +28 -0
- package/dist/assets/IconComponents/getIconRingChart.js +25 -0
- package/dist/assets/IconComponents/getIconRotate.js +17 -0
- package/dist/assets/IconComponents/getIconSearch.js +26 -0
- package/dist/assets/IconComponents/getIconSearchLarger.js +25 -0
- package/dist/assets/IconComponents/getIconSearchReverse.js +25 -0
- package/dist/assets/IconComponents/getIconSetting.js +33 -0
- package/dist/assets/IconComponents/getIconSortAscending.js +39 -0
- package/dist/assets/IconComponents/getIconSortDescending.js +39 -0
- package/dist/assets/IconComponents/getIconStar.js +22 -0
- package/dist/assets/IconComponents/getIconSum.js +19 -0
- package/dist/assets/IconComponents/getIconSupervisory.js +51 -0
- package/dist/assets/IconComponents/getIconThumbDown.js +19 -0
- package/dist/assets/IconComponents/getIconThumbUp.js +19 -0
- package/dist/assets/IconComponents/getIconTrash.js +37 -0
- package/dist/assets/IconComponents/getIconTriangle.js +19 -0
- package/dist/assets/IconComponents/getIconTriangleInverted.js +19 -0
- package/dist/assets/IconComponents/getIconUpload.js +31 -0
- package/dist/assets/IconComponents/getIconUploadCloud.js +37 -0
- package/dist/assets/IconComponents/getIconUploadLarge.js +26 -0
- package/dist/assets/IconComponents/getIconUser.js +19 -0
- package/dist/assets/IconComponents/getIconUserCheck.js +25 -0
- package/dist/assets/IconComponents/getIconUserCircle.js +31 -0
- package/dist/assets/IconComponents/getIconUserLarge.js +26 -0
- package/dist/assets/IconComponents/getIconUserOff.js +26 -0
- package/dist/assets/IconComponents/getIconWoman.js +33 -0
- package/dist/assets/IconComponents/getIconWriteNote.js +31 -0
- package/dist/assets/IconComponents/getIconWriteNoteLarge.js +27 -0
- package/dist/assets/IconComponents/getIconX.js +27 -0
- package/dist/assets/IconComponents/getIconZoomMoney.js +45 -0
- package/dist/assets/IconMapping.js +241 -0
- package/dist/hooks/ValidateComponents.js +31 -0
- package/dist/hooks/index.js +27 -0
- package/dist/hooks/infoPopUp.js +1 -0
- package/dist/hooks/useDebounceFunc.js +25 -0
- package/dist/hooks/useGetOptionList.js +41 -0
- package/dist/hooks/useValidationMessage.js +68 -0
- package/dist/hooks/withFieldGroup.js +206 -0
- package/dist/icons/AlertTriangle.js +42 -0
- package/dist/icons/InfoOutline.js +57 -0
- package/dist/icons/Verify.js +40 -0
- package/dist/index.js +2 -0
- package/dist/index.js.LICENSE.txt +32 -0
- package/dist/items/ArrayFieldset/ArrayFieldset.js +178 -0
- package/dist/items/BSRAddressSelector/BSRAddressContext.js +95 -0
- package/dist/items/BSRAddressSelector/BSRAddressResetButton.js +59 -0
- package/dist/items/BSRAddressSelector/BSRAddressSelector.js +100 -0
- package/dist/items/BSRAddressSelector/BSRAutocompleteField.js +262 -0
- package/dist/items/BSRAddressSelector/BSRStreetPlzSelector.js +127 -0
- package/dist/items/BSRAddressSelector/HouseNumberSelectField.js +105 -0
- package/dist/items/Badge/Badge.js +33 -0
- package/dist/items/BootstrapInputGroupField/BootstrapInputGroupField.js +68 -0
- package/dist/items/Button/Button.js +70 -0
- package/dist/items/Button/SubmitButton.js +39 -0
- package/dist/items/DateInputField/DateInputField.js +105 -0
- package/dist/items/DropDownButton/DropDownButton.js +101 -0
- package/dist/items/DropzoneUploadField/DropzoneUploadField.js +188 -0
- package/dist/items/DropzoneUploadField/acceptedUploadTypeMapping.js +55 -0
- package/dist/items/FieldLabel/FieldLabel.js +75 -0
- package/dist/items/FieldsetWrapper/FieldsetWrapper.js +51 -0
- package/dist/items/FormFieldWrapper/FormFieldChildPropTypes.js +64 -0
- package/dist/items/FormFieldWrapper/FormFieldWrapper.js +101 -0
- package/dist/items/FormFieldWrapper/FormFieldWrapperComponent.js +6 -0
- package/dist/items/Grid/BSRGridColumn.js +34 -0
- package/dist/items/Grid/BSRGridRow.js +28 -0
- package/dist/items/Grid/BSRGridRowCols.js +36 -0
- package/dist/items/GroupInputField/GroupInputField.js +122 -0
- package/dist/items/HTMLParserSanitized/HTMLParserSanitized.js +45 -0
- package/dist/items/Icon/Icon.js +24 -0
- package/dist/items/Modal/FormModal.js +98 -0
- package/dist/items/Modal/Modal.js +109 -0
- package/dist/items/NumberInputField/NumberInputField.js +142 -0
- package/dist/items/PictureUploadRowField/PictureUploadRowField.js +280 -0
- package/dist/items/PictureUploadRowField/acceptedUploadTypeMapping.js +55 -0
- package/dist/items/SectionSpinner/SectionSpinner.js +49 -0
- package/dist/items/SelectField/SelectField.js +67 -0
- package/dist/items/StaticAlert/StaticAlert.js +39 -0
- package/dist/items/TextAreaField/TextAreaField.js +70 -0
- package/dist/items/TextBox/TextBox.js +43 -0
- package/dist/items/TextInputField/TextInputField.js +55 -0
- package/dist/items/Toast/Toast.js +55 -0
- package/dist/items/ToggleSwitchField/ToggleSwitchField.js +84 -0
- package/dist/items/index.js +196 -0
- package/dist/styles/_ariakit_combobox.scss +279 -0
- package/dist/styles/_colors.scss +165 -0
- package/dist/styles/bootstrap-customized.scss +815 -0
- package/dist/styles/fonts/hbs-fonts/hbs-fonts.css +67 -0
- package/dist/styles/fonts/hbs-fonts/simple-bold/SimpleHBSTT-Bold.eot +0 -0
- package/dist/styles/fonts/hbs-fonts/simple-bold/SimpleHBSTT-Bold.svg +264 -0
- package/dist/styles/fonts/hbs-fonts/simple-bold/SimpleHBSTT-Bold.ttf +0 -0
- package/dist/styles/fonts/hbs-fonts/simple-bold/SimpleHBSTT-Bold.woff +0 -0
- package/dist/styles/fonts/hbs-fonts/univers/1449347/1f2c3faa-231e-4e71-aba4-b1adb03e0322.svg +4846 -0
- package/dist/styles/fonts/hbs-fonts/univers/1449347/51a2e8ba-97c4-47a9-af92-e8b379eeddbd.eot +0 -0
- package/dist/styles/fonts/hbs-fonts/univers/1449347/77019bfb-2faa-487f-97aa-b498678dc990.ttf +0 -0
- package/dist/styles/fonts/hbs-fonts/univers/1449347/89420d17-2c68-4bb3-b4d4-373b0d0f016b.woff2 +0 -0
- package/dist/styles/fonts/hbs-fonts/univers/1449347/e79b121c-bda4-4092-a565-1c29b272ef18.woff +0 -0
- package/dist/styles/fonts/hbs-fonts/univers/1449355/6baa7b6e-6971-4b5f-8129-8630113d8cb7.eot +0 -0
- package/dist/styles/fonts/hbs-fonts/univers/1449355/aab88c6b-6b75-42f0-aec5-74a5c4ed199d.woff2 +0 -0
- package/dist/styles/fonts/hbs-fonts/univers/1449355/ac6c8f47-2d16-43de-96c6-4526ab446296.woff +0 -0
- package/dist/styles/fonts/hbs-fonts/univers/1449355/cc2006cf-463d-41db-88b0-24bf58fdf832.ttf +0 -0
- package/dist/styles/fonts/hbs-fonts/univers/1449355/f6946e91-a2c4-4793-bcb2-b617d23b3b80.svg +5216 -0
- package/dist/styles/fonts/hbs-fonts/univers-condensed/1449383/1df6de95-3b72-4134-8e0f-f250931b1cb1.woff +0 -0
- package/dist/styles/fonts/hbs-fonts/univers-condensed/1449383/27bd8c18-1ca0-4a74-a175-108571bab2fc.eot +0 -0
- package/dist/styles/fonts/hbs-fonts/univers-condensed/1449383/5667db2e-a3c3-408f-ad82-3ca721a0e2e7.svg +4807 -0
- package/dist/styles/fonts/hbs-fonts/univers-condensed/1449383/8282dfe6-2f66-4a8e-bc65-669a3066eee8.ttf +0 -0
- package/dist/styles/fonts/hbs-fonts/univers-condensed/1449383/a92a459a-dc32-498f-b2dc-b761713792f4.woff2 +0 -0
- package/dist/styles/fonts/hbs-fonts/univers-condensed/1449391/14cd37b6-7bde-488e-bbba-17c5046ee4c3.svg +4666 -0
- package/dist/styles/fonts/hbs-fonts/univers-condensed/1449391/308dd9a4-aea8-4532-8c6d-a415a35f0015.woff2 +0 -0
- package/dist/styles/fonts/hbs-fonts/univers-condensed/1449391/4414ced7-592d-4fdc-8521-8bf095659b6e.eot +0 -0
- package/dist/styles/fonts/hbs-fonts/univers-condensed/1449391/9e1c34e4-257a-478b-9d35-84e680e8d373.ttf +0 -0
- package/dist/styles/fonts/hbs-fonts/univers-condensed/1449391/9f5abf71-fdd9-408f-b075-7a8a1b7c9a6e.woff +0 -0
- package/dist/styles/form.module.scss +252 -0
- package/dist/styles/main.scss +18 -0
- package/dist/styles/module-variables.scss +13 -0
- package/dist/styles/variables/_borders.scss +26 -0
- package/dist/styles/variables/_buttons.scss +147 -0
- package/dist/styles/variables/_colors.scss +109 -0
- package/dist/styles/variables/_focus.scss +9 -0
- package/dist/styles/variables/_fonts.scss +101 -0
- package/dist/styles/variables/_gaps.scss +26 -0
- package/dist/styles/variables/_images.scss +18 -0
- package/dist/styles/variables/_responsive.scss +23 -0
- package/dist/styles/variables/_shadows.scss +5 -0
- package/dist/styles/variables/_variables.scss +14 -0
- package/dist/styles/variables.scss +75 -0
- package/dist/utils/getUikitClassNames.js +19 -0
- package/dist/utils/index.js +16 -0
- package/dist/utils/isWindowAvailable.js +9 -0
- package/dist/utils/objectHelpers.js +43 -0
- package/notes.txt +5 -0
- package/package.json +111 -0
- package/webpack.config.js +99 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _formBuilder = require("@pinuts/form-builder");
|
|
10
|
+
var _Modal = _interopRequireDefault(require("react-bootstrap/Modal"));
|
|
11
|
+
var _reactI18next = require("react-i18next");
|
|
12
|
+
var _Button = _interopRequireDefault(require("../Button/Button.jsx"));
|
|
13
|
+
var _ModalModule = _interopRequireDefault(require("./Modal.module.scss"));
|
|
14
|
+
var _Icon = _interopRequireDefault(require("../Icon/Icon.jsx"));
|
|
15
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
17
|
+
const {
|
|
18
|
+
getClassNames
|
|
19
|
+
} = _formBuilder.utils;
|
|
20
|
+
const {
|
|
21
|
+
useUniqueIds
|
|
22
|
+
} = _formBuilder.hooks;
|
|
23
|
+
const Modal = (_ref, props) => {
|
|
24
|
+
let {
|
|
25
|
+
isOpen,
|
|
26
|
+
isAlert = false,
|
|
27
|
+
onHide,
|
|
28
|
+
onSubmit,
|
|
29
|
+
submitButtonText,
|
|
30
|
+
closeButtonText,
|
|
31
|
+
headerProps,
|
|
32
|
+
bodyProps,
|
|
33
|
+
footerProps,
|
|
34
|
+
noClose = false
|
|
35
|
+
} = _ref;
|
|
36
|
+
const {
|
|
37
|
+
t
|
|
38
|
+
} = (0, _reactI18next.useTranslation)();
|
|
39
|
+
const uniqueId = useUniqueIds('modal');
|
|
40
|
+
return /*#__PURE__*/_react.default.createElement(_Modal.default, _extends({}, props, {
|
|
41
|
+
show: isOpen,
|
|
42
|
+
size: "lg"
|
|
43
|
+
}, headerProps.title && {
|
|
44
|
+
'aria-labelledby': uniqueId.fieldId
|
|
45
|
+
}, {
|
|
46
|
+
centered: true,
|
|
47
|
+
onEscapeKeyDown: noClose ? undefined : onHide,
|
|
48
|
+
className: _ModalModule.default.modalOuter,
|
|
49
|
+
backdrop: "static",
|
|
50
|
+
role: isAlert ? ' ' : 'dialog'
|
|
51
|
+
}), /*#__PURE__*/_react.default.createElement("div", null, headerProps.title && /*#__PURE__*/_react.default.createElement(_Modal.default.Header, {
|
|
52
|
+
className: getClassNames([headerProps.className, noClose ? '' : 'd-flex ', 'p-relative w-100'])
|
|
53
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
54
|
+
className: _ModalModule.default.headerInnerWrap
|
|
55
|
+
}, /*#__PURE__*/_react.default.createElement("h2", {
|
|
56
|
+
id: uniqueId.fieldId,
|
|
57
|
+
className: "w-100"
|
|
58
|
+
}, headerProps.title), !noClose && /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
59
|
+
ariaLabel: t('bsrModal.closeButton'),
|
|
60
|
+
onClick: onHide,
|
|
61
|
+
color: "hbs-white",
|
|
62
|
+
rounded: true
|
|
63
|
+
}, /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
64
|
+
color: "white",
|
|
65
|
+
className: _ModalModule.default.closeButtonIcon,
|
|
66
|
+
icon: "x"
|
|
67
|
+
}))))), /*#__PURE__*/_react.default.createElement(_Modal.default.Body, {
|
|
68
|
+
className: getClassNames([bodyProps.className])
|
|
69
|
+
}, bodyProps.children), footerProps && /*#__PURE__*/_react.default.createElement(_Modal.default.Footer, {
|
|
70
|
+
className: getClassNames([footerProps.className])
|
|
71
|
+
}, footerProps.children ? /*#__PURE__*/_react.default.createElement("div", {
|
|
72
|
+
className: "row justify-content-center w-100"
|
|
73
|
+
}, footerProps.children) : /*#__PURE__*/_react.default.createElement("div", {
|
|
74
|
+
className: "row justify-content-center w-100"
|
|
75
|
+
}, closeButtonText && /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
76
|
+
className: "col-4 m-1",
|
|
77
|
+
color: "tuerkis-20",
|
|
78
|
+
onClick: onHide,
|
|
79
|
+
ariaLabel: t(closeButtonText)
|
|
80
|
+
}, t(closeButtonText)), submitButtonText && /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
81
|
+
className: "col-4 m-1",
|
|
82
|
+
color: "hbs-blau",
|
|
83
|
+
onClick: onSubmit || onHide,
|
|
84
|
+
ariaLabel: t(submitButtonText)
|
|
85
|
+
}, t(submitButtonText)))));
|
|
86
|
+
};
|
|
87
|
+
Modal.propTypes = {
|
|
88
|
+
noClose: _propTypes.default.bool,
|
|
89
|
+
closeButtonText: _propTypes.default.string,
|
|
90
|
+
submitButtonText: _propTypes.default.string,
|
|
91
|
+
headerProps: _propTypes.default.shape({
|
|
92
|
+
title: _propTypes.default.string.isRequired,
|
|
93
|
+
children: _propTypes.default.node,
|
|
94
|
+
className: _propTypes.default.string
|
|
95
|
+
}),
|
|
96
|
+
bodyProps: _propTypes.default.shape({
|
|
97
|
+
children: _propTypes.default.node,
|
|
98
|
+
className: _propTypes.default.string
|
|
99
|
+
}),
|
|
100
|
+
footerProps: _propTypes.default.shape({
|
|
101
|
+
children: _propTypes.default.node,
|
|
102
|
+
className: _propTypes.default.string
|
|
103
|
+
}),
|
|
104
|
+
isAlert: _propTypes.default.bool,
|
|
105
|
+
isOpen: _propTypes.default.bool,
|
|
106
|
+
onHide: _propTypes.default.func,
|
|
107
|
+
onSubmit: _propTypes.default.func
|
|
108
|
+
};
|
|
109
|
+
var _default = exports.default = Modal;
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _formBuilder = require("@pinuts/form-builder");
|
|
10
|
+
var _getUikitClassNames = require("../../utils/getUikitClassNames.js");
|
|
11
|
+
var _FormFieldChildPropTypes = _interopRequireDefault(require("../FormFieldWrapper/FormFieldChildPropTypes.jsx"));
|
|
12
|
+
var _FormFieldWrapper = _interopRequireDefault(require("../FormFieldWrapper/FormFieldWrapper.jsx"));
|
|
13
|
+
var _withFieldGroup = _interopRequireDefault(require("../../hooks/withFieldGroup.jsx"));
|
|
14
|
+
var _Button = _interopRequireDefault(require("../Button/Button.jsx"));
|
|
15
|
+
var _Icon = _interopRequireDefault(require("../Icon/Icon.jsx"));
|
|
16
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
17
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
18
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } // form-builder
|
|
20
|
+
const {
|
|
21
|
+
getClassNames
|
|
22
|
+
} = _formBuilder.utils;
|
|
23
|
+
const countDecimalPlaces = number => {
|
|
24
|
+
if (Math.floor(number) === number) return 0; // Wenn die Zahl eine ganze Zahl ist, gibt es keine Nachkommastellen
|
|
25
|
+
|
|
26
|
+
// Konvertiere die Zahl in einen String und finde die Stelle des Dezimaltrennzeichens
|
|
27
|
+
const decimalString = number.toString();
|
|
28
|
+
const decimalIndex = decimalString.indexOf('.');
|
|
29
|
+
|
|
30
|
+
// Wenn das Dezimaltrennzeichen nicht gefunden wurde, gibt es keine Nachkommastellen
|
|
31
|
+
if (decimalIndex === -1) return 0;
|
|
32
|
+
|
|
33
|
+
// Ansonsten berechne die Anzahl der Nachkommastellen
|
|
34
|
+
return decimalString.length - decimalIndex - 1;
|
|
35
|
+
};
|
|
36
|
+
const getCorrectNumberWithStep = (newValue, step) => Number.isInteger(step) ? newValue : newValue.toFixed(countDecimalPlaces(step));
|
|
37
|
+
const NumberInputField = _ref => {
|
|
38
|
+
let {
|
|
39
|
+
className,
|
|
40
|
+
inputProps = {},
|
|
41
|
+
value,
|
|
42
|
+
field,
|
|
43
|
+
onChange = () => {},
|
|
44
|
+
ariaAttributes,
|
|
45
|
+
isInvalid,
|
|
46
|
+
readOnly,
|
|
47
|
+
disabled,
|
|
48
|
+
viewMode,
|
|
49
|
+
step = 1,
|
|
50
|
+
min = 0,
|
|
51
|
+
max = 1000
|
|
52
|
+
} = _ref;
|
|
53
|
+
const [numberValue, setNumberValue] = (0, _react.useState)(() => parseFloat(value || 0, 10));
|
|
54
|
+
(0, _react.useEffect)(() => setNumberValue(parseFloat(value || 0, 10)), [value]);
|
|
55
|
+
const usedChangeHandler = (0, _react.useMemo)(() => readOnly || disabled ? () => {} : newValue => {
|
|
56
|
+
const usedNewValue = getCorrectNumberWithStep(parseFloat(newValue, 10), step);
|
|
57
|
+
if (newValue >= parseFloat(min, 10) && newValue <= parseFloat(max, 10)) {
|
|
58
|
+
// Wenn value nicht rein gereicht wird, müssen wir den State selbst setzen, ansonsten übernimmt dies der useEffect
|
|
59
|
+
if (value === undefined) {
|
|
60
|
+
setNumberValue(usedNewValue);
|
|
61
|
+
}
|
|
62
|
+
onChange(usedNewValue);
|
|
63
|
+
}
|
|
64
|
+
}, [readOnly, disabled, onChange, value, step, min, max]);
|
|
65
|
+
const increment = (0, _react.useCallback)(event => {
|
|
66
|
+
event.preventDefault();
|
|
67
|
+
event.stopPropagation();
|
|
68
|
+
usedChangeHandler(parseFloat(numberValue, 10) + parseFloat(step, 10));
|
|
69
|
+
}, [numberValue, usedChangeHandler, step]);
|
|
70
|
+
const decrement = (0, _react.useCallback)(event => {
|
|
71
|
+
event.preventDefault();
|
|
72
|
+
event.stopPropagation();
|
|
73
|
+
usedChangeHandler(parseFloat(numberValue, 10) - parseFloat(step, 10));
|
|
74
|
+
}, [numberValue, usedChangeHandler, step]);
|
|
75
|
+
const handleInputChange = event => usedChangeHandler(event.target.value);
|
|
76
|
+
if (viewMode) {
|
|
77
|
+
return numberValue;
|
|
78
|
+
}
|
|
79
|
+
const formControlClassNames = (0, _getUikitClassNames.getFormControlClassNames)(isInvalid, readOnly, disabled, className);
|
|
80
|
+
const buttonInputProps = {
|
|
81
|
+
tabIndex: -1,
|
|
82
|
+
'aria-hidden': true,
|
|
83
|
+
style: {
|
|
84
|
+
width: '40px',
|
|
85
|
+
height: '40px'
|
|
86
|
+
},
|
|
87
|
+
disabled,
|
|
88
|
+
'aria-disabled': disabled,
|
|
89
|
+
readOnly,
|
|
90
|
+
'aria-readonly': readOnly
|
|
91
|
+
};
|
|
92
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
93
|
+
className: "d-flex flex-row"
|
|
94
|
+
}, /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
95
|
+
color: "tuerkis-20",
|
|
96
|
+
circular: true,
|
|
97
|
+
onClick: decrement,
|
|
98
|
+
ariaLabel: "" // Button is hidden from screenreaders
|
|
99
|
+
,
|
|
100
|
+
inputProps: buttonInputProps
|
|
101
|
+
}, /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
102
|
+
icon: "minus",
|
|
103
|
+
height: "16",
|
|
104
|
+
width: "16"
|
|
105
|
+
})), /*#__PURE__*/_react.default.createElement("input", _extends({
|
|
106
|
+
className: getClassNames(['mx-2 ps-4', formControlClassNames]),
|
|
107
|
+
type: "number",
|
|
108
|
+
step: step
|
|
109
|
+
}, field, ariaAttributes, inputProps, {
|
|
110
|
+
value: value === '' ? '' : numberValue,
|
|
111
|
+
min: min,
|
|
112
|
+
max: max,
|
|
113
|
+
onChange: handleInputChange,
|
|
114
|
+
inputMode: "numeric"
|
|
115
|
+
})), /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
116
|
+
color: "tuerkis-20",
|
|
117
|
+
circular: true,
|
|
118
|
+
onClick: increment,
|
|
119
|
+
ariaLabel: "" // Button is hidden from screenreaders
|
|
120
|
+
,
|
|
121
|
+
inputProps: buttonInputProps
|
|
122
|
+
}, /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
123
|
+
icon: "plus",
|
|
124
|
+
height: "16",
|
|
125
|
+
width: "16"
|
|
126
|
+
})));
|
|
127
|
+
};
|
|
128
|
+
NumberInputField.propTypes = {
|
|
129
|
+
..._FormFieldChildPropTypes.default,
|
|
130
|
+
step: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
|
|
131
|
+
max: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
|
|
132
|
+
min: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number])
|
|
133
|
+
};
|
|
134
|
+
const HigherOrderNumberInputField = (0, _withFieldGroup.default)(NumberInputField);
|
|
135
|
+
|
|
136
|
+
// wrap the field label, error message help text and more
|
|
137
|
+
const WrappedNumberInputField = props => {
|
|
138
|
+
return /*#__PURE__*/_react.default.createElement(_FormFieldWrapper.default, props, /*#__PURE__*/_react.default.createElement(HigherOrderNumberInputField, props));
|
|
139
|
+
};
|
|
140
|
+
(0, _formBuilder.registerComponent)('NumberInputField', WrappedNumberInputField);
|
|
141
|
+
(0, _formBuilder.registerComponent)('NumberInputFieldBasic', HigherOrderNumberInputField);
|
|
142
|
+
var _default = exports.default = HigherOrderNumberInputField;
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _reactDropzone = require("react-dropzone");
|
|
10
|
+
var _formBuilder = require("@pinuts/form-builder");
|
|
11
|
+
var _reactI18next = require("react-i18next");
|
|
12
|
+
var _FormFieldChildPropTypes = _interopRequireDefault(require("../FormFieldWrapper/FormFieldChildPropTypes.jsx"));
|
|
13
|
+
var _FormFieldWrapper = _interopRequireDefault(require("../FormFieldWrapper/FormFieldWrapper.jsx"));
|
|
14
|
+
var _withFieldGroup = _interopRequireDefault(require("../../hooks/withFieldGroup.jsx"));
|
|
15
|
+
var _Icon = _interopRequireDefault(require("../Icon/Icon.jsx"));
|
|
16
|
+
var _PictureUploadRowFieldModule = _interopRequireDefault(require("./PictureUploadRowField.module.scss"));
|
|
17
|
+
var _acceptedUploadTypeMapping = require("./acceptedUploadTypeMapping.js");
|
|
18
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
19
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
20
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
21
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } // form-builder
|
|
22
|
+
const {
|
|
23
|
+
useField,
|
|
24
|
+
useFormikContext
|
|
25
|
+
} = _formBuilder.formik;
|
|
26
|
+
const {
|
|
27
|
+
getClassNames
|
|
28
|
+
} = _formBuilder.utils;
|
|
29
|
+
|
|
30
|
+
//accept-prop needs an object mit mimeType as keys and an array of file extensions as values
|
|
31
|
+
const getFormattedAcceptesFileTypes = acceptedFileTypes => acceptedFileTypes?.reduce((newObj, type) => _acceptedUploadTypeMapping.ACCEPTED_UPLOAD_TYPE_MAPPING?.[type] ? {
|
|
32
|
+
...newObj,
|
|
33
|
+
[type]: _acceptedUploadTypeMapping.ACCEPTED_UPLOAD_TYPE_MAPPING[type] || []
|
|
34
|
+
} : newObj, {});
|
|
35
|
+
const PictureUploadRowField = _ref => {
|
|
36
|
+
let {
|
|
37
|
+
viewMode,
|
|
38
|
+
field,
|
|
39
|
+
ariaAttributes,
|
|
40
|
+
isInvalid,
|
|
41
|
+
readOnly,
|
|
42
|
+
disabled,
|
|
43
|
+
fieldIds,
|
|
44
|
+
uploadConfig
|
|
45
|
+
} = _ref;
|
|
46
|
+
// eslint-disable-next-line no-unused-vars
|
|
47
|
+
const [formikField, _meta, helpers] = useField(field.name);
|
|
48
|
+
const [t] = (0, _reactI18next.useTranslation)();
|
|
49
|
+
const usedViewMode = (0, _react.useMemo)(() => readOnly || disabled || viewMode, [readOnly, disabled, viewMode]);
|
|
50
|
+
const {
|
|
51
|
+
status,
|
|
52
|
+
setStatus
|
|
53
|
+
} = useFormikContext();
|
|
54
|
+
const [previewFiles, setPreviewFiles] = (0, _react.useState)([]); // State to hold the files and previews
|
|
55
|
+
|
|
56
|
+
(0, _react.useEffect)(() => {
|
|
57
|
+
if (formikField.value && formikField.value.length > 0 && previewFiles.length === 0) {
|
|
58
|
+
const initFiles = formikField.value.map(file => Object.assign(file, {
|
|
59
|
+
preview: URL.createObjectURL(file)
|
|
60
|
+
}));
|
|
61
|
+
setPreviewFiles(initFiles);
|
|
62
|
+
}
|
|
63
|
+
}, [formikField.value, previewFiles.length]);
|
|
64
|
+
const uploadFilesToUM = (0, _react.useCallback)(async uploadFiles => {
|
|
65
|
+
const successfulUploads = [];
|
|
66
|
+
for (const file of uploadFiles) {
|
|
67
|
+
const formData = new FormData();
|
|
68
|
+
formData.append(file.name, file);
|
|
69
|
+
if (uploadConfig) {
|
|
70
|
+
formData.append('uploadConfig', JSON.stringify(uploadConfig));
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
// eslint-disable-next-line no-await-in-loop
|
|
74
|
+
const response = await fetch(uploadConfig.uploadPath, {
|
|
75
|
+
method: 'POST',
|
|
76
|
+
body: formData,
|
|
77
|
+
headers: {
|
|
78
|
+
'X-CSRF-Safe': 'Yes'
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
if (response.ok) {
|
|
82
|
+
// eslint-disable-next-line no-await-in-loop
|
|
83
|
+
const data = await response.json();
|
|
84
|
+
if (data && data.success && data.files && data.files.length > 0) {
|
|
85
|
+
successfulUploads.push(...data.files);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
} catch (error) {
|
|
89
|
+
console.error('Upload error for file:', file.name, error);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return successfulUploads;
|
|
93
|
+
}, [uploadConfig]);
|
|
94
|
+
const onChange = (0, _react.useCallback)(async acceptedFiles => {
|
|
95
|
+
const uploadableFiles = [...previewFiles, ...acceptedFiles.map(file => Object.assign(file, {
|
|
96
|
+
preview: URL.createObjectURL(file)
|
|
97
|
+
}))];
|
|
98
|
+
const uploadedFiles = await uploadFilesToUM(uploadableFiles);
|
|
99
|
+
if (uploadedFiles) {
|
|
100
|
+
const filteredUploadableFiles = uploadableFiles.map(uploadableFile => {
|
|
101
|
+
const found = uploadedFiles.find(uploadedFile => uploadedFile.name === uploadableFile.name);
|
|
102
|
+
if (found) {
|
|
103
|
+
const mergedObject = uploadableFile;
|
|
104
|
+
mergedObject.uuid = found.uuid;
|
|
105
|
+
return mergedObject;
|
|
106
|
+
}
|
|
107
|
+
return uploadableFile;
|
|
108
|
+
}).filter(uploadableFile => {
|
|
109
|
+
return uploadedFiles.some(uploadedFile => uploadedFile.name === uploadableFile.name);
|
|
110
|
+
});
|
|
111
|
+
setPreviewFiles(filteredUploadableFiles);
|
|
112
|
+
helpers.setTouched(true);
|
|
113
|
+
helpers.setValue(filteredUploadableFiles);
|
|
114
|
+
setStatus({
|
|
115
|
+
...status,
|
|
116
|
+
[formikField.name]: uploadedFiles
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}, [previewFiles, formikField.name, helpers, setStatus, status, uploadFilesToUM]);
|
|
120
|
+
const onDrop = (0, _react.useCallback)(acceptedFiles => {
|
|
121
|
+
onChange(acceptedFiles);
|
|
122
|
+
}, [onChange]);
|
|
123
|
+
const {
|
|
124
|
+
fileRejections,
|
|
125
|
+
getRootProps,
|
|
126
|
+
getInputProps
|
|
127
|
+
} = (0, _reactDropzone.useDropzone)({
|
|
128
|
+
onDrop: !usedViewMode ? onDrop : () => {},
|
|
129
|
+
noClick: usedViewMode || previewFiles.length >= uploadConfig.maxFiles,
|
|
130
|
+
// Disable click if view mode is used or maxFiles limit is reached
|
|
131
|
+
noKeyboard: usedViewMode,
|
|
132
|
+
accept: getFormattedAcceptesFileTypes(uploadConfig.acceptedFileTypes || []) || {},
|
|
133
|
+
maxFiles: uploadConfig.maxFiles,
|
|
134
|
+
maxSize: uploadConfig.maxSize
|
|
135
|
+
});
|
|
136
|
+
const removeFile = async (e, index, uuid) => {
|
|
137
|
+
e.preventDefault();
|
|
138
|
+
e.stopPropagation();
|
|
139
|
+
try {
|
|
140
|
+
const response = await fetch(`${uploadConfig.deletePath}/${uuid}`, {
|
|
141
|
+
method: 'DELETE',
|
|
142
|
+
headers: {
|
|
143
|
+
'X-CSRF-Safe': 'Yes'
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
if (response.ok) {
|
|
147
|
+
const data = await response.json();
|
|
148
|
+
if (data && data.success) {
|
|
149
|
+
setPreviewFiles(previewFiles.filter((file, i) => i !== index));
|
|
150
|
+
helpers.setTouched(true);
|
|
151
|
+
if (status[formikField.name]) {
|
|
152
|
+
setStatus({
|
|
153
|
+
...status,
|
|
154
|
+
[formikField.name]: null
|
|
155
|
+
});
|
|
156
|
+
} else {
|
|
157
|
+
helpers.setValue('');
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
} catch (error) {
|
|
162
|
+
console.error('Error removing file by uuid:', uuid, error);
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
const fileRejectionItems = fileRejections.map(_ref2 => {
|
|
166
|
+
let {
|
|
167
|
+
file,
|
|
168
|
+
errors
|
|
169
|
+
} = _ref2;
|
|
170
|
+
return /*#__PURE__*/_react.default.createElement("li", {
|
|
171
|
+
key: file.path,
|
|
172
|
+
className: 'filename'
|
|
173
|
+
}, file.name, ' ', "-", Math.floor(file.size / 1024), ' ', "kb", /*#__PURE__*/_react.default.createElement("ul", null, errors.map(e => /*#__PURE__*/_react.default.createElement("li", {
|
|
174
|
+
key: e.code,
|
|
175
|
+
className: 'errorMsg'
|
|
176
|
+
}, t(`bsrItems.DropzoneUploadField.${e.code}`, {
|
|
177
|
+
maxFiles: uploadConfig.maxFiles,
|
|
178
|
+
maxFileSize: uploadConfig.maxSize / 1000000
|
|
179
|
+
})))));
|
|
180
|
+
});
|
|
181
|
+
const createThumbs = () => {
|
|
182
|
+
if (viewMode && field.value.length > 0) {
|
|
183
|
+
const uuids = field.value.map(file => file.uuid);
|
|
184
|
+
return uuids.map(uuid => {
|
|
185
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
186
|
+
className: _PictureUploadRowFieldModule.default.thumb,
|
|
187
|
+
key: uuid
|
|
188
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
189
|
+
className: _PictureUploadRowFieldModule.default.thumbInner
|
|
190
|
+
}, /*#__PURE__*/_react.default.createElement("img", {
|
|
191
|
+
src: uploadConfig.previewPath.replace(':uuid', uuid),
|
|
192
|
+
alt: '',
|
|
193
|
+
className: _PictureUploadRowFieldModule.default.img
|
|
194
|
+
})));
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
return previewFiles.map((file, index) => {
|
|
198
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
199
|
+
className: _PictureUploadRowFieldModule.default.thumb,
|
|
200
|
+
key: file.name
|
|
201
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
202
|
+
className: _PictureUploadRowFieldModule.default.thumbInner
|
|
203
|
+
}, /*#__PURE__*/_react.default.createElement("img", {
|
|
204
|
+
src: file.preview,
|
|
205
|
+
alt: '',
|
|
206
|
+
className: _PictureUploadRowFieldModule.default.img,
|
|
207
|
+
onLoad: () => {
|
|
208
|
+
URL.revokeObjectURL(file.preview);
|
|
209
|
+
}
|
|
210
|
+
}), /*#__PURE__*/_react.default.createElement("button", {
|
|
211
|
+
type: "button",
|
|
212
|
+
"aria-label": 'Ausgewählte Datei entfernen',
|
|
213
|
+
className: `${_PictureUploadRowFieldModule.default.deleteBtn}`,
|
|
214
|
+
onClick: e => removeFile(e, index, file.uuid)
|
|
215
|
+
}, /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
216
|
+
icon: "trash",
|
|
217
|
+
height: "12",
|
|
218
|
+
width: "12",
|
|
219
|
+
stroke: '#fff'
|
|
220
|
+
}))));
|
|
221
|
+
});
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
// Cleanup previews on unmount
|
|
225
|
+
(0, _react.useEffect)(() => {
|
|
226
|
+
return () => previewFiles.forEach(file => URL.revokeObjectURL(file.preview));
|
|
227
|
+
}, [previewFiles]);
|
|
228
|
+
return /*#__PURE__*/_react.default.createElement("section", {
|
|
229
|
+
className: getClassNames(['container-fluid', _PictureUploadRowFieldModule.default.dropZoneWrapper, isInvalid && _PictureUploadRowFieldModule.default.isInvalid
|
|
230
|
+
// usedViewMode && styles.disabled,
|
|
231
|
+
]),
|
|
232
|
+
"aria-labelledby": fieldIds.label
|
|
233
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
234
|
+
className: "d-flex justify-content-between"
|
|
235
|
+
}, /*#__PURE__*/_react.default.createElement("div", getRootProps({
|
|
236
|
+
onDrop,
|
|
237
|
+
className: getClassNames(['dropzone', 'flex-fill', _PictureUploadRowFieldModule.default.fakeButton]),
|
|
238
|
+
role: 'button',
|
|
239
|
+
'aria-disabled': usedViewMode || previewFiles.length >= uploadConfig.maxFiles,
|
|
240
|
+
// Reflect disabled state in ARIA attributes
|
|
241
|
+
tabIndex: usedViewMode ? '-1' : '0',
|
|
242
|
+
...ariaAttributes,
|
|
243
|
+
'aria-controls': fieldIds.fieldId,
|
|
244
|
+
'aria-labelledby': ''
|
|
245
|
+
}), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("input", _extends({}, getInputProps({
|
|
246
|
+
id: fieldIds.fieldId
|
|
247
|
+
}), {
|
|
248
|
+
accept: uploadConfig.acceptedFileTypes?.join(',')
|
|
249
|
+
})), /*#__PURE__*/_react.default.createElement("aside", {
|
|
250
|
+
className: `${_PictureUploadRowFieldModule.default.thumbsContainer} d-flex`
|
|
251
|
+
}, createThumbs(), previewFiles.length < uploadConfig.maxFiles && /*#__PURE__*/_react.default.createElement("div", {
|
|
252
|
+
className: _PictureUploadRowFieldModule.default.addBtnContainer
|
|
253
|
+
}, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
254
|
+
icon: usedViewMode ? 'lock' : 'circlePlus',
|
|
255
|
+
height: "24",
|
|
256
|
+
width: "24",
|
|
257
|
+
className: ""
|
|
258
|
+
}))))))), /*#__PURE__*/_react.default.createElement("ul", null, fileRejectionItems));
|
|
259
|
+
};
|
|
260
|
+
PictureUploadRowField.propTypes = {
|
|
261
|
+
..._FormFieldChildPropTypes.default,
|
|
262
|
+
acceptedFileTypes: _propTypes.default.arrayOf(_propTypes.default.string),
|
|
263
|
+
localeRejected: _propTypes.default.string,
|
|
264
|
+
onChange: _propTypes.default.func,
|
|
265
|
+
key: _propTypes.default.string,
|
|
266
|
+
maxFiles: _propTypes.default.number
|
|
267
|
+
};
|
|
268
|
+
PictureUploadRowField.formFieldConfig = {
|
|
269
|
+
labelIsLegend: true,
|
|
270
|
+
isFieldset: true
|
|
271
|
+
};
|
|
272
|
+
const HigherOrderDropzoneUploadField = (0, _withFieldGroup.default)(PictureUploadRowField);
|
|
273
|
+
|
|
274
|
+
// wrap the field label, error message help text and more
|
|
275
|
+
const WrappedPictureUploadRowField = props => {
|
|
276
|
+
return /*#__PURE__*/_react.default.createElement(_FormFieldWrapper.default, props, /*#__PURE__*/_react.default.createElement(HigherOrderDropzoneUploadField, props));
|
|
277
|
+
};
|
|
278
|
+
(0, _formBuilder.registerComponent)('PictureUploadRowField', WrappedPictureUploadRowField);
|
|
279
|
+
(0, _formBuilder.registerComponent)('PictureUploadRowFieldBasic', HigherOrderDropzoneUploadField);
|
|
280
|
+
var _default = exports.default = HigherOrderDropzoneUploadField;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.ACCEPTED_UPLOAD_TYPE_MAPPING = void 0;
|
|
7
|
+
const ACCEPTED_UPLOAD_TYPE_MAPPING = exports.ACCEPTED_UPLOAD_TYPE_MAPPING = {
|
|
8
|
+
// General file formats
|
|
9
|
+
'text/plain': ['.txt', '.text', '.log'],
|
|
10
|
+
'text/html': ['.html', '.htm'],
|
|
11
|
+
'text/css': ['.css'],
|
|
12
|
+
'text/csv': ['.csv'],
|
|
13
|
+
'application/pdf': ['.pdf'],
|
|
14
|
+
'application/rtf': ['.rtf'],
|
|
15
|
+
'application/xml': ['.xml'],
|
|
16
|
+
'application/json': ['.json'],
|
|
17
|
+
'application/zip': ['.zip'],
|
|
18
|
+
'application/x-7z-compressed': ['.7z'],
|
|
19
|
+
'application/x-rar-compressed': ['.rar'],
|
|
20
|
+
'application/msword': ['.doc'],
|
|
21
|
+
'application/vnd.openxmlformats-officedocument.wordprocessingml.document': ['.docx', '.docm'],
|
|
22
|
+
'application/vnd.ms-excel': ['.xls'],
|
|
23
|
+
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': ['.xlsx', '.xlsm'],
|
|
24
|
+
'application/vnd.ms-powerpoint': ['.ppt'],
|
|
25
|
+
'application/vnd.openxmlformats-officedocument.presentationml.presentation': ['.pptx', '.pptm'],
|
|
26
|
+
'application/vnd.oasis.opendocument.text': ['.odt'],
|
|
27
|
+
'application/vnd.oasis.opendocument.spreadsheet': ['.ods'],
|
|
28
|
+
'application/vnd.oasis.opendocument.presentation': ['.odp'],
|
|
29
|
+
'application/vnd.ms-outlook': ['.msg'],
|
|
30
|
+
'message/rfc822': ['.eml'],
|
|
31
|
+
// Image formats
|
|
32
|
+
'image/png': ['.png'],
|
|
33
|
+
'image/jpeg': ['.jpeg', '.jpg'],
|
|
34
|
+
'image/gif': ['.gif'],
|
|
35
|
+
'image/webp': ['.webp'],
|
|
36
|
+
'image/bmp': ['.bmp'],
|
|
37
|
+
'image/svg+xml': ['.svg'],
|
|
38
|
+
'image/tiff': ['.tiff', '.tif'],
|
|
39
|
+
// Audio formats
|
|
40
|
+
'audio/mpeg': ['.mp3'],
|
|
41
|
+
'audio/wav': ['.wav'],
|
|
42
|
+
'audio/ogg': ['.ogg'],
|
|
43
|
+
'audio/flac': ['.flac'],
|
|
44
|
+
'audio/aac': ['.aac'],
|
|
45
|
+
'audio/x-ms-wma': ['.wma'],
|
|
46
|
+
// Video formats
|
|
47
|
+
'video/mp4': ['.mp4'],
|
|
48
|
+
'video/x-msvideo': ['.avi'],
|
|
49
|
+
'video/x-matroska': ['.mkv'],
|
|
50
|
+
'video/quicktime': ['.mov'],
|
|
51
|
+
'video/webm': ['.webm'],
|
|
52
|
+
'video/x-flv': ['.flv'],
|
|
53
|
+
'video/x-ms-wmv': ['.wmv']
|
|
54
|
+
};
|
|
55
|
+
var _default = exports.default = ACCEPTED_UPLOAD_TYPE_MAPPING;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _Spinner = _interopRequireDefault(require("react-bootstrap/Spinner"));
|
|
10
|
+
var _formBuilder = require("@pinuts/form-builder");
|
|
11
|
+
var _reactI18next = require("react-i18next");
|
|
12
|
+
var _FormFieldChildPropTypes = _interopRequireDefault(require("../FormFieldWrapper/FormFieldChildPropTypes.jsx"));
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
15
|
+
const SectionSpinner = _ref => {
|
|
16
|
+
let {
|
|
17
|
+
className,
|
|
18
|
+
inputProps = {},
|
|
19
|
+
label = 'Lädt gerade',
|
|
20
|
+
variant = 'primary',
|
|
21
|
+
animation = 'grow',
|
|
22
|
+
size = ''
|
|
23
|
+
} = _ref;
|
|
24
|
+
const {
|
|
25
|
+
t
|
|
26
|
+
} = (0, _reactI18next.useTranslation)();
|
|
27
|
+
return /*#__PURE__*/_react.default.createElement("div", _extends({
|
|
28
|
+
className: _formBuilder.utils.getClassNames(['container', className])
|
|
29
|
+
}, inputProps), /*#__PURE__*/_react.default.createElement("div", {
|
|
30
|
+
className: "row justify-content-center"
|
|
31
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
32
|
+
className: "col-auto"
|
|
33
|
+
}, /*#__PURE__*/_react.default.createElement(_Spinner.default, {
|
|
34
|
+
animation: animation,
|
|
35
|
+
variant: variant,
|
|
36
|
+
role: "status",
|
|
37
|
+
size: size
|
|
38
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
39
|
+
className: "sr-only"
|
|
40
|
+
}, t(label), "...")))));
|
|
41
|
+
};
|
|
42
|
+
SectionSpinner.propTypes = {
|
|
43
|
+
..._FormFieldChildPropTypes.default,
|
|
44
|
+
variant: _propTypes.default.string,
|
|
45
|
+
animation: _propTypes.default.string,
|
|
46
|
+
size: _propTypes.default.string
|
|
47
|
+
};
|
|
48
|
+
(0, _formBuilder.registerComponent)('SectionSpinner', SectionSpinner);
|
|
49
|
+
var _default = exports.default = SectionSpinner;
|