viur-ui 0.0.1
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/README.md +79 -0
- package/index.d.ts +351 -0
- package/index.js +46 -0
- package/package.json +84 -0
- package/src/components/Browser/Browser.vue +496 -0
- package/src/components/Browser/TreeNav.vue +408 -0
- package/src/components/Browser/ViurBrowser.d.vue.ts +64 -0
- package/src/components/Browser/ViurBrowser.vue +271 -0
- package/src/components/Browser/dragSession.ts +134 -0
- package/src/components/Browser/index.ts +14 -0
- package/src/components/Browser/types.ts +30 -0
- package/src/components/DataTable/ColumnFilterPanel.vue +225 -0
- package/src/components/DataTable/DataTable.vue +3155 -0
- package/src/components/DataTable/ViurDataTable.d.vue.ts +72 -0
- package/src/components/DataTable/ViurDataTable.vue +331 -0
- package/src/components/DataTable/columns.ts +400 -0
- package/src/components/DataTable/index.ts +60 -0
- package/src/components/DataTable/rows.ts +446 -0
- package/src/components/DataTable/types.ts +267 -0
- package/src/components/DataTable/useColumnLayout.ts +294 -0
- package/src/components/DataTable/useGridNavigation.ts +193 -0
- package/src/components/DataTable/useVirtualRows.ts +126 -0
- package/src/components/DataTable/viurColumns.ts +330 -0
- package/src/forms/ViForm.d.vue.ts +106 -0
- package/src/forms/ViForm.vue +592 -0
- package/src/forms/ViFormCategory.vue +57 -0
- package/src/forms/bones/Bone.vue +1023 -0
- package/src/forms/bones/BoneActions.vue +127 -0
- package/src/forms/bones/BoneLabel.vue +122 -0
- package/src/forms/bones/BoneMultipleList.vue +91 -0
- package/src/forms/bones/BoneMultipleWrapper.vue +105 -0
- package/src/forms/bones/BoneNestedWrapper.vue +155 -0
- package/src/forms/bones/BoneSingleEntry.vue +51 -0
- package/src/forms/bones/FilterBone.vue +694 -0
- package/src/forms/bones/actionbar/defaultBar.vue +98 -0
- package/src/forms/bones/actionbar/fileBar.vue +165 -0
- package/src/forms/bones/actionbar/relationalBar.vue +125 -0
- package/src/forms/bones/actions/ActionDialog.vue +70 -0
- package/src/forms/bones/actions/Debug.vue +106 -0
- package/src/forms/bones/actions/Delete.vue +13 -0
- package/src/forms/bones/actions/DescribeImage.vue +201 -0
- package/src/forms/bones/actions/Download.vue +27 -0
- package/src/forms/bones/actions/Placeholder.vue +14 -0
- package/src/forms/bones/actions/Translation.vue +238 -0
- package/src/forms/bones/actions/index.js +280 -0
- package/src/forms/bones/bone.d.ts +45 -0
- package/src/forms/bones/country_information.json +779 -0
- package/src/forms/bones/index.js +225 -0
- package/src/forms/bones/uploadAdapter.js +46 -0
- package/src/forms/bones/utils.js +284 -0
- package/src/forms/bones/view/base_item.vue +35 -0
- package/src/forms/bones/view/boneLogic.js +202 -0
- package/src/forms/bones/view/index.js +5 -0
- package/src/forms/bones/widgets/booleanBone.vue +83 -0
- package/src/forms/bones/widgets/booleanBoneChoose.vue +57 -0
- package/src/forms/bones/widgets/booleanBoneSelect.vue +58 -0
- package/src/forms/bones/widgets/codeBone.vue +214 -0
- package/src/forms/bones/widgets/colorBone.vue +75 -0
- package/src/forms/bones/widgets/dateBone.vue +114 -0
- package/src/forms/bones/widgets/emailBone.vue +100 -0
- package/src/forms/bones/widgets/fileBone.vue +273 -0
- package/src/forms/bones/widgets/jsonBone.vue +63 -0
- package/src/forms/bones/widgets/keyBone.vue +71 -0
- package/src/forms/bones/widgets/numericBone.vue +125 -0
- package/src/forms/bones/widgets/passwordBone.vue +215 -0
- package/src/forms/bones/widgets/phoneBone.vue +173 -0
- package/src/forms/bones/widgets/rawBone.vue +94 -0
- package/src/forms/bones/widgets/recordBone.vue +64 -0
- package/src/forms/bones/widgets/relationalBone.vue +164 -0
- package/src/forms/bones/widgets/relationalBoneSelect.vue +120 -0
- package/src/forms/bones/widgets/selectBone.vue +122 -0
- package/src/forms/bones/widgets/selectBoneChoose.vue +104 -0
- package/src/forms/bones/widgets/spatialBone.vue +111 -0
- package/src/forms/bones/widgets/stringBone.vue +139 -0
- package/src/forms/bones/widgets/textBone.vue +641 -0
- package/src/forms/install.d.ts +4 -0
- package/src/forms/install.js +43 -0
- package/src/forms/layouts/LayloutList2Columns.vue +57 -0
- package/src/forms/layouts/LayoutCategory.vue +38 -0
- package/src/forms/layouts/LayoutList.vue +31 -0
- package/src/forms/utils.js +601 -0
- package/src/public/assets/icons/fontawesome-manifest.json +8 -0
- package/src/public/assets/icons/regular/file.svg +1 -0
- package/src/public/assets/icons/solid/arrows-left-right.svg +1 -0
- package/src/public/assets/icons/solid/bug.svg +1 -0
- package/src/public/assets/icons/solid/check.svg +1 -0
- package/src/public/assets/icons/solid/circle-info.svg +1 -0
- package/src/public/assets/icons/solid/compress.svg +1 -0
- package/src/public/assets/icons/solid/download.svg +1 -0
- package/src/public/assets/icons/solid/expand.svg +1 -0
- package/src/public/assets/icons/solid/grip-vertical.svg +1 -0
- package/src/public/assets/icons/solid/plus.svg +1 -0
- package/src/public/assets/icons/solid/question.svg +1 -0
- package/src/public/assets/icons/solid/triangle-exclamation.svg +1 -0
- package/src/public/assets/icons/solid/upload.svg +1 -0
- package/src/public/assets/icons/solid/xmark.svg +1 -0
- package/src/request/cache.js +183 -0
- package/src/request/configStore.js +516 -0
- package/src/request/envelope.js +211 -0
- package/src/request/index.js +35 -0
- package/src/request/messageStore.js +201 -0
- package/src/request/request.js +752 -0
- package/src/request/skel.js +90 -0
- package/src/theme/colorStore.js +168 -0
- package/src/translations/de.js +178 -0
- package/src/translations/en.js +177 -0
- package/src/user/LoginScreen.d.vue.ts +54 -0
- package/src/user/LoginScreen.vue +627 -0
- package/src/user/google.js +75 -0
- package/src/user/index.js +3 -0
- package/src/user/store.d.ts +59 -0
- package/src/user/store.js +183 -0
- package/src/webawesomeCompat.css +72 -0
- package/src/webawesomeConfig.js +61 -0
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<wa-input
|
|
3
|
+
ref="stringBone"
|
|
4
|
+
class="bone-widget bone-widget-string bone-widget-string-default"
|
|
5
|
+
:class="[`bone-widget-string-${name}`]"
|
|
6
|
+
:name="name"
|
|
7
|
+
:disabled="boneState.readonly"
|
|
8
|
+
:value="Utils.unescape(value)"
|
|
9
|
+
:required="
|
|
10
|
+
boneState.bonestructure.required && !boneState.bonestructure.multiple && !boneState.bonestructure.languages
|
|
11
|
+
"
|
|
12
|
+
:placeholder="state.placeholder"
|
|
13
|
+
:data-user-invalid="boneState.errorMessages.length === 0 ? null : true"
|
|
14
|
+
:pattern="state.pattern"
|
|
15
|
+
:maxlength="boneState.maxlength"
|
|
16
|
+
:minlength="boneState.minlength"
|
|
17
|
+
@change="changeEvent"
|
|
18
|
+
@keyup="changeEvent"
|
|
19
|
+
></wa-input>
|
|
20
|
+
</template>
|
|
21
|
+
|
|
22
|
+
<script setup>
|
|
23
|
+
import { reactive, onMounted, inject, computed, watchEffect, ref } from "vue"
|
|
24
|
+
import { useTimeoutFn } from "@vueuse/core"
|
|
25
|
+
import Utils from "../utils"
|
|
26
|
+
/**
|
|
27
|
+
* Einzeiliges Textfeld für einfache Zeichenketten.
|
|
28
|
+
*
|
|
29
|
+
* Rendert ein `<wa-input>` und delegiert Validierung an das native
|
|
30
|
+
* Constraint Validation API. Unterstützt optionale Regex-Validierung
|
|
31
|
+
* via `boneState.params.pattern` sowie eine eigene Fehlermeldung via
|
|
32
|
+
* `boneState.params.pattern_error`. Bei `boneState.label === "placeholder"`
|
|
33
|
+
* wird der Bone-Name als Placeholder angezeigt statt als Label darüber.
|
|
34
|
+
*
|
|
35
|
+
* @displayName StringBone
|
|
36
|
+
*
|
|
37
|
+
* @cssClass bone-widget - Basis-Klasse aller Bone-Widgets
|
|
38
|
+
* @cssClass bone-widget-string - Kennzeichnet den Bone-Typ
|
|
39
|
+
* @cssClass bone-widget-string-default - Standard-Variante
|
|
40
|
+
* @cssClass bone-widget-string-{name} - Dynamisch gesetzt auf den Bone-Namen, z.B. `bone-widget-string-title`
|
|
41
|
+
*/
|
|
42
|
+
defineOptions({
|
|
43
|
+
inheritAttrs: false,
|
|
44
|
+
})
|
|
45
|
+
const props = defineProps({
|
|
46
|
+
/** Bone-Name – wird in jedem `change`-Event als erstes Argument übergeben. */
|
|
47
|
+
name: String,
|
|
48
|
+
/** Aktueller Bone-Wert. */
|
|
49
|
+
value: [Object, String, Number, Boolean, Array],
|
|
50
|
+
/** Index im Multiple-Array; `undefined` bei Einzelwert. */
|
|
51
|
+
index: Number,
|
|
52
|
+
/** Sprach-Key bei mehrsprachigen Bones, z.B. `"de"`. */
|
|
53
|
+
lang: String,
|
|
54
|
+
/** Bone-Struktur (aktuell nicht aktiv genutzt). */
|
|
55
|
+
bone: Object,
|
|
56
|
+
/** Setzt den Fokus nach 600 ms auf das Input-Element. */
|
|
57
|
+
autofocus: Boolean,
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
const emit = defineEmits([
|
|
61
|
+
/**
|
|
62
|
+
* Wird bei jeder Wertänderung sowie beim Mount (Initialisierung) gefeuert.
|
|
63
|
+
* @arg {string} name - Bone-Name
|
|
64
|
+
* @arg {string} value - Aktueller Eingabewert
|
|
65
|
+
* @arg {string|undefined} lang - Sprach-Key
|
|
66
|
+
* @arg {number|undefined} index - Index im Multiple-Array
|
|
67
|
+
* @arg {boolean} [valid] - Validierungsstatus; fehlt beim Init-Event
|
|
68
|
+
*/
|
|
69
|
+
"change",
|
|
70
|
+
])
|
|
71
|
+
|
|
72
|
+
const boneState = inject("boneState")
|
|
73
|
+
const state = reactive({
|
|
74
|
+
value: computed(() => props.value),
|
|
75
|
+
valid: null,
|
|
76
|
+
pattern: computed(() => {
|
|
77
|
+
let pat = boneState.params?.pattern
|
|
78
|
+
if (!pat) return undefined
|
|
79
|
+
|
|
80
|
+
if (typeof pat === "string") {
|
|
81
|
+
return pat
|
|
82
|
+
}
|
|
83
|
+
return pat?.[boneState.defaultLanguage]
|
|
84
|
+
}),
|
|
85
|
+
pattern_error: computed(() => {
|
|
86
|
+
let pat = boneState.params?.pattern_error
|
|
87
|
+
if (!pat) return ""
|
|
88
|
+
|
|
89
|
+
if (typeof pat === "string") {
|
|
90
|
+
return pat
|
|
91
|
+
}
|
|
92
|
+
return pat?.[boneState.defaultLanguage] ? pat?.[boneState.defaultLanguage] : ""
|
|
93
|
+
}),
|
|
94
|
+
placeholder: computed(() => {
|
|
95
|
+
if (boneState.label !== "placeholder") return undefined
|
|
96
|
+
let name = boneState?.bonestructure?.descr
|
|
97
|
+
if (boneState.bonestructure.required) {
|
|
98
|
+
name += "*"
|
|
99
|
+
}
|
|
100
|
+
return name
|
|
101
|
+
}),
|
|
102
|
+
})
|
|
103
|
+
|
|
104
|
+
const stringBone = ref(null)
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Verarbeitet `change`- und `keyup`-Events des `<wa-input>`.
|
|
108
|
+
* Prüft die native Validität, setzt bei `patternMismatch` eine eigene
|
|
109
|
+
* Fehlermeldung und emittiert den `change`-Event mit Validierungsstatus.
|
|
110
|
+
*
|
|
111
|
+
* @param {Event} event - Das DOM-Event vom Input-Element
|
|
112
|
+
*/
|
|
113
|
+
function changeEvent(event) {
|
|
114
|
+
let valid = stringBone.value.reportValidity()
|
|
115
|
+
let validStates = stringBone.value.validity
|
|
116
|
+
if (validStates["patternMismatch"]) {
|
|
117
|
+
stringBone.value.setCustomValidity(state.pattern_error)
|
|
118
|
+
} else {
|
|
119
|
+
stringBone.value.setCustomValidity("")
|
|
120
|
+
}
|
|
121
|
+
emit("change", props.name, event.target.value, props.lang, props.index, valid)
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
watchEffect(() => {
|
|
125
|
+
if (props.autofocus) {
|
|
126
|
+
if (stringBone.value && stringBone.value !== null && stringBone.value !== null) {
|
|
127
|
+
const { start } = useTimeoutFn(() => {
|
|
128
|
+
stringBone.value.focus()
|
|
129
|
+
}, 600)
|
|
130
|
+
|
|
131
|
+
start()
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
})
|
|
135
|
+
|
|
136
|
+
onMounted(() => {
|
|
137
|
+
emit("change", props.name, props.value, props.lang, props.index) //init
|
|
138
|
+
})
|
|
139
|
+
</script>
|