@pinuts/bsr-uikit-relaunch 0.4.3 → 0.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/hooks/withFieldGroup.d.ts.map +1 -1
- package/dist/hooks/withFieldGroup.js +46 -18
- package/dist/index.js +1 -1
- package/dist/items/AbholortMaterialienField/AbholortMaterialienField.d.ts.map +1 -1
- package/dist/items/AbholortMaterialienField/AbholortMaterialienField.js +7 -3
- package/dist/items/BSRAddressSelector/BSRAddressContext.d.ts +1 -0
- package/dist/items/BSRAddressSelector/BSRAddressContext.d.ts.map +1 -1
- package/dist/items/BSRAddressSelector/BSRAddressContext.js +4 -1
- package/dist/items/BSRAddressSelector/BSRAddressSelector.d.ts.map +1 -1
- package/dist/items/BSRAddressSelector/BSRAddressSelector.js +41 -2
- package/dist/items/BSRAddressSelector/BSRAutocompleteField.d.ts +9 -1
- package/dist/items/BSRAddressSelector/BSRAutocompleteField.d.ts.map +1 -1
- package/dist/items/BSRAddressSelector/BSRAutocompleteField.js +29 -7
- package/dist/items/BSRAddressSelector/BSRStreetPlzSelector.js +6 -1
- package/dist/items/BSRAddressSelector/HouseNumberSelectField.d.ts.map +1 -1
- package/dist/items/BSRAddressSelector/HouseNumberSelectField.js +7 -3
- package/dist/items/BSRAddressSelector/withAddressGroupValidation.d.ts +12 -0
- package/dist/items/BSRAddressSelector/withAddressGroupValidation.d.ts.map +1 -0
- package/dist/items/BSRAddressSelector/withAddressGroupValidation.js +57 -0
- package/dist/items/FieldsetWrapper/FieldsetWrapper.d.ts +1 -0
- package/dist/items/FieldsetWrapper/FieldsetWrapper.d.ts.map +1 -1
- package/dist/items/FieldsetWrapper/FieldsetWrapper.js +28 -0
- package/dist/items/FileUploadField/FileUploadField.d.ts.map +1 -1
- package/dist/items/FileUploadField/FileUploadField.js +19 -3
- package/dist/items/FileUploadField/uploadedFileStore.d.ts +1 -0
- package/dist/items/FileUploadField/uploadedFileStore.d.ts.map +1 -1
- package/dist/items/FileUploadField/uploadedFileStore.js +10 -1
- package/dist/items/Grid/BSRGridColumn.d.ts.map +1 -1
- package/dist/items/Grid/BSRGridColumn.js +15 -1
- package/dist/items/Grid/BSRGridRow.d.ts.map +1 -1
- package/dist/items/Grid/BSRGridRow.js +15 -1
- package/dist/items/ReviewValue/ReviewValueList.d.ts +1 -1
- package/dist/items/ReviewValue/ReviewValueList.d.ts.map +1 -1
- package/dist/items/ReviewValue/ReviewValueList.js +3 -3
- package/dist/locales.d.ts +2 -0
- package/dist/locales.js +2 -0
- package/dist/shared/ErrorMessagesInfoBox/ErrorMessagesInfoBox.d.ts.map +1 -1
- package/dist/shared/ErrorMessagesInfoBox/ErrorMessagesInfoBox.js +3 -1
- package/dist/shared/FormWidget/FormWidgetControlPage.d.ts.map +1 -1
- package/dist/shared/FormWidget/FormWidgetControlPage.js +14 -5
- package/dist/shared/FormWidget/ReviewLayoutContext.d.ts +11 -0
- package/dist/shared/FormWidget/ReviewLayoutContext.d.ts.map +1 -0
- package/dist/shared/FormWidget/ReviewLayoutContext.js +17 -0
- package/dist/shared/KehrenbuergerForm/KehrenbuergerForm.d.ts.map +1 -1
- package/dist/shared/KehrenbuergerForm/KehrenbuergerForm.js +29 -2
- package/dist/styles/_errorMessagesInfoBox.scss +2 -1
- package/dist/styles/_form.scss +14 -3
- package/dist/styles/_review.scss +52 -3
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BSRGridRow.d.ts","sourceRoot":"","sources":["../../../src/items/Grid/BSRGridRow.jsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"BSRGridRow.d.ts","sourceRoot":"","sources":["../../../src/items/Grid/BSRGridRow.jsx"],"names":[],"mappings":";AAMA;;;sBAqBC;;;;;;;kBA3BiC,OAAO;sBACnB,YAAY"}
|
|
@@ -4,15 +4,29 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var _react =
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
9
|
var _formBuilder = require("@pinuts/form-builder");
|
|
10
|
+
var _ReviewLayoutContext = _interopRequireDefault(require("../../shared/FormWidget/ReviewLayoutContext.js"));
|
|
10
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
+
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); }
|
|
13
|
+
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; }
|
|
11
14
|
const BSRGridRow = _ref => {
|
|
12
15
|
let {
|
|
13
16
|
components,
|
|
14
17
|
children
|
|
15
18
|
} = _ref;
|
|
19
|
+
const {
|
|
20
|
+
active: isReviewLayout
|
|
21
|
+
} = (0, _react.useContext)(_ReviewLayoutContext.default);
|
|
22
|
+
|
|
23
|
+
// Kontrollseite: einspaltige Liste statt Formular-Raster
|
|
24
|
+
if (isReviewLayout) {
|
|
25
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, components && /*#__PURE__*/_react.default.createElement(_formBuilder.ComponentPopulator, {
|
|
26
|
+
components: components,
|
|
27
|
+
formId: ''
|
|
28
|
+
}), children);
|
|
29
|
+
}
|
|
16
30
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
17
31
|
className: 'row'
|
|
18
32
|
}, components && /*#__PURE__*/_react.default.createElement(_formBuilder.ComponentPopulator, {
|
|
@@ -9,7 +9,7 @@ declare function ReviewValueList({ items }: {
|
|
|
9
9
|
}): React.JSX.Element;
|
|
10
10
|
declare namespace ReviewValueList {
|
|
11
11
|
namespace propTypes {
|
|
12
|
-
let items: PropTypes.Requireable<NonNullable<string | number>[]>;
|
|
12
|
+
let items: PropTypes.Requireable<NonNullable<string | number | PropTypes.ReactElementLike>[]>;
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
import React from 'react';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReviewValueList.d.ts","sourceRoot":"","sources":["../../../src/items/ReviewValue/ReviewValueList.jsx"],"names":[],"mappings":";AAIA;;;;GAIG;AACH;;
|
|
1
|
+
{"version":3,"file":"ReviewValueList.d.ts","sourceRoot":"","sources":["../../../src/items/ReviewValue/ReviewValueList.jsx"],"names":[],"mappings":";AAIA;;;;GAIG;AACH;;sBAkBC;;;;;;kBA3BiB,OAAO;sBACH,YAAY"}
|
|
@@ -27,10 +27,10 @@ const ReviewValueList = _ref => {
|
|
|
27
27
|
// Werte können sich wiederholen (gleiche Label-Texte), daher Index im Key
|
|
28
28
|
// eslint-disable-next-line react/no-array-index-key
|
|
29
29
|
_react.default.createElement("li", {
|
|
30
|
-
key: `${index}-${item}`
|
|
31
|
-
}, /*#__PURE__*/_react.default.createElement(_HTMLParserSanitized.HTMLParserSanitized, null, String(item)))));
|
|
30
|
+
key: `${index}-${/*#__PURE__*/_react.default.isValidElement(item) ? '' : item}`
|
|
31
|
+
}, /*#__PURE__*/_react.default.isValidElement(item) ? item : /*#__PURE__*/_react.default.createElement(_HTMLParserSanitized.HTMLParserSanitized, null, String(item)))));
|
|
32
32
|
};
|
|
33
33
|
ReviewValueList.propTypes = {
|
|
34
|
-
items: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]))
|
|
34
|
+
items: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.element]))
|
|
35
35
|
};
|
|
36
36
|
var _default = exports.default = ReviewValueList;
|
package/dist/locales.d.ts
CHANGED
|
@@ -84,6 +84,7 @@ export namespace resources {
|
|
|
84
84
|
let addressNotFound: string;
|
|
85
85
|
let loading: string;
|
|
86
86
|
let checkAddress: string;
|
|
87
|
+
let checkAddressRequired: string;
|
|
87
88
|
let street: string;
|
|
88
89
|
let houseNumber: string;
|
|
89
90
|
let resetBtn: string;
|
|
@@ -139,6 +140,7 @@ export namespace resources {
|
|
|
139
140
|
let readyForUpload: string;
|
|
140
141
|
let isUploading: string;
|
|
141
142
|
let uploadSuccessful: string;
|
|
143
|
+
let openFileAria: string;
|
|
142
144
|
namespace errors {
|
|
143
145
|
let uploadFileTooLarge: string;
|
|
144
146
|
let uploadFileTooLargeNoLimit: string;
|
package/dist/locales.js
CHANGED
|
@@ -79,6 +79,7 @@ const resources = exports.resources = {
|
|
|
79
79
|
'addressNotFound': 'Die Strasse und/oder Strasse-/ und Hausnummerkombination konnte nicht gefunden werden, bitte Suchen Sie erneut und wählen Sie eine Strasse aus der Autovervollständigung aus.',
|
|
80
80
|
'loading': 'Adresse wird überprüft ...',
|
|
81
81
|
'checkAddress': 'Adresse prüfen',
|
|
82
|
+
'checkAddressRequired': 'Bitte die Adresse mit „{{button}}“ bestätigen.',
|
|
82
83
|
'street': 'Straße',
|
|
83
84
|
'houseNumber': 'Hausnummer',
|
|
84
85
|
'resetBtn': 'X',
|
|
@@ -132,6 +133,7 @@ const resources = exports.resources = {
|
|
|
132
133
|
readyForUpload: 'Bereit zum Hochladen: {{filename}}',
|
|
133
134
|
isUploading: '{{filename}} wird hochgeladen ...',
|
|
134
135
|
uploadSuccessful: '{{filename}} wurde hochgeladen.',
|
|
136
|
+
openFileAria: '{{label}} anzeigen (öffnet in neuem Tab)',
|
|
135
137
|
errors: {
|
|
136
138
|
// Fehlercodes des Servers
|
|
137
139
|
uploadFileTooLarge: '{{filename}} ist zu groß. Erlaubt sind maximal {{maxSize}}.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorMessagesInfoBox.d.ts","sourceRoot":"","sources":["../../../src/shared/ErrorMessagesInfoBox/ErrorMessagesInfoBox.jsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"ErrorMessagesInfoBox.d.ts","sourceRoot":"","sources":["../../../src/shared/ErrorMessagesInfoBox/ErrorMessagesInfoBox.jsx"],"names":[],"mappings":";AAmEA;;;;sBAmEC;;;;;;;;kBAtI8D,OAAO;sBAChD,YAAY"}
|
|
@@ -17,7 +17,9 @@ const {
|
|
|
17
17
|
} = _formBuilder.formik;
|
|
18
18
|
const focusFieldByName = (formId, name) => {
|
|
19
19
|
const form = formId ? document.getElementById(formId) : document;
|
|
20
|
-
|
|
20
|
+
// Gruppenfelder ohne eigenes Eingabefeld (BSRAddressSelector): das als ungültig markierte Unterfeld
|
|
21
|
+
const escapedName = CSS.escape(name);
|
|
22
|
+
const field = form?.querySelector(`[name="${escapedName}"]`) || form?.querySelector(`[name^="${escapedName}-"][aria-invalid="true"]`);
|
|
21
23
|
if (field) {
|
|
22
24
|
field.scrollIntoView({
|
|
23
25
|
behavior: 'smooth',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormWidgetControlPage.d.ts","sourceRoot":"","sources":["../../../src/shared/FormWidget/FormWidgetControlPage.jsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"FormWidgetControlPage.d.ts","sourceRoot":"","sources":["../../../src/shared/FormWidget/FormWidgetControlPage.jsx"],"names":[],"mappings":";AAWA;;;;;;;;sBA6DC;;;;;;;;;;;;;;;;;kBAxEwC,OAAO;sBAC1B,YAAY"}
|
|
@@ -10,10 +10,15 @@ var _formBuilder = require("@pinuts/form-builder");
|
|
|
10
10
|
var _reactI18next = require("react-i18next");
|
|
11
11
|
var _HTMLParserSanitized = require("../../items/HTMLParserSanitized/HTMLParserSanitized.jsx");
|
|
12
12
|
var _Button = _interopRequireDefault(require("../../items/Button/Button.jsx"));
|
|
13
|
+
var _ReviewLayoutContext = _interopRequireDefault(require("./ReviewLayoutContext.js"));
|
|
13
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
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); }
|
|
15
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; }
|
|
16
17
|
const noop = () => {};
|
|
18
|
+
const reviewLayout = {
|
|
19
|
+
active: true,
|
|
20
|
+
inList: false
|
|
21
|
+
};
|
|
17
22
|
const FormWidgetControlPage = _ref => {
|
|
18
23
|
let {
|
|
19
24
|
captions,
|
|
@@ -36,14 +41,16 @@ const FormWidgetControlPage = _ref => {
|
|
|
36
41
|
return /*#__PURE__*/_react.default.createElement("section", {
|
|
37
42
|
className: "pi-review",
|
|
38
43
|
"aria-labelledby": headingId
|
|
39
|
-
}, /*#__PURE__*/_react.default.createElement("
|
|
44
|
+
}, /*#__PURE__*/_react.default.createElement("h2", {
|
|
40
45
|
className: "pi-review-heading",
|
|
41
46
|
id: headingId,
|
|
42
47
|
tabIndex: -1,
|
|
43
48
|
ref: headingRef
|
|
44
49
|
}, t(captions.header)), captions.text && /*#__PURE__*/_react.default.createElement("div", {
|
|
45
50
|
className: "info-text pi-review-infotext"
|
|
46
|
-
}, /*#__PURE__*/_react.default.createElement(_HTMLParserSanitized.HTMLParserSanitized, null, t(captions.text))), /*#__PURE__*/_react.default.createElement(
|
|
51
|
+
}, /*#__PURE__*/_react.default.createElement(_HTMLParserSanitized.HTMLParserSanitized, null, t(captions.text))), /*#__PURE__*/_react.default.createElement(_ReviewLayoutContext.default.Provider, {
|
|
52
|
+
value: reviewLayout
|
|
53
|
+
}, /*#__PURE__*/_react.default.createElement(_formBuilder.FormBuilder, {
|
|
47
54
|
key: `${formId}-control`,
|
|
48
55
|
formId: `${formId}-control`,
|
|
49
56
|
formConfig: formConfig,
|
|
@@ -51,12 +58,14 @@ const FormWidgetControlPage = _ref => {
|
|
|
51
58
|
initialValues: formValues,
|
|
52
59
|
readOnly: true,
|
|
53
60
|
flagsToInherit: ['reviewMode']
|
|
61
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
62
|
+
className: "pi-review-actions"
|
|
54
63
|
}, /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
55
|
-
color: "
|
|
56
|
-
className: "me-2",
|
|
64
|
+
color: "outline-brick",
|
|
57
65
|
onClick: onBack,
|
|
58
66
|
text: captions.backBtn
|
|
59
67
|
}), /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
68
|
+
color: "brick",
|
|
60
69
|
onClick: onSubmit,
|
|
61
70
|
text: captions.submitBtn,
|
|
62
71
|
ariaAttributes: {
|
|
@@ -65,7 +74,7 @@ const FormWidgetControlPage = _ref => {
|
|
|
65
74
|
inputProps: {
|
|
66
75
|
disabled: isSubmitting
|
|
67
76
|
}
|
|
68
|
-
})));
|
|
77
|
+
})))));
|
|
69
78
|
};
|
|
70
79
|
FormWidgetControlPage.propTypes = {
|
|
71
80
|
captions: _propTypes.default.shape({
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export default ReviewLayoutContext;
|
|
2
|
+
/**
|
|
3
|
+
* Layout der Kontrollseite (FormWidgetControlPage).
|
|
4
|
+
* active: Raster aus, Fieldsets werden zu Abschnitten mit Überschrift und einer Liste.
|
|
5
|
+
* inList: innerhalb eines Abschnitts-<dl>, Felder liefern nur ihr dt/dd-Paar.
|
|
6
|
+
*/
|
|
7
|
+
declare const ReviewLayoutContext: import("react").Context<{
|
|
8
|
+
active: boolean;
|
|
9
|
+
inList: boolean;
|
|
10
|
+
}>;
|
|
11
|
+
//# sourceMappingURL=ReviewLayoutContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReviewLayoutContext.d.ts","sourceRoot":"","sources":["../../../src/shared/FormWidget/ReviewLayoutContext.js"],"names":[],"mappings":";AAEA;;;;GAIG;AACH;;;GAA4E"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
/**
|
|
9
|
+
* Layout der Kontrollseite (FormWidgetControlPage).
|
|
10
|
+
* active: Raster aus, Fieldsets werden zu Abschnitten mit Überschrift und einer Liste.
|
|
11
|
+
* inList: innerhalb eines Abschnitts-<dl>, Felder liefern nur ihr dt/dd-Paar.
|
|
12
|
+
*/
|
|
13
|
+
const ReviewLayoutContext = /*#__PURE__*/(0, _react.createContext)({
|
|
14
|
+
active: false,
|
|
15
|
+
inList: false
|
|
16
|
+
});
|
|
17
|
+
var _default = exports.default = ReviewLayoutContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KehrenbuergerForm.d.ts","sourceRoot":"","sources":["../../../src/shared/KehrenbuergerForm/KehrenbuergerForm.jsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"KehrenbuergerForm.d.ts","sourceRoot":"","sources":["../../../src/shared/KehrenbuergerForm/KehrenbuergerForm.jsx"],"names":[],"mappings":";AA6EA;;;;;;GAMG;AACH;;;;sBAmHC;;;;;;;;kBAvM2D,OAAO;sBAC7C,YAAY"}
|
|
@@ -51,6 +51,30 @@ const transformPayload = values => ({
|
|
|
51
51
|
data: values
|
|
52
52
|
});
|
|
53
53
|
|
|
54
|
+
// Der UM liefert die Upload-URL relativ ("/p/…"). Auf der Website zeigt /p nicht auf den UM,
|
|
55
|
+
// deshalb wie Config-Abruf und Absenden über restUrl leiten.
|
|
56
|
+
const RELATIVE_REST_PREFIX = '/p/';
|
|
57
|
+
const withUploadUrlsFromRestUrl = function () {
|
|
58
|
+
let components = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
59
|
+
let restUrl = arguments.length > 1 ? arguments[1] : undefined;
|
|
60
|
+
return components.map(component => {
|
|
61
|
+
const uploadUrl = component.config?.uploadUrl;
|
|
62
|
+
const config = typeof uploadUrl === 'string' && uploadUrl.startsWith(RELATIVE_REST_PREFIX) ? {
|
|
63
|
+
...component.config,
|
|
64
|
+
uploadUrl: `${restUrl}/${uploadUrl.slice(RELATIVE_REST_PREFIX.length)}`
|
|
65
|
+
} : component.config;
|
|
66
|
+
return {
|
|
67
|
+
...component,
|
|
68
|
+
...(config && {
|
|
69
|
+
config
|
|
70
|
+
}),
|
|
71
|
+
...(component.components && {
|
|
72
|
+
components: withUploadUrlsFromRestUrl(component.components, restUrl)
|
|
73
|
+
})
|
|
74
|
+
};
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
|
|
54
78
|
// Bestätigungs-Link (Double-Opt-In): ?c=<aktionId> in der URL.
|
|
55
79
|
// Prod nutzt normale URLs (?c=... vor dem #), die CMS-Vorschau Hash-URLs
|
|
56
80
|
// (#/pfad?c=...) - deshalb beide Stellen prüfen.
|
|
@@ -106,7 +130,10 @@ const KehrenbuergerForm = _ref2 => {
|
|
|
106
130
|
if (!formConfigs?.anmeldung) {
|
|
107
131
|
throw new Error('In der Antwort fehlt data.formConfigs.anmeldung');
|
|
108
132
|
}
|
|
109
|
-
setFormConfig(
|
|
133
|
+
setFormConfig({
|
|
134
|
+
...formConfigs.anmeldung,
|
|
135
|
+
components: withUploadUrlsFromRestUrl(formConfigs.anmeldung.components, restUrl)
|
|
136
|
+
});
|
|
110
137
|
setRawCaptions(formConfigs.captions || {});
|
|
111
138
|
}).catch(() => {
|
|
112
139
|
if (!aborted) {
|
|
@@ -116,7 +143,7 @@ const KehrenbuergerForm = _ref2 => {
|
|
|
116
143
|
return () => {
|
|
117
144
|
aborted = true;
|
|
118
145
|
};
|
|
119
|
-
}, [configUrl]);
|
|
146
|
+
}, [configUrl, restUrl]);
|
|
120
147
|
|
|
121
148
|
// DOI: Anmeldung per PUT bestätigen, sobald die Captions da sind
|
|
122
149
|
const doiConfirmed = (0, _react.useRef)(false);
|
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
.pi-message-text {
|
|
8
8
|
display: flex;
|
|
9
9
|
flex-direction: column;
|
|
10
|
-
|
|
10
|
+
// oben wie der Abstand des ersten Fieldsets (my-3), sonst klebt die Box am Einleitungstext
|
|
11
|
+
margin: ($base-gap * 4) 0;
|
|
11
12
|
padding: ($base-gap * 3) ($base-gap * 5); // 12px 20px
|
|
12
13
|
border: $bsr-border-width-l solid $error;
|
|
13
14
|
border-radius: $border-radius;
|
package/dist/styles/_form.scss
CHANGED
|
@@ -30,7 +30,6 @@
|
|
|
30
30
|
display: flex;
|
|
31
31
|
justify-content: space-between;
|
|
32
32
|
align-items: center;
|
|
33
|
-
padding: 0 $base-gap * 4 0 0;
|
|
34
33
|
gap: $base-gap * 2;
|
|
35
34
|
width: 100%;
|
|
36
35
|
|
|
@@ -56,6 +55,12 @@
|
|
|
56
55
|
}
|
|
57
56
|
}
|
|
58
57
|
|
|
58
|
+
.labelWithInfo {
|
|
59
|
+
display: flex;
|
|
60
|
+
align-items: center;
|
|
61
|
+
gap: $base-gap * 2;
|
|
62
|
+
}
|
|
63
|
+
|
|
59
64
|
.infoRow {
|
|
60
65
|
display: flex;
|
|
61
66
|
gap: $base-gap;
|
|
@@ -99,14 +104,15 @@
|
|
|
99
104
|
transform: rotate(45deg);
|
|
100
105
|
}
|
|
101
106
|
|
|
107
|
+
// ohne das frühere padding-right (16px) der .topRow um 16px angepasst: Tooltip bleibt, wo er war
|
|
102
108
|
&.adjustRight {
|
|
103
109
|
left: auto;
|
|
104
|
-
right: -
|
|
110
|
+
right: -24px;
|
|
105
111
|
|
|
106
112
|
&::after {
|
|
107
113
|
content: "";
|
|
108
114
|
bottom: -10px;
|
|
109
|
-
right:
|
|
115
|
+
right: 24px;
|
|
110
116
|
left: initial;
|
|
111
117
|
}
|
|
112
118
|
}
|
|
@@ -182,6 +188,11 @@ textarea {
|
|
|
182
188
|
}
|
|
183
189
|
}
|
|
184
190
|
|
|
191
|
+
// Reset-Button unter "Ihre Auswahl" steht in keinem .formInput: gleicher Abstand zum nächsten Feld
|
|
192
|
+
.addressResetBtn {
|
|
193
|
+
margin-bottom: $base-gap * 5;
|
|
194
|
+
}
|
|
195
|
+
|
|
185
196
|
/* TEXT INPUT */
|
|
186
197
|
.formInput, fieldset.formInput {
|
|
187
198
|
display: flex;
|
package/dist/styles/_review.scss
CHANGED
|
@@ -1,11 +1,43 @@
|
|
|
1
|
-
// Kontrollseite (reviewMode).
|
|
2
|
-
//
|
|
1
|
+
// Kontrollseite (reviewMode). Abschnitte aus den Fieldsets, je Abschnitt eine Definitionsliste;
|
|
2
|
+
// ab md Label links, Wert rechts, darunter untereinander.
|
|
3
3
|
.pi-review {
|
|
4
|
+
.pi-review-heading {
|
|
5
|
+
margin-bottom: $base-gap * 4;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.pi-review-section {
|
|
9
|
+
margin-top: $base-gap * 10;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.pi-review-section-heading {
|
|
13
|
+
margin-bottom: $base-gap * 2;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.pi-review-list,
|
|
4
17
|
.pi-review-item {
|
|
5
18
|
margin: 0;
|
|
6
19
|
}
|
|
7
20
|
|
|
8
|
-
.pi-review-
|
|
21
|
+
.pi-review-list {
|
|
22
|
+
border-top: $bsr-border-width-s solid $bsr-black-20;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.pi-review-list > .pi-review-pair {
|
|
26
|
+
display: grid;
|
|
27
|
+
grid-template-columns: minmax(0, 1fr);
|
|
28
|
+
gap: $base-gap;
|
|
29
|
+
margin: 0;
|
|
30
|
+
padding-block: $base-gap * 3;
|
|
31
|
+
border-bottom: $bsr-border-width-s solid $bsr-black-20;
|
|
32
|
+
|
|
33
|
+
@media (min-width: $screen-md-min) {
|
|
34
|
+
grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
|
|
35
|
+
gap: $base-gap * 6;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Felder außerhalb eines Abschnitts (ein dl je Feld)
|
|
40
|
+
.pi-review-item > .pi-review-pair {
|
|
9
41
|
margin-bottom: $base-gap * 3;
|
|
10
42
|
}
|
|
11
43
|
|
|
@@ -15,6 +47,11 @@
|
|
|
15
47
|
|
|
16
48
|
dd {
|
|
17
49
|
margin: 0;
|
|
50
|
+
overflow-wrap: anywhere;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.pi-review-appendix {
|
|
54
|
+
margin-top: $base-gap;
|
|
18
55
|
}
|
|
19
56
|
|
|
20
57
|
// Zeilenumbrüche aus Textarea-Eingaben sichtbar halten
|
|
@@ -26,4 +63,16 @@
|
|
|
26
63
|
margin: 0;
|
|
27
64
|
padding-inline-start: $base-gap * 4;
|
|
28
65
|
}
|
|
66
|
+
|
|
67
|
+
.pi-review-actions {
|
|
68
|
+
display: flex;
|
|
69
|
+
flex-wrap: wrap;
|
|
70
|
+
gap: $base-gap * 4;
|
|
71
|
+
margin-top: $base-gap * 10;
|
|
72
|
+
|
|
73
|
+
// Wie die BSR-Atoms ohne Unterstreichung (UI-Kit-Buttons sind sonst unterstrichen)
|
|
74
|
+
.btn {
|
|
75
|
+
text-decoration: none;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
29
78
|
}
|