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.
Files changed (114) hide show
  1. package/README.md +79 -0
  2. package/index.d.ts +351 -0
  3. package/index.js +46 -0
  4. package/package.json +84 -0
  5. package/src/components/Browser/Browser.vue +496 -0
  6. package/src/components/Browser/TreeNav.vue +408 -0
  7. package/src/components/Browser/ViurBrowser.d.vue.ts +64 -0
  8. package/src/components/Browser/ViurBrowser.vue +271 -0
  9. package/src/components/Browser/dragSession.ts +134 -0
  10. package/src/components/Browser/index.ts +14 -0
  11. package/src/components/Browser/types.ts +30 -0
  12. package/src/components/DataTable/ColumnFilterPanel.vue +225 -0
  13. package/src/components/DataTable/DataTable.vue +3155 -0
  14. package/src/components/DataTable/ViurDataTable.d.vue.ts +72 -0
  15. package/src/components/DataTable/ViurDataTable.vue +331 -0
  16. package/src/components/DataTable/columns.ts +400 -0
  17. package/src/components/DataTable/index.ts +60 -0
  18. package/src/components/DataTable/rows.ts +446 -0
  19. package/src/components/DataTable/types.ts +267 -0
  20. package/src/components/DataTable/useColumnLayout.ts +294 -0
  21. package/src/components/DataTable/useGridNavigation.ts +193 -0
  22. package/src/components/DataTable/useVirtualRows.ts +126 -0
  23. package/src/components/DataTable/viurColumns.ts +330 -0
  24. package/src/forms/ViForm.d.vue.ts +106 -0
  25. package/src/forms/ViForm.vue +592 -0
  26. package/src/forms/ViFormCategory.vue +57 -0
  27. package/src/forms/bones/Bone.vue +1023 -0
  28. package/src/forms/bones/BoneActions.vue +127 -0
  29. package/src/forms/bones/BoneLabel.vue +122 -0
  30. package/src/forms/bones/BoneMultipleList.vue +91 -0
  31. package/src/forms/bones/BoneMultipleWrapper.vue +105 -0
  32. package/src/forms/bones/BoneNestedWrapper.vue +155 -0
  33. package/src/forms/bones/BoneSingleEntry.vue +51 -0
  34. package/src/forms/bones/FilterBone.vue +694 -0
  35. package/src/forms/bones/actionbar/defaultBar.vue +98 -0
  36. package/src/forms/bones/actionbar/fileBar.vue +165 -0
  37. package/src/forms/bones/actionbar/relationalBar.vue +125 -0
  38. package/src/forms/bones/actions/ActionDialog.vue +70 -0
  39. package/src/forms/bones/actions/Debug.vue +106 -0
  40. package/src/forms/bones/actions/Delete.vue +13 -0
  41. package/src/forms/bones/actions/DescribeImage.vue +201 -0
  42. package/src/forms/bones/actions/Download.vue +27 -0
  43. package/src/forms/bones/actions/Placeholder.vue +14 -0
  44. package/src/forms/bones/actions/Translation.vue +238 -0
  45. package/src/forms/bones/actions/index.js +280 -0
  46. package/src/forms/bones/bone.d.ts +45 -0
  47. package/src/forms/bones/country_information.json +779 -0
  48. package/src/forms/bones/index.js +225 -0
  49. package/src/forms/bones/uploadAdapter.js +46 -0
  50. package/src/forms/bones/utils.js +284 -0
  51. package/src/forms/bones/view/base_item.vue +35 -0
  52. package/src/forms/bones/view/boneLogic.js +202 -0
  53. package/src/forms/bones/view/index.js +5 -0
  54. package/src/forms/bones/widgets/booleanBone.vue +83 -0
  55. package/src/forms/bones/widgets/booleanBoneChoose.vue +57 -0
  56. package/src/forms/bones/widgets/booleanBoneSelect.vue +58 -0
  57. package/src/forms/bones/widgets/codeBone.vue +214 -0
  58. package/src/forms/bones/widgets/colorBone.vue +75 -0
  59. package/src/forms/bones/widgets/dateBone.vue +114 -0
  60. package/src/forms/bones/widgets/emailBone.vue +100 -0
  61. package/src/forms/bones/widgets/fileBone.vue +273 -0
  62. package/src/forms/bones/widgets/jsonBone.vue +63 -0
  63. package/src/forms/bones/widgets/keyBone.vue +71 -0
  64. package/src/forms/bones/widgets/numericBone.vue +125 -0
  65. package/src/forms/bones/widgets/passwordBone.vue +215 -0
  66. package/src/forms/bones/widgets/phoneBone.vue +173 -0
  67. package/src/forms/bones/widgets/rawBone.vue +94 -0
  68. package/src/forms/bones/widgets/recordBone.vue +64 -0
  69. package/src/forms/bones/widgets/relationalBone.vue +164 -0
  70. package/src/forms/bones/widgets/relationalBoneSelect.vue +120 -0
  71. package/src/forms/bones/widgets/selectBone.vue +122 -0
  72. package/src/forms/bones/widgets/selectBoneChoose.vue +104 -0
  73. package/src/forms/bones/widgets/spatialBone.vue +111 -0
  74. package/src/forms/bones/widgets/stringBone.vue +139 -0
  75. package/src/forms/bones/widgets/textBone.vue +641 -0
  76. package/src/forms/install.d.ts +4 -0
  77. package/src/forms/install.js +43 -0
  78. package/src/forms/layouts/LayloutList2Columns.vue +57 -0
  79. package/src/forms/layouts/LayoutCategory.vue +38 -0
  80. package/src/forms/layouts/LayoutList.vue +31 -0
  81. package/src/forms/utils.js +601 -0
  82. package/src/public/assets/icons/fontawesome-manifest.json +8 -0
  83. package/src/public/assets/icons/regular/file.svg +1 -0
  84. package/src/public/assets/icons/solid/arrows-left-right.svg +1 -0
  85. package/src/public/assets/icons/solid/bug.svg +1 -0
  86. package/src/public/assets/icons/solid/check.svg +1 -0
  87. package/src/public/assets/icons/solid/circle-info.svg +1 -0
  88. package/src/public/assets/icons/solid/compress.svg +1 -0
  89. package/src/public/assets/icons/solid/download.svg +1 -0
  90. package/src/public/assets/icons/solid/expand.svg +1 -0
  91. package/src/public/assets/icons/solid/grip-vertical.svg +1 -0
  92. package/src/public/assets/icons/solid/plus.svg +1 -0
  93. package/src/public/assets/icons/solid/question.svg +1 -0
  94. package/src/public/assets/icons/solid/triangle-exclamation.svg +1 -0
  95. package/src/public/assets/icons/solid/upload.svg +1 -0
  96. package/src/public/assets/icons/solid/xmark.svg +1 -0
  97. package/src/request/cache.js +183 -0
  98. package/src/request/configStore.js +516 -0
  99. package/src/request/envelope.js +211 -0
  100. package/src/request/index.js +35 -0
  101. package/src/request/messageStore.js +201 -0
  102. package/src/request/request.js +752 -0
  103. package/src/request/skel.js +90 -0
  104. package/src/theme/colorStore.js +168 -0
  105. package/src/translations/de.js +178 -0
  106. package/src/translations/en.js +177 -0
  107. package/src/user/LoginScreen.d.vue.ts +54 -0
  108. package/src/user/LoginScreen.vue +627 -0
  109. package/src/user/google.js +75 -0
  110. package/src/user/index.js +3 -0
  111. package/src/user/store.d.ts +59 -0
  112. package/src/user/store.js +183 -0
  113. package/src/webawesomeCompat.css +72 -0
  114. 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>