Allgemeine Komponenten Konfiguration
Die Konfigurationen der Komponenten enthalten diverse Bestandteile. Einige davon gelten für alle Komponenten. Die meisten beschränken sich jedoch auf einen Teil der Komponenten.
Notwendig
Notwendig für jede Komponenten-Konfiguration ist ausschließlich die Angabe des Typs.
Typ
type(enum)-
Jede Komponenten muss einem Typ entsprechen. Diesen können Sie an der jeweiligen Komponente einsehen.
{ "type": "textfield" },
{ "type": "button" }
Optional – Für Alle
Im Folgenden werden die Konfigurationen beschrieben, die auf alle Komponenten optional anwendbar sind.
Generische Konfiguration
configuration(object)-
Über das Attribut
configurationlassen sich beliebige Parameter an die Komponente übergeben. Diese werden im Renderer bei der Erstellung der Komponenten übergeben und entsprechend interpretiert. So können z. B. nicht direkt Unterstütze Funktionen an den Komponenten gesteuert werden. Weitere Informationen über mögliche Funktionalität findet sich hier. In diesem Beispiel wird direkt an der Komponente der Style angepasst.
{
"type": "textfield",
"configuration": {
"style": {
"box-shadow": "10px 10px 5px lightblue"
}
}
}
|
Diese Option sollte mit Vorsicht verwendet werden. Eine falsche Konfiguration kann dazu führen, dass das Formular nicht mehr wie erwartet funktioniert. |
Ausgeblendet
hidden(Binding | boolean)-
Mit dem Attribut
hiddenkönnen Komponenten ausgeblendet werden.
{
"type": "textfield",
"hidden": true
},
{
"type": "textfield",
"hidden": "${/data/page !== 0}"
}
ID
id(number | string)-
Identifiziert die Komponente innerhalb des Formulars und darf nur einmal verwendet werden.
{
"type": "textfield",
"id" : "123"
}
Aktion bei Klick
onClick(ActionDefinition)-
Bei einem Klick auf eine Komponente können alle hier definierten Aktionen ausgeführt werden.
{
"type": "textfield",
"onClick": {
"action": "print"
}
}
Aktion bei Initialisierung
onPainted(ActionDefinition)-
Nach der Initialisierung und Anzeige einer Komponente können alle hier definierten Aktionen ausgeführt werden. Dies wird einmalig ausgeführt, wenn die Komponente zum ersten Mal sichtbar wird.
{
"type": "textfield",
"onPainted": {
"action": "getFormState",
"payload": {
"url": "http://localhost:3000/a"
}
}
}
Responsive Konfiguration
responsiveConfiguration(object)-
Für Konfigurationen die sich dynamisch an die gegebene Größe oder verwendeten Geräte anpassen. Siehe Responsive Forms.
{
"type" : "textfield",
"responsiveConfiguration" : {
"width >= 1000" : { "label" : "Sehr langes Label" },
"width < 1000" : { "label" : "Kurzes Label" }
}
}
Diverse Parameter zur Darstellung
Folgende Attribute können genutzt werden, um Einfluss auf die Darstellung der Komponente zu nehmen.
flex(number | object | string)-
Gibt an wie sich die Komponente in ihrem
containerausbreiten darf. Dafür werden dieflexWerte aller Komponenten imcontainerzueinander ins Verhältnis gesetzt. maxHeight(number | string)-
Maximale Höhe
maxWidth(number | string)-
Maximale Breite
minHeight(number | string)-
Mindesthöhe
minWidth(number | string)-
Mindestbreite
height(number | string)-
Höhe
width(number | string)-
Breite
{
"type": "textfield",
"width": 100
}
Optional – Eingeschränkt
Die hier beschriebenen Konfigurationen sind optional für diverse Komponenten, jedoch nicht für alle verfügbar. Welche Konfigurationen für welche Komponenten zur Verfügung stehen, ist bei den einzelnen Komponenten zu finden.
Diverse Parameter zur Darstellung – Eingeschränkt
Folgende Attribute können genutzt werden, um Einfluss auf die Darstellung der Komponente zu nehmen. Die Attribute sind, jedoch nur auf einen Teil der Komponenten anwendbar.
boxLabel(MultiLanguageDefinition)-
Zusätzliches Label neben dem Eingabeelement.
boxLabelAlign(enum<"after" | "before">)-
Position des zusätzlichen Labels.
errorTarget(enum<"qtip" | "side" | "title" | "under">)-
Gibt Platzierung von Fehlern an der Komponente an, die durch Validierung ausgelöst werden.
labelAlign(enum<"top" | "left" | "bottom" | "right">)-
Gibt Platzierung des Labels relativ zum Feld an.
labelMinWidth(number | string)-
Mindestbreite
labelTextAlign(enum<"top" | "left" | "bottom" | "right">)-
Gibt Platzierung des Texts innerhalb des Labels an.
labelWidth(number | string)-
Breite
labelWrap(boolean)-
Bei
truekann sich der Text des Labels über mehrere Zeilen erstrecken. Beifalsewird der Text durch "…" abgekürzt, falls der Text zu lang ist.
{
"type": "textfield",
"label": "Ein wirklich langes Label",
"labelAlign": "left",
"labelWidth": 80,
"labelWrap": false
}
Icon
icon(Font-Awesome-string)-
Die meisten Komponenten bieten die Möglichkeit zur Anzeige eines Icons. Die konkrete Darstellungsform hängt von der Komponente ab. Die Icons stammen von der Bibliothek
Font Awesome Pro. Es kann direkt eine Font-Awesome CSS-Klasse als String angegeben werden.
|
Der Renderer unterstützt alle Font-Awesome-Icons der Version 5.15.4 (Pro-Variante). |
{
"type": "textfield",
"icon": "fal fa-fire"
}
Beschriftung
label(MultiLanguageDefinition)-
Die meisten Komponenten bieten die Möglichkeit einer Beschriftung. Die konkrete Darstellungsform hängt von der Komponente ab, welche aber über mehrere Einstellungen beeinflusst werden kann. Der Text für die Beschriftung kann entweder direkt als String angegeben werden oder als mehrsprachiges Objekt für die Verwendung von Mehrsprachigkeit. Das Objekt enthält dann für mehrere Sprachen einen String.
{
"type": "textfield",
"label": "Alle Sprachen"
},
{
"type": "textfield",
"label": {
"MULTI_LANGUAGE": {
"de": "Auf Deutsch",
"en": "In English"
}
}
}
Aktion bei Wertänderung onChange
onChange(ActionDefinition)-
Bei der Wertänderungen eines Feldes können alle hier definierten Aktionen ausgeführt werden.
{
"type": "textfield",
"onChange": {
"action": "validate"
}
}
Einschränkung der Benutzung
Mit readOnly, disabled, und required kann die Benutzung von Komponenten für Nutzer verändert werden.
disabled(Binding | boolean)-
Das Attribut
disabledermöglicht es Interaktion mit einer Komponente komplett auszuschalten. Dieses Attribut kann für alle Komponenten mit Interaktion verwendet werden. Wenn Komponentendisabledsind, ist dies eindeutig erkennbar.
readOnly(Binding | boolean)-
Soll ein Anwender auf eine Komponente nur lesend zugreifen, ohne dessen Inhalte zu verändern, dann kann das Attribut
readOnlyverwendet werden. Dieses Attribut ist für Felder mit Text zu verwenden und ändert das Design nicht und hat lediglich Einfluss auf Schreibrechte.
required(Binding | boolean)-
Wenn eine Komponente
requiredist, ist es erforderlich, dass der Nutzer Daten eingibt. Für dieses Attribut sollte Data-Binding auf den Wert der Komponente verwendet werden.
{
"type": "textfield",
"disabled": "${/data/confirmation === false}",
"value": "Unveränderlicher Text, wenn nicht zugestimmt."
},
{
"type": "textfield",
"required": true,
"value": "${/data/text}"
}