@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.
Files changed (238) hide show
  1. package/.eslintrc.js +80 -0
  2. package/.idea/.name +1 -0
  3. package/.idea/misc.xml +6 -0
  4. package/.idea/modules.xml +8 -0
  5. package/.idea/vcs.xml +6 -0
  6. package/CHANGELOG.md +3 -0
  7. package/README.md +75 -0
  8. package/bsr-uikit-relaunch.iml +9 -0
  9. package/config-overrides.js +32 -0
  10. package/dist/assets/Icon.js +64 -0
  11. package/dist/assets/IconComponents/getIconAdditionalCostsLarge.js +31 -0
  12. package/dist/assets/IconComponents/getIconAlertCircle.js +31 -0
  13. package/dist/assets/IconComponents/getIconAlertTriangle.js +27 -0
  14. package/dist/assets/IconComponents/getIconArchive.js +31 -0
  15. package/dist/assets/IconComponents/getIconArrowCornerUpLeft.js +25 -0
  16. package/dist/assets/IconComponents/getIconArrowDown.js +36 -0
  17. package/dist/assets/IconComponents/getIconArrowDownNoCircle.js +25 -0
  18. package/dist/assets/IconComponents/getIconArrowLeftNoCircle.js +25 -0
  19. package/dist/assets/IconComponents/getIconArrowRightDown.js +28 -0
  20. package/dist/assets/IconComponents/getIconArrowRightNoCircle.js +19 -0
  21. package/dist/assets/IconComponents/getIconArrowRightUp.js +28 -0
  22. package/dist/assets/IconComponents/getIconArrowUpNoCircle.js +25 -0
  23. package/dist/assets/IconComponents/getIconBarChart.js +40 -0
  24. package/dist/assets/IconComponents/getIconBell.js +25 -0
  25. package/dist/assets/IconComponents/getIconBriefCaseLarge.js +29 -0
  26. package/dist/assets/IconComponents/getIconCalendar.js +40 -0
  27. package/dist/assets/IconComponents/getIconChairman.js +19 -0
  28. package/dist/assets/IconComponents/getIconCheck.js +19 -0
  29. package/dist/assets/IconComponents/getIconCheckCircle.js +23 -0
  30. package/dist/assets/IconComponents/getIconCheckCircleOpen.js +31 -0
  31. package/dist/assets/IconComponents/getIconChevronDown.js +19 -0
  32. package/dist/assets/IconComponents/getIconChevronLeft.js +19 -0
  33. package/dist/assets/IconComponents/getIconChevronRight.js +19 -0
  34. package/dist/assets/IconComponents/getIconChevronUp.js +19 -0
  35. package/dist/assets/IconComponents/getIconCircle.js +21 -0
  36. package/dist/assets/IconComponents/getIconCircleMinus.js +26 -0
  37. package/dist/assets/IconComponents/getIconCirclePause.js +19 -0
  38. package/dist/assets/IconComponents/getIconCirclePlus.js +31 -0
  39. package/dist/assets/IconComponents/getIconCircleX.js +31 -0
  40. package/dist/assets/IconComponents/getIconCity.js +23 -0
  41. package/dist/assets/IconComponents/getIconCross.js +27 -0
  42. package/dist/assets/IconComponents/getIconDocumentLarge.js +28 -0
  43. package/dist/assets/IconComponents/getIconDoubleChevronLeft.js +21 -0
  44. package/dist/assets/IconComponents/getIconDoubleChevronRight.js +21 -0
  45. package/dist/assets/IconComponents/getIconDownload.js +37 -0
  46. package/dist/assets/IconComponents/getIconEdit.js +25 -0
  47. package/dist/assets/IconComponents/getIconEditPen.js +25 -0
  48. package/dist/assets/IconComponents/getIconEuro.js +21 -0
  49. package/dist/assets/IconComponents/getIconExclamationMark.js +21 -0
  50. package/dist/assets/IconComponents/getIconExternalLink.js +26 -0
  51. package/dist/assets/IconComponents/getIconEye.js +31 -0
  52. package/dist/assets/IconComponents/getIconEyeOff.js +34 -0
  53. package/dist/assets/IconComponents/getIconFile.js +25 -0
  54. package/dist/assets/IconComponents/getIconFileAddLarge.js +29 -0
  55. package/dist/assets/IconComponents/getIconFileReport.js +37 -0
  56. package/dist/assets/IconComponents/getIconFileText.js +43 -0
  57. package/dist/assets/IconComponents/getIconFilter.js +35 -0
  58. package/dist/assets/IconComponents/getIconFolder.js +37 -0
  59. package/dist/assets/IconComponents/getIconFolderLarge.js +32 -0
  60. package/dist/assets/IconComponents/getIconFunnel.js +19 -0
  61. package/dist/assets/IconComponents/getIconGraduateCapLarge.js +31 -0
  62. package/dist/assets/IconComponents/getIconInbox.js +25 -0
  63. package/dist/assets/IconComponents/getIconInfo.js +28 -0
  64. package/dist/assets/IconComponents/getIconInfoCircle.js +25 -0
  65. package/dist/assets/IconComponents/getIconInternshipLarge.js +49 -0
  66. package/dist/assets/IconComponents/getIconLeaf.js +21 -0
  67. package/dist/assets/IconComponents/getIconLeftChevron.js +21 -0
  68. package/dist/assets/IconComponents/getIconLineChart.js +24 -0
  69. package/dist/assets/IconComponents/getIconLineChartWithAxis.js +37 -0
  70. package/dist/assets/IconComponents/getIconLineDotChart.js +61 -0
  71. package/dist/assets/IconComponents/getIconLink.js +31 -0
  72. package/dist/assets/IconComponents/getIconList.js +49 -0
  73. package/dist/assets/IconComponents/getIconLock.js +25 -0
  74. package/dist/assets/IconComponents/getIconLogin.js +31 -0
  75. package/dist/assets/IconComponents/getIconLogout.js +19 -0
  76. package/dist/assets/IconComponents/getIconMail.js +25 -0
  77. package/dist/assets/IconComponents/getIconMan.js +36 -0
  78. package/dist/assets/IconComponents/getIconManagement.js +59 -0
  79. package/dist/assets/IconComponents/getIconMap.js +29 -0
  80. package/dist/assets/IconComponents/getIconMapPin.js +19 -0
  81. package/dist/assets/IconComponents/getIconMenu.js +31 -0
  82. package/dist/assets/IconComponents/getIconMessageCircle.js +25 -0
  83. package/dist/assets/IconComponents/getIconMessageSquare.js +39 -0
  84. package/dist/assets/IconComponents/getIconMinus.js +22 -0
  85. package/dist/assets/IconComponents/getIconMinusVertical.js +22 -0
  86. package/dist/assets/IconComponents/getIconMoreHorizontal.js +31 -0
  87. package/dist/assets/IconComponents/getIconNumbers.js +25 -0
  88. package/dist/assets/IconComponents/getIconPauseCircle.js +31 -0
  89. package/dist/assets/IconComponents/getIconPlus.js +31 -0
  90. package/dist/assets/IconComponents/getIconPresentation.js +36 -0
  91. package/dist/assets/IconComponents/getIconRect.js +24 -0
  92. package/dist/assets/IconComponents/getIconRefresh.js +31 -0
  93. package/dist/assets/IconComponents/getIconRefreshRepeatLarge.js +25 -0
  94. package/dist/assets/IconComponents/getIconReportAnalytics.js +31 -0
  95. package/dist/assets/IconComponents/getIconReportMoney.js +29 -0
  96. package/dist/assets/IconComponents/getIconReportOff.js +23 -0
  97. package/dist/assets/IconComponents/getIconReqWizAdditionalFundingLarge.js +28 -0
  98. package/dist/assets/IconComponents/getIconReqWizExtendFundingLarge.js +28 -0
  99. package/dist/assets/IconComponents/getIconReqWizJobLarge.js +32 -0
  100. package/dist/assets/IconComponents/getIconReqWizPauseFundingLarge.js +60 -0
  101. package/dist/assets/IconComponents/getIconReqWizScientificNetworkLarge.js +35 -0
  102. package/dist/assets/IconComponents/getIconReqWizStayAbroadLarge.js +31 -0
  103. package/dist/assets/IconComponents/getIconReqWizStudyDataLarge.js +31 -0
  104. package/dist/assets/IconComponents/getIconReqWizSubsequentFundingLarge.js +26 -0
  105. package/dist/assets/IconComponents/getIconReqWizWorldGraduateCapLarge copy.js +31 -0
  106. package/dist/assets/IconComponents/getIconReqWizWorldGraduateCapLarge.js +31 -0
  107. package/dist/assets/IconComponents/getIconRequestLarge.js +28 -0
  108. package/dist/assets/IconComponents/getIconRingChart.js +25 -0
  109. package/dist/assets/IconComponents/getIconRotate.js +17 -0
  110. package/dist/assets/IconComponents/getIconSearch.js +26 -0
  111. package/dist/assets/IconComponents/getIconSearchLarger.js +25 -0
  112. package/dist/assets/IconComponents/getIconSearchReverse.js +25 -0
  113. package/dist/assets/IconComponents/getIconSetting.js +33 -0
  114. package/dist/assets/IconComponents/getIconSortAscending.js +39 -0
  115. package/dist/assets/IconComponents/getIconSortDescending.js +39 -0
  116. package/dist/assets/IconComponents/getIconStar.js +22 -0
  117. package/dist/assets/IconComponents/getIconSum.js +19 -0
  118. package/dist/assets/IconComponents/getIconSupervisory.js +51 -0
  119. package/dist/assets/IconComponents/getIconThumbDown.js +19 -0
  120. package/dist/assets/IconComponents/getIconThumbUp.js +19 -0
  121. package/dist/assets/IconComponents/getIconTrash.js +37 -0
  122. package/dist/assets/IconComponents/getIconTriangle.js +19 -0
  123. package/dist/assets/IconComponents/getIconTriangleInverted.js +19 -0
  124. package/dist/assets/IconComponents/getIconUpload.js +31 -0
  125. package/dist/assets/IconComponents/getIconUploadCloud.js +37 -0
  126. package/dist/assets/IconComponents/getIconUploadLarge.js +26 -0
  127. package/dist/assets/IconComponents/getIconUser.js +19 -0
  128. package/dist/assets/IconComponents/getIconUserCheck.js +25 -0
  129. package/dist/assets/IconComponents/getIconUserCircle.js +31 -0
  130. package/dist/assets/IconComponents/getIconUserLarge.js +26 -0
  131. package/dist/assets/IconComponents/getIconUserOff.js +26 -0
  132. package/dist/assets/IconComponents/getIconWoman.js +33 -0
  133. package/dist/assets/IconComponents/getIconWriteNote.js +31 -0
  134. package/dist/assets/IconComponents/getIconWriteNoteLarge.js +27 -0
  135. package/dist/assets/IconComponents/getIconX.js +27 -0
  136. package/dist/assets/IconComponents/getIconZoomMoney.js +45 -0
  137. package/dist/assets/IconMapping.js +241 -0
  138. package/dist/hooks/ValidateComponents.js +31 -0
  139. package/dist/hooks/index.js +27 -0
  140. package/dist/hooks/infoPopUp.js +1 -0
  141. package/dist/hooks/useDebounceFunc.js +25 -0
  142. package/dist/hooks/useGetOptionList.js +41 -0
  143. package/dist/hooks/useValidationMessage.js +68 -0
  144. package/dist/hooks/withFieldGroup.js +206 -0
  145. package/dist/icons/AlertTriangle.js +42 -0
  146. package/dist/icons/InfoOutline.js +57 -0
  147. package/dist/icons/Verify.js +40 -0
  148. package/dist/index.js +2 -0
  149. package/dist/index.js.LICENSE.txt +32 -0
  150. package/dist/items/ArrayFieldset/ArrayFieldset.js +178 -0
  151. package/dist/items/BSRAddressSelector/BSRAddressContext.js +95 -0
  152. package/dist/items/BSRAddressSelector/BSRAddressResetButton.js +59 -0
  153. package/dist/items/BSRAddressSelector/BSRAddressSelector.js +100 -0
  154. package/dist/items/BSRAddressSelector/BSRAutocompleteField.js +262 -0
  155. package/dist/items/BSRAddressSelector/BSRStreetPlzSelector.js +127 -0
  156. package/dist/items/BSRAddressSelector/HouseNumberSelectField.js +105 -0
  157. package/dist/items/Badge/Badge.js +33 -0
  158. package/dist/items/BootstrapInputGroupField/BootstrapInputGroupField.js +68 -0
  159. package/dist/items/Button/Button.js +70 -0
  160. package/dist/items/Button/SubmitButton.js +39 -0
  161. package/dist/items/DateInputField/DateInputField.js +105 -0
  162. package/dist/items/DropDownButton/DropDownButton.js +101 -0
  163. package/dist/items/DropzoneUploadField/DropzoneUploadField.js +188 -0
  164. package/dist/items/DropzoneUploadField/acceptedUploadTypeMapping.js +55 -0
  165. package/dist/items/FieldLabel/FieldLabel.js +75 -0
  166. package/dist/items/FieldsetWrapper/FieldsetWrapper.js +51 -0
  167. package/dist/items/FormFieldWrapper/FormFieldChildPropTypes.js +64 -0
  168. package/dist/items/FormFieldWrapper/FormFieldWrapper.js +101 -0
  169. package/dist/items/FormFieldWrapper/FormFieldWrapperComponent.js +6 -0
  170. package/dist/items/Grid/BSRGridColumn.js +34 -0
  171. package/dist/items/Grid/BSRGridRow.js +28 -0
  172. package/dist/items/Grid/BSRGridRowCols.js +36 -0
  173. package/dist/items/GroupInputField/GroupInputField.js +122 -0
  174. package/dist/items/HTMLParserSanitized/HTMLParserSanitized.js +45 -0
  175. package/dist/items/Icon/Icon.js +24 -0
  176. package/dist/items/Modal/FormModal.js +98 -0
  177. package/dist/items/Modal/Modal.js +109 -0
  178. package/dist/items/NumberInputField/NumberInputField.js +142 -0
  179. package/dist/items/PictureUploadRowField/PictureUploadRowField.js +280 -0
  180. package/dist/items/PictureUploadRowField/acceptedUploadTypeMapping.js +55 -0
  181. package/dist/items/SectionSpinner/SectionSpinner.js +49 -0
  182. package/dist/items/SelectField/SelectField.js +67 -0
  183. package/dist/items/StaticAlert/StaticAlert.js +39 -0
  184. package/dist/items/TextAreaField/TextAreaField.js +70 -0
  185. package/dist/items/TextBox/TextBox.js +43 -0
  186. package/dist/items/TextInputField/TextInputField.js +55 -0
  187. package/dist/items/Toast/Toast.js +55 -0
  188. package/dist/items/ToggleSwitchField/ToggleSwitchField.js +84 -0
  189. package/dist/items/index.js +196 -0
  190. package/dist/styles/_ariakit_combobox.scss +279 -0
  191. package/dist/styles/_colors.scss +165 -0
  192. package/dist/styles/bootstrap-customized.scss +815 -0
  193. package/dist/styles/fonts/hbs-fonts/hbs-fonts.css +67 -0
  194. package/dist/styles/fonts/hbs-fonts/simple-bold/SimpleHBSTT-Bold.eot +0 -0
  195. package/dist/styles/fonts/hbs-fonts/simple-bold/SimpleHBSTT-Bold.svg +264 -0
  196. package/dist/styles/fonts/hbs-fonts/simple-bold/SimpleHBSTT-Bold.ttf +0 -0
  197. package/dist/styles/fonts/hbs-fonts/simple-bold/SimpleHBSTT-Bold.woff +0 -0
  198. package/dist/styles/fonts/hbs-fonts/univers/1449347/1f2c3faa-231e-4e71-aba4-b1adb03e0322.svg +4846 -0
  199. package/dist/styles/fonts/hbs-fonts/univers/1449347/51a2e8ba-97c4-47a9-af92-e8b379eeddbd.eot +0 -0
  200. package/dist/styles/fonts/hbs-fonts/univers/1449347/77019bfb-2faa-487f-97aa-b498678dc990.ttf +0 -0
  201. package/dist/styles/fonts/hbs-fonts/univers/1449347/89420d17-2c68-4bb3-b4d4-373b0d0f016b.woff2 +0 -0
  202. package/dist/styles/fonts/hbs-fonts/univers/1449347/e79b121c-bda4-4092-a565-1c29b272ef18.woff +0 -0
  203. package/dist/styles/fonts/hbs-fonts/univers/1449355/6baa7b6e-6971-4b5f-8129-8630113d8cb7.eot +0 -0
  204. package/dist/styles/fonts/hbs-fonts/univers/1449355/aab88c6b-6b75-42f0-aec5-74a5c4ed199d.woff2 +0 -0
  205. package/dist/styles/fonts/hbs-fonts/univers/1449355/ac6c8f47-2d16-43de-96c6-4526ab446296.woff +0 -0
  206. package/dist/styles/fonts/hbs-fonts/univers/1449355/cc2006cf-463d-41db-88b0-24bf58fdf832.ttf +0 -0
  207. package/dist/styles/fonts/hbs-fonts/univers/1449355/f6946e91-a2c4-4793-bcb2-b617d23b3b80.svg +5216 -0
  208. package/dist/styles/fonts/hbs-fonts/univers-condensed/1449383/1df6de95-3b72-4134-8e0f-f250931b1cb1.woff +0 -0
  209. package/dist/styles/fonts/hbs-fonts/univers-condensed/1449383/27bd8c18-1ca0-4a74-a175-108571bab2fc.eot +0 -0
  210. package/dist/styles/fonts/hbs-fonts/univers-condensed/1449383/5667db2e-a3c3-408f-ad82-3ca721a0e2e7.svg +4807 -0
  211. package/dist/styles/fonts/hbs-fonts/univers-condensed/1449383/8282dfe6-2f66-4a8e-bc65-669a3066eee8.ttf +0 -0
  212. package/dist/styles/fonts/hbs-fonts/univers-condensed/1449383/a92a459a-dc32-498f-b2dc-b761713792f4.woff2 +0 -0
  213. package/dist/styles/fonts/hbs-fonts/univers-condensed/1449391/14cd37b6-7bde-488e-bbba-17c5046ee4c3.svg +4666 -0
  214. package/dist/styles/fonts/hbs-fonts/univers-condensed/1449391/308dd9a4-aea8-4532-8c6d-a415a35f0015.woff2 +0 -0
  215. package/dist/styles/fonts/hbs-fonts/univers-condensed/1449391/4414ced7-592d-4fdc-8521-8bf095659b6e.eot +0 -0
  216. package/dist/styles/fonts/hbs-fonts/univers-condensed/1449391/9e1c34e4-257a-478b-9d35-84e680e8d373.ttf +0 -0
  217. package/dist/styles/fonts/hbs-fonts/univers-condensed/1449391/9f5abf71-fdd9-408f-b075-7a8a1b7c9a6e.woff +0 -0
  218. package/dist/styles/form.module.scss +252 -0
  219. package/dist/styles/main.scss +18 -0
  220. package/dist/styles/module-variables.scss +13 -0
  221. package/dist/styles/variables/_borders.scss +26 -0
  222. package/dist/styles/variables/_buttons.scss +147 -0
  223. package/dist/styles/variables/_colors.scss +109 -0
  224. package/dist/styles/variables/_focus.scss +9 -0
  225. package/dist/styles/variables/_fonts.scss +101 -0
  226. package/dist/styles/variables/_gaps.scss +26 -0
  227. package/dist/styles/variables/_images.scss +18 -0
  228. package/dist/styles/variables/_responsive.scss +23 -0
  229. package/dist/styles/variables/_shadows.scss +5 -0
  230. package/dist/styles/variables/_variables.scss +14 -0
  231. package/dist/styles/variables.scss +75 -0
  232. package/dist/utils/getUikitClassNames.js +19 -0
  233. package/dist/utils/index.js +16 -0
  234. package/dist/utils/isWindowAvailable.js +9 -0
  235. package/dist/utils/objectHelpers.js +43 -0
  236. package/notes.txt +5 -0
  237. package/package.json +111 -0
  238. 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;