quasar 2.4.7 → 2.4.11
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/LoadingBar.json +7 -0
- package/dist/api/Platform.json +171 -0
- package/dist/api/QAjaxBar.json +13 -1
- 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 +176 -81
- 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/validation.d.ts +1 -1
- package/dist/types/api.d.ts +6 -0
- package/dist/types/index.d.ts +422 -314
- 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/ajax-bar/QAjaxBar.js +22 -12
- package/src/components/ajax-bar/QAjaxBar.json +16 -1
- package/src/components/date/QDate.js +6 -1
- package/src/components/dialog-plugin/DialogPlugin.js +1 -1
- package/src/components/form/QForm.js +11 -1
- package/src/components/icon/QIcon.js +4 -9
- package/src/components/icon/QIcon.sass +4 -3
- package/src/components/infinite-scroll/QInfiniteScroll.js +3 -2
- package/src/components/scroll-area/QScrollArea.js +36 -11
- 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/tabs/QTabs.js +10 -2
- package/src/components/tree/QTree.js +8 -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/components/virtual-scroll/use-virtual-scroll.js +11 -3
- package/src/composables/private/use-field.js +13 -1
- package/src/composables/private/use-file.json +1 -0
- package/src/plugins/LoadingBar.js +3 -3
- package/src/plugins/LoadingBar.json +8 -0
- package/src/plugins/Platform.js +15 -8
- package/src/plugins/Platform.json +166 -0
package/dist/quasar.sass
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Quasar Framework v2.4.
|
|
2
|
+
* Quasar Framework v2.4.11
|
|
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.11
|
|
3
3
|
* (c) 2015-present Razvan Stoenescu
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -40,19 +40,15 @@
|
|
|
40
40
|
let iosCorrection;
|
|
41
41
|
|
|
42
42
|
function getMatch (userAgent, platformMatch) {
|
|
43
|
-
const match = /(edge|edga|edgios)\/([\w.]+)/.exec(userAgent)
|
|
43
|
+
const match = /(edg|edge|edga|edgios)\/([\w.]+)/.exec(userAgent)
|
|
44
44
|
|| /(opr)[\/]([\w.]+)/.exec(userAgent)
|
|
45
45
|
|| /(vivaldi)[\/]([\w.]+)/.exec(userAgent)
|
|
46
46
|
|| /(chrome|crios)[\/]([\w.]+)/.exec(userAgent)
|
|
47
|
-
|| /(iemobile)[\/]([\w.]+)/.exec(userAgent)
|
|
48
47
|
|| /(version)(applewebkit)[\/]([\w.]+).*(safari)[\/]([\w.]+)/.exec(userAgent)
|
|
49
48
|
|| /(webkit)[\/]([\w.]+).*(version)[\/]([\w.]+).*(safari)[\/]([\w.]+)/.exec(userAgent)
|
|
50
49
|
|| /(firefox|fxios)[\/]([\w.]+)/.exec(userAgent)
|
|
51
50
|
|| /(webkit)[\/]([\w.]+)/.exec(userAgent)
|
|
52
51
|
|| /(opera)(?:.*version|)[\/]([\w.]+)/.exec(userAgent)
|
|
53
|
-
|| /(msie) ([\w.]+)/.exec(userAgent)
|
|
54
|
-
|| (userAgent.indexOf('trident') >= 0 && /(rv)(?::| )([\w.]+)/.exec(userAgent))
|
|
55
|
-
|| (userAgent.indexOf('compatible') < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(userAgent))
|
|
56
52
|
|| [];
|
|
57
53
|
|
|
58
54
|
return {
|
|
@@ -75,6 +71,8 @@
|
|
|
75
71
|
|| /(mac)/.exec(userAgent)
|
|
76
72
|
|| /(linux)/.exec(userAgent)
|
|
77
73
|
|| /(cros)/.exec(userAgent)
|
|
74
|
+
// TODO: Remove BlackBerry detection. BlackBerry OS, BlackBerry 10, and BlackBerry PlayBook OS
|
|
75
|
+
// is officially dead as of January 4, 2022 (https://www.blackberry.com/us/en/support/devices/end-of-life)
|
|
78
76
|
|| /(playbook)/.exec(userAgent)
|
|
79
77
|
|| /(bb)/.exec(userAgent)
|
|
80
78
|
|| /(blackberry)/.exec(userAgent)
|
|
@@ -164,6 +162,10 @@
|
|
|
164
162
|
delete browser[ 'windows phone' ];
|
|
165
163
|
}
|
|
166
164
|
|
|
165
|
+
// TODO: The assumption about WebKit based browsers below is not completely accurate.
|
|
166
|
+
// Google released Blink(a fork of WebKit) engine on April 3, 2013, which is really different than WebKit today.
|
|
167
|
+
// Today, one might want to check for WebKit to deal with its bugs, which is used on all browsers on iOS, and Safari browser on all platforms.
|
|
168
|
+
|
|
167
169
|
// Chrome, Opera 15+, Vivaldi and Safari are webkit based browsers
|
|
168
170
|
if (
|
|
169
171
|
browser.chrome
|
|
@@ -180,8 +182,15 @@
|
|
|
180
182
|
browser.webkit = true;
|
|
181
183
|
}
|
|
182
184
|
|
|
185
|
+
// TODO: (Qv3) rename the terms 'edge' to 'edge legacy'(or remove it) then 'edge chromium' to 'edge' to match with the known up-to-date terms
|
|
186
|
+
// Microsoft Edge is the new Chromium-based browser. Microsoft Edge Legacy is the old EdgeHTML-based browser (EOL: March 9, 2021).
|
|
187
|
+
if (browser.edg) {
|
|
188
|
+
matched.browser = 'edgechromium';
|
|
189
|
+
browser.edgeChromium = true;
|
|
190
|
+
}
|
|
191
|
+
|
|
183
192
|
// Blackberry browsers are marked as Safari on BlackBerry
|
|
184
|
-
if (browser.safari && browser.blackberry || browser.bb) {
|
|
193
|
+
if ((browser.safari && browser.blackberry) || browser.bb) {
|
|
185
194
|
matched.browser = 'blackberry';
|
|
186
195
|
browser.blackberry = true;
|
|
187
196
|
}
|
|
@@ -1447,7 +1456,7 @@
|
|
|
1447
1456
|
}
|
|
1448
1457
|
|
|
1449
1458
|
var installQuasar = function (parentApp, opts = {}) {
|
|
1450
|
-
const $q = { version: '2.4.
|
|
1459
|
+
const $q = { version: '2.4.11' };
|
|
1451
1460
|
|
|
1452
1461
|
if (globalConfigIsFrozen === false) {
|
|
1453
1462
|
if (opts.config !== void 0) {
|
|
@@ -1646,7 +1655,7 @@
|
|
|
1646
1655
|
const onScreen = vue.ref(false);
|
|
1647
1656
|
const animate = vue.ref(true);
|
|
1648
1657
|
|
|
1649
|
-
let
|
|
1658
|
+
let sessions = 0, timer, speed;
|
|
1650
1659
|
|
|
1651
1660
|
const classes = vue.computed(() =>
|
|
1652
1661
|
`q-loading-bar q-loading-bar--${ props.position }`
|
|
@@ -1692,16 +1701,17 @@
|
|
|
1692
1701
|
const oldSpeed = speed;
|
|
1693
1702
|
speed = Math.max(0, newSpeed) || 0;
|
|
1694
1703
|
|
|
1695
|
-
|
|
1704
|
+
sessions++;
|
|
1696
1705
|
|
|
1697
|
-
if (
|
|
1706
|
+
if (sessions > 1) {
|
|
1698
1707
|
if (oldSpeed === 0 && newSpeed > 0) {
|
|
1699
1708
|
planNextStep();
|
|
1700
1709
|
}
|
|
1701
1710
|
else if (oldSpeed > 0 && newSpeed <= 0) {
|
|
1702
1711
|
clearTimeout(timer);
|
|
1703
1712
|
}
|
|
1704
|
-
|
|
1713
|
+
|
|
1714
|
+
return sessions
|
|
1705
1715
|
}
|
|
1706
1716
|
|
|
1707
1717
|
clearTimeout(timer);
|
|
@@ -1709,25 +1719,32 @@
|
|
|
1709
1719
|
|
|
1710
1720
|
progress.value = 0;
|
|
1711
1721
|
|
|
1712
|
-
if (onScreen.value === true) { return }
|
|
1713
|
-
|
|
1714
|
-
onScreen.value = true;
|
|
1715
|
-
animate.value = false;
|
|
1716
1722
|
timer = setTimeout(() => {
|
|
1717
1723
|
animate.value = true;
|
|
1718
1724
|
newSpeed > 0 && planNextStep();
|
|
1719
|
-
},
|
|
1725
|
+
}, onScreen.value === true ? 500 : 1);
|
|
1726
|
+
|
|
1727
|
+
if (onScreen.value !== true) {
|
|
1728
|
+
onScreen.value = true;
|
|
1729
|
+
animate.value = false;
|
|
1730
|
+
}
|
|
1731
|
+
|
|
1732
|
+
return sessions
|
|
1720
1733
|
}
|
|
1721
1734
|
|
|
1722
1735
|
function increment (amount) {
|
|
1723
|
-
if (
|
|
1736
|
+
if (sessions > 0) {
|
|
1724
1737
|
progress.value = inc(progress.value, amount);
|
|
1725
1738
|
}
|
|
1739
|
+
|
|
1740
|
+
return sessions
|
|
1726
1741
|
}
|
|
1727
1742
|
|
|
1728
1743
|
function stop () {
|
|
1729
|
-
|
|
1730
|
-
if (
|
|
1744
|
+
sessions = Math.max(0, sessions - 1);
|
|
1745
|
+
if (sessions > 0) {
|
|
1746
|
+
return sessions
|
|
1747
|
+
}
|
|
1731
1748
|
|
|
1732
1749
|
clearTimeout(timer);
|
|
1733
1750
|
emit('stop');
|
|
@@ -1746,6 +1763,8 @@
|
|
|
1746
1763
|
else {
|
|
1747
1764
|
end();
|
|
1748
1765
|
}
|
|
1766
|
+
|
|
1767
|
+
return sessions
|
|
1749
1768
|
}
|
|
1750
1769
|
|
|
1751
1770
|
function planNextStep () {
|
|
@@ -2032,27 +2051,22 @@
|
|
|
2032
2051
|
}
|
|
2033
2052
|
|
|
2034
2053
|
if (type.value.img === true) {
|
|
2035
|
-
return vue.h('
|
|
2036
|
-
vue.h('img', {
|
|
2037
|
-
class: type.value.cls,
|
|
2038
|
-
src: type.value.src
|
|
2039
|
-
})
|
|
2054
|
+
return vue.h('span', data, hMergeSlot(slots.default, [
|
|
2055
|
+
vue.h('img', { src: type.value.src })
|
|
2040
2056
|
]))
|
|
2041
2057
|
}
|
|
2042
2058
|
|
|
2043
2059
|
if (type.value.svg === true) {
|
|
2044
|
-
return vue.h('
|
|
2060
|
+
return vue.h('span', data, hMergeSlot(slots.default, [
|
|
2045
2061
|
vue.h('svg', {
|
|
2046
|
-
class: type.value.cls,
|
|
2047
2062
|
viewBox: type.value.viewBox
|
|
2048
2063
|
}, type.value.nodes)
|
|
2049
2064
|
]))
|
|
2050
2065
|
}
|
|
2051
2066
|
|
|
2052
2067
|
if (type.value.svguse === true) {
|
|
2053
|
-
return vue.h('
|
|
2068
|
+
return vue.h('span', data, hMergeSlot(slots.default, [
|
|
2054
2069
|
vue.h('svg', {
|
|
2055
|
-
class: type.value.cls,
|
|
2056
2070
|
viewBox: type.value.viewBox
|
|
2057
2071
|
}, [
|
|
2058
2072
|
vue.h('use', { 'xlink:href': type.value.src })
|
|
@@ -9695,7 +9709,15 @@
|
|
|
9695
9709
|
unwatchRoute !== void 0 && unwatchRoute();
|
|
9696
9710
|
});
|
|
9697
9711
|
|
|
9698
|
-
|
|
9712
|
+
let shouldActivate = false;
|
|
9713
|
+
|
|
9714
|
+
vue.onDeactivated(() => {
|
|
9715
|
+
shouldActivate = true;
|
|
9716
|
+
});
|
|
9717
|
+
|
|
9718
|
+
vue.onActivated(() => {
|
|
9719
|
+
shouldActivate === true && recalculateScroll();
|
|
9720
|
+
});
|
|
9699
9721
|
|
|
9700
9722
|
return () => {
|
|
9701
9723
|
const child = [
|
|
@@ -12608,7 +12630,12 @@
|
|
|
12608
12630
|
normalizedModel.value
|
|
12609
12631
|
.filter(date => typeof date === 'string')
|
|
12610
12632
|
.map(date => decodeString(date, innerMask.value, innerLocale.value))
|
|
12611
|
-
.filter(date =>
|
|
12633
|
+
.filter(date =>
|
|
12634
|
+
date.dateHash !== null
|
|
12635
|
+
&& date.day !== null
|
|
12636
|
+
&& date.month !== null
|
|
12637
|
+
&& date.year !== null
|
|
12638
|
+
)
|
|
12612
12639
|
);
|
|
12613
12640
|
|
|
12614
12641
|
const rangeModel = vue.computed(() => {
|
|
@@ -18906,6 +18933,8 @@
|
|
|
18906
18933
|
abort: state.abort
|
|
18907
18934
|
};
|
|
18908
18935
|
|
|
18936
|
+
// TODO: the result of this computed, especially the dynamic part, isn't currently typed
|
|
18937
|
+
// This result in an error with Volar when accessing the state (eg. files array)
|
|
18909
18938
|
const slotScope = vue.computed(() => {
|
|
18910
18939
|
const acc = {
|
|
18911
18940
|
canAddFiles: canAddFiles.value,
|
|
@@ -20759,6 +20788,8 @@
|
|
|
20759
20788
|
name: props.clearIcon || $q.iconSet.field.clear,
|
|
20760
20789
|
tabindex: 0,
|
|
20761
20790
|
type: 'button',
|
|
20791
|
+
'aria-hidden': null,
|
|
20792
|
+
role: null,
|
|
20762
20793
|
onClick: clearValue
|
|
20763
20794
|
})
|
|
20764
20795
|
])
|
|
@@ -20887,6 +20918,16 @@
|
|
|
20887
20918
|
// expose public methods
|
|
20888
20919
|
Object.assign(proxy, { focus, blur });
|
|
20889
20920
|
|
|
20921
|
+
let shouldActivate = false;
|
|
20922
|
+
|
|
20923
|
+
vue.onDeactivated(() => {
|
|
20924
|
+
shouldActivate = true;
|
|
20925
|
+
});
|
|
20926
|
+
|
|
20927
|
+
vue.onActivated(() => {
|
|
20928
|
+
shouldActivate === true && props.autofocus === true && proxy.focus();
|
|
20929
|
+
});
|
|
20930
|
+
|
|
20890
20931
|
vue.onMounted(() => {
|
|
20891
20932
|
if (isRuntimeSsrPreHydration.value === true && props.for === void 0) {
|
|
20892
20933
|
state.targetUid.value = getTargetUid();
|
|
@@ -21613,6 +21654,16 @@
|
|
|
21613
21654
|
}
|
|
21614
21655
|
});
|
|
21615
21656
|
|
|
21657
|
+
let shouldActivate = false;
|
|
21658
|
+
|
|
21659
|
+
vue.onDeactivated(() => {
|
|
21660
|
+
shouldActivate = true;
|
|
21661
|
+
});
|
|
21662
|
+
|
|
21663
|
+
vue.onActivated(() => {
|
|
21664
|
+
shouldActivate === true && props.autofocus === true && focus();
|
|
21665
|
+
});
|
|
21666
|
+
|
|
21616
21667
|
vue.onMounted(() => {
|
|
21617
21668
|
props.autofocus === true && focus();
|
|
21618
21669
|
});
|
|
@@ -22170,7 +22221,6 @@
|
|
|
22170
22221
|
const rootRef = vue.ref(null);
|
|
22171
22222
|
|
|
22172
22223
|
let index = props.initialIndex || 0;
|
|
22173
|
-
let scrollPos = false;
|
|
22174
22224
|
let localScrollTarget, poll;
|
|
22175
22225
|
|
|
22176
22226
|
const classes = vue.computed(() =>
|
|
@@ -22309,8 +22359,10 @@
|
|
|
22309
22359
|
vue.watch(() => props.scrollTarget, updateScrollTarget);
|
|
22310
22360
|
vue.watch(() => props.debounce, setDebounce);
|
|
22311
22361
|
|
|
22362
|
+
let scrollPos = false;
|
|
22363
|
+
|
|
22312
22364
|
vue.onActivated(() => {
|
|
22313
|
-
if (
|
|
22365
|
+
if (scrollPos !== false && localScrollTarget) {
|
|
22314
22366
|
setVerticalScrollPosition(localScrollTarget, scrollPos);
|
|
22315
22367
|
}
|
|
22316
22368
|
});
|
|
@@ -23911,7 +23963,7 @@
|
|
|
23911
23963
|
}
|
|
23912
23964
|
};
|
|
23913
23965
|
|
|
23914
|
-
let
|
|
23966
|
+
let clearTimer = null, localScrollTarget, parentEl;
|
|
23915
23967
|
|
|
23916
23968
|
vue.watch(() => props.scrollTarget, () => {
|
|
23917
23969
|
unconfigureScrollTarget();
|
|
@@ -23919,9 +23971,7 @@
|
|
|
23919
23971
|
});
|
|
23920
23972
|
|
|
23921
23973
|
function emitEvent () {
|
|
23922
|
-
|
|
23923
|
-
cancelAnimationFrame(timer);
|
|
23924
|
-
timer = null;
|
|
23974
|
+
clearTimer !== null && clearTimer();
|
|
23925
23975
|
|
|
23926
23976
|
const top = Math.max(0, getVerticalScrollPosition(localScrollTarget));
|
|
23927
23977
|
const left = getHorizontalScrollPosition(localScrollTarget);
|
|
@@ -23971,10 +24021,15 @@
|
|
|
23971
24021
|
if (immediately === true || props.debounce === 0 || props.debounce === '0') {
|
|
23972
24022
|
emitEvent();
|
|
23973
24023
|
}
|
|
23974
|
-
else if (
|
|
23975
|
-
timer = props.debounce
|
|
23976
|
-
? setTimeout(emitEvent, props.debounce)
|
|
23977
|
-
: requestAnimationFrame(emitEvent);
|
|
24024
|
+
else if (clearTimer === null) {
|
|
24025
|
+
const [ timer, fn ] = props.debounce
|
|
24026
|
+
? [ setTimeout(emitEvent, props.debounce), clearTimeout ]
|
|
24027
|
+
: [ requestAnimationFrame(emitEvent), cancelAnimationFrame ];
|
|
24028
|
+
|
|
24029
|
+
clearTimer = () => {
|
|
24030
|
+
fn(timer);
|
|
24031
|
+
clearTimer = null;
|
|
24032
|
+
};
|
|
23978
24033
|
}
|
|
23979
24034
|
}
|
|
23980
24035
|
|
|
@@ -23986,8 +24041,7 @@
|
|
|
23986
24041
|
});
|
|
23987
24042
|
|
|
23988
24043
|
vue.onBeforeUnmount(() => {
|
|
23989
|
-
|
|
23990
|
-
cancelAnimationFrame(timer);
|
|
24044
|
+
clearTimer !== null && clearTimer();
|
|
23991
24045
|
unconfigureScrollTarget();
|
|
23992
24046
|
});
|
|
23993
24047
|
|
|
@@ -26832,6 +26886,9 @@
|
|
|
26832
26886
|
&& panning.value === false
|
|
26833
26887
|
) || scroll.vertical.size.value <= container.vertical.value + 1
|
|
26834
26888
|
);
|
|
26889
|
+
scroll.vertical.thumbStart = vue.computed(() =>
|
|
26890
|
+
scroll.vertical.percentage.value * (container.vertical.value - scroll.vertical.thumbSize.value)
|
|
26891
|
+
);
|
|
26835
26892
|
scroll.vertical.thumbSize = vue.computed(() =>
|
|
26836
26893
|
Math.round(
|
|
26837
26894
|
between(
|
|
@@ -26842,13 +26899,11 @@
|
|
|
26842
26899
|
)
|
|
26843
26900
|
);
|
|
26844
26901
|
scroll.vertical.style = vue.computed(() => {
|
|
26845
|
-
const thumbSize = scroll.vertical.thumbSize.value;
|
|
26846
|
-
const pos = scroll.vertical.percentage.value * (container.vertical.value - thumbSize);
|
|
26847
26902
|
return {
|
|
26848
26903
|
...props.thumbStyle,
|
|
26849
26904
|
...props.verticalThumbStyle,
|
|
26850
|
-
top: `${
|
|
26851
|
-
height: `${ thumbSize }px`
|
|
26905
|
+
top: `${ scroll.vertical.thumbStart.value }px`,
|
|
26906
|
+
height: `${ scroll.vertical.thumbSize.value }px`
|
|
26852
26907
|
}
|
|
26853
26908
|
});
|
|
26854
26909
|
scroll.vertical.thumbClass = vue.computed(() =>
|
|
@@ -26873,6 +26928,9 @@
|
|
|
26873
26928
|
&& panning.value === false
|
|
26874
26929
|
) || scroll.horizontal.size.value <= container.horizontal.value + 1
|
|
26875
26930
|
);
|
|
26931
|
+
scroll.horizontal.thumbStart = vue.computed(() =>
|
|
26932
|
+
scroll.horizontal.percentage.value * (container.horizontal.value - scroll.horizontal.thumbSize.value)
|
|
26933
|
+
);
|
|
26876
26934
|
scroll.horizontal.thumbSize = vue.computed(() =>
|
|
26877
26935
|
Math.round(
|
|
26878
26936
|
between(
|
|
@@ -26883,13 +26941,11 @@
|
|
|
26883
26941
|
)
|
|
26884
26942
|
);
|
|
26885
26943
|
scroll.horizontal.style = vue.computed(() => {
|
|
26886
|
-
const thumbSize = scroll.horizontal.thumbSize.value;
|
|
26887
|
-
const pos = scroll.horizontal.percentage.value * (container.horizontal.value - thumbSize);
|
|
26888
26944
|
return {
|
|
26889
26945
|
...props.thumbStyle,
|
|
26890
26946
|
...props.horizontalThumbStyle,
|
|
26891
|
-
left: `${
|
|
26892
|
-
width: `${ thumbSize }px`
|
|
26947
|
+
left: `${ scroll.horizontal.thumbStart.value }px`,
|
|
26948
|
+
width: `${ scroll.horizontal.thumbSize.value }px`
|
|
26893
26949
|
}
|
|
26894
26950
|
});
|
|
26895
26951
|
scroll.horizontal.thumbClass = vue.computed(() =>
|
|
@@ -27035,8 +27091,11 @@
|
|
|
27035
27091
|
const data = scroll[ axis ];
|
|
27036
27092
|
|
|
27037
27093
|
if (data.thumbHidden.value !== true) {
|
|
27038
|
-
const
|
|
27039
|
-
|
|
27094
|
+
const offset = evt[ dirProps[ axis ].offset ];
|
|
27095
|
+
if (offset < data.thumbStart.value || offset > data.thumbStart.value + data.thumbSize.value) {
|
|
27096
|
+
const pos = offset - data.thumbSize.value / 2;
|
|
27097
|
+
setScroll(pos / container[ axis ].value * data.size.value, axis);
|
|
27098
|
+
}
|
|
27040
27099
|
|
|
27041
27100
|
// activate thumb pan
|
|
27042
27101
|
if (data.ref.value !== null) {
|
|
@@ -27099,6 +27158,26 @@
|
|
|
27099
27158
|
}
|
|
27100
27159
|
});
|
|
27101
27160
|
|
|
27161
|
+
let scrollPosition = null;
|
|
27162
|
+
|
|
27163
|
+
vue.onDeactivated(() => {
|
|
27164
|
+
scrollPosition = {
|
|
27165
|
+
top: scroll.vertical.position.value,
|
|
27166
|
+
left: scroll.horizontal.position.value
|
|
27167
|
+
};
|
|
27168
|
+
});
|
|
27169
|
+
|
|
27170
|
+
vue.onActivated(() => {
|
|
27171
|
+
if (scrollPosition === null) { return }
|
|
27172
|
+
|
|
27173
|
+
const scrollTarget = targetRef.value;
|
|
27174
|
+
|
|
27175
|
+
if (scrollTarget !== null) {
|
|
27176
|
+
setHorizontalScrollPosition(scrollTarget, scrollPosition.left);
|
|
27177
|
+
setVerticalScrollPosition(scrollTarget, scrollPosition.top);
|
|
27178
|
+
}
|
|
27179
|
+
});
|
|
27180
|
+
|
|
27102
27181
|
vue.onBeforeUnmount(emitScroll.cancel);
|
|
27103
27182
|
|
|
27104
27183
|
return () => {
|
|
@@ -27763,9 +27842,9 @@
|
|
|
27763
27842
|
: Math.ceil(scrollViewSize / virtualScrollItemSizeComputed.value);
|
|
27764
27843
|
|
|
27765
27844
|
const baseSize = Math.max(
|
|
27766
|
-
|
|
27845
|
+
1,
|
|
27767
27846
|
view,
|
|
27768
|
-
Math.ceil(props.virtualScrollSliceSize / multiplier)
|
|
27847
|
+
Math.ceil((props.virtualScrollSliceSize > 0 ? props.virtualScrollSliceSize : 10) / multiplier)
|
|
27769
27848
|
);
|
|
27770
27849
|
|
|
27771
27850
|
virtualScrollSliceSizeComputed.value = {
|
|
@@ -27858,7 +27937,15 @@
|
|
|
27858
27937
|
setVirtualScrollSize();
|
|
27859
27938
|
});
|
|
27860
27939
|
|
|
27940
|
+
let shouldActivate = false;
|
|
27941
|
+
|
|
27942
|
+
vue.onDeactivated(() => {
|
|
27943
|
+
shouldActivate = true;
|
|
27944
|
+
});
|
|
27945
|
+
|
|
27861
27946
|
vue.onActivated(() => {
|
|
27947
|
+
if (shouldActivate !== true) { return }
|
|
27948
|
+
|
|
27862
27949
|
const scrollEl = getVirtualScrollTarget();
|
|
27863
27950
|
|
|
27864
27951
|
if (prevScrollStart !== void 0 && scrollEl !== void 0 && scrollEl !== null && scrollEl.nodeType !== 8) {
|
|
@@ -28519,34 +28606,34 @@
|
|
|
28519
28606
|
|
|
28520
28607
|
if (typeof value === 'string' && value.length > 0) {
|
|
28521
28608
|
const needle = value.toLocaleLowerCase();
|
|
28609
|
+
const findFn = extractFn => {
|
|
28610
|
+
const option = props.options.find(opt => extractFn.value(opt).toLocaleLowerCase() === needle);
|
|
28522
28611
|
|
|
28523
|
-
|
|
28524
|
-
|
|
28612
|
+
if (option === void 0) {
|
|
28613
|
+
return false
|
|
28614
|
+
}
|
|
28525
28615
|
|
|
28526
|
-
if (option !== void 0) {
|
|
28527
28616
|
if (innerValue.value.indexOf(option) === -1) {
|
|
28528
28617
|
toggleOption(option);
|
|
28529
28618
|
}
|
|
28530
28619
|
else {
|
|
28531
28620
|
hidePopup();
|
|
28532
28621
|
}
|
|
28533
|
-
}
|
|
28534
|
-
else {
|
|
28535
|
-
fn = opt => getOptionLabel.value(opt).toLocaleLowerCase() === needle;
|
|
28536
|
-
option = props.options.find(fn);
|
|
28537
28622
|
|
|
28538
|
-
|
|
28539
|
-
|
|
28540
|
-
|
|
28541
|
-
|
|
28542
|
-
|
|
28543
|
-
hidePopup();
|
|
28544
|
-
}
|
|
28623
|
+
return true
|
|
28624
|
+
};
|
|
28625
|
+
const fillFn = afterFilter => {
|
|
28626
|
+
if (findFn(getOptionValue) === true) {
|
|
28627
|
+
return
|
|
28545
28628
|
}
|
|
28546
|
-
|
|
28547
|
-
|
|
28629
|
+
if (findFn(getOptionLabel) === true || afterFilter === true) {
|
|
28630
|
+
return
|
|
28548
28631
|
}
|
|
28549
|
-
|
|
28632
|
+
|
|
28633
|
+
filter(value, true, () => fillFn(true));
|
|
28634
|
+
};
|
|
28635
|
+
|
|
28636
|
+
fillFn();
|
|
28550
28637
|
}
|
|
28551
28638
|
else {
|
|
28552
28639
|
state.clearValue(e);
|
|
@@ -28925,7 +29012,7 @@
|
|
|
28925
29012
|
}
|
|
28926
29013
|
}
|
|
28927
29014
|
|
|
28928
|
-
function filter (val, keepClosed) {
|
|
29015
|
+
function filter (val, keepClosed, afterUpdateFn) {
|
|
28929
29016
|
if (props.onFilter === void 0 || (keepClosed !== true && state.focused.value !== true)) {
|
|
28930
29017
|
return
|
|
28931
29018
|
}
|
|
@@ -28983,6 +29070,7 @@
|
|
|
28983
29070
|
}
|
|
28984
29071
|
|
|
28985
29072
|
typeof afterFn === 'function' && vue.nextTick(() => { afterFn(proxy); });
|
|
29073
|
+
typeof afterUpdateFn === 'function' && vue.nextTick(() => { afterUpdateFn(proxy); });
|
|
28986
29074
|
});
|
|
28987
29075
|
}
|
|
28988
29076
|
},
|
|
@@ -29337,7 +29425,7 @@
|
|
|
29337
29425
|
vue.h('div', {
|
|
29338
29426
|
ref: targetRef,
|
|
29339
29427
|
key: 'd_t',
|
|
29340
|
-
class: '
|
|
29428
|
+
class: 'q-select__focus-target',
|
|
29341
29429
|
id: state.targetUid.value,
|
|
29342
29430
|
...comboboxAttrs.value,
|
|
29343
29431
|
onKeydown: onTargetKeydown,
|
|
@@ -29349,7 +29437,7 @@
|
|
|
29349
29437
|
if (typeof props.autocomplete === 'string' && props.autocomplete.length > 0) {
|
|
29350
29438
|
child.push(
|
|
29351
29439
|
vue.h('input', {
|
|
29352
|
-
class: 'q-select__autocomplete-input
|
|
29440
|
+
class: 'q-select__autocomplete-input',
|
|
29353
29441
|
autocomplete: props.autocomplete,
|
|
29354
29442
|
onKeyup: onTargetAutocomplete
|
|
29355
29443
|
})
|
|
@@ -35324,6 +35412,8 @@
|
|
|
35324
35412
|
expanded: Array, // v-model:expanded
|
|
35325
35413
|
selected: {}, // v-model:selected
|
|
35326
35414
|
|
|
35415
|
+
noSelectionUnset: Boolean,
|
|
35416
|
+
|
|
35327
35417
|
defaultExpandAll: Boolean,
|
|
35328
35418
|
accordion: Boolean,
|
|
35329
35419
|
|
|
@@ -35881,7 +35971,12 @@
|
|
|
35881
35971
|
|
|
35882
35972
|
if (hasSelection.value) {
|
|
35883
35973
|
if (meta.selectable) {
|
|
35884
|
-
|
|
35974
|
+
if (props.noSelectionUnset === false) {
|
|
35975
|
+
emit('update:selected', meta.key !== props.selected ? meta.key : null);
|
|
35976
|
+
}
|
|
35977
|
+
else if (meta.key !== props.selected) {
|
|
35978
|
+
emit('update:selected', meta.key || null);
|
|
35979
|
+
}
|
|
35885
35980
|
}
|
|
35886
35981
|
}
|
|
35887
35982
|
else {
|
|
@@ -38094,8 +38189,8 @@
|
|
|
38094
38189
|
color: vmColor.value,
|
|
38095
38190
|
label: okLabel.value,
|
|
38096
38191
|
ripple: false,
|
|
38097
|
-
...(Object(props.ok) === props.ok ? props.ok : { flat: true }),
|
|
38098
38192
|
disable: okDisabled.value,
|
|
38193
|
+
...(Object(props.ok) === props.ok ? props.ok : { flat: true }),
|
|
38099
38194
|
'data-autofocus': (props.focus === 'ok' && hasForm.value !== true) || void 0,
|
|
38100
38195
|
onClick: onOk
|
|
38101
38196
|
}));
|
|
@@ -38322,11 +38417,11 @@
|
|
|
38322
38417
|
Object.assign(this, {
|
|
38323
38418
|
start (speed) {
|
|
38324
38419
|
barRef.value.start(speed);
|
|
38325
|
-
Plugin$3.isActive =
|
|
38420
|
+
Plugin$3.isActive = true;
|
|
38326
38421
|
},
|
|
38327
38422
|
stop () {
|
|
38328
|
-
barRef.value.stop();
|
|
38329
|
-
Plugin$3.isActive =
|
|
38423
|
+
const sessions = barRef.value.stop();
|
|
38424
|
+
Plugin$3.isActive = sessions > 0;
|
|
38330
38425
|
},
|
|
38331
38426
|
increment () {
|
|
38332
38427
|
barRef.value.increment.apply(null, arguments);
|
|
@@ -39264,7 +39359,7 @@
|
|
|
39264
39359
|
});
|
|
39265
39360
|
|
|
39266
39361
|
var index_umd = {
|
|
39267
|
-
version: '2.4.
|
|
39362
|
+
version: '2.4.11',
|
|
39268
39363
|
install (app, opts) {
|
|
39269
39364
|
installQuasar(app, {
|
|
39270
39365
|
components,
|