quasar 2.11.6 → 2.11.8
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/BottomSheet.json +13 -0
- package/dist/api/QCarousel.json +9 -0
- package/dist/api/QEditor.json +49 -0
- package/dist/api/QTable.json +9 -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 +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.umd.prod.js +1 -1
- package/dist/lang/el.umd.prod.js +1 -1
- package/dist/lang/en-GB.umd.prod.js +1 -1
- package/dist/lang/en-US.umd.prod.js +1 -1
- package/dist/lang/eo.umd.prod.js +1 -1
- package/dist/lang/es.umd.prod.js +1 -1
- package/dist/lang/et.umd.prod.js +1 -1
- package/dist/lang/eu.umd.prod.js +1 -1
- package/dist/lang/fa-IR.umd.prod.js +1 -1
- package/dist/lang/fa.umd.prod.js +1 -1
- package/dist/lang/fi.umd.prod.js +1 -1
- package/dist/lang/fr.umd.prod.js +1 -1
- package/dist/lang/gn.umd.prod.js +1 -1
- package/dist/lang/he.umd.prod.js +1 -1
- package/dist/lang/hr.umd.prod.js +1 -1
- package/dist/lang/hu.umd.prod.js +1 -1
- package/dist/lang/id.umd.prod.js +1 -1
- package/dist/lang/is.umd.prod.js +1 -1
- package/dist/lang/it.umd.prod.js +1 -1
- package/dist/lang/ja.umd.prod.js +2 -2
- package/dist/lang/kk.umd.prod.js +1 -1
- package/dist/lang/km.umd.prod.js +1 -1
- package/dist/lang/ko-KR.umd.prod.js +1 -1
- package/dist/lang/kur-CKB.umd.prod.js +1 -1
- package/dist/lang/lt.umd.prod.js +1 -1
- package/dist/lang/lu.umd.prod.js +1 -1
- package/dist/lang/lv.umd.prod.js +1 -1
- package/dist/lang/ml.umd.prod.js +1 -1
- package/dist/lang/mm.umd.prod.js +1 -1
- package/dist/lang/ms.umd.prod.js +1 -1
- package/dist/lang/my.umd.prod.js +1 -1
- package/dist/lang/nb-NO.umd.prod.js +1 -1
- package/dist/lang/nl.umd.prod.js +1 -1
- package/dist/lang/pl.umd.prod.js +1 -1
- package/dist/lang/pt-BR.umd.prod.js +1 -1
- package/dist/lang/pt.umd.prod.js +1 -1
- package/dist/lang/ro.umd.prod.js +1 -1
- package/dist/lang/ru.umd.prod.js +1 -1
- package/dist/lang/sk.umd.prod.js +1 -1
- package/dist/lang/sl.umd.prod.js +1 -1
- package/dist/lang/sm.umd.prod.js +1 -1
- package/dist/lang/sr-CYR.umd.prod.js +1 -1
- package/dist/lang/sr.umd.prod.js +1 -1
- package/dist/lang/sv.umd.prod.js +1 -1
- package/dist/lang/ta.umd.prod.js +1 -1
- package/dist/lang/th.umd.prod.js +1 -1
- package/dist/lang/tr.umd.prod.js +1 -1
- package/dist/lang/ug.umd.prod.js +1 -1
- package/dist/lang/uk.umd.prod.js +1 -1
- package/dist/lang/uz-Cyrl.umd.prod.js +1 -1
- package/dist/lang/uz-Latn.umd.prod.js +1 -1
- package/dist/lang/vi.umd.prod.js +1 -1
- package/dist/lang/zh-CN.umd.prod.js +1 -1
- package/dist/lang/zh-TW.umd.prod.js +1 -1
- package/dist/quasar.cjs.prod.js +2 -2
- package/dist/quasar.css +2 -2
- package/dist/quasar.esm.js +127 -75
- package/dist/quasar.esm.prod.js +2 -2
- package/dist/quasar.prod.css +1 -1
- package/dist/quasar.rtl.css +2 -2
- package/dist/quasar.rtl.prod.css +1 -1
- package/dist/quasar.sass +17 -5
- package/dist/quasar.umd.js +127 -75
- package/dist/quasar.umd.prod.js +2 -2
- package/dist/transforms/auto-import.json +47 -3
- package/dist/transforms/import-map.json +22 -0
- package/dist/types/index.d.ts +43 -0
- package/dist/web-types/web-types.json +92 -1
- package/lang/ja.js +1 -1
- package/lang/ja.mjs +1 -1
- package/package.json +9 -6
- package/src/components/avatar/__tests__/{QAvatar.spec.js → QAvatar.cy.js} +7 -8
- package/src/components/badge/__tests__/{QBadge.spec.js → QBadge.cy.js} +1 -2
- package/src/components/banner/__tests__/{QBanner.spec.js → QBanner.cy.js} +7 -8
- package/src/components/bar/__tests__/{QBar.spec.js → QBar.cy.js} +3 -4
- package/src/components/breadcrumbs/__tests__/{QBreadcrumbs.spec.js → QBreadcrumbs.cy.js} +8 -9
- package/src/components/breadcrumbs/__tests__/{QBreadcrumbsEl.spec.js → QBreadcrumbsEl.cy.js} +5 -6
- package/src/components/btn/__tests__/{QBtn.spec.js → QBtn.cy.js} +4 -5
- package/src/components/btn/__tests__/{use-btn.spec.js → use-btn.cy.js} +1 -2
- package/src/components/chip/__tests__/{QChip.spec.js → QChip.cy.js} +1 -2
- package/src/components/date/QDate.js +10 -9
- package/src/components/dialog-bottom-sheet/BottomSheet.js +2 -0
- package/src/components/editor/QEditor.js +6 -1
- package/src/components/editor/QEditor.json +40 -0
- package/src/components/editor/editor-utils.js +5 -1
- package/src/components/field/QField.sass +16 -4
- package/src/components/input/QInput.js +24 -7
- package/src/components/input/use-mask.js +72 -50
- package/src/components/menu/__tests__/{QMenu.spec.js → QMenu.cy.js} +29 -30
- package/src/components/select/QSelect.js +2 -1
- package/src/components/select/__tests__/{QSelect.spec.js → QSelect.cy.js} +2 -3
- package/src/components/table/QTable.js +1 -1
- package/src/components/tree/QTree.js +2 -2
- package/src/components/uploader/__tests__/{QUploader.spec.js → QUploader.cy.js} +1 -2
- package/src/composables/private/__tests__/{use-anchor.spec.js → use-anchor.cy.js} +7 -8
- package/src/composables/private/__tests__/{use-field.spec.js → use-field.cy.js} +7 -8
- package/src/composables/private/__tests__/{use-model-toggle.spec.js → use-model-toggle.cy.js} +17 -18
- package/src/composables/private/__tests__/{use-size.spec.js → use-size.cy.js} +4 -5
- package/src/composables/private/__tests__/{use-transition.spec.js → use-transition.cy.js} +9 -10
- package/src/composables/private/__tests__/{use-validate.spec.js → use-validate.cy.js} +5 -6
- package/src/composables/private/use-fullscreen.json +12 -0
- package/src/plugins/BottomSheet.json +8 -0
- /package/src/components/date/__tests__/{QDate.spec.js → QDate.cy.js} +0 -0
- /package/src/components/dialog/__tests__/{QDialog.spec.js → QDialog.cy.js} +0 -0
- /package/src/components/editor/__tests__/{QEditor.spec.js → QEditor.cy.js} +0 -0
- /package/src/components/input/__tests__/{QInput.spec.js → QInput.cy.js} +0 -0
- /package/src/components/input/__tests__/{use-mask.spec.js → use-mask.cy.js} +0 -0
- /package/src/components/table/__tests__/{QTable.spec.js → QTable.cy.js} +0 -0
- /package/src/components/table/__tests__/{QTd.spec.js → QTd.cy.js} +0 -0
- /package/src/components/table/__tests__/{QTh.spec.js → QTh.cy.js} +0 -0
- /package/src/components/table/__tests__/{QTr.spec.js → QTr.cy.js} +0 -0
- /package/src/components/tabs/__tests__/{QRouteTab.spec.js → QRouteTab.cy.js} +0 -0
- /package/src/components/tabs/__tests__/{QTab.spec.js → QTab.cy.js} +0 -0
- /package/src/components/tabs/__tests__/{QTabs.spec.js → QTabs.cy.js} +0 -0
- /package/src/composables/private/__tests__/{use-file.spec.js → use-file.cy.js} +0 -0
- /package/src/composables/private/__tests__/{use-form.spec.js → use-form.cy.js} +0 -0
- /package/src/composables/private/__tests__/{use-fullscreen.spec.js → use-fullscreen.cy.js} +0 -0
- /package/src/composables/private/__tests__/{use-portal.spec.js → use-portal.cy.js} +0 -0
- /package/src/composables/private/__tests__/{use-router-link.spec.js → use-router-link.cy.js} +0 -0
package/dist/quasar.sass
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Quasar Framework v2.11.
|
|
2
|
+
* Quasar Framework v2.11.8
|
|
3
3
|
* (c) 2015-present Razvan Stoenescu
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -2379,8 +2379,14 @@ $field-transition-label-right-up: .324s cubic-bezier(.4,0,.2,1)
|
|
|
2379
2379
|
-webkit-animation-fill-mode: both
|
|
2380
2380
|
&:-webkit-autofill + .q-field__label
|
|
2381
2381
|
transform: translateY(-40%) scale(.75)
|
|
2382
|
-
&[type="
|
|
2383
|
-
|
|
2382
|
+
&[type="color"],
|
|
2383
|
+
&[type="date"],
|
|
2384
|
+
&[type="datetime-local"],
|
|
2385
|
+
&[type="month"],
|
|
2386
|
+
&[type="time"],
|
|
2387
|
+
&[type="week"]
|
|
2388
|
+
+ .q-field__label
|
|
2389
|
+
transform: translateY(-40%) scale(.75)
|
|
2384
2390
|
&:invalid
|
|
2385
2391
|
box-shadow: none
|
|
2386
2392
|
&__native[type="file"]
|
|
@@ -2627,8 +2633,14 @@ $field-transition-label-right-up: .324s cubic-bezier(.4,0,.2,1)
|
|
|
2627
2633
|
.q-field__native, .q-field__input
|
|
2628
2634
|
&:-webkit-autofill + .q-field__label
|
|
2629
2635
|
transform: translateY(-30%) scale(.75)
|
|
2630
|
-
&[type="
|
|
2631
|
-
|
|
2636
|
+
&[type="color"],
|
|
2637
|
+
&[type="date"],
|
|
2638
|
+
&[type="datetime-local"],
|
|
2639
|
+
&[type="month"],
|
|
2640
|
+
&[type="time"],
|
|
2641
|
+
&[type="week"]
|
|
2642
|
+
+ .q-field__label
|
|
2643
|
+
transform: translateY(-30%) scale(.75)
|
|
2632
2644
|
&--borderless, &--standard
|
|
2633
2645
|
.q-field__bottom,
|
|
2634
2646
|
&.q-field--dense .q-field__control
|
package/dist/quasar.umd.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Quasar Framework v2.11.
|
|
2
|
+
* Quasar Framework v2.11.8
|
|
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.11.
|
|
1656
|
+
const $q = { version: '2.11.8' };
|
|
1657
1657
|
|
|
1658
1658
|
if (globalConfigIsFrozen === false) {
|
|
1659
1659
|
if (opts.config !== void 0) {
|
|
@@ -13843,8 +13843,8 @@
|
|
|
13843
13843
|
lastEmitValue = 0;
|
|
13844
13844
|
}
|
|
13845
13845
|
else {
|
|
13846
|
-
const
|
|
13847
|
-
updateViewModel(year, month);
|
|
13846
|
+
const model = getViewModel(innerMask.value, innerLocale.value);
|
|
13847
|
+
updateViewModel(model.year, model.month, model);
|
|
13848
13848
|
}
|
|
13849
13849
|
});
|
|
13850
13850
|
|
|
@@ -13854,12 +13854,8 @@
|
|
|
13854
13854
|
}
|
|
13855
13855
|
});
|
|
13856
13856
|
|
|
13857
|
-
vue.watch(() => viewModel.value.year,
|
|
13858
|
-
emit('navigation', { year, month: viewModel.value.month });
|
|
13859
|
-
});
|
|
13860
|
-
|
|
13861
|
-
vue.watch(() => viewModel.value.month, month => {
|
|
13862
|
-
emit('navigation', { year: viewModel.value.year, month });
|
|
13857
|
+
vue.watch(() => viewModel.value.year + '|' + viewModel.value.month, () => {
|
|
13858
|
+
emit('navigation', { year: viewModel.value.year, month: viewModel.value.month });
|
|
13863
13859
|
});
|
|
13864
13860
|
|
|
13865
13861
|
vue.watch(mask, val => {
|
|
@@ -14041,7 +14037,7 @@
|
|
|
14041
14037
|
return { year: date.year, month: date.month, day: date.day }
|
|
14042
14038
|
}
|
|
14043
14039
|
|
|
14044
|
-
function updateViewModel (year, month) {
|
|
14040
|
+
function updateViewModel (year, month, time) {
|
|
14045
14041
|
if (minNav.value !== null && year <= minNav.value.year) {
|
|
14046
14042
|
year = minNav.value.year;
|
|
14047
14043
|
if (month < minNav.value.month) {
|
|
@@ -14056,6 +14052,11 @@
|
|
|
14056
14052
|
}
|
|
14057
14053
|
}
|
|
14058
14054
|
|
|
14055
|
+
if (time !== void 0) {
|
|
14056
|
+
const { hour, minute, second, millisecond, timezoneOffset, timeHash } = time;
|
|
14057
|
+
Object.assign(viewModel.value, { hour, minute, second, millisecond, timezoneOffset, timeHash });
|
|
14058
|
+
}
|
|
14059
|
+
|
|
14059
14060
|
const newHash = year + '/' + pad(month) + '/01';
|
|
14060
14061
|
|
|
14061
14062
|
if (newHash !== viewModel.value.dateHash) {
|
|
@@ -16911,7 +16912,11 @@
|
|
|
16911
16912
|
textColor: highlight && !eVm.props.toolbarPush ? null : eVm.props.toolbarTextColor,
|
|
16912
16913
|
label: btn.fixedLabel ? btn.label : label,
|
|
16913
16914
|
icon: btn.fixedIcon ? (btn.icon !== null ? btn.icon : void 0) : icon,
|
|
16914
|
-
contentClass
|
|
16915
|
+
contentClass,
|
|
16916
|
+
onShow: evt => eVm.emit('dropdownShow', evt),
|
|
16917
|
+
onHide: evt => eVm.emit('dropdownHide', evt),
|
|
16918
|
+
onBeforeShow: evt => eVm.emit('dropdownBeforeShow', evt),
|
|
16919
|
+
onBeforeHide: evt => eVm.emit('dropdownBeforeHide', evt)
|
|
16915
16920
|
}, () => Items);
|
|
16916
16921
|
|
|
16917
16922
|
return Dropdown
|
|
@@ -17223,7 +17228,11 @@
|
|
|
17223
17228
|
...useFullscreenEmits,
|
|
17224
17229
|
'update:modelValue',
|
|
17225
17230
|
'keydown', 'click', 'mouseup', 'keyup', 'touchend',
|
|
17226
|
-
'focus', 'blur'
|
|
17231
|
+
'focus', 'blur',
|
|
17232
|
+
'dropdownShow',
|
|
17233
|
+
'dropdownHide',
|
|
17234
|
+
'dropdownBeforeShow',
|
|
17235
|
+
'dropdownBeforeHide'
|
|
17227
17236
|
],
|
|
17228
17237
|
|
|
17229
17238
|
setup (props, { slots, emit, attrs }) {
|
|
@@ -17380,6 +17389,7 @@
|
|
|
17380
17389
|
$q,
|
|
17381
17390
|
props,
|
|
17382
17391
|
slots,
|
|
17392
|
+
emit,
|
|
17383
17393
|
// caret (will get injected after mount)
|
|
17384
17394
|
inFullscreen,
|
|
17385
17395
|
toggleFullscreen,
|
|
@@ -21287,7 +21297,7 @@
|
|
|
21287
21297
|
};
|
|
21288
21298
|
|
|
21289
21299
|
function useMask (props, emit, emitValue, inputRef) {
|
|
21290
|
-
let maskMarked, maskReplaced, computedMask, computedUnmask;
|
|
21300
|
+
let maskMarked, maskReplaced, computedMask, computedUnmask, pastedTextStart, selectionAnchor;
|
|
21291
21301
|
|
|
21292
21302
|
const hasMask = vue.ref(null);
|
|
21293
21303
|
const innerValue = vue.ref(getInitialMaskedValue());
|
|
@@ -21489,8 +21499,15 @@
|
|
|
21489
21499
|
}
|
|
21490
21500
|
|
|
21491
21501
|
if (inputType === 'insertFromPaste' && props.reverseFillMask !== true) {
|
|
21492
|
-
const
|
|
21493
|
-
|
|
21502
|
+
const maxEnd = inp.selectionEnd;
|
|
21503
|
+
let cursor = end - 1;
|
|
21504
|
+
// each non-marker char means we move once to right
|
|
21505
|
+
for (let i = pastedTextStart; i <= cursor && i < maxEnd; i++) {
|
|
21506
|
+
if (maskMarked[ i ] !== MARKER) {
|
|
21507
|
+
cursor++;
|
|
21508
|
+
}
|
|
21509
|
+
}
|
|
21510
|
+
moveCursor.right(inp, cursor);
|
|
21494
21511
|
|
|
21495
21512
|
return
|
|
21496
21513
|
}
|
|
@@ -21516,7 +21533,7 @@
|
|
|
21516
21533
|
inp.setSelectionRange(cursor, cursor, 'forward');
|
|
21517
21534
|
}
|
|
21518
21535
|
else {
|
|
21519
|
-
moveCursor.rightReverse(inp, cursor
|
|
21536
|
+
moveCursor.rightReverse(inp, cursor);
|
|
21520
21537
|
}
|
|
21521
21538
|
}
|
|
21522
21539
|
else {
|
|
@@ -21527,11 +21544,11 @@
|
|
|
21527
21544
|
else {
|
|
21528
21545
|
if (changed === true) {
|
|
21529
21546
|
const cursor = Math.max(0, maskMarked.indexOf(MARKER), Math.min(preMasked.length, end) - 1);
|
|
21530
|
-
moveCursor.right(inp, cursor
|
|
21547
|
+
moveCursor.right(inp, cursor);
|
|
21531
21548
|
}
|
|
21532
21549
|
else {
|
|
21533
21550
|
const cursor = end - 1;
|
|
21534
|
-
moveCursor.right(inp, cursor
|
|
21551
|
+
moveCursor.right(inp, cursor);
|
|
21535
21552
|
}
|
|
21536
21553
|
}
|
|
21537
21554
|
});
|
|
@@ -21547,74 +21564,72 @@
|
|
|
21547
21564
|
const preMasked = maskValue(unmaskValue(inp.value));
|
|
21548
21565
|
|
|
21549
21566
|
start = Math.max(0, maskMarked.indexOf(MARKER), Math.min(preMasked.length, start));
|
|
21567
|
+
pastedTextStart = start;
|
|
21550
21568
|
|
|
21551
21569
|
inp.setSelectionRange(start, end, 'forward');
|
|
21552
21570
|
}
|
|
21553
21571
|
|
|
21554
21572
|
const moveCursor = {
|
|
21555
|
-
left (inp,
|
|
21556
|
-
const noMarkBefore = maskMarked.slice(
|
|
21557
|
-
let i = Math.max(0,
|
|
21573
|
+
left (inp, cursor) {
|
|
21574
|
+
const noMarkBefore = maskMarked.slice(cursor - 1).indexOf(MARKER) === -1;
|
|
21575
|
+
let i = Math.max(0, cursor - 1);
|
|
21558
21576
|
|
|
21559
21577
|
for (; i >= 0; i--) {
|
|
21560
21578
|
if (maskMarked[ i ] === MARKER) {
|
|
21561
|
-
|
|
21562
|
-
noMarkBefore === true &&
|
|
21579
|
+
cursor = i;
|
|
21580
|
+
noMarkBefore === true && cursor++;
|
|
21563
21581
|
break
|
|
21564
21582
|
}
|
|
21565
21583
|
}
|
|
21566
21584
|
|
|
21567
21585
|
if (
|
|
21568
21586
|
i < 0
|
|
21569
|
-
&& maskMarked[
|
|
21570
|
-
&& maskMarked[
|
|
21587
|
+
&& maskMarked[ cursor ] !== void 0
|
|
21588
|
+
&& maskMarked[ cursor ] !== MARKER
|
|
21571
21589
|
) {
|
|
21572
|
-
return moveCursor.right(inp, 0
|
|
21590
|
+
return moveCursor.right(inp, 0)
|
|
21573
21591
|
}
|
|
21574
21592
|
|
|
21575
|
-
|
|
21576
|
-
start,
|
|
21577
|
-
selection === true ? end : start, 'backward'
|
|
21578
|
-
);
|
|
21593
|
+
cursor >= 0 && inp.setSelectionRange(cursor, cursor, 'backward');
|
|
21579
21594
|
},
|
|
21580
21595
|
|
|
21581
|
-
right (inp,
|
|
21596
|
+
right (inp, cursor) {
|
|
21582
21597
|
const limit = inp.value.length;
|
|
21583
|
-
let i = Math.min(limit,
|
|
21598
|
+
let i = Math.min(limit, cursor + 1);
|
|
21584
21599
|
|
|
21585
21600
|
for (; i <= limit; i++) {
|
|
21586
21601
|
if (maskMarked[ i ] === MARKER) {
|
|
21587
|
-
|
|
21602
|
+
cursor = i;
|
|
21588
21603
|
break
|
|
21589
21604
|
}
|
|
21590
21605
|
else if (maskMarked[ i - 1 ] === MARKER) {
|
|
21591
|
-
|
|
21606
|
+
cursor = i;
|
|
21592
21607
|
}
|
|
21593
21608
|
}
|
|
21594
21609
|
|
|
21595
21610
|
if (
|
|
21596
21611
|
i > limit
|
|
21597
|
-
&& maskMarked[
|
|
21598
|
-
&& maskMarked[
|
|
21612
|
+
&& maskMarked[ cursor - 1 ] !== void 0
|
|
21613
|
+
&& maskMarked[ cursor - 1 ] !== MARKER
|
|
21599
21614
|
) {
|
|
21600
|
-
return moveCursor.left(inp, limit
|
|
21615
|
+
return moveCursor.left(inp, limit)
|
|
21601
21616
|
}
|
|
21602
21617
|
|
|
21603
|
-
inp.setSelectionRange(
|
|
21618
|
+
inp.setSelectionRange(cursor, cursor, 'forward');
|
|
21604
21619
|
},
|
|
21605
21620
|
|
|
21606
|
-
leftReverse (inp,
|
|
21621
|
+
leftReverse (inp, cursor) {
|
|
21607
21622
|
const
|
|
21608
21623
|
localMaskMarked = getPaddedMaskMarked(inp.value.length);
|
|
21609
|
-
let i = Math.max(0,
|
|
21624
|
+
let i = Math.max(0, cursor - 1);
|
|
21610
21625
|
|
|
21611
21626
|
for (; i >= 0; i--) {
|
|
21612
21627
|
if (localMaskMarked[ i - 1 ] === MARKER) {
|
|
21613
|
-
|
|
21628
|
+
cursor = i;
|
|
21614
21629
|
break
|
|
21615
21630
|
}
|
|
21616
21631
|
else if (localMaskMarked[ i ] === MARKER) {
|
|
21617
|
-
|
|
21632
|
+
cursor = i;
|
|
21618
21633
|
if (i === 0) {
|
|
21619
21634
|
break
|
|
21620
21635
|
}
|
|
@@ -21623,45 +21638,48 @@
|
|
|
21623
21638
|
|
|
21624
21639
|
if (
|
|
21625
21640
|
i < 0
|
|
21626
|
-
&& localMaskMarked[
|
|
21627
|
-
&& localMaskMarked[
|
|
21641
|
+
&& localMaskMarked[ cursor ] !== void 0
|
|
21642
|
+
&& localMaskMarked[ cursor ] !== MARKER
|
|
21628
21643
|
) {
|
|
21629
|
-
return moveCursor.rightReverse(inp, 0
|
|
21644
|
+
return moveCursor.rightReverse(inp, 0)
|
|
21630
21645
|
}
|
|
21631
21646
|
|
|
21632
|
-
|
|
21633
|
-
start,
|
|
21634
|
-
selection === true ? end : start, 'backward'
|
|
21635
|
-
);
|
|
21647
|
+
cursor >= 0 && inp.setSelectionRange(cursor, cursor, 'backward');
|
|
21636
21648
|
},
|
|
21637
21649
|
|
|
21638
|
-
rightReverse (inp,
|
|
21650
|
+
rightReverse (inp, cursor) {
|
|
21639
21651
|
const
|
|
21640
21652
|
limit = inp.value.length,
|
|
21641
21653
|
localMaskMarked = getPaddedMaskMarked(limit),
|
|
21642
|
-
noMarkBefore = localMaskMarked.slice(0,
|
|
21643
|
-
let i = Math.min(limit,
|
|
21654
|
+
noMarkBefore = localMaskMarked.slice(0, cursor + 1).indexOf(MARKER) === -1;
|
|
21655
|
+
let i = Math.min(limit, cursor + 1);
|
|
21644
21656
|
|
|
21645
21657
|
for (; i <= limit; i++) {
|
|
21646
21658
|
if (localMaskMarked[ i - 1 ] === MARKER) {
|
|
21647
|
-
|
|
21648
|
-
|
|
21659
|
+
cursor = i;
|
|
21660
|
+
cursor > 0 && noMarkBefore === true && cursor--;
|
|
21649
21661
|
break
|
|
21650
21662
|
}
|
|
21651
21663
|
}
|
|
21652
21664
|
|
|
21653
21665
|
if (
|
|
21654
21666
|
i > limit
|
|
21655
|
-
&& localMaskMarked[
|
|
21656
|
-
&& localMaskMarked[
|
|
21667
|
+
&& localMaskMarked[ cursor - 1 ] !== void 0
|
|
21668
|
+
&& localMaskMarked[ cursor - 1 ] !== MARKER
|
|
21657
21669
|
) {
|
|
21658
|
-
return moveCursor.leftReverse(inp, limit
|
|
21670
|
+
return moveCursor.leftReverse(inp, limit)
|
|
21659
21671
|
}
|
|
21660
21672
|
|
|
21661
|
-
inp.setSelectionRange(
|
|
21673
|
+
inp.setSelectionRange(cursor, cursor, 'forward');
|
|
21662
21674
|
}
|
|
21663
21675
|
};
|
|
21664
21676
|
|
|
21677
|
+
function onMaskedClick (e) {
|
|
21678
|
+
emit('click', e);
|
|
21679
|
+
|
|
21680
|
+
selectionAnchor = void 0;
|
|
21681
|
+
}
|
|
21682
|
+
|
|
21665
21683
|
function onMaskedKeydown (e) {
|
|
21666
21684
|
emit('keydown', e);
|
|
21667
21685
|
|
|
@@ -21674,25 +21692,38 @@
|
|
|
21674
21692
|
start = inp.selectionStart,
|
|
21675
21693
|
end = inp.selectionEnd;
|
|
21676
21694
|
|
|
21695
|
+
if (!e.shiftKey) {
|
|
21696
|
+
selectionAnchor = void 0;
|
|
21697
|
+
}
|
|
21698
|
+
|
|
21677
21699
|
if (e.keyCode === 37 || e.keyCode === 39) { // Left / Right
|
|
21700
|
+
if (e.shiftKey && selectionAnchor === void 0) {
|
|
21701
|
+
selectionAnchor = inp.selectionDirection === 'forward' ? start : end;
|
|
21702
|
+
}
|
|
21703
|
+
|
|
21678
21704
|
const fn = moveCursor[ (e.keyCode === 39 ? 'right' : 'left') + (props.reverseFillMask === true ? 'Reverse' : '') ];
|
|
21679
21705
|
|
|
21680
21706
|
e.preventDefault();
|
|
21681
|
-
fn(inp, start
|
|
21707
|
+
fn(inp, selectionAnchor === start ? end : start);
|
|
21708
|
+
|
|
21709
|
+
if (e.shiftKey) {
|
|
21710
|
+
const cursor = inp.selectionStart;
|
|
21711
|
+
inp.setSelectionRange(Math.min(selectionAnchor, cursor), Math.max(selectionAnchor, cursor), 'forward');
|
|
21712
|
+
}
|
|
21682
21713
|
}
|
|
21683
21714
|
else if (
|
|
21684
21715
|
e.keyCode === 8 // Backspace
|
|
21685
21716
|
&& props.reverseFillMask !== true
|
|
21686
21717
|
&& start === end
|
|
21687
21718
|
) {
|
|
21688
|
-
moveCursor.left(inp, start
|
|
21719
|
+
moveCursor.left(inp, start);
|
|
21689
21720
|
}
|
|
21690
21721
|
else if (
|
|
21691
21722
|
e.keyCode === 46 // Delete
|
|
21692
21723
|
&& props.reverseFillMask === true
|
|
21693
21724
|
&& start === end
|
|
21694
21725
|
) {
|
|
21695
|
-
moveCursor.rightReverse(inp,
|
|
21726
|
+
moveCursor.rightReverse(inp, end);
|
|
21696
21727
|
}
|
|
21697
21728
|
}
|
|
21698
21729
|
|
|
@@ -21783,7 +21814,8 @@
|
|
|
21783
21814
|
hasMask,
|
|
21784
21815
|
moveCursorForPaste,
|
|
21785
21816
|
updateMaskValue,
|
|
21786
|
-
onMaskedKeydown
|
|
21817
|
+
onMaskedKeydown,
|
|
21818
|
+
onMaskedClick
|
|
21787
21819
|
}
|
|
21788
21820
|
}
|
|
21789
21821
|
|
|
@@ -21845,7 +21877,7 @@
|
|
|
21845
21877
|
emits: [
|
|
21846
21878
|
...useFieldEmits,
|
|
21847
21879
|
'paste', 'change',
|
|
21848
|
-
'keydown', 'animationend'
|
|
21880
|
+
'keydown', 'click', 'animationend'
|
|
21849
21881
|
],
|
|
21850
21882
|
|
|
21851
21883
|
setup (props, { emit, attrs }) {
|
|
@@ -21863,7 +21895,8 @@
|
|
|
21863
21895
|
hasMask,
|
|
21864
21896
|
moveCursorForPaste,
|
|
21865
21897
|
updateMaskValue,
|
|
21866
|
-
onMaskedKeydown
|
|
21898
|
+
onMaskedKeydown,
|
|
21899
|
+
onMaskedClick
|
|
21867
21900
|
} = useMask(props, emit, emitValue, inputRef);
|
|
21868
21901
|
|
|
21869
21902
|
const formDomProps = useFileFormDomProps(props, /* type guard */ true);
|
|
@@ -21900,6 +21933,8 @@
|
|
|
21900
21933
|
|
|
21901
21934
|
if (hasMask.value === true) {
|
|
21902
21935
|
evt.onKeydown = onMaskedKeydown;
|
|
21936
|
+
// reset selection anchor on pointer selection
|
|
21937
|
+
evt.onClick = onMaskedClick;
|
|
21903
21938
|
}
|
|
21904
21939
|
|
|
21905
21940
|
if (props.autogrow === true) {
|
|
@@ -22109,18 +22144,29 @@
|
|
|
22109
22144
|
const inp = inputRef.value;
|
|
22110
22145
|
if (inp !== null) {
|
|
22111
22146
|
const parentStyle = inp.parentNode.style;
|
|
22112
|
-
|
|
22147
|
+
// chrome does not keep scroll #15498
|
|
22148
|
+
const { scrollTop } = inp;
|
|
22149
|
+
// chrome calculates a smaller scrollHeight when in a .column container
|
|
22150
|
+
const { overflowY, maxHeight } = $q.platform.is.firefox === true
|
|
22151
|
+
? {}
|
|
22152
|
+
: window.getComputedStyle(inp);
|
|
22153
|
+
// on firefox or if overflowY is specified as scroll #14263, #14344
|
|
22154
|
+
// we don't touch overflow
|
|
22155
|
+
// firefox is not so bad in the end
|
|
22156
|
+
const changeOverflow = overflowY !== void 0 && overflowY !== 'scroll';
|
|
22113
22157
|
|
|
22114
22158
|
// reset height of textarea to a small size to detect the real height
|
|
22115
22159
|
// but keep the total control size the same
|
|
22116
|
-
|
|
22117
|
-
$q.platform.is.firefox !== true && (inp.style.overflow = 'hidden');
|
|
22160
|
+
changeOverflow === true && (inp.style.overflowY = 'hidden');
|
|
22118
22161
|
parentStyle.marginBottom = (inp.scrollHeight - 1) + 'px';
|
|
22119
22162
|
inp.style.height = '1px';
|
|
22120
22163
|
|
|
22121
22164
|
inp.style.height = inp.scrollHeight + 'px';
|
|
22122
|
-
|
|
22165
|
+
// we should allow scrollbars only
|
|
22166
|
+
// if there is maxHeight and content is taller than maxHeight
|
|
22167
|
+
changeOverflow === true && (inp.style.overflowY = parseInt(maxHeight, 10) < inp.scrollHeight ? 'auto' : 'hidden');
|
|
22123
22168
|
parentStyle.marginBottom = '';
|
|
22169
|
+
inp.scrollTop = scrollTop;
|
|
22124
22170
|
}
|
|
22125
22171
|
});
|
|
22126
22172
|
}
|
|
@@ -22197,7 +22243,10 @@
|
|
|
22197
22243
|
hasValue,
|
|
22198
22244
|
|
|
22199
22245
|
floatingLabel: vue.computed(() =>
|
|
22200
|
-
|
|
22246
|
+
(
|
|
22247
|
+
hasValue.value === true
|
|
22248
|
+
&& (props.type !== 'number' || isNaN(innerValue.value) === false)
|
|
22249
|
+
)
|
|
22201
22250
|
|| fieldValueIsFilled(props.displayValue)
|
|
22202
22251
|
),
|
|
22203
22252
|
|
|
@@ -28580,7 +28629,8 @@
|
|
|
28580
28629
|
|
|
28581
28630
|
return vue.h('div', {
|
|
28582
28631
|
class: 'q-field__native row items-center',
|
|
28583
|
-
...attrs
|
|
28632
|
+
...attrs,
|
|
28633
|
+
...state.splitAttrs.listeners.value
|
|
28584
28634
|
}, child)
|
|
28585
28635
|
},
|
|
28586
28636
|
|
|
@@ -32868,7 +32918,7 @@
|
|
|
32868
32918
|
|
|
32869
32919
|
if (topLeft !== void 0) {
|
|
32870
32920
|
child.push(
|
|
32871
|
-
vue.h('div', { class: 'q-
|
|
32921
|
+
vue.h('div', { class: 'q-table__control' }, [
|
|
32872
32922
|
topLeft(marginalsScope.value)
|
|
32873
32923
|
])
|
|
32874
32924
|
);
|
|
@@ -35138,7 +35188,7 @@
|
|
|
35138
35188
|
}
|
|
35139
35189
|
|
|
35140
35190
|
function onClick (node, meta, e, keyboard) {
|
|
35141
|
-
keyboard !== true && blur(meta.key);
|
|
35191
|
+
keyboard !== true && meta.selectable !== false && blur(meta.key);
|
|
35142
35192
|
|
|
35143
35193
|
if (hasSelection.value && meta.selectable) {
|
|
35144
35194
|
if (props.noSelectionUnset === false) {
|
|
@@ -35161,7 +35211,7 @@
|
|
|
35161
35211
|
if (e !== void 0) {
|
|
35162
35212
|
stopAndPrevent(e);
|
|
35163
35213
|
}
|
|
35164
|
-
keyboard !== true && blur(meta.key);
|
|
35214
|
+
keyboard !== true && meta.selectable !== false && blur(meta.key);
|
|
35165
35215
|
setExpanded(meta.key, !meta.expanded, node, meta);
|
|
35166
35216
|
}
|
|
35167
35217
|
|
|
@@ -38332,6 +38382,7 @@
|
|
|
38332
38382
|
'q-bottom-sheet__item q-hoverable q-focusable cursor-pointer relative-position',
|
|
38333
38383
|
action.class
|
|
38334
38384
|
],
|
|
38385
|
+
style: action.style,
|
|
38335
38386
|
tabindex: 0,
|
|
38336
38387
|
role: 'listitem',
|
|
38337
38388
|
onClick () { onOk(action); },
|
|
@@ -38363,6 +38414,7 @@
|
|
|
38363
38414
|
? vue.h(QSeparator, { spaced: true, dark: isDark.value })
|
|
38364
38415
|
: vue.h(QItem, {
|
|
38365
38416
|
class: [ 'q-bottom-sheet__item', action.classes ],
|
|
38417
|
+
style: action.style,
|
|
38366
38418
|
tabindex: 0,
|
|
38367
38419
|
clickable: true,
|
|
38368
38420
|
dark: isDark.value,
|
|
@@ -40778,7 +40830,7 @@
|
|
|
40778
40830
|
*/
|
|
40779
40831
|
|
|
40780
40832
|
var index_umd = {
|
|
40781
|
-
version: '2.11.
|
|
40833
|
+
version: '2.11.8',
|
|
40782
40834
|
install (app, opts) {
|
|
40783
40835
|
installQuasar(app, {
|
|
40784
40836
|
components,
|