quasar 2.14.2 → 2.14.3
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 +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-CH.umd.prod.js +1 -1
- package/dist/lang/de-DE.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/hi.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/mk.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.esm.js +90 -102
- package/dist/quasar.esm.prod.js +2 -2
- package/dist/quasar.sass +1 -1
- package/dist/quasar.umd.js +90 -102
- package/dist/quasar.umd.prod.js +2 -2
- package/dist/web-types/web-types.json +1 -1
- package/package.json +2 -2
- package/src/components/ajax-bar/QAjaxBar.js +12 -2
- package/src/components/btn-dropdown/QBtnDropdown.js +4 -4
- package/src/components/expansion-item/QExpansionItem.js +4 -3
- package/src/components/fab/QFab.js +4 -4
- package/src/components/icon/QIcon.js +3 -3
- package/src/components/infinite-scroll/QInfiniteScroll.js +1 -1
- package/src/components/menu/__tests__/QMenu.cy.js +24 -0
- package/src/components/tabs/use-tab.js +1 -1
- package/src/composables/private/use-field.js +13 -30
- package/src/composables/private/use-id.js +34 -0
- package/src/composables/private/use-validate.js +16 -29
- package/src/plugins/Dark.js +3 -27
- package/src/utils/copy-to-clipboard.js +0 -1
- package/src/utils/get-css-var.js +0 -1
- package/src/utils/is.js +0 -1
- package/src/utils/private/define-reactive-plugin.js +0 -1
- package/src/utils/private/global-config.js +0 -1
- package/src/utils/private/touch.js +0 -1
- package/src/utils/private/vm.js +0 -1
- package/src/utils/run-sequential-promises.js +0 -1
package/dist/quasar.sass
CHANGED
package/dist/quasar.umd.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Quasar Framework v2.14.
|
|
2
|
+
* Quasar Framework v2.14.3
|
|
3
3
|
* (c) 2015-present Razvan Stoenescu
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -798,36 +798,13 @@
|
|
|
798
798
|
}
|
|
799
799
|
},
|
|
800
800
|
|
|
801
|
-
install ({ $q,
|
|
801
|
+
install ({ $q, ssrContext }) {
|
|
802
802
|
const { dark } = $q.config;
|
|
803
803
|
|
|
804
804
|
$q.dark = this;
|
|
805
805
|
|
|
806
|
-
if (this.__installed
|
|
807
|
-
|
|
808
|
-
}
|
|
809
|
-
|
|
810
|
-
this.isActive = dark === true;
|
|
811
|
-
|
|
812
|
-
const initialVal = dark !== void 0 ? dark : false;
|
|
813
|
-
|
|
814
|
-
if (isRuntimeSsrPreHydration.value === true) {
|
|
815
|
-
const ssrSet = val => {
|
|
816
|
-
this.__fromSSR = val;
|
|
817
|
-
};
|
|
818
|
-
|
|
819
|
-
const originalSet = this.set;
|
|
820
|
-
|
|
821
|
-
this.set = ssrSet;
|
|
822
|
-
ssrSet(initialVal);
|
|
823
|
-
|
|
824
|
-
onSSRHydrated.push(() => {
|
|
825
|
-
this.set = originalSet;
|
|
826
|
-
this.set(this.__fromSSR);
|
|
827
|
-
});
|
|
828
|
-
}
|
|
829
|
-
else {
|
|
830
|
-
this.set(initialVal);
|
|
806
|
+
if (this.__installed !== true) {
|
|
807
|
+
this.set(dark !== void 0 ? dark : false);
|
|
831
808
|
}
|
|
832
809
|
}
|
|
833
810
|
});
|
|
@@ -1653,7 +1630,7 @@
|
|
|
1653
1630
|
}
|
|
1654
1631
|
|
|
1655
1632
|
var installQuasar = function (parentApp, opts = {}) {
|
|
1656
|
-
const $q = { version: '2.14.
|
|
1633
|
+
const $q = { version: '2.14.3' };
|
|
1657
1634
|
|
|
1658
1635
|
if (globalConfigIsFrozen === false) {
|
|
1659
1636
|
if (opts.config !== void 0) {
|
|
@@ -1917,13 +1894,23 @@
|
|
|
1917
1894
|
|
|
1918
1895
|
progress.value = 0;
|
|
1919
1896
|
|
|
1897
|
+
/**
|
|
1898
|
+
* We're trying to avoid side effects if start() is called inside a watchEffect()
|
|
1899
|
+
* so we're accessing the _value property directly (under the covers implementation detail of ref())
|
|
1900
|
+
*
|
|
1901
|
+
* Otherwise, any refs() accessed here would be marked as deps for the watchEffect()
|
|
1902
|
+
* -- and we are changing them below, which would cause an infinite loop
|
|
1903
|
+
*/
|
|
1904
|
+
|
|
1920
1905
|
timer = setTimeout(() => {
|
|
1921
1906
|
timer = null;
|
|
1922
1907
|
animate.value = true;
|
|
1923
1908
|
newSpeed > 0 && planNextStep();
|
|
1924
|
-
|
|
1909
|
+
// eslint-disable-next-line vue/no-ref-as-operand
|
|
1910
|
+
}, onScreen._value === true ? 500 : 1);
|
|
1925
1911
|
|
|
1926
|
-
|
|
1912
|
+
// eslint-disable-next-line vue/no-ref-as-operand
|
|
1913
|
+
if (onScreen._value !== true) {
|
|
1927
1914
|
onScreen.value = true;
|
|
1928
1915
|
animate.value = false;
|
|
1929
1916
|
}
|
|
@@ -2282,13 +2269,13 @@
|
|
|
2282
2269
|
}
|
|
2283
2270
|
|
|
2284
2271
|
if (type.value.img === true) {
|
|
2285
|
-
return vue.h(
|
|
2272
|
+
return vue.h(props.tag, data, hMergeSlot(slots.default, [
|
|
2286
2273
|
vue.h('img', { src: type.value.src })
|
|
2287
2274
|
]))
|
|
2288
2275
|
}
|
|
2289
2276
|
|
|
2290
2277
|
if (type.value.svg === true) {
|
|
2291
|
-
return vue.h(
|
|
2278
|
+
return vue.h(props.tag, data, hMergeSlot(slots.default, [
|
|
2292
2279
|
vue.h('svg', {
|
|
2293
2280
|
viewBox: type.value.viewBox || '0 0 24 24'
|
|
2294
2281
|
}, type.value.nodes)
|
|
@@ -2296,7 +2283,7 @@
|
|
|
2296
2283
|
}
|
|
2297
2284
|
|
|
2298
2285
|
if (type.value.svguse === true) {
|
|
2299
|
-
return vue.h(
|
|
2286
|
+
return vue.h(props.tag, data, hMergeSlot(slots.default, [
|
|
2300
2287
|
vue.h('svg', {
|
|
2301
2288
|
viewBox: type.value.viewBox
|
|
2302
2289
|
}, [
|
|
@@ -5864,6 +5851,35 @@
|
|
|
5864
5851
|
+ hexBytes[ b[ 14 ] ] + hexBytes[ b[ 15 ] ]
|
|
5865
5852
|
}
|
|
5866
5853
|
|
|
5854
|
+
function getId (val, requiredId) {
|
|
5855
|
+
return val === void 0
|
|
5856
|
+
? (requiredId === true ? `f_${ uid$3() }` : void 0)
|
|
5857
|
+
: val
|
|
5858
|
+
}
|
|
5859
|
+
|
|
5860
|
+
/**
|
|
5861
|
+
* Returns an "id" which is a ref() that can be used as a unique identifier.
|
|
5862
|
+
* On SSR, it takes care of generating the id on the client side (only) to
|
|
5863
|
+
* avoid hydration errors.
|
|
5864
|
+
*/
|
|
5865
|
+
function useId (initialId, requiredId = true) {
|
|
5866
|
+
if (isRuntimeSsrPreHydration.value === true) {
|
|
5867
|
+
const id = vue.ref(initialId);
|
|
5868
|
+
|
|
5869
|
+
if (requiredId === true && initialId === void 0) {
|
|
5870
|
+
vue.onMounted(() => {
|
|
5871
|
+
id.value = `f_${ uid$3() }`; // getId(void 0, true)
|
|
5872
|
+
});
|
|
5873
|
+
}
|
|
5874
|
+
|
|
5875
|
+
return id
|
|
5876
|
+
}
|
|
5877
|
+
|
|
5878
|
+
return vue.ref(
|
|
5879
|
+
getId(initialId, requiredId)
|
|
5880
|
+
)
|
|
5881
|
+
}
|
|
5882
|
+
|
|
5867
5883
|
const btnPropsList = Object.keys(useBtnProps);
|
|
5868
5884
|
|
|
5869
5885
|
const passBtnProps = props => btnPropsList.reduce(
|
|
@@ -5921,13 +5937,13 @@
|
|
|
5921
5937
|
|
|
5922
5938
|
const showing = vue.ref(props.modelValue);
|
|
5923
5939
|
const menuRef = vue.ref(null);
|
|
5924
|
-
const targetUid =
|
|
5940
|
+
const targetUid = useId();
|
|
5925
5941
|
|
|
5926
5942
|
const ariaAttrs = vue.computed(() => {
|
|
5927
5943
|
const acc = {
|
|
5928
5944
|
'aria-expanded': showing.value === true ? 'true' : 'false',
|
|
5929
5945
|
'aria-haspopup': 'true',
|
|
5930
|
-
'aria-controls': targetUid,
|
|
5946
|
+
'aria-controls': targetUid.value,
|
|
5931
5947
|
'aria-label': props.toggleAriaLabel || proxy.$q.lang.label[ showing.value === true ? 'collapse' : 'expand' ](props.label)
|
|
5932
5948
|
};
|
|
5933
5949
|
|
|
@@ -6021,7 +6037,7 @@
|
|
|
6021
6037
|
props.disableDropdown !== true && Arrow.push(
|
|
6022
6038
|
vue.h(QMenu, {
|
|
6023
6039
|
ref: menuRef,
|
|
6024
|
-
id: targetUid,
|
|
6040
|
+
id: targetUid.value,
|
|
6025
6041
|
class: props.contentClass,
|
|
6026
6042
|
style: props.contentStyle,
|
|
6027
6043
|
cover: props.cover,
|
|
@@ -10508,7 +10524,7 @@
|
|
|
10508
10524
|
if (
|
|
10509
10525
|
hardError === void 0 && (
|
|
10510
10526
|
softError === void 0
|
|
10511
|
-
|| softError.message.startsWith('Avoided redundant navigation') === true
|
|
10527
|
+
|| (softError.message !== void 0 && softError.message.startsWith('Avoided redundant navigation') === true)
|
|
10512
10528
|
)
|
|
10513
10529
|
) {
|
|
10514
10530
|
$tabs.updateModel({ name: props.name });
|
|
@@ -18074,7 +18090,7 @@
|
|
|
18074
18090
|
);
|
|
18075
18091
|
|
|
18076
18092
|
const blurTargetRef = vue.ref(null);
|
|
18077
|
-
const targetUid =
|
|
18093
|
+
const targetUid = useId();
|
|
18078
18094
|
|
|
18079
18095
|
const { show, hide, toggle } = useModelToggle({ showing });
|
|
18080
18096
|
|
|
@@ -18142,7 +18158,7 @@
|
|
|
18142
18158
|
return {
|
|
18143
18159
|
role: 'button',
|
|
18144
18160
|
'aria-expanded': showing.value === true ? 'true' : 'false',
|
|
18145
|
-
'aria-controls': targetUid,
|
|
18161
|
+
'aria-controls': targetUid.value,
|
|
18146
18162
|
'aria-label': toggleAriaLabel
|
|
18147
18163
|
}
|
|
18148
18164
|
});
|
|
@@ -18319,7 +18335,7 @@
|
|
|
18319
18335
|
key: 'e-content',
|
|
18320
18336
|
class: 'q-expansion-item__content relative-position',
|
|
18321
18337
|
style: contentStyle.value,
|
|
18322
|
-
id: targetUid
|
|
18338
|
+
id: targetUid.value
|
|
18323
18339
|
}, hSlot(slots.default)),
|
|
18324
18340
|
[ [
|
|
18325
18341
|
vue.vShow,
|
|
@@ -18494,7 +18510,7 @@
|
|
|
18494
18510
|
setup (props, { slots }) {
|
|
18495
18511
|
const triggerRef = vue.ref(null);
|
|
18496
18512
|
const showing = vue.ref(props.modelValue === true);
|
|
18497
|
-
const targetUid =
|
|
18513
|
+
const targetUid = useId();
|
|
18498
18514
|
|
|
18499
18515
|
const { proxy: { $q } } = vue.getCurrentInstance();
|
|
18500
18516
|
const { formClass, labelProps } = useFab(props, showing);
|
|
@@ -18522,7 +18538,7 @@
|
|
|
18522
18538
|
|
|
18523
18539
|
const actionAttrs = vue.computed(() => {
|
|
18524
18540
|
const attrs = {
|
|
18525
|
-
id: targetUid,
|
|
18541
|
+
id: targetUid.value,
|
|
18526
18542
|
role: 'menu'
|
|
18527
18543
|
};
|
|
18528
18544
|
|
|
@@ -18594,7 +18610,7 @@
|
|
|
18594
18610
|
fab: true,
|
|
18595
18611
|
'aria-expanded': showing.value === true ? 'true' : 'false',
|
|
18596
18612
|
'aria-haspopup': 'true',
|
|
18597
|
-
'aria-controls': targetUid,
|
|
18613
|
+
'aria-controls': targetUid.value,
|
|
18598
18614
|
onClick: toggle
|
|
18599
18615
|
}, getTriggerContent),
|
|
18600
18616
|
|
|
@@ -18756,7 +18772,7 @@
|
|
|
18756
18772
|
|
|
18757
18773
|
const innerError = vue.ref(false);
|
|
18758
18774
|
const innerErrorMessage = vue.ref(null);
|
|
18759
|
-
const isDirtyModel = vue.ref(
|
|
18775
|
+
const isDirtyModel = vue.ref(false);
|
|
18760
18776
|
|
|
18761
18777
|
useFormChild({ validate, resetValidation });
|
|
18762
18778
|
|
|
@@ -18799,18 +18815,20 @@
|
|
|
18799
18815
|
}
|
|
18800
18816
|
});
|
|
18801
18817
|
|
|
18818
|
+
function onRulesChange () {
|
|
18819
|
+
if (
|
|
18820
|
+
props.lazyRules !== 'ondemand'
|
|
18821
|
+
&& canDebounceValidate.value === true
|
|
18822
|
+
&& isDirtyModel.value === true
|
|
18823
|
+
) {
|
|
18824
|
+
debouncedValidate();
|
|
18825
|
+
}
|
|
18826
|
+
}
|
|
18827
|
+
|
|
18802
18828
|
vue.watch(() => props.reactiveRules, val => {
|
|
18803
18829
|
if (val === true) {
|
|
18804
18830
|
if (unwatchRules === void 0) {
|
|
18805
|
-
unwatchRules = vue.watch(() => props.rules,
|
|
18806
|
-
if (
|
|
18807
|
-
canDebounceValidate.value === true
|
|
18808
|
-
&& isDirtyModel.value === true
|
|
18809
|
-
&& props.lazyRules !== 'ondemand'
|
|
18810
|
-
) {
|
|
18811
|
-
debouncedValidate();
|
|
18812
|
-
}
|
|
18813
|
-
}, { immediate: true });
|
|
18831
|
+
unwatchRules = vue.watch(() => props.rules, onRulesChange, { immediate: true, deep: true });
|
|
18814
18832
|
}
|
|
18815
18833
|
}
|
|
18816
18834
|
else if (unwatchRules !== void 0) {
|
|
@@ -18819,30 +18837,15 @@
|
|
|
18819
18837
|
}
|
|
18820
18838
|
}, { immediate: true });
|
|
18821
18839
|
|
|
18822
|
-
vue.watch(() => props.lazyRules,
|
|
18823
|
-
if (
|
|
18824
|
-
val === false
|
|
18825
|
-
&& canDebounceValidate.value === true
|
|
18826
|
-
&& isDirtyModel.value === true
|
|
18827
|
-
) {
|
|
18828
|
-
debouncedValidate();
|
|
18829
|
-
}
|
|
18830
|
-
});
|
|
18840
|
+
vue.watch(() => props.lazyRules, onRulesChange);
|
|
18831
18841
|
|
|
18832
18842
|
vue.watch(focused, val => {
|
|
18833
18843
|
if (val === true) {
|
|
18834
|
-
|
|
18835
|
-
isDirtyModel.value = props.lazyRules === true;
|
|
18836
|
-
}
|
|
18844
|
+
isDirtyModel.value = true;
|
|
18837
18845
|
}
|
|
18838
18846
|
else if (
|
|
18839
18847
|
canDebounceValidate.value === true
|
|
18840
|
-
&&
|
|
18841
|
-
// props.lazyRules can also be 'ondemand',
|
|
18842
|
-
// hence the following form:
|
|
18843
|
-
props.lazyRules === false
|
|
18844
|
-
|| (props.lazyRules === true && isDirtyModel.value === true)
|
|
18845
|
-
)
|
|
18848
|
+
&& props.lazyRules !== 'ondemand'
|
|
18846
18849
|
) {
|
|
18847
18850
|
debouncedValidate();
|
|
18848
18851
|
}
|
|
@@ -18851,7 +18854,7 @@
|
|
|
18851
18854
|
function resetValidation () {
|
|
18852
18855
|
validateIndex++;
|
|
18853
18856
|
innerLoading.value = false;
|
|
18854
|
-
isDirtyModel.value =
|
|
18857
|
+
isDirtyModel.value = false;
|
|
18855
18858
|
innerError.value = false;
|
|
18856
18859
|
innerErrorMessage.value = null;
|
|
18857
18860
|
debouncedValidate.cancel();
|
|
@@ -18958,12 +18961,6 @@
|
|
|
18958
18961
|
}
|
|
18959
18962
|
}
|
|
18960
18963
|
|
|
18961
|
-
function getTargetUid (val, requiredForAttr) {
|
|
18962
|
-
return val === void 0
|
|
18963
|
-
? (requiredForAttr === true ? `f_${ uid$3() }` : void 0)
|
|
18964
|
-
: val
|
|
18965
|
-
}
|
|
18966
|
-
|
|
18967
18964
|
function fieldValueIsFilled (val) {
|
|
18968
18965
|
return val !== void 0
|
|
18969
18966
|
&& val !== null
|
|
@@ -19024,6 +19021,7 @@
|
|
|
19024
19021
|
const { props, attrs, proxy, vnode } = vue.getCurrentInstance();
|
|
19025
19022
|
|
|
19026
19023
|
const isDark = useDark(props, proxy.$q);
|
|
19024
|
+
const targetUid = useId(props.for, requiredForAttr);
|
|
19027
19025
|
|
|
19028
19026
|
return {
|
|
19029
19027
|
requiredForAttr,
|
|
@@ -19042,9 +19040,7 @@
|
|
|
19042
19040
|
hasPopupOpen: false,
|
|
19043
19041
|
|
|
19044
19042
|
splitAttrs: useSplitAttrs(attrs, vnode),
|
|
19045
|
-
targetUid
|
|
19046
|
-
getTargetUid(props.for, requiredForAttr)
|
|
19047
|
-
),
|
|
19043
|
+
targetUid,
|
|
19048
19044
|
|
|
19049
19045
|
rootRef: vue.ref(null),
|
|
19050
19046
|
targetRef: vue.ref(null),
|
|
@@ -19196,9 +19192,11 @@
|
|
|
19196
19192
|
}));
|
|
19197
19193
|
|
|
19198
19194
|
const attributes = vue.computed(() => {
|
|
19199
|
-
const acc = {
|
|
19200
|
-
|
|
19201
|
-
|
|
19195
|
+
const acc = {};
|
|
19196
|
+
|
|
19197
|
+
if (state.targetUid.value) {
|
|
19198
|
+
acc.for = state.targetUid.value;
|
|
19199
|
+
}
|
|
19202
19200
|
|
|
19203
19201
|
if (props.disable === true) {
|
|
19204
19202
|
acc[ 'aria-disabled' ] = 'true';
|
|
@@ -19210,7 +19208,7 @@
|
|
|
19210
19208
|
vue.watch(() => props.for, val => {
|
|
19211
19209
|
// don't transform targetUid into a computed
|
|
19212
19210
|
// prop as it will break SSR
|
|
19213
|
-
state.targetUid.value =
|
|
19211
|
+
state.targetUid.value = getId(val, state.requiredForAttr);
|
|
19214
19212
|
});
|
|
19215
19213
|
|
|
19216
19214
|
function focusHandler () {
|
|
@@ -19286,7 +19284,7 @@
|
|
|
19286
19284
|
document.activeElement.blur();
|
|
19287
19285
|
}
|
|
19288
19286
|
|
|
19289
|
-
if (props.type === 'file') {
|
|
19287
|
+
if (props.type === 'file') {
|
|
19290
19288
|
// do not let focus be triggered
|
|
19291
19289
|
// as it will make the native file dialog
|
|
19292
19290
|
// appear for another selection
|
|
@@ -19297,11 +19295,9 @@
|
|
|
19297
19295
|
emit('clear', props.modelValue);
|
|
19298
19296
|
|
|
19299
19297
|
vue.nextTick(() => {
|
|
19298
|
+
const isDirty = isDirtyModel.value;
|
|
19300
19299
|
resetValidation();
|
|
19301
|
-
|
|
19302
|
-
if ($q.platform.is.mobile !== true) {
|
|
19303
|
-
isDirtyModel.value = false;
|
|
19304
|
-
}
|
|
19300
|
+
isDirtyModel.value = isDirty;
|
|
19305
19301
|
});
|
|
19306
19302
|
}
|
|
19307
19303
|
|
|
@@ -19494,16 +19490,8 @@
|
|
|
19494
19490
|
shouldActivate === true && props.autofocus === true && proxy.focus();
|
|
19495
19491
|
});
|
|
19496
19492
|
|
|
19497
|
-
vue.onMounted(() => {
|
|
19498
|
-
|
|
19499
|
-
isRuntimeSsrPreHydration.value === true
|
|
19500
|
-
&& state.requiredForAttr === true
|
|
19501
|
-
&& props.for === void 0
|
|
19502
|
-
) {
|
|
19503
|
-
state.targetUid.value = `f_${ uid$3() }`; // getTargetUid(void 0, true)
|
|
19504
|
-
}
|
|
19505
|
-
|
|
19506
|
-
props.autofocus === true && proxy.focus();
|
|
19493
|
+
props.autofocus === true && vue.onMounted(() => {
|
|
19494
|
+
proxy.focus();
|
|
19507
19495
|
});
|
|
19508
19496
|
|
|
19509
19497
|
vue.onBeforeUnmount(() => {
|
|
@@ -21282,7 +21270,7 @@
|
|
|
21282
21270
|
const vm = vue.getCurrentInstance();
|
|
21283
21271
|
Object.assign(vm.proxy, {
|
|
21284
21272
|
poll: () => { poll !== void 0 && poll(); },
|
|
21285
|
-
trigger, stop, reset, resume, setIndex
|
|
21273
|
+
trigger, stop, reset, resume, setIndex, updateScrollTarget
|
|
21286
21274
|
});
|
|
21287
21275
|
|
|
21288
21276
|
return () => {
|
|
@@ -41060,7 +41048,7 @@
|
|
|
41060
41048
|
*/
|
|
41061
41049
|
|
|
41062
41050
|
var index_umd = {
|
|
41063
|
-
version: '2.14.
|
|
41051
|
+
version: '2.14.3',
|
|
41064
41052
|
install (app, opts) {
|
|
41065
41053
|
installQuasar(app, {
|
|
41066
41054
|
components,
|