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.css
CHANGED
|
@@ -2269,7 +2269,7 @@ body.q-ios-padding .q-dialog__inner > div {
|
|
|
2269
2269
|
.q-field__native:-webkit-autofill + .q-field__label, .q-field__input:-webkit-autofill + .q-field__label {
|
|
2270
2270
|
transform: translateY(-40%) scale(0.75);
|
|
2271
2271
|
}
|
|
2272
|
-
.q-field__native[type=
|
|
2272
|
+
.q-field__native[type=color] + .q-field__label, .q-field__native[type=date] + .q-field__label, .q-field__native[type=datetime-local] + .q-field__label, .q-field__native[type=month] + .q-field__label, .q-field__native[type=time] + .q-field__label, .q-field__native[type=week] + .q-field__label, .q-field__input[type=color] + .q-field__label, .q-field__input[type=date] + .q-field__label, .q-field__input[type=datetime-local] + .q-field__label, .q-field__input[type=month] + .q-field__label, .q-field__input[type=time] + .q-field__label, .q-field__input[type=week] + .q-field__label {
|
|
2273
2273
|
transform: translateY(-40%) scale(0.75);
|
|
2274
2274
|
}
|
|
2275
2275
|
.q-field__native:invalid, .q-field__input:invalid {
|
|
@@ -2549,7 +2549,7 @@ body.q-ios-padding .q-dialog__inner > div {
|
|
|
2549
2549
|
.q-field--dense .q-field__native:-webkit-autofill + .q-field__label, .q-field--dense .q-field__input:-webkit-autofill + .q-field__label {
|
|
2550
2550
|
transform: translateY(-30%) scale(0.75);
|
|
2551
2551
|
}
|
|
2552
|
-
.q-field--dense .q-field__native[type=
|
|
2552
|
+
.q-field--dense .q-field__native[type=color] + .q-field__label, .q-field--dense .q-field__native[type=date] + .q-field__label, .q-field--dense .q-field__native[type=datetime-local] + .q-field__label, .q-field--dense .q-field__native[type=month] + .q-field__label, .q-field--dense .q-field__native[type=time] + .q-field__label, .q-field--dense .q-field__native[type=week] + .q-field__label, .q-field--dense .q-field__input[type=color] + .q-field__label, .q-field--dense .q-field__input[type=date] + .q-field__label, .q-field--dense .q-field__input[type=datetime-local] + .q-field__label, .q-field--dense .q-field__input[type=month] + .q-field__label, .q-field--dense .q-field__input[type=time] + .q-field__label, .q-field--dense .q-field__input[type=week] + .q-field__label {
|
|
2553
2553
|
transform: translateY(-30%) scale(0.75);
|
|
2554
2554
|
}
|
|
2555
2555
|
.q-field--borderless .q-field__bottom, .q-field--borderless.q-field--dense .q-field__control, .q-field--standard .q-field__bottom, .q-field--standard.q-field--dense .q-field__control {
|
package/dist/quasar.esm.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
|
*/
|
|
@@ -1651,7 +1651,7 @@ function prepareApp (app, uiOpts, pluginOpts) {
|
|
|
1651
1651
|
}
|
|
1652
1652
|
|
|
1653
1653
|
var installQuasar = function (parentApp, opts = {}) {
|
|
1654
|
-
const $q = { version: '2.11.
|
|
1654
|
+
const $q = { version: '2.11.8' };
|
|
1655
1655
|
|
|
1656
1656
|
if (globalConfigIsFrozen === false) {
|
|
1657
1657
|
if (opts.config !== void 0) {
|
|
@@ -16910,7 +16910,11 @@ function getDropdown (eVm, btn) {
|
|
|
16910
16910
|
textColor: highlight && !eVm.props.toolbarPush ? null : eVm.props.toolbarTextColor,
|
|
16911
16911
|
label: btn.fixedLabel ? btn.label : label,
|
|
16912
16912
|
icon: btn.fixedIcon ? (btn.icon !== null ? btn.icon : void 0) : icon,
|
|
16913
|
-
contentClass
|
|
16913
|
+
contentClass,
|
|
16914
|
+
onShow: evt => eVm.emit('dropdownShow', evt),
|
|
16915
|
+
onHide: evt => eVm.emit('dropdownHide', evt),
|
|
16916
|
+
onBeforeShow: evt => eVm.emit('dropdownBeforeShow', evt),
|
|
16917
|
+
onBeforeHide: evt => eVm.emit('dropdownBeforeHide', evt)
|
|
16914
16918
|
}, () => Items);
|
|
16915
16919
|
|
|
16916
16920
|
return Dropdown
|
|
@@ -17222,7 +17226,11 @@ var QEditor = createComponent({
|
|
|
17222
17226
|
...useFullscreenEmits,
|
|
17223
17227
|
'update:modelValue',
|
|
17224
17228
|
'keydown', 'click', 'mouseup', 'keyup', 'touchend',
|
|
17225
|
-
'focus', 'blur'
|
|
17229
|
+
'focus', 'blur',
|
|
17230
|
+
'dropdownShow',
|
|
17231
|
+
'dropdownHide',
|
|
17232
|
+
'dropdownBeforeShow',
|
|
17233
|
+
'dropdownBeforeHide'
|
|
17226
17234
|
],
|
|
17227
17235
|
|
|
17228
17236
|
setup (props, { slots, emit, attrs }) {
|
|
@@ -17379,6 +17387,7 @@ var QEditor = createComponent({
|
|
|
17379
17387
|
$q,
|
|
17380
17388
|
props,
|
|
17381
17389
|
slots,
|
|
17390
|
+
emit,
|
|
17382
17391
|
// caret (will get injected after mount)
|
|
17383
17392
|
inFullscreen,
|
|
17384
17393
|
toggleFullscreen,
|
|
@@ -21291,7 +21300,7 @@ const useMaskProps = {
|
|
|
21291
21300
|
};
|
|
21292
21301
|
|
|
21293
21302
|
function useMask (props, emit, emitValue, inputRef) {
|
|
21294
|
-
let maskMarked, maskReplaced, computedMask, computedUnmask;
|
|
21303
|
+
let maskMarked, maskReplaced, computedMask, computedUnmask, pastedTextStart, selectionAnchor;
|
|
21295
21304
|
|
|
21296
21305
|
const hasMask = ref(null);
|
|
21297
21306
|
const innerValue = ref(getInitialMaskedValue());
|
|
@@ -21493,8 +21502,15 @@ function useMask (props, emit, emitValue, inputRef) {
|
|
|
21493
21502
|
}
|
|
21494
21503
|
|
|
21495
21504
|
if (inputType === 'insertFromPaste' && props.reverseFillMask !== true) {
|
|
21496
|
-
const
|
|
21497
|
-
|
|
21505
|
+
const maxEnd = inp.selectionEnd;
|
|
21506
|
+
let cursor = end - 1;
|
|
21507
|
+
// each non-marker char means we move once to right
|
|
21508
|
+
for (let i = pastedTextStart; i <= cursor && i < maxEnd; i++) {
|
|
21509
|
+
if (maskMarked[ i ] !== MARKER) {
|
|
21510
|
+
cursor++;
|
|
21511
|
+
}
|
|
21512
|
+
}
|
|
21513
|
+
moveCursor.right(inp, cursor);
|
|
21498
21514
|
|
|
21499
21515
|
return
|
|
21500
21516
|
}
|
|
@@ -21520,7 +21536,7 @@ function useMask (props, emit, emitValue, inputRef) {
|
|
|
21520
21536
|
inp.setSelectionRange(cursor, cursor, 'forward');
|
|
21521
21537
|
}
|
|
21522
21538
|
else {
|
|
21523
|
-
moveCursor.rightReverse(inp, cursor
|
|
21539
|
+
moveCursor.rightReverse(inp, cursor);
|
|
21524
21540
|
}
|
|
21525
21541
|
}
|
|
21526
21542
|
else {
|
|
@@ -21531,11 +21547,11 @@ function useMask (props, emit, emitValue, inputRef) {
|
|
|
21531
21547
|
else {
|
|
21532
21548
|
if (changed === true) {
|
|
21533
21549
|
const cursor = Math.max(0, maskMarked.indexOf(MARKER), Math.min(preMasked.length, end) - 1);
|
|
21534
|
-
moveCursor.right(inp, cursor
|
|
21550
|
+
moveCursor.right(inp, cursor);
|
|
21535
21551
|
}
|
|
21536
21552
|
else {
|
|
21537
21553
|
const cursor = end - 1;
|
|
21538
|
-
moveCursor.right(inp, cursor
|
|
21554
|
+
moveCursor.right(inp, cursor);
|
|
21539
21555
|
}
|
|
21540
21556
|
}
|
|
21541
21557
|
});
|
|
@@ -21551,74 +21567,72 @@ function useMask (props, emit, emitValue, inputRef) {
|
|
|
21551
21567
|
const preMasked = maskValue(unmaskValue(inp.value));
|
|
21552
21568
|
|
|
21553
21569
|
start = Math.max(0, maskMarked.indexOf(MARKER), Math.min(preMasked.length, start));
|
|
21570
|
+
pastedTextStart = start;
|
|
21554
21571
|
|
|
21555
21572
|
inp.setSelectionRange(start, end, 'forward');
|
|
21556
21573
|
}
|
|
21557
21574
|
|
|
21558
21575
|
const moveCursor = {
|
|
21559
|
-
left (inp,
|
|
21560
|
-
const noMarkBefore = maskMarked.slice(
|
|
21561
|
-
let i = Math.max(0,
|
|
21576
|
+
left (inp, cursor) {
|
|
21577
|
+
const noMarkBefore = maskMarked.slice(cursor - 1).indexOf(MARKER) === -1;
|
|
21578
|
+
let i = Math.max(0, cursor - 1);
|
|
21562
21579
|
|
|
21563
21580
|
for (; i >= 0; i--) {
|
|
21564
21581
|
if (maskMarked[ i ] === MARKER) {
|
|
21565
|
-
|
|
21566
|
-
noMarkBefore === true &&
|
|
21582
|
+
cursor = i;
|
|
21583
|
+
noMarkBefore === true && cursor++;
|
|
21567
21584
|
break
|
|
21568
21585
|
}
|
|
21569
21586
|
}
|
|
21570
21587
|
|
|
21571
21588
|
if (
|
|
21572
21589
|
i < 0
|
|
21573
|
-
&& maskMarked[
|
|
21574
|
-
&& maskMarked[
|
|
21590
|
+
&& maskMarked[ cursor ] !== void 0
|
|
21591
|
+
&& maskMarked[ cursor ] !== MARKER
|
|
21575
21592
|
) {
|
|
21576
|
-
return moveCursor.right(inp, 0
|
|
21593
|
+
return moveCursor.right(inp, 0)
|
|
21577
21594
|
}
|
|
21578
21595
|
|
|
21579
|
-
|
|
21580
|
-
start,
|
|
21581
|
-
selection === true ? end : start, 'backward'
|
|
21582
|
-
);
|
|
21596
|
+
cursor >= 0 && inp.setSelectionRange(cursor, cursor, 'backward');
|
|
21583
21597
|
},
|
|
21584
21598
|
|
|
21585
|
-
right (inp,
|
|
21599
|
+
right (inp, cursor) {
|
|
21586
21600
|
const limit = inp.value.length;
|
|
21587
|
-
let i = Math.min(limit,
|
|
21601
|
+
let i = Math.min(limit, cursor + 1);
|
|
21588
21602
|
|
|
21589
21603
|
for (; i <= limit; i++) {
|
|
21590
21604
|
if (maskMarked[ i ] === MARKER) {
|
|
21591
|
-
|
|
21605
|
+
cursor = i;
|
|
21592
21606
|
break
|
|
21593
21607
|
}
|
|
21594
21608
|
else if (maskMarked[ i - 1 ] === MARKER) {
|
|
21595
|
-
|
|
21609
|
+
cursor = i;
|
|
21596
21610
|
}
|
|
21597
21611
|
}
|
|
21598
21612
|
|
|
21599
21613
|
if (
|
|
21600
21614
|
i > limit
|
|
21601
|
-
&& maskMarked[
|
|
21602
|
-
&& maskMarked[
|
|
21615
|
+
&& maskMarked[ cursor - 1 ] !== void 0
|
|
21616
|
+
&& maskMarked[ cursor - 1 ] !== MARKER
|
|
21603
21617
|
) {
|
|
21604
|
-
return moveCursor.left(inp, limit
|
|
21618
|
+
return moveCursor.left(inp, limit)
|
|
21605
21619
|
}
|
|
21606
21620
|
|
|
21607
|
-
inp.setSelectionRange(
|
|
21621
|
+
inp.setSelectionRange(cursor, cursor, 'forward');
|
|
21608
21622
|
},
|
|
21609
21623
|
|
|
21610
|
-
leftReverse (inp,
|
|
21624
|
+
leftReverse (inp, cursor) {
|
|
21611
21625
|
const
|
|
21612
21626
|
localMaskMarked = getPaddedMaskMarked(inp.value.length);
|
|
21613
|
-
let i = Math.max(0,
|
|
21627
|
+
let i = Math.max(0, cursor - 1);
|
|
21614
21628
|
|
|
21615
21629
|
for (; i >= 0; i--) {
|
|
21616
21630
|
if (localMaskMarked[ i - 1 ] === MARKER) {
|
|
21617
|
-
|
|
21631
|
+
cursor = i;
|
|
21618
21632
|
break
|
|
21619
21633
|
}
|
|
21620
21634
|
else if (localMaskMarked[ i ] === MARKER) {
|
|
21621
|
-
|
|
21635
|
+
cursor = i;
|
|
21622
21636
|
if (i === 0) {
|
|
21623
21637
|
break
|
|
21624
21638
|
}
|
|
@@ -21627,45 +21641,48 @@ function useMask (props, emit, emitValue, inputRef) {
|
|
|
21627
21641
|
|
|
21628
21642
|
if (
|
|
21629
21643
|
i < 0
|
|
21630
|
-
&& localMaskMarked[
|
|
21631
|
-
&& localMaskMarked[
|
|
21644
|
+
&& localMaskMarked[ cursor ] !== void 0
|
|
21645
|
+
&& localMaskMarked[ cursor ] !== MARKER
|
|
21632
21646
|
) {
|
|
21633
|
-
return moveCursor.rightReverse(inp, 0
|
|
21647
|
+
return moveCursor.rightReverse(inp, 0)
|
|
21634
21648
|
}
|
|
21635
21649
|
|
|
21636
|
-
|
|
21637
|
-
start,
|
|
21638
|
-
selection === true ? end : start, 'backward'
|
|
21639
|
-
);
|
|
21650
|
+
cursor >= 0 && inp.setSelectionRange(cursor, cursor, 'backward');
|
|
21640
21651
|
},
|
|
21641
21652
|
|
|
21642
|
-
rightReverse (inp,
|
|
21653
|
+
rightReverse (inp, cursor) {
|
|
21643
21654
|
const
|
|
21644
21655
|
limit = inp.value.length,
|
|
21645
21656
|
localMaskMarked = getPaddedMaskMarked(limit),
|
|
21646
|
-
noMarkBefore = localMaskMarked.slice(0,
|
|
21647
|
-
let i = Math.min(limit,
|
|
21657
|
+
noMarkBefore = localMaskMarked.slice(0, cursor + 1).indexOf(MARKER) === -1;
|
|
21658
|
+
let i = Math.min(limit, cursor + 1);
|
|
21648
21659
|
|
|
21649
21660
|
for (; i <= limit; i++) {
|
|
21650
21661
|
if (localMaskMarked[ i - 1 ] === MARKER) {
|
|
21651
|
-
|
|
21652
|
-
|
|
21662
|
+
cursor = i;
|
|
21663
|
+
cursor > 0 && noMarkBefore === true && cursor--;
|
|
21653
21664
|
break
|
|
21654
21665
|
}
|
|
21655
21666
|
}
|
|
21656
21667
|
|
|
21657
21668
|
if (
|
|
21658
21669
|
i > limit
|
|
21659
|
-
&& localMaskMarked[
|
|
21660
|
-
&& localMaskMarked[
|
|
21670
|
+
&& localMaskMarked[ cursor - 1 ] !== void 0
|
|
21671
|
+
&& localMaskMarked[ cursor - 1 ] !== MARKER
|
|
21661
21672
|
) {
|
|
21662
|
-
return moveCursor.leftReverse(inp, limit
|
|
21673
|
+
return moveCursor.leftReverse(inp, limit)
|
|
21663
21674
|
}
|
|
21664
21675
|
|
|
21665
|
-
inp.setSelectionRange(
|
|
21676
|
+
inp.setSelectionRange(cursor, cursor, 'forward');
|
|
21666
21677
|
}
|
|
21667
21678
|
};
|
|
21668
21679
|
|
|
21680
|
+
function onMaskedClick (e) {
|
|
21681
|
+
emit('click', e);
|
|
21682
|
+
|
|
21683
|
+
selectionAnchor = void 0;
|
|
21684
|
+
}
|
|
21685
|
+
|
|
21669
21686
|
function onMaskedKeydown (e) {
|
|
21670
21687
|
emit('keydown', e);
|
|
21671
21688
|
|
|
@@ -21678,25 +21695,38 @@ function useMask (props, emit, emitValue, inputRef) {
|
|
|
21678
21695
|
start = inp.selectionStart,
|
|
21679
21696
|
end = inp.selectionEnd;
|
|
21680
21697
|
|
|
21698
|
+
if (!e.shiftKey) {
|
|
21699
|
+
selectionAnchor = void 0;
|
|
21700
|
+
}
|
|
21701
|
+
|
|
21681
21702
|
if (e.keyCode === 37 || e.keyCode === 39) { // Left / Right
|
|
21703
|
+
if (e.shiftKey && selectionAnchor === void 0) {
|
|
21704
|
+
selectionAnchor = inp.selectionDirection === 'forward' ? start : end;
|
|
21705
|
+
}
|
|
21706
|
+
|
|
21682
21707
|
const fn = moveCursor[ (e.keyCode === 39 ? 'right' : 'left') + (props.reverseFillMask === true ? 'Reverse' : '') ];
|
|
21683
21708
|
|
|
21684
21709
|
e.preventDefault();
|
|
21685
|
-
fn(inp, start
|
|
21710
|
+
fn(inp, selectionAnchor === start ? end : start);
|
|
21711
|
+
|
|
21712
|
+
if (e.shiftKey) {
|
|
21713
|
+
const cursor = inp.selectionStart;
|
|
21714
|
+
inp.setSelectionRange(Math.min(selectionAnchor, cursor), Math.max(selectionAnchor, cursor), 'forward');
|
|
21715
|
+
}
|
|
21686
21716
|
}
|
|
21687
21717
|
else if (
|
|
21688
21718
|
e.keyCode === 8 // Backspace
|
|
21689
21719
|
&& props.reverseFillMask !== true
|
|
21690
21720
|
&& start === end
|
|
21691
21721
|
) {
|
|
21692
|
-
moveCursor.left(inp, start
|
|
21722
|
+
moveCursor.left(inp, start);
|
|
21693
21723
|
}
|
|
21694
21724
|
else if (
|
|
21695
21725
|
e.keyCode === 46 // Delete
|
|
21696
21726
|
&& props.reverseFillMask === true
|
|
21697
21727
|
&& start === end
|
|
21698
21728
|
) {
|
|
21699
|
-
moveCursor.rightReverse(inp,
|
|
21729
|
+
moveCursor.rightReverse(inp, end);
|
|
21700
21730
|
}
|
|
21701
21731
|
}
|
|
21702
21732
|
|
|
@@ -21787,7 +21817,8 @@ function useMask (props, emit, emitValue, inputRef) {
|
|
|
21787
21817
|
hasMask,
|
|
21788
21818
|
moveCursorForPaste,
|
|
21789
21819
|
updateMaskValue,
|
|
21790
|
-
onMaskedKeydown
|
|
21820
|
+
onMaskedKeydown,
|
|
21821
|
+
onMaskedClick
|
|
21791
21822
|
}
|
|
21792
21823
|
}
|
|
21793
21824
|
|
|
@@ -21849,7 +21880,7 @@ var QInput = createComponent({
|
|
|
21849
21880
|
emits: [
|
|
21850
21881
|
...useFieldEmits,
|
|
21851
21882
|
'paste', 'change',
|
|
21852
|
-
'keydown', 'animationend'
|
|
21883
|
+
'keydown', 'click', 'animationend'
|
|
21853
21884
|
],
|
|
21854
21885
|
|
|
21855
21886
|
setup (props, { emit, attrs }) {
|
|
@@ -21867,7 +21898,8 @@ var QInput = createComponent({
|
|
|
21867
21898
|
hasMask,
|
|
21868
21899
|
moveCursorForPaste,
|
|
21869
21900
|
updateMaskValue,
|
|
21870
|
-
onMaskedKeydown
|
|
21901
|
+
onMaskedKeydown,
|
|
21902
|
+
onMaskedClick
|
|
21871
21903
|
} = useMask(props, emit, emitValue, inputRef);
|
|
21872
21904
|
|
|
21873
21905
|
const formDomProps = useFileFormDomProps(props, /* type guard */ true);
|
|
@@ -21904,6 +21936,8 @@ var QInput = createComponent({
|
|
|
21904
21936
|
|
|
21905
21937
|
if (hasMask.value === true) {
|
|
21906
21938
|
evt.onKeydown = onMaskedKeydown;
|
|
21939
|
+
// reset selection anchor on pointer selection
|
|
21940
|
+
evt.onClick = onMaskedClick;
|
|
21907
21941
|
}
|
|
21908
21942
|
|
|
21909
21943
|
if (props.autogrow === true) {
|
|
@@ -22113,18 +22147,29 @@ var QInput = createComponent({
|
|
|
22113
22147
|
const inp = inputRef.value;
|
|
22114
22148
|
if (inp !== null) {
|
|
22115
22149
|
const parentStyle = inp.parentNode.style;
|
|
22116
|
-
|
|
22150
|
+
// chrome does not keep scroll #15498
|
|
22151
|
+
const { scrollTop } = inp;
|
|
22152
|
+
// chrome calculates a smaller scrollHeight when in a .column container
|
|
22153
|
+
const { overflowY, maxHeight } = $q.platform.is.firefox === true
|
|
22154
|
+
? {}
|
|
22155
|
+
: window.getComputedStyle(inp);
|
|
22156
|
+
// on firefox or if overflowY is specified as scroll #14263, #14344
|
|
22157
|
+
// we don't touch overflow
|
|
22158
|
+
// firefox is not so bad in the end
|
|
22159
|
+
const changeOverflow = overflowY !== void 0 && overflowY !== 'scroll';
|
|
22117
22160
|
|
|
22118
22161
|
// reset height of textarea to a small size to detect the real height
|
|
22119
22162
|
// but keep the total control size the same
|
|
22120
|
-
|
|
22121
|
-
$q.platform.is.firefox !== true && (inp.style.overflow = 'hidden');
|
|
22163
|
+
changeOverflow === true && (inp.style.overflowY = 'hidden');
|
|
22122
22164
|
parentStyle.marginBottom = (inp.scrollHeight - 1) + 'px';
|
|
22123
22165
|
inp.style.height = '1px';
|
|
22124
22166
|
|
|
22125
22167
|
inp.style.height = inp.scrollHeight + 'px';
|
|
22126
|
-
|
|
22168
|
+
// we should allow scrollbars only
|
|
22169
|
+
// if there is maxHeight and content is taller than maxHeight
|
|
22170
|
+
changeOverflow === true && (inp.style.overflowY = parseInt(maxHeight, 10) < inp.scrollHeight ? 'auto' : 'hidden');
|
|
22127
22171
|
parentStyle.marginBottom = '';
|
|
22172
|
+
inp.scrollTop = scrollTop;
|
|
22128
22173
|
}
|
|
22129
22174
|
});
|
|
22130
22175
|
}
|
|
@@ -22201,7 +22246,10 @@ var QInput = createComponent({
|
|
|
22201
22246
|
hasValue,
|
|
22202
22247
|
|
|
22203
22248
|
floatingLabel: computed(() =>
|
|
22204
|
-
|
|
22249
|
+
(
|
|
22250
|
+
hasValue.value === true
|
|
22251
|
+
&& (props.type !== 'number' || isNaN(innerValue.value) === false)
|
|
22252
|
+
)
|
|
22205
22253
|
|| fieldValueIsFilled(props.displayValue)
|
|
22206
22254
|
),
|
|
22207
22255
|
|
|
@@ -28584,7 +28632,8 @@ var QSelect = createComponent({
|
|
|
28584
28632
|
|
|
28585
28633
|
return h('div', {
|
|
28586
28634
|
class: 'q-field__native row items-center',
|
|
28587
|
-
...attrs
|
|
28635
|
+
...attrs,
|
|
28636
|
+
...state.splitAttrs.listeners.value
|
|
28588
28637
|
}, child)
|
|
28589
28638
|
},
|
|
28590
28639
|
|
|
@@ -32872,7 +32921,7 @@ var QTable = createComponent({
|
|
|
32872
32921
|
|
|
32873
32922
|
if (topLeft !== void 0) {
|
|
32874
32923
|
child.push(
|
|
32875
|
-
h('div', { class: 'q-
|
|
32924
|
+
h('div', { class: 'q-table__control' }, [
|
|
32876
32925
|
topLeft(marginalsScope.value)
|
|
32877
32926
|
])
|
|
32878
32927
|
);
|
|
@@ -40594,7 +40643,7 @@ function runSequentialPromises (
|
|
|
40594
40643
|
*/
|
|
40595
40644
|
|
|
40596
40645
|
const Quasar = {
|
|
40597
|
-
version: '2.11.
|
|
40646
|
+
version: '2.11.8',
|
|
40598
40647
|
install: installQuasar,
|
|
40599
40648
|
lang: Plugin$8,
|
|
40600
40649
|
iconSet: Plugin$7
|