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.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.9
|
|
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.9' };
|
|
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,13 @@ 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',
|
|
17234
|
+
'linkShow',
|
|
17235
|
+
'linkHide'
|
|
17226
17236
|
],
|
|
17227
17237
|
|
|
17228
17238
|
setup (props, { slots, emit, attrs }) {
|
|
@@ -17379,6 +17389,7 @@ var QEditor = createComponent({
|
|
|
17379
17389
|
$q,
|
|
17380
17390
|
props,
|
|
17381
17391
|
slots,
|
|
17392
|
+
emit,
|
|
17382
17393
|
// caret (will get injected after mount)
|
|
17383
17394
|
inFullscreen,
|
|
17384
17395
|
toggleFullscreen,
|
|
@@ -17399,6 +17410,10 @@ var QEditor = createComponent({
|
|
|
17399
17410
|
}
|
|
17400
17411
|
});
|
|
17401
17412
|
|
|
17413
|
+
watch(editLinkUrl, v => {
|
|
17414
|
+
emit(`link-${ v ? 'Show' : 'Hide' }`);
|
|
17415
|
+
});
|
|
17416
|
+
|
|
17402
17417
|
const hasToolbar = computed(() => props.toolbar && props.toolbar.length > 0);
|
|
17403
17418
|
|
|
17404
17419
|
const keys = computed(() => {
|
|
@@ -21291,7 +21306,7 @@ const useMaskProps = {
|
|
|
21291
21306
|
};
|
|
21292
21307
|
|
|
21293
21308
|
function useMask (props, emit, emitValue, inputRef) {
|
|
21294
|
-
let maskMarked, maskReplaced, computedMask, computedUnmask;
|
|
21309
|
+
let maskMarked, maskReplaced, computedMask, computedUnmask, pastedTextStart, selectionAnchor;
|
|
21295
21310
|
|
|
21296
21311
|
const hasMask = ref(null);
|
|
21297
21312
|
const innerValue = ref(getInitialMaskedValue());
|
|
@@ -21493,8 +21508,15 @@ function useMask (props, emit, emitValue, inputRef) {
|
|
|
21493
21508
|
}
|
|
21494
21509
|
|
|
21495
21510
|
if (inputType === 'insertFromPaste' && props.reverseFillMask !== true) {
|
|
21496
|
-
const
|
|
21497
|
-
|
|
21511
|
+
const maxEnd = inp.selectionEnd;
|
|
21512
|
+
let cursor = end - 1;
|
|
21513
|
+
// each non-marker char means we move once to right
|
|
21514
|
+
for (let i = pastedTextStart; i <= cursor && i < maxEnd; i++) {
|
|
21515
|
+
if (maskMarked[ i ] !== MARKER) {
|
|
21516
|
+
cursor++;
|
|
21517
|
+
}
|
|
21518
|
+
}
|
|
21519
|
+
moveCursor.right(inp, cursor);
|
|
21498
21520
|
|
|
21499
21521
|
return
|
|
21500
21522
|
}
|
|
@@ -21520,7 +21542,7 @@ function useMask (props, emit, emitValue, inputRef) {
|
|
|
21520
21542
|
inp.setSelectionRange(cursor, cursor, 'forward');
|
|
21521
21543
|
}
|
|
21522
21544
|
else {
|
|
21523
|
-
moveCursor.rightReverse(inp, cursor
|
|
21545
|
+
moveCursor.rightReverse(inp, cursor);
|
|
21524
21546
|
}
|
|
21525
21547
|
}
|
|
21526
21548
|
else {
|
|
@@ -21531,11 +21553,11 @@ function useMask (props, emit, emitValue, inputRef) {
|
|
|
21531
21553
|
else {
|
|
21532
21554
|
if (changed === true) {
|
|
21533
21555
|
const cursor = Math.max(0, maskMarked.indexOf(MARKER), Math.min(preMasked.length, end) - 1);
|
|
21534
|
-
moveCursor.right(inp, cursor
|
|
21556
|
+
moveCursor.right(inp, cursor);
|
|
21535
21557
|
}
|
|
21536
21558
|
else {
|
|
21537
21559
|
const cursor = end - 1;
|
|
21538
|
-
moveCursor.right(inp, cursor
|
|
21560
|
+
moveCursor.right(inp, cursor);
|
|
21539
21561
|
}
|
|
21540
21562
|
}
|
|
21541
21563
|
});
|
|
@@ -21551,74 +21573,72 @@ function useMask (props, emit, emitValue, inputRef) {
|
|
|
21551
21573
|
const preMasked = maskValue(unmaskValue(inp.value));
|
|
21552
21574
|
|
|
21553
21575
|
start = Math.max(0, maskMarked.indexOf(MARKER), Math.min(preMasked.length, start));
|
|
21576
|
+
pastedTextStart = start;
|
|
21554
21577
|
|
|
21555
21578
|
inp.setSelectionRange(start, end, 'forward');
|
|
21556
21579
|
}
|
|
21557
21580
|
|
|
21558
21581
|
const moveCursor = {
|
|
21559
|
-
left (inp,
|
|
21560
|
-
const noMarkBefore = maskMarked.slice(
|
|
21561
|
-
let i = Math.max(0,
|
|
21582
|
+
left (inp, cursor) {
|
|
21583
|
+
const noMarkBefore = maskMarked.slice(cursor - 1).indexOf(MARKER) === -1;
|
|
21584
|
+
let i = Math.max(0, cursor - 1);
|
|
21562
21585
|
|
|
21563
21586
|
for (; i >= 0; i--) {
|
|
21564
21587
|
if (maskMarked[ i ] === MARKER) {
|
|
21565
|
-
|
|
21566
|
-
noMarkBefore === true &&
|
|
21588
|
+
cursor = i;
|
|
21589
|
+
noMarkBefore === true && cursor++;
|
|
21567
21590
|
break
|
|
21568
21591
|
}
|
|
21569
21592
|
}
|
|
21570
21593
|
|
|
21571
21594
|
if (
|
|
21572
21595
|
i < 0
|
|
21573
|
-
&& maskMarked[
|
|
21574
|
-
&& maskMarked[
|
|
21596
|
+
&& maskMarked[ cursor ] !== void 0
|
|
21597
|
+
&& maskMarked[ cursor ] !== MARKER
|
|
21575
21598
|
) {
|
|
21576
|
-
return moveCursor.right(inp, 0
|
|
21599
|
+
return moveCursor.right(inp, 0)
|
|
21577
21600
|
}
|
|
21578
21601
|
|
|
21579
|
-
|
|
21580
|
-
start,
|
|
21581
|
-
selection === true ? end : start, 'backward'
|
|
21582
|
-
);
|
|
21602
|
+
cursor >= 0 && inp.setSelectionRange(cursor, cursor, 'backward');
|
|
21583
21603
|
},
|
|
21584
21604
|
|
|
21585
|
-
right (inp,
|
|
21605
|
+
right (inp, cursor) {
|
|
21586
21606
|
const limit = inp.value.length;
|
|
21587
|
-
let i = Math.min(limit,
|
|
21607
|
+
let i = Math.min(limit, cursor + 1);
|
|
21588
21608
|
|
|
21589
21609
|
for (; i <= limit; i++) {
|
|
21590
21610
|
if (maskMarked[ i ] === MARKER) {
|
|
21591
|
-
|
|
21611
|
+
cursor = i;
|
|
21592
21612
|
break
|
|
21593
21613
|
}
|
|
21594
21614
|
else if (maskMarked[ i - 1 ] === MARKER) {
|
|
21595
|
-
|
|
21615
|
+
cursor = i;
|
|
21596
21616
|
}
|
|
21597
21617
|
}
|
|
21598
21618
|
|
|
21599
21619
|
if (
|
|
21600
21620
|
i > limit
|
|
21601
|
-
&& maskMarked[
|
|
21602
|
-
&& maskMarked[
|
|
21621
|
+
&& maskMarked[ cursor - 1 ] !== void 0
|
|
21622
|
+
&& maskMarked[ cursor - 1 ] !== MARKER
|
|
21603
21623
|
) {
|
|
21604
|
-
return moveCursor.left(inp, limit
|
|
21624
|
+
return moveCursor.left(inp, limit)
|
|
21605
21625
|
}
|
|
21606
21626
|
|
|
21607
|
-
inp.setSelectionRange(
|
|
21627
|
+
inp.setSelectionRange(cursor, cursor, 'forward');
|
|
21608
21628
|
},
|
|
21609
21629
|
|
|
21610
|
-
leftReverse (inp,
|
|
21630
|
+
leftReverse (inp, cursor) {
|
|
21611
21631
|
const
|
|
21612
21632
|
localMaskMarked = getPaddedMaskMarked(inp.value.length);
|
|
21613
|
-
let i = Math.max(0,
|
|
21633
|
+
let i = Math.max(0, cursor - 1);
|
|
21614
21634
|
|
|
21615
21635
|
for (; i >= 0; i--) {
|
|
21616
21636
|
if (localMaskMarked[ i - 1 ] === MARKER) {
|
|
21617
|
-
|
|
21637
|
+
cursor = i;
|
|
21618
21638
|
break
|
|
21619
21639
|
}
|
|
21620
21640
|
else if (localMaskMarked[ i ] === MARKER) {
|
|
21621
|
-
|
|
21641
|
+
cursor = i;
|
|
21622
21642
|
if (i === 0) {
|
|
21623
21643
|
break
|
|
21624
21644
|
}
|
|
@@ -21627,45 +21647,48 @@ function useMask (props, emit, emitValue, inputRef) {
|
|
|
21627
21647
|
|
|
21628
21648
|
if (
|
|
21629
21649
|
i < 0
|
|
21630
|
-
&& localMaskMarked[
|
|
21631
|
-
&& localMaskMarked[
|
|
21650
|
+
&& localMaskMarked[ cursor ] !== void 0
|
|
21651
|
+
&& localMaskMarked[ cursor ] !== MARKER
|
|
21632
21652
|
) {
|
|
21633
|
-
return moveCursor.rightReverse(inp, 0
|
|
21653
|
+
return moveCursor.rightReverse(inp, 0)
|
|
21634
21654
|
}
|
|
21635
21655
|
|
|
21636
|
-
|
|
21637
|
-
start,
|
|
21638
|
-
selection === true ? end : start, 'backward'
|
|
21639
|
-
);
|
|
21656
|
+
cursor >= 0 && inp.setSelectionRange(cursor, cursor, 'backward');
|
|
21640
21657
|
},
|
|
21641
21658
|
|
|
21642
|
-
rightReverse (inp,
|
|
21659
|
+
rightReverse (inp, cursor) {
|
|
21643
21660
|
const
|
|
21644
21661
|
limit = inp.value.length,
|
|
21645
21662
|
localMaskMarked = getPaddedMaskMarked(limit),
|
|
21646
|
-
noMarkBefore = localMaskMarked.slice(0,
|
|
21647
|
-
let i = Math.min(limit,
|
|
21663
|
+
noMarkBefore = localMaskMarked.slice(0, cursor + 1).indexOf(MARKER) === -1;
|
|
21664
|
+
let i = Math.min(limit, cursor + 1);
|
|
21648
21665
|
|
|
21649
21666
|
for (; i <= limit; i++) {
|
|
21650
21667
|
if (localMaskMarked[ i - 1 ] === MARKER) {
|
|
21651
|
-
|
|
21652
|
-
|
|
21668
|
+
cursor = i;
|
|
21669
|
+
cursor > 0 && noMarkBefore === true && cursor--;
|
|
21653
21670
|
break
|
|
21654
21671
|
}
|
|
21655
21672
|
}
|
|
21656
21673
|
|
|
21657
21674
|
if (
|
|
21658
21675
|
i > limit
|
|
21659
|
-
&& localMaskMarked[
|
|
21660
|
-
&& localMaskMarked[
|
|
21676
|
+
&& localMaskMarked[ cursor - 1 ] !== void 0
|
|
21677
|
+
&& localMaskMarked[ cursor - 1 ] !== MARKER
|
|
21661
21678
|
) {
|
|
21662
|
-
return moveCursor.leftReverse(inp, limit
|
|
21679
|
+
return moveCursor.leftReverse(inp, limit)
|
|
21663
21680
|
}
|
|
21664
21681
|
|
|
21665
|
-
inp.setSelectionRange(
|
|
21682
|
+
inp.setSelectionRange(cursor, cursor, 'forward');
|
|
21666
21683
|
}
|
|
21667
21684
|
};
|
|
21668
21685
|
|
|
21686
|
+
function onMaskedClick (e) {
|
|
21687
|
+
emit('click', e);
|
|
21688
|
+
|
|
21689
|
+
selectionAnchor = void 0;
|
|
21690
|
+
}
|
|
21691
|
+
|
|
21669
21692
|
function onMaskedKeydown (e) {
|
|
21670
21693
|
emit('keydown', e);
|
|
21671
21694
|
|
|
@@ -21678,25 +21701,40 @@ function useMask (props, emit, emitValue, inputRef) {
|
|
|
21678
21701
|
start = inp.selectionStart,
|
|
21679
21702
|
end = inp.selectionEnd;
|
|
21680
21703
|
|
|
21704
|
+
if (!e.shiftKey) {
|
|
21705
|
+
selectionAnchor = void 0;
|
|
21706
|
+
}
|
|
21707
|
+
|
|
21681
21708
|
if (e.keyCode === 37 || e.keyCode === 39) { // Left / Right
|
|
21709
|
+
if (e.shiftKey && selectionAnchor === void 0) {
|
|
21710
|
+
selectionAnchor = inp.selectionDirection === 'forward' ? start : end;
|
|
21711
|
+
}
|
|
21712
|
+
|
|
21682
21713
|
const fn = moveCursor[ (e.keyCode === 39 ? 'right' : 'left') + (props.reverseFillMask === true ? 'Reverse' : '') ];
|
|
21683
21714
|
|
|
21684
21715
|
e.preventDefault();
|
|
21685
|
-
fn(inp, start
|
|
21716
|
+
fn(inp, selectionAnchor === start ? end : start);
|
|
21717
|
+
|
|
21718
|
+
if (e.shiftKey) {
|
|
21719
|
+
const cursor = inp.selectionStart;
|
|
21720
|
+
inp.setSelectionRange(Math.min(selectionAnchor, cursor), Math.max(selectionAnchor, cursor), 'forward');
|
|
21721
|
+
}
|
|
21686
21722
|
}
|
|
21687
21723
|
else if (
|
|
21688
21724
|
e.keyCode === 8 // Backspace
|
|
21689
21725
|
&& props.reverseFillMask !== true
|
|
21690
21726
|
&& start === end
|
|
21691
21727
|
) {
|
|
21692
|
-
moveCursor.left(inp, start
|
|
21728
|
+
moveCursor.left(inp, start);
|
|
21729
|
+
inp.setSelectionRange(inp.selectionStart, end, 'backward');
|
|
21693
21730
|
}
|
|
21694
21731
|
else if (
|
|
21695
21732
|
e.keyCode === 46 // Delete
|
|
21696
21733
|
&& props.reverseFillMask === true
|
|
21697
21734
|
&& start === end
|
|
21698
21735
|
) {
|
|
21699
|
-
moveCursor.rightReverse(inp,
|
|
21736
|
+
moveCursor.rightReverse(inp, end);
|
|
21737
|
+
inp.setSelectionRange(start, inp.selectionEnd, 'forward');
|
|
21700
21738
|
}
|
|
21701
21739
|
}
|
|
21702
21740
|
|
|
@@ -21787,7 +21825,8 @@ function useMask (props, emit, emitValue, inputRef) {
|
|
|
21787
21825
|
hasMask,
|
|
21788
21826
|
moveCursorForPaste,
|
|
21789
21827
|
updateMaskValue,
|
|
21790
|
-
onMaskedKeydown
|
|
21828
|
+
onMaskedKeydown,
|
|
21829
|
+
onMaskedClick
|
|
21791
21830
|
}
|
|
21792
21831
|
}
|
|
21793
21832
|
|
|
@@ -21849,7 +21888,7 @@ var QInput = createComponent({
|
|
|
21849
21888
|
emits: [
|
|
21850
21889
|
...useFieldEmits,
|
|
21851
21890
|
'paste', 'change',
|
|
21852
|
-
'keydown', 'animationend'
|
|
21891
|
+
'keydown', 'click', 'animationend'
|
|
21853
21892
|
],
|
|
21854
21893
|
|
|
21855
21894
|
setup (props, { emit, attrs }) {
|
|
@@ -21867,7 +21906,8 @@ var QInput = createComponent({
|
|
|
21867
21906
|
hasMask,
|
|
21868
21907
|
moveCursorForPaste,
|
|
21869
21908
|
updateMaskValue,
|
|
21870
|
-
onMaskedKeydown
|
|
21909
|
+
onMaskedKeydown,
|
|
21910
|
+
onMaskedClick
|
|
21871
21911
|
} = useMask(props, emit, emitValue, inputRef);
|
|
21872
21912
|
|
|
21873
21913
|
const formDomProps = useFileFormDomProps(props, /* type guard */ true);
|
|
@@ -21904,6 +21944,8 @@ var QInput = createComponent({
|
|
|
21904
21944
|
|
|
21905
21945
|
if (hasMask.value === true) {
|
|
21906
21946
|
evt.onKeydown = onMaskedKeydown;
|
|
21947
|
+
// reset selection anchor on pointer selection
|
|
21948
|
+
evt.onClick = onMaskedClick;
|
|
21907
21949
|
}
|
|
21908
21950
|
|
|
21909
21951
|
if (props.autogrow === true) {
|
|
@@ -22113,18 +22155,29 @@ var QInput = createComponent({
|
|
|
22113
22155
|
const inp = inputRef.value;
|
|
22114
22156
|
if (inp !== null) {
|
|
22115
22157
|
const parentStyle = inp.parentNode.style;
|
|
22116
|
-
|
|
22158
|
+
// chrome does not keep scroll #15498
|
|
22159
|
+
const { scrollTop } = inp;
|
|
22160
|
+
// chrome calculates a smaller scrollHeight when in a .column container
|
|
22161
|
+
const { overflowY, maxHeight } = $q.platform.is.firefox === true
|
|
22162
|
+
? {}
|
|
22163
|
+
: window.getComputedStyle(inp);
|
|
22164
|
+
// on firefox or if overflowY is specified as scroll #14263, #14344
|
|
22165
|
+
// we don't touch overflow
|
|
22166
|
+
// firefox is not so bad in the end
|
|
22167
|
+
const changeOverflow = overflowY !== void 0 && overflowY !== 'scroll';
|
|
22117
22168
|
|
|
22118
22169
|
// reset height of textarea to a small size to detect the real height
|
|
22119
22170
|
// but keep the total control size the same
|
|
22120
|
-
|
|
22121
|
-
$q.platform.is.firefox !== true && (inp.style.overflow = 'hidden');
|
|
22171
|
+
changeOverflow === true && (inp.style.overflowY = 'hidden');
|
|
22122
22172
|
parentStyle.marginBottom = (inp.scrollHeight - 1) + 'px';
|
|
22123
22173
|
inp.style.height = '1px';
|
|
22124
22174
|
|
|
22125
22175
|
inp.style.height = inp.scrollHeight + 'px';
|
|
22126
|
-
|
|
22176
|
+
// we should allow scrollbars only
|
|
22177
|
+
// if there is maxHeight and content is taller than maxHeight
|
|
22178
|
+
changeOverflow === true && (inp.style.overflowY = parseInt(maxHeight, 10) < inp.scrollHeight ? 'auto' : 'hidden');
|
|
22127
22179
|
parentStyle.marginBottom = '';
|
|
22180
|
+
inp.scrollTop = scrollTop;
|
|
22128
22181
|
}
|
|
22129
22182
|
});
|
|
22130
22183
|
}
|
|
@@ -22201,7 +22254,10 @@ var QInput = createComponent({
|
|
|
22201
22254
|
hasValue,
|
|
22202
22255
|
|
|
22203
22256
|
floatingLabel: computed(() =>
|
|
22204
|
-
|
|
22257
|
+
(
|
|
22258
|
+
hasValue.value === true
|
|
22259
|
+
&& (props.type !== 'number' || isNaN(innerValue.value) === false)
|
|
22260
|
+
)
|
|
22205
22261
|
|| fieldValueIsFilled(props.displayValue)
|
|
22206
22262
|
),
|
|
22207
22263
|
|
|
@@ -28584,7 +28640,8 @@ var QSelect = createComponent({
|
|
|
28584
28640
|
|
|
28585
28641
|
return h('div', {
|
|
28586
28642
|
class: 'q-field__native row items-center',
|
|
28587
|
-
...attrs
|
|
28643
|
+
...attrs,
|
|
28644
|
+
...state.splitAttrs.listeners.value
|
|
28588
28645
|
}, child)
|
|
28589
28646
|
},
|
|
28590
28647
|
|
|
@@ -32872,7 +32929,7 @@ var QTable = createComponent({
|
|
|
32872
32929
|
|
|
32873
32930
|
if (topLeft !== void 0) {
|
|
32874
32931
|
child.push(
|
|
32875
|
-
h('div', { class: 'q-
|
|
32932
|
+
h('div', { class: 'q-table__control' }, [
|
|
32876
32933
|
topLeft(marginalsScope.value)
|
|
32877
32934
|
])
|
|
32878
32935
|
);
|
|
@@ -40594,7 +40651,7 @@ function runSequentialPromises (
|
|
|
40594
40651
|
*/
|
|
40595
40652
|
|
|
40596
40653
|
const Quasar = {
|
|
40597
|
-
version: '2.11.
|
|
40654
|
+
version: '2.11.9',
|
|
40598
40655
|
install: installQuasar,
|
|
40599
40656
|
lang: Plugin$8,
|
|
40600
40657
|
iconSet: Plugin$7
|