@fastkit/vui 0.8.8 → 0.8.9
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/vui.cjs.js +69 -36
- package/dist/vui.cjs.prod.js +69 -36
- package/dist/vui.css +45 -3
- package/dist/vui.d.ts +27 -42
- package/dist/vui.min.css +1 -1
- package/dist/vui.min.css.map +1 -1
- package/dist/vui.mjs +70 -37
- package/package.json +6 -6
- package/src/components/VOption/VOption.scss +15 -3
- package/src/components/VOption/VOption.tsx +7 -1
- package/src/components/VOptionGroup/VOptionGroup.scss +13 -0
- package/src/components/VSelect/VSelect.scss +14 -0
- package/src/components/VSelect/VSelect.tsx +36 -8
- package/src/composables/form-selector.tsx +26 -17
package/dist/vui.cjs.js
CHANGED
|
@@ -410,19 +410,24 @@ function defineFormSelectorComponent(opts) {
|
|
|
410
410
|
"indeterminate": true,
|
|
411
411
|
"class": "mr-1",
|
|
412
412
|
"size": CONTROL_LOADING_SPINNER_SIZES[this.size || 'md']
|
|
413
|
-
}, null), this.loadingMessageRef]), this.
|
|
414
|
-
const
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
413
|
+
}, null), this.loadingMessageRef]), this.propGroups.map(group => {
|
|
414
|
+
const {
|
|
415
|
+
items
|
|
416
|
+
} = group;
|
|
417
|
+
return vue.createVNode(vue.Fragment, null, [items.map(attrs => {
|
|
418
|
+
const selected = selectorControl.isSelected(attrs.value);
|
|
419
|
+
return itemRenderer({
|
|
420
|
+
selected,
|
|
421
|
+
control: selectorControl,
|
|
422
|
+
attrs: { ...attrs,
|
|
423
|
+
modelValue: selected,
|
|
424
|
+
key: attrs.value
|
|
425
|
+
},
|
|
426
|
+
slots: {
|
|
427
|
+
default: () => attrs.label(this.selectorControl)
|
|
428
|
+
}
|
|
429
|
+
});
|
|
430
|
+
})]);
|
|
426
431
|
}), vueKit.renderSlotOrEmpty(this.$slots, 'default')])
|
|
427
432
|
});
|
|
428
433
|
}
|
|
@@ -447,7 +452,7 @@ function useElevation(props, opts = {}) {
|
|
|
447
452
|
};
|
|
448
453
|
}
|
|
449
454
|
|
|
450
|
-
function _isSlot$
|
|
455
|
+
function _isSlot$f(s) {
|
|
451
456
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
452
457
|
}
|
|
453
458
|
|
|
@@ -468,7 +473,7 @@ const VSkeltonLoaderBone = vue.defineComponent({
|
|
|
468
473
|
const TagName = props.tag;
|
|
469
474
|
return vue.createVNode(TagName, vue.mergeProps(ctx.attrs, {
|
|
470
475
|
"class": "v-skelton-loader-bone"
|
|
471
|
-
}), _isSlot$
|
|
476
|
+
}), _isSlot$f(_slot = vueUtils.renderSlotOrEmpty(ctx.slots)) ? _slot : {
|
|
472
477
|
default: () => [_slot]
|
|
473
478
|
});
|
|
474
479
|
};
|
|
@@ -1291,7 +1296,7 @@ const VButtonGroup = vue.defineComponent({
|
|
|
1291
1296
|
|
|
1292
1297
|
});
|
|
1293
1298
|
|
|
1294
|
-
function _isSlot$
|
|
1299
|
+
function _isSlot$e(s) {
|
|
1295
1300
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
1296
1301
|
}
|
|
1297
1302
|
|
|
@@ -1540,7 +1545,7 @@ const VPagination = vue.defineComponent({
|
|
|
1540
1545
|
"class": classes,
|
|
1541
1546
|
"to": to,
|
|
1542
1547
|
"key": key
|
|
1543
|
-
}, _isSlot$
|
|
1548
|
+
}, _isSlot$e(children) ? children : {
|
|
1544
1549
|
default: () => [children]
|
|
1545
1550
|
});
|
|
1546
1551
|
} else {
|
|
@@ -1696,7 +1701,7 @@ const VDrawerLayout = vue.defineComponent({
|
|
|
1696
1701
|
|
|
1697
1702
|
});
|
|
1698
1703
|
|
|
1699
|
-
function _isSlot$
|
|
1704
|
+
function _isSlot$d(s) {
|
|
1700
1705
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
1701
1706
|
}
|
|
1702
1707
|
|
|
@@ -1733,7 +1738,7 @@ const VHero = vue.defineComponent({
|
|
|
1733
1738
|
}, {
|
|
1734
1739
|
default: () => [vue.createVNode(HTagName, {
|
|
1735
1740
|
"class": "v-hero__title"
|
|
1736
|
-
}, _isSlot$
|
|
1741
|
+
}, _isSlot$d(_slot = vueUtils.renderSlotOrEmpty(ctx.slots, 'default')) ? _slot : {
|
|
1737
1742
|
default: () => [_slot]
|
|
1738
1743
|
}), adornment && vue.createVNode("div", {
|
|
1739
1744
|
"class": "v-hero__adornment"
|
|
@@ -1745,7 +1750,7 @@ const VHero = vue.defineComponent({
|
|
|
1745
1750
|
|
|
1746
1751
|
});
|
|
1747
1752
|
|
|
1748
|
-
function _isSlot$
|
|
1753
|
+
function _isSlot$c(s) {
|
|
1749
1754
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
1750
1755
|
}
|
|
1751
1756
|
|
|
@@ -1786,7 +1791,7 @@ function renderNavigationItemInput(input, extraProps) {
|
|
|
1786
1791
|
} = resolveNavigationItemInput(input);
|
|
1787
1792
|
return vue.createVNode(VNavigationItem, { ...props,
|
|
1788
1793
|
...extraProps
|
|
1789
|
-
}, _isSlot$
|
|
1794
|
+
}, _isSlot$c(label) ? label : {
|
|
1790
1795
|
default: () => [label]
|
|
1791
1796
|
});
|
|
1792
1797
|
}
|
|
@@ -1941,7 +1946,7 @@ const VNavigationItem = vue.defineComponent({
|
|
|
1941
1946
|
"class": ['v-navigation-item', classes.value],
|
|
1942
1947
|
"onClick": onClick,
|
|
1943
1948
|
"onChangeActive": onChangeActive
|
|
1944
|
-
}), _isSlot$
|
|
1949
|
+
}), _isSlot$c(_slot = vueUtils.renderSlotOrEmpty(ctx.slots, 'default')) ? _slot : {
|
|
1945
1950
|
default: () => [_slot]
|
|
1946
1951
|
}), _children && vue.createVNode(vueUtils.VExpandTransition, null, {
|
|
1947
1952
|
default: () => [vue.withDirectives(vue.createVNode("div", {
|
|
@@ -2125,7 +2130,7 @@ const VCheckbox = vue.defineComponent({
|
|
|
2125
2130
|
|
|
2126
2131
|
});
|
|
2127
2132
|
|
|
2128
|
-
function _isSlot$
|
|
2133
|
+
function _isSlot$b(s) {
|
|
2129
2134
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
2130
2135
|
}
|
|
2131
2136
|
|
|
@@ -2137,7 +2142,7 @@ const VCheckboxGroup = defineFormSelectorComponent({
|
|
|
2137
2142
|
itemRenderer: ({
|
|
2138
2143
|
attrs,
|
|
2139
2144
|
slots
|
|
2140
|
-
}) => vue.createVNode(VCheckbox, attrs, _isSlot$
|
|
2145
|
+
}) => vue.createVNode(VCheckbox, attrs, _isSlot$b(slots) ? slots : {
|
|
2141
2146
|
default: () => [slots]
|
|
2142
2147
|
})
|
|
2143
2148
|
});
|
|
@@ -2189,7 +2194,7 @@ const VRadio = vue.defineComponent({
|
|
|
2189
2194
|
|
|
2190
2195
|
});
|
|
2191
2196
|
|
|
2192
|
-
function _isSlot$
|
|
2197
|
+
function _isSlot$a(s) {
|
|
2193
2198
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
2194
2199
|
}
|
|
2195
2200
|
|
|
@@ -2200,7 +2205,7 @@ const VRadioGroup = defineFormSelectorComponent({
|
|
|
2200
2205
|
itemRenderer: ({
|
|
2201
2206
|
attrs,
|
|
2202
2207
|
slots
|
|
2203
|
-
}) => vue.createVNode(VRadio, attrs, _isSlot$
|
|
2208
|
+
}) => vue.createVNode(VRadio, attrs, _isSlot$a(slots) ? slots : {
|
|
2204
2209
|
default: () => [slots]
|
|
2205
2210
|
})
|
|
2206
2211
|
});
|
|
@@ -2262,7 +2267,7 @@ const VSwitch = vue.defineComponent({
|
|
|
2262
2267
|
|
|
2263
2268
|
});
|
|
2264
2269
|
|
|
2265
|
-
function _isSlot$
|
|
2270
|
+
function _isSlot$9(s) {
|
|
2266
2271
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
2267
2272
|
}
|
|
2268
2273
|
|
|
@@ -2274,7 +2279,7 @@ const VSwitchGroup = defineFormSelectorComponent({
|
|
|
2274
2279
|
itemRenderer: ({
|
|
2275
2280
|
attrs,
|
|
2276
2281
|
slots
|
|
2277
|
-
}) => vue.createVNode(VSwitch, attrs, _isSlot$
|
|
2282
|
+
}) => vue.createVNode(VSwitch, attrs, _isSlot$9(slots) ? slots : {
|
|
2278
2283
|
default: () => [slots]
|
|
2279
2284
|
})
|
|
2280
2285
|
});
|
|
@@ -2313,10 +2318,13 @@ const VOption = vue.defineComponent({
|
|
|
2313
2318
|
selectorItemControl,
|
|
2314
2319
|
classes
|
|
2315
2320
|
} = this;
|
|
2316
|
-
return vue.createVNode("label", {
|
|
2321
|
+
return vue.createVNode("label", vue.mergeProps({
|
|
2317
2322
|
"class": classes,
|
|
2318
|
-
"onClick": selectorItemControl.handleClickElement
|
|
2319
|
-
|
|
2323
|
+
"onClick": selectorItemControl.handleClickElement,
|
|
2324
|
+
"tabindex": selectorItemControl.tabindex
|
|
2325
|
+
}, {
|
|
2326
|
+
'aria-disabled': selectorItemControl.isDisabled
|
|
2327
|
+
}), [vue.createVNode("span", {
|
|
2320
2328
|
"class": "v-option__label"
|
|
2321
2329
|
}, [vueKit.renderSlotOrEmpty(this.$slots, 'default')])]);
|
|
2322
2330
|
}
|
|
@@ -2470,6 +2478,10 @@ const VControlField = vue.defineComponent({
|
|
|
2470
2478
|
|
|
2471
2479
|
});
|
|
2472
2480
|
|
|
2481
|
+
function _isSlot$8(s) {
|
|
2482
|
+
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
2483
|
+
}
|
|
2484
|
+
|
|
2473
2485
|
const {
|
|
2474
2486
|
props: props$3,
|
|
2475
2487
|
emits: emits$3
|
|
@@ -2573,18 +2585,29 @@ const VSelect = vue.defineComponent({
|
|
|
2573
2585
|
selectedItems
|
|
2574
2586
|
} = this;
|
|
2575
2587
|
const children = this.$slots.default && this.$slots.default() || [];
|
|
2576
|
-
const
|
|
2577
|
-
|
|
2588
|
+
const propGroups = this.propGroups.map(group => {
|
|
2589
|
+
let _slot;
|
|
2590
|
+
|
|
2591
|
+
return vue.createVNode(VOptionGroup, {
|
|
2592
|
+
"key": group.id,
|
|
2593
|
+
"groupId": group.id,
|
|
2594
|
+
"label": group.label(selectorControl),
|
|
2595
|
+
"disabled": group.disabled
|
|
2596
|
+
}, _isSlot$8(_slot = group.items.map(item => vue.createVNode(VOption, {
|
|
2578
2597
|
"disabled": item.disabled,
|
|
2579
2598
|
"value": item.value,
|
|
2580
2599
|
"key": item.value
|
|
2581
2600
|
}, {
|
|
2582
2601
|
default: () => item.label(selectorControl)
|
|
2602
|
+
}))) ? _slot : {
|
|
2603
|
+
default: () => [_slot]
|
|
2583
2604
|
});
|
|
2584
2605
|
});
|
|
2585
2606
|
return vue.createVNode(VFormControl, {
|
|
2586
2607
|
"nodeControl": nodeControl,
|
|
2587
|
-
"class": ['v-select', this.classes
|
|
2608
|
+
"class": ['v-select', this.classes, {
|
|
2609
|
+
'v-select--multiple': this.multiple
|
|
2610
|
+
}],
|
|
2588
2611
|
"label": this.label,
|
|
2589
2612
|
"hint": this.hint,
|
|
2590
2613
|
"hinttip": this.hinttip,
|
|
@@ -2600,11 +2623,20 @@ const VSelect = vue.defineComponent({
|
|
|
2600
2623
|
"distance": 0,
|
|
2601
2624
|
"alwaysRender": true,
|
|
2602
2625
|
"modelValue": this.menuOpened,
|
|
2603
|
-
"onUpdate:modelValue": $event => this.menuOpened = $event
|
|
2626
|
+
"onUpdate:modelValue": $event => this.menuOpened = $event,
|
|
2627
|
+
"itemElements": body => body.querySelectorAll('.v-option'),
|
|
2628
|
+
"onChoiceItemElement": item => {
|
|
2629
|
+
const ev = new MouseEvent('click', {
|
|
2630
|
+
view: window,
|
|
2631
|
+
bubbles: true,
|
|
2632
|
+
cancelable: true
|
|
2633
|
+
});
|
|
2634
|
+
item.dispatchEvent(ev);
|
|
2635
|
+
}
|
|
2604
2636
|
}, {
|
|
2605
2637
|
default: () => [vue.createVNode("div", {
|
|
2606
2638
|
"class": ['v-select__body', this.classes]
|
|
2607
|
-
}, [children,
|
|
2639
|
+
}, [children, propGroups])],
|
|
2608
2640
|
activator: ({
|
|
2609
2641
|
attrs,
|
|
2610
2642
|
control
|
|
@@ -2617,6 +2649,7 @@ const VSelect = vue.defineComponent({
|
|
|
2617
2649
|
"endAdornment": this.endAdornment,
|
|
2618
2650
|
"size": this.size,
|
|
2619
2651
|
"focused": this.menuOpened,
|
|
2652
|
+
"autoHeight": this.multiple,
|
|
2620
2653
|
"onClick": ev => {
|
|
2621
2654
|
if (this.canOperation && !control.isActive) {
|
|
2622
2655
|
let t = ev.target;
|
package/dist/vui.cjs.prod.js
CHANGED
|
@@ -410,19 +410,24 @@ function defineFormSelectorComponent(opts) {
|
|
|
410
410
|
"indeterminate": true,
|
|
411
411
|
"class": "mr-1",
|
|
412
412
|
"size": CONTROL_LOADING_SPINNER_SIZES[this.size || 'md']
|
|
413
|
-
}, null), this.loadingMessageRef]), this.
|
|
414
|
-
const
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
413
|
+
}, null), this.loadingMessageRef]), this.propGroups.map(group => {
|
|
414
|
+
const {
|
|
415
|
+
items
|
|
416
|
+
} = group;
|
|
417
|
+
return vue.createVNode(vue.Fragment, null, [items.map(attrs => {
|
|
418
|
+
const selected = selectorControl.isSelected(attrs.value);
|
|
419
|
+
return itemRenderer({
|
|
420
|
+
selected,
|
|
421
|
+
control: selectorControl,
|
|
422
|
+
attrs: { ...attrs,
|
|
423
|
+
modelValue: selected,
|
|
424
|
+
key: attrs.value
|
|
425
|
+
},
|
|
426
|
+
slots: {
|
|
427
|
+
default: () => attrs.label(this.selectorControl)
|
|
428
|
+
}
|
|
429
|
+
});
|
|
430
|
+
})]);
|
|
426
431
|
}), vueKit.renderSlotOrEmpty(this.$slots, 'default')])
|
|
427
432
|
});
|
|
428
433
|
}
|
|
@@ -447,7 +452,7 @@ function useElevation(props, opts = {}) {
|
|
|
447
452
|
};
|
|
448
453
|
}
|
|
449
454
|
|
|
450
|
-
function _isSlot$
|
|
455
|
+
function _isSlot$f(s) {
|
|
451
456
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
452
457
|
}
|
|
453
458
|
|
|
@@ -468,7 +473,7 @@ const VSkeltonLoaderBone = vue.defineComponent({
|
|
|
468
473
|
const TagName = props.tag;
|
|
469
474
|
return vue.createVNode(TagName, vue.mergeProps(ctx.attrs, {
|
|
470
475
|
"class": "v-skelton-loader-bone"
|
|
471
|
-
}), _isSlot$
|
|
476
|
+
}), _isSlot$f(_slot = vueUtils.renderSlotOrEmpty(ctx.slots)) ? _slot : {
|
|
472
477
|
default: () => [_slot]
|
|
473
478
|
});
|
|
474
479
|
};
|
|
@@ -1291,7 +1296,7 @@ const VButtonGroup = vue.defineComponent({
|
|
|
1291
1296
|
|
|
1292
1297
|
});
|
|
1293
1298
|
|
|
1294
|
-
function _isSlot$
|
|
1299
|
+
function _isSlot$e(s) {
|
|
1295
1300
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
1296
1301
|
}
|
|
1297
1302
|
|
|
@@ -1540,7 +1545,7 @@ const VPagination = vue.defineComponent({
|
|
|
1540
1545
|
"class": classes,
|
|
1541
1546
|
"to": to,
|
|
1542
1547
|
"key": key
|
|
1543
|
-
}, _isSlot$
|
|
1548
|
+
}, _isSlot$e(children) ? children : {
|
|
1544
1549
|
default: () => [children]
|
|
1545
1550
|
});
|
|
1546
1551
|
} else {
|
|
@@ -1696,7 +1701,7 @@ const VDrawerLayout = vue.defineComponent({
|
|
|
1696
1701
|
|
|
1697
1702
|
});
|
|
1698
1703
|
|
|
1699
|
-
function _isSlot$
|
|
1704
|
+
function _isSlot$d(s) {
|
|
1700
1705
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
1701
1706
|
}
|
|
1702
1707
|
|
|
@@ -1733,7 +1738,7 @@ const VHero = vue.defineComponent({
|
|
|
1733
1738
|
}, {
|
|
1734
1739
|
default: () => [vue.createVNode(HTagName, {
|
|
1735
1740
|
"class": "v-hero__title"
|
|
1736
|
-
}, _isSlot$
|
|
1741
|
+
}, _isSlot$d(_slot = vueUtils.renderSlotOrEmpty(ctx.slots, 'default')) ? _slot : {
|
|
1737
1742
|
default: () => [_slot]
|
|
1738
1743
|
}), adornment && vue.createVNode("div", {
|
|
1739
1744
|
"class": "v-hero__adornment"
|
|
@@ -1745,7 +1750,7 @@ const VHero = vue.defineComponent({
|
|
|
1745
1750
|
|
|
1746
1751
|
});
|
|
1747
1752
|
|
|
1748
|
-
function _isSlot$
|
|
1753
|
+
function _isSlot$c(s) {
|
|
1749
1754
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
1750
1755
|
}
|
|
1751
1756
|
|
|
@@ -1786,7 +1791,7 @@ function renderNavigationItemInput(input, extraProps) {
|
|
|
1786
1791
|
} = resolveNavigationItemInput(input);
|
|
1787
1792
|
return vue.createVNode(VNavigationItem, { ...props,
|
|
1788
1793
|
...extraProps
|
|
1789
|
-
}, _isSlot$
|
|
1794
|
+
}, _isSlot$c(label) ? label : {
|
|
1790
1795
|
default: () => [label]
|
|
1791
1796
|
});
|
|
1792
1797
|
}
|
|
@@ -1941,7 +1946,7 @@ const VNavigationItem = vue.defineComponent({
|
|
|
1941
1946
|
"class": ['v-navigation-item', classes.value],
|
|
1942
1947
|
"onClick": onClick,
|
|
1943
1948
|
"onChangeActive": onChangeActive
|
|
1944
|
-
}), _isSlot$
|
|
1949
|
+
}), _isSlot$c(_slot = vueUtils.renderSlotOrEmpty(ctx.slots, 'default')) ? _slot : {
|
|
1945
1950
|
default: () => [_slot]
|
|
1946
1951
|
}), _children && vue.createVNode(vueUtils.VExpandTransition, null, {
|
|
1947
1952
|
default: () => [vue.withDirectives(vue.createVNode("div", {
|
|
@@ -2125,7 +2130,7 @@ const VCheckbox = vue.defineComponent({
|
|
|
2125
2130
|
|
|
2126
2131
|
});
|
|
2127
2132
|
|
|
2128
|
-
function _isSlot$
|
|
2133
|
+
function _isSlot$b(s) {
|
|
2129
2134
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
2130
2135
|
}
|
|
2131
2136
|
|
|
@@ -2137,7 +2142,7 @@ const VCheckboxGroup = defineFormSelectorComponent({
|
|
|
2137
2142
|
itemRenderer: ({
|
|
2138
2143
|
attrs,
|
|
2139
2144
|
slots
|
|
2140
|
-
}) => vue.createVNode(VCheckbox, attrs, _isSlot$
|
|
2145
|
+
}) => vue.createVNode(VCheckbox, attrs, _isSlot$b(slots) ? slots : {
|
|
2141
2146
|
default: () => [slots]
|
|
2142
2147
|
})
|
|
2143
2148
|
});
|
|
@@ -2189,7 +2194,7 @@ const VRadio = vue.defineComponent({
|
|
|
2189
2194
|
|
|
2190
2195
|
});
|
|
2191
2196
|
|
|
2192
|
-
function _isSlot$
|
|
2197
|
+
function _isSlot$a(s) {
|
|
2193
2198
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
2194
2199
|
}
|
|
2195
2200
|
|
|
@@ -2200,7 +2205,7 @@ const VRadioGroup = defineFormSelectorComponent({
|
|
|
2200
2205
|
itemRenderer: ({
|
|
2201
2206
|
attrs,
|
|
2202
2207
|
slots
|
|
2203
|
-
}) => vue.createVNode(VRadio, attrs, _isSlot$
|
|
2208
|
+
}) => vue.createVNode(VRadio, attrs, _isSlot$a(slots) ? slots : {
|
|
2204
2209
|
default: () => [slots]
|
|
2205
2210
|
})
|
|
2206
2211
|
});
|
|
@@ -2262,7 +2267,7 @@ const VSwitch = vue.defineComponent({
|
|
|
2262
2267
|
|
|
2263
2268
|
});
|
|
2264
2269
|
|
|
2265
|
-
function _isSlot$
|
|
2270
|
+
function _isSlot$9(s) {
|
|
2266
2271
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
2267
2272
|
}
|
|
2268
2273
|
|
|
@@ -2274,7 +2279,7 @@ const VSwitchGroup = defineFormSelectorComponent({
|
|
|
2274
2279
|
itemRenderer: ({
|
|
2275
2280
|
attrs,
|
|
2276
2281
|
slots
|
|
2277
|
-
}) => vue.createVNode(VSwitch, attrs, _isSlot$
|
|
2282
|
+
}) => vue.createVNode(VSwitch, attrs, _isSlot$9(slots) ? slots : {
|
|
2278
2283
|
default: () => [slots]
|
|
2279
2284
|
})
|
|
2280
2285
|
});
|
|
@@ -2313,10 +2318,13 @@ const VOption = vue.defineComponent({
|
|
|
2313
2318
|
selectorItemControl,
|
|
2314
2319
|
classes
|
|
2315
2320
|
} = this;
|
|
2316
|
-
return vue.createVNode("label", {
|
|
2321
|
+
return vue.createVNode("label", vue.mergeProps({
|
|
2317
2322
|
"class": classes,
|
|
2318
|
-
"onClick": selectorItemControl.handleClickElement
|
|
2319
|
-
|
|
2323
|
+
"onClick": selectorItemControl.handleClickElement,
|
|
2324
|
+
"tabindex": selectorItemControl.tabindex
|
|
2325
|
+
}, {
|
|
2326
|
+
'aria-disabled': selectorItemControl.isDisabled
|
|
2327
|
+
}), [vue.createVNode("span", {
|
|
2320
2328
|
"class": "v-option__label"
|
|
2321
2329
|
}, [vueKit.renderSlotOrEmpty(this.$slots, 'default')])]);
|
|
2322
2330
|
}
|
|
@@ -2470,6 +2478,10 @@ const VControlField = vue.defineComponent({
|
|
|
2470
2478
|
|
|
2471
2479
|
});
|
|
2472
2480
|
|
|
2481
|
+
function _isSlot$8(s) {
|
|
2482
|
+
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
2483
|
+
}
|
|
2484
|
+
|
|
2473
2485
|
const {
|
|
2474
2486
|
props: props$3,
|
|
2475
2487
|
emits: emits$3
|
|
@@ -2573,18 +2585,29 @@ const VSelect = vue.defineComponent({
|
|
|
2573
2585
|
selectedItems
|
|
2574
2586
|
} = this;
|
|
2575
2587
|
const children = this.$slots.default && this.$slots.default() || [];
|
|
2576
|
-
const
|
|
2577
|
-
|
|
2588
|
+
const propGroups = this.propGroups.map(group => {
|
|
2589
|
+
let _slot;
|
|
2590
|
+
|
|
2591
|
+
return vue.createVNode(VOptionGroup, {
|
|
2592
|
+
"key": group.id,
|
|
2593
|
+
"groupId": group.id,
|
|
2594
|
+
"label": group.label(selectorControl),
|
|
2595
|
+
"disabled": group.disabled
|
|
2596
|
+
}, _isSlot$8(_slot = group.items.map(item => vue.createVNode(VOption, {
|
|
2578
2597
|
"disabled": item.disabled,
|
|
2579
2598
|
"value": item.value,
|
|
2580
2599
|
"key": item.value
|
|
2581
2600
|
}, {
|
|
2582
2601
|
default: () => item.label(selectorControl)
|
|
2602
|
+
}))) ? _slot : {
|
|
2603
|
+
default: () => [_slot]
|
|
2583
2604
|
});
|
|
2584
2605
|
});
|
|
2585
2606
|
return vue.createVNode(VFormControl, {
|
|
2586
2607
|
"nodeControl": nodeControl,
|
|
2587
|
-
"class": ['v-select', this.classes
|
|
2608
|
+
"class": ['v-select', this.classes, {
|
|
2609
|
+
'v-select--multiple': this.multiple
|
|
2610
|
+
}],
|
|
2588
2611
|
"label": this.label,
|
|
2589
2612
|
"hint": this.hint,
|
|
2590
2613
|
"hinttip": this.hinttip,
|
|
@@ -2600,11 +2623,20 @@ const VSelect = vue.defineComponent({
|
|
|
2600
2623
|
"distance": 0,
|
|
2601
2624
|
"alwaysRender": true,
|
|
2602
2625
|
"modelValue": this.menuOpened,
|
|
2603
|
-
"onUpdate:modelValue": $event => this.menuOpened = $event
|
|
2626
|
+
"onUpdate:modelValue": $event => this.menuOpened = $event,
|
|
2627
|
+
"itemElements": body => body.querySelectorAll('.v-option'),
|
|
2628
|
+
"onChoiceItemElement": item => {
|
|
2629
|
+
const ev = new MouseEvent('click', {
|
|
2630
|
+
view: window,
|
|
2631
|
+
bubbles: true,
|
|
2632
|
+
cancelable: true
|
|
2633
|
+
});
|
|
2634
|
+
item.dispatchEvent(ev);
|
|
2635
|
+
}
|
|
2604
2636
|
}, {
|
|
2605
2637
|
default: () => [vue.createVNode("div", {
|
|
2606
2638
|
"class": ['v-select__body', this.classes]
|
|
2607
|
-
}, [children,
|
|
2639
|
+
}, [children, propGroups])],
|
|
2608
2640
|
activator: ({
|
|
2609
2641
|
attrs,
|
|
2610
2642
|
control
|
|
@@ -2617,6 +2649,7 @@ const VSelect = vue.defineComponent({
|
|
|
2617
2649
|
"endAdornment": this.endAdornment,
|
|
2618
2650
|
"size": this.size,
|
|
2619
2651
|
"focused": this.menuOpened,
|
|
2652
|
+
"autoHeight": this.multiple,
|
|
2620
2653
|
"onClick": ev => {
|
|
2621
2654
|
if (this.canOperation && !control.isActive) {
|
|
2622
2655
|
let t = ev.target;
|
package/dist/vui.css
CHANGED
|
@@ -1833,12 +1833,25 @@ thead th {
|
|
|
1833
1833
|
opacity: 0.1;
|
|
1834
1834
|
}
|
|
1835
1835
|
.v-option {
|
|
1836
|
+
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
|
1837
|
+
padding: 0;
|
|
1838
|
+
touch-action: manipulation;
|
|
1839
|
+
cursor: pointer;
|
|
1840
|
+
user-select: none;
|
|
1841
|
+
background-color: transparent;
|
|
1842
|
+
border: 0;
|
|
1843
|
+
outline: 0;
|
|
1844
|
+
appearance: none;
|
|
1836
1845
|
position: relative;
|
|
1837
1846
|
display: flex;
|
|
1838
1847
|
width: 100%;
|
|
1839
|
-
padding: 0.
|
|
1840
|
-
|
|
1841
|
-
|
|
1848
|
+
padding: 0.75em 1em;
|
|
1849
|
+
}
|
|
1850
|
+
.v-option::-moz-focus-inner {
|
|
1851
|
+
border: 0;
|
|
1852
|
+
}
|
|
1853
|
+
.v-option, .v-option:hover, .v-option:focus {
|
|
1854
|
+
text-decoration: none;
|
|
1842
1855
|
}
|
|
1843
1856
|
.v-option input {
|
|
1844
1857
|
position: absolute;
|
|
@@ -1884,9 +1897,27 @@ thead th {
|
|
|
1884
1897
|
.v-option--has-not-value .v-option__label {
|
|
1885
1898
|
font-style: italic;
|
|
1886
1899
|
}
|
|
1900
|
+
.v-option[disabled], .v-option[tabindex="-1"] {
|
|
1901
|
+
color: var(--palette-muted);
|
|
1902
|
+
pointer-events: none;
|
|
1903
|
+
opacity: 0.4;
|
|
1904
|
+
}
|
|
1905
|
+
.v-option[disabled]::before, .v-option[tabindex="-1"]::before {
|
|
1906
|
+
opacity: 0 !important;
|
|
1907
|
+
}
|
|
1887
1908
|
.v-option-group {
|
|
1888
1909
|
display: block;
|
|
1889
1910
|
}
|
|
1911
|
+
.v-option-group__label {
|
|
1912
|
+
padding: 1em;
|
|
1913
|
+
font-size: 0.875em;
|
|
1914
|
+
color: var(--palette-caption);
|
|
1915
|
+
opacity: 0.6;
|
|
1916
|
+
}
|
|
1917
|
+
.v-option-group--disabled .v-option-group__label {
|
|
1918
|
+
color: var(--palette-muted);
|
|
1919
|
+
opacity: 0.4;
|
|
1920
|
+
}
|
|
1890
1921
|
.v-select__input {
|
|
1891
1922
|
cursor: pointer;
|
|
1892
1923
|
}
|
|
@@ -1914,6 +1945,17 @@ thead th {
|
|
|
1914
1945
|
white-space: nowrap;
|
|
1915
1946
|
vertical-align: middle;
|
|
1916
1947
|
}
|
|
1948
|
+
.v-select--multiple .v-select__selections {
|
|
1949
|
+
display: block;
|
|
1950
|
+
}
|
|
1951
|
+
.v-select--multiple .v-select__selections__inner {
|
|
1952
|
+
display: block;
|
|
1953
|
+
overflow: auto;
|
|
1954
|
+
white-space: unset;
|
|
1955
|
+
}
|
|
1956
|
+
.v-select--multiple .v-control-field__body {
|
|
1957
|
+
padding: 0.2em 0;
|
|
1958
|
+
}
|
|
1917
1959
|
.v-select__placeholder {
|
|
1918
1960
|
font-style: italic;
|
|
1919
1961
|
color: var(--control-disabled-color);
|