quasar 2.11.7 → 2.11.9
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 +57 -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 +121 -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 +121 -64
- package/dist/quasar.umd.prod.js +2 -2
- package/dist/types/index.d.ts +43 -0
- package/dist/web-types/web-types.json +102 -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 +12 -1
- package/src/components/editor/QEditor.json +50 -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 +74 -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.9
|
|
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.9
|
|
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.9' };
|
|
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,13 @@
|
|
|
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',
|
|
17236
|
+
'linkShow',
|
|
17237
|
+
'linkHide'
|
|
17228
17238
|
],
|
|
17229
17239
|
|
|
17230
17240
|
setup (props, { slots, emit, attrs }) {
|
|
@@ -17381,6 +17391,7 @@
|
|
|
17381
17391
|
$q,
|
|
17382
17392
|
props,
|
|
17383
17393
|
slots,
|
|
17394
|
+
emit,
|
|
17384
17395
|
// caret (will get injected after mount)
|
|
17385
17396
|
inFullscreen,
|
|
17386
17397
|
toggleFullscreen,
|
|
@@ -17401,6 +17412,10 @@
|
|
|
17401
17412
|
}
|
|
17402
17413
|
});
|
|
17403
17414
|
|
|
17415
|
+
vue.watch(editLinkUrl, v => {
|
|
17416
|
+
emit(`link-${ v ? 'Show' : 'Hide' }`);
|
|
17417
|
+
});
|
|
17418
|
+
|
|
17404
17419
|
const hasToolbar = vue.computed(() => props.toolbar && props.toolbar.length > 0);
|
|
17405
17420
|
|
|
17406
17421
|
const keys = vue.computed(() => {
|
|
@@ -21288,7 +21303,7 @@
|
|
|
21288
21303
|
};
|
|
21289
21304
|
|
|
21290
21305
|
function useMask (props, emit, emitValue, inputRef) {
|
|
21291
|
-
let maskMarked, maskReplaced, computedMask, computedUnmask;
|
|
21306
|
+
let maskMarked, maskReplaced, computedMask, computedUnmask, pastedTextStart, selectionAnchor;
|
|
21292
21307
|
|
|
21293
21308
|
const hasMask = vue.ref(null);
|
|
21294
21309
|
const innerValue = vue.ref(getInitialMaskedValue());
|
|
@@ -21490,8 +21505,15 @@
|
|
|
21490
21505
|
}
|
|
21491
21506
|
|
|
21492
21507
|
if (inputType === 'insertFromPaste' && props.reverseFillMask !== true) {
|
|
21493
|
-
const
|
|
21494
|
-
|
|
21508
|
+
const maxEnd = inp.selectionEnd;
|
|
21509
|
+
let cursor = end - 1;
|
|
21510
|
+
// each non-marker char means we move once to right
|
|
21511
|
+
for (let i = pastedTextStart; i <= cursor && i < maxEnd; i++) {
|
|
21512
|
+
if (maskMarked[ i ] !== MARKER) {
|
|
21513
|
+
cursor++;
|
|
21514
|
+
}
|
|
21515
|
+
}
|
|
21516
|
+
moveCursor.right(inp, cursor);
|
|
21495
21517
|
|
|
21496
21518
|
return
|
|
21497
21519
|
}
|
|
@@ -21517,7 +21539,7 @@
|
|
|
21517
21539
|
inp.setSelectionRange(cursor, cursor, 'forward');
|
|
21518
21540
|
}
|
|
21519
21541
|
else {
|
|
21520
|
-
moveCursor.rightReverse(inp, cursor
|
|
21542
|
+
moveCursor.rightReverse(inp, cursor);
|
|
21521
21543
|
}
|
|
21522
21544
|
}
|
|
21523
21545
|
else {
|
|
@@ -21528,11 +21550,11 @@
|
|
|
21528
21550
|
else {
|
|
21529
21551
|
if (changed === true) {
|
|
21530
21552
|
const cursor = Math.max(0, maskMarked.indexOf(MARKER), Math.min(preMasked.length, end) - 1);
|
|
21531
|
-
moveCursor.right(inp, cursor
|
|
21553
|
+
moveCursor.right(inp, cursor);
|
|
21532
21554
|
}
|
|
21533
21555
|
else {
|
|
21534
21556
|
const cursor = end - 1;
|
|
21535
|
-
moveCursor.right(inp, cursor
|
|
21557
|
+
moveCursor.right(inp, cursor);
|
|
21536
21558
|
}
|
|
21537
21559
|
}
|
|
21538
21560
|
});
|
|
@@ -21548,74 +21570,72 @@
|
|
|
21548
21570
|
const preMasked = maskValue(unmaskValue(inp.value));
|
|
21549
21571
|
|
|
21550
21572
|
start = Math.max(0, maskMarked.indexOf(MARKER), Math.min(preMasked.length, start));
|
|
21573
|
+
pastedTextStart = start;
|
|
21551
21574
|
|
|
21552
21575
|
inp.setSelectionRange(start, end, 'forward');
|
|
21553
21576
|
}
|
|
21554
21577
|
|
|
21555
21578
|
const moveCursor = {
|
|
21556
|
-
left (inp,
|
|
21557
|
-
const noMarkBefore = maskMarked.slice(
|
|
21558
|
-
let i = Math.max(0,
|
|
21579
|
+
left (inp, cursor) {
|
|
21580
|
+
const noMarkBefore = maskMarked.slice(cursor - 1).indexOf(MARKER) === -1;
|
|
21581
|
+
let i = Math.max(0, cursor - 1);
|
|
21559
21582
|
|
|
21560
21583
|
for (; i >= 0; i--) {
|
|
21561
21584
|
if (maskMarked[ i ] === MARKER) {
|
|
21562
|
-
|
|
21563
|
-
noMarkBefore === true &&
|
|
21585
|
+
cursor = i;
|
|
21586
|
+
noMarkBefore === true && cursor++;
|
|
21564
21587
|
break
|
|
21565
21588
|
}
|
|
21566
21589
|
}
|
|
21567
21590
|
|
|
21568
21591
|
if (
|
|
21569
21592
|
i < 0
|
|
21570
|
-
&& maskMarked[
|
|
21571
|
-
&& maskMarked[
|
|
21593
|
+
&& maskMarked[ cursor ] !== void 0
|
|
21594
|
+
&& maskMarked[ cursor ] !== MARKER
|
|
21572
21595
|
) {
|
|
21573
|
-
return moveCursor.right(inp, 0
|
|
21596
|
+
return moveCursor.right(inp, 0)
|
|
21574
21597
|
}
|
|
21575
21598
|
|
|
21576
|
-
|
|
21577
|
-
start,
|
|
21578
|
-
selection === true ? end : start, 'backward'
|
|
21579
|
-
);
|
|
21599
|
+
cursor >= 0 && inp.setSelectionRange(cursor, cursor, 'backward');
|
|
21580
21600
|
},
|
|
21581
21601
|
|
|
21582
|
-
right (inp,
|
|
21602
|
+
right (inp, cursor) {
|
|
21583
21603
|
const limit = inp.value.length;
|
|
21584
|
-
let i = Math.min(limit,
|
|
21604
|
+
let i = Math.min(limit, cursor + 1);
|
|
21585
21605
|
|
|
21586
21606
|
for (; i <= limit; i++) {
|
|
21587
21607
|
if (maskMarked[ i ] === MARKER) {
|
|
21588
|
-
|
|
21608
|
+
cursor = i;
|
|
21589
21609
|
break
|
|
21590
21610
|
}
|
|
21591
21611
|
else if (maskMarked[ i - 1 ] === MARKER) {
|
|
21592
|
-
|
|
21612
|
+
cursor = i;
|
|
21593
21613
|
}
|
|
21594
21614
|
}
|
|
21595
21615
|
|
|
21596
21616
|
if (
|
|
21597
21617
|
i > limit
|
|
21598
|
-
&& maskMarked[
|
|
21599
|
-
&& maskMarked[
|
|
21618
|
+
&& maskMarked[ cursor - 1 ] !== void 0
|
|
21619
|
+
&& maskMarked[ cursor - 1 ] !== MARKER
|
|
21600
21620
|
) {
|
|
21601
|
-
return moveCursor.left(inp, limit
|
|
21621
|
+
return moveCursor.left(inp, limit)
|
|
21602
21622
|
}
|
|
21603
21623
|
|
|
21604
|
-
inp.setSelectionRange(
|
|
21624
|
+
inp.setSelectionRange(cursor, cursor, 'forward');
|
|
21605
21625
|
},
|
|
21606
21626
|
|
|
21607
|
-
leftReverse (inp,
|
|
21627
|
+
leftReverse (inp, cursor) {
|
|
21608
21628
|
const
|
|
21609
21629
|
localMaskMarked = getPaddedMaskMarked(inp.value.length);
|
|
21610
|
-
let i = Math.max(0,
|
|
21630
|
+
let i = Math.max(0, cursor - 1);
|
|
21611
21631
|
|
|
21612
21632
|
for (; i >= 0; i--) {
|
|
21613
21633
|
if (localMaskMarked[ i - 1 ] === MARKER) {
|
|
21614
|
-
|
|
21634
|
+
cursor = i;
|
|
21615
21635
|
break
|
|
21616
21636
|
}
|
|
21617
21637
|
else if (localMaskMarked[ i ] === MARKER) {
|
|
21618
|
-
|
|
21638
|
+
cursor = i;
|
|
21619
21639
|
if (i === 0) {
|
|
21620
21640
|
break
|
|
21621
21641
|
}
|
|
@@ -21624,45 +21644,48 @@
|
|
|
21624
21644
|
|
|
21625
21645
|
if (
|
|
21626
21646
|
i < 0
|
|
21627
|
-
&& localMaskMarked[
|
|
21628
|
-
&& localMaskMarked[
|
|
21647
|
+
&& localMaskMarked[ cursor ] !== void 0
|
|
21648
|
+
&& localMaskMarked[ cursor ] !== MARKER
|
|
21629
21649
|
) {
|
|
21630
|
-
return moveCursor.rightReverse(inp, 0
|
|
21650
|
+
return moveCursor.rightReverse(inp, 0)
|
|
21631
21651
|
}
|
|
21632
21652
|
|
|
21633
|
-
|
|
21634
|
-
start,
|
|
21635
|
-
selection === true ? end : start, 'backward'
|
|
21636
|
-
);
|
|
21653
|
+
cursor >= 0 && inp.setSelectionRange(cursor, cursor, 'backward');
|
|
21637
21654
|
},
|
|
21638
21655
|
|
|
21639
|
-
rightReverse (inp,
|
|
21656
|
+
rightReverse (inp, cursor) {
|
|
21640
21657
|
const
|
|
21641
21658
|
limit = inp.value.length,
|
|
21642
21659
|
localMaskMarked = getPaddedMaskMarked(limit),
|
|
21643
|
-
noMarkBefore = localMaskMarked.slice(0,
|
|
21644
|
-
let i = Math.min(limit,
|
|
21660
|
+
noMarkBefore = localMaskMarked.slice(0, cursor + 1).indexOf(MARKER) === -1;
|
|
21661
|
+
let i = Math.min(limit, cursor + 1);
|
|
21645
21662
|
|
|
21646
21663
|
for (; i <= limit; i++) {
|
|
21647
21664
|
if (localMaskMarked[ i - 1 ] === MARKER) {
|
|
21648
|
-
|
|
21649
|
-
|
|
21665
|
+
cursor = i;
|
|
21666
|
+
cursor > 0 && noMarkBefore === true && cursor--;
|
|
21650
21667
|
break
|
|
21651
21668
|
}
|
|
21652
21669
|
}
|
|
21653
21670
|
|
|
21654
21671
|
if (
|
|
21655
21672
|
i > limit
|
|
21656
|
-
&& localMaskMarked[
|
|
21657
|
-
&& localMaskMarked[
|
|
21673
|
+
&& localMaskMarked[ cursor - 1 ] !== void 0
|
|
21674
|
+
&& localMaskMarked[ cursor - 1 ] !== MARKER
|
|
21658
21675
|
) {
|
|
21659
|
-
return moveCursor.leftReverse(inp, limit
|
|
21676
|
+
return moveCursor.leftReverse(inp, limit)
|
|
21660
21677
|
}
|
|
21661
21678
|
|
|
21662
|
-
inp.setSelectionRange(
|
|
21679
|
+
inp.setSelectionRange(cursor, cursor, 'forward');
|
|
21663
21680
|
}
|
|
21664
21681
|
};
|
|
21665
21682
|
|
|
21683
|
+
function onMaskedClick (e) {
|
|
21684
|
+
emit('click', e);
|
|
21685
|
+
|
|
21686
|
+
selectionAnchor = void 0;
|
|
21687
|
+
}
|
|
21688
|
+
|
|
21666
21689
|
function onMaskedKeydown (e) {
|
|
21667
21690
|
emit('keydown', e);
|
|
21668
21691
|
|
|
@@ -21675,25 +21698,40 @@
|
|
|
21675
21698
|
start = inp.selectionStart,
|
|
21676
21699
|
end = inp.selectionEnd;
|
|
21677
21700
|
|
|
21701
|
+
if (!e.shiftKey) {
|
|
21702
|
+
selectionAnchor = void 0;
|
|
21703
|
+
}
|
|
21704
|
+
|
|
21678
21705
|
if (e.keyCode === 37 || e.keyCode === 39) { // Left / Right
|
|
21706
|
+
if (e.shiftKey && selectionAnchor === void 0) {
|
|
21707
|
+
selectionAnchor = inp.selectionDirection === 'forward' ? start : end;
|
|
21708
|
+
}
|
|
21709
|
+
|
|
21679
21710
|
const fn = moveCursor[ (e.keyCode === 39 ? 'right' : 'left') + (props.reverseFillMask === true ? 'Reverse' : '') ];
|
|
21680
21711
|
|
|
21681
21712
|
e.preventDefault();
|
|
21682
|
-
fn(inp, start
|
|
21713
|
+
fn(inp, selectionAnchor === start ? end : start);
|
|
21714
|
+
|
|
21715
|
+
if (e.shiftKey) {
|
|
21716
|
+
const cursor = inp.selectionStart;
|
|
21717
|
+
inp.setSelectionRange(Math.min(selectionAnchor, cursor), Math.max(selectionAnchor, cursor), 'forward');
|
|
21718
|
+
}
|
|
21683
21719
|
}
|
|
21684
21720
|
else if (
|
|
21685
21721
|
e.keyCode === 8 // Backspace
|
|
21686
21722
|
&& props.reverseFillMask !== true
|
|
21687
21723
|
&& start === end
|
|
21688
21724
|
) {
|
|
21689
|
-
moveCursor.left(inp, start
|
|
21725
|
+
moveCursor.left(inp, start);
|
|
21726
|
+
inp.setSelectionRange(inp.selectionStart, end, 'backward');
|
|
21690
21727
|
}
|
|
21691
21728
|
else if (
|
|
21692
21729
|
e.keyCode === 46 // Delete
|
|
21693
21730
|
&& props.reverseFillMask === true
|
|
21694
21731
|
&& start === end
|
|
21695
21732
|
) {
|
|
21696
|
-
moveCursor.rightReverse(inp,
|
|
21733
|
+
moveCursor.rightReverse(inp, end);
|
|
21734
|
+
inp.setSelectionRange(start, inp.selectionEnd, 'forward');
|
|
21697
21735
|
}
|
|
21698
21736
|
}
|
|
21699
21737
|
|
|
@@ -21784,7 +21822,8 @@
|
|
|
21784
21822
|
hasMask,
|
|
21785
21823
|
moveCursorForPaste,
|
|
21786
21824
|
updateMaskValue,
|
|
21787
|
-
onMaskedKeydown
|
|
21825
|
+
onMaskedKeydown,
|
|
21826
|
+
onMaskedClick
|
|
21788
21827
|
}
|
|
21789
21828
|
}
|
|
21790
21829
|
|
|
@@ -21846,7 +21885,7 @@
|
|
|
21846
21885
|
emits: [
|
|
21847
21886
|
...useFieldEmits,
|
|
21848
21887
|
'paste', 'change',
|
|
21849
|
-
'keydown', 'animationend'
|
|
21888
|
+
'keydown', 'click', 'animationend'
|
|
21850
21889
|
],
|
|
21851
21890
|
|
|
21852
21891
|
setup (props, { emit, attrs }) {
|
|
@@ -21864,7 +21903,8 @@
|
|
|
21864
21903
|
hasMask,
|
|
21865
21904
|
moveCursorForPaste,
|
|
21866
21905
|
updateMaskValue,
|
|
21867
|
-
onMaskedKeydown
|
|
21906
|
+
onMaskedKeydown,
|
|
21907
|
+
onMaskedClick
|
|
21868
21908
|
} = useMask(props, emit, emitValue, inputRef);
|
|
21869
21909
|
|
|
21870
21910
|
const formDomProps = useFileFormDomProps(props, /* type guard */ true);
|
|
@@ -21901,6 +21941,8 @@
|
|
|
21901
21941
|
|
|
21902
21942
|
if (hasMask.value === true) {
|
|
21903
21943
|
evt.onKeydown = onMaskedKeydown;
|
|
21944
|
+
// reset selection anchor on pointer selection
|
|
21945
|
+
evt.onClick = onMaskedClick;
|
|
21904
21946
|
}
|
|
21905
21947
|
|
|
21906
21948
|
if (props.autogrow === true) {
|
|
@@ -22110,18 +22152,29 @@
|
|
|
22110
22152
|
const inp = inputRef.value;
|
|
22111
22153
|
if (inp !== null) {
|
|
22112
22154
|
const parentStyle = inp.parentNode.style;
|
|
22113
|
-
|
|
22155
|
+
// chrome does not keep scroll #15498
|
|
22156
|
+
const { scrollTop } = inp;
|
|
22157
|
+
// chrome calculates a smaller scrollHeight when in a .column container
|
|
22158
|
+
const { overflowY, maxHeight } = $q.platform.is.firefox === true
|
|
22159
|
+
? {}
|
|
22160
|
+
: window.getComputedStyle(inp);
|
|
22161
|
+
// on firefox or if overflowY is specified as scroll #14263, #14344
|
|
22162
|
+
// we don't touch overflow
|
|
22163
|
+
// firefox is not so bad in the end
|
|
22164
|
+
const changeOverflow = overflowY !== void 0 && overflowY !== 'scroll';
|
|
22114
22165
|
|
|
22115
22166
|
// reset height of textarea to a small size to detect the real height
|
|
22116
22167
|
// but keep the total control size the same
|
|
22117
|
-
|
|
22118
|
-
$q.platform.is.firefox !== true && (inp.style.overflow = 'hidden');
|
|
22168
|
+
changeOverflow === true && (inp.style.overflowY = 'hidden');
|
|
22119
22169
|
parentStyle.marginBottom = (inp.scrollHeight - 1) + 'px';
|
|
22120
22170
|
inp.style.height = '1px';
|
|
22121
22171
|
|
|
22122
22172
|
inp.style.height = inp.scrollHeight + 'px';
|
|
22123
|
-
|
|
22173
|
+
// we should allow scrollbars only
|
|
22174
|
+
// if there is maxHeight and content is taller than maxHeight
|
|
22175
|
+
changeOverflow === true && (inp.style.overflowY = parseInt(maxHeight, 10) < inp.scrollHeight ? 'auto' : 'hidden');
|
|
22124
22176
|
parentStyle.marginBottom = '';
|
|
22177
|
+
inp.scrollTop = scrollTop;
|
|
22125
22178
|
}
|
|
22126
22179
|
});
|
|
22127
22180
|
}
|
|
@@ -22198,7 +22251,10 @@
|
|
|
22198
22251
|
hasValue,
|
|
22199
22252
|
|
|
22200
22253
|
floatingLabel: vue.computed(() =>
|
|
22201
|
-
|
|
22254
|
+
(
|
|
22255
|
+
hasValue.value === true
|
|
22256
|
+
&& (props.type !== 'number' || isNaN(innerValue.value) === false)
|
|
22257
|
+
)
|
|
22202
22258
|
|| fieldValueIsFilled(props.displayValue)
|
|
22203
22259
|
),
|
|
22204
22260
|
|
|
@@ -28581,7 +28637,8 @@
|
|
|
28581
28637
|
|
|
28582
28638
|
return vue.h('div', {
|
|
28583
28639
|
class: 'q-field__native row items-center',
|
|
28584
|
-
...attrs
|
|
28640
|
+
...attrs,
|
|
28641
|
+
...state.splitAttrs.listeners.value
|
|
28585
28642
|
}, child)
|
|
28586
28643
|
},
|
|
28587
28644
|
|
|
@@ -32869,7 +32926,7 @@
|
|
|
32869
32926
|
|
|
32870
32927
|
if (topLeft !== void 0) {
|
|
32871
32928
|
child.push(
|
|
32872
|
-
vue.h('div', { class: 'q-
|
|
32929
|
+
vue.h('div', { class: 'q-table__control' }, [
|
|
32873
32930
|
topLeft(marginalsScope.value)
|
|
32874
32931
|
])
|
|
32875
32932
|
);
|
|
@@ -40781,7 +40838,7 @@
|
|
|
40781
40838
|
*/
|
|
40782
40839
|
|
|
40783
40840
|
var index_umd = {
|
|
40784
|
-
version: '2.11.
|
|
40841
|
+
version: '2.11.9',
|
|
40785
40842
|
install (app, opts) {
|
|
40786
40843
|
installQuasar(app, {
|
|
40787
40844
|
components,
|