@pinuts/bsr-uikit-relaunch 0.3.5 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/config-overrides.js +1 -0
  2. package/dist/hooks/useValidationMessage.d.ts.map +1 -1
  3. package/dist/hooks/useValidationMessage.js +8 -1
  4. package/dist/hooks/withFieldGroup.d.ts.map +1 -1
  5. package/dist/hooks/withFieldGroup.js +35 -1
  6. package/dist/index.d.ts +4 -0
  7. package/dist/index.js +1 -1
  8. package/dist/items/AbholdatumMaterialienField/AbholdatumMaterialienField.d.ts +25 -0
  9. package/dist/items/AbholdatumMaterialienField/AbholdatumMaterialienField.d.ts.map +1 -0
  10. package/dist/items/AbholdatumMaterialienField/AbholdatumMaterialienField.js +77 -0
  11. package/dist/items/AbholdatumMaterialienField/getAbholTermine.d.ts +7 -0
  12. package/dist/items/AbholdatumMaterialienField/getAbholTermine.d.ts.map +1 -0
  13. package/dist/items/AbholdatumMaterialienField/getAbholTermine.js +117 -0
  14. package/dist/items/AbholortMaterialienField/AbholortMaterialienField.d.ts +26 -0
  15. package/dist/items/AbholortMaterialienField/AbholortMaterialienField.d.ts.map +1 -0
  16. package/dist/items/AbholortMaterialienField/AbholortMaterialienField.js +73 -0
  17. package/dist/items/BSRAddressSelector/BSRAddressButtons.d.ts.map +1 -1
  18. package/dist/items/BSRAddressSelector/BSRAddressButtons.js +10 -0
  19. package/dist/items/BSRAddressSelector/BSRAddressSelector.d.ts +1 -0
  20. package/dist/items/BSRAddressSelector/BSRAddressSelector.d.ts.map +1 -1
  21. package/dist/items/BSRAddressSelector/BSRAddressSelector.js +21 -2
  22. package/dist/items/BSRAddressSelector/BSRAutocompleteField.d.ts.map +1 -1
  23. package/dist/items/BSRAddressSelector/BSRAutocompleteField.js +14 -3
  24. package/dist/items/BSRAddressSelector/BSRStreetPlzSelector.d.ts.map +1 -1
  25. package/dist/items/BSRAddressSelector/BSRStreetPlzSelector.js +6 -0
  26. package/dist/items/BSRAddressSelector/HouseNumberSelectField.d.ts.map +1 -1
  27. package/dist/items/BSRAddressSelector/HouseNumberSelectField.js +5 -0
  28. package/dist/items/BootstrapInputGroupField/BootstrapInputGroupField.d.ts.map +1 -1
  29. package/dist/items/BootstrapInputGroupField/BootstrapInputGroupField.js +2 -1
  30. package/dist/items/DateInputField/DateInputField.d.ts.map +1 -1
  31. package/dist/items/DateInputField/DateInputField.js +2 -1
  32. package/dist/items/FileUploadField/FileUploadField.d.ts +4 -0
  33. package/dist/items/FileUploadField/FileUploadField.d.ts.map +1 -0
  34. package/dist/items/FileUploadField/FileUploadField.js +271 -0
  35. package/dist/items/FileUploadField/uploadedFileStore.d.ts +4 -0
  36. package/dist/items/FileUploadField/uploadedFileStore.d.ts.map +1 -0
  37. package/dist/items/FileUploadField/uploadedFileStore.js +31 -0
  38. package/dist/items/FormFieldWrapper/FormFieldChildPropTypes.d.ts +1 -0
  39. package/dist/items/FormFieldWrapper/FormFieldChildPropTypes.d.ts.map +1 -1
  40. package/dist/items/FormFieldWrapper/FormFieldChildPropTypes.js +1 -0
  41. package/dist/items/GroupInputField/GroupInputField.d.ts.map +1 -1
  42. package/dist/items/GroupInputField/GroupInputField.js +41 -4
  43. package/dist/items/Modal/Modal.d.ts.map +1 -1
  44. package/dist/items/Modal/Modal.js +6 -1
  45. package/dist/items/MultiSelectField/MultiSelectField.d.ts.map +1 -1
  46. package/dist/items/MultiSelectField/MultiSelectField.js +15 -2
  47. package/dist/items/NumberInputField/NumberInputField.d.ts.map +1 -1
  48. package/dist/items/NumberInputField/NumberInputField.js +2 -1
  49. package/dist/items/ReviewValue/ReviewValueList.d.ts +17 -0
  50. package/dist/items/ReviewValue/ReviewValueList.d.ts.map +1 -0
  51. package/dist/items/ReviewValue/ReviewValueList.js +36 -0
  52. package/dist/items/SectionSpinner/SectionSpinner.d.ts +1 -0
  53. package/dist/items/SectionSpinner/SectionSpinner.d.ts.map +1 -1
  54. package/dist/items/SelectField/SelectField.d.ts.map +1 -1
  55. package/dist/items/SelectField/SelectField.js +3 -2
  56. package/dist/items/StaticAlert/StaticAlert.d.ts +1 -0
  57. package/dist/items/StaticAlert/StaticAlert.d.ts.map +1 -1
  58. package/dist/items/TextAreaField/TextAreaField.d.ts.map +1 -1
  59. package/dist/items/TextAreaField/TextAreaField.js +8 -0
  60. package/dist/items/TextBox/TextBox.d.ts +1 -0
  61. package/dist/items/TextBox/TextBox.d.ts.map +1 -1
  62. package/dist/items/TextBox/TextBox.js +11 -2
  63. package/dist/items/TextInputField/TextInputField.d.ts.map +1 -1
  64. package/dist/items/TextInputField/TextInputField.js +8 -1
  65. package/dist/items/Toast/Toast.d.ts +1 -0
  66. package/dist/items/Toast/Toast.d.ts.map +1 -1
  67. package/dist/items/ToggleSwitchField/ToggleSwitchField.d.ts.map +1 -1
  68. package/dist/items/ToggleSwitchField/ToggleSwitchField.js +2 -1
  69. package/dist/items/index.d.ts +4 -1
  70. package/dist/items/index.d.ts.map +1 -1
  71. package/dist/items/index.js +22 -1
  72. package/dist/items/validations.d.ts.map +1 -0
  73. package/dist/items/validations.js +27 -0
  74. package/dist/locales.d.ts +73 -2
  75. package/dist/locales.js +64 -0
  76. package/dist/shared/ErrorMessagesInfoBox/ErrorMessagesInfoBox.d.ts +16 -0
  77. package/dist/shared/ErrorMessagesInfoBox/ErrorMessagesInfoBox.d.ts.map +1 -0
  78. package/dist/shared/ErrorMessagesInfoBox/ErrorMessagesInfoBox.js +144 -0
  79. package/dist/shared/FormWidget/FormWidget.d.ts +30 -0
  80. package/dist/shared/FormWidget/FormWidget.d.ts.map +1 -0
  81. package/dist/shared/FormWidget/FormWidget.js +165 -0
  82. package/dist/shared/FormWidget/FormWidgetControlPage.d.ts +29 -0
  83. package/dist/shared/FormWidget/FormWidgetControlPage.d.ts.map +1 -0
  84. package/dist/shared/FormWidget/FormWidgetControlPage.js +84 -0
  85. package/dist/shared/FormWidget/FormWidgetFormPage.d.ts +26 -0
  86. package/dist/shared/FormWidget/FormWidgetFormPage.d.ts.map +1 -0
  87. package/dist/shared/FormWidget/FormWidgetFormPage.js +55 -0
  88. package/dist/shared/FormWidget/FormWidgetMessagePage.d.ts +20 -0
  89. package/dist/shared/FormWidget/FormWidgetMessagePage.d.ts.map +1 -0
  90. package/dist/shared/FormWidget/FormWidgetMessagePage.js +37 -0
  91. package/dist/shared/FormWidget/captions.d.ts +33 -0
  92. package/dist/shared/FormWidget/captions.d.ts.map +1 -0
  93. package/dist/shared/FormWidget/captions.js +43 -0
  94. package/dist/shared/KehrenbuergerForm/KehrenbuergerForm.d.ts +23 -0
  95. package/dist/shared/KehrenbuergerForm/KehrenbuergerForm.d.ts.map +1 -0
  96. package/dist/shared/KehrenbuergerForm/KehrenbuergerForm.js +173 -0
  97. package/dist/styles/_errorMessagesInfoBox.scss +42 -0
  98. package/dist/styles/_form.scss +9 -0
  99. package/dist/styles/_review.scss +29 -0
  100. package/dist/styles/main.scss +62 -49
  101. package/dist/styles/variables/_buttons.scss +8 -7
  102. package/dist/styles/variables/_variables.scss +15 -2
  103. package/dist/utils/files/convertFilesToUploadFiles.d.ts +8 -0
  104. package/dist/utils/files/convertFilesToUploadFiles.d.ts.map +1 -0
  105. package/dist/utils/files/convertFilesToUploadFiles.js +33 -0
  106. package/dist/utils/files/formatFileSize.d.ts +3 -0
  107. package/dist/utils/files/formatFileSize.d.ts.map +1 -0
  108. package/dist/utils/files/formatFileSize.js +44 -0
  109. package/dist/utils/files/generateUniqueFilename.d.ts +3 -0
  110. package/dist/utils/files/generateUniqueFilename.d.ts.map +1 -0
  111. package/dist/utils/files/generateUniqueFilename.js +32 -0
  112. package/dist/utils/files/index.d.ts +7 -0
  113. package/dist/utils/files/index.d.ts.map +1 -0
  114. package/dist/utils/files/index.js +71 -0
  115. package/dist/utils/files/validateFiles.d.ts +9 -0
  116. package/dist/utils/files/validateFiles.d.ts.map +1 -0
  117. package/dist/utils/files/validateFiles.js +28 -0
  118. package/dist/utils/files/validateFilesBySize.d.ts +6 -0
  119. package/dist/utils/files/validateFilesBySize.d.ts.map +1 -0
  120. package/dist/utils/files/validateFilesBySize.js +31 -0
  121. package/dist/utils/files/validateFilesByType.d.ts +9 -0
  122. package/dist/utils/files/validateFilesByType.d.ts.map +1 -0
  123. package/dist/utils/files/validateFilesByType.js +79 -0
  124. package/dist/utils/index.d.ts +1 -0
  125. package/dist/utils/index.js +11 -0
  126. package/dist/utils/reviewValue.d.ts +3 -0
  127. package/dist/utils/reviewValue.d.ts.map +1 -0
  128. package/dist/utils/reviewValue.js +16 -0
  129. package/package.json +1 -1
  130. package/webpack.config.js +3 -0
  131. package/dist/items/eventWizardItems/validations.d.ts.map +0 -1
  132. package/dist/items/eventWizardItems/validations.js +0 -7
  133. /package/dist/items/{eventWizardItems/validations.d.ts → validations.d.ts} +0 -0
@@ -0,0 +1,25 @@
1
+ export default AbholdatumMaterialienField;
2
+ /**
3
+ * Auswahl des Abholtermins für die Materialien: die fünf letzten Werktage vor der
4
+ * Aktion, gerendert als Radiobuttons. Das Aktionsdatum kommt aus einem anderen Feld
5
+ * des Formulars (`dateKey`, per Default `aktion_datum`); ohne dieses Datum gibt es
6
+ * keine Termine, dann bleibt das Feld mit einem Hinweis deaktiviert.
7
+ */
8
+ declare function AbholdatumMaterialienField({ config, ...otherProps }: {
9
+ [x: string]: any;
10
+ config?: {};
11
+ }): React.JSX.Element;
12
+ declare namespace AbholdatumMaterialienField {
13
+ namespace propTypes {
14
+ let config: PropTypes.Requireable<PropTypes.InferProps<{
15
+ key: PropTypes.Requireable<string>;
16
+ dateKey: PropTypes.Requireable<string>;
17
+ ausschlussDaten: PropTypes.Requireable<string>;
18
+ emptyList: PropTypes.Requireable<string>;
19
+ readOnly: PropTypes.Requireable<boolean>;
20
+ }>>;
21
+ }
22
+ }
23
+ import React from 'react';
24
+ import PropTypes from 'prop-types';
25
+ //# sourceMappingURL=AbholdatumMaterialienField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbholdatumMaterialienField.d.ts","sourceRoot":"","sources":["../../../src/items/AbholdatumMaterialienField/AbholdatumMaterialienField.jsx"],"names":[],"mappings":";AAYA;;;;;GAKG;AACH;;;sBA6BC;;;;;;;;;;;;kBA/C8B,OAAO;sBAChB,YAAY"}
@@ -0,0 +1,77 @@
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 _GroupInputField = _interopRequireDefault(require("../GroupInputField/GroupInputField.jsx"));
11
+ var _getAbholTermine = require("./getAbholTermine.js");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ 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); }
14
+ 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; }
15
+ 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); }
16
+ const {
17
+ useFormikContext
18
+ } = _formBuilder.formik;
19
+ const DEFAULT_DATE_KEY = 'aktion_datum';
20
+ const DEFAULT_EMPTY_LIST = 'bsrItems.abholdatumMaterialienField.emptyList';
21
+
22
+ /**
23
+ * Auswahl des Abholtermins für die Materialien: die fünf letzten Werktage vor der
24
+ * Aktion, gerendert als Radiobuttons. Das Aktionsdatum kommt aus einem anderen Feld
25
+ * des Formulars (`dateKey`, per Default `aktion_datum`); ohne dieses Datum gibt es
26
+ * keine Termine, dann bleibt das Feld mit einem Hinweis deaktiviert.
27
+ */
28
+ const AbholdatumMaterialienField = _ref => {
29
+ let {
30
+ config = {},
31
+ ...otherProps
32
+ } = _ref;
33
+ const {
34
+ values
35
+ } = useFormikContext();
36
+ const aktionDatum = values[config.dateKey || DEFAULT_DATE_KEY];
37
+ const {
38
+ ausschlussDaten = ''
39
+ } = config;
40
+ const abholOptions = (0, _react.useMemo)(() => {
41
+ if (!aktionDatum) {
42
+ return [];
43
+ }
44
+ return (0, _getAbholTermine.getAbholTermine)(aktionDatum, {
45
+ ausschlussDaten
46
+ }).map(datum => ({
47
+ value: (0, _getAbholTermine.formatAbholDatum)(datum, false),
48
+ label: (0, _getAbholTermine.formatAbholDatum)(datum, true)
49
+ }));
50
+ }, [aktionDatum, ausschlussDaten]);
51
+ const hasOptions = abholOptions.length > 0;
52
+ const computedConfig = (0, _react.useMemo)(() => ({
53
+ ...config,
54
+ options: hasOptions ? abholOptions : [{
55
+ value: '',
56
+ label: config.emptyList || DEFAULT_EMPTY_LIST
57
+ }],
58
+ readOnly: config.readOnly || !hasOptions,
59
+ multipleChoice: false
60
+ }), [abholOptions, config, hasOptions]);
61
+ return /*#__PURE__*/_react.default.createElement(_GroupInputField.default, _extends({}, otherProps, {
62
+ config: computedConfig
63
+ }));
64
+ };
65
+ AbholdatumMaterialienField.propTypes = {
66
+ config: _propTypes.default.shape({
67
+ key: _propTypes.default.string,
68
+ // Feld, aus dem das Aktionsdatum gelesen wird (ISO, YYYY-MM-DD)
69
+ dateKey: _propTypes.default.string,
70
+ // Feiertage/gesperrte Tage, z.B. "1.1.\n1.5\n3.10"
71
+ ausschlussDaten: _propTypes.default.string,
72
+ emptyList: _propTypes.default.string,
73
+ readOnly: _propTypes.default.bool
74
+ })
75
+ };
76
+ (0, _formBuilder.registerComponent)('AbholdatumMaterialienField', AbholdatumMaterialienField);
77
+ var _default = exports.default = AbholdatumMaterialienField;
@@ -0,0 +1,7 @@
1
+ export function parseDeutschesDatum(datumString: any): Date | null;
2
+ export function parseAusschlussDaten(datenString: any): Date[];
3
+ export function getAbholTermine(aktionsDatum: Date | string, { ausschlussDaten }?: {
4
+ ausschlussDaten?: Date[] | string;
5
+ }): Date[];
6
+ export function formatAbholDatum(date: any, mitWochentag?: boolean): string;
7
+ //# sourceMappingURL=getAbholTermine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAbholTermine.d.ts","sourceRoot":"","sources":["../../../src/items/AbholdatumMaterialienField/getAbholTermine.js"],"names":[],"mappings":"AAUO,uDAFM,IAAI,GAAC,IAAI,CA4CrB;AAOM,wDAFM,IAAI,EAAE,CAWlB;AA6BM,8CALI,IAAI,GAAC,MAAM,wBACX;IAAC,eAAe,CAAC,EAAE,IAAI,EAAE,GAAC,MAAM,CAAA;CAAC,GAE/B,IAAI,EAAE,CA+BlB;AAKM,4EAIN"}
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.parseDeutschesDatum = exports.parseAusschlussDaten = exports.getAbholTermine = exports.formatAbholDatum = void 0;
7
+ const WEEKDAYS = ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'];
8
+ const TERMIN_COUNT = 5;
9
+
10
+ /**
11
+ * Parst ein deutsches Datum ("1.1.2026", "01.01", "1.5"). Ohne Jahresangabe wird
12
+ * das nächste Vorkommen genommen.
13
+ *
14
+ * @returns {Date|null} null bei ungültigem Format
15
+ */
16
+ const parseDeutschesDatum = datumString => {
17
+ if (!datumString || typeof datumString !== 'string') {
18
+ return null;
19
+ }
20
+ const parts = datumString.trim().split('.');
21
+ if (parts.length < 2 || parts.length > 3) {
22
+ return null;
23
+ }
24
+ const tag = parseInt(parts[0], 10);
25
+ const monat = parseInt(parts[1], 10);
26
+ if (Number.isNaN(tag) || Number.isNaN(monat) || tag < 1 || tag > 31 || monat < 1 || monat > 12) {
27
+ return null;
28
+ }
29
+ if (parts.length === 3 && parts[2]) {
30
+ let jahr = parseInt(parts[2], 10);
31
+ if (Number.isNaN(jahr)) {
32
+ return null;
33
+ }
34
+ if (jahr < 100) {
35
+ jahr += 2000;
36
+ }
37
+ return new Date(jahr, monat - 1, tag);
38
+ }
39
+
40
+ // Kein Jahr angegeben: das nächste Vorkommen bestimmen
41
+ const heute = new Date();
42
+ const datumDiesesJahr = new Date(heute.getFullYear(), monat - 1, tag);
43
+ heute.setHours(0, 0, 0, 0);
44
+ datumDiesesJahr.setHours(0, 0, 0, 0);
45
+ const jahr = datumDiesesJahr <= heute ? heute.getFullYear() + 1 : heute.getFullYear();
46
+ return new Date(jahr, monat - 1, tag);
47
+ };
48
+
49
+ /**
50
+ * Zerlegt einen String mit mehreren Daten (getrennt durch Zeilenumbrüche oder Kommas).
51
+ *
52
+ * @returns {Date[]}
53
+ */
54
+ exports.parseDeutschesDatum = parseDeutschesDatum;
55
+ const parseAusschlussDaten = datenString => {
56
+ if (!datenString || typeof datenString !== 'string') {
57
+ return [];
58
+ }
59
+ return datenString.split(/[\n,]+/).map(parseDeutschesDatum).filter(Boolean);
60
+ };
61
+ exports.parseAusschlussDaten = parseAusschlussDaten;
62
+ const istAusgeschlossen = (date, ausschlussDaten) => ausschlussDaten.some(ausschlussDatum => date.getDate() === ausschlussDatum.getDate() && date.getMonth() === ausschlussDatum.getMonth() && date.getFullYear() === ausschlussDatum.getFullYear());
63
+ const toDate = aktionsDatum => {
64
+ if (typeof aktionsDatum === 'string') {
65
+ const parts = aktionsDatum.split('-');
66
+
67
+ // ISO-Format YYYY-MM-DD
68
+ if (parts.length === 3) {
69
+ return new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) - 1, parseInt(parts[2], 10));
70
+ }
71
+ }
72
+ return new Date(aktionsDatum);
73
+ };
74
+
75
+ /**
76
+ * Die letzten fünf Werktage (Mo-Fr) vor der Aktion, ohne die Ausschlussdaten.
77
+ *
78
+ * @param {Date|string} aktionsDatum Date oder ISO-String (YYYY-MM-DD)
79
+ * @param {{ausschlussDaten?: Date[]|string}} optionen Ausschlussdaten als Array oder
80
+ * als String ("1.1\n1.5\n24.12")
81
+ * @returns {Date[]} chronologisch, ältester Termin zuerst
82
+ */
83
+ const getAbholTermine = function (aktionsDatum) {
84
+ let {
85
+ ausschlussDaten = []
86
+ } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
87
+ const aktionDate = toDate(aktionsDatum);
88
+ if (Number.isNaN(aktionDate.getTime())) {
89
+ return [];
90
+ }
91
+ const ausschlussArray = typeof ausschlussDaten === 'string' ? parseAusschlussDaten(ausschlussDaten) : ausschlussDaten || [];
92
+ const termine = [];
93
+ const currentDate = new Date(aktionDate);
94
+
95
+ // Start am Vortag der Aktion
96
+ currentDate.setDate(currentDate.getDate() - 1);
97
+ while (termine.length < TERMIN_COUNT) {
98
+ const dayOfWeek = currentDate.getDay();
99
+ const isWorkday = dayOfWeek >= 1 && dayOfWeek <= 5;
100
+ if (isWorkday && !istAusgeschlossen(currentDate, ausschlussArray)) {
101
+ termine.push(new Date(currentDate));
102
+ }
103
+ currentDate.setDate(currentDate.getDate() - 1);
104
+ }
105
+ return termine.reverse();
106
+ };
107
+
108
+ /**
109
+ * Formatiert ein Datum deutsch, z.B. "Mo. 6.5.2024" bzw. "6.5.2024".
110
+ */
111
+ exports.getAbholTermine = getAbholTermine;
112
+ const formatAbholDatum = function (date) {
113
+ let mitWochentag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
114
+ const datum = `${date.getDate()}.${date.getMonth() + 1}.${date.getFullYear()}`;
115
+ return mitWochentag ? `${WEEKDAYS[date.getDay()]}. ${datum}` : datum;
116
+ };
117
+ exports.formatAbholDatum = formatAbholDatum;
@@ -0,0 +1,26 @@
1
+ export default AbholortMaterialienField;
2
+ /**
3
+ * Auswahl des Abholorts für die Materialien: eine Selectbox, unter der zusätzlich
4
+ * die Adresse der gewählten Option angezeigt wird. Die Adresse steht in der
5
+ * jeweiligen Option unter `adresse` und darf Markup enthalten.
6
+ */
7
+ declare function AbholortMaterialienField({ config, ...otherProps }: {
8
+ [x: string]: any;
9
+ config?: {};
10
+ }): React.JSX.Element;
11
+ declare namespace AbholortMaterialienField {
12
+ namespace propTypes {
13
+ let config: PropTypes.Requireable<PropTypes.InferProps<{
14
+ key: PropTypes.Requireable<string>;
15
+ options: PropTypes.Requireable<PropTypes.InferProps<{
16
+ value: PropTypes.Requireable<NonNullable<string | number>>;
17
+ label: PropTypes.Requireable<string>;
18
+ adresse: PropTypes.Requireable<string>;
19
+ }>[]>;
20
+ inputProps: PropTypes.Requireable<object>;
21
+ }>>;
22
+ }
23
+ }
24
+ import React from 'react';
25
+ import PropTypes from 'prop-types';
26
+ //# sourceMappingURL=AbholortMaterialienField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbholortMaterialienField.d.ts","sourceRoot":"","sources":["../../../src/items/AbholortMaterialienField/AbholortMaterialienField.jsx"],"names":[],"mappings":";AASA;;;;GAIG;AACH;;;sBAwCC;;;;;;;;;;;;;;kBAtD8B,OAAO;sBAChB,YAAY"}
@@ -0,0 +1,73 @@
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 _SelectField = _interopRequireDefault(require("../SelectField/SelectField.jsx"));
11
+ var _TextBox = _interopRequireDefault(require("../TextBox/TextBox.jsx"));
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ 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); }
14
+ 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; }
15
+ 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); }
16
+ const {
17
+ useField
18
+ } = _formBuilder.formik;
19
+
20
+ /**
21
+ * Auswahl des Abholorts für die Materialien: eine Selectbox, unter der zusätzlich
22
+ * die Adresse der gewählten Option angezeigt wird. Die Adresse steht in der
23
+ * jeweiligen Option unter `adresse` und darf Markup enthalten.
24
+ */
25
+ const AbholortMaterialienField = _ref => {
26
+ let {
27
+ config = {},
28
+ ...otherProps
29
+ } = _ref;
30
+ const [field] = useField(config.key || 'missingKey');
31
+ const addressId = `selectedAdresse_${config.key}`;
32
+ const selectedAddress = (0, _react.useMemo)(() => {
33
+ const options = config.options || [];
34
+ const selected = options.find(option => option?.value !== '' && String(option?.value) === String(field.value));
35
+ return selected?.adresse || '';
36
+ }, [config.options, field.value]);
37
+
38
+ // Die Adresse als Beschreibung mit der Selectbox verknüpfen
39
+ const selectConfig = (0, _react.useMemo)(() => ({
40
+ ...config,
41
+ inputProps: {
42
+ ...config.inputProps,
43
+ ...(selectedAddress ? {
44
+ 'aria-describedby': addressId
45
+ } : {})
46
+ }
47
+ }), [config, selectedAddress, addressId]);
48
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_SelectField.default, _extends({}, otherProps, {
49
+ config: selectConfig
50
+ })), selectedAddress && /*#__PURE__*/_react.default.createElement(_TextBox.default, {
51
+ config: {
52
+ text: selectedAddress,
53
+ html: true,
54
+ inputProps: {
55
+ id: addressId,
56
+ className: 'abholort-adresse'
57
+ }
58
+ }
59
+ }));
60
+ };
61
+ AbholortMaterialienField.propTypes = {
62
+ config: _propTypes.default.shape({
63
+ key: _propTypes.default.string,
64
+ options: _propTypes.default.arrayOf(_propTypes.default.shape({
65
+ value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
66
+ label: _propTypes.default.string,
67
+ adresse: _propTypes.default.string
68
+ })),
69
+ inputProps: _propTypes.default.object
70
+ })
71
+ };
72
+ (0, _formBuilder.registerComponent)('AbholortMaterialienField', AbholortMaterialienField);
73
+ var _default = exports.default = AbholortMaterialienField;
@@ -1 +1 @@
1
- {"version":3,"file":"BSRAddressButtons.d.ts","sourceRoot":"","sources":["../../../src/items/BSRAddressSelector/BSRAddressButtons.jsx"],"names":[],"mappings":";AAQA;;;;sBAwBC;;;;;;;kBAhCsD,OAAO;sBACxC,YAAY"}
1
+ {"version":3,"file":"BSRAddressButtons.d.ts","sourceRoot":"","sources":["../../../src/items/BSRAddressSelector/BSRAddressButtons.jsx"],"names":[],"mappings":";AAQA;;;;sBA6BC;;;;;;;kBArCsD,OAAO;sBACxC,YAAY"}
@@ -32,6 +32,11 @@ const BSRAddressButtons = _ref => {
32
32
  const onClick = () => {
33
33
  resetContextValues();
34
34
  };
35
+
36
+ // In der Review gibt es nichts zurückzusetzen
37
+ if (config.reviewMode) {
38
+ return null;
39
+ }
35
40
  return /*#__PURE__*/_react.default.createElement(_Button.default, _extends({
36
41
  key: config.key
37
42
  }, c, otherProps, {
@@ -90,6 +95,11 @@ const BSRAddressPLZSelectButton = _ref3 => {
90
95
  const onClick = () => {
91
96
  setSelectedRadioValue(values[localFieldKey]);
92
97
  };
98
+
99
+ // In der Review wird nichts mehr ausgewählt
100
+ if (config.reviewMode) {
101
+ return null;
102
+ }
93
103
  const c = {
94
104
  ...config
95
105
  };
@@ -45,6 +45,7 @@ declare namespace BSRAddressSelector {
45
45
  readOnly: PropTypes.Requireable<boolean>;
46
46
  disabled: PropTypes.Requireable<boolean>;
47
47
  viewMode: PropTypes.Requireable<boolean>;
48
+ reviewMode: PropTypes.Requireable<boolean>;
48
49
  stepId: PropTypes.Requireable<string>;
49
50
  hideEmptyValues: PropTypes.Requireable<boolean>;
50
51
  key: PropTypes.Requireable<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"BSRAddressSelector.d.ts","sourceRoot":"","sources":["../../../src/items/BSRAddressSelector/BSRAddressSelector.jsx"],"names":[],"mappings":";AAkBA;;sBAkCC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBApD8B,OAAO;sBAChB,YAAY"}
1
+ {"version":3,"file":"BSRAddressSelector.d.ts","sourceRoot":"","sources":["../../../src/items/BSRAddressSelector/BSRAddressSelector.jsx"],"names":[],"mappings":";AAwBA;;sBA4CC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBApE8B,OAAO;sBAChB,YAAY"}
@@ -21,6 +21,19 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
21
21
  // init sub components
22
22
 
23
23
  const subFormConfigStr = JSON.stringify(require('./BSRAddressSubForm.json'));
24
+ const applyReviewMode = function () {
25
+ let components = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
26
+ return components.map(component => ({
27
+ ...component,
28
+ config: {
29
+ ...component.config,
30
+ reviewMode: true
31
+ },
32
+ ...(component.components ? {
33
+ components: applyReviewMode(component.components)
34
+ } : {})
35
+ }));
36
+ };
24
37
  const BSRAddressSelector = _ref => {
25
38
  let {
26
39
  config
@@ -40,13 +53,19 @@ const BSRAddressSelector = _ref => {
40
53
  });
41
54
  }
42
55
  const subFormConfig = JSON.parse(subFormConfigStrInner);
56
+
57
+ // Das Sub-Formular wird aus JSON gebaut und läuft damit nicht durch die
58
+ // Flag-Vererbung des FormBuilders - reviewMode muss von Hand weitergereicht werden.
59
+ const subFormComponents = (0, _react.useMemo)(() => config.reviewMode ? applyReviewMode(subFormConfig.components) : subFormConfig.components,
60
+ // eslint-disable-next-line react-hooks/exhaustive-deps
61
+ [subFormConfigStrInner, config.reviewMode]);
43
62
  const initAddressContext = (0, _react.useMemo)(() => {
44
63
  const restUrlWithTrailingSlash = restUrl.endsWith('/') ? restUrl : `${restUrl}/`;
45
64
  return {
46
65
  groupKey,
47
66
  restUrl: restUrlWithTrailingSlash,
48
67
  doSubmitOnChange,
49
- overwriteLabels,
68
+ overwriteLabels: overwriteLabels || {},
50
69
  ...(controllerPath && {
51
70
  controllerPath
52
71
  })
@@ -56,7 +75,7 @@ const BSRAddressSelector = _ref => {
56
75
  initAddressContext: initAddressContext
57
76
  }, /*#__PURE__*/_react.default.createElement(_formBuilder.ComponentPopulator, {
58
77
  formId: `${groupKey}-adselctor-wrapper`,
59
- components: subFormConfig.components
78
+ components: subFormComponents
60
79
  }));
61
80
  };
62
81
  BSRAddressSelector.propTypes = {
@@ -1 +1 @@
1
- {"version":3,"file":"BSRAutocompleteField.d.ts","sourceRoot":"","sources":["../../../src/items/BSRAddressSelector/BSRAutocompleteField.jsx"],"names":[],"mappings":";AA+CA;;QAyRC;;;;;;;;;;;;;;;;;;;;;sBAxUqB,YAAY"}
1
+ {"version":3,"file":"BSRAutocompleteField.d.ts","sourceRoot":"","sources":["../../../src/items/BSRAddressSelector/BSRAutocompleteField.jsx"],"names":[],"mappings":";AA+CA;;QA8RC;;;;;;;;;;;;;;;;;;;;;sBA7UqB,YAAY"}
@@ -53,6 +53,7 @@ const BSRAutocompleteField = _ref => {
53
53
  inputProps = {},
54
54
  key,
55
55
  viewMode,
56
+ reviewMode,
56
57
  labelText,
57
58
  disabled,
58
59
  readOnly,
@@ -200,7 +201,7 @@ const BSRAutocompleteField = _ref => {
200
201
  if (dontShowSelector) {
201
202
  return null;
202
203
  }
203
- if (viewMode) {
204
+ if (viewMode || reviewMode) {
204
205
  return usedValueLabel?.label || '';
205
206
  }
206
207
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_react2.ComboboxProvider, null, /*#__PURE__*/_react.default.createElement("div", {
@@ -238,8 +239,13 @@ const BSRAutocompleteField = _ref => {
238
239
  }, /*#__PURE__*/_react.default.createElement(_react2.ComboboxPopover, {
239
240
  store: combobox,
240
241
  gutter: 4,
241
- focusable: true,
242
- className: `${_BSRAddressSelectorModule.default.popover}`,
242
+ focusable: true
243
+ // ariakit renders the popover in a portal on
244
+ // document.body, which escapes the consumer's
245
+ // `.bsr-uikit` wrapper. Adding the class keeps
246
+ // the portaled dropdown scoped/styled.
247
+ ,
248
+ className: `bsr-uikit ${_BSRAddressSelectorModule.default.popover}`,
243
249
  sameWidth: true,
244
250
  autoFocusOnShow: false,
245
251
  initialFocus: preselectedItemRef
@@ -280,6 +286,11 @@ const WrappedAutocompleteField = props => {
280
286
  const {
281
287
  dontShowSelector
282
288
  } = (0, _react.useContext)(_BSRAddressContext.BSRAddressContext);
289
+
290
+ // Eingabehilfe auf dem Weg zur Adresse: in der Review zählt nur "Ihre Auswahl"
291
+ if (props.config?.reviewMode) {
292
+ return null;
293
+ }
283
294
  if (dontShowSelector) {
284
295
  return null;
285
296
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BSRStreetPlzSelector.d.ts","sourceRoot":"","sources":["../../../src/items/BSRAddressSelector/BSRStreetPlzSelector.jsx"],"names":[],"mappings":";AAgMA,iFAA6E;kBAhMtB,OAAO"}
1
+ {"version":3,"file":"BSRStreetPlzSelector.d.ts","sourceRoot":"","sources":["../../../src/items/BSRAddressSelector/BSRStreetPlzSelector.jsx"],"names":[],"mappings":";AAsMA,iFAA6E;kBAtMtB,OAAO"}
@@ -127,6 +127,12 @@ const BSRStreetPlzSelector = props => {
127
127
  };
128
128
  }, [selectedStreedAndNumber, groupKey, labelKey, setFieldValue, getControllerPath, localFieldKey, setShowNoResultsError, setSelectedStreetList]);
129
129
  const noResultsError = showNoResultsError ? /*#__PURE__*/_react.default.createElement("p", null, addressNotFoundStr) : null;
130
+
131
+ // Der Selector ist reines Auswahl-Hilfsmittel (PLZ-Radios, "Adresse prüfen",
132
+ // "Postleitzahl auswählen"). In der Review zählt nur die getroffene Auswahl.
133
+ if (config.reviewMode) {
134
+ return null;
135
+ }
130
136
  if (dontShowSelector) {
131
137
  return null;
132
138
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HouseNumberSelectField.d.ts","sourceRoot":"","sources":["../../../src/items/BSRAddressSelector/HouseNumberSelectField.jsx"],"names":[],"mappings":";AAaA,8EAqBC;;;;;;;;;;kBAlCiC,OAAO;sBACnB,YAAY"}
1
+ {"version":3,"file":"HouseNumberSelectField.d.ts","sourceRoot":"","sources":["../../../src/items/BSRAddressSelector/HouseNumberSelectField.jsx"],"names":[],"mappings":";AAaA,8EA0BC;;;;;;;;;;kBAvCiC,OAAO;sBACnB,YAAY"}
@@ -25,6 +25,11 @@ const WrappedHouseNumberSelectField = props => {
25
25
  const placeHolderI18n = (0, _useGetPlaceHolderText.default)(placeHolderI18nKey);
26
26
  const placeHolderConfig = props.config.placeholder || placeHolderI18nKey;
27
27
  const placeholder = placeHolderConfig && placeHolderI18nKey !== placeHolderConfig ? placeHolderConfig : placeHolderI18n;
28
+
29
+ // Eingabehilfe auf dem Weg zur Adresse: in der Review zählt nur "Ihre Auswahl"
30
+ if (props.config?.reviewMode) {
31
+ return null;
32
+ }
28
33
  if (dontShowSelector) {
29
34
  return null;
30
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BootstrapInputGroupField.d.ts","sourceRoot":"","sources":["../../../src/items/BootstrapInputGroupField/BootstrapInputGroupField.jsx"],"names":[],"mappings":";AAkEA,qFAAqF;kBAjEnE,OAAO"}
1
+ {"version":3,"file":"BootstrapInputGroupField.d.ts","sourceRoot":"","sources":["../../../src/items/BootstrapInputGroupField/BootstrapInputGroupField.jsx"],"names":[],"mappings":";AAmEA,qFAAqF;kBAlEnE,OAAO"}
@@ -27,12 +27,13 @@ const BootstrapInputGroupField = _ref => {
27
27
  readOnly,
28
28
  disabled,
29
29
  viewMode,
30
+ reviewMode,
30
31
  fieldIds,
31
32
  leftAddonText,
32
33
  rightAddonText
33
34
  } = _ref;
34
35
  const handleChange = e => onChange(e.target.value);
35
- if (viewMode) {
36
+ if (viewMode || reviewMode) {
36
37
  return value;
37
38
  }
38
39
  const formControlClassNames = (0, _getUikitClassNames.getFormControlClassNames)(isInvalid, readOnly, disabled, className);
@@ -1 +1 @@
1
- {"version":3,"file":"DateInputField.d.ts","sourceRoot":"","sources":["../../../src/items/DateInputField/DateInputField.jsx"],"names":[],"mappings":";AAmHA,2EAAiE;kBAnHlC,OAAO"}
1
+ {"version":3,"file":"DateInputField.d.ts","sourceRoot":"","sources":["../../../src/items/DateInputField/DateInputField.jsx"],"names":[],"mappings":";AAoHA,2EAAiE;kBApHlC,OAAO"}
@@ -34,6 +34,7 @@ const DateInputField = _ref => {
34
34
  ariaAttributes,
35
35
  disabled,
36
36
  viewMode,
37
+ reviewMode,
37
38
  dateFormat,
38
39
  monthView = false,
39
40
  dayOfMonth = 'first',
@@ -54,7 +55,7 @@ const DateInputField = _ref => {
54
55
  }
55
56
  return value;
56
57
  }, [value, monthView]);
57
- if (viewMode) {
58
+ if (viewMode || reviewMode) {
58
59
  if (!value) {
59
60
  return '';
60
61
  }
@@ -0,0 +1,4 @@
1
+ export default HigherOrderFileUploadField;
2
+ declare const HigherOrderFileUploadField: (props: any) => React.JSX.Element;
3
+ import React from 'react';
4
+ //# sourceMappingURL=FileUploadField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUploadField.d.ts","sourceRoot":"","sources":["../../../src/items/FileUploadField/FileUploadField.jsx"],"names":[],"mappings":";AA2TA,4EAAmE;kBA3TL,OAAO"}