@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,262 @@
|
|
|
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 _reactI18next = require("react-i18next");
|
|
11
|
+
var _react2 = require("@ariakit/react");
|
|
12
|
+
var _withFieldGroup = _interopRequireDefault(require("../../hooks/withFieldGroup.jsx"));
|
|
13
|
+
var _FormFieldWrapper = _interopRequireDefault(require("../FormFieldWrapper/FormFieldWrapper.jsx"));
|
|
14
|
+
var _index = require("../../utils/index.js");
|
|
15
|
+
var _formModule = _interopRequireDefault(require("../../styles/form.module.scss"));
|
|
16
|
+
var _BSRAddressSelectorModule = _interopRequireDefault(require("./BSRAddressSelector.module.scss"));
|
|
17
|
+
var _BSRAddressContext = require("./BSRAddressContext.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); } //FIXME this component is too complicated and probably over-engineered.
|
|
22
|
+
// simplify it :)
|
|
23
|
+
const {
|
|
24
|
+
useFormikContext,
|
|
25
|
+
useField
|
|
26
|
+
} = _formBuilder.formik;
|
|
27
|
+
let debounceTimeout = null;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Fetches options from the given URL
|
|
31
|
+
*
|
|
32
|
+
* @param url
|
|
33
|
+
* @return {({label: string, value: string}|{label: string, value: string}|{label: string, value: string}|{label: string, value: string}|{label: string, value: string})[]}
|
|
34
|
+
*/
|
|
35
|
+
const fetchOptions = async url => {
|
|
36
|
+
try {
|
|
37
|
+
const response = await fetch(url);
|
|
38
|
+
const data = await response.json();
|
|
39
|
+
return data;
|
|
40
|
+
} catch (error) {
|
|
41
|
+
console.error(error);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
const BSRAutocompleteField = _ref => {
|
|
45
|
+
let {
|
|
46
|
+
config
|
|
47
|
+
} = _ref;
|
|
48
|
+
const [t] = (0, _reactI18next.useTranslation)();
|
|
49
|
+
const {
|
|
50
|
+
scope,
|
|
51
|
+
additionalQuery,
|
|
52
|
+
labelTemplate,
|
|
53
|
+
inputProps = {},
|
|
54
|
+
key,
|
|
55
|
+
viewMode,
|
|
56
|
+
labelText,
|
|
57
|
+
groupKey,
|
|
58
|
+
disabled,
|
|
59
|
+
readOnly
|
|
60
|
+
} = config;
|
|
61
|
+
const {
|
|
62
|
+
prevSelection,
|
|
63
|
+
setPrevSelection,
|
|
64
|
+
selectedOptionId,
|
|
65
|
+
setSelectedOptionId,
|
|
66
|
+
triggerCancelCombox,
|
|
67
|
+
setTriggerCancelCombox,
|
|
68
|
+
getControllerPath
|
|
69
|
+
} = (0, _react.useContext)(_BSRAddressContext.BSRAddressContext);
|
|
70
|
+
const {
|
|
71
|
+
setFieldValue
|
|
72
|
+
} = useFormikContext();
|
|
73
|
+
const [field,, {
|
|
74
|
+
setValue
|
|
75
|
+
}] = useField(key);
|
|
76
|
+
const labelFieldKey = `${key}Label`;
|
|
77
|
+
const [labelField] = useField(labelFieldKey);
|
|
78
|
+
const usedValueLabel = labelField?.value;
|
|
79
|
+
const [fetchedOptions, setFetchedOptions] = (0, _react.useState)([]);
|
|
80
|
+
const [searchInput, setSearchInput] = (0, _react.useState)('');
|
|
81
|
+
const [selectedOption, setSelectedOption] = (0, _react.useState)({});
|
|
82
|
+
const [isFocused, setIsFocused] = (0, _react.useState)(false);
|
|
83
|
+
const preselectedItemRef = (0, _react.useRef)(null);
|
|
84
|
+
const inputRef = (0, _react.useRef)(null);
|
|
85
|
+
const mountedRef = (0, _react.useRef)(true);
|
|
86
|
+
const cancelButtonRef = (0, _react.useRef)(null);
|
|
87
|
+
const isInvalid = false;
|
|
88
|
+
const controllerPath = getControllerPath();
|
|
89
|
+
|
|
90
|
+
// nedd this to reset the combobox from outside
|
|
91
|
+
(0, _react.useEffect)(() => {
|
|
92
|
+
if (triggerCancelCombox) {
|
|
93
|
+
cancelButtonRef.current?.click();
|
|
94
|
+
setTriggerCancelCombox(false);
|
|
95
|
+
}
|
|
96
|
+
}, [cancelButtonRef, triggerCancelCombox, setTriggerCancelCombox]);
|
|
97
|
+
(0, _react.useEffect)(() => {
|
|
98
|
+
if (mountedRef) {
|
|
99
|
+
const loadData = async () => {
|
|
100
|
+
const searchQuery = selectedOptionId || searchInput;
|
|
101
|
+
const url = `${controllerPath}streetNames/?searchQuery=${encodeURIComponent(searchQuery)}`;
|
|
102
|
+
try {
|
|
103
|
+
const dataArr = await fetchOptions(url);
|
|
104
|
+
// Nur State verändern, wenn Komponente gemounted ist
|
|
105
|
+
if (mountedRef && dataArr) {
|
|
106
|
+
setFetchedOptions(dataArr);
|
|
107
|
+
}
|
|
108
|
+
} catch (error) {
|
|
109
|
+
console.error(error);
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
if (debounceTimeout) {
|
|
113
|
+
clearTimeout(debounceTimeout);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// set time out for debouncing
|
|
117
|
+
debounceTimeout = setTimeout(() => {
|
|
118
|
+
loadData();
|
|
119
|
+
}, 300);
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
123
|
+
[selectedOptionId, scope, additionalQuery, controllerPath, labelTemplate, searchInput]);
|
|
124
|
+
(0, _react.useEffect)(() => {
|
|
125
|
+
return () => {
|
|
126
|
+
mountedRef.current = false;
|
|
127
|
+
};
|
|
128
|
+
}, []);
|
|
129
|
+
const filteredOptions = fetchedOptions; // no filter for now
|
|
130
|
+
|
|
131
|
+
(0, _react.useEffect)(() => {
|
|
132
|
+
const newSelectedOption = fetchedOptions.find(option => option.value === field.value);
|
|
133
|
+
if (newSelectedOption) {
|
|
134
|
+
if (newSelectedOption.value === '') {
|
|
135
|
+
setSearchInput(searchInput);
|
|
136
|
+
setSelectedOption(newSelectedOption);
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
setSearchInput(newSelectedOption.label);
|
|
140
|
+
setSelectedOption(newSelectedOption);
|
|
141
|
+
}
|
|
142
|
+
}, [field.value, searchInput, fetchedOptions]);
|
|
143
|
+
const handleOnSelectChange = (0, _react.useCallback)(userInput => {
|
|
144
|
+
setSearchInput(userInput);
|
|
145
|
+
const newSelectedOption = filteredOptions.find(option => option.value === userInput);
|
|
146
|
+
setValue(''); // reset value
|
|
147
|
+
// set few states to the new selected option, if it exists
|
|
148
|
+
const [value, label] = newSelectedOption ? [newSelectedOption.value, newSelectedOption.label] : ['', ''];
|
|
149
|
+
setFieldValue(key, value);
|
|
150
|
+
setFieldValue(labelFieldKey, label);
|
|
151
|
+
setSelectedOption(newSelectedOption || {});
|
|
152
|
+
setSelectedOptionId(newSelectedOption?.value || '');
|
|
153
|
+
|
|
154
|
+
// keep previous selection, if new selection is empty
|
|
155
|
+
if (newSelectedOption) {
|
|
156
|
+
setPrevSelection(newSelectedOption);
|
|
157
|
+
}
|
|
158
|
+
}, [setValue, filteredOptions, key, setSearchInput, setSelectedOptionId, setFieldValue, labelFieldKey, setPrevSelection]);
|
|
159
|
+
const combobox = (0, _react2.useComboboxStore)({
|
|
160
|
+
value: selectedOption?.value === '' && (searchInput === selectedOption.label || searchInput === '') ? '' : searchInput || usedValueLabel,
|
|
161
|
+
setValue: handleOnSelectChange
|
|
162
|
+
});
|
|
163
|
+
const handleBlur = (0, _react.useCallback)(() => {
|
|
164
|
+
setSelectedOptionId('');
|
|
165
|
+
setIsFocused(false);
|
|
166
|
+
}, [setSelectedOptionId, setIsFocused]);
|
|
167
|
+
const resetValues = (0, _react.useCallback)(() => {
|
|
168
|
+
setSelectedOptionId(' ');
|
|
169
|
+
setPrevSelection({});
|
|
170
|
+
setFieldValue(key, '');
|
|
171
|
+
setFieldValue(groupKey, '');
|
|
172
|
+
setFieldValue(labelFieldKey, undefined);
|
|
173
|
+
setTimeout(() => {
|
|
174
|
+
inputRef.current.select();
|
|
175
|
+
}, 50);
|
|
176
|
+
}, [key, setFieldValue, labelFieldKey, groupKey, setSelectedOptionId, setPrevSelection]);
|
|
177
|
+
const className = (0, _react.useMemo)(() => [_BSRAddressSelectorModule.default.comboboxWrapper, 'ariakit-combobox', 'form-control px-2 py-1', isFocused && 'focused', isInvalid && 'is-invalid'].filter(Boolean).join(' '), [isFocused, isInvalid]);
|
|
178
|
+
const formControlClassNames = (0, _index.getFormControlClassNames)(disabled, readOnly, disabled, 'w-75',
|
|
179
|
+
// 'combobox w-75',
|
|
180
|
+
[_formModule.default.input, field.className].filter(Boolean));
|
|
181
|
+
const getPreviousSelectedItem = (0, _react.useCallback)(() => {
|
|
182
|
+
return prevSelection?.value ? prevSelection.value : field.value;
|
|
183
|
+
}, [prevSelection, field.value]);
|
|
184
|
+
if (viewMode) {
|
|
185
|
+
return usedValueLabel?.label || '';
|
|
186
|
+
}
|
|
187
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_react2.ComboboxProvider, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
188
|
+
className: className
|
|
189
|
+
}, /*#__PURE__*/_react.default.createElement(_react2.Combobox, _extends({
|
|
190
|
+
store: combobox,
|
|
191
|
+
autoSelect: true,
|
|
192
|
+
getAutoSelectId: getPreviousSelectedItem,
|
|
193
|
+
className: formControlClassNames,
|
|
194
|
+
focusable: true,
|
|
195
|
+
onBlur: handleBlur,
|
|
196
|
+
onFocus: event => {
|
|
197
|
+
setIsFocused(true);
|
|
198
|
+
event.target.select();
|
|
199
|
+
},
|
|
200
|
+
ref: inputRef
|
|
201
|
+
}, inputProps)), selectedOption.value && /*#__PURE__*/_react.default.createElement(_react2.ComboboxCancel, {
|
|
202
|
+
className: `btn ${_BSRAddressSelectorModule.default.comboboxCancel || ''}`,
|
|
203
|
+
store: combobox,
|
|
204
|
+
render: /*#__PURE__*/_react.default.createElement("button", {
|
|
205
|
+
type: "button",
|
|
206
|
+
onClick: resetValues,
|
|
207
|
+
ref: cancelButtonRef,
|
|
208
|
+
className: `form-control btn ${_BSRAddressSelectorModule.default.comboboxCancel || ''}`,
|
|
209
|
+
"aria-label": `${t('aria.deleteField', {
|
|
210
|
+
label: t(labelText)
|
|
211
|
+
})}`
|
|
212
|
+
})
|
|
213
|
+
}), filteredOptions.length > 0 && /*#__PURE__*/_react.default.createElement(_react2.ComboboxDisclosure, {
|
|
214
|
+
className: `btn ${_BSRAddressSelectorModule.default.comboboxArrow}`,
|
|
215
|
+
store: combobox
|
|
216
|
+
})), filteredOptions.length > 0 && /*#__PURE__*/_react.default.createElement("div", {
|
|
217
|
+
className: `${_BSRAddressSelectorModule.default.comboboxPopoverWrapper}`
|
|
218
|
+
}, /*#__PURE__*/_react.default.createElement(_react2.ComboboxPopover, {
|
|
219
|
+
store: combobox,
|
|
220
|
+
gutter: 4,
|
|
221
|
+
focusable: true,
|
|
222
|
+
className: `${_BSRAddressSelectorModule.default.popover}`,
|
|
223
|
+
sameWidth: true,
|
|
224
|
+
autoFocusOnShow: false,
|
|
225
|
+
initialFocus: preselectedItemRef
|
|
226
|
+
}, filteredOptions.map((_ref2, index) => {
|
|
227
|
+
let {
|
|
228
|
+
value,
|
|
229
|
+
label
|
|
230
|
+
} = _ref2;
|
|
231
|
+
return /*#__PURE__*/_react.default.createElement(_react2.ComboboxItem, {
|
|
232
|
+
key: `k${value}-${index}`,
|
|
233
|
+
id: value,
|
|
234
|
+
value: value,
|
|
235
|
+
className: `${_BSRAddressSelectorModule.default.comboboxItem} dropdown-item ${value === prevSelection.value ? 'selected' : ''}`,
|
|
236
|
+
ref: value === prevSelection.value ? preselectedItemRef : undefined
|
|
237
|
+
}, label);
|
|
238
|
+
})))));
|
|
239
|
+
};
|
|
240
|
+
BSRAutocompleteField.propTypes = {
|
|
241
|
+
config: _propTypes.default.shape({
|
|
242
|
+
controllerPath: _propTypes.default.string,
|
|
243
|
+
key: _propTypes.default.string.isRequired,
|
|
244
|
+
groupKey: _propTypes.default.string,
|
|
245
|
+
labelTemplate: _propTypes.default.string,
|
|
246
|
+
inputProps: _propTypes.default.instanceOf(Object),
|
|
247
|
+
scope: _propTypes.default.string,
|
|
248
|
+
additionalQuery: _propTypes.default.string,
|
|
249
|
+
doSubmitOnChange: _propTypes.default.bool,
|
|
250
|
+
readOnly: _propTypes.default.bool,
|
|
251
|
+
labelText: _propTypes.default.string,
|
|
252
|
+
viewMode: _propTypes.default.bool,
|
|
253
|
+
disabled: _propTypes.default.bool
|
|
254
|
+
}).isRequired
|
|
255
|
+
};
|
|
256
|
+
const HigherOrderAutocompleteField = (0, _withFieldGroup.default)(BSRAutocompleteField);
|
|
257
|
+
const WrappedAutocompleteField = props => {
|
|
258
|
+
return /*#__PURE__*/_react.default.createElement(_FormFieldWrapper.default, props, /*#__PURE__*/_react.default.createElement(HigherOrderAutocompleteField, props));
|
|
259
|
+
};
|
|
260
|
+
(0, _formBuilder.registerComponent)('BSRAutocompleteField', WrappedAutocompleteField);
|
|
261
|
+
(0, _formBuilder.registerComponent)('BSRAutocompleteFieldBasic', HigherOrderAutocompleteField);
|
|
262
|
+
var _default = exports.default = BSRAutocompleteField;
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _formBuilder = require("@pinuts/form-builder");
|
|
10
|
+
var _reactI18next = require("react-i18next");
|
|
11
|
+
var _GroupInputField = _interopRequireDefault(require("../GroupInputField/GroupInputField.jsx"));
|
|
12
|
+
var _withFieldGroup = _interopRequireDefault(require("../../hooks/withFieldGroup.jsx"));
|
|
13
|
+
var _BSRAddressContext = require("./BSRAddressContext.js");
|
|
14
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
+
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); }
|
|
16
|
+
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; }
|
|
17
|
+
// form-builder
|
|
18
|
+
|
|
19
|
+
const fetchStreetPLz = async (url, selectedStreedAndNumber) => {
|
|
20
|
+
const response = await fetch(`${url}/plzSet?searchQuery=${encodeURI(selectedStreedAndNumber)}`);
|
|
21
|
+
const data = await response.json();
|
|
22
|
+
return data;
|
|
23
|
+
};
|
|
24
|
+
const {
|
|
25
|
+
useFormikContext
|
|
26
|
+
} = _formBuilder.formik;
|
|
27
|
+
const BSRStreetPlzSelector = props => {
|
|
28
|
+
const [t] = (0, _reactI18next.useTranslation)();
|
|
29
|
+
const {
|
|
30
|
+
values,
|
|
31
|
+
setFieldValue
|
|
32
|
+
} = useFormikContext();
|
|
33
|
+
const {
|
|
34
|
+
getControllerPath
|
|
35
|
+
} = (0, _react.useContext)(_BSRAddressContext.BSRAddressContext);
|
|
36
|
+
const {
|
|
37
|
+
config
|
|
38
|
+
} = props;
|
|
39
|
+
const groupKey = config.groupKey;
|
|
40
|
+
const labelKey = `${groupKey}Label`;
|
|
41
|
+
const selectedStreedAndNumberKey = `${groupKey}-streedAndNumber`;
|
|
42
|
+
const localFieldKey = config.key;
|
|
43
|
+
const [selectedStreetList, setSelectedStreetList] = (0, _react.useState)(null);
|
|
44
|
+
const [selectedStreedAndNumber, setSelectedStreedAndNumber] = (0, _react.useState)(null);
|
|
45
|
+
const [showNoResultsError, setShowNoResultsError] = (0, _react.useState)(false);
|
|
46
|
+
const [showLoading, setShowLoading] = (0, _react.useState)(false);
|
|
47
|
+
(0, _react.useEffect)(() => {
|
|
48
|
+
// set or delete selected street and number, form parent inputs, to state
|
|
49
|
+
if (values[selectedStreedAndNumberKey] && values[selectedStreedAndNumberKey] !== selectedStreedAndNumber) {
|
|
50
|
+
setSelectedStreedAndNumber(values[selectedStreedAndNumberKey]);
|
|
51
|
+
} else if (!values[selectedStreedAndNumberKey] && selectedStreedAndNumber) {
|
|
52
|
+
setSelectedStreedAndNumber(null);
|
|
53
|
+
setSelectedStreetList(null);
|
|
54
|
+
setFieldValue(groupKey, '');
|
|
55
|
+
setFieldValue(`${labelKey}`, '');
|
|
56
|
+
}
|
|
57
|
+
}, [selectedStreedAndNumberKey, values, selectedStreedAndNumber, setSelectedStreedAndNumber, groupKey, labelKey, setFieldValue]);
|
|
58
|
+
(0, _react.useEffect)(() => {
|
|
59
|
+
const mainFieldValue = values[groupKey];
|
|
60
|
+
const selectedRadioValue = values[localFieldKey];
|
|
61
|
+
if (selectedRadioValue) {
|
|
62
|
+
if (selectedRadioValue !== mainFieldValue) {
|
|
63
|
+
setFieldValue(groupKey, selectedRadioValue);
|
|
64
|
+
}
|
|
65
|
+
const label = selectedStreetList?.find(option => option.value === selectedRadioValue)?.label;
|
|
66
|
+
if (label !== values[labelKey]) {
|
|
67
|
+
setFieldValue(labelKey, label);
|
|
68
|
+
}
|
|
69
|
+
} else if (selectedStreetList && selectedStreetList.length > 1) {
|
|
70
|
+
if (mainFieldValue) {
|
|
71
|
+
// if main field is set, but radio is not, reset main field
|
|
72
|
+
setFieldValue(groupKey, '');
|
|
73
|
+
}
|
|
74
|
+
// same for label
|
|
75
|
+
if (values[labelKey]) {
|
|
76
|
+
setFieldValue(labelKey, '');
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}, [localFieldKey, groupKey, labelKey, values, setFieldValue, selectedStreetList]);
|
|
80
|
+
(0, _react.useEffect)(() => {
|
|
81
|
+
if (selectedStreedAndNumber) {
|
|
82
|
+
const url = getControllerPath() + '/plzSet';
|
|
83
|
+
setShowLoading(true);
|
|
84
|
+
fetchStreetPLz(url, selectedStreedAndNumber).catch(console.error).then(data => {
|
|
85
|
+
const list = data || [];
|
|
86
|
+
setShowNoResultsError(list.length === 0);
|
|
87
|
+
setSelectedStreetList(list);
|
|
88
|
+
|
|
89
|
+
// if only one result, set it directly, otherwise clear
|
|
90
|
+
const [value, label] = list.length === 1 ? [list[0].value, list[0].label] : ['', ''];
|
|
91
|
+
setFieldValue(groupKey, value);
|
|
92
|
+
setFieldValue(labelKey, label);
|
|
93
|
+
setShowLoading(false);
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}, [selectedStreedAndNumber, groupKey, labelKey, setFieldValue, getControllerPath]);
|
|
97
|
+
if (showNoResultsError) {
|
|
98
|
+
return /*#__PURE__*/_react.default.createElement("p", null, t('bsrAddressSelector.addressNotFound'));
|
|
99
|
+
}
|
|
100
|
+
if (showLoading) {
|
|
101
|
+
return /*#__PURE__*/_react.default.createElement("p", null, t('bsrAddressSelector.loading'));
|
|
102
|
+
}
|
|
103
|
+
if (!selectedStreetList || selectedStreetList.length === 0) {
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
if (selectedStreetList.length === 1) {
|
|
107
|
+
return /*#__PURE__*/_react.default.createElement("p", null, selectedStreetList[0]?.label);
|
|
108
|
+
}
|
|
109
|
+
const newConfig = {
|
|
110
|
+
...config,
|
|
111
|
+
multipleChoice: false,
|
|
112
|
+
options: selectedStreetList
|
|
113
|
+
};
|
|
114
|
+
const newProps = {
|
|
115
|
+
...props,
|
|
116
|
+
config: newConfig
|
|
117
|
+
};
|
|
118
|
+
return /*#__PURE__*/_react.default.createElement(_GroupInputField.default, newProps);
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
// add propTypes
|
|
122
|
+
BSRStreetPlzSelector.propTypes = {
|
|
123
|
+
config: _propTypes.default.object.isRequired
|
|
124
|
+
};
|
|
125
|
+
const HigherOrderBSRStreetPlzSelector = (0, _withFieldGroup.default)(BSRStreetPlzSelector);
|
|
126
|
+
(0, _formBuilder.registerComponent)('BSRStreetPlzSelector', HigherOrderBSRStreetPlzSelector);
|
|
127
|
+
var _default = exports.default = HigherOrderBSRStreetPlzSelector;
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// import React, { useEffect, useState } from 'react';
|
|
2
|
+
// import PropTypes from 'prop-types';
|
|
3
|
+
// import { useTranslation } from 'react-i18next';
|
|
4
|
+
//
|
|
5
|
+
// // form-builder
|
|
6
|
+
// import { registerComponent, formik } from '@pinuts/form-builder';
|
|
7
|
+
//
|
|
8
|
+
// import useGetOptionList from '../../hooks/useGetOptionList.js';
|
|
9
|
+
// import { getFormControlClassNames } from '../../utils/getUikitClassNames.js';
|
|
10
|
+
// import FormFieldChildPropTypes from '../FormFieldWrapper/FormFieldChildPropTypes.jsx';
|
|
11
|
+
// import FormFieldWrapper from '../FormFieldWrapper/FormFieldWrapper.jsx';
|
|
12
|
+
// import withFieldGroup from '../../hooks/withFieldGroup.jsx';
|
|
13
|
+
// import styles from '../../styles/form.module.scss';
|
|
14
|
+
//
|
|
15
|
+
// import SelectField from '../SelectField/SelectField.jsx';
|
|
16
|
+
//
|
|
17
|
+
// const { useFormikContext } = formik;
|
|
18
|
+
//
|
|
19
|
+
// const fetchHouseNumbers = async (streetId) => {
|
|
20
|
+
// const response = await fetch(`http://localhost:8086/cmsbs/rest/de.bsr.adressen.app/streetNo?streetid=${streetId}`);
|
|
21
|
+
// const data = await response.json();
|
|
22
|
+
//
|
|
23
|
+
// return data;
|
|
24
|
+
// };
|
|
25
|
+
//
|
|
26
|
+
// const HouseNumberSelectField = (config) => {
|
|
27
|
+
//
|
|
28
|
+
// const [selectedStreetId, setSelectedStreetId] = useState(null);
|
|
29
|
+
// const [houseNumberOptions, setHouseNumberOptions] = useState([]);
|
|
30
|
+
// const {
|
|
31
|
+
// streedFieldKey,
|
|
32
|
+
// key,
|
|
33
|
+
// } = config.config;
|
|
34
|
+
// const { values, setFieldValue } = useFormikContext();
|
|
35
|
+
//
|
|
36
|
+
// useEffect(() => {
|
|
37
|
+
// console.log('values: ' + streedFieldKey, config);
|
|
38
|
+
// const streetId = values[streedFieldKey] || '';
|
|
39
|
+
//
|
|
40
|
+
// console.log('values[streedFieldKey]: ', values[streedFieldKey]);
|
|
41
|
+
// setSelectedStreetId(streetId);
|
|
42
|
+
//
|
|
43
|
+
// // set number label
|
|
44
|
+
// if (houseNumberOptions && streetId) {
|
|
45
|
+
// const numberLabelFieldKey = `${key}Label`;
|
|
46
|
+
// const numberSelectKey = values[key];
|
|
47
|
+
// const numberlabel = houseNumberOptions.find(option => option.value === numberSelectKey)?.label;
|
|
48
|
+
// if (values[numberLabelFieldKey] !== numberlabel) {
|
|
49
|
+
// setFieldValue(numberLabelFieldKey, numberlabel);
|
|
50
|
+
// }
|
|
51
|
+
// }
|
|
52
|
+
// }, [values]);
|
|
53
|
+
//
|
|
54
|
+
// useEffect(() => {
|
|
55
|
+
// if (selectedStreetId) {
|
|
56
|
+
// fetchHouseNumbers(selectedStreetId).catch(console.error).then(setHouseNumberOptions);
|
|
57
|
+
// } else {
|
|
58
|
+
// setHouseNumberOptions([]);
|
|
59
|
+
// if (values[key]) {
|
|
60
|
+
// setFieldValue(key, '');
|
|
61
|
+
// }
|
|
62
|
+
// }
|
|
63
|
+
// }, [selectedStreetId]);
|
|
64
|
+
//
|
|
65
|
+
// const newConfig = {
|
|
66
|
+
// ...config,
|
|
67
|
+
// options: houseNumberOptions,
|
|
68
|
+
// };
|
|
69
|
+
//
|
|
70
|
+
// return (
|
|
71
|
+
// <SelectField {...newConfig} />
|
|
72
|
+
// );
|
|
73
|
+
// };
|
|
74
|
+
//
|
|
75
|
+
// HouseNumberSelectField.propTypes = {
|
|
76
|
+
// ...FormFieldChildPropTypes,
|
|
77
|
+
//
|
|
78
|
+
// validation: PropTypes.arrayOf(PropTypes.string),
|
|
79
|
+
// options: PropTypes.arrayOf(
|
|
80
|
+
// PropTypes.oneOfType([
|
|
81
|
+
// PropTypes.shape({
|
|
82
|
+
// value: PropTypes.oneOfType([
|
|
83
|
+
// PropTypes.string,
|
|
84
|
+
// PropTypes.number,
|
|
85
|
+
// ]),
|
|
86
|
+
// label: PropTypes.oneOfType([
|
|
87
|
+
// PropTypes.string,
|
|
88
|
+
// PropTypes.object,
|
|
89
|
+
// ]),
|
|
90
|
+
// }),
|
|
91
|
+
// PropTypes.string]),
|
|
92
|
+
// ).isRequired,
|
|
93
|
+
// emptyOptionLabel: PropTypes.string,
|
|
94
|
+
// skipOptions: PropTypes.oneOfType([
|
|
95
|
+
// PropTypes.arrayOf(PropTypes.string),
|
|
96
|
+
// PropTypes.string,
|
|
97
|
+
// ]),
|
|
98
|
+
// };
|
|
99
|
+
//
|
|
100
|
+
//
|
|
101
|
+
// registerComponent('HouseNumberSelectField', HouseNumberSelectField);
|
|
102
|
+
//
|
|
103
|
+
//
|
|
104
|
+
// export default HouseNumberSelectField;
|
|
105
|
+
"use strict";
|
|
@@ -0,0 +1,33 @@
|
|
|
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
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
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); }
|
|
12
|
+
const Badge = _ref => {
|
|
13
|
+
let {
|
|
14
|
+
color = 'outline-success',
|
|
15
|
+
children,
|
|
16
|
+
className,
|
|
17
|
+
inputProps = {}
|
|
18
|
+
} = _ref;
|
|
19
|
+
if (!children) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
return /*#__PURE__*/_react.default.createElement("div", _extends({
|
|
23
|
+
className: _formBuilder.utils.getClassNames(['badge d-inline-flex', color, className])
|
|
24
|
+
}, inputProps), children);
|
|
25
|
+
};
|
|
26
|
+
Badge.propTypes = {
|
|
27
|
+
className: _propTypes.default.string,
|
|
28
|
+
color: _propTypes.default.string,
|
|
29
|
+
inputProps: _propTypes.default.object,
|
|
30
|
+
children: _propTypes.default.node
|
|
31
|
+
};
|
|
32
|
+
(0, _formBuilder.registerComponent)('Badge', Badge);
|
|
33
|
+
var _default = exports.default = Badge;
|
|
@@ -0,0 +1,68 @@
|
|
|
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 _formBuilder = require("@pinuts/form-builder");
|
|
9
|
+
var _Form = _interopRequireDefault(require("react-bootstrap/Form"));
|
|
10
|
+
var _InputGroup = _interopRequireDefault(require("react-bootstrap/InputGroup"));
|
|
11
|
+
var _getUikitClassNames = require("../../utils/getUikitClassNames.js");
|
|
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
|
+
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); } // import PropTypes from 'prop-types';
|
|
17
|
+
// form-builder
|
|
18
|
+
const BootstrapInputGroupField = _ref => {
|
|
19
|
+
let {
|
|
20
|
+
className,
|
|
21
|
+
inputProps = {},
|
|
22
|
+
value,
|
|
23
|
+
field,
|
|
24
|
+
onChange = () => {},
|
|
25
|
+
ariaAttributes,
|
|
26
|
+
isInvalid,
|
|
27
|
+
readOnly,
|
|
28
|
+
disabled,
|
|
29
|
+
viewMode,
|
|
30
|
+
fieldIds,
|
|
31
|
+
leftAddonText,
|
|
32
|
+
rightAddonText
|
|
33
|
+
} = _ref;
|
|
34
|
+
const handleChange = e => onChange(e.target.value);
|
|
35
|
+
if (viewMode) {
|
|
36
|
+
return value;
|
|
37
|
+
}
|
|
38
|
+
const formControlClassNames = (0, _getUikitClassNames.getFormControlClassNames)(isInvalid, readOnly, disabled, className);
|
|
39
|
+
const leftAddonId = `${fieldIds.fieldId}-addon-left`;
|
|
40
|
+
const rightAddonId = `${fieldIds.fieldId}-addon-right`;
|
|
41
|
+
const describedBy = [ariaAttributes['aria-describedby'], leftAddonText && leftAddonId, rightAddonText && rightAddonId].filter(Boolean).join(' ');
|
|
42
|
+
return /*#__PURE__*/_react.default.createElement(_InputGroup.default, {
|
|
43
|
+
className: formControlClassNames
|
|
44
|
+
}, leftAddonText && /*#__PURE__*/_react.default.createElement(_InputGroup.default.Text, {
|
|
45
|
+
className: !disabled && !readOnly ? 'bg-transparent' : '',
|
|
46
|
+
id: leftAddonId
|
|
47
|
+
}, leftAddonText), /*#__PURE__*/_react.default.createElement(_Form.default.Control, _extends({}, field, ariaAttributes, {
|
|
48
|
+
"aria-describedby": describedBy
|
|
49
|
+
}, inputProps, {
|
|
50
|
+
value: value || '',
|
|
51
|
+
onChange: handleChange
|
|
52
|
+
})), rightAddonText && /*#__PURE__*/_react.default.createElement(_InputGroup.default.Text, {
|
|
53
|
+
className: !disabled && !readOnly ? 'bg-transparent' : '',
|
|
54
|
+
id: rightAddonId
|
|
55
|
+
}, rightAddonText));
|
|
56
|
+
};
|
|
57
|
+
BootstrapInputGroupField.propTypes = {
|
|
58
|
+
..._FormFieldChildPropTypes.default
|
|
59
|
+
};
|
|
60
|
+
const HigherOrderBootstrapInputGroupField = (0, _withFieldGroup.default)(BootstrapInputGroupField);
|
|
61
|
+
|
|
62
|
+
// wrap the field label, error message help text and more
|
|
63
|
+
const WrappedBootstrapInputGroupField = props => {
|
|
64
|
+
return /*#__PURE__*/_react.default.createElement(_FormFieldWrapper.default, props, /*#__PURE__*/_react.default.createElement(HigherOrderBootstrapInputGroupField, props));
|
|
65
|
+
};
|
|
66
|
+
(0, _formBuilder.registerComponent)('BootstrapInputGroupField', WrappedBootstrapInputGroupField);
|
|
67
|
+
(0, _formBuilder.registerComponent)('BootstrapInputGroupFieldBasic', HigherOrderBootstrapInputGroupField);
|
|
68
|
+
var _default = exports.default = HigherOrderBootstrapInputGroupField;
|
|
@@ -0,0 +1,70 @@
|
|
|
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 _reactI18next = require("react-i18next");
|
|
10
|
+
var _formBuilder = require("@pinuts/form-builder");
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
+
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); }
|
|
13
|
+
const Button = _ref => {
|
|
14
|
+
let {
|
|
15
|
+
className,
|
|
16
|
+
inputProps = {},
|
|
17
|
+
color = 'orange',
|
|
18
|
+
rounded,
|
|
19
|
+
circular,
|
|
20
|
+
onClick,
|
|
21
|
+
ariaLabel,
|
|
22
|
+
children,
|
|
23
|
+
ariaAttributes = {},
|
|
24
|
+
text,
|
|
25
|
+
type = 'button'
|
|
26
|
+
} = _ref;
|
|
27
|
+
const [t] = (0, _reactI18next.useTranslation)();
|
|
28
|
+
if (!_react.default.Children.count(children) && !text) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
const usedText = text ? t(text) : '';
|
|
32
|
+
const usedAriaLabel = ariaLabel ? t(ariaLabel) : '';
|
|
33
|
+
|
|
34
|
+
// !!! ??? linter: The button type attribute must be specified by a static string or a trivial ternary expression
|
|
35
|
+
const btnType = type || 'button';
|
|
36
|
+
/* eslint-disable react/button-has-type */
|
|
37
|
+
|
|
38
|
+
return /*#__PURE__*/_react.default.createElement("button", _extends({
|
|
39
|
+
type: btnType,
|
|
40
|
+
onClick: onClick,
|
|
41
|
+
className: _formBuilder.utils.getClassNames(['btn', color && `btn-${color}`, rounded && 'btn-rounded', circular && 'btn-circular', className, ariaAttributes?.['aria-disabled'] && 'disabled']),
|
|
42
|
+
"aria-label": usedAriaLabel
|
|
43
|
+
}, ariaAttributes, inputProps), usedText, children);
|
|
44
|
+
/* eslint-enable react/button-has-type */
|
|
45
|
+
};
|
|
46
|
+
Button.propTypes = {
|
|
47
|
+
className: _propTypes.default.string,
|
|
48
|
+
color: _propTypes.default.string,
|
|
49
|
+
text: _propTypes.default.string,
|
|
50
|
+
rounded: _propTypes.default.bool,
|
|
51
|
+
circular: _propTypes.default.bool,
|
|
52
|
+
inputProps: _propTypes.default.object,
|
|
53
|
+
onClick: _propTypes.default.func,
|
|
54
|
+
ariaLabel: _propTypes.default.string.isRequired,
|
|
55
|
+
ariaAttributes: _propTypes.default.object,
|
|
56
|
+
children: _propTypes.default.node,
|
|
57
|
+
type: _propTypes.default.string
|
|
58
|
+
};
|
|
59
|
+
const FormBuilderButton = _ref2 => {
|
|
60
|
+
let {
|
|
61
|
+
config = {},
|
|
62
|
+
...otherProps
|
|
63
|
+
} = _ref2;
|
|
64
|
+
return /*#__PURE__*/_react.default.createElement(Button, _extends({}, otherProps, config));
|
|
65
|
+
};
|
|
66
|
+
FormBuilderButton.propTypes = {
|
|
67
|
+
config: _propTypes.default.shape(Button.propTypes)
|
|
68
|
+
};
|
|
69
|
+
(0, _formBuilder.registerComponent)('Button', FormBuilderButton);
|
|
70
|
+
var _default = exports.default = Button;
|