quasar 2.4.10 → 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/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 +1 -1
- 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.esm.prod.js +2 -2
- package/dist/quasar.sass +1 -1
- package/dist/quasar.umd.js +110 -32
- package/dist/quasar.umd.prod.js +2 -2
- package/dist/ssr-directives/Morph.js +1 -1
- package/dist/types/api/validation.d.ts +1 -1
- package/dist/types/index.d.ts +136 -4
- package/dist/web-types/web-types.json +1 -1
- 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/form/QForm.js +11 -1
- package/src/components/infinite-scroll/QInfiniteScroll.js +3 -2
- package/src/components/scroll-area/QScrollArea.js +21 -1
- package/src/components/tabs/QTabs.js +10 -2
- package/src/components/tree/QTree.js +5 -3
- package/src/components/virtual-scroll/use-virtual-scroll.js +11 -3
- package/src/composables/private/use-field.js +11 -1
- 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
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 () {
|
|
@@ -9690,7 +9709,15 @@
|
|
|
9690
9709
|
unwatchRoute !== void 0 && unwatchRoute();
|
|
9691
9710
|
});
|
|
9692
9711
|
|
|
9693
|
-
|
|
9712
|
+
let shouldActivate = false;
|
|
9713
|
+
|
|
9714
|
+
vue.onDeactivated(() => {
|
|
9715
|
+
shouldActivate = true;
|
|
9716
|
+
});
|
|
9717
|
+
|
|
9718
|
+
vue.onActivated(() => {
|
|
9719
|
+
shouldActivate === true && recalculateScroll();
|
|
9720
|
+
});
|
|
9694
9721
|
|
|
9695
9722
|
return () => {
|
|
9696
9723
|
const child = [
|
|
@@ -20891,6 +20918,16 @@
|
|
|
20891
20918
|
// expose public methods
|
|
20892
20919
|
Object.assign(proxy, { focus, blur });
|
|
20893
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
|
+
|
|
20894
20931
|
vue.onMounted(() => {
|
|
20895
20932
|
if (isRuntimeSsrPreHydration.value === true && props.for === void 0) {
|
|
20896
20933
|
state.targetUid.value = getTargetUid();
|
|
@@ -21617,6 +21654,16 @@
|
|
|
21617
21654
|
}
|
|
21618
21655
|
});
|
|
21619
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
|
+
|
|
21620
21667
|
vue.onMounted(() => {
|
|
21621
21668
|
props.autofocus === true && focus();
|
|
21622
21669
|
});
|
|
@@ -22174,7 +22221,6 @@
|
|
|
22174
22221
|
const rootRef = vue.ref(null);
|
|
22175
22222
|
|
|
22176
22223
|
let index = props.initialIndex || 0;
|
|
22177
|
-
let scrollPos = false;
|
|
22178
22224
|
let localScrollTarget, poll;
|
|
22179
22225
|
|
|
22180
22226
|
const classes = vue.computed(() =>
|
|
@@ -22313,8 +22359,10 @@
|
|
|
22313
22359
|
vue.watch(() => props.scrollTarget, updateScrollTarget);
|
|
22314
22360
|
vue.watch(() => props.debounce, setDebounce);
|
|
22315
22361
|
|
|
22362
|
+
let scrollPos = false;
|
|
22363
|
+
|
|
22316
22364
|
vue.onActivated(() => {
|
|
22317
|
-
if (
|
|
22365
|
+
if (scrollPos !== false && localScrollTarget) {
|
|
22318
22366
|
setVerticalScrollPosition(localScrollTarget, scrollPos);
|
|
22319
22367
|
}
|
|
22320
22368
|
});
|
|
@@ -27110,6 +27158,26 @@
|
|
|
27110
27158
|
}
|
|
27111
27159
|
});
|
|
27112
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
|
+
|
|
27113
27181
|
vue.onBeforeUnmount(emitScroll.cancel);
|
|
27114
27182
|
|
|
27115
27183
|
return () => {
|
|
@@ -27774,9 +27842,9 @@
|
|
|
27774
27842
|
: Math.ceil(scrollViewSize / virtualScrollItemSizeComputed.value);
|
|
27775
27843
|
|
|
27776
27844
|
const baseSize = Math.max(
|
|
27777
|
-
|
|
27845
|
+
1,
|
|
27778
27846
|
view,
|
|
27779
|
-
Math.ceil(props.virtualScrollSliceSize / multiplier)
|
|
27847
|
+
Math.ceil((props.virtualScrollSliceSize > 0 ? props.virtualScrollSliceSize : 10) / multiplier)
|
|
27780
27848
|
);
|
|
27781
27849
|
|
|
27782
27850
|
virtualScrollSliceSizeComputed.value = {
|
|
@@ -27869,7 +27937,15 @@
|
|
|
27869
27937
|
setVirtualScrollSize();
|
|
27870
27938
|
});
|
|
27871
27939
|
|
|
27940
|
+
let shouldActivate = false;
|
|
27941
|
+
|
|
27942
|
+
vue.onDeactivated(() => {
|
|
27943
|
+
shouldActivate = true;
|
|
27944
|
+
});
|
|
27945
|
+
|
|
27872
27946
|
vue.onActivated(() => {
|
|
27947
|
+
if (shouldActivate !== true) { return }
|
|
27948
|
+
|
|
27873
27949
|
const scrollEl = getVirtualScrollTarget();
|
|
27874
27950
|
|
|
27875
27951
|
if (prevScrollStart !== void 0 && scrollEl !== void 0 && scrollEl !== null && scrollEl.nodeType !== 8) {
|
|
@@ -35895,9 +35971,11 @@
|
|
|
35895
35971
|
|
|
35896
35972
|
if (hasSelection.value) {
|
|
35897
35973
|
if (meta.selectable) {
|
|
35898
|
-
|
|
35899
|
-
|
|
35900
|
-
|
|
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);
|
|
35901
35979
|
}
|
|
35902
35980
|
}
|
|
35903
35981
|
}
|
|
@@ -38339,11 +38417,11 @@
|
|
|
38339
38417
|
Object.assign(this, {
|
|
38340
38418
|
start (speed) {
|
|
38341
38419
|
barRef.value.start(speed);
|
|
38342
|
-
Plugin$3.isActive =
|
|
38420
|
+
Plugin$3.isActive = true;
|
|
38343
38421
|
},
|
|
38344
38422
|
stop () {
|
|
38345
|
-
barRef.value.stop();
|
|
38346
|
-
Plugin$3.isActive =
|
|
38423
|
+
const sessions = barRef.value.stop();
|
|
38424
|
+
Plugin$3.isActive = sessions > 0;
|
|
38347
38425
|
},
|
|
38348
38426
|
increment () {
|
|
38349
38427
|
barRef.value.increment.apply(null, arguments);
|
|
@@ -39281,7 +39359,7 @@
|
|
|
39281
39359
|
});
|
|
39282
39360
|
|
|
39283
39361
|
var index_umd = {
|
|
39284
|
-
version: '2.4.
|
|
39362
|
+
version: '2.4.11',
|
|
39285
39363
|
install (app, opts) {
|
|
39286
39364
|
installQuasar(app, {
|
|
39287
39365
|
components,
|