@ditojs/admin 2.75.0 → 2.75.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/dist/dito-admin.css +1 -1
- package/dist/dito-admin.es.js +31 -6
- package/dist/dito-admin.umd.js +3 -3
- package/package.json +2 -2
- package/src/components/DitoAffix.vue +14 -2
- package/src/components/DitoAffixes.vue +27 -6
- package/src/components/DitoLabel.vue +4 -40
- package/src/types/DitoTypeColor.vue +2 -0
- package/src/types/DitoTypeDate.vue +2 -0
- package/src/types/DitoTypeMultiselect.vue +2 -0
- package/src/types/DitoTypeNumber.vue +2 -0
- package/src/types/DitoTypeSelect.vue +2 -0
- package/src/types/DitoTypeText.vue +2 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ditojs/admin",
|
|
3
|
-
"version": "2.75.
|
|
3
|
+
"version": "2.75.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Dito.js Admin is a schema based admin interface for Dito.js Server, featuring auto-generated views and forms and built with Vue.js",
|
|
6
6
|
"repository": "https://github.com/ditojs/dito/tree/master/packages/admin",
|
|
@@ -93,5 +93,5 @@
|
|
|
93
93
|
"typescript": "^5.9.3",
|
|
94
94
|
"vite": "^7.3.1"
|
|
95
95
|
},
|
|
96
|
-
"gitHead": "
|
|
96
|
+
"gitHead": "d16421580ee018bd1e606570bbf7b41c0f537fc8"
|
|
97
97
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
<template lang="pug">
|
|
2
2
|
component(
|
|
3
3
|
v-if="item.type === 'text'"
|
|
4
|
-
:is="item.as || '
|
|
4
|
+
:is="item.as || 'div'"
|
|
5
5
|
) {{ item.text }}
|
|
6
6
|
component(
|
|
7
7
|
v-else-if="item.type === 'html'"
|
|
8
|
-
:is="item.as || '
|
|
8
|
+
:is="item.as || 'div'"
|
|
9
9
|
v-html="item.html"
|
|
10
10
|
)
|
|
11
11
|
DitoSpinner(
|
|
@@ -48,9 +48,21 @@ export default DitoComponent.component('DitoAffix', {
|
|
|
48
48
|
</script>
|
|
49
49
|
|
|
50
50
|
<style lang="scss">
|
|
51
|
+
@import '../styles/_imports';
|
|
52
|
+
|
|
51
53
|
.dito-affix {
|
|
54
|
+
&--html,
|
|
52
55
|
&--text {
|
|
53
56
|
display: inline-block;
|
|
54
57
|
}
|
|
58
|
+
|
|
59
|
+
&--ellipsis {
|
|
60
|
+
@include ellipsis;
|
|
61
|
+
|
|
62
|
+
flex: 1;
|
|
63
|
+
display: block;
|
|
64
|
+
min-width: 0;
|
|
65
|
+
width: 0;
|
|
66
|
+
}
|
|
55
67
|
}
|
|
56
68
|
</style>
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
DitoAffix.dito-affix(
|
|
8
8
|
v-for="(item, index) in visibleItems"
|
|
9
9
|
:key="index"
|
|
10
|
-
:class="
|
|
10
|
+
:class="getItemClasses(item)"
|
|
11
11
|
:style="item.style"
|
|
12
12
|
:item="item"
|
|
13
13
|
:parentContext="parentContext"
|
|
@@ -36,6 +36,7 @@ export default DitoComponent.component('DitoAffixes', {
|
|
|
36
36
|
|
|
37
37
|
props: {
|
|
38
38
|
items: { type: [String, Object, Array], default: null },
|
|
39
|
+
mode: { type: String, default: null },
|
|
39
40
|
position: { type: String, default: null },
|
|
40
41
|
absolute: { type: Boolean, default: false },
|
|
41
42
|
clearable: { type: Boolean, default: false },
|
|
@@ -75,6 +76,7 @@ export default DitoComponent.component('DitoAffixes', {
|
|
|
75
76
|
const prefix = 'dito-affixes'
|
|
76
77
|
return {
|
|
77
78
|
[`${prefix}--${this.position}`]: this.position,
|
|
79
|
+
[`${prefix}--${this.mode}`]: this.mode,
|
|
78
80
|
[`${prefix}--absolute`]: this.absolute
|
|
79
81
|
}
|
|
80
82
|
},
|
|
@@ -87,6 +89,21 @@ export default DitoComponent.component('DitoAffixes', {
|
|
|
87
89
|
hasSlotContent(this.$slots.append)
|
|
88
90
|
)
|
|
89
91
|
}
|
|
92
|
+
},
|
|
93
|
+
|
|
94
|
+
methods: {
|
|
95
|
+
getItemClasses(item) {
|
|
96
|
+
const prefix = 'dito-affix'
|
|
97
|
+
return [
|
|
98
|
+
{
|
|
99
|
+
[`${prefix}--${item.type}`]: item.type,
|
|
100
|
+
[`${prefix}--ellipsis`]: (
|
|
101
|
+
this.mode === 'ellipsis' && ['text', 'html'].includes(item.type)
|
|
102
|
+
)
|
|
103
|
+
},
|
|
104
|
+
item.class
|
|
105
|
+
]
|
|
106
|
+
}
|
|
90
107
|
}
|
|
91
108
|
})
|
|
92
109
|
</script>
|
|
@@ -122,16 +139,20 @@ export default DitoComponent.component('DitoAffixes', {
|
|
|
122
139
|
}
|
|
123
140
|
}
|
|
124
141
|
|
|
125
|
-
|
|
142
|
+
&--ellipsis {
|
|
143
|
+
flex: 1;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
&--input {
|
|
126
147
|
color: $color-grey;
|
|
127
148
|
|
|
128
149
|
.dito-icon--disabled {
|
|
129
150
|
color: $color-light;
|
|
130
151
|
}
|
|
131
|
-
}
|
|
132
152
|
|
|
133
|
-
|
|
134
|
-
|
|
153
|
+
@at-root .dito-component:not(:has(.dito-component)):focus-within & {
|
|
154
|
+
color: $color-active;
|
|
155
|
+
}
|
|
135
156
|
}
|
|
136
157
|
|
|
137
158
|
&__clear {
|
|
@@ -148,7 +169,7 @@ export default DitoComponent.component('DitoAffixes', {
|
|
|
148
169
|
padding: 0;
|
|
149
170
|
border: 0;
|
|
150
171
|
|
|
151
|
-
@at-root .dito-component:
|
|
172
|
+
@at-root .dito-component:not(:has(.dito-component)):hover & {
|
|
152
173
|
display: block;
|
|
153
174
|
}
|
|
154
175
|
|
|
@@ -13,7 +13,7 @@ component.dito-label(
|
|
|
13
13
|
.dito-label__inner(
|
|
14
14
|
v-if="text || prefixes.length > 0 || suffixes.length > 0"
|
|
15
15
|
)
|
|
16
|
-
DitoAffixes
|
|
16
|
+
DitoAffixes(
|
|
17
17
|
:items="prefixes"
|
|
18
18
|
position="prefix"
|
|
19
19
|
:parentContext="context"
|
|
@@ -23,8 +23,9 @@ component.dito-label(
|
|
|
23
23
|
:for="dataPath"
|
|
24
24
|
v-html="text"
|
|
25
25
|
)
|
|
26
|
-
DitoAffixes
|
|
26
|
+
DitoAffixes(
|
|
27
27
|
:items="suffixes"
|
|
28
|
+
mode="ellipsis"
|
|
28
29
|
position="suffix"
|
|
29
30
|
:parentContext="context"
|
|
30
31
|
)
|
|
@@ -117,6 +118,7 @@ export default DitoComponent.component('DitoLabel', {
|
|
|
117
118
|
display: flex;
|
|
118
119
|
align-items: center;
|
|
119
120
|
overflow: hidden;
|
|
121
|
+
gap: $input-padding-hor;
|
|
120
122
|
}
|
|
121
123
|
|
|
122
124
|
label {
|
|
@@ -140,44 +142,6 @@ export default DitoComponent.component('DitoLabel', {
|
|
|
140
142
|
transform: translateY(-4px);
|
|
141
143
|
}
|
|
142
144
|
|
|
143
|
-
&__prefix,
|
|
144
|
-
&__suffix {
|
|
145
|
-
flex: 1;
|
|
146
|
-
position: relative;
|
|
147
|
-
line-height: $input-height;
|
|
148
|
-
|
|
149
|
-
// For ellipsis to work on prefix and suffix with flex layout, we need to
|
|
150
|
-
// use a nested absolutely positioned span.
|
|
151
|
-
|
|
152
|
-
&::before {
|
|
153
|
-
content: '\200b'; // zero-width space to keep container from collapsing.
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
span {
|
|
157
|
-
position: absolute;
|
|
158
|
-
inset: 0;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
label,
|
|
163
|
-
&__prefix span,
|
|
164
|
-
&__suffix span {
|
|
165
|
-
@include user-select(none);
|
|
166
|
-
@include ellipsis;
|
|
167
|
-
|
|
168
|
-
white-space: nowrap;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
&__prefix + label,
|
|
172
|
-
label + &__suffix {
|
|
173
|
-
&,
|
|
174
|
-
span {
|
|
175
|
-
&::before {
|
|
176
|
-
content: '\a0'; //
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
|
|
181
145
|
.dito-buttons {
|
|
182
146
|
// Move the label padding inside .dito-buttons, so that it captures all
|
|
183
147
|
// near mouse events:
|
|
@@ -17,6 +17,7 @@ DitoTrigger.dito-color(
|
|
|
17
17
|
DitoAffixes(
|
|
18
18
|
:items="schema.prefix"
|
|
19
19
|
position="prefix"
|
|
20
|
+
mode="input"
|
|
20
21
|
:disabled="disabled"
|
|
21
22
|
:parentContext="context"
|
|
22
23
|
)
|
|
@@ -24,6 +25,7 @@ DitoTrigger.dito-color(
|
|
|
24
25
|
DitoAffixes(
|
|
25
26
|
:items="schema.suffix"
|
|
26
27
|
position="suffix"
|
|
28
|
+
mode="input"
|
|
27
29
|
:clearable="showClearButton"
|
|
28
30
|
:disabled="disabled"
|
|
29
31
|
:parentContext="context"
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
DitoAffixes(
|
|
14
14
|
:items="schema.prefix"
|
|
15
15
|
position="prefix"
|
|
16
|
+
mode="input"
|
|
16
17
|
absolute
|
|
17
18
|
:disabled="disabled"
|
|
18
19
|
:parentContext="context"
|
|
@@ -21,6 +22,7 @@
|
|
|
21
22
|
DitoAffixes(
|
|
22
23
|
:items="schema.suffix"
|
|
23
24
|
position="suffix"
|
|
25
|
+
mode="input"
|
|
24
26
|
absolute
|
|
25
27
|
:clearable="showClearButton"
|
|
26
28
|
:disabled="disabled"
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
DitoAffixes(
|
|
5
5
|
:items="schema.prefix"
|
|
6
6
|
position="prefix"
|
|
7
|
+
mode="input"
|
|
7
8
|
absolute
|
|
8
9
|
:disabled="disabled"
|
|
9
10
|
:parentContext="context"
|
|
@@ -37,6 +38,7 @@
|
|
|
37
38
|
DitoAffixes(
|
|
38
39
|
:items="schema.suffix"
|
|
39
40
|
position="suffix"
|
|
41
|
+
mode="input"
|
|
40
42
|
absolute
|
|
41
43
|
:clearable="showClearButton"
|
|
42
44
|
:disabled="disabled"
|
|
@@ -13,6 +13,7 @@ DitoInput.dito-number(
|
|
|
13
13
|
DitoAffixes(
|
|
14
14
|
:items="schema.prefix"
|
|
15
15
|
position="prefix"
|
|
16
|
+
mode="input"
|
|
16
17
|
:disabled="disabled"
|
|
17
18
|
:parentContext="context"
|
|
18
19
|
)
|
|
@@ -20,6 +21,7 @@ DitoInput.dito-number(
|
|
|
20
21
|
DitoAffixes(
|
|
21
22
|
:items="schema.suffix"
|
|
22
23
|
position="suffix"
|
|
24
|
+
mode="input"
|
|
23
25
|
:clearable="showClearButton"
|
|
24
26
|
:disabled="disabled"
|
|
25
27
|
:parentContext="context"
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
DitoAffixes(
|
|
6
6
|
:items="schema.prefix"
|
|
7
7
|
position="prefix"
|
|
8
|
+
mode="input"
|
|
8
9
|
absolute
|
|
9
10
|
:disabled="disabled"
|
|
10
11
|
:parentContext="context"
|
|
@@ -42,6 +43,7 @@
|
|
|
42
43
|
DitoAffixes(
|
|
43
44
|
:items="schema.suffix"
|
|
44
45
|
position="suffix"
|
|
46
|
+
mode="input"
|
|
45
47
|
absolute
|
|
46
48
|
:clearable="showClearButton"
|
|
47
49
|
:disabled="disabled"
|
|
@@ -10,6 +10,7 @@ DitoInput.dito-text(
|
|
|
10
10
|
DitoAffixes(
|
|
11
11
|
:items="schema.prefix"
|
|
12
12
|
position="prefix"
|
|
13
|
+
mode="input"
|
|
13
14
|
:disabled="disabled"
|
|
14
15
|
:parentContext="context"
|
|
15
16
|
)
|
|
@@ -17,6 +18,7 @@ DitoInput.dito-text(
|
|
|
17
18
|
DitoAffixes(
|
|
18
19
|
:items="schema.suffix"
|
|
19
20
|
position="suffix"
|
|
21
|
+
mode="input"
|
|
20
22
|
:clearable="showClearButton"
|
|
21
23
|
:disabled="disabled"
|
|
22
24
|
:parentContext="context"
|