quasar 2.11.2 → 2.11.4
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/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/fontawesome-v6-pro.umd.prod.js +1 -1
- package/dist/icon-set/fontawesome-v6.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/material-symbols-outlined.umd.prod.js +1 -1
- package/dist/icon-set/material-symbols-rounded.umd.prod.js +1 -1
- package/dist/icon-set/material-symbols-sharp.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/mdi-v7.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-fontawesome-v6.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-material-symbols-outlined.umd.prod.js +1 -1
- package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +1 -1
- package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +1 -1
- package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
- package/dist/icon-set/svg-mdi-v7.umd.prod.js +2 -2
- 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-TN.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/eu.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/kk.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/mm.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/sm.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/uz-Cyrl.umd.prod.js +1 -1
- package/dist/lang/uz-Latn.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 +4 -0
- package/dist/quasar.esm.js +386 -179
- package/dist/quasar.esm.prod.js +2 -2
- package/dist/quasar.prod.css +1 -1
- package/dist/quasar.rtl.css +4 -0
- package/dist/quasar.rtl.prod.css +1 -1
- package/dist/quasar.sass +3 -1
- package/dist/quasar.umd.js +386 -179
- package/dist/quasar.umd.prod.js +2 -2
- package/dist/web-types/web-types.json +1 -1
- package/package.json +8 -8
- package/src/components/ajax-bar/QAjaxBar.js +13 -5
- package/src/components/btn/QBtn.js +3 -2
- package/src/components/carousel/QCarousel.js +17 -10
- package/src/components/checkbox/use-checkbox.js +2 -0
- package/src/components/dialog/QDialog.js +8 -4
- package/src/components/drawer/QDrawer.js +8 -3
- package/src/components/img/QImg.js +25 -11
- package/src/components/input/QInput.js +14 -4
- package/src/components/layout/QLayout.js +5 -5
- package/src/components/menu/QMenu.js +1 -1
- package/src/components/pull-to-refresh/QPullToRefresh.js +5 -4
- package/src/components/radio/QRadio.js +2 -0
- package/src/components/resize-observer/QResizeObserver.js +9 -4
- package/src/components/scroll-area/QScrollArea.js +8 -8
- package/src/components/select/QSelect.js +19 -8
- package/src/components/slide-item/QSlideItem.js +4 -2
- package/src/components/slide-transition/QSlideTransition.js +17 -3
- package/src/components/tabs/QTabs.js +12 -5
- package/src/components/tooltip/QTooltip.js +1 -1
- package/src/composables/private/use-anchor.js +8 -3
- package/src/composables/private/use-field.js +10 -4
- package/src/composables/private/use-portal.js +3 -3
- package/src/composables/private/use-timeout.js +6 -3
- package/src/css/core/visibility.sass +2 -0
- package/src/directives/TouchHold.js +9 -4
- package/src/directives/TouchRepeat.js +10 -3
- package/src/lang.js +17 -11
- package/src/plugins/Loading.js +5 -5
- package/src/plugins/Meta.js +4 -2
- package/src/plugins/Notify.js +13 -3
- package/src/utils/debounce.js +9 -6
- package/src/utils/morph.js +7 -6
- package/src/utils/prevent-scroll.js +5 -6
- package/src/utils/private/click-outside.js +10 -3
- package/src/utils/private/global-dialog.js +1 -1
- package/src/utils/private/global-nodes.js +44 -13
- package/src/utils/private/position-engine.js +67 -25
package/dist/quasar.umd.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Quasar Framework v2.11.
|
|
2
|
+
* Quasar Framework v2.11.4
|
|
3
3
|
* (c) 2015-present Razvan Stoenescu
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -557,27 +557,30 @@
|
|
|
557
557
|
};
|
|
558
558
|
|
|
559
559
|
function debounce (fn, wait = 250, immediate) {
|
|
560
|
-
let
|
|
560
|
+
let timer = null;
|
|
561
561
|
|
|
562
562
|
function debounced (/* ...args */) {
|
|
563
563
|
const args = arguments;
|
|
564
564
|
|
|
565
565
|
const later = () => {
|
|
566
|
-
|
|
566
|
+
timer = null;
|
|
567
567
|
if (immediate !== true) {
|
|
568
568
|
fn.apply(this, args);
|
|
569
569
|
}
|
|
570
570
|
};
|
|
571
571
|
|
|
572
|
-
|
|
573
|
-
|
|
572
|
+
if (timer !== null) {
|
|
573
|
+
clearTimeout(timer);
|
|
574
|
+
}
|
|
575
|
+
else if (immediate === true) {
|
|
574
576
|
fn.apply(this, args);
|
|
575
577
|
}
|
|
576
|
-
|
|
578
|
+
|
|
579
|
+
timer = setTimeout(later, wait);
|
|
577
580
|
}
|
|
578
581
|
|
|
579
582
|
debounced.cancel = () => {
|
|
580
|
-
clearTimeout(
|
|
583
|
+
timer !== null && clearTimeout(timer);
|
|
581
584
|
};
|
|
582
585
|
|
|
583
586
|
return debounced
|
|
@@ -1071,12 +1074,14 @@
|
|
|
1071
1074
|
};
|
|
1072
1075
|
|
|
1073
1076
|
{
|
|
1074
|
-
const el = document.documentElement;
|
|
1075
|
-
el.setAttribute('dir', lang.rtl === true ? 'rtl' : 'ltr');
|
|
1076
|
-
el.setAttribute('lang', lang.isoName);
|
|
1077
|
-
|
|
1078
1077
|
lang.set = Plugin$8.set;
|
|
1079
1078
|
|
|
1079
|
+
if (Plugin$8.__langConfig === void 0 || Plugin$8.__langConfig.noHtmlAttrs !== true) {
|
|
1080
|
+
const el = document.documentElement;
|
|
1081
|
+
el.setAttribute('dir', lang.rtl === true ? 'rtl' : 'ltr');
|
|
1082
|
+
el.setAttribute('lang', lang.isoName);
|
|
1083
|
+
}
|
|
1084
|
+
|
|
1080
1085
|
Object.assign(Plugin$8.__langPack, lang);
|
|
1081
1086
|
|
|
1082
1087
|
Plugin$8.props = lang;
|
|
@@ -1088,6 +1093,7 @@
|
|
|
1088
1093
|
install ({ $q, lang, ssrContext }) {
|
|
1089
1094
|
{
|
|
1090
1095
|
$q.lang = Plugin$8.__langPack;
|
|
1096
|
+
Plugin$8.__langConfig = $q.config.lang;
|
|
1091
1097
|
|
|
1092
1098
|
if (this.__installed === true) {
|
|
1093
1099
|
lang !== void 0 && this.set(lang);
|
|
@@ -1642,7 +1648,7 @@
|
|
|
1642
1648
|
}
|
|
1643
1649
|
|
|
1644
1650
|
var installQuasar = function (parentApp, opts = {}) {
|
|
1645
|
-
const $q = { version: '2.11.
|
|
1651
|
+
const $q = { version: '2.11.4' };
|
|
1646
1652
|
|
|
1647
1653
|
if (globalConfigIsFrozen === false) {
|
|
1648
1654
|
if (opts.config !== void 0) {
|
|
@@ -1841,7 +1847,7 @@
|
|
|
1841
1847
|
const onScreen = vue.ref(false);
|
|
1842
1848
|
const animate = vue.ref(true);
|
|
1843
1849
|
|
|
1844
|
-
let sessions = 0, timer, speed;
|
|
1850
|
+
let sessions = 0, timer = null, speed;
|
|
1845
1851
|
|
|
1846
1852
|
const classes = vue.computed(() =>
|
|
1847
1853
|
`q-loading-bar q-loading-bar--${ props.position }`
|
|
@@ -1893,19 +1899,21 @@
|
|
|
1893
1899
|
if (oldSpeed === 0 && newSpeed > 0) {
|
|
1894
1900
|
planNextStep();
|
|
1895
1901
|
}
|
|
1896
|
-
else if (oldSpeed > 0 && newSpeed <= 0) {
|
|
1902
|
+
else if (timer !== null && oldSpeed > 0 && newSpeed <= 0) {
|
|
1897
1903
|
clearTimeout(timer);
|
|
1904
|
+
timer = null;
|
|
1898
1905
|
}
|
|
1899
1906
|
|
|
1900
1907
|
return sessions
|
|
1901
1908
|
}
|
|
1902
1909
|
|
|
1903
|
-
clearTimeout(timer);
|
|
1910
|
+
timer !== null && clearTimeout(timer);
|
|
1904
1911
|
emit('start');
|
|
1905
1912
|
|
|
1906
1913
|
progress.value = 0;
|
|
1907
1914
|
|
|
1908
1915
|
timer = setTimeout(() => {
|
|
1916
|
+
timer = null;
|
|
1909
1917
|
animate.value = true;
|
|
1910
1918
|
newSpeed > 0 && planNextStep();
|
|
1911
1919
|
}, onScreen.value === true ? 500 : 1);
|
|
@@ -1932,13 +1940,18 @@
|
|
|
1932
1940
|
return sessions
|
|
1933
1941
|
}
|
|
1934
1942
|
|
|
1935
|
-
|
|
1943
|
+
if (timer !== null) {
|
|
1944
|
+
clearTimeout(timer);
|
|
1945
|
+
timer = null;
|
|
1946
|
+
}
|
|
1947
|
+
|
|
1936
1948
|
emit('stop');
|
|
1937
1949
|
|
|
1938
1950
|
const end = () => {
|
|
1939
1951
|
animate.value = true;
|
|
1940
1952
|
progress.value = 100;
|
|
1941
1953
|
timer = setTimeout(() => {
|
|
1954
|
+
timer = null;
|
|
1942
1955
|
onScreen.value = false;
|
|
1943
1956
|
}, 1000);
|
|
1944
1957
|
};
|
|
@@ -1956,6 +1969,7 @@
|
|
|
1956
1969
|
function planNextStep () {
|
|
1957
1970
|
if (progress.value < 100) {
|
|
1958
1971
|
timer = setTimeout(() => {
|
|
1972
|
+
timer = null;
|
|
1959
1973
|
increment();
|
|
1960
1974
|
planNextStep();
|
|
1961
1975
|
}, speed);
|
|
@@ -1976,7 +1990,7 @@
|
|
|
1976
1990
|
});
|
|
1977
1991
|
|
|
1978
1992
|
vue.onBeforeUnmount(() => {
|
|
1979
|
-
clearTimeout(timer);
|
|
1993
|
+
timer !== null && clearTimeout(timer);
|
|
1980
1994
|
hijacked === true && restoreAjax(start);
|
|
1981
1995
|
});
|
|
1982
1996
|
|
|
@@ -3580,7 +3594,7 @@
|
|
|
3580
3594
|
const rootRef = vue.ref(null);
|
|
3581
3595
|
const blurTargetRef = vue.ref(null);
|
|
3582
3596
|
|
|
3583
|
-
let localTouchTargetEl = null, avoidMouseRipple, mouseTimer;
|
|
3597
|
+
let localTouchTargetEl = null, avoidMouseRipple, mouseTimer = null;
|
|
3584
3598
|
|
|
3585
3599
|
const hasLabel = vue.computed(() =>
|
|
3586
3600
|
props.label !== void 0 && props.label !== null && props.label !== ''
|
|
@@ -3726,8 +3740,9 @@
|
|
|
3726
3740
|
// avoid duplicated mousedown event
|
|
3727
3741
|
// triggering another early ripple
|
|
3728
3742
|
avoidMouseRipple = true;
|
|
3729
|
-
clearTimeout(mouseTimer);
|
|
3743
|
+
mouseTimer !== null && clearTimeout(mouseTimer);
|
|
3730
3744
|
mouseTimer = setTimeout(() => {
|
|
3745
|
+
mouseTimer = null;
|
|
3731
3746
|
avoidMouseRipple = false;
|
|
3732
3747
|
}, 200);
|
|
3733
3748
|
}
|
|
@@ -3973,7 +3988,7 @@
|
|
|
3973
3988
|
|
|
3974
3989
|
const anchorEl = vue.ref(null);
|
|
3975
3990
|
|
|
3976
|
-
let touchTimer;
|
|
3991
|
+
let touchTimer = null;
|
|
3977
3992
|
|
|
3978
3993
|
function canShow (evt) {
|
|
3979
3994
|
// abort with no parent configured or on multi-touch
|
|
@@ -4032,6 +4047,7 @@
|
|
|
4032
4047
|
]);
|
|
4033
4048
|
|
|
4034
4049
|
touchTimer = setTimeout(() => {
|
|
4050
|
+
touchTimer = null;
|
|
4035
4051
|
proxy.show(evt);
|
|
4036
4052
|
evt.qAnchorHandled = true;
|
|
4037
4053
|
}, 300);
|
|
@@ -4039,7 +4055,11 @@
|
|
|
4039
4055
|
|
|
4040
4056
|
mobileCleanup (evt) {
|
|
4041
4057
|
anchorEl.value.classList.remove('non-selectable');
|
|
4042
|
-
|
|
4058
|
+
|
|
4059
|
+
if (touchTimer !== null) {
|
|
4060
|
+
clearTimeout(touchTimer);
|
|
4061
|
+
touchTimer = null;
|
|
4062
|
+
}
|
|
4043
4063
|
|
|
4044
4064
|
if (showing.value === true && evt !== void 0) {
|
|
4045
4065
|
clearSelection();
|
|
@@ -4153,7 +4173,7 @@
|
|
|
4153
4173
|
});
|
|
4154
4174
|
|
|
4155
4175
|
vue.onBeforeUnmount(() => {
|
|
4156
|
-
clearTimeout(touchTimer);
|
|
4176
|
+
touchTimer !== null && clearTimeout(touchTimer);
|
|
4157
4177
|
unconfigureAnchorEl();
|
|
4158
4178
|
});
|
|
4159
4179
|
|
|
@@ -4394,15 +4414,18 @@
|
|
|
4394
4414
|
queue = queue.filter(entry => entry !== fn);
|
|
4395
4415
|
}
|
|
4396
4416
|
|
|
4397
|
-
const
|
|
4417
|
+
const nodesList = [];
|
|
4418
|
+
const portalTypeList = [];
|
|
4419
|
+
|
|
4420
|
+
let portalIndex = 1;
|
|
4398
4421
|
let target = document.body;
|
|
4399
4422
|
|
|
4400
|
-
function createGlobalNode (id) {
|
|
4423
|
+
function createGlobalNode (id, portalType) {
|
|
4401
4424
|
const el = document.createElement('div');
|
|
4402
4425
|
|
|
4403
|
-
|
|
4404
|
-
|
|
4405
|
-
|
|
4426
|
+
el.id = portalType !== void 0
|
|
4427
|
+
? `q-portal--${ portalType }--${ portalIndex++ }`
|
|
4428
|
+
: id;
|
|
4406
4429
|
|
|
4407
4430
|
if (globalConfig.globalNodes !== void 0) {
|
|
4408
4431
|
const cls = globalConfig.globalNodes.class;
|
|
@@ -4412,25 +4435,53 @@
|
|
|
4412
4435
|
}
|
|
4413
4436
|
|
|
4414
4437
|
target.appendChild(el);
|
|
4415
|
-
|
|
4438
|
+
nodesList.push(el);
|
|
4439
|
+
portalTypeList.push(portalType);
|
|
4416
4440
|
|
|
4417
4441
|
return el
|
|
4418
4442
|
}
|
|
4419
4443
|
|
|
4420
4444
|
function removeGlobalNode (el) {
|
|
4421
|
-
|
|
4445
|
+
const nodeIndex = nodesList.indexOf(el);
|
|
4446
|
+
|
|
4447
|
+
nodesList.splice(nodeIndex, 1);
|
|
4448
|
+
portalTypeList.splice(nodeIndex, 1);
|
|
4449
|
+
|
|
4422
4450
|
el.remove();
|
|
4423
4451
|
}
|
|
4424
4452
|
|
|
4425
|
-
function changeGlobalNodesTarget (
|
|
4426
|
-
if (
|
|
4427
|
-
|
|
4453
|
+
function changeGlobalNodesTarget (newTarget) {
|
|
4454
|
+
if (newTarget === target) {
|
|
4455
|
+
return
|
|
4456
|
+
}
|
|
4457
|
+
|
|
4458
|
+
target = newTarget;
|
|
4428
4459
|
|
|
4429
|
-
|
|
4430
|
-
|
|
4431
|
-
|
|
4460
|
+
if (
|
|
4461
|
+
target === document.body
|
|
4462
|
+
// or we have less than 2 dialogs:
|
|
4463
|
+
|| portalTypeList.reduce((acc, type) => (type === 'dialog' ? acc + 1 : acc), 0) < 2
|
|
4464
|
+
) {
|
|
4465
|
+
nodesList.forEach(node => {
|
|
4466
|
+
if (node.contains(target) === false) {
|
|
4467
|
+
target.appendChild(node);
|
|
4432
4468
|
}
|
|
4433
4469
|
});
|
|
4470
|
+
|
|
4471
|
+
return
|
|
4472
|
+
}
|
|
4473
|
+
|
|
4474
|
+
const lastDialogIndex = portalTypeList.lastIndexOf('dialog');
|
|
4475
|
+
|
|
4476
|
+
for (let i = 0; i < nodesList.length; i++) {
|
|
4477
|
+
const el = nodesList[ i ];
|
|
4478
|
+
|
|
4479
|
+
if (
|
|
4480
|
+
(i === lastDialogIndex || portalTypeList[ i ] !== 'dialog')
|
|
4481
|
+
&& el.contains(target) === false
|
|
4482
|
+
) {
|
|
4483
|
+
target.appendChild(el);
|
|
4484
|
+
}
|
|
4434
4485
|
}
|
|
4435
4486
|
}
|
|
4436
4487
|
|
|
@@ -4509,7 +4560,7 @@
|
|
|
4509
4560
|
// Warning!
|
|
4510
4561
|
// You MUST specify "inheritAttrs: false" in your component
|
|
4511
4562
|
|
|
4512
|
-
function usePortal (vm, innerRef, renderPortalContent,
|
|
4563
|
+
function usePortal (vm, innerRef, renderPortalContent, type) {
|
|
4513
4564
|
// showing, including while in show/hide transition
|
|
4514
4565
|
const portalIsActive = vue.ref(false);
|
|
4515
4566
|
|
|
@@ -4518,7 +4569,7 @@
|
|
|
4518
4569
|
|
|
4519
4570
|
let portalEl = null;
|
|
4520
4571
|
const focusObj = {};
|
|
4521
|
-
const onGlobalDialog =
|
|
4572
|
+
const onGlobalDialog = type === 'dialog' && isOnGlobalDialog(vm);
|
|
4522
4573
|
|
|
4523
4574
|
function showPortal (isReady) {
|
|
4524
4575
|
if (isReady === true) {
|
|
@@ -4531,7 +4582,7 @@
|
|
|
4531
4582
|
|
|
4532
4583
|
if (portalIsActive.value === false) {
|
|
4533
4584
|
if (onGlobalDialog === false && portalEl === null) {
|
|
4534
|
-
portalEl = createGlobalNode();
|
|
4585
|
+
portalEl = createGlobalNode(false, type);
|
|
4535
4586
|
}
|
|
4536
4587
|
|
|
4537
4588
|
portalIsActive.value = true;
|
|
@@ -4672,11 +4723,14 @@
|
|
|
4672
4723
|
*/
|
|
4673
4724
|
|
|
4674
4725
|
function useTimeout () {
|
|
4675
|
-
let timer;
|
|
4726
|
+
let timer = null;
|
|
4676
4727
|
const vm = vue.getCurrentInstance();
|
|
4677
4728
|
|
|
4678
4729
|
function removeTimeout () {
|
|
4679
|
-
|
|
4730
|
+
if (timer !== null) {
|
|
4731
|
+
clearTimeout(timer);
|
|
4732
|
+
timer = null;
|
|
4733
|
+
}
|
|
4680
4734
|
}
|
|
4681
4735
|
|
|
4682
4736
|
vue.onDeactivated(removeTimeout);
|
|
@@ -4686,7 +4740,7 @@
|
|
|
4686
4740
|
removeTimeout,
|
|
4687
4741
|
|
|
4688
4742
|
registerTimeout (fn, delay) {
|
|
4689
|
-
|
|
4743
|
+
removeTimeout();
|
|
4690
4744
|
|
|
4691
4745
|
if (vmIsDestroyed(vm) === false) {
|
|
4692
4746
|
timer = setTimeout(fn, delay);
|
|
@@ -4968,14 +5022,11 @@
|
|
|
4968
5022
|
}
|
|
4969
5023
|
}
|
|
4970
5024
|
|
|
4971
|
-
let timer;
|
|
4972
|
-
|
|
4973
5025
|
const
|
|
4974
5026
|
{ notPassiveCapture } = listenOpts,
|
|
4975
5027
|
registeredList = [];
|
|
4976
5028
|
|
|
4977
5029
|
function globalHandler (evt) {
|
|
4978
|
-
clearTimeout(timer);
|
|
4979
5030
|
|
|
4980
5031
|
const target = evt.target;
|
|
4981
5032
|
|
|
@@ -5048,7 +5099,7 @@
|
|
|
5048
5099
|
registeredList.splice(index, 1);
|
|
5049
5100
|
|
|
5050
5101
|
if (registeredList.length === 0) {
|
|
5051
|
-
|
|
5102
|
+
|
|
5052
5103
|
document.removeEventListener('mousedown', globalHandler, notPassiveCapture);
|
|
5053
5104
|
document.removeEventListener('touchstart', globalHandler, notPassiveCapture);
|
|
5054
5105
|
}
|
|
@@ -5116,17 +5167,32 @@
|
|
|
5116
5167
|
}
|
|
5117
5168
|
|
|
5118
5169
|
return {
|
|
5119
|
-
top,
|
|
5120
|
-
left,
|
|
5121
|
-
right,
|
|
5122
|
-
bottom,
|
|
5123
|
-
width,
|
|
5124
|
-
height,
|
|
5170
|
+
top, bottom, height,
|
|
5171
|
+
left, right, width,
|
|
5125
5172
|
middle: left + (right - left) / 2,
|
|
5126
5173
|
center: top + (bottom - top) / 2
|
|
5127
5174
|
}
|
|
5128
5175
|
}
|
|
5129
5176
|
|
|
5177
|
+
function getAbsoluteAnchorProps (el, absoluteOffset, offset) {
|
|
5178
|
+
let { top, left } = el.getBoundingClientRect();
|
|
5179
|
+
|
|
5180
|
+
top += absoluteOffset.top;
|
|
5181
|
+
left += absoluteOffset.left;
|
|
5182
|
+
|
|
5183
|
+
if (offset !== void 0) {
|
|
5184
|
+
top += offset[ 1 ];
|
|
5185
|
+
left += offset[ 0 ];
|
|
5186
|
+
}
|
|
5187
|
+
|
|
5188
|
+
return {
|
|
5189
|
+
top, bottom: top + 1, height: 1,
|
|
5190
|
+
left, right: left + 1, width: 1,
|
|
5191
|
+
middle: left,
|
|
5192
|
+
center: top
|
|
5193
|
+
}
|
|
5194
|
+
}
|
|
5195
|
+
|
|
5130
5196
|
function getTargetProps (el) {
|
|
5131
5197
|
return {
|
|
5132
5198
|
top: 0,
|
|
@@ -5138,6 +5204,13 @@
|
|
|
5138
5204
|
}
|
|
5139
5205
|
}
|
|
5140
5206
|
|
|
5207
|
+
function getTopLeftProps (anchorProps, targetProps, cfg) {
|
|
5208
|
+
return {
|
|
5209
|
+
top: anchorProps[ cfg.anchorOrigin.vertical ] - targetProps[ cfg.selfOrigin.vertical ],
|
|
5210
|
+
left: anchorProps[ cfg.anchorOrigin.horizontal ] - targetProps[ cfg.selfOrigin.horizontal ]
|
|
5211
|
+
}
|
|
5212
|
+
}
|
|
5213
|
+
|
|
5141
5214
|
// cfg: { el, anchorEl, anchorOrigin, selfOrigin, offset, absoluteOffset, cover, fit, maxHeight, maxWidth }
|
|
5142
5215
|
function setPosition (cfg) {
|
|
5143
5216
|
if (client.is.ios === true && window.visualViewport !== void 0) {
|
|
@@ -5156,25 +5229,15 @@
|
|
|
5156
5229
|
}
|
|
5157
5230
|
}
|
|
5158
5231
|
|
|
5159
|
-
let anchorProps;
|
|
5160
|
-
|
|
5161
5232
|
// scroll position might change
|
|
5162
5233
|
// if max-height/-width changes, so we
|
|
5163
5234
|
// need to restore it after we calculate
|
|
5164
5235
|
// the new positioning
|
|
5165
5236
|
const { scrollLeft, scrollTop } = cfg.el;
|
|
5166
5237
|
|
|
5167
|
-
|
|
5168
|
-
|
|
5169
|
-
|
|
5170
|
-
else {
|
|
5171
|
-
const
|
|
5172
|
-
{ top: anchorTop, left: anchorLeft } = cfg.anchorEl.getBoundingClientRect(),
|
|
5173
|
-
top = anchorTop + cfg.absoluteOffset.top,
|
|
5174
|
-
left = anchorLeft + cfg.absoluteOffset.left;
|
|
5175
|
-
|
|
5176
|
-
anchorProps = { top, left, width: 1, height: 1, right: left + 1, center: top, middle: left, bottom: top + 1 };
|
|
5177
|
-
}
|
|
5238
|
+
const anchorProps = cfg.absoluteOffset === void 0
|
|
5239
|
+
? getAnchorProps(cfg.anchorEl, cfg.cover === true ? [ 0, 0 ] : cfg.offset)
|
|
5240
|
+
: getAbsoluteAnchorProps(cfg.anchorEl, cfg.absoluteOffset, cfg.offset);
|
|
5178
5241
|
|
|
5179
5242
|
let elStyle = {
|
|
5180
5243
|
maxHeight: cfg.maxHeight,
|
|
@@ -5191,14 +5254,44 @@
|
|
|
5191
5254
|
|
|
5192
5255
|
Object.assign(cfg.el.style, elStyle);
|
|
5193
5256
|
|
|
5194
|
-
const
|
|
5195
|
-
|
|
5196
|
-
|
|
5197
|
-
|
|
5198
|
-
|
|
5199
|
-
|
|
5257
|
+
const targetProps = getTargetProps(cfg.el);
|
|
5258
|
+
let props = getTopLeftProps(anchorProps, targetProps, cfg);
|
|
5259
|
+
|
|
5260
|
+
if (cfg.absoluteOffset === void 0 || cfg.offset === void 0) {
|
|
5261
|
+
applyBoundaries(props, anchorProps, targetProps, cfg.anchorOrigin, cfg.selfOrigin);
|
|
5262
|
+
}
|
|
5263
|
+
else { // we have touch position or context menu with offset
|
|
5264
|
+
const { top, left } = props; // cache initial values
|
|
5200
5265
|
|
|
5201
|
-
|
|
5266
|
+
// apply initial boundaries
|
|
5267
|
+
applyBoundaries(props, anchorProps, targetProps, cfg.anchorOrigin, cfg.selfOrigin);
|
|
5268
|
+
|
|
5269
|
+
let hasChanged = false;
|
|
5270
|
+
|
|
5271
|
+
// did it flip vertically?
|
|
5272
|
+
if (props.top !== top) {
|
|
5273
|
+
hasChanged = true;
|
|
5274
|
+
const offsetY = 2 * cfg.offset[ 1 ];
|
|
5275
|
+
anchorProps.center = anchorProps.top -= offsetY;
|
|
5276
|
+
anchorProps.bottom -= offsetY + 2;
|
|
5277
|
+
}
|
|
5278
|
+
|
|
5279
|
+
// did it flip horizontally?
|
|
5280
|
+
if (props.left !== left) {
|
|
5281
|
+
hasChanged = true;
|
|
5282
|
+
const offsetX = 2 * cfg.offset[ 0 ];
|
|
5283
|
+
anchorProps.middle = anchorProps.left -= offsetX;
|
|
5284
|
+
anchorProps.right -= offsetX + 2;
|
|
5285
|
+
}
|
|
5286
|
+
|
|
5287
|
+
if (hasChanged === true) {
|
|
5288
|
+
// re-calculate props with the new anchor
|
|
5289
|
+
props = getTopLeftProps(anchorProps, targetProps, cfg);
|
|
5290
|
+
|
|
5291
|
+
// and re-apply boundaries
|
|
5292
|
+
applyBoundaries(props, anchorProps, targetProps, cfg.anchorOrigin, cfg.selfOrigin);
|
|
5293
|
+
}
|
|
5294
|
+
}
|
|
5202
5295
|
|
|
5203
5296
|
elStyle = {
|
|
5204
5297
|
top: props.top + 'px',
|
|
@@ -5379,7 +5472,7 @@
|
|
|
5379
5472
|
processOnMount: true
|
|
5380
5473
|
});
|
|
5381
5474
|
|
|
5382
|
-
const { showPortal, hidePortal, renderPortal } = usePortal(vm, innerRef, renderPortalContent);
|
|
5475
|
+
const { showPortal, hidePortal, renderPortal } = usePortal(vm, innerRef, renderPortalContent, 'menu');
|
|
5383
5476
|
|
|
5384
5477
|
const clickOutsideProps = {
|
|
5385
5478
|
anchorEl,
|
|
@@ -6996,7 +7089,7 @@
|
|
|
6996
7089
|
|
|
6997
7090
|
const isDark = useDark(props, $q);
|
|
6998
7091
|
|
|
6999
|
-
let timer, panelsLen;
|
|
7092
|
+
let timer = null, panelsLen;
|
|
7000
7093
|
|
|
7001
7094
|
const {
|
|
7002
7095
|
updatePanelsList, getPanelContent,
|
|
@@ -7050,7 +7143,6 @@
|
|
|
7050
7143
|
|
|
7051
7144
|
vue.watch(() => props.modelValue, () => {
|
|
7052
7145
|
if (props.autoplay) {
|
|
7053
|
-
clearInterval(timer);
|
|
7054
7146
|
startTimer();
|
|
7055
7147
|
}
|
|
7056
7148
|
});
|
|
@@ -7059,20 +7151,28 @@
|
|
|
7059
7151
|
if (val) {
|
|
7060
7152
|
startTimer();
|
|
7061
7153
|
}
|
|
7062
|
-
else {
|
|
7063
|
-
|
|
7154
|
+
else if (timer !== null) {
|
|
7155
|
+
clearTimeout(timer);
|
|
7156
|
+
timer = null;
|
|
7064
7157
|
}
|
|
7065
7158
|
});
|
|
7066
7159
|
|
|
7067
7160
|
function startTimer () {
|
|
7068
7161
|
const duration = isNumber(props.autoplay) === true
|
|
7069
|
-
? props.autoplay
|
|
7162
|
+
? Math.abs(props.autoplay)
|
|
7070
7163
|
: 5000;
|
|
7071
7164
|
|
|
7072
|
-
timer
|
|
7073
|
-
|
|
7074
|
-
|
|
7075
|
-
|
|
7165
|
+
timer !== null && clearTimeout(timer);
|
|
7166
|
+
timer = setTimeout(() => {
|
|
7167
|
+
timer = null;
|
|
7168
|
+
|
|
7169
|
+
if (duration >= 0) {
|
|
7170
|
+
nextPanel();
|
|
7171
|
+
}
|
|
7172
|
+
else {
|
|
7173
|
+
previousPanel();
|
|
7174
|
+
}
|
|
7175
|
+
}, duration);
|
|
7076
7176
|
}
|
|
7077
7177
|
|
|
7078
7178
|
vue.onMounted(() => {
|
|
@@ -7080,7 +7180,7 @@
|
|
|
7080
7180
|
});
|
|
7081
7181
|
|
|
7082
7182
|
vue.onBeforeUnmount(() => {
|
|
7083
|
-
|
|
7183
|
+
timer !== null && clearTimeout(timer);
|
|
7084
7184
|
});
|
|
7085
7185
|
|
|
7086
7186
|
function getNavigationContainer (type, mapping) {
|
|
@@ -7561,6 +7661,8 @@
|
|
|
7561
7661
|
const prop = { type: 'checkbox' };
|
|
7562
7662
|
|
|
7563
7663
|
props.name !== void 0 && Object.assign(prop, {
|
|
7664
|
+
// see https://vuejs.org/guide/extras/render-function.html#creating-vnodes (.prop)
|
|
7665
|
+
'.checked': isTrue.value,
|
|
7564
7666
|
'^checked': isTrue.value === true ? 'checked' : void 0,
|
|
7565
7667
|
name: props.name,
|
|
7566
7668
|
value: modelIsArray.value === true
|
|
@@ -9396,8 +9498,10 @@
|
|
|
9396
9498
|
}
|
|
9397
9499
|
|
|
9398
9500
|
function emitEvent () {
|
|
9399
|
-
|
|
9400
|
-
|
|
9501
|
+
if (timer !== null) {
|
|
9502
|
+
clearTimeout(timer);
|
|
9503
|
+
timer = null;
|
|
9504
|
+
}
|
|
9401
9505
|
|
|
9402
9506
|
if (targetEl) {
|
|
9403
9507
|
const { offsetWidth: width, offsetHeight: height } = targetEl;
|
|
@@ -9431,7 +9535,7 @@
|
|
|
9431
9535
|
vue.onMounted(() => { init(); });
|
|
9432
9536
|
|
|
9433
9537
|
vue.onBeforeUnmount(() => {
|
|
9434
|
-
clearTimeout(timer);
|
|
9538
|
+
timer !== null && clearTimeout(timer);
|
|
9435
9539
|
|
|
9436
9540
|
if (observer !== void 0) {
|
|
9437
9541
|
if (observer.disconnect !== void 0) {
|
|
@@ -9451,7 +9555,10 @@
|
|
|
9451
9555
|
let curDocView;
|
|
9452
9556
|
|
|
9453
9557
|
function cleanup () {
|
|
9454
|
-
|
|
9558
|
+
if (timer !== null) {
|
|
9559
|
+
clearTimeout(timer);
|
|
9560
|
+
timer = null;
|
|
9561
|
+
}
|
|
9455
9562
|
|
|
9456
9563
|
if (curDocView !== void 0) {
|
|
9457
9564
|
// iOS is fuzzy, need to check it first
|
|
@@ -9604,7 +9711,7 @@
|
|
|
9604
9711
|
const tabDataListLen = vue.ref(0);
|
|
9605
9712
|
const hasFocus = vue.ref(false);
|
|
9606
9713
|
|
|
9607
|
-
let animateTimer, scrollTimer, unwatchRoute;
|
|
9714
|
+
let animateTimer = null, scrollTimer = null, unwatchRoute;
|
|
9608
9715
|
|
|
9609
9716
|
const tabProps = vue.computed(() => ({
|
|
9610
9717
|
activeClass: props.activeClass,
|
|
@@ -9740,7 +9847,10 @@
|
|
|
9740
9847
|
oldEl = oldTab.tabIndicatorRef.value,
|
|
9741
9848
|
newEl = newTab.tabIndicatorRef.value;
|
|
9742
9849
|
|
|
9743
|
-
|
|
9850
|
+
if (animateTimer !== null) {
|
|
9851
|
+
clearTimeout(animateTimer);
|
|
9852
|
+
animateTimer = null;
|
|
9853
|
+
}
|
|
9744
9854
|
|
|
9745
9855
|
oldEl.style.transition = 'none';
|
|
9746
9856
|
oldEl.style.transform = 'none';
|
|
@@ -9758,6 +9868,7 @@
|
|
|
9758
9868
|
// allow scope updates to kick in (QRouteTab needs more time)
|
|
9759
9869
|
registerAnimateTick(() => {
|
|
9760
9870
|
animateTimer = setTimeout(() => {
|
|
9871
|
+
animateTimer = null;
|
|
9761
9872
|
newEl.style.transition = 'transform .25s cubic-bezier(.4, 0, .2, 1)';
|
|
9762
9873
|
newEl.style.transform = 'none';
|
|
9763
9874
|
}, 70);
|
|
@@ -9810,7 +9921,7 @@
|
|
|
9810
9921
|
}
|
|
9811
9922
|
|
|
9812
9923
|
function animScrollTo (value) {
|
|
9813
|
-
|
|
9924
|
+
scrollTimer !== null && clearInterval(scrollTimer);
|
|
9814
9925
|
scrollTimer = setInterval(() => {
|
|
9815
9926
|
if (scrollTowards(value) === true) {
|
|
9816
9927
|
stopAnimScroll();
|
|
@@ -9827,7 +9938,10 @@
|
|
|
9827
9938
|
}
|
|
9828
9939
|
|
|
9829
9940
|
function stopAnimScroll () {
|
|
9830
|
-
|
|
9941
|
+
if (scrollTimer !== null) {
|
|
9942
|
+
clearInterval(scrollTimer);
|
|
9943
|
+
scrollTimer = null;
|
|
9944
|
+
}
|
|
9831
9945
|
}
|
|
9832
9946
|
|
|
9833
9947
|
function onKbdNavigate (keyCode, fromEl) {
|
|
@@ -10131,7 +10245,7 @@
|
|
|
10131
10245
|
vue.provide(tabsKey, $tabs);
|
|
10132
10246
|
|
|
10133
10247
|
function cleanup () {
|
|
10134
|
-
clearTimeout(animateTimer);
|
|
10248
|
+
animateTimer !== null && clearTimeout(animateTimer);
|
|
10135
10249
|
stopAnimScroll();
|
|
10136
10250
|
unwatchRoute !== void 0 && unwatchRoute();
|
|
10137
10251
|
}
|
|
@@ -14523,7 +14637,7 @@
|
|
|
14523
14637
|
vpPendingUpdate = false,
|
|
14524
14638
|
bodyLeft,
|
|
14525
14639
|
bodyTop,
|
|
14526
|
-
closeTimer;
|
|
14640
|
+
closeTimer = null;
|
|
14527
14641
|
|
|
14528
14642
|
function onWheel (e) {
|
|
14529
14643
|
if (shouldPreventScroll(e)) {
|
|
@@ -14670,9 +14784,9 @@
|
|
|
14670
14784
|
if (state === true) {
|
|
14671
14785
|
registered++;
|
|
14672
14786
|
|
|
14673
|
-
if (closeTimer !==
|
|
14787
|
+
if (closeTimer !== null) {
|
|
14674
14788
|
clearTimeout(closeTimer);
|
|
14675
|
-
closeTimer =
|
|
14789
|
+
closeTimer = null;
|
|
14676
14790
|
return
|
|
14677
14791
|
}
|
|
14678
14792
|
|
|
@@ -14694,11 +14808,10 @@
|
|
|
14694
14808
|
action = 'remove';
|
|
14695
14809
|
|
|
14696
14810
|
if (client.is.ios === true && client.is.nativeMobile === true) {
|
|
14697
|
-
clearTimeout(closeTimer);
|
|
14698
|
-
|
|
14811
|
+
closeTimer !== null && clearTimeout(closeTimer);
|
|
14699
14812
|
closeTimer = setTimeout(() => {
|
|
14700
14813
|
apply$1(action);
|
|
14701
|
-
closeTimer =
|
|
14814
|
+
closeTimer = null;
|
|
14702
14815
|
}, 100);
|
|
14703
14816
|
return
|
|
14704
14817
|
}
|
|
@@ -14792,7 +14905,7 @@
|
|
|
14792
14905
|
const showing = vue.ref(false);
|
|
14793
14906
|
const animating = vue.ref(false);
|
|
14794
14907
|
|
|
14795
|
-
let shakeTimeout, refocusTarget = null, isMaximized, avoidAutoClose;
|
|
14908
|
+
let shakeTimeout = null, refocusTarget = null, isMaximized, avoidAutoClose;
|
|
14796
14909
|
|
|
14797
14910
|
const hideOnRouteChange = vue.computed(() =>
|
|
14798
14911
|
props.persistent !== true
|
|
@@ -14811,7 +14924,7 @@
|
|
|
14811
14924
|
);
|
|
14812
14925
|
|
|
14813
14926
|
const { showPortal, hidePortal, portalIsAccessible, renderPortal } = usePortal(
|
|
14814
|
-
vm, innerRef, renderPortalContent,
|
|
14927
|
+
vm, innerRef, renderPortalContent, 'dialog'
|
|
14815
14928
|
);
|
|
14816
14929
|
|
|
14817
14930
|
const { hide } = useModelToggle({
|
|
@@ -14974,8 +15087,9 @@
|
|
|
14974
15087
|
if (node !== null) {
|
|
14975
15088
|
node.classList.remove('q-animate--scale');
|
|
14976
15089
|
node.classList.add('q-animate--scale');
|
|
14977
|
-
clearTimeout(shakeTimeout);
|
|
15090
|
+
shakeTimeout !== null && clearTimeout(shakeTimeout);
|
|
14978
15091
|
shakeTimeout = setTimeout(() => {
|
|
15092
|
+
shakeTimeout = null;
|
|
14979
15093
|
if (innerRef.value !== null) {
|
|
14980
15094
|
node.classList.remove('q-animate--scale');
|
|
14981
15095
|
// some platforms (like desktop Chrome)
|
|
@@ -14999,7 +15113,10 @@
|
|
|
14999
15113
|
}
|
|
15000
15114
|
|
|
15001
15115
|
function cleanup (hiding) {
|
|
15002
|
-
|
|
15116
|
+
if (shakeTimeout !== null) {
|
|
15117
|
+
clearTimeout(shakeTimeout);
|
|
15118
|
+
shakeTimeout = null;
|
|
15119
|
+
}
|
|
15003
15120
|
|
|
15004
15121
|
if (hiding === true || showing.value === true) {
|
|
15005
15122
|
updateMaximized(false);
|
|
@@ -15190,7 +15307,7 @@
|
|
|
15190
15307
|
return emptyRenderFn
|
|
15191
15308
|
}
|
|
15192
15309
|
|
|
15193
|
-
let lastDesktopState, timerMini, layoutTotalWidthWatcher;
|
|
15310
|
+
let lastDesktopState, timerMini = null, layoutTotalWidthWatcher;
|
|
15194
15311
|
|
|
15195
15312
|
const belowBreakpoint = vue.ref(
|
|
15196
15313
|
props.behavior === 'mobile'
|
|
@@ -15565,7 +15682,7 @@
|
|
|
15565
15682
|
}
|
|
15566
15683
|
|
|
15567
15684
|
function animateMini () {
|
|
15568
|
-
clearTimeout(timerMini);
|
|
15685
|
+
timerMini !== null && clearTimeout(timerMini);
|
|
15569
15686
|
|
|
15570
15687
|
if (vm.proxy && vm.proxy.$el) {
|
|
15571
15688
|
// need to speed it up and apply it immediately,
|
|
@@ -15575,6 +15692,7 @@
|
|
|
15575
15692
|
|
|
15576
15693
|
flagMiniAnimate.value = true;
|
|
15577
15694
|
timerMini = setTimeout(() => {
|
|
15695
|
+
timerMini = null;
|
|
15578
15696
|
flagMiniAnimate.value = false;
|
|
15579
15697
|
if (vm && vm.proxy && vm.proxy.$el) {
|
|
15580
15698
|
vm.proxy.$el.classList.remove('q-drawer--mini-animate');
|
|
@@ -15727,7 +15845,11 @@
|
|
|
15727
15845
|
|
|
15728
15846
|
vue.onBeforeUnmount(() => {
|
|
15729
15847
|
layoutTotalWidthWatcher !== void 0 && layoutTotalWidthWatcher();
|
|
15730
|
-
|
|
15848
|
+
|
|
15849
|
+
if (timerMini !== null) {
|
|
15850
|
+
clearTimeout(timerMini);
|
|
15851
|
+
timerMini = null;
|
|
15852
|
+
}
|
|
15731
15853
|
|
|
15732
15854
|
showing.value === true && cleanup();
|
|
15733
15855
|
|
|
@@ -16262,7 +16384,7 @@
|
|
|
16262
16384
|
|
|
16263
16385
|
Object.assign(anchorEvents, { delayShow, delayHide });
|
|
16264
16386
|
|
|
16265
|
-
const { showPortal, hidePortal, renderPortal } = usePortal(vm, innerRef, renderPortalContent);
|
|
16387
|
+
const { showPortal, hidePortal, renderPortal } = usePortal(vm, innerRef, renderPortalContent, 'tooltip');
|
|
16266
16388
|
|
|
16267
16389
|
// if we're on mobile, let's improve the experience
|
|
16268
16390
|
// by closing it when user taps outside of it
|
|
@@ -17597,15 +17719,23 @@
|
|
|
17597
17719
|
|
|
17598
17720
|
setup (props, { slots, emit }) {
|
|
17599
17721
|
let animating = false, doneFn, element;
|
|
17600
|
-
let timer, timerFallback, animListener, lastEvent;
|
|
17722
|
+
let timer = null, timerFallback = null, animListener, lastEvent;
|
|
17601
17723
|
|
|
17602
17724
|
function cleanup () {
|
|
17603
17725
|
doneFn && doneFn();
|
|
17604
17726
|
doneFn = null;
|
|
17605
17727
|
animating = false;
|
|
17606
17728
|
|
|
17607
|
-
|
|
17608
|
-
|
|
17729
|
+
if (timer !== null) {
|
|
17730
|
+
clearTimeout(timer);
|
|
17731
|
+
timer = null;
|
|
17732
|
+
}
|
|
17733
|
+
|
|
17734
|
+
if (timerFallback !== null) {
|
|
17735
|
+
clearTimeout(timerFallback);
|
|
17736
|
+
timerFallback = null;
|
|
17737
|
+
}
|
|
17738
|
+
|
|
17609
17739
|
element !== void 0 && element.removeEventListener('transitionend', animListener);
|
|
17610
17740
|
animListener = null;
|
|
17611
17741
|
}
|
|
@@ -17644,8 +17774,11 @@
|
|
|
17644
17774
|
begin(el, pos, done);
|
|
17645
17775
|
|
|
17646
17776
|
timer = setTimeout(() => {
|
|
17777
|
+
timer = null;
|
|
17647
17778
|
el.style.height = `${ el.scrollHeight }px`;
|
|
17648
17779
|
animListener = evt => {
|
|
17780
|
+
timerFallback = null;
|
|
17781
|
+
|
|
17649
17782
|
if (Object(evt) !== evt || evt.target === el) {
|
|
17650
17783
|
end(el, 'show');
|
|
17651
17784
|
}
|
|
@@ -17670,8 +17803,11 @@
|
|
|
17670
17803
|
begin(el, pos, done);
|
|
17671
17804
|
|
|
17672
17805
|
timer = setTimeout(() => {
|
|
17806
|
+
timer = null;
|
|
17673
17807
|
el.style.height = 0;
|
|
17674
17808
|
animListener = evt => {
|
|
17809
|
+
timerFallback = null;
|
|
17810
|
+
|
|
17675
17811
|
if (Object(evt) !== evt || evt.target === el) {
|
|
17676
17812
|
end(el, 'hide');
|
|
17677
17813
|
}
|
|
@@ -18807,7 +18943,7 @@
|
|
|
18807
18943
|
const { props, emit, slots, attrs, proxy } = vue.getCurrentInstance();
|
|
18808
18944
|
const { $q } = proxy;
|
|
18809
18945
|
|
|
18810
|
-
let focusoutTimer;
|
|
18946
|
+
let focusoutTimer = null;
|
|
18811
18947
|
|
|
18812
18948
|
if (state.hasValue === void 0) {
|
|
18813
18949
|
state.hasValue = vue.computed(() => fieldValueIsFilled(props.modelValue));
|
|
@@ -18973,7 +19109,11 @@
|
|
|
18973
19109
|
}
|
|
18974
19110
|
|
|
18975
19111
|
function onControlFocusin (e) {
|
|
18976
|
-
|
|
19112
|
+
if (focusoutTimer !== null) {
|
|
19113
|
+
clearTimeout(focusoutTimer);
|
|
19114
|
+
focusoutTimer = null;
|
|
19115
|
+
}
|
|
19116
|
+
|
|
18977
19117
|
if (state.editable.value === true && state.focused.value === false) {
|
|
18978
19118
|
state.focused.value = true;
|
|
18979
19119
|
emit('focus', e);
|
|
@@ -18981,8 +19121,10 @@
|
|
|
18981
19121
|
}
|
|
18982
19122
|
|
|
18983
19123
|
function onControlFocusout (e, then) {
|
|
18984
|
-
clearTimeout(focusoutTimer);
|
|
19124
|
+
focusoutTimer !== null && clearTimeout(focusoutTimer);
|
|
18985
19125
|
focusoutTimer = setTimeout(() => {
|
|
19126
|
+
focusoutTimer = null;
|
|
19127
|
+
|
|
18986
19128
|
if (
|
|
18987
19129
|
document.hasFocus() === true && (
|
|
18988
19130
|
state.hasPopupOpen === true
|
|
@@ -19232,7 +19374,7 @@
|
|
|
19232
19374
|
});
|
|
19233
19375
|
|
|
19234
19376
|
vue.onBeforeUnmount(() => {
|
|
19235
|
-
clearTimeout(focusoutTimer);
|
|
19377
|
+
focusoutTimer !== null && clearTimeout(focusoutTimer);
|
|
19236
19378
|
});
|
|
19237
19379
|
|
|
19238
19380
|
// expose public methods
|
|
@@ -20535,7 +20677,7 @@
|
|
|
20535
20677
|
const naturalRatio = vue.ref(props.initialRatio);
|
|
20536
20678
|
const ratioStyle = useRatio(props, naturalRatio);
|
|
20537
20679
|
|
|
20538
|
-
let loadTimer;
|
|
20680
|
+
let loadTimer = null, isDestroyed = false;
|
|
20539
20681
|
|
|
20540
20682
|
const images = [
|
|
20541
20683
|
vue.ref(null),
|
|
@@ -20586,7 +20728,11 @@
|
|
|
20586
20728
|
}
|
|
20587
20729
|
|
|
20588
20730
|
function addImage (imgProps) {
|
|
20589
|
-
|
|
20731
|
+
if (loadTimer !== null) {
|
|
20732
|
+
clearTimeout(loadTimer);
|
|
20733
|
+
loadTimer = null;
|
|
20734
|
+
}
|
|
20735
|
+
|
|
20590
20736
|
hasError.value = false;
|
|
20591
20737
|
|
|
20592
20738
|
if (imgProps === null) {
|
|
@@ -20601,10 +20747,12 @@
|
|
|
20601
20747
|
}
|
|
20602
20748
|
|
|
20603
20749
|
function onLoad ({ target }) {
|
|
20604
|
-
|
|
20605
|
-
if (loadTimer === null) { return }
|
|
20750
|
+
if (isDestroyed === true) { return }
|
|
20606
20751
|
|
|
20607
|
-
|
|
20752
|
+
if (loadTimer !== null) {
|
|
20753
|
+
clearTimeout(loadTimer);
|
|
20754
|
+
loadTimer = null;
|
|
20755
|
+
}
|
|
20608
20756
|
|
|
20609
20757
|
naturalRatio.value = target.naturalHeight === 0
|
|
20610
20758
|
? 0.5
|
|
@@ -20615,21 +20763,21 @@
|
|
|
20615
20763
|
|
|
20616
20764
|
function waitForCompleteness (target, count) {
|
|
20617
20765
|
// protect against running forever
|
|
20618
|
-
if (
|
|
20766
|
+
if (isDestroyed === true || count === 1000) { return }
|
|
20619
20767
|
|
|
20620
20768
|
if (target.complete === true) {
|
|
20621
20769
|
onReady(target);
|
|
20622
20770
|
}
|
|
20623
20771
|
else {
|
|
20624
20772
|
loadTimer = setTimeout(() => {
|
|
20773
|
+
loadTimer = null;
|
|
20625
20774
|
waitForCompleteness(target, count + 1);
|
|
20626
20775
|
}, 50);
|
|
20627
20776
|
}
|
|
20628
20777
|
}
|
|
20629
20778
|
|
|
20630
20779
|
function onReady (img) {
|
|
20631
|
-
|
|
20632
|
-
if (loadTimer === null) { return }
|
|
20780
|
+
if (isDestroyed === true) { return }
|
|
20633
20781
|
|
|
20634
20782
|
position.value = position.value ^ 1;
|
|
20635
20783
|
images[ position.value ].value = null;
|
|
@@ -20639,7 +20787,11 @@
|
|
|
20639
20787
|
}
|
|
20640
20788
|
|
|
20641
20789
|
function onError (err) {
|
|
20642
|
-
|
|
20790
|
+
if (loadTimer !== null) {
|
|
20791
|
+
clearTimeout(loadTimer);
|
|
20792
|
+
loadTimer = null;
|
|
20793
|
+
}
|
|
20794
|
+
|
|
20643
20795
|
isLoading.value = false;
|
|
20644
20796
|
hasError.value = true;
|
|
20645
20797
|
images[ position.value ].value = null;
|
|
@@ -20714,8 +20866,12 @@
|
|
|
20714
20866
|
}
|
|
20715
20867
|
|
|
20716
20868
|
vue.onBeforeUnmount(() => {
|
|
20717
|
-
|
|
20718
|
-
|
|
20869
|
+
isDestroyed = true;
|
|
20870
|
+
|
|
20871
|
+
if (loadTimer !== null) {
|
|
20872
|
+
clearTimeout(loadTimer);
|
|
20873
|
+
loadTimer = null;
|
|
20874
|
+
}
|
|
20719
20875
|
});
|
|
20720
20876
|
}
|
|
20721
20877
|
|
|
@@ -21659,7 +21815,7 @@
|
|
|
21659
21815
|
const { $q } = proxy;
|
|
21660
21816
|
|
|
21661
21817
|
const temp = {};
|
|
21662
|
-
let emitCachedValue = NaN, typedNumber, stopValueWatcher, emitTimer, emitValueFn;
|
|
21818
|
+
let emitCachedValue = NaN, typedNumber, stopValueWatcher, emitTimer = null, emitValueFn;
|
|
21663
21819
|
|
|
21664
21820
|
const inputRef = vue.ref(null);
|
|
21665
21821
|
const nameProp = useFormInputNameAttr(props);
|
|
@@ -21871,6 +22027,8 @@
|
|
|
21871
22027
|
|
|
21872
22028
|
function emitValue (val, stopWatcher) {
|
|
21873
22029
|
emitValueFn = () => {
|
|
22030
|
+
emitTimer = null;
|
|
22031
|
+
|
|
21874
22032
|
if (
|
|
21875
22033
|
props.type !== 'number'
|
|
21876
22034
|
&& temp.hasOwnProperty('value') === true
|
|
@@ -21898,7 +22056,7 @@
|
|
|
21898
22056
|
}
|
|
21899
22057
|
|
|
21900
22058
|
if (props.debounce !== void 0) {
|
|
21901
|
-
clearTimeout(emitTimer);
|
|
22059
|
+
emitTimer !== null && clearTimeout(emitTimer);
|
|
21902
22060
|
temp.value = val;
|
|
21903
22061
|
emitTimer = setTimeout(emitValueFn, props.debounce);
|
|
21904
22062
|
}
|
|
@@ -21932,7 +22090,11 @@
|
|
|
21932
22090
|
function onChange (e) {
|
|
21933
22091
|
onComposition(e);
|
|
21934
22092
|
|
|
21935
|
-
|
|
22093
|
+
if (emitTimer !== null) {
|
|
22094
|
+
clearTimeout(emitTimer);
|
|
22095
|
+
emitTimer = null;
|
|
22096
|
+
}
|
|
22097
|
+
|
|
21936
22098
|
emitValueFn !== void 0 && emitValueFn();
|
|
21937
22099
|
|
|
21938
22100
|
emit('change', e.target.value);
|
|
@@ -21941,7 +22103,11 @@
|
|
|
21941
22103
|
function onFinishEditing (e) {
|
|
21942
22104
|
e !== void 0 && stop(e);
|
|
21943
22105
|
|
|
21944
|
-
|
|
22106
|
+
if (emitTimer !== null) {
|
|
22107
|
+
clearTimeout(emitTimer);
|
|
22108
|
+
emitTimer = null;
|
|
22109
|
+
}
|
|
22110
|
+
|
|
21945
22111
|
emitValueFn !== void 0 && emitValueFn();
|
|
21946
22112
|
|
|
21947
22113
|
typedNumber = false;
|
|
@@ -22785,7 +22951,7 @@
|
|
|
22785
22951
|
}
|
|
22786
22952
|
}
|
|
22787
22953
|
|
|
22788
|
-
let
|
|
22954
|
+
let animateTimer = null;
|
|
22789
22955
|
|
|
22790
22956
|
const $layout = {
|
|
22791
22957
|
instances: {},
|
|
@@ -22816,16 +22982,16 @@
|
|
|
22816
22982
|
scroll,
|
|
22817
22983
|
|
|
22818
22984
|
animate () {
|
|
22819
|
-
if (
|
|
22820
|
-
clearTimeout(
|
|
22985
|
+
if (animateTimer !== null) {
|
|
22986
|
+
clearTimeout(animateTimer);
|
|
22821
22987
|
}
|
|
22822
22988
|
else {
|
|
22823
22989
|
document.body.classList.add('q-body--layout-animate');
|
|
22824
22990
|
}
|
|
22825
22991
|
|
|
22826
|
-
|
|
22992
|
+
animateTimer = setTimeout(() => {
|
|
22993
|
+
animateTimer = null;
|
|
22827
22994
|
document.body.classList.remove('q-body--layout-animate');
|
|
22828
|
-
timer = void 0;
|
|
22829
22995
|
}, 155);
|
|
22830
22996
|
},
|
|
22831
22997
|
|
|
@@ -23094,6 +23260,8 @@
|
|
|
23094
23260
|
const prop = { type: 'radio' };
|
|
23095
23261
|
|
|
23096
23262
|
props.name !== void 0 && Object.assign(prop, {
|
|
23263
|
+
// see https://vuejs.org/guide/extras/render-function.html#creating-vnodes (.prop)
|
|
23264
|
+
'.checked': isTrue.value === true,
|
|
23097
23265
|
'^checked': isTrue.value === true ? 'checked' : void 0,
|
|
23098
23266
|
name: props.name,
|
|
23099
23267
|
value: props.val
|
|
@@ -24891,6 +25059,8 @@
|
|
|
24891
25059
|
});
|
|
24892
25060
|
}
|
|
24893
25061
|
|
|
25062
|
+
let $el, localScrollTarget, timer = null;
|
|
25063
|
+
|
|
24894
25064
|
function animateTo ({ pos, ratio }, done) {
|
|
24895
25065
|
animating.value = true;
|
|
24896
25066
|
pullPosition.value = pos;
|
|
@@ -24899,15 +25069,14 @@
|
|
|
24899
25069
|
pullRatio.value = ratio;
|
|
24900
25070
|
}
|
|
24901
25071
|
|
|
24902
|
-
clearTimeout(timer);
|
|
25072
|
+
timer !== null && clearTimeout(timer);
|
|
24903
25073
|
timer = setTimeout(() => {
|
|
25074
|
+
timer = null;
|
|
24904
25075
|
animating.value = false;
|
|
24905
25076
|
done && done();
|
|
24906
25077
|
}, 300);
|
|
24907
25078
|
}
|
|
24908
25079
|
|
|
24909
|
-
let $el, localScrollTarget, timer;
|
|
24910
|
-
|
|
24911
25080
|
function updateScrollTarget () {
|
|
24912
25081
|
localScrollTarget = getScrollTarget($el, props.scrollTarget);
|
|
24913
25082
|
}
|
|
@@ -24920,7 +25089,7 @@
|
|
|
24920
25089
|
});
|
|
24921
25090
|
|
|
24922
25091
|
vue.onBeforeUnmount(() => {
|
|
24923
|
-
clearTimeout(timer);
|
|
25092
|
+
timer !== null && clearTimeout(timer);
|
|
24924
25093
|
});
|
|
24925
25094
|
|
|
24926
25095
|
// expose public methods
|
|
@@ -25709,7 +25878,7 @@
|
|
|
25709
25878
|
|
|
25710
25879
|
const isDark = useDark(props, proxy.$q);
|
|
25711
25880
|
|
|
25712
|
-
let timer, panRefPos;
|
|
25881
|
+
let timer = null, panRefPos;
|
|
25713
25882
|
|
|
25714
25883
|
const targetRef = vue.ref(null);
|
|
25715
25884
|
|
|
@@ -25958,14 +26127,14 @@
|
|
|
25958
26127
|
}
|
|
25959
26128
|
|
|
25960
26129
|
function startTimer () {
|
|
25961
|
-
|
|
25962
|
-
|
|
25963
|
-
|
|
25964
|
-
|
|
25965
|
-
|
|
25966
|
-
|
|
26130
|
+
tempShowing.value = true;
|
|
26131
|
+
|
|
26132
|
+
timer !== null && clearTimeout(timer);
|
|
26133
|
+
timer = setTimeout(() => {
|
|
26134
|
+
timer = null;
|
|
26135
|
+
tempShowing.value = false;
|
|
26136
|
+
}, props.delay);
|
|
25967
26137
|
|
|
25968
|
-
timer = setTimeout(() => { tempShowing.value = false; }, props.delay);
|
|
25969
26138
|
props.onScroll !== void 0 && emitScroll();
|
|
25970
26139
|
}
|
|
25971
26140
|
|
|
@@ -26967,8 +27136,8 @@
|
|
|
26967
27136
|
const dialogFieldFocused = vue.ref(false);
|
|
26968
27137
|
const innerLoadingIndicator = vue.ref(false);
|
|
26969
27138
|
|
|
26970
|
-
let inputTimer, innerValueCache,
|
|
26971
|
-
hasDialog, userInputValue, filterId, defaultInputValue,
|
|
27139
|
+
let inputTimer = null, innerValueCache,
|
|
27140
|
+
hasDialog, userInputValue, filterId = null, defaultInputValue,
|
|
26972
27141
|
transitionShowComputed, searchBuffer, searchBufferExp;
|
|
26973
27142
|
|
|
26974
27143
|
const inputRef = vue.ref(null);
|
|
@@ -27474,7 +27643,12 @@
|
|
|
27474
27643
|
}
|
|
27475
27644
|
|
|
27476
27645
|
e.target.value = '';
|
|
27477
|
-
|
|
27646
|
+
|
|
27647
|
+
if (inputTimer !== null) {
|
|
27648
|
+
clearTimeout(inputTimer);
|
|
27649
|
+
inputTimer = null;
|
|
27650
|
+
}
|
|
27651
|
+
|
|
27478
27652
|
resetInputValue();
|
|
27479
27653
|
|
|
27480
27654
|
if (typeof value === 'string' && value.length > 0) {
|
|
@@ -27839,7 +28013,10 @@
|
|
|
27839
28013
|
}
|
|
27840
28014
|
|
|
27841
28015
|
function onInput (e) {
|
|
27842
|
-
|
|
28016
|
+
if (inputTimer !== null) {
|
|
28017
|
+
clearTimeout(inputTimer);
|
|
28018
|
+
inputTimer = null;
|
|
28019
|
+
}
|
|
27843
28020
|
|
|
27844
28021
|
if (e && e.target && e.target.qComposing === true) {
|
|
27845
28022
|
return
|
|
@@ -27860,6 +28037,7 @@
|
|
|
27860
28037
|
|
|
27861
28038
|
if (props.onFilter !== void 0) {
|
|
27862
28039
|
inputTimer = setTimeout(() => {
|
|
28040
|
+
inputTimer = null;
|
|
27863
28041
|
filter(inputValue.value);
|
|
27864
28042
|
}, props.inputDebounce);
|
|
27865
28043
|
}
|
|
@@ -27913,7 +28091,7 @@
|
|
|
27913
28091
|
menu.value === true && (menu.value = false);
|
|
27914
28092
|
}, 10);
|
|
27915
28093
|
|
|
27916
|
-
clearTimeout(filterId);
|
|
28094
|
+
filterId !== null && clearTimeout(filterId);
|
|
27917
28095
|
filterId = localFilterId;
|
|
27918
28096
|
|
|
27919
28097
|
emit(
|
|
@@ -28105,8 +28283,10 @@
|
|
|
28105
28283
|
}
|
|
28106
28284
|
|
|
28107
28285
|
if (state.focused.value === false) {
|
|
28108
|
-
|
|
28109
|
-
|
|
28286
|
+
if (filterId !== null) {
|
|
28287
|
+
clearTimeout(filterId);
|
|
28288
|
+
filterId = null;
|
|
28289
|
+
}
|
|
28110
28290
|
|
|
28111
28291
|
if (state.innerLoading.value === true) {
|
|
28112
28292
|
emit('filterAbort');
|
|
@@ -28227,7 +28407,7 @@
|
|
|
28227
28407
|
updatePreState();
|
|
28228
28408
|
|
|
28229
28409
|
vue.onBeforeUnmount(() => {
|
|
28230
|
-
clearTimeout(inputTimer);
|
|
28410
|
+
inputTimer !== null && clearTimeout(inputTimer);
|
|
28231
28411
|
});
|
|
28232
28412
|
|
|
28233
28413
|
// expose public methods
|
|
@@ -28487,7 +28667,7 @@
|
|
|
28487
28667
|
|
|
28488
28668
|
const contentRef = vue.ref(null);
|
|
28489
28669
|
|
|
28490
|
-
let timer, pan = {}, dirRefs = {}, dirContentRefs = {};
|
|
28670
|
+
let timer = null, pan = {}, dirRefs = {}, dirContentRefs = {};
|
|
28491
28671
|
|
|
28492
28672
|
const langDir = vue.computed(() => (
|
|
28493
28673
|
$q.lang.rtl === true
|
|
@@ -28538,7 +28718,9 @@
|
|
|
28538
28718
|
if (pan.scale === 1) {
|
|
28539
28719
|
node.style.transform = `translate${ pan.axis }(${ pan.dir * 100 }%)`;
|
|
28540
28720
|
|
|
28721
|
+
timer !== null && clearTimeout(timer);
|
|
28541
28722
|
timer = setTimeout(() => {
|
|
28723
|
+
timer = null;
|
|
28542
28724
|
emit(pan.showing, { reset });
|
|
28543
28725
|
emit('action', { side: pan.showing, reset });
|
|
28544
28726
|
}, 230);
|
|
@@ -28609,7 +28791,7 @@
|
|
|
28609
28791
|
});
|
|
28610
28792
|
|
|
28611
28793
|
vue.onBeforeUnmount(() => {
|
|
28612
|
-
clearTimeout(timer);
|
|
28794
|
+
timer !== null && clearTimeout(timer);
|
|
28613
28795
|
});
|
|
28614
28796
|
|
|
28615
28797
|
// expose public methods
|
|
@@ -36971,12 +37153,11 @@
|
|
|
36971
37153
|
: (
|
|
36972
37154
|
options.waitFor === 'transitionend'
|
|
36973
37155
|
? new Promise(resolve => {
|
|
36974
|
-
const
|
|
36975
|
-
|
|
36976
|
-
|
|
36977
|
-
|
|
36978
|
-
|
|
36979
|
-
clearTimeout(timer);
|
|
37156
|
+
const endFn = () => {
|
|
37157
|
+
if (timer !== null) {
|
|
37158
|
+
clearTimeout(timer);
|
|
37159
|
+
timer = null;
|
|
37160
|
+
}
|
|
36980
37161
|
|
|
36981
37162
|
if (elTo) {
|
|
36982
37163
|
elTo.removeEventListener('transitionend', endFn);
|
|
@@ -36986,6 +37167,8 @@
|
|
|
36986
37167
|
resolve();
|
|
36987
37168
|
};
|
|
36988
37169
|
|
|
37170
|
+
let timer = setTimeout(endFn, 400);
|
|
37171
|
+
|
|
36989
37172
|
elTo.addEventListener('transitionend', endFn);
|
|
36990
37173
|
elTo.addEventListener('transitioncancel', endFn);
|
|
36991
37174
|
})
|
|
@@ -37454,6 +37637,7 @@
|
|
|
37454
37637
|
: ctx.touchSensitivity;
|
|
37455
37638
|
|
|
37456
37639
|
ctx.timer = setTimeout(() => {
|
|
37640
|
+
ctx.timer = void 0;
|
|
37457
37641
|
clearSelection();
|
|
37458
37642
|
ctx.triggered = true;
|
|
37459
37643
|
|
|
@@ -37470,10 +37654,13 @@
|
|
|
37470
37654
|
move (evt) {
|
|
37471
37655
|
const { top, left } = position(evt);
|
|
37472
37656
|
if (
|
|
37473
|
-
|
|
37474
|
-
|
|
37657
|
+
ctx.timer !== void 0 && (
|
|
37658
|
+
Math.abs(left - ctx.origin.left) >= ctx.sensitivity
|
|
37659
|
+
|| Math.abs(top - ctx.origin.top) >= ctx.sensitivity
|
|
37660
|
+
)
|
|
37475
37661
|
) {
|
|
37476
37662
|
clearTimeout(ctx.timer);
|
|
37663
|
+
ctx.timer = void 0;
|
|
37477
37664
|
}
|
|
37478
37665
|
},
|
|
37479
37666
|
|
|
@@ -37486,8 +37673,9 @@
|
|
|
37486
37673
|
if (ctx.triggered === true) {
|
|
37487
37674
|
evt !== void 0 && stopAndPrevent(evt);
|
|
37488
37675
|
}
|
|
37489
|
-
else {
|
|
37676
|
+
else if (ctx.timer !== void 0) {
|
|
37490
37677
|
clearTimeout(ctx.timer);
|
|
37678
|
+
ctx.timer = void 0;
|
|
37491
37679
|
}
|
|
37492
37680
|
}
|
|
37493
37681
|
};
|
|
@@ -37539,7 +37727,7 @@
|
|
|
37539
37727
|
cleanEvt(ctx, 'main');
|
|
37540
37728
|
cleanEvt(ctx, 'temp');
|
|
37541
37729
|
|
|
37542
|
-
clearTimeout(ctx.timer);
|
|
37730
|
+
ctx.timer !== void 0 && clearTimeout(ctx.timer);
|
|
37543
37731
|
ctx.styleCleanup !== void 0 && ctx.styleCleanup();
|
|
37544
37732
|
|
|
37545
37733
|
delete el.__qtouchhold;
|
|
@@ -37678,6 +37866,8 @@
|
|
|
37678
37866
|
};
|
|
37679
37867
|
|
|
37680
37868
|
const fn = () => {
|
|
37869
|
+
ctx.timer = void 0;
|
|
37870
|
+
|
|
37681
37871
|
if (ctx.event === void 0) {
|
|
37682
37872
|
return
|
|
37683
37873
|
}
|
|
@@ -37721,8 +37911,9 @@
|
|
|
37721
37911
|
},
|
|
37722
37912
|
|
|
37723
37913
|
move (evt) {
|
|
37724
|
-
if (ctx.event !== void 0 && shouldEnd(evt, ctx.origin) === true) {
|
|
37914
|
+
if (ctx.event !== void 0 && ctx.timer !== void 0 && shouldEnd(evt, ctx.origin) === true) {
|
|
37725
37915
|
clearTimeout(ctx.timer);
|
|
37916
|
+
ctx.timer = void 0;
|
|
37726
37917
|
}
|
|
37727
37918
|
},
|
|
37728
37919
|
|
|
@@ -37735,7 +37926,11 @@
|
|
|
37735
37926
|
evt !== void 0 && ctx.event.repeatCount > 0 && stopAndPrevent(evt);
|
|
37736
37927
|
|
|
37737
37928
|
cleanEvt(ctx, 'temp');
|
|
37738
|
-
|
|
37929
|
+
|
|
37930
|
+
if (ctx.timer !== void 0) {
|
|
37931
|
+
clearTimeout(ctx.timer);
|
|
37932
|
+
ctx.timer = void 0;
|
|
37933
|
+
}
|
|
37739
37934
|
|
|
37740
37935
|
ctx.event = void 0;
|
|
37741
37936
|
}
|
|
@@ -37784,7 +37979,7 @@
|
|
|
37784
37979
|
const ctx = el.__qtouchrepeat;
|
|
37785
37980
|
|
|
37786
37981
|
if (ctx !== void 0) {
|
|
37787
|
-
clearTimeout(ctx.timer);
|
|
37982
|
+
ctx.timer !== void 0 && clearTimeout(ctx.timer);
|
|
37788
37983
|
|
|
37789
37984
|
cleanEvt(ctx, 'main');
|
|
37790
37985
|
cleanEvt(ctx, 'temp');
|
|
@@ -38248,7 +38443,7 @@
|
|
|
38248
38443
|
|
|
38249
38444
|
let vm, emittedOK = false;
|
|
38250
38445
|
const dialogRef = vue.ref(null);
|
|
38251
|
-
const el = createGlobalNode();
|
|
38446
|
+
const el = createGlobalNode(false, 'dialog');
|
|
38252
38447
|
|
|
38253
38448
|
const applyState = cmd => {
|
|
38254
38449
|
if (dialogRef.value !== null && dialogRef.value[ cmd ] !== void 0) {
|
|
@@ -38948,7 +39143,7 @@
|
|
|
38948
39143
|
app,
|
|
38949
39144
|
vm,
|
|
38950
39145
|
uid$1 = 0,
|
|
38951
|
-
timeout,
|
|
39146
|
+
timeout = null,
|
|
38952
39147
|
props = {},
|
|
38953
39148
|
activeGroups = {};
|
|
38954
39149
|
|
|
@@ -38997,10 +39192,10 @@
|
|
|
38997
39192
|
}
|
|
38998
39193
|
else {
|
|
38999
39194
|
props.uid = ++uid$1;
|
|
39000
|
-
clearTimeout(timeout);
|
|
39195
|
+
timeout !== null && clearTimeout(timeout);
|
|
39001
39196
|
|
|
39002
39197
|
timeout = setTimeout(() => {
|
|
39003
|
-
timeout =
|
|
39198
|
+
timeout = null;
|
|
39004
39199
|
|
|
39005
39200
|
const el = createGlobalNode('q-loading');
|
|
39006
39201
|
|
|
@@ -39110,9 +39305,9 @@
|
|
|
39110
39305
|
}
|
|
39111
39306
|
}
|
|
39112
39307
|
|
|
39113
|
-
if (timeout !==
|
|
39308
|
+
if (timeout !== null) {
|
|
39114
39309
|
clearTimeout(timeout);
|
|
39115
|
-
timeout =
|
|
39310
|
+
timeout = null;
|
|
39116
39311
|
}
|
|
39117
39312
|
|
|
39118
39313
|
Plugin$2.isActive = false;
|
|
@@ -39134,7 +39329,7 @@
|
|
|
39134
39329
|
}
|
|
39135
39330
|
});
|
|
39136
39331
|
|
|
39137
|
-
let updateId, currentClientMeta;
|
|
39332
|
+
let updateId = null, currentClientMeta;
|
|
39138
39333
|
const clientList = [];
|
|
39139
39334
|
|
|
39140
39335
|
function normalize (meta) {
|
|
@@ -39268,6 +39463,8 @@
|
|
|
39268
39463
|
}
|
|
39269
39464
|
|
|
39270
39465
|
function updateClientMeta () {
|
|
39466
|
+
updateId = null;
|
|
39467
|
+
|
|
39271
39468
|
const data = {
|
|
39272
39469
|
title: '',
|
|
39273
39470
|
titleTemplate: null,
|
|
@@ -39293,7 +39490,7 @@
|
|
|
39293
39490
|
}
|
|
39294
39491
|
|
|
39295
39492
|
function planClientUpdate () {
|
|
39296
|
-
clearTimeout(updateId);
|
|
39493
|
+
updateId !== null && clearTimeout(updateId);
|
|
39297
39494
|
updateId = setTimeout(updateClientMeta, 50);
|
|
39298
39495
|
}
|
|
39299
39496
|
|
|
@@ -39520,7 +39717,10 @@
|
|
|
39520
39717
|
|
|
39521
39718
|
if (originalApi !== void 0) {
|
|
39522
39719
|
// reset timeout if any
|
|
39523
|
-
|
|
39720
|
+
if (originalApi.notif.meta.timer) {
|
|
39721
|
+
clearTimeout(originalApi.notif.meta.timer);
|
|
39722
|
+
originalApi.notif.meta.timer = void 0;
|
|
39723
|
+
}
|
|
39524
39724
|
|
|
39525
39725
|
// retain uid
|
|
39526
39726
|
notif.meta.uid = originalApi.notif.meta.uid;
|
|
@@ -39556,7 +39756,10 @@
|
|
|
39556
39756
|
// ok, so it's NOT a new one
|
|
39557
39757
|
else {
|
|
39558
39758
|
// reset timeout if any
|
|
39559
|
-
|
|
39759
|
+
if (original.meta.timer) {
|
|
39760
|
+
clearTimeout(original.meta.timer);
|
|
39761
|
+
original.meta.timer = void 0;
|
|
39762
|
+
}
|
|
39560
39763
|
|
|
39561
39764
|
if (notif.badgePosition !== void 0) {
|
|
39562
39765
|
if (badgePositions.includes(notif.badgePosition) === false) {
|
|
@@ -39586,6 +39789,7 @@
|
|
|
39586
39789
|
|
|
39587
39790
|
if (notif.timeout > 0) {
|
|
39588
39791
|
notif.meta.timer = setTimeout(() => {
|
|
39792
|
+
notif.meta.timer = void 0;
|
|
39589
39793
|
dismiss();
|
|
39590
39794
|
}, notif.timeout + /* show duration */ 1000);
|
|
39591
39795
|
}
|
|
@@ -39634,7 +39838,10 @@
|
|
|
39634
39838
|
}
|
|
39635
39839
|
|
|
39636
39840
|
function removeNotification (notif) {
|
|
39637
|
-
|
|
39841
|
+
if (notif.meta.timer) {
|
|
39842
|
+
clearTimeout(notif.meta.timer);
|
|
39843
|
+
notif.meta.timer = void 0;
|
|
39844
|
+
}
|
|
39638
39845
|
|
|
39639
39846
|
const index = notificationsList[ notif.position ].value.indexOf(notif);
|
|
39640
39847
|
if (index !== -1) {
|
|
@@ -40520,7 +40727,7 @@
|
|
|
40520
40727
|
*/
|
|
40521
40728
|
|
|
40522
40729
|
var index_umd = {
|
|
40523
|
-
version: '2.11.
|
|
40730
|
+
version: '2.11.4',
|
|
40524
40731
|
install (app, opts) {
|
|
40525
40732
|
installQuasar(app, {
|
|
40526
40733
|
components,
|