quasar 2.4.6 → 2.4.10
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/api/QFile.json +1 -0
- package/dist/api/QTree.json +7 -0
- package/dist/api/QUploader.json +3 -1
- package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
- package/dist/icon-set/eva-icons.umd.prod.js +1 -1
- package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
- package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
- package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
- package/dist/icon-set/line-awesome.umd.prod.js +1 -1
- package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
- package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
- package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
- package/dist/icon-set/material-icons.umd.prod.js +1 -1
- package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
- package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
- package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
- package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
- package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
- package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
- package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
- package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
- package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
- package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
- package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
- package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
- package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
- package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
- package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
- package/dist/icon-set/svg-mdi-v4.umd.prod.js +1 -1
- package/dist/icon-set/svg-mdi-v5.umd.prod.js +1 -1
- package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
- package/dist/icon-set/svg-themify.umd.prod.js +1 -1
- package/dist/icon-set/themify.umd.prod.js +1 -1
- package/dist/lang/ar.umd.prod.js +1 -1
- package/dist/lang/az-Latn.umd.prod.js +1 -1
- package/dist/lang/bg.umd.prod.js +1 -1
- package/dist/lang/bn.umd.prod.js +1 -1
- package/dist/lang/ca.umd.prod.js +1 -1
- package/dist/lang/cs.umd.prod.js +1 -1
- package/dist/lang/da.umd.prod.js +1 -1
- package/dist/lang/de.umd.prod.js +1 -1
- package/dist/lang/el.umd.prod.js +1 -1
- package/dist/lang/en-GB.umd.prod.js +1 -1
- package/dist/lang/en-US.umd.prod.js +1 -1
- package/dist/lang/eo.umd.prod.js +1 -1
- package/dist/lang/es.umd.prod.js +1 -1
- package/dist/lang/et.umd.prod.js +1 -1
- package/dist/lang/fa-IR.umd.prod.js +1 -1
- package/dist/lang/fa.umd.prod.js +1 -1
- package/dist/lang/fi.umd.prod.js +1 -1
- package/dist/lang/fr.umd.prod.js +1 -1
- package/dist/lang/gn.umd.prod.js +1 -1
- package/dist/lang/he.umd.prod.js +1 -1
- package/dist/lang/hr.umd.prod.js +1 -1
- package/dist/lang/hu.umd.prod.js +1 -1
- package/dist/lang/id.umd.prod.js +1 -1
- package/dist/lang/is.umd.prod.js +1 -1
- package/dist/lang/it.umd.prod.js +1 -1
- package/dist/lang/ja.umd.prod.js +1 -1
- package/dist/lang/km.umd.prod.js +1 -1
- package/dist/lang/ko-KR.umd.prod.js +1 -1
- package/dist/lang/kur-CKB.umd.prod.js +1 -1
- package/dist/lang/lt.umd.prod.js +1 -1
- package/dist/lang/lu.umd.prod.js +1 -1
- package/dist/lang/lv.umd.prod.js +1 -1
- package/dist/lang/ml.umd.prod.js +1 -1
- package/dist/lang/ms.umd.prod.js +1 -1
- package/dist/lang/my.umd.prod.js +6 -0
- package/dist/lang/nb-NO.umd.prod.js +1 -1
- package/dist/lang/nl.umd.prod.js +1 -1
- package/dist/lang/pl.umd.prod.js +1 -1
- package/dist/lang/pt-BR.umd.prod.js +1 -1
- package/dist/lang/pt.umd.prod.js +1 -1
- package/dist/lang/ro.umd.prod.js +1 -1
- package/dist/lang/ru.umd.prod.js +1 -1
- package/dist/lang/sk.umd.prod.js +1 -1
- package/dist/lang/sl.umd.prod.js +1 -1
- package/dist/lang/sr-CYR.umd.prod.js +1 -1
- package/dist/lang/sr.umd.prod.js +1 -1
- package/dist/lang/sv.umd.prod.js +1 -1
- package/dist/lang/ta.umd.prod.js +1 -1
- package/dist/lang/th.umd.prod.js +1 -1
- package/dist/lang/tr.umd.prod.js +1 -1
- package/dist/lang/ug.umd.prod.js +1 -1
- package/dist/lang/uk.umd.prod.js +1 -1
- package/dist/lang/vi.umd.prod.js +1 -1
- package/dist/lang/zh-CN.umd.prod.js +1 -1
- package/dist/lang/zh-TW.umd.prod.js +1 -1
- package/dist/quasar.cjs.prod.js +2 -2
- package/dist/quasar.css +7 -4
- package/dist/quasar.esm.prod.js +2 -2
- package/dist/quasar.prod.css +1 -1
- package/dist/quasar.rtl.css +7 -4
- package/dist/quasar.rtl.prod.css +1 -1
- package/dist/quasar.sass +8 -4
- package/dist/quasar.umd.js +78 -60
- package/dist/quasar.umd.prod.js +2 -2
- package/dist/ssr-directives/Morph.js +1 -1
- package/dist/types/api/qfile.d.ts +8 -0
- package/dist/types/api/qselect.d.ts +4 -0
- package/dist/types/api/qtable.d.ts +12 -0
- package/dist/types/api/qtree.d.ts +31 -0
- package/dist/types/api/quploader.d.ts +28 -0
- package/dist/types/api/touchswipe.d.ts +11 -0
- package/dist/types/api.d.ts +6 -0
- package/dist/types/index.d.ts +287 -311
- package/dist/types/ts-helpers.d.ts +6 -2
- package/dist/types/utils.d.ts +4 -1
- package/dist/vetur/quasar-attributes.json +4 -0
- package/dist/vetur/quasar-tags.json +1 -0
- package/dist/web-types/web-types.json +11 -1
- package/lang/index.json +4 -0
- package/lang/my.js +90 -0
- package/package.json +1 -1
- package/src/components/date/QDate.js +6 -1
- package/src/components/dialog-plugin/DialogPlugin.js +1 -1
- package/src/components/icon/QIcon.js +4 -9
- package/src/components/icon/QIcon.sass +4 -3
- package/src/components/layout/QLayout.js +6 -5
- package/src/components/scroll-area/QScrollArea.js +15 -10
- package/src/components/scroll-observer/QScrollObserver.js +12 -10
- package/src/components/select/QSelect.js +20 -19
- package/src/components/select/QSelect.sass +3 -0
- package/src/components/tree/QTree.js +6 -1
- package/src/components/tree/QTree.json +8 -0
- package/src/components/uploader/uploader-core.js +2 -0
- package/src/components/uploader/xhr-uploader-plugin.json +2 -1
- package/src/composables/private/use-field.js +2 -0
- package/src/composables/private/use-file.json +1 -0
package/dist/quasar.sass
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Quasar Framework v2.4.
|
|
2
|
+
* Quasar Framework v2.4.10
|
|
3
3
|
* (c) 2015-present Razvan Stoenescu
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -661,9 +661,10 @@ input[type='search']::-webkit-search-decoration
|
|
|
661
661
|
display: flex !important
|
|
662
662
|
align-items: center
|
|
663
663
|
justify-content: center
|
|
664
|
-
> svg
|
|
665
|
-
|
|
666
|
-
|
|
664
|
+
> svg,
|
|
665
|
+
> img
|
|
666
|
+
width: 1em
|
|
667
|
+
height: 1em
|
|
667
668
|
.q-icon,
|
|
668
669
|
.material-icons,
|
|
669
670
|
.material-icons-outlined,
|
|
@@ -3261,7 +3262,10 @@ body.desktop
|
|
|
3261
3262
|
min-width: 50px !important
|
|
3262
3263
|
&--padding
|
|
3263
3264
|
padding-left: 4px
|
|
3265
|
+
&__focus-target,
|
|
3264
3266
|
&__autocomplete-input
|
|
3267
|
+
position: absolute
|
|
3268
|
+
outline: 0 !important
|
|
3265
3269
|
width: 0
|
|
3266
3270
|
height: 0
|
|
3267
3271
|
padding: 0
|
package/dist/quasar.umd.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Quasar Framework v2.4.
|
|
2
|
+
* Quasar Framework v2.4.10
|
|
3
3
|
* (c) 2015-present Razvan Stoenescu
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -1447,7 +1447,7 @@
|
|
|
1447
1447
|
}
|
|
1448
1448
|
|
|
1449
1449
|
var installQuasar = function (parentApp, opts = {}) {
|
|
1450
|
-
const $q = { version: '2.4.
|
|
1450
|
+
const $q = { version: '2.4.10' };
|
|
1451
1451
|
|
|
1452
1452
|
if (globalConfigIsFrozen === false) {
|
|
1453
1453
|
if (opts.config !== void 0) {
|
|
@@ -2032,27 +2032,22 @@
|
|
|
2032
2032
|
}
|
|
2033
2033
|
|
|
2034
2034
|
if (type.value.img === true) {
|
|
2035
|
-
return vue.h('
|
|
2036
|
-
vue.h('img', {
|
|
2037
|
-
class: type.value.cls,
|
|
2038
|
-
src: type.value.src
|
|
2039
|
-
})
|
|
2035
|
+
return vue.h('span', data, hMergeSlot(slots.default, [
|
|
2036
|
+
vue.h('img', { src: type.value.src })
|
|
2040
2037
|
]))
|
|
2041
2038
|
}
|
|
2042
2039
|
|
|
2043
2040
|
if (type.value.svg === true) {
|
|
2044
|
-
return vue.h('
|
|
2041
|
+
return vue.h('span', data, hMergeSlot(slots.default, [
|
|
2045
2042
|
vue.h('svg', {
|
|
2046
|
-
class: type.value.cls,
|
|
2047
2043
|
viewBox: type.value.viewBox
|
|
2048
2044
|
}, type.value.nodes)
|
|
2049
2045
|
]))
|
|
2050
2046
|
}
|
|
2051
2047
|
|
|
2052
2048
|
if (type.value.svguse === true) {
|
|
2053
|
-
return vue.h('
|
|
2049
|
+
return vue.h('span', data, hMergeSlot(slots.default, [
|
|
2054
2050
|
vue.h('svg', {
|
|
2055
|
-
class: type.value.cls,
|
|
2056
2051
|
viewBox: type.value.viewBox
|
|
2057
2052
|
}, [
|
|
2058
2053
|
vue.h('use', { 'xlink:href': type.value.src })
|
|
@@ -12608,7 +12603,12 @@
|
|
|
12608
12603
|
normalizedModel.value
|
|
12609
12604
|
.filter(date => typeof date === 'string')
|
|
12610
12605
|
.map(date => decodeString(date, innerMask.value, innerLocale.value))
|
|
12611
|
-
.filter(date =>
|
|
12606
|
+
.filter(date =>
|
|
12607
|
+
date.dateHash !== null
|
|
12608
|
+
&& date.day !== null
|
|
12609
|
+
&& date.month !== null
|
|
12610
|
+
&& date.year !== null
|
|
12611
|
+
)
|
|
12612
12612
|
);
|
|
12613
12613
|
|
|
12614
12614
|
const rangeModel = vue.computed(() => {
|
|
@@ -18906,6 +18906,8 @@
|
|
|
18906
18906
|
abort: state.abort
|
|
18907
18907
|
};
|
|
18908
18908
|
|
|
18909
|
+
// TODO: the result of this computed, especially the dynamic part, isn't currently typed
|
|
18910
|
+
// This result in an error with Volar when accessing the state (eg. files array)
|
|
18909
18911
|
const slotScope = vue.computed(() => {
|
|
18910
18912
|
const acc = {
|
|
18911
18913
|
canAddFiles: canAddFiles.value,
|
|
@@ -20759,6 +20761,8 @@
|
|
|
20759
20761
|
name: props.clearIcon || $q.iconSet.field.clear,
|
|
20760
20762
|
tabindex: 0,
|
|
20761
20763
|
type: 'button',
|
|
20764
|
+
'aria-hidden': null,
|
|
20765
|
+
role: null,
|
|
20762
20766
|
onClick: clearValue
|
|
20763
20767
|
})
|
|
20764
20768
|
])
|
|
@@ -23911,7 +23915,7 @@
|
|
|
23911
23915
|
}
|
|
23912
23916
|
};
|
|
23913
23917
|
|
|
23914
|
-
let
|
|
23918
|
+
let clearTimer = null, localScrollTarget, parentEl;
|
|
23915
23919
|
|
|
23916
23920
|
vue.watch(() => props.scrollTarget, () => {
|
|
23917
23921
|
unconfigureScrollTarget();
|
|
@@ -23919,9 +23923,7 @@
|
|
|
23919
23923
|
});
|
|
23920
23924
|
|
|
23921
23925
|
function emitEvent () {
|
|
23922
|
-
|
|
23923
|
-
cancelAnimationFrame(timer);
|
|
23924
|
-
timer = null;
|
|
23926
|
+
clearTimer !== null && clearTimer();
|
|
23925
23927
|
|
|
23926
23928
|
const top = Math.max(0, getVerticalScrollPosition(localScrollTarget));
|
|
23927
23929
|
const left = getHorizontalScrollPosition(localScrollTarget);
|
|
@@ -23971,10 +23973,15 @@
|
|
|
23971
23973
|
if (immediately === true || props.debounce === 0 || props.debounce === '0') {
|
|
23972
23974
|
emitEvent();
|
|
23973
23975
|
}
|
|
23974
|
-
else if (
|
|
23975
|
-
timer = props.debounce
|
|
23976
|
-
? setTimeout(emitEvent, props.debounce)
|
|
23977
|
-
: requestAnimationFrame(emitEvent);
|
|
23976
|
+
else if (clearTimer === null) {
|
|
23977
|
+
const [ timer, fn ] = props.debounce
|
|
23978
|
+
? [ setTimeout(emitEvent, props.debounce), clearTimeout ]
|
|
23979
|
+
: [ requestAnimationFrame(emitEvent), cancelAnimationFrame ];
|
|
23980
|
+
|
|
23981
|
+
clearTimer = () => {
|
|
23982
|
+
fn(timer);
|
|
23983
|
+
clearTimer = null;
|
|
23984
|
+
};
|
|
23978
23985
|
}
|
|
23979
23986
|
}
|
|
23980
23987
|
|
|
@@ -23986,8 +23993,7 @@
|
|
|
23986
23993
|
});
|
|
23987
23994
|
|
|
23988
23995
|
vue.onBeforeUnmount(() => {
|
|
23989
|
-
|
|
23990
|
-
cancelAnimationFrame(timer);
|
|
23996
|
+
clearTimer !== null && clearTimer();
|
|
23991
23997
|
unconfigureScrollTarget();
|
|
23992
23998
|
});
|
|
23993
23999
|
|
|
@@ -24166,7 +24172,7 @@
|
|
|
24166
24172
|
|
|
24167
24173
|
// prevent scrollbar flicker while resizing window height
|
|
24168
24174
|
// if no page scrollbar is already present
|
|
24169
|
-
{
|
|
24175
|
+
if (getScrollbarWidth() > 0) {
|
|
24170
24176
|
let timer = null;
|
|
24171
24177
|
const el = document.body;
|
|
24172
24178
|
|
|
@@ -24179,7 +24185,7 @@
|
|
|
24179
24185
|
if (timer === null) {
|
|
24180
24186
|
// if it has no scrollbar then there's nothing to do
|
|
24181
24187
|
|
|
24182
|
-
if (el.scrollHeight >
|
|
24188
|
+
if (el.scrollHeight > $q.screen.height) {
|
|
24183
24189
|
return
|
|
24184
24190
|
}
|
|
24185
24191
|
|
|
@@ -24202,11 +24208,12 @@
|
|
|
24202
24208
|
}
|
|
24203
24209
|
|
|
24204
24210
|
vue.watch(
|
|
24205
|
-
() => (props.container !== true
|
|
24206
|
-
updateScrollEvent
|
|
24207
|
-
{ immediate: true }
|
|
24211
|
+
() => (props.container !== true ? 'add' : 'remove'),
|
|
24212
|
+
updateScrollEvent
|
|
24208
24213
|
);
|
|
24209
24214
|
|
|
24215
|
+
props.container !== true && updateScrollEvent('add');
|
|
24216
|
+
|
|
24210
24217
|
vue.onUnmounted(() => {
|
|
24211
24218
|
updateScrollEvent('remove');
|
|
24212
24219
|
});
|
|
@@ -26831,6 +26838,9 @@
|
|
|
26831
26838
|
&& panning.value === false
|
|
26832
26839
|
) || scroll.vertical.size.value <= container.vertical.value + 1
|
|
26833
26840
|
);
|
|
26841
|
+
scroll.vertical.thumbStart = vue.computed(() =>
|
|
26842
|
+
scroll.vertical.percentage.value * (container.vertical.value - scroll.vertical.thumbSize.value)
|
|
26843
|
+
);
|
|
26834
26844
|
scroll.vertical.thumbSize = vue.computed(() =>
|
|
26835
26845
|
Math.round(
|
|
26836
26846
|
between(
|
|
@@ -26841,13 +26851,11 @@
|
|
|
26841
26851
|
)
|
|
26842
26852
|
);
|
|
26843
26853
|
scroll.vertical.style = vue.computed(() => {
|
|
26844
|
-
const thumbSize = scroll.vertical.thumbSize.value;
|
|
26845
|
-
const pos = scroll.vertical.percentage.value * (container.vertical.value - thumbSize);
|
|
26846
26854
|
return {
|
|
26847
26855
|
...props.thumbStyle,
|
|
26848
26856
|
...props.verticalThumbStyle,
|
|
26849
|
-
top: `${
|
|
26850
|
-
height: `${ thumbSize }px`
|
|
26857
|
+
top: `${ scroll.vertical.thumbStart.value }px`,
|
|
26858
|
+
height: `${ scroll.vertical.thumbSize.value }px`
|
|
26851
26859
|
}
|
|
26852
26860
|
});
|
|
26853
26861
|
scroll.vertical.thumbClass = vue.computed(() =>
|
|
@@ -26872,6 +26880,9 @@
|
|
|
26872
26880
|
&& panning.value === false
|
|
26873
26881
|
) || scroll.horizontal.size.value <= container.horizontal.value + 1
|
|
26874
26882
|
);
|
|
26883
|
+
scroll.horizontal.thumbStart = vue.computed(() =>
|
|
26884
|
+
scroll.horizontal.percentage.value * (container.horizontal.value - scroll.horizontal.thumbSize.value)
|
|
26885
|
+
);
|
|
26875
26886
|
scroll.horizontal.thumbSize = vue.computed(() =>
|
|
26876
26887
|
Math.round(
|
|
26877
26888
|
between(
|
|
@@ -26882,13 +26893,11 @@
|
|
|
26882
26893
|
)
|
|
26883
26894
|
);
|
|
26884
26895
|
scroll.horizontal.style = vue.computed(() => {
|
|
26885
|
-
const thumbSize = scroll.horizontal.thumbSize.value;
|
|
26886
|
-
const pos = scroll.horizontal.percentage.value * (container.horizontal.value - thumbSize);
|
|
26887
26896
|
return {
|
|
26888
26897
|
...props.thumbStyle,
|
|
26889
26898
|
...props.horizontalThumbStyle,
|
|
26890
|
-
left: `${
|
|
26891
|
-
width: `${ thumbSize }px`
|
|
26899
|
+
left: `${ scroll.horizontal.thumbStart.value }px`,
|
|
26900
|
+
width: `${ scroll.horizontal.thumbSize.value }px`
|
|
26892
26901
|
}
|
|
26893
26902
|
});
|
|
26894
26903
|
scroll.horizontal.thumbClass = vue.computed(() =>
|
|
@@ -27034,8 +27043,11 @@
|
|
|
27034
27043
|
const data = scroll[ axis ];
|
|
27035
27044
|
|
|
27036
27045
|
if (data.thumbHidden.value !== true) {
|
|
27037
|
-
const
|
|
27038
|
-
|
|
27046
|
+
const offset = evt[ dirProps[ axis ].offset ];
|
|
27047
|
+
if (offset < data.thumbStart.value || offset > data.thumbStart.value + data.thumbSize.value) {
|
|
27048
|
+
const pos = offset - data.thumbSize.value / 2;
|
|
27049
|
+
setScroll(pos / container[ axis ].value * data.size.value, axis);
|
|
27050
|
+
}
|
|
27039
27051
|
|
|
27040
27052
|
// activate thumb pan
|
|
27041
27053
|
if (data.ref.value !== null) {
|
|
@@ -28518,34 +28530,34 @@
|
|
|
28518
28530
|
|
|
28519
28531
|
if (typeof value === 'string' && value.length > 0) {
|
|
28520
28532
|
const needle = value.toLocaleLowerCase();
|
|
28533
|
+
const findFn = extractFn => {
|
|
28534
|
+
const option = props.options.find(opt => extractFn.value(opt).toLocaleLowerCase() === needle);
|
|
28521
28535
|
|
|
28522
|
-
|
|
28523
|
-
|
|
28536
|
+
if (option === void 0) {
|
|
28537
|
+
return false
|
|
28538
|
+
}
|
|
28524
28539
|
|
|
28525
|
-
if (option !== void 0) {
|
|
28526
28540
|
if (innerValue.value.indexOf(option) === -1) {
|
|
28527
28541
|
toggleOption(option);
|
|
28528
28542
|
}
|
|
28529
28543
|
else {
|
|
28530
28544
|
hidePopup();
|
|
28531
28545
|
}
|
|
28532
|
-
}
|
|
28533
|
-
else {
|
|
28534
|
-
fn = opt => getOptionLabel.value(opt).toLocaleLowerCase() === needle;
|
|
28535
|
-
option = props.options.find(fn);
|
|
28536
28546
|
|
|
28537
|
-
|
|
28538
|
-
|
|
28539
|
-
|
|
28540
|
-
|
|
28541
|
-
|
|
28542
|
-
hidePopup();
|
|
28543
|
-
}
|
|
28547
|
+
return true
|
|
28548
|
+
};
|
|
28549
|
+
const fillFn = afterFilter => {
|
|
28550
|
+
if (findFn(getOptionValue) === true) {
|
|
28551
|
+
return
|
|
28544
28552
|
}
|
|
28545
|
-
|
|
28546
|
-
|
|
28553
|
+
if (findFn(getOptionLabel) === true || afterFilter === true) {
|
|
28554
|
+
return
|
|
28547
28555
|
}
|
|
28548
|
-
|
|
28556
|
+
|
|
28557
|
+
filter(value, true, () => fillFn(true));
|
|
28558
|
+
};
|
|
28559
|
+
|
|
28560
|
+
fillFn();
|
|
28549
28561
|
}
|
|
28550
28562
|
else {
|
|
28551
28563
|
state.clearValue(e);
|
|
@@ -28924,7 +28936,7 @@
|
|
|
28924
28936
|
}
|
|
28925
28937
|
}
|
|
28926
28938
|
|
|
28927
|
-
function filter (val, keepClosed) {
|
|
28939
|
+
function filter (val, keepClosed, afterUpdateFn) {
|
|
28928
28940
|
if (props.onFilter === void 0 || (keepClosed !== true && state.focused.value !== true)) {
|
|
28929
28941
|
return
|
|
28930
28942
|
}
|
|
@@ -28982,6 +28994,7 @@
|
|
|
28982
28994
|
}
|
|
28983
28995
|
|
|
28984
28996
|
typeof afterFn === 'function' && vue.nextTick(() => { afterFn(proxy); });
|
|
28997
|
+
typeof afterUpdateFn === 'function' && vue.nextTick(() => { afterUpdateFn(proxy); });
|
|
28985
28998
|
});
|
|
28986
28999
|
}
|
|
28987
29000
|
},
|
|
@@ -29336,7 +29349,7 @@
|
|
|
29336
29349
|
vue.h('div', {
|
|
29337
29350
|
ref: targetRef,
|
|
29338
29351
|
key: 'd_t',
|
|
29339
|
-
class: '
|
|
29352
|
+
class: 'q-select__focus-target',
|
|
29340
29353
|
id: state.targetUid.value,
|
|
29341
29354
|
...comboboxAttrs.value,
|
|
29342
29355
|
onKeydown: onTargetKeydown,
|
|
@@ -29348,7 +29361,7 @@
|
|
|
29348
29361
|
if (typeof props.autocomplete === 'string' && props.autocomplete.length > 0) {
|
|
29349
29362
|
child.push(
|
|
29350
29363
|
vue.h('input', {
|
|
29351
|
-
class: 'q-select__autocomplete-input
|
|
29364
|
+
class: 'q-select__autocomplete-input',
|
|
29352
29365
|
autocomplete: props.autocomplete,
|
|
29353
29366
|
onKeyup: onTargetAutocomplete
|
|
29354
29367
|
})
|
|
@@ -35323,6 +35336,8 @@
|
|
|
35323
35336
|
expanded: Array, // v-model:expanded
|
|
35324
35337
|
selected: {}, // v-model:selected
|
|
35325
35338
|
|
|
35339
|
+
noSelectionUnset: Boolean,
|
|
35340
|
+
|
|
35326
35341
|
defaultExpandAll: Boolean,
|
|
35327
35342
|
accordion: Boolean,
|
|
35328
35343
|
|
|
@@ -35880,7 +35895,10 @@
|
|
|
35880
35895
|
|
|
35881
35896
|
if (hasSelection.value) {
|
|
35882
35897
|
if (meta.selectable) {
|
|
35883
|
-
|
|
35898
|
+
const val = meta.key !== props.selected ? meta.key : null;
|
|
35899
|
+
if (props.noSelectionUnset !== true || val !== null) {
|
|
35900
|
+
emit('update:selected', val);
|
|
35901
|
+
}
|
|
35884
35902
|
}
|
|
35885
35903
|
}
|
|
35886
35904
|
else {
|
|
@@ -38093,8 +38111,8 @@
|
|
|
38093
38111
|
color: vmColor.value,
|
|
38094
38112
|
label: okLabel.value,
|
|
38095
38113
|
ripple: false,
|
|
38096
|
-
...(Object(props.ok) === props.ok ? props.ok : { flat: true }),
|
|
38097
38114
|
disable: okDisabled.value,
|
|
38115
|
+
...(Object(props.ok) === props.ok ? props.ok : { flat: true }),
|
|
38098
38116
|
'data-autofocus': (props.focus === 'ok' && hasForm.value !== true) || void 0,
|
|
38099
38117
|
onClick: onOk
|
|
38100
38118
|
}));
|
|
@@ -39263,7 +39281,7 @@
|
|
|
39263
39281
|
});
|
|
39264
39282
|
|
|
39265
39283
|
var index_umd = {
|
|
39266
|
-
version: '2.4.
|
|
39284
|
+
version: '2.4.10',
|
|
39267
39285
|
install (app, opts) {
|
|
39268
39286
|
installQuasar(app, {
|
|
39269
39287
|
components,
|