quasar 2.12.7 → 2.13.0
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/QField.json +0 -3
- package/dist/api/QSelect.json +1 -1
- package/dist/api/QTable.json +54 -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 +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 +2 -2
- package/dist/icon-set/svg-material-icons-round.umd.prod.js +2 -2
- package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +2 -2
- package/dist/icon-set/svg-material-icons.umd.prod.js +2 -2
- package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +2 -2
- package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +2 -2
- package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +2 -2
- 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 +6 -0
- package/dist/lang/de-DE.umd.prod.js +6 -0
- 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.addon.prod.css +1 -1
- package/dist/quasar.addon.rtl.prod.css +1 -1
- package/dist/quasar.cjs.prod.js +2 -2
- package/dist/quasar.esm.js +96 -28
- package/dist/quasar.esm.prod.js +2 -2
- package/dist/quasar.prod.css +1 -1
- package/dist/quasar.rtl.prod.css +1 -1
- package/dist/quasar.sass +1 -1
- package/dist/quasar.umd.js +96 -28
- package/dist/quasar.umd.prod.js +2 -2
- package/dist/types/index.d.ts +13 -3
- package/dist/vetur/quasar-attributes.json +1 -1
- package/dist/web-types/web-types.json +2 -6
- package/lang/de-CH.js +98 -0
- package/lang/de-CH.mjs +93 -0
- package/lang/de-DE.js +98 -0
- package/lang/de-DE.mjs +93 -0
- package/lang/index.json +8 -0
- package/package.json +4 -3
- package/src/components/field/__tests__/QField.cy.js +156 -0
- package/src/components/input/use-mask.js +6 -1
- package/src/components/scroll-area/QScrollArea.js +16 -1
- package/src/components/select/QSelect.js +42 -17
- package/src/components/select/QSelect.json +1 -1
- package/src/components/select/__tests__/QSelect.cy.js +2 -1
- package/src/components/table/QTable.json +38 -1
- package/src/components/table/table-sort.js +5 -0
- package/src/components/time/QTime.js +16 -3
- package/src/components/tree/QTree.js +8 -3
- package/src/composables/private/__tests__/FieldWrapper.vue +17 -2
- package/src/composables/private/__tests__/use-field.cy.js +334 -137
- package/src/composables/private/__tests__/use-validate.cy.js +162 -15
package/dist/quasar.sass
CHANGED
package/dist/quasar.umd.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Quasar Framework v2.
|
|
2
|
+
* Quasar Framework v2.13.0
|
|
3
3
|
* (c) 2015-present Razvan Stoenescu
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -1653,7 +1653,7 @@
|
|
|
1653
1653
|
}
|
|
1654
1654
|
|
|
1655
1655
|
var installQuasar = function (parentApp, opts = {}) {
|
|
1656
|
-
const $q = { version: '2.
|
|
1656
|
+
const $q = { version: '2.13.0' };
|
|
1657
1657
|
|
|
1658
1658
|
if (globalConfigIsFrozen === false) {
|
|
1659
1659
|
if (opts.config !== void 0) {
|
|
@@ -21616,7 +21616,12 @@
|
|
|
21616
21616
|
? unmaskValue(masked)
|
|
21617
21617
|
: masked;
|
|
21618
21618
|
|
|
21619
|
-
|
|
21619
|
+
if (
|
|
21620
|
+
String(props.modelValue) !== val
|
|
21621
|
+
&& (props.modelValue !== null || val !== '')
|
|
21622
|
+
) {
|
|
21623
|
+
emitValue(val, true);
|
|
21624
|
+
}
|
|
21620
21625
|
}
|
|
21621
21626
|
|
|
21622
21627
|
function moveCursorForPaste (inp, start, end) {
|
|
@@ -26297,11 +26302,26 @@
|
|
|
26297
26302
|
targetRef.value[ dirProps[ axis ].scroll ] = offset;
|
|
26298
26303
|
}
|
|
26299
26304
|
|
|
26305
|
+
let mouseEventTimer = null;
|
|
26306
|
+
|
|
26300
26307
|
function onMouseenter () {
|
|
26301
|
-
|
|
26308
|
+
if (mouseEventTimer !== null) {
|
|
26309
|
+
clearTimeout(mouseEventTimer);
|
|
26310
|
+
}
|
|
26311
|
+
|
|
26312
|
+
// setTimeout needed for iOS; see ticket #16210
|
|
26313
|
+
mouseEventTimer = setTimeout(() => {
|
|
26314
|
+
mouseEventTimer = null;
|
|
26315
|
+
hover.value = true;
|
|
26316
|
+
}, proxy.$q.platform.is.ios ? 50 : 0);
|
|
26302
26317
|
}
|
|
26303
26318
|
|
|
26304
26319
|
function onMouseleave () {
|
|
26320
|
+
if (mouseEventTimer !== null) {
|
|
26321
|
+
clearTimeout(mouseEventTimer);
|
|
26322
|
+
mouseEventTimer = null;
|
|
26323
|
+
}
|
|
26324
|
+
|
|
26305
26325
|
hover.value = false;
|
|
26306
26326
|
}
|
|
26307
26327
|
|
|
@@ -27295,7 +27315,8 @@
|
|
|
27295
27315
|
const dialogFieldFocused = vue.ref(false);
|
|
27296
27316
|
const innerLoadingIndicator = vue.ref(false);
|
|
27297
27317
|
|
|
27298
|
-
let
|
|
27318
|
+
let filterTimer = null, inputValueTimer = null,
|
|
27319
|
+
innerValueCache,
|
|
27299
27320
|
hasDialog, userInputValue, filterId = null, defaultInputValue,
|
|
27300
27321
|
transitionShowComputed, searchBuffer, searchBufferExp;
|
|
27301
27322
|
|
|
@@ -27740,9 +27761,11 @@
|
|
|
27740
27761
|
scrollTo(index);
|
|
27741
27762
|
|
|
27742
27763
|
if (skipInputValue !== true && props.useInput === true && props.fillInput === true) {
|
|
27743
|
-
setInputValue(
|
|
27744
|
-
|
|
27745
|
-
|
|
27764
|
+
setInputValue(
|
|
27765
|
+
index >= 0
|
|
27766
|
+
? getOptionLabel.value(props.options[ index ])
|
|
27767
|
+
: defaultInputValue,
|
|
27768
|
+
true
|
|
27746
27769
|
);
|
|
27747
27770
|
}
|
|
27748
27771
|
}
|
|
@@ -27803,9 +27826,13 @@
|
|
|
27803
27826
|
|
|
27804
27827
|
e.target.value = '';
|
|
27805
27828
|
|
|
27806
|
-
if (
|
|
27807
|
-
clearTimeout(
|
|
27808
|
-
|
|
27829
|
+
if (filterTimer !== null) {
|
|
27830
|
+
clearTimeout(filterTimer);
|
|
27831
|
+
filterTimer = null;
|
|
27832
|
+
}
|
|
27833
|
+
if (inputValueTimer !== null) {
|
|
27834
|
+
clearTimeout(inputValueTimer);
|
|
27835
|
+
inputValueTimer = null;
|
|
27809
27836
|
}
|
|
27810
27837
|
|
|
27811
27838
|
resetInputValue();
|
|
@@ -27896,6 +27923,10 @@
|
|
|
27896
27923
|
// backspace
|
|
27897
27924
|
if (
|
|
27898
27925
|
e.keyCode === 8
|
|
27926
|
+
&& (
|
|
27927
|
+
props.useChips === true
|
|
27928
|
+
|| props.clearable === true
|
|
27929
|
+
)
|
|
27899
27930
|
&& props.hideSelected !== true
|
|
27900
27931
|
&& inputValue.value.length === 0
|
|
27901
27932
|
) {
|
|
@@ -27990,7 +28021,7 @@
|
|
|
27990
28021
|
scrollTo(index);
|
|
27991
28022
|
|
|
27992
28023
|
if (index >= 0 && props.useInput === true && props.fillInput === true) {
|
|
27993
|
-
setInputValue(getOptionLabel.value(props.options[ index ]));
|
|
28024
|
+
setInputValue(getOptionLabel.value(props.options[ index ]), true);
|
|
27994
28025
|
}
|
|
27995
28026
|
});
|
|
27996
28027
|
}
|
|
@@ -28176,9 +28207,13 @@
|
|
|
28176
28207
|
}
|
|
28177
28208
|
|
|
28178
28209
|
function onInput (e) {
|
|
28179
|
-
if (
|
|
28180
|
-
clearTimeout(
|
|
28181
|
-
|
|
28210
|
+
if (filterTimer !== null) {
|
|
28211
|
+
clearTimeout(filterTimer);
|
|
28212
|
+
filterTimer = null;
|
|
28213
|
+
}
|
|
28214
|
+
if (inputValueTimer !== null) {
|
|
28215
|
+
clearTimeout(inputValueTimer);
|
|
28216
|
+
inputValueTimer = null;
|
|
28182
28217
|
}
|
|
28183
28218
|
|
|
28184
28219
|
if (e && e.target && e.target.qComposing === true) {
|
|
@@ -28199,17 +28234,26 @@
|
|
|
28199
28234
|
}
|
|
28200
28235
|
|
|
28201
28236
|
if (props.onFilter !== void 0) {
|
|
28202
|
-
|
|
28203
|
-
|
|
28237
|
+
filterTimer = setTimeout(() => {
|
|
28238
|
+
filterTimer = null;
|
|
28204
28239
|
filter(inputValue.value);
|
|
28205
28240
|
}, props.inputDebounce);
|
|
28206
28241
|
}
|
|
28207
28242
|
}
|
|
28208
28243
|
|
|
28209
|
-
function setInputValue (val) {
|
|
28244
|
+
function setInputValue (val, emitImmediately) {
|
|
28210
28245
|
if (inputValue.value !== val) {
|
|
28211
28246
|
inputValue.value = val;
|
|
28212
|
-
|
|
28247
|
+
|
|
28248
|
+
if (emitImmediately === true || props.inputDebounce === 0 || props.inputDebounce === '0') {
|
|
28249
|
+
emit('inputValue', val);
|
|
28250
|
+
}
|
|
28251
|
+
else {
|
|
28252
|
+
inputValueTimer = setTimeout(() => {
|
|
28253
|
+
inputValueTimer = null;
|
|
28254
|
+
emit('inputValue', val);
|
|
28255
|
+
}, props.inputDebounce);
|
|
28256
|
+
}
|
|
28213
28257
|
}
|
|
28214
28258
|
}
|
|
28215
28259
|
|
|
@@ -28217,7 +28261,7 @@
|
|
|
28217
28261
|
userInputValue = internal !== true;
|
|
28218
28262
|
|
|
28219
28263
|
if (props.useInput === true) {
|
|
28220
|
-
setInputValue(val);
|
|
28264
|
+
setInputValue(val, true);
|
|
28221
28265
|
|
|
28222
28266
|
if (noFiltering === true || internal !== true) {
|
|
28223
28267
|
defaultInputValue = val;
|
|
@@ -28570,7 +28614,8 @@
|
|
|
28570
28614
|
updatePreState();
|
|
28571
28615
|
|
|
28572
28616
|
vue.onBeforeUnmount(() => {
|
|
28573
|
-
|
|
28617
|
+
filterTimer !== null && clearTimeout(filterTimer);
|
|
28618
|
+
inputValueTimer !== null && clearTimeout(inputValueTimer);
|
|
28574
28619
|
});
|
|
28575
28620
|
|
|
28576
28621
|
// expose public methods
|
|
@@ -31894,6 +31939,9 @@
|
|
|
31894
31939
|
A = val(a),
|
|
31895
31940
|
B = val(b);
|
|
31896
31941
|
|
|
31942
|
+
if (col.rawSort !== void 0) {
|
|
31943
|
+
return col.rawSort(A, B, a, b) * dir
|
|
31944
|
+
}
|
|
31897
31945
|
if (A === null || A === void 0) {
|
|
31898
31946
|
return -1 * dir
|
|
31899
31947
|
}
|
|
@@ -31901,6 +31949,8 @@
|
|
|
31901
31949
|
return 1 * dir
|
|
31902
31950
|
}
|
|
31903
31951
|
if (col.sort !== void 0) {
|
|
31952
|
+
// gets called without rows that have null/undefined as value
|
|
31953
|
+
// due to the above two statements
|
|
31904
31954
|
return col.sort(A, B, a, b) * dir
|
|
31905
31955
|
}
|
|
31906
31956
|
if (isNumber(A) === true && isNumber(B) === true) {
|
|
@@ -34255,23 +34305,36 @@
|
|
|
34255
34305
|
}
|
|
34256
34306
|
}
|
|
34257
34307
|
|
|
34308
|
+
function goToViewWhenHasModel (newView) {
|
|
34309
|
+
const model = props.modelValue;
|
|
34310
|
+
if (
|
|
34311
|
+
view.value !== newView
|
|
34312
|
+
&& model !== void 0
|
|
34313
|
+
&& model !== null
|
|
34314
|
+
&& model !== ''
|
|
34315
|
+
&& typeof model !== 'string'
|
|
34316
|
+
) {
|
|
34317
|
+
view.value = newView;
|
|
34318
|
+
}
|
|
34319
|
+
}
|
|
34320
|
+
|
|
34258
34321
|
function verifyAndUpdate () {
|
|
34259
34322
|
if (hourInSelection.value !== null && hourInSelection.value(innerModel.value.hour) !== true) {
|
|
34260
34323
|
innerModel.value = __splitDate();
|
|
34261
|
-
|
|
34324
|
+
goToViewWhenHasModel('hour');
|
|
34262
34325
|
return
|
|
34263
34326
|
}
|
|
34264
34327
|
|
|
34265
34328
|
if (minuteInSelection.value !== null && minuteInSelection.value(innerModel.value.minute) !== true) {
|
|
34266
34329
|
innerModel.value.minute = null;
|
|
34267
34330
|
innerModel.value.second = null;
|
|
34268
|
-
|
|
34331
|
+
goToViewWhenHasModel('minute');
|
|
34269
34332
|
return
|
|
34270
34333
|
}
|
|
34271
34334
|
|
|
34272
34335
|
if (props.withSeconds === true && secondInSelection.value !== null && secondInSelection.value(innerModel.value.second) !== true) {
|
|
34273
34336
|
innerModel.value.second = null;
|
|
34274
|
-
|
|
34337
|
+
goToViewWhenHasModel('second');
|
|
34275
34338
|
return
|
|
34276
34339
|
}
|
|
34277
34340
|
|
|
@@ -35157,6 +35220,8 @@
|
|
|
35157
35220
|
+ (m.selected === true ? ' q-tree__node--selected' : '')
|
|
35158
35221
|
+ (m.disabled === true ? ' q-tree__node--disabled' : ''),
|
|
35159
35222
|
tabindex: m.link === true ? 0 : -1,
|
|
35223
|
+
ariaExpanded: children.length > 0 ? m.expanded : null,
|
|
35224
|
+
role: 'treeitem',
|
|
35160
35225
|
onClick: (e) => {
|
|
35161
35226
|
onClick(node, m, e);
|
|
35162
35227
|
},
|
|
@@ -35230,7 +35295,8 @@
|
|
|
35230
35295
|
body,
|
|
35231
35296
|
vue.h('div', {
|
|
35232
35297
|
class: 'q-tree__children'
|
|
35233
|
-
+ (m.disabled === true ? ' q-tree__node--disabled' : '')
|
|
35298
|
+
+ (m.disabled === true ? ' q-tree__node--disabled' : ''),
|
|
35299
|
+
role: 'group'
|
|
35234
35300
|
}, children)
|
|
35235
35301
|
])
|
|
35236
35302
|
: null
|
|
@@ -35248,7 +35314,8 @@
|
|
|
35248
35314
|
body,
|
|
35249
35315
|
vue.h('div', {
|
|
35250
35316
|
class: 'q-tree__children'
|
|
35251
|
-
+ (m.disabled === true ? ' q-tree__node--disabled' : '')
|
|
35317
|
+
+ (m.disabled === true ? ' q-tree__node--disabled' : ''),
|
|
35318
|
+
role: 'group'
|
|
35252
35319
|
}, children)
|
|
35253
35320
|
]),
|
|
35254
35321
|
[ [ vue.vShow, m.expanded ] ]
|
|
@@ -35342,7 +35409,8 @@
|
|
|
35342
35409
|
|
|
35343
35410
|
return vue.h(
|
|
35344
35411
|
'div', {
|
|
35345
|
-
class: classes.value
|
|
35412
|
+
class: classes.value,
|
|
35413
|
+
role: 'tree'
|
|
35346
35414
|
},
|
|
35347
35415
|
children.length === 0
|
|
35348
35416
|
? (
|
|
@@ -40932,7 +41000,7 @@
|
|
|
40932
41000
|
*/
|
|
40933
41001
|
|
|
40934
41002
|
var index_umd = {
|
|
40935
|
-
version: '2.
|
|
41003
|
+
version: '2.13.0',
|
|
40936
41004
|
install (app, opts) {
|
|
40937
41005
|
installQuasar(app, {
|
|
40938
41006
|
components,
|