quasar 2.14.0 → 2.14.2
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/Notify.json +2 -2
- package/dist/api/QTime.json +8 -1
- package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
- package/dist/icon-set/eva-icons.umd.prod.js +1 -1
- package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
- package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
- package/dist/icon-set/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 +2 -2
- 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 +2 -2
- 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 +120 -85
- package/dist/quasar.esm.prod.js +2 -2
- package/dist/quasar.sass +1 -1
- package/dist/quasar.umd.js +120 -85
- package/dist/quasar.umd.prod.js +2 -2
- package/dist/types/index.d.ts +8 -5
- package/dist/web-types/web-types.json +1 -1
- package/lang/ms.js +1 -1
- package/lang/ms.mjs +1 -1
- package/package.json +1 -1
- package/src/components/btn/QBtn.js +2 -2
- package/src/components/circular-progress/QCircularProgress.js +9 -4
- package/src/components/color/QColor.js +5 -9
- package/src/components/date/QDate.js +16 -4
- package/src/components/editor/QEditor.js +1 -1
- package/src/components/range/QRange.js +8 -8
- package/src/components/resize-observer/QResizeObserver.js +3 -3
- package/src/components/select/QSelect.js +3 -4
- package/src/components/slider/QSlider.js +2 -2
- package/src/components/slider/use-slider.js +15 -9
- package/src/components/time/QTime.json +4 -1
- package/src/composables/private/use-field.js +0 -3
- package/src/composables/private/use-validate.js +49 -30
- package/src/plugins/Notify.js +4 -3
- package/src/plugins/Notify.json +2 -2
package/dist/quasar.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Quasar Framework v2.14.
|
|
2
|
+
* Quasar Framework v2.14.2
|
|
3
3
|
* (c) 2015-present Razvan Stoenescu
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -1651,7 +1651,7 @@ function prepareApp (app, uiOpts, pluginOpts) {
|
|
|
1651
1651
|
}
|
|
1652
1652
|
|
|
1653
1653
|
var installQuasar = function (parentApp, opts = {}) {
|
|
1654
|
-
const $q = { version: '2.14.
|
|
1654
|
+
const $q = { version: '2.14.2' };
|
|
1655
1655
|
|
|
1656
1656
|
if (globalConfigIsFrozen === false) {
|
|
1657
1657
|
if (opts.config !== void 0) {
|
|
@@ -3848,7 +3848,7 @@ var QBtn = createComponent({
|
|
|
3848
3848
|
props.icon !== void 0 && inner.push(
|
|
3849
3849
|
h(QIcon, {
|
|
3850
3850
|
name: props.icon,
|
|
3851
|
-
left: props.stack
|
|
3851
|
+
left: props.stack !== true && hasLabel.value === true,
|
|
3852
3852
|
role: 'img',
|
|
3853
3853
|
'aria-hidden': 'true'
|
|
3854
3854
|
})
|
|
@@ -3864,7 +3864,7 @@ var QBtn = createComponent({
|
|
|
3864
3864
|
inner.push(
|
|
3865
3865
|
h(QIcon, {
|
|
3866
3866
|
name: props.iconRight,
|
|
3867
|
-
right: props.stack
|
|
3867
|
+
right: props.stack !== true && hasLabel.value === true,
|
|
3868
3868
|
role: 'img',
|
|
3869
3869
|
'aria-hidden': 'true'
|
|
3870
3870
|
})
|
|
@@ -8198,11 +8198,16 @@ var QCircularProgress = createComponent({
|
|
|
8198
8198
|
|
|
8199
8199
|
const normalized = computed(() => between(props.value, props.min, props.max));
|
|
8200
8200
|
|
|
8201
|
-
const
|
|
8202
|
-
1 - (normalized.value - props.min) / (props.max - props.min)
|
|
8203
|
-
));
|
|
8204
|
-
|
|
8201
|
+
const range = computed(() => props.max - props.min);
|
|
8205
8202
|
const strokeWidth = computed(() => props.thickness / 2 * viewBox.value);
|
|
8203
|
+
const strokeDashOffset = computed(() => {
|
|
8204
|
+
const dashRatio = (props.max - normalized.value) / range.value;
|
|
8205
|
+
const dashGap = props.rounded === true && normalized.value < props.max && dashRatio < 0.25
|
|
8206
|
+
? strokeWidth.value / 2 * (1 - dashRatio / 0.25)
|
|
8207
|
+
: 0;
|
|
8208
|
+
|
|
8209
|
+
return circumference * dashRatio + dashGap
|
|
8210
|
+
});
|
|
8206
8211
|
|
|
8207
8212
|
function getCircle ({ thickness, offset, color, cls, rounded }) {
|
|
8208
8213
|
return h('circle', {
|
|
@@ -8830,8 +8835,16 @@ function useSlider ({ updateValue, updatePosition, getDragging, formAttrs }) {
|
|
|
8830
8835
|
&& innerMin.value < innerMax.value
|
|
8831
8836
|
));
|
|
8832
8837
|
|
|
8833
|
-
const
|
|
8834
|
-
|
|
8838
|
+
const roundValueFn = computed(() => {
|
|
8839
|
+
if (props.step === 0) {
|
|
8840
|
+
return v => v
|
|
8841
|
+
}
|
|
8842
|
+
|
|
8843
|
+
const decimals = (String(props.step).trim().split('.')[ 1 ] || '').length;
|
|
8844
|
+
return v => parseFloat(v.toFixed(decimals))
|
|
8845
|
+
});
|
|
8846
|
+
|
|
8847
|
+
const keyStep = computed(() => (props.step === 0 ? 1 : props.step));
|
|
8835
8848
|
const tabindex = computed(() => (editable.value === true ? props.tabindex || 0 : -1));
|
|
8836
8849
|
|
|
8837
8850
|
const trackLen = computed(() => props.max - props.min);
|
|
@@ -8939,13 +8952,11 @@ function useSlider ({ updateValue, updatePosition, getDragging, formAttrs }) {
|
|
|
8939
8952
|
let model = min + ratio * (max - min);
|
|
8940
8953
|
|
|
8941
8954
|
if (step > 0) {
|
|
8942
|
-
const modulo = (model -
|
|
8955
|
+
const modulo = (model - innerMin.value) % step;
|
|
8943
8956
|
model += (Math.abs(modulo) >= step / 2 ? (modulo < 0 ? -1 : 1) * step : 0) - modulo;
|
|
8944
8957
|
}
|
|
8945
8958
|
|
|
8946
|
-
|
|
8947
|
-
model = parseFloat(model.toFixed(decimals.value));
|
|
8948
|
-
}
|
|
8959
|
+
model = roundValueFn.value(model);
|
|
8949
8960
|
|
|
8950
8961
|
return between(model, innerMin.value, innerMax.value)
|
|
8951
8962
|
}
|
|
@@ -8971,7 +8982,7 @@ function useSlider ({ updateValue, updatePosition, getDragging, formAttrs }) {
|
|
|
8971
8982
|
}
|
|
8972
8983
|
|
|
8973
8984
|
const markerStep = computed(() => (
|
|
8974
|
-
isNumber(props.markers) === true ? props.markers :
|
|
8985
|
+
isNumber(props.markers) === true ? props.markers : keyStep.value)
|
|
8975
8986
|
);
|
|
8976
8987
|
|
|
8977
8988
|
const markerTicks = computed(() => {
|
|
@@ -9331,8 +9342,8 @@ function useSlider ({ updateValue, updatePosition, getDragging, formAttrs }) {
|
|
|
9331
9342
|
tabindex,
|
|
9332
9343
|
attributes,
|
|
9333
9344
|
|
|
9334
|
-
|
|
9335
|
-
|
|
9345
|
+
roundValueFn,
|
|
9346
|
+
keyStep,
|
|
9336
9347
|
trackLen,
|
|
9337
9348
|
innerMin,
|
|
9338
9349
|
innerMinRatio,
|
|
@@ -9478,7 +9489,7 @@ var QSlider = createComponent({
|
|
|
9478
9489
|
stopAndPrevent(evt);
|
|
9479
9490
|
|
|
9480
9491
|
const
|
|
9481
|
-
stepVal = ([ 34, 33 ].includes(evt.keyCode) ? 10 : 1) * state.
|
|
9492
|
+
stepVal = ([ 34, 33 ].includes(evt.keyCode) ? 10 : 1) * state.keyStep.value,
|
|
9482
9493
|
offset = (
|
|
9483
9494
|
([ 34, 37, 40 ].includes(evt.keyCode) ? -1 : 1)
|
|
9484
9495
|
* (state.isReversed.value === true ? -1 : 1)
|
|
@@ -9486,7 +9497,7 @@ var QSlider = createComponent({
|
|
|
9486
9497
|
);
|
|
9487
9498
|
|
|
9488
9499
|
model.value = between(
|
|
9489
|
-
|
|
9500
|
+
state.roundValueFn.value(model.value + offset),
|
|
9490
9501
|
state.innerMin.value,
|
|
9491
9502
|
state.innerMax.value
|
|
9492
9503
|
);
|
|
@@ -9575,6 +9586,9 @@ var QResizeObserver = createComponent({
|
|
|
9575
9586
|
|
|
9576
9587
|
const { proxy } = getCurrentInstance();
|
|
9577
9588
|
|
|
9589
|
+
// expose public method
|
|
9590
|
+
proxy.trigger = trigger;
|
|
9591
|
+
|
|
9578
9592
|
if (hasObserver === true) {
|
|
9579
9593
|
let observer;
|
|
9580
9594
|
|
|
@@ -9648,9 +9662,6 @@ var QResizeObserver = createComponent({
|
|
|
9648
9662
|
|
|
9649
9663
|
onBeforeUnmount(cleanup);
|
|
9650
9664
|
|
|
9651
|
-
// expose public method
|
|
9652
|
-
proxy.trigger = trigger;
|
|
9653
|
-
|
|
9654
9665
|
return () => {
|
|
9655
9666
|
if (canRender.value === true) {
|
|
9656
9667
|
return h('object', {
|
|
@@ -11172,15 +11183,11 @@ var QColor = createComponent({
|
|
|
11172
11183
|
+ (isDark.value === true ? ' q-color-picker--dark q-dark' : '')
|
|
11173
11184
|
);
|
|
11174
11185
|
|
|
11175
|
-
const attributes = computed(() =>
|
|
11176
|
-
|
|
11177
|
-
|
|
11178
|
-
|
|
11179
|
-
|
|
11180
|
-
return { 'aria-readonly': 'true' }
|
|
11181
|
-
}
|
|
11182
|
-
return {}
|
|
11183
|
-
});
|
|
11186
|
+
const attributes = computed(() => (
|
|
11187
|
+
props.disable === true
|
|
11188
|
+
? { 'aria-disabled': 'true' }
|
|
11189
|
+
: {}
|
|
11190
|
+
));
|
|
11184
11191
|
|
|
11185
11192
|
const spectrumDirective = computed(() => {
|
|
11186
11193
|
// if editable.value === true
|
|
@@ -13890,7 +13897,7 @@ var QDate = createComponent({
|
|
|
13890
13897
|
const attributes = computed(() => (
|
|
13891
13898
|
props.disable === true
|
|
13892
13899
|
? { 'aria-disabled': 'true' }
|
|
13893
|
-
:
|
|
13900
|
+
: {}
|
|
13894
13901
|
));
|
|
13895
13902
|
|
|
13896
13903
|
watch(() => props.modelValue, v => {
|
|
@@ -13924,10 +13931,22 @@ var QDate = createComponent({
|
|
|
13924
13931
|
});
|
|
13925
13932
|
|
|
13926
13933
|
function setToday () {
|
|
13927
|
-
const
|
|
13928
|
-
|
|
13934
|
+
const { year, month, day } = today.value;
|
|
13935
|
+
|
|
13936
|
+
const date = {
|
|
13937
|
+
// contains more props than needed (hour, minute, second, millisecond)
|
|
13938
|
+
// but those aren't used in the processing of this "date" variable
|
|
13939
|
+
...viewModel.value,
|
|
13929
13940
|
|
|
13930
|
-
|
|
13941
|
+
// overwriting with today's date
|
|
13942
|
+
year,
|
|
13943
|
+
month,
|
|
13944
|
+
day
|
|
13945
|
+
};
|
|
13946
|
+
|
|
13947
|
+
const monthMap = daysMap.value[ getMonthHash(date) ];
|
|
13948
|
+
|
|
13949
|
+
if (monthMap === void 0 || monthMap.includes(date.day) === false) {
|
|
13931
13950
|
addToModel(date);
|
|
13932
13951
|
}
|
|
13933
13952
|
|
|
@@ -17526,7 +17545,7 @@ var QEditor = createComponent({
|
|
|
17526
17545
|
const attributes = computed(() => (
|
|
17527
17546
|
props.disable === true
|
|
17528
17547
|
? { 'aria-disabled': 'true' }
|
|
17529
|
-
:
|
|
17548
|
+
: {}
|
|
17530
17549
|
));
|
|
17531
17550
|
|
|
17532
17551
|
function onInput () {
|
|
@@ -18725,6 +18744,7 @@ const useValidateProps = {
|
|
|
18725
18744
|
reactiveRules: Boolean,
|
|
18726
18745
|
lazyRules: {
|
|
18727
18746
|
type: [ Boolean, String ],
|
|
18747
|
+
default: false, // statement unneeded but avoids future vue implementation changes
|
|
18728
18748
|
validator: v => lazyRulesValues.includes(v)
|
|
18729
18749
|
}
|
|
18730
18750
|
};
|
|
@@ -18746,10 +18766,14 @@ function useValidate (focused, innerLoading) {
|
|
|
18746
18766
|
&& props.rules.length !== 0
|
|
18747
18767
|
);
|
|
18748
18768
|
|
|
18749
|
-
const
|
|
18769
|
+
const canDebounceValidate = computed(() => (
|
|
18750
18770
|
props.disable !== true
|
|
18751
18771
|
&& hasRules.value === true
|
|
18752
|
-
|
|
18772
|
+
// Should not have a validation in progress already;
|
|
18773
|
+
// It might mean that focus switched to submit btn and
|
|
18774
|
+
// QForm's submit() has been called already (ENTER key)
|
|
18775
|
+
&& innerLoading.value === false
|
|
18776
|
+
));
|
|
18753
18777
|
|
|
18754
18778
|
const hasError = computed(() =>
|
|
18755
18779
|
props.error === true || innerError.value === true
|
|
@@ -18762,15 +18786,29 @@ function useValidate (focused, innerLoading) {
|
|
|
18762
18786
|
));
|
|
18763
18787
|
|
|
18764
18788
|
watch(() => props.modelValue, () => {
|
|
18765
|
-
|
|
18789
|
+
isDirtyModel.value = true;
|
|
18790
|
+
|
|
18791
|
+
if (
|
|
18792
|
+
canDebounceValidate.value === true
|
|
18793
|
+
// trigger validation if not using any kind of lazy-rules
|
|
18794
|
+
&& props.lazyRules === false
|
|
18795
|
+
) {
|
|
18796
|
+
debouncedValidate();
|
|
18797
|
+
}
|
|
18766
18798
|
});
|
|
18767
18799
|
|
|
18768
18800
|
watch(() => props.reactiveRules, val => {
|
|
18769
18801
|
if (val === true) {
|
|
18770
18802
|
if (unwatchRules === void 0) {
|
|
18771
18803
|
unwatchRules = watch(() => props.rules, () => {
|
|
18772
|
-
|
|
18773
|
-
|
|
18804
|
+
if (
|
|
18805
|
+
canDebounceValidate.value === true
|
|
18806
|
+
&& isDirtyModel.value === true
|
|
18807
|
+
&& props.lazyRules !== 'ondemand'
|
|
18808
|
+
) {
|
|
18809
|
+
debouncedValidate();
|
|
18810
|
+
}
|
|
18811
|
+
}, { immediate: true });
|
|
18774
18812
|
}
|
|
18775
18813
|
}
|
|
18776
18814
|
else if (unwatchRules !== void 0) {
|
|
@@ -18779,25 +18817,32 @@ function useValidate (focused, innerLoading) {
|
|
|
18779
18817
|
}
|
|
18780
18818
|
}, { immediate: true });
|
|
18781
18819
|
|
|
18820
|
+
watch(() => props.lazyRules, val => {
|
|
18821
|
+
if (
|
|
18822
|
+
val === false
|
|
18823
|
+
&& canDebounceValidate.value === true
|
|
18824
|
+
&& isDirtyModel.value === true
|
|
18825
|
+
) {
|
|
18826
|
+
debouncedValidate();
|
|
18827
|
+
}
|
|
18828
|
+
});
|
|
18829
|
+
|
|
18782
18830
|
watch(focused, val => {
|
|
18783
18831
|
if (val === true) {
|
|
18784
18832
|
if (isDirtyModel.value === null) {
|
|
18785
|
-
isDirtyModel.value =
|
|
18833
|
+
isDirtyModel.value = props.lazyRules === true;
|
|
18786
18834
|
}
|
|
18787
18835
|
}
|
|
18788
|
-
else if (
|
|
18789
|
-
|
|
18790
|
-
|
|
18791
|
-
|
|
18792
|
-
|
|
18793
|
-
|
|
18794
|
-
|
|
18795
|
-
|
|
18796
|
-
|
|
18797
|
-
|
|
18798
|
-
) {
|
|
18799
|
-
debouncedValidate();
|
|
18800
|
-
}
|
|
18836
|
+
else if (
|
|
18837
|
+
canDebounceValidate.value === true
|
|
18838
|
+
&& (
|
|
18839
|
+
// props.lazyRules can also be 'ondemand',
|
|
18840
|
+
// hence the following form:
|
|
18841
|
+
props.lazyRules === false
|
|
18842
|
+
|| (props.lazyRules === true && isDirtyModel.value === true)
|
|
18843
|
+
)
|
|
18844
|
+
) {
|
|
18845
|
+
debouncedValidate();
|
|
18801
18846
|
}
|
|
18802
18847
|
});
|
|
18803
18848
|
|
|
@@ -18817,7 +18862,10 @@ function useValidate (focused, innerLoading) {
|
|
|
18817
18862
|
* - Promise (pending async validation)
|
|
18818
18863
|
*/
|
|
18819
18864
|
function validate (val = props.modelValue) {
|
|
18820
|
-
if (
|
|
18865
|
+
if (
|
|
18866
|
+
props.disable === true
|
|
18867
|
+
|| hasRules.value === false
|
|
18868
|
+
) {
|
|
18821
18869
|
return true
|
|
18822
18870
|
}
|
|
18823
18871
|
|
|
@@ -18886,16 +18934,6 @@ function useValidate (focused, innerLoading) {
|
|
|
18886
18934
|
)
|
|
18887
18935
|
}
|
|
18888
18936
|
|
|
18889
|
-
function validateIfNeeded (changedRules) {
|
|
18890
|
-
if (
|
|
18891
|
-
hasActiveRules.value === true
|
|
18892
|
-
&& props.lazyRules !== 'ondemand'
|
|
18893
|
-
&& (isDirtyModel.value === true || (props.lazyRules !== true && changedRules !== true))
|
|
18894
|
-
) {
|
|
18895
|
-
debouncedValidate();
|
|
18896
|
-
}
|
|
18897
|
-
}
|
|
18898
|
-
|
|
18899
18937
|
const debouncedValidate = debounce(validate, 0);
|
|
18900
18938
|
|
|
18901
18939
|
onBeforeUnmount(() => {
|
|
@@ -19163,9 +19201,6 @@ function useField (state) {
|
|
|
19163
19201
|
if (props.disable === true) {
|
|
19164
19202
|
acc[ 'aria-disabled' ] = 'true';
|
|
19165
19203
|
}
|
|
19166
|
-
else if (props.readonly === true) {
|
|
19167
|
-
acc[ 'aria-readonly' ] = 'true';
|
|
19168
|
-
}
|
|
19169
19204
|
|
|
19170
19205
|
return acc
|
|
19171
19206
|
});
|
|
@@ -25599,15 +25634,15 @@ var QRange = createComponent({
|
|
|
25599
25634
|
case dragType.RANGE:
|
|
25600
25635
|
const
|
|
25601
25636
|
ratioDelta = ratio - dragging.offsetRatio,
|
|
25602
|
-
minR = between(dragging.ratioMin + ratioDelta,
|
|
25637
|
+
minR = between(dragging.ratioMin + ratioDelta, state.innerMinRatio.value, state.innerMaxRatio.value - dragging.rangeRatio),
|
|
25603
25638
|
modelDelta = localModel - dragging.offsetModel,
|
|
25604
|
-
min = between(dragging.valueMin + modelDelta,
|
|
25639
|
+
min = between(dragging.valueMin + modelDelta, state.innerMin.value, state.innerMax.value - dragging.rangeValue);
|
|
25605
25640
|
|
|
25606
25641
|
pos = {
|
|
25607
25642
|
minR,
|
|
25608
25643
|
maxR: minR + dragging.rangeRatio,
|
|
25609
|
-
min:
|
|
25610
|
-
max:
|
|
25644
|
+
min: state.roundValueFn.value(min),
|
|
25645
|
+
max: state.roundValueFn.value(min + dragging.rangeValue)
|
|
25611
25646
|
};
|
|
25612
25647
|
|
|
25613
25648
|
state.focus.value = 'both';
|
|
@@ -25637,7 +25672,7 @@ var QRange = createComponent({
|
|
|
25637
25672
|
stopAndPrevent(evt);
|
|
25638
25673
|
|
|
25639
25674
|
const
|
|
25640
|
-
stepVal = ([ 34, 33 ].includes(evt.keyCode) ? 10 : 1) * state.
|
|
25675
|
+
stepVal = ([ 34, 33 ].includes(evt.keyCode) ? 10 : 1) * state.keyStep.value,
|
|
25641
25676
|
offset = (
|
|
25642
25677
|
([ 34, 37, 40 ].includes(evt.keyCode) ? -1 : 1)
|
|
25643
25678
|
* (state.isReversed.value === true ? -1 : 1)
|
|
@@ -25647,14 +25682,14 @@ var QRange = createComponent({
|
|
|
25647
25682
|
if (state.focus.value === 'both') {
|
|
25648
25683
|
const interval = model.value.max - model.value.min;
|
|
25649
25684
|
const min = between(
|
|
25650
|
-
|
|
25685
|
+
state.roundValueFn.value(model.value.min + offset),
|
|
25651
25686
|
state.innerMin.value,
|
|
25652
25687
|
state.innerMax.value - interval
|
|
25653
25688
|
);
|
|
25654
25689
|
|
|
25655
25690
|
model.value = {
|
|
25656
25691
|
min,
|
|
25657
|
-
max:
|
|
25692
|
+
max: state.roundValueFn.value(min + interval)
|
|
25658
25693
|
};
|
|
25659
25694
|
}
|
|
25660
25695
|
else if (state.focus.value === false) {
|
|
@@ -25666,7 +25701,7 @@ var QRange = createComponent({
|
|
|
25666
25701
|
model.value = {
|
|
25667
25702
|
...model.value,
|
|
25668
25703
|
[ which ]: between(
|
|
25669
|
-
|
|
25704
|
+
state.roundValueFn.value(model.value[ which ] + offset),
|
|
25670
25705
|
which === 'min' ? state.innerMin.value : model.value.min,
|
|
25671
25706
|
which === 'max' ? state.innerMax.value : model.value.max
|
|
25672
25707
|
)
|
|
@@ -27519,11 +27554,12 @@ var QSelect = createComponent({
|
|
|
27519
27554
|
|
|
27520
27555
|
return props.options.slice(from, to).map((opt, i) => {
|
|
27521
27556
|
const disable = isOptionDisabled.value(opt) === true;
|
|
27557
|
+
const active = isOptionSelected(opt) === true;
|
|
27522
27558
|
const index = from + i;
|
|
27523
27559
|
|
|
27524
27560
|
const itemProps = {
|
|
27525
27561
|
clickable: true,
|
|
27526
|
-
active
|
|
27562
|
+
active,
|
|
27527
27563
|
activeClass: computedOptionsSelectedClass.value,
|
|
27528
27564
|
manualFocus: true,
|
|
27529
27565
|
focused: false,
|
|
@@ -27532,16 +27568,14 @@ var QSelect = createComponent({
|
|
|
27532
27568
|
dense: props.optionsDense,
|
|
27533
27569
|
dark: isOptionsDark.value,
|
|
27534
27570
|
role: 'option',
|
|
27571
|
+
'aria-selected': active === true ? 'true' : 'false',
|
|
27535
27572
|
id: `${ state.targetUid.value }_${ index }`,
|
|
27536
27573
|
onClick: () => { toggleOption(opt); }
|
|
27537
27574
|
};
|
|
27538
27575
|
|
|
27539
27576
|
if (disable !== true) {
|
|
27540
|
-
isOptionSelected(opt) === true && (itemProps.active = true);
|
|
27541
27577
|
optionIndex.value === index && (itemProps.focused = true);
|
|
27542
27578
|
|
|
27543
|
-
itemProps[ 'aria-selected' ] = itemProps.active === true ? 'true' : 'false';
|
|
27544
|
-
|
|
27545
27579
|
if ($q.platform.is.desktop === true) {
|
|
27546
27580
|
itemProps.onMousemove = () => { menu.value === true && setOptionIndex(index); };
|
|
27547
27581
|
}
|
|
@@ -39669,6 +39703,7 @@ const notificationsList = {};
|
|
|
39669
39703
|
const positionClass = {};
|
|
39670
39704
|
const emptyRE = /^\s*$/;
|
|
39671
39705
|
const notifRefs = [];
|
|
39706
|
+
const invalidTimeoutValues = [ void 0, null, true, false, '' ];
|
|
39672
39707
|
|
|
39673
39708
|
const positionList = [
|
|
39674
39709
|
'top-left', 'top-right',
|
|
@@ -39762,15 +39797,15 @@ function addNotification (config, $q, originalApi) {
|
|
|
39762
39797
|
notif.position = 'bottom';
|
|
39763
39798
|
}
|
|
39764
39799
|
|
|
39765
|
-
if (notif.timeout ===
|
|
39800
|
+
if (invalidTimeoutValues.includes(notif.timeout) === true) {
|
|
39766
39801
|
notif.timeout = 5000;
|
|
39767
39802
|
}
|
|
39768
39803
|
else {
|
|
39769
|
-
const t =
|
|
39804
|
+
const t = Number(notif.timeout); // we catch exponential notation too with Number() casting
|
|
39770
39805
|
if (isNaN(t) || t < 0) {
|
|
39771
39806
|
return logError('wrong timeout', config)
|
|
39772
39807
|
}
|
|
39773
|
-
notif.timeout = t;
|
|
39808
|
+
notif.timeout = Number.isFinite(t) ? t : 0;
|
|
39774
39809
|
}
|
|
39775
39810
|
|
|
39776
39811
|
if (notif.timeout === 0) {
|
|
@@ -40838,7 +40873,7 @@ function runSequentialPromises (
|
|
|
40838
40873
|
*/
|
|
40839
40874
|
|
|
40840
40875
|
const Quasar = {
|
|
40841
|
-
version: '2.14.
|
|
40876
|
+
version: '2.14.2',
|
|
40842
40877
|
install: installQuasar,
|
|
40843
40878
|
lang: Plugin$8,
|
|
40844
40879
|
iconSet: Plugin$7
|