quasar 2.6.5 → 2.7.1
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/QBreadcrumbsEl.json +1 -1
- package/dist/api/QBtn.json +1 -1
- package/dist/api/QBtnDropdown.json +2 -1
- package/dist/api/QBtnToggle.json +1 -0
- package/dist/api/QCarousel.json +2 -1
- package/dist/api/QCheckbox.json +1 -0
- package/dist/api/QChip.json +3 -1
- package/dist/api/QColor.json +1 -0
- package/dist/api/QDate.json +1 -0
- package/dist/api/QEditor.json +3 -1
- package/dist/api/QExpansionItem.json +2 -1
- package/dist/api/QFab.json +1 -0
- package/dist/api/QFile.json +1 -0
- package/dist/api/QFooter.json +1 -0
- package/dist/api/QHeader.json +1 -0
- package/dist/api/QImg.json +23 -0
- package/dist/api/QInput.json +1 -0
- package/dist/api/QItem.json +4 -2
- package/dist/api/QKnob.json +1 -0
- package/dist/api/QOptionGroup.json +1 -0
- package/dist/api/QPagination.json +1 -0
- package/dist/api/QPopupEdit.json +1 -0
- package/dist/api/QPopupProxy.json +1 -0
- package/dist/api/QRadio.json +1 -0
- package/dist/api/QRange.json +1 -0
- package/dist/api/QRating.json +1 -0
- package/dist/api/QRouteTab.json +1 -1
- package/dist/api/QSelect.json +1 -0
- package/dist/api/QSlider.json +1 -0
- package/dist/api/QSplitter.json +1 -0
- package/dist/api/QTable.json +5 -1
- package/dist/api/QTabs.json +1 -0
- package/dist/api/QTime.json +1 -0
- package/dist/api/QToggle.json +1 -0
- package/dist/api/QTree.json +6 -3
- package/dist/api/QVideo.json +43 -0
- 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 +6 -0
- package/dist/icon-set/material-symbols-rounded.umd.prod.js +6 -0
- package/dist/icon-set/material-symbols-sharp.umd.prod.js +6 -0
- 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-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 +6 -0
- package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +6 -0
- package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +6 -0
- 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-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 +2 -2
- 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/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/kz.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 +6 -0
- 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.addon.rtl.css +251 -0
- package/dist/quasar.cjs.prod.js +2 -2
- package/dist/quasar.css +11 -10
- package/dist/quasar.esm.prod.js +2 -2
- package/dist/quasar.prod.css +1 -1
- package/dist/quasar.rtl.css +1237 -16
- package/dist/quasar.rtl.prod.css +1 -1
- package/dist/quasar.sass +11 -10
- package/dist/quasar.umd.js +223 -135
- package/dist/quasar.umd.prod.js +2 -2
- package/dist/types/api/quploader.d.ts +7 -7
- package/dist/types/api/validation.d.ts +1 -1
- package/dist/types/extras/icon-set.d.ts +6 -0
- package/dist/types/index.d.ts +298 -255
- package/dist/types/utils/dom.d.ts +1 -1
- package/dist/types/utils.d.ts +11 -0
- package/dist/vetur/quasar-attributes.json +16 -0
- package/dist/vetur/quasar-tags.json +5 -1
- package/dist/web-types/web-types.json +48 -8
- package/icon-set/material-symbols-outlined.js +133 -0
- package/icon-set/material-symbols-outlined.mjs +128 -0
- package/icon-set/material-symbols-rounded.js +133 -0
- package/icon-set/material-symbols-rounded.mjs +128 -0
- package/icon-set/material-symbols-sharp.js +133 -0
- package/icon-set/material-symbols-sharp.mjs +128 -0
- package/icon-set/svg-material-symbols-outlined.js +201 -0
- package/icon-set/svg-material-symbols-outlined.mjs +201 -0
- package/icon-set/svg-material-symbols-rounded.js +201 -0
- package/icon-set/svg-material-symbols-rounded.mjs +201 -0
- package/icon-set/svg-material-symbols-sharp.js +201 -0
- package/icon-set/svg-material-symbols-sharp.mjs +201 -0
- package/lang/es.js +1 -1
- package/lang/es.mjs +1 -1
- package/lang/index.json +4 -0
- package/lang/mm.js +96 -0
- package/lang/mm.mjs +91 -0
- package/package.json +9 -11
- package/src/api.extends.json +1 -0
- package/src/components/avatar/__tests__/QAvatar.spec.js +1 -1
- package/src/components/badge/QBadge.js +2 -2
- package/src/components/badge/__tests__/QBadge.spec.js +1 -1
- package/src/components/btn/QBtn.js +2 -2
- package/src/components/btn/use-btn.json +1 -1
- package/src/components/checkbox/use-checkbox.js +8 -7
- package/src/components/dialog/QDialog.js +4 -4
- package/src/components/dialog/QDialog.sass +2 -2
- package/src/components/editor/QEditor.js +21 -29
- package/src/components/icon/QIcon.js +25 -2
- package/src/components/icon/QIcon.sass +4 -1
- package/src/components/img/QImg.js +5 -0
- package/src/components/img/QImg.json +19 -1
- package/src/components/infinite-scroll/QInfiniteScroll.js +10 -10
- package/src/components/input/QInput.js +6 -1
- package/src/components/item/QItem.js +5 -2
- package/src/components/item/QItem.json +2 -1
- package/src/components/layout/QLayout.js +2 -1
- package/src/components/menu/QMenu.js +2 -1
- package/src/components/radio/QRadio.js +2 -2
- package/src/components/select/QSelect.js +2 -2
- package/src/components/slider/use-slider.js +1 -1
- package/src/components/table/QTable.js +1 -1
- package/src/components/table/QTable.json +3 -0
- package/src/components/tabs/QTabs.sass +0 -6
- package/src/components/tooltip/QTooltip.js +2 -1
- package/src/components/tree/QTree.sass +1 -1
- package/src/components/uploader/uploader-core.js +22 -18
- package/src/components/video/QVideo.js +17 -1
- package/src/components/video/QVideo.json +36 -0
- package/src/components/virtual-scroll/QVirtualScroll.sass +4 -1
- package/src/components/virtual-scroll/use-virtual-scroll.js +21 -23
- package/src/composables/private/__tests__/use-model-toggle.spec.js +2 -2
- package/src/composables/private/__tests__/use-size.spec.js +2 -2
- package/src/composables/private/__tests__/use-validate.spec.js +1 -1
- package/src/composables/private/use-field.js +1 -0
- package/src/composables/private/use-key-composition.js +15 -8
- package/src/composables/private/use-portal.js +15 -2
- package/src/composables/private/use-router-link.json +1 -1
- package/src/history.js +2 -2
- package/src/utils/copy-to-clipboard.js +1 -1
- package/src/utils/patterns.js +8 -0
- package/src/utils/private/date-persian.js +0 -9
- package/src/utils/private/global-dialog.js +22 -10
- package/src/utils/private/position-engine.js +0 -5
- package/src/utils/private/sort.js +0 -11
- package/src/utils/private/web-storage.js +1 -1
- package/src/utils/uid.js +1 -1
package/dist/quasar.umd.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Quasar Framework v2.
|
|
2
|
+
* Quasar Framework v2.7.1
|
|
3
3
|
* (c) 2015-present Razvan Stoenescu
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -837,9 +837,9 @@
|
|
|
837
837
|
}
|
|
838
838
|
|
|
839
839
|
function normalizeExitPath (path) {
|
|
840
|
-
path.startsWith('#') === true && (path = path.
|
|
840
|
+
path.startsWith('#') === true && (path = path.substring(1));
|
|
841
841
|
path.startsWith('/') === false && (path = '/' + path);
|
|
842
|
-
path.endsWith('/') === true && (path = path.
|
|
842
|
+
path.endsWith('/') === true && (path = path.substring(0, path.length - 1));
|
|
843
843
|
return '#' + path
|
|
844
844
|
}
|
|
845
845
|
|
|
@@ -1603,7 +1603,7 @@
|
|
|
1603
1603
|
}
|
|
1604
1604
|
|
|
1605
1605
|
var installQuasar = function (parentApp, opts = {}) {
|
|
1606
|
-
const $q = { version: '2.
|
|
1606
|
+
const $q = { version: '2.7.1' };
|
|
1607
1607
|
|
|
1608
1608
|
if (globalConfigIsFrozen === false) {
|
|
1609
1609
|
if (opts.config !== void 0) {
|
|
@@ -2059,8 +2059,15 @@
|
|
|
2059
2059
|
s_: '-sharp'
|
|
2060
2060
|
};
|
|
2061
2061
|
|
|
2062
|
+
const symMap = {
|
|
2063
|
+
sym_o_: '-outlined',
|
|
2064
|
+
sym_r_: '-rounded',
|
|
2065
|
+
sym_s_: '-sharp'
|
|
2066
|
+
};
|
|
2067
|
+
|
|
2062
2068
|
const libRE = new RegExp('^(' + Object.keys(libMap).join('|') + ')');
|
|
2063
2069
|
const matRE = new RegExp('^(' + Object.keys(matMap).join('|') + ')');
|
|
2070
|
+
const symRE = new RegExp('^(' + Object.keys(symMap).join('|') + ')');
|
|
2064
2071
|
const mRE = /^[Mm]\s?[-+]?\.?\d/;
|
|
2065
2072
|
const imgRE = /^img:/;
|
|
2066
2073
|
const svgUseRE = /^svguse:/;
|
|
@@ -2163,7 +2170,23 @@
|
|
|
2163
2170
|
cls = icon;
|
|
2164
2171
|
}
|
|
2165
2172
|
else if (ionRE.test(icon) === true) {
|
|
2166
|
-
cls = `ionicons ion-${ $q.platform.is.ios === true ? 'ios' : 'md' }${ icon.
|
|
2173
|
+
cls = `ionicons ion-${ $q.platform.is.ios === true ? 'ios' : 'md' }${ icon.substring(3) }`;
|
|
2174
|
+
}
|
|
2175
|
+
else if (symRE.test(icon) === true) {
|
|
2176
|
+
// "notranslate" class is for Google Translate
|
|
2177
|
+
// to avoid tampering with Material Symbols ligature font
|
|
2178
|
+
//
|
|
2179
|
+
// Caution: To be able to add suffix to the class name,
|
|
2180
|
+
// keep the 'material-symbols' at the end of the string.
|
|
2181
|
+
cls = 'notranslate material-symbols';
|
|
2182
|
+
|
|
2183
|
+
const matches = icon.match(symRE);
|
|
2184
|
+
if (matches !== null) {
|
|
2185
|
+
icon = icon.substring(6);
|
|
2186
|
+
cls += symMap[ matches[ 1 ] ];
|
|
2187
|
+
}
|
|
2188
|
+
|
|
2189
|
+
content = icon;
|
|
2167
2190
|
}
|
|
2168
2191
|
else {
|
|
2169
2192
|
// "notranslate" class is for Google Translate
|
|
@@ -2209,7 +2232,7 @@
|
|
|
2209
2232
|
if (type.value.svg === true) {
|
|
2210
2233
|
return vue.h('span', data, hMergeSlot(slots.default, [
|
|
2211
2234
|
vue.h('svg', {
|
|
2212
|
-
viewBox: type.value.viewBox
|
|
2235
|
+
viewBox: type.value.viewBox || '0 0 24 24'
|
|
2213
2236
|
}, type.value.nodes)
|
|
2214
2237
|
]))
|
|
2215
2238
|
}
|
|
@@ -2341,7 +2364,7 @@
|
|
|
2341
2364
|
style: style.value,
|
|
2342
2365
|
role: 'alert',
|
|
2343
2366
|
'aria-label': props.label
|
|
2344
|
-
}, props.label !== void 0 ? props.label :
|
|
2367
|
+
}, hMergeSlot(slots.default, props.label !== void 0 ? [ props.label ] : []))
|
|
2345
2368
|
}
|
|
2346
2369
|
});
|
|
2347
2370
|
|
|
@@ -3740,10 +3763,10 @@
|
|
|
3740
3763
|
if (props.loading === true && props.percentage !== void 0) {
|
|
3741
3764
|
child.push(
|
|
3742
3765
|
vue.h('span', {
|
|
3743
|
-
class: 'q-btn__progress absolute-full overflow-hidden'
|
|
3766
|
+
class: 'q-btn__progress absolute-full overflow-hidden' + (props.darkPercentage === true ? ' q-btn__progress--dark' : '')
|
|
3744
3767
|
}, [
|
|
3745
3768
|
vue.h('span', {
|
|
3746
|
-
class: 'q-btn__progress-indicator fit block'
|
|
3769
|
+
class: 'q-btn__progress-indicator fit block',
|
|
3747
3770
|
style: percentageStyle.value
|
|
3748
3771
|
})
|
|
3749
3772
|
])
|
|
@@ -4386,8 +4409,12 @@
|
|
|
4386
4409
|
// You MUST specify "inheritAttrs: false" in your component
|
|
4387
4410
|
|
|
4388
4411
|
function usePortal (vm, innerRef, renderPortalContent, checkGlobalDialog) {
|
|
4412
|
+
// showing, including while in show/hide transition
|
|
4389
4413
|
const portalIsActive = vue.ref(false);
|
|
4390
4414
|
|
|
4415
|
+
// showing & not in any show/hide transition
|
|
4416
|
+
const portalIsAccessible = vue.ref(false);
|
|
4417
|
+
|
|
4391
4418
|
let portalEl = null;
|
|
4392
4419
|
const focusObj = {};
|
|
4393
4420
|
const onGlobalDialog = checkGlobalDialog === true && isOnGlobalDialog(vm);
|
|
@@ -4395,9 +4422,12 @@
|
|
|
4395
4422
|
function showPortal (isReady) {
|
|
4396
4423
|
if (isReady === true) {
|
|
4397
4424
|
removeFocusWaitFlag(focusObj);
|
|
4425
|
+
portalIsAccessible.value = true;
|
|
4398
4426
|
return
|
|
4399
4427
|
}
|
|
4400
4428
|
|
|
4429
|
+
portalIsAccessible.value = false;
|
|
4430
|
+
|
|
4401
4431
|
if (portalIsActive.value === false) {
|
|
4402
4432
|
if (onGlobalDialog === false && portalEl === null) {
|
|
4403
4433
|
portalEl = createGlobalNode();
|
|
@@ -4412,7 +4442,11 @@
|
|
|
4412
4442
|
}
|
|
4413
4443
|
}
|
|
4414
4444
|
|
|
4415
|
-
function hidePortal () {
|
|
4445
|
+
function hidePortal (isReady) {
|
|
4446
|
+
portalIsAccessible.value = false;
|
|
4447
|
+
|
|
4448
|
+
if (isReady !== true) { return }
|
|
4449
|
+
|
|
4416
4450
|
removeFocusWaitFlag(focusObj);
|
|
4417
4451
|
portalIsActive.value = false;
|
|
4418
4452
|
|
|
@@ -4428,7 +4462,7 @@
|
|
|
4428
4462
|
}
|
|
4429
4463
|
}
|
|
4430
4464
|
|
|
4431
|
-
vue.onUnmounted(hidePortal);
|
|
4465
|
+
vue.onUnmounted(() => { hidePortal(true); });
|
|
4432
4466
|
|
|
4433
4467
|
// expose publicly needed stuff for portal utils
|
|
4434
4468
|
Object.assign(vm.proxy, { __qPortalInnerRef: innerRef });
|
|
@@ -4438,6 +4472,7 @@
|
|
|
4438
4472
|
hidePortal,
|
|
4439
4473
|
|
|
4440
4474
|
portalIsActive,
|
|
4475
|
+
portalIsAccessible,
|
|
4441
4476
|
|
|
4442
4477
|
renderPortal: () => (
|
|
4443
4478
|
onGlobalDialog === true
|
|
@@ -5352,6 +5387,7 @@
|
|
|
5352
5387
|
function handleHide (evt) {
|
|
5353
5388
|
removeTick();
|
|
5354
5389
|
removeTimeout();
|
|
5390
|
+
hidePortal();
|
|
5355
5391
|
|
|
5356
5392
|
anchorCleanup(true);
|
|
5357
5393
|
|
|
@@ -5369,7 +5405,7 @@
|
|
|
5369
5405
|
}
|
|
5370
5406
|
|
|
5371
5407
|
registerTimeout(() => {
|
|
5372
|
-
hidePortal();
|
|
5408
|
+
hidePortal(true); // done hiding, now destroy
|
|
5373
5409
|
emit('hide', evt);
|
|
5374
5410
|
}, props.transitionDuration);
|
|
5375
5411
|
}
|
|
@@ -7236,22 +7272,23 @@
|
|
|
7236
7272
|
props.val !== void 0 && Array.isArray(props.modelValue)
|
|
7237
7273
|
);
|
|
7238
7274
|
|
|
7239
|
-
const index = vue.computed(() =>
|
|
7240
|
-
|
|
7241
|
-
|
|
7275
|
+
const index = vue.computed(() => {
|
|
7276
|
+
const val = vue.toRaw(props.val);
|
|
7277
|
+
return modelIsArray.value === true
|
|
7278
|
+
? props.modelValue.findIndex(opt => vue.toRaw(opt) === val)
|
|
7242
7279
|
: -1
|
|
7243
|
-
)
|
|
7280
|
+
});
|
|
7244
7281
|
|
|
7245
7282
|
const isTrue = vue.computed(() => (
|
|
7246
7283
|
modelIsArray.value === true
|
|
7247
7284
|
? index.value > -1
|
|
7248
|
-
: props.modelValue === props.trueValue
|
|
7285
|
+
: vue.toRaw(props.modelValue) === vue.toRaw(props.trueValue)
|
|
7249
7286
|
));
|
|
7250
7287
|
|
|
7251
7288
|
const isFalse = vue.computed(() => (
|
|
7252
7289
|
modelIsArray.value === true
|
|
7253
7290
|
? index.value === -1
|
|
7254
|
-
: props.modelValue === props.falseValue
|
|
7291
|
+
: vue.toRaw(props.modelValue) === vue.toRaw(props.falseValue)
|
|
7255
7292
|
));
|
|
7256
7293
|
|
|
7257
7294
|
const isIndeterminate = vue.computed(() =>
|
|
@@ -8368,7 +8405,7 @@
|
|
|
8368
8405
|
&& innerMin.value < innerMax.value
|
|
8369
8406
|
));
|
|
8370
8407
|
|
|
8371
|
-
const decimals = vue.computed(() => (String(props.step).trim(
|
|
8408
|
+
const decimals = vue.computed(() => (String(props.step).trim().split('.')[ 1 ] || '').length);
|
|
8372
8409
|
const step = vue.computed(() => (props.step === 0 ? 1 : props.step));
|
|
8373
8410
|
const tabindex = vue.computed(() => (editable.value === true ? props.tabindex || 0 : -1));
|
|
8374
8411
|
|
|
@@ -10126,6 +10163,14 @@
|
|
|
10126
10163
|
fulltime: v => /^([0-1]?\d|2[0-3]):[0-5]\d:[0-5]\d$/.test(v),
|
|
10127
10164
|
timeOrFulltime: v => /^([0-1]?\d|2[0-3]):[0-5]\d(:[0-5]\d)?$/.test(v),
|
|
10128
10165
|
|
|
10166
|
+
// -- RFC 5322 --
|
|
10167
|
+
// -- Added in v2.6.6 --
|
|
10168
|
+
// This is a basic helper validation.
|
|
10169
|
+
// For something more complex (like RFC 822) you should write and use your own rule.
|
|
10170
|
+
// We won't be accepting PRs to enhance the one below because of the reason above.
|
|
10171
|
+
// eslint-disable-next-line
|
|
10172
|
+
email: v => /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(v),
|
|
10173
|
+
|
|
10129
10174
|
hexColor: v => hex.test(v),
|
|
10130
10175
|
hexaColor: v => hexa.test(v),
|
|
10131
10176
|
hexOrHexaColor: v => hexOrHexa.test(v),
|
|
@@ -14398,7 +14443,7 @@
|
|
|
14398
14443
|
const { registerTimeout, removeTimeout } = useTimeout();
|
|
14399
14444
|
const { registerTick, removeTick } = useTick();
|
|
14400
14445
|
|
|
14401
|
-
const { showPortal, hidePortal,
|
|
14446
|
+
const { showPortal, hidePortal, portalIsAccessible, renderPortal } = usePortal(
|
|
14402
14447
|
vm, innerRef, renderPortalContent, /* pls do check if on a global dialog */ true
|
|
14403
14448
|
);
|
|
14404
14449
|
|
|
@@ -14537,6 +14582,7 @@
|
|
|
14537
14582
|
removeFromHistory();
|
|
14538
14583
|
cleanup(true);
|
|
14539
14584
|
animating.value = true;
|
|
14585
|
+
hidePortal();
|
|
14540
14586
|
|
|
14541
14587
|
if (refocusTarget !== null) {
|
|
14542
14588
|
refocusTarget.focus();
|
|
@@ -14544,7 +14590,7 @@
|
|
|
14544
14590
|
}
|
|
14545
14591
|
|
|
14546
14592
|
registerTimeout(() => {
|
|
14547
|
-
hidePortal();
|
|
14593
|
+
hidePortal(true); // done hiding, now destroy
|
|
14548
14594
|
animating.value = false;
|
|
14549
14595
|
emit('hide', evt);
|
|
14550
14596
|
}, props.transitionDuration);
|
|
@@ -14652,8 +14698,7 @@
|
|
|
14652
14698
|
function onFocusChange (evt) {
|
|
14653
14699
|
// the focus is not in a vue child component
|
|
14654
14700
|
if (
|
|
14655
|
-
|
|
14656
|
-
&& portalIsActive.value === true
|
|
14701
|
+
portalIsAccessible.value === true
|
|
14657
14702
|
&& childHasFocus(innerRef.value, evt.target) !== true
|
|
14658
14703
|
) {
|
|
14659
14704
|
focus('[tabindex]:not([tabindex="-1"])');
|
|
@@ -15918,11 +15963,12 @@
|
|
|
15918
15963
|
function handleHide (evt) {
|
|
15919
15964
|
removeTick();
|
|
15920
15965
|
removeTimeout();
|
|
15966
|
+
hidePortal();
|
|
15921
15967
|
|
|
15922
15968
|
anchorCleanup();
|
|
15923
15969
|
|
|
15924
15970
|
registerTimeout(() => {
|
|
15925
|
-
hidePortal();
|
|
15971
|
+
hidePortal(true); // done hiding, now destroy
|
|
15926
15972
|
emit('hide', evt);
|
|
15927
15973
|
}, props.transitionDuration);
|
|
15928
15974
|
}
|
|
@@ -16066,7 +16112,10 @@
|
|
|
16066
16112
|
default: 'div'
|
|
16067
16113
|
},
|
|
16068
16114
|
|
|
16069
|
-
active:
|
|
16115
|
+
active: {
|
|
16116
|
+
type: Boolean,
|
|
16117
|
+
default: null
|
|
16118
|
+
},
|
|
16070
16119
|
|
|
16071
16120
|
clickable: Boolean,
|
|
16072
16121
|
dense: Boolean,
|
|
@@ -16104,7 +16153,7 @@
|
|
|
16104
16153
|
+ (props.dense === true ? ' q-item--dense' : '')
|
|
16105
16154
|
+ (isDark.value === true ? ' q-item--dark' : '')
|
|
16106
16155
|
+ (
|
|
16107
|
-
hasLink.value === true
|
|
16156
|
+
hasLink.value === true && props.active === null
|
|
16108
16157
|
? linkClass.value
|
|
16109
16158
|
: (
|
|
16110
16159
|
props.active === true
|
|
@@ -16975,11 +17024,14 @@
|
|
|
16975
17024
|
}
|
|
16976
17025
|
|
|
16977
17026
|
function onFocusin (e) {
|
|
17027
|
+
const root = rootRef.value;
|
|
17028
|
+
|
|
16978
17029
|
if (
|
|
16979
|
-
|
|
17030
|
+
root !== null
|
|
17031
|
+
&& root.contains(e.target) === true
|
|
16980
17032
|
&& (
|
|
16981
17033
|
e.relatedTarget === null
|
|
16982
|
-
||
|
|
17034
|
+
|| root.contains(e.relatedTarget) !== true
|
|
16983
17035
|
)
|
|
16984
17036
|
) {
|
|
16985
17037
|
const prop = `inner${ isViewingSource.value === true ? 'Text' : 'HTML' }`;
|
|
@@ -16989,11 +17041,14 @@
|
|
|
16989
17041
|
}
|
|
16990
17042
|
|
|
16991
17043
|
function onFocusout (e) {
|
|
17044
|
+
const root = rootRef.value;
|
|
17045
|
+
|
|
16992
17046
|
if (
|
|
16993
|
-
|
|
17047
|
+
root !== null
|
|
17048
|
+
&& root.contains(e.target) === true
|
|
16994
17049
|
&& (
|
|
16995
17050
|
e.relatedTarget === null
|
|
16996
|
-
||
|
|
17051
|
+
|| root.contains(e.relatedTarget) !== true
|
|
16997
17052
|
)
|
|
16998
17053
|
) {
|
|
16999
17054
|
eVm.caret.savePosition();
|
|
@@ -17001,27 +17056,12 @@
|
|
|
17001
17056
|
}
|
|
17002
17057
|
}
|
|
17003
17058
|
|
|
17004
|
-
function
|
|
17005
|
-
offsetBottom = void 0;
|
|
17006
|
-
}
|
|
17007
|
-
|
|
17008
|
-
function onMouseup (e) {
|
|
17009
|
-
eVm.caret.save();
|
|
17010
|
-
emit('mouseup', e);
|
|
17011
|
-
}
|
|
17012
|
-
|
|
17013
|
-
function onTouchstartPassive () {
|
|
17059
|
+
function onPointerStart () {
|
|
17014
17060
|
offsetBottom = void 0;
|
|
17015
17061
|
}
|
|
17016
17062
|
|
|
17017
|
-
function
|
|
17018
|
-
eVm.caret.save();
|
|
17019
|
-
emit('keyup', e);
|
|
17020
|
-
}
|
|
17021
|
-
|
|
17022
|
-
function onTouchend (e) {
|
|
17063
|
+
function onSelectionchange (e) {
|
|
17023
17064
|
eVm.caret.save();
|
|
17024
|
-
emit('touchend', e);
|
|
17025
17065
|
}
|
|
17026
17066
|
|
|
17027
17067
|
function setContent (v, restorePosition) {
|
|
@@ -17078,6 +17118,12 @@
|
|
|
17078
17118
|
eVm.caret = proxy.caret = new Caret(contentRef.value, eVm);
|
|
17079
17119
|
setContent(props.modelValue);
|
|
17080
17120
|
refreshToolbar();
|
|
17121
|
+
|
|
17122
|
+
document.addEventListener('selectionchange', onSelectionchange);
|
|
17123
|
+
});
|
|
17124
|
+
|
|
17125
|
+
vue.onBeforeUnmount(() => {
|
|
17126
|
+
document.removeEventListener('selectionchange', onSelectionchange);
|
|
17081
17127
|
});
|
|
17082
17128
|
|
|
17083
17129
|
return () => {
|
|
@@ -17131,13 +17177,8 @@
|
|
|
17131
17177
|
onFocus,
|
|
17132
17178
|
|
|
17133
17179
|
// clean saved scroll position
|
|
17134
|
-
onMousedown,
|
|
17135
|
-
onTouchstartPassive
|
|
17136
|
-
|
|
17137
|
-
// save caret
|
|
17138
|
-
onMouseup,
|
|
17139
|
-
onKeyup,
|
|
17140
|
-
onTouchend
|
|
17180
|
+
onMousedown: onPointerStart,
|
|
17181
|
+
onTouchstartPassive: onPointerStart
|
|
17141
17182
|
})
|
|
17142
17183
|
])
|
|
17143
17184
|
}
|
|
@@ -17387,7 +17428,7 @@
|
|
|
17387
17428
|
|
|
17388
17429
|
// Pre-calculate toString(16) for speed
|
|
17389
17430
|
for (let i = 0; i < 256; i++) {
|
|
17390
|
-
hexBytes[ i ] = (i + 0x100).toString(16).
|
|
17431
|
+
hexBytes[ i ] = (i + 0x100).toString(16).substring(1);
|
|
17391
17432
|
}
|
|
17392
17433
|
|
|
17393
17434
|
// Use best available PRNG
|
|
@@ -18178,7 +18219,7 @@
|
|
|
18178
18219
|
function fallback (text) {
|
|
18179
18220
|
const area = document.createElement('textarea');
|
|
18180
18221
|
area.value = text;
|
|
18181
|
-
area.contentEditable = true;
|
|
18222
|
+
area.contentEditable = 'true';
|
|
18182
18223
|
area.style.position = 'fixed'; // avoid scrolling to bottom
|
|
18183
18224
|
|
|
18184
18225
|
document.body.appendChild(area);
|
|
@@ -18981,28 +19022,32 @@
|
|
|
18981
19022
|
|
|
18982
19023
|
return [
|
|
18983
19024
|
vue.h('div', {
|
|
18984
|
-
class: 'q-uploader__header-content
|
|
19025
|
+
class: 'q-uploader__header-content column'
|
|
18985
19026
|
}, [
|
|
18986
|
-
|
|
18987
|
-
|
|
18988
|
-
|
|
18989
|
-
|
|
18990
|
-
|
|
18991
|
-
: null,
|
|
19027
|
+
vue.h('div', {
|
|
19028
|
+
class: 'flex flex-center no-wrap q-gutter-xs'
|
|
19029
|
+
}, [
|
|
19030
|
+
getBtn(state.queuedFiles.value.length > 0, 'removeQueue', removeQueuedFiles),
|
|
19031
|
+
getBtn(state.uploadedFiles.value.length > 0, 'removeUploaded', removeUploadedFiles),
|
|
18992
19032
|
|
|
18993
|
-
|
|
18994
|
-
|
|
18995
|
-
? vue.h('div', { class: 'q-uploader__title' }, [ props.label ])
|
|
19033
|
+
state.isUploading.value === true
|
|
19034
|
+
? vue.h(QSpinner, { class: 'q-uploader__spinner' })
|
|
18996
19035
|
: null,
|
|
18997
19036
|
|
|
18998
|
-
vue.h('div', { class: '
|
|
18999
|
-
|
|
19000
|
-
|
|
19001
|
-
|
|
19037
|
+
vue.h('div', { class: 'col column justify-center' }, [
|
|
19038
|
+
props.label !== void 0
|
|
19039
|
+
? vue.h('div', { class: 'q-uploader__title' }, [ props.label ])
|
|
19040
|
+
: null,
|
|
19041
|
+
|
|
19042
|
+
vue.h('div', { class: 'q-uploader__subtitle' }, [
|
|
19043
|
+
uploadSizeLabel.value + ' / ' + uploadProgressLabel.value
|
|
19044
|
+
])
|
|
19045
|
+
]),
|
|
19002
19046
|
|
|
19003
|
-
|
|
19004
|
-
|
|
19005
|
-
|
|
19047
|
+
getBtn(canAddFiles.value, 'add'),
|
|
19048
|
+
getBtn(props.hideUploadBtn === false && canUpload.value === true, 'upload', state.upload),
|
|
19049
|
+
getBtn(state.isUploading.value, 'clear', state.abort)
|
|
19050
|
+
])
|
|
19006
19051
|
])
|
|
19007
19052
|
]
|
|
19008
19053
|
}
|
|
@@ -19258,7 +19303,7 @@
|
|
|
19258
19303
|
return getComputedStyle(element).getPropertyValue(`--q-${ propName }`).trim() || null
|
|
19259
19304
|
}
|
|
19260
19305
|
|
|
19261
|
-
let id
|
|
19306
|
+
let id = 0;
|
|
19262
19307
|
let offsetBase = void 0;
|
|
19263
19308
|
|
|
19264
19309
|
function getAbsolutePosition (el, resize) {
|
|
@@ -19986,7 +20031,7 @@
|
|
|
19986
20031
|
};
|
|
19987
20032
|
}
|
|
19988
20033
|
else {
|
|
19989
|
-
const qAnimId = `q-morph-anim-${ ++id
|
|
20034
|
+
const qAnimId = `q-morph-anim-${ ++id }`;
|
|
19990
20035
|
const style = document.createElement('style');
|
|
19991
20036
|
const resizeFrom = options.resize === true
|
|
19992
20037
|
? `
|
|
@@ -20977,6 +21022,7 @@
|
|
|
20977
21022
|
vue.h('div', {
|
|
20978
21023
|
ref: state.targetRef,
|
|
20979
21024
|
class: 'q-field__native row',
|
|
21025
|
+
tabindex: -1,
|
|
20980
21026
|
...state.splitAttrs.attributes.value,
|
|
20981
21027
|
'data-autofocus': props.autofocus === true || void 0
|
|
20982
21028
|
}, slots.control(controlSlotScope.value))
|
|
@@ -22092,6 +22138,10 @@
|
|
|
22092
22138
|
type: String,
|
|
22093
22139
|
default: 'lazy'
|
|
22094
22140
|
},
|
|
22141
|
+
fetchpriority: {
|
|
22142
|
+
type: String,
|
|
22143
|
+
default: 'auto'
|
|
22144
|
+
},
|
|
22095
22145
|
width: String,
|
|
22096
22146
|
height: String,
|
|
22097
22147
|
initialRatio: {
|
|
@@ -22254,6 +22304,7 @@
|
|
|
22254
22304
|
height: props.height,
|
|
22255
22305
|
width: props.width,
|
|
22256
22306
|
loading: props.loading,
|
|
22307
|
+
fetchpriority: props.fetchpriority,
|
|
22257
22308
|
'aria-hidden': 'true',
|
|
22258
22309
|
draggable: props.draggable,
|
|
22259
22310
|
...img
|
|
@@ -22469,6 +22520,16 @@
|
|
|
22469
22520
|
|
|
22470
22521
|
if (isWorking.value === true) {
|
|
22471
22522
|
localScrollTarget.addEventListener('scroll', poll, passive$3);
|
|
22523
|
+
|
|
22524
|
+
if (props.reverse === true) {
|
|
22525
|
+
const
|
|
22526
|
+
scrollHeight = getScrollHeight(localScrollTarget),
|
|
22527
|
+
containerHeight = height(localScrollTarget);
|
|
22528
|
+
|
|
22529
|
+
setVerticalScrollPosition(localScrollTarget, scrollHeight - containerHeight);
|
|
22530
|
+
}
|
|
22531
|
+
|
|
22532
|
+
immediatePoll();
|
|
22472
22533
|
}
|
|
22473
22534
|
}
|
|
22474
22535
|
|
|
@@ -22539,16 +22600,6 @@
|
|
|
22539
22600
|
setDebounce(props.debounce);
|
|
22540
22601
|
|
|
22541
22602
|
updateScrollTarget();
|
|
22542
|
-
|
|
22543
|
-
if (props.reverse === true) {
|
|
22544
|
-
const
|
|
22545
|
-
scrollHeight = getScrollHeight(localScrollTarget),
|
|
22546
|
-
containerHeight = height(localScrollTarget);
|
|
22547
|
-
|
|
22548
|
-
setVerticalScrollPosition(localScrollTarget, scrollHeight - containerHeight);
|
|
22549
|
-
}
|
|
22550
|
-
|
|
22551
|
-
immediatePoll();
|
|
22552
22603
|
});
|
|
22553
22604
|
|
|
22554
22605
|
return () => {
|
|
@@ -23186,26 +23237,31 @@
|
|
|
23186
23237
|
const isJapanese = /[\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\uff00-\uff9f\u4e00-\u9faf\u3400-\u4dbf]/;
|
|
23187
23238
|
const isChinese = /[\u4e00-\u9fff\u3400-\u4dbf\u{20000}-\u{2a6df}\u{2a700}-\u{2b73f}\u{2b740}-\u{2b81f}\u{2b820}-\u{2ceaf}\uf900-\ufaff\u3300-\u33ff\ufe30-\ufe4f\uf900-\ufaff\u{2f800}-\u{2fa1f}]/u;
|
|
23188
23239
|
const isKorean = /[\u3131-\u314e\u314f-\u3163\uac00-\ud7a3]/;
|
|
23240
|
+
const isPlainText = /[a-z0-9_ -]$/i;
|
|
23189
23241
|
|
|
23190
23242
|
function useKeyComposition (onInput) {
|
|
23191
23243
|
return function onComposition (e) {
|
|
23192
23244
|
if (e.type === 'compositionend' || e.type === 'change') {
|
|
23193
|
-
if (e.target.
|
|
23194
|
-
e.target.
|
|
23245
|
+
if (e.target.qComposing !== true) { return }
|
|
23246
|
+
e.target.qComposing = false;
|
|
23195
23247
|
onInput(e);
|
|
23196
23248
|
}
|
|
23197
23249
|
else if (e.type === 'compositionupdate') {
|
|
23198
23250
|
if (
|
|
23199
|
-
|
|
23200
|
-
&&
|
|
23201
|
-
&& isChinese.test(e.data) === false
|
|
23202
|
-
&& isKorean.test(e.data) === false
|
|
23251
|
+
e.target.qComposing !== true
|
|
23252
|
+
&& typeof e.data === 'string'
|
|
23203
23253
|
) {
|
|
23204
|
-
|
|
23254
|
+
const isComposing = client.is.firefox === true
|
|
23255
|
+
? isPlainText.test(e.data) === false
|
|
23256
|
+
: isJapanese.test(e.data) === true && isChinese.test(e.data) === true && isKorean.test(e.data) === true;
|
|
23257
|
+
|
|
23258
|
+
if (isComposing === true) {
|
|
23259
|
+
e.target.qComposing = true;
|
|
23260
|
+
}
|
|
23205
23261
|
}
|
|
23206
23262
|
}
|
|
23207
23263
|
else {
|
|
23208
|
-
e.target.
|
|
23264
|
+
e.target.qComposing = true;
|
|
23209
23265
|
}
|
|
23210
23266
|
}
|
|
23211
23267
|
}
|
|
@@ -23408,7 +23464,7 @@
|
|
|
23408
23464
|
}
|
|
23409
23465
|
|
|
23410
23466
|
function onInput (e) {
|
|
23411
|
-
if (!e || !e.target || e.target.
|
|
23467
|
+
if (!e || !e.target || e.target.qComposing === true) {
|
|
23412
23468
|
return
|
|
23413
23469
|
}
|
|
23414
23470
|
|
|
@@ -23453,6 +23509,8 @@
|
|
|
23453
23509
|
}
|
|
23454
23510
|
|
|
23455
23511
|
if (props.modelValue !== val && emitCachedValue !== val) {
|
|
23512
|
+
emitCachedValue = val;
|
|
23513
|
+
|
|
23456
23514
|
stopWatcher === true && (stopValueWatcher = true);
|
|
23457
23515
|
emit('update:modelValue', val);
|
|
23458
23516
|
|
|
@@ -23484,13 +23542,16 @@
|
|
|
23484
23542
|
const inp = inputRef.value;
|
|
23485
23543
|
if (inp !== null) {
|
|
23486
23544
|
const parentStyle = inp.parentNode.style;
|
|
23545
|
+
const { overflow } = inp.style;
|
|
23487
23546
|
|
|
23488
23547
|
// reset height of textarea to a small size to detect the real height
|
|
23489
23548
|
// but keep the total control size the same
|
|
23490
23549
|
parentStyle.marginBottom = (inp.scrollHeight - 1) + 'px';
|
|
23491
23550
|
inp.style.height = '1px';
|
|
23551
|
+
inp.style.overflow = 'hidden';
|
|
23492
23552
|
|
|
23493
23553
|
inp.style.height = inp.scrollHeight + 'px';
|
|
23554
|
+
inp.style.overflow = overflow;
|
|
23494
23555
|
parentStyle.marginBottom = '';
|
|
23495
23556
|
}
|
|
23496
23557
|
}
|
|
@@ -24452,7 +24513,8 @@
|
|
|
24452
24513
|
const layout = vue.h('div', {
|
|
24453
24514
|
class: classes.value,
|
|
24454
24515
|
style: style.value,
|
|
24455
|
-
ref: props.container === true ? void 0 : rootRef
|
|
24516
|
+
ref: props.container === true ? void 0 : rootRef,
|
|
24517
|
+
tabindex: -1
|
|
24456
24518
|
}, content);
|
|
24457
24519
|
|
|
24458
24520
|
if (props.container === true) {
|
|
@@ -24615,7 +24677,7 @@
|
|
|
24615
24677
|
const rootRef = vue.ref(null);
|
|
24616
24678
|
const { refocusTargetEl, refocusTarget } = useRefocusTarget(props, rootRef);
|
|
24617
24679
|
|
|
24618
|
-
const isTrue = vue.computed(() => props.modelValue === props.val);
|
|
24680
|
+
const isTrue = vue.computed(() => vue.toRaw(props.modelValue) === vue.toRaw(props.val));
|
|
24619
24681
|
|
|
24620
24682
|
const classes = vue.computed(() =>
|
|
24621
24683
|
'q-radio cursor-pointer no-outline row inline no-wrap items-center'
|
|
@@ -27452,27 +27514,30 @@
|
|
|
27452
27514
|
'end-force'
|
|
27453
27515
|
];
|
|
27454
27516
|
|
|
27455
|
-
let id = 1;
|
|
27456
27517
|
const filterProto = Array.prototype.filter;
|
|
27457
27518
|
|
|
27458
27519
|
const setOverflowAnchor = window.getComputedStyle(document.body).overflowAnchor === void 0
|
|
27459
27520
|
? noop
|
|
27460
|
-
: function (
|
|
27461
|
-
|
|
27521
|
+
: function (contentEl, index) {
|
|
27522
|
+
requestAnimationFrame(() => {
|
|
27523
|
+
if (contentEl === null) {
|
|
27524
|
+
return
|
|
27525
|
+
}
|
|
27462
27526
|
|
|
27463
|
-
|
|
27527
|
+
const children = contentEl.children || [];
|
|
27464
27528
|
|
|
27465
|
-
|
|
27466
|
-
|
|
27467
|
-
|
|
27468
|
-
|
|
27469
|
-
|
|
27470
|
-
}
|
|
27529
|
+
filterProto
|
|
27530
|
+
.call(children, el => el.dataset && el.dataset.qVsAnchor !== void 0)
|
|
27531
|
+
.forEach(el => {
|
|
27532
|
+
delete el.dataset.qVsAnchor;
|
|
27533
|
+
});
|
|
27471
27534
|
|
|
27472
|
-
|
|
27473
|
-
|
|
27474
|
-
|
|
27475
|
-
|
|
27535
|
+
const el = children[ index ];
|
|
27536
|
+
|
|
27537
|
+
if (el && el.dataset) {
|
|
27538
|
+
el.dataset.qVsAnchor = '';
|
|
27539
|
+
}
|
|
27540
|
+
});
|
|
27476
27541
|
};
|
|
27477
27542
|
|
|
27478
27543
|
function sumFn (acc, h) {
|
|
@@ -27668,8 +27733,6 @@
|
|
|
27668
27733
|
|
|
27669
27734
|
let prevScrollStart, prevToIndex, localScrollViewSize, virtualScrollSizesAgg = [], virtualScrollSizes;
|
|
27670
27735
|
|
|
27671
|
-
const vsId = 'qvs_' + id++;
|
|
27672
|
-
|
|
27673
27736
|
const virtualScrollPaddingBefore = vue.ref(0);
|
|
27674
27737
|
const virtualScrollPaddingAfter = vue.ref(0);
|
|
27675
27738
|
const virtualScrollSliceSizeComputed = vue.ref({});
|
|
@@ -27851,11 +27914,11 @@
|
|
|
27851
27914
|
contentEl.addEventListener('focusout', onBlurRefocusFn);
|
|
27852
27915
|
|
|
27853
27916
|
setTimeout(() => {
|
|
27854
|
-
contentEl !==
|
|
27917
|
+
contentEl !== null && contentEl.removeEventListener('focusout', onBlurRefocusFn);
|
|
27855
27918
|
});
|
|
27856
27919
|
}
|
|
27857
27920
|
|
|
27858
|
-
setOverflowAnchor(
|
|
27921
|
+
setOverflowAnchor(contentEl, toIndex - from);
|
|
27859
27922
|
|
|
27860
27923
|
const sizeBefore = alignEnd !== void 0 ? virtualScrollSizes.slice(from, toIndex).reduce(sumFn, 0) : 0;
|
|
27861
27924
|
|
|
@@ -27964,7 +28027,7 @@
|
|
|
27964
28027
|
}
|
|
27965
28028
|
|
|
27966
28029
|
function onBlurRefocusFn () {
|
|
27967
|
-
contentRef.value !== void 0 && contentRef.value.focus();
|
|
28030
|
+
contentRef.value !== null && contentRef.value !== void 0 && contentRef.value.focus();
|
|
27968
28031
|
}
|
|
27969
28032
|
|
|
27970
28033
|
function localResetVirtualScroll (toIndex, fullReset) {
|
|
@@ -28081,7 +28144,6 @@
|
|
|
28081
28144
|
class: 'q-virtual-scroll__content',
|
|
28082
28145
|
key: 'content',
|
|
28083
28146
|
ref: contentRef,
|
|
28084
|
-
id: vsId,
|
|
28085
28147
|
tabindex: -1
|
|
28086
28148
|
}, content.flat()),
|
|
28087
28149
|
|
|
@@ -28155,9 +28217,7 @@
|
|
|
28155
28217
|
}
|
|
28156
28218
|
});
|
|
28157
28219
|
|
|
28158
|
-
|
|
28159
|
-
const styleSheet = document.getElementById(vsId + '_ss');
|
|
28160
|
-
styleSheet !== null && styleSheet.remove();
|
|
28220
|
+
vue.onBeforeUnmount(() => {
|
|
28161
28221
|
onVirtualScrollEvt.cancel();
|
|
28162
28222
|
});
|
|
28163
28223
|
|
|
@@ -28321,7 +28381,7 @@
|
|
|
28321
28381
|
|
|
28322
28382
|
const virtualScrollItemSizeComputed = vue.computed(() => (
|
|
28323
28383
|
props.virtualScrollItemSize === void 0
|
|
28324
|
-
? (props.
|
|
28384
|
+
? (props.optionsDense === true ? 24 : 48)
|
|
28325
28385
|
: props.virtualScrollItemSize
|
|
28326
28386
|
));
|
|
28327
28387
|
|
|
@@ -29169,7 +29229,7 @@
|
|
|
29169
29229
|
function onInput (e) {
|
|
29170
29230
|
clearTimeout(inputTimer);
|
|
29171
29231
|
|
|
29172
|
-
if (e && e.target && e.target.
|
|
29232
|
+
if (e && e.target && e.target.qComposing === true) {
|
|
29173
29233
|
return
|
|
29174
29234
|
}
|
|
29175
29235
|
|
|
@@ -34374,7 +34434,7 @@
|
|
|
34374
34434
|
|
|
34375
34435
|
return vue.h('div', {
|
|
34376
34436
|
class: 'q-table__grid-item col-xs-12 col-sm-6 col-md-4 col-lg-3'
|
|
34377
|
-
+ (scope.selected === true ? 'q-table__grid-item--selected' : '')
|
|
34437
|
+
+ (scope.selected === true ? ' q-table__grid-item--selected' : '')
|
|
34378
34438
|
}, [
|
|
34379
34439
|
vue.h('div', data, child)
|
|
34380
34440
|
])
|
|
@@ -36594,7 +36654,20 @@
|
|
|
36594
36654
|
required: true
|
|
36595
36655
|
},
|
|
36596
36656
|
|
|
36597
|
-
title: String
|
|
36657
|
+
title: String,
|
|
36658
|
+
|
|
36659
|
+
fetchpriority: {
|
|
36660
|
+
type: String,
|
|
36661
|
+
default: 'auto'
|
|
36662
|
+
},
|
|
36663
|
+
loading: {
|
|
36664
|
+
type: String,
|
|
36665
|
+
default: 'eager'
|
|
36666
|
+
},
|
|
36667
|
+
referrerpolicy: {
|
|
36668
|
+
type: String,
|
|
36669
|
+
default: 'strict-origin-when-cross-origin'
|
|
36670
|
+
}
|
|
36598
36671
|
},
|
|
36599
36672
|
|
|
36600
36673
|
setup (props) {
|
|
@@ -36612,6 +36685,9 @@
|
|
|
36612
36685
|
vue.h('iframe', {
|
|
36613
36686
|
src: props.src,
|
|
36614
36687
|
title: props.title,
|
|
36688
|
+
fetchpriority: props.fetchpriority,
|
|
36689
|
+
loading: props.loading,
|
|
36690
|
+
referrerpolicy: props.referrerpolicy,
|
|
36615
36691
|
frameborder: '0',
|
|
36616
36692
|
allowfullscreen: true
|
|
36617
36693
|
})
|
|
@@ -38013,19 +38089,31 @@
|
|
|
38013
38089
|
const applyState = cmd => {
|
|
38014
38090
|
if (dialogRef.value !== null && dialogRef.value[ cmd ] !== void 0) {
|
|
38015
38091
|
dialogRef.value[ cmd ]();
|
|
38092
|
+
return
|
|
38016
38093
|
}
|
|
38017
|
-
|
|
38094
|
+
|
|
38095
|
+
const target = vm.$.subTree;
|
|
38096
|
+
|
|
38097
|
+
if (target && target.component) {
|
|
38018
38098
|
// account for "script setup" way of declaring component
|
|
38019
|
-
|
|
38020
|
-
|
|
38021
|
-
|
|
38022
|
-
|
|
38023
|
-
|
|
38024
|
-
|
|
38025
|
-
|
|
38026
|
-
|
|
38027
|
-
|
|
38099
|
+
if (target.component.proxy && target.component.proxy[ cmd ]) {
|
|
38100
|
+
target.component.proxy[ cmd ]();
|
|
38101
|
+
return
|
|
38102
|
+
}
|
|
38103
|
+
|
|
38104
|
+
// account for "script setup" + async component way of declaring component
|
|
38105
|
+
if (
|
|
38106
|
+
target.component.subTree &&
|
|
38107
|
+
target.component.subTree.component &&
|
|
38108
|
+
target.component.subTree.component.proxy &&
|
|
38109
|
+
target.component.subTree.component.proxy[ cmd ]
|
|
38110
|
+
) {
|
|
38111
|
+
target.component.subTree.component.proxy[ cmd ]();
|
|
38112
|
+
return
|
|
38113
|
+
}
|
|
38028
38114
|
}
|
|
38115
|
+
|
|
38116
|
+
console.error('[Quasar] Incorrectly defined Dialog component');
|
|
38029
38117
|
};
|
|
38030
38118
|
|
|
38031
38119
|
const
|
|
@@ -39392,7 +39480,7 @@
|
|
|
39392
39480
|
return value
|
|
39393
39481
|
}
|
|
39394
39482
|
|
|
39395
|
-
const type = value.
|
|
39483
|
+
const type = value.substring(0, 8);
|
|
39396
39484
|
const source = value.substring(9);
|
|
39397
39485
|
|
|
39398
39486
|
switch (type) {
|
|
@@ -39628,7 +39716,7 @@
|
|
|
39628
39716
|
});
|
|
39629
39717
|
|
|
39630
39718
|
var index_umd = {
|
|
39631
|
-
version: '2.
|
|
39719
|
+
version: '2.7.1',
|
|
39632
39720
|
install (app, opts) {
|
|
39633
39721
|
installQuasar(app, {
|
|
39634
39722
|
components,
|