quasar 2.11.7 → 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/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 +113 -64
- 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 +113 -64
- 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 +35 -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/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/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/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) {
|
|
@@ -16912,7 +16912,11 @@
|
|
|
16912
16912
|
textColor: highlight && !eVm.props.toolbarPush ? null : eVm.props.toolbarTextColor,
|
|
16913
16913
|
label: btn.fixedLabel ? btn.label : label,
|
|
16914
16914
|
icon: btn.fixedIcon ? (btn.icon !== null ? btn.icon : void 0) : icon,
|
|
16915
|
-
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)
|
|
16916
16920
|
}, () => Items);
|
|
16917
16921
|
|
|
16918
16922
|
return Dropdown
|
|
@@ -17224,7 +17228,11 @@
|
|
|
17224
17228
|
...useFullscreenEmits,
|
|
17225
17229
|
'update:modelValue',
|
|
17226
17230
|
'keydown', 'click', 'mouseup', 'keyup', 'touchend',
|
|
17227
|
-
'focus', 'blur'
|
|
17231
|
+
'focus', 'blur',
|
|
17232
|
+
'dropdownShow',
|
|
17233
|
+
'dropdownHide',
|
|
17234
|
+
'dropdownBeforeShow',
|
|
17235
|
+
'dropdownBeforeHide'
|
|
17228
17236
|
],
|
|
17229
17237
|
|
|
17230
17238
|
setup (props, { slots, emit, attrs }) {
|
|
@@ -17381,6 +17389,7 @@
|
|
|
17381
17389
|
$q,
|
|
17382
17390
|
props,
|
|
17383
17391
|
slots,
|
|
17392
|
+
emit,
|
|
17384
17393
|
// caret (will get injected after mount)
|
|
17385
17394
|
inFullscreen,
|
|
17386
17395
|
toggleFullscreen,
|
|
@@ -21288,7 +21297,7 @@
|
|
|
21288
21297
|
};
|
|
21289
21298
|
|
|
21290
21299
|
function useMask (props, emit, emitValue, inputRef) {
|
|
21291
|
-
let maskMarked, maskReplaced, computedMask, computedUnmask;
|
|
21300
|
+
let maskMarked, maskReplaced, computedMask, computedUnmask, pastedTextStart, selectionAnchor;
|
|
21292
21301
|
|
|
21293
21302
|
const hasMask = vue.ref(null);
|
|
21294
21303
|
const innerValue = vue.ref(getInitialMaskedValue());
|
|
@@ -21490,8 +21499,15 @@
|
|
|
21490
21499
|
}
|
|
21491
21500
|
|
|
21492
21501
|
if (inputType === 'insertFromPaste' && props.reverseFillMask !== true) {
|
|
21493
|
-
const
|
|
21494
|
-
|
|
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);
|
|
21495
21511
|
|
|
21496
21512
|
return
|
|
21497
21513
|
}
|
|
@@ -21517,7 +21533,7 @@
|
|
|
21517
21533
|
inp.setSelectionRange(cursor, cursor, 'forward');
|
|
21518
21534
|
}
|
|
21519
21535
|
else {
|
|
21520
|
-
moveCursor.rightReverse(inp, cursor
|
|
21536
|
+
moveCursor.rightReverse(inp, cursor);
|
|
21521
21537
|
}
|
|
21522
21538
|
}
|
|
21523
21539
|
else {
|
|
@@ -21528,11 +21544,11 @@
|
|
|
21528
21544
|
else {
|
|
21529
21545
|
if (changed === true) {
|
|
21530
21546
|
const cursor = Math.max(0, maskMarked.indexOf(MARKER), Math.min(preMasked.length, end) - 1);
|
|
21531
|
-
moveCursor.right(inp, cursor
|
|
21547
|
+
moveCursor.right(inp, cursor);
|
|
21532
21548
|
}
|
|
21533
21549
|
else {
|
|
21534
21550
|
const cursor = end - 1;
|
|
21535
|
-
moveCursor.right(inp, cursor
|
|
21551
|
+
moveCursor.right(inp, cursor);
|
|
21536
21552
|
}
|
|
21537
21553
|
}
|
|
21538
21554
|
});
|
|
@@ -21548,74 +21564,72 @@
|
|
|
21548
21564
|
const preMasked = maskValue(unmaskValue(inp.value));
|
|
21549
21565
|
|
|
21550
21566
|
start = Math.max(0, maskMarked.indexOf(MARKER), Math.min(preMasked.length, start));
|
|
21567
|
+
pastedTextStart = start;
|
|
21551
21568
|
|
|
21552
21569
|
inp.setSelectionRange(start, end, 'forward');
|
|
21553
21570
|
}
|
|
21554
21571
|
|
|
21555
21572
|
const moveCursor = {
|
|
21556
|
-
left (inp,
|
|
21557
|
-
const noMarkBefore = maskMarked.slice(
|
|
21558
|
-
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);
|
|
21559
21576
|
|
|
21560
21577
|
for (; i >= 0; i--) {
|
|
21561
21578
|
if (maskMarked[ i ] === MARKER) {
|
|
21562
|
-
|
|
21563
|
-
noMarkBefore === true &&
|
|
21579
|
+
cursor = i;
|
|
21580
|
+
noMarkBefore === true && cursor++;
|
|
21564
21581
|
break
|
|
21565
21582
|
}
|
|
21566
21583
|
}
|
|
21567
21584
|
|
|
21568
21585
|
if (
|
|
21569
21586
|
i < 0
|
|
21570
|
-
&& maskMarked[
|
|
21571
|
-
&& maskMarked[
|
|
21587
|
+
&& maskMarked[ cursor ] !== void 0
|
|
21588
|
+
&& maskMarked[ cursor ] !== MARKER
|
|
21572
21589
|
) {
|
|
21573
|
-
return moveCursor.right(inp, 0
|
|
21590
|
+
return moveCursor.right(inp, 0)
|
|
21574
21591
|
}
|
|
21575
21592
|
|
|
21576
|
-
|
|
21577
|
-
start,
|
|
21578
|
-
selection === true ? end : start, 'backward'
|
|
21579
|
-
);
|
|
21593
|
+
cursor >= 0 && inp.setSelectionRange(cursor, cursor, 'backward');
|
|
21580
21594
|
},
|
|
21581
21595
|
|
|
21582
|
-
right (inp,
|
|
21596
|
+
right (inp, cursor) {
|
|
21583
21597
|
const limit = inp.value.length;
|
|
21584
|
-
let i = Math.min(limit,
|
|
21598
|
+
let i = Math.min(limit, cursor + 1);
|
|
21585
21599
|
|
|
21586
21600
|
for (; i <= limit; i++) {
|
|
21587
21601
|
if (maskMarked[ i ] === MARKER) {
|
|
21588
|
-
|
|
21602
|
+
cursor = i;
|
|
21589
21603
|
break
|
|
21590
21604
|
}
|
|
21591
21605
|
else if (maskMarked[ i - 1 ] === MARKER) {
|
|
21592
|
-
|
|
21606
|
+
cursor = i;
|
|
21593
21607
|
}
|
|
21594
21608
|
}
|
|
21595
21609
|
|
|
21596
21610
|
if (
|
|
21597
21611
|
i > limit
|
|
21598
|
-
&& maskMarked[
|
|
21599
|
-
&& maskMarked[
|
|
21612
|
+
&& maskMarked[ cursor - 1 ] !== void 0
|
|
21613
|
+
&& maskMarked[ cursor - 1 ] !== MARKER
|
|
21600
21614
|
) {
|
|
21601
|
-
return moveCursor.left(inp, limit
|
|
21615
|
+
return moveCursor.left(inp, limit)
|
|
21602
21616
|
}
|
|
21603
21617
|
|
|
21604
|
-
inp.setSelectionRange(
|
|
21618
|
+
inp.setSelectionRange(cursor, cursor, 'forward');
|
|
21605
21619
|
},
|
|
21606
21620
|
|
|
21607
|
-
leftReverse (inp,
|
|
21621
|
+
leftReverse (inp, cursor) {
|
|
21608
21622
|
const
|
|
21609
21623
|
localMaskMarked = getPaddedMaskMarked(inp.value.length);
|
|
21610
|
-
let i = Math.max(0,
|
|
21624
|
+
let i = Math.max(0, cursor - 1);
|
|
21611
21625
|
|
|
21612
21626
|
for (; i >= 0; i--) {
|
|
21613
21627
|
if (localMaskMarked[ i - 1 ] === MARKER) {
|
|
21614
|
-
|
|
21628
|
+
cursor = i;
|
|
21615
21629
|
break
|
|
21616
21630
|
}
|
|
21617
21631
|
else if (localMaskMarked[ i ] === MARKER) {
|
|
21618
|
-
|
|
21632
|
+
cursor = i;
|
|
21619
21633
|
if (i === 0) {
|
|
21620
21634
|
break
|
|
21621
21635
|
}
|
|
@@ -21624,45 +21638,48 @@
|
|
|
21624
21638
|
|
|
21625
21639
|
if (
|
|
21626
21640
|
i < 0
|
|
21627
|
-
&& localMaskMarked[
|
|
21628
|
-
&& localMaskMarked[
|
|
21641
|
+
&& localMaskMarked[ cursor ] !== void 0
|
|
21642
|
+
&& localMaskMarked[ cursor ] !== MARKER
|
|
21629
21643
|
) {
|
|
21630
|
-
return moveCursor.rightReverse(inp, 0
|
|
21644
|
+
return moveCursor.rightReverse(inp, 0)
|
|
21631
21645
|
}
|
|
21632
21646
|
|
|
21633
|
-
|
|
21634
|
-
start,
|
|
21635
|
-
selection === true ? end : start, 'backward'
|
|
21636
|
-
);
|
|
21647
|
+
cursor >= 0 && inp.setSelectionRange(cursor, cursor, 'backward');
|
|
21637
21648
|
},
|
|
21638
21649
|
|
|
21639
|
-
rightReverse (inp,
|
|
21650
|
+
rightReverse (inp, cursor) {
|
|
21640
21651
|
const
|
|
21641
21652
|
limit = inp.value.length,
|
|
21642
21653
|
localMaskMarked = getPaddedMaskMarked(limit),
|
|
21643
|
-
noMarkBefore = localMaskMarked.slice(0,
|
|
21644
|
-
let i = Math.min(limit,
|
|
21654
|
+
noMarkBefore = localMaskMarked.slice(0, cursor + 1).indexOf(MARKER) === -1;
|
|
21655
|
+
let i = Math.min(limit, cursor + 1);
|
|
21645
21656
|
|
|
21646
21657
|
for (; i <= limit; i++) {
|
|
21647
21658
|
if (localMaskMarked[ i - 1 ] === MARKER) {
|
|
21648
|
-
|
|
21649
|
-
|
|
21659
|
+
cursor = i;
|
|
21660
|
+
cursor > 0 && noMarkBefore === true && cursor--;
|
|
21650
21661
|
break
|
|
21651
21662
|
}
|
|
21652
21663
|
}
|
|
21653
21664
|
|
|
21654
21665
|
if (
|
|
21655
21666
|
i > limit
|
|
21656
|
-
&& localMaskMarked[
|
|
21657
|
-
&& localMaskMarked[
|
|
21667
|
+
&& localMaskMarked[ cursor - 1 ] !== void 0
|
|
21668
|
+
&& localMaskMarked[ cursor - 1 ] !== MARKER
|
|
21658
21669
|
) {
|
|
21659
|
-
return moveCursor.leftReverse(inp, limit
|
|
21670
|
+
return moveCursor.leftReverse(inp, limit)
|
|
21660
21671
|
}
|
|
21661
21672
|
|
|
21662
|
-
inp.setSelectionRange(
|
|
21673
|
+
inp.setSelectionRange(cursor, cursor, 'forward');
|
|
21663
21674
|
}
|
|
21664
21675
|
};
|
|
21665
21676
|
|
|
21677
|
+
function onMaskedClick (e) {
|
|
21678
|
+
emit('click', e);
|
|
21679
|
+
|
|
21680
|
+
selectionAnchor = void 0;
|
|
21681
|
+
}
|
|
21682
|
+
|
|
21666
21683
|
function onMaskedKeydown (e) {
|
|
21667
21684
|
emit('keydown', e);
|
|
21668
21685
|
|
|
@@ -21675,25 +21692,38 @@
|
|
|
21675
21692
|
start = inp.selectionStart,
|
|
21676
21693
|
end = inp.selectionEnd;
|
|
21677
21694
|
|
|
21695
|
+
if (!e.shiftKey) {
|
|
21696
|
+
selectionAnchor = void 0;
|
|
21697
|
+
}
|
|
21698
|
+
|
|
21678
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
|
+
|
|
21679
21704
|
const fn = moveCursor[ (e.keyCode === 39 ? 'right' : 'left') + (props.reverseFillMask === true ? 'Reverse' : '') ];
|
|
21680
21705
|
|
|
21681
21706
|
e.preventDefault();
|
|
21682
|
-
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
|
+
}
|
|
21683
21713
|
}
|
|
21684
21714
|
else if (
|
|
21685
21715
|
e.keyCode === 8 // Backspace
|
|
21686
21716
|
&& props.reverseFillMask !== true
|
|
21687
21717
|
&& start === end
|
|
21688
21718
|
) {
|
|
21689
|
-
moveCursor.left(inp, start
|
|
21719
|
+
moveCursor.left(inp, start);
|
|
21690
21720
|
}
|
|
21691
21721
|
else if (
|
|
21692
21722
|
e.keyCode === 46 // Delete
|
|
21693
21723
|
&& props.reverseFillMask === true
|
|
21694
21724
|
&& start === end
|
|
21695
21725
|
) {
|
|
21696
|
-
moveCursor.rightReverse(inp,
|
|
21726
|
+
moveCursor.rightReverse(inp, end);
|
|
21697
21727
|
}
|
|
21698
21728
|
}
|
|
21699
21729
|
|
|
@@ -21784,7 +21814,8 @@
|
|
|
21784
21814
|
hasMask,
|
|
21785
21815
|
moveCursorForPaste,
|
|
21786
21816
|
updateMaskValue,
|
|
21787
|
-
onMaskedKeydown
|
|
21817
|
+
onMaskedKeydown,
|
|
21818
|
+
onMaskedClick
|
|
21788
21819
|
}
|
|
21789
21820
|
}
|
|
21790
21821
|
|
|
@@ -21846,7 +21877,7 @@
|
|
|
21846
21877
|
emits: [
|
|
21847
21878
|
...useFieldEmits,
|
|
21848
21879
|
'paste', 'change',
|
|
21849
|
-
'keydown', 'animationend'
|
|
21880
|
+
'keydown', 'click', 'animationend'
|
|
21850
21881
|
],
|
|
21851
21882
|
|
|
21852
21883
|
setup (props, { emit, attrs }) {
|
|
@@ -21864,7 +21895,8 @@
|
|
|
21864
21895
|
hasMask,
|
|
21865
21896
|
moveCursorForPaste,
|
|
21866
21897
|
updateMaskValue,
|
|
21867
|
-
onMaskedKeydown
|
|
21898
|
+
onMaskedKeydown,
|
|
21899
|
+
onMaskedClick
|
|
21868
21900
|
} = useMask(props, emit, emitValue, inputRef);
|
|
21869
21901
|
|
|
21870
21902
|
const formDomProps = useFileFormDomProps(props, /* type guard */ true);
|
|
@@ -21901,6 +21933,8 @@
|
|
|
21901
21933
|
|
|
21902
21934
|
if (hasMask.value === true) {
|
|
21903
21935
|
evt.onKeydown = onMaskedKeydown;
|
|
21936
|
+
// reset selection anchor on pointer selection
|
|
21937
|
+
evt.onClick = onMaskedClick;
|
|
21904
21938
|
}
|
|
21905
21939
|
|
|
21906
21940
|
if (props.autogrow === true) {
|
|
@@ -22110,18 +22144,29 @@
|
|
|
22110
22144
|
const inp = inputRef.value;
|
|
22111
22145
|
if (inp !== null) {
|
|
22112
22146
|
const parentStyle = inp.parentNode.style;
|
|
22113
|
-
|
|
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';
|
|
22114
22157
|
|
|
22115
22158
|
// reset height of textarea to a small size to detect the real height
|
|
22116
22159
|
// but keep the total control size the same
|
|
22117
|
-
|
|
22118
|
-
$q.platform.is.firefox !== true && (inp.style.overflow = 'hidden');
|
|
22160
|
+
changeOverflow === true && (inp.style.overflowY = 'hidden');
|
|
22119
22161
|
parentStyle.marginBottom = (inp.scrollHeight - 1) + 'px';
|
|
22120
22162
|
inp.style.height = '1px';
|
|
22121
22163
|
|
|
22122
22164
|
inp.style.height = inp.scrollHeight + 'px';
|
|
22123
|
-
|
|
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');
|
|
22124
22168
|
parentStyle.marginBottom = '';
|
|
22169
|
+
inp.scrollTop = scrollTop;
|
|
22125
22170
|
}
|
|
22126
22171
|
});
|
|
22127
22172
|
}
|
|
@@ -22198,7 +22243,10 @@
|
|
|
22198
22243
|
hasValue,
|
|
22199
22244
|
|
|
22200
22245
|
floatingLabel: vue.computed(() =>
|
|
22201
|
-
|
|
22246
|
+
(
|
|
22247
|
+
hasValue.value === true
|
|
22248
|
+
&& (props.type !== 'number' || isNaN(innerValue.value) === false)
|
|
22249
|
+
)
|
|
22202
22250
|
|| fieldValueIsFilled(props.displayValue)
|
|
22203
22251
|
),
|
|
22204
22252
|
|
|
@@ -28581,7 +28629,8 @@
|
|
|
28581
28629
|
|
|
28582
28630
|
return vue.h('div', {
|
|
28583
28631
|
class: 'q-field__native row items-center',
|
|
28584
|
-
...attrs
|
|
28632
|
+
...attrs,
|
|
28633
|
+
...state.splitAttrs.listeners.value
|
|
28585
28634
|
}, child)
|
|
28586
28635
|
},
|
|
28587
28636
|
|
|
@@ -32869,7 +32918,7 @@
|
|
|
32869
32918
|
|
|
32870
32919
|
if (topLeft !== void 0) {
|
|
32871
32920
|
child.push(
|
|
32872
|
-
vue.h('div', { class: 'q-
|
|
32921
|
+
vue.h('div', { class: 'q-table__control' }, [
|
|
32873
32922
|
topLeft(marginalsScope.value)
|
|
32874
32923
|
])
|
|
32875
32924
|
);
|
|
@@ -40781,7 +40830,7 @@
|
|
|
40781
40830
|
*/
|
|
40782
40831
|
|
|
40783
40832
|
var index_umd = {
|
|
40784
|
-
version: '2.11.
|
|
40833
|
+
version: '2.11.8',
|
|
40785
40834
|
install (app, opts) {
|
|
40786
40835
|
installQuasar(app, {
|
|
40787
40836
|
components,
|