quasar 2.4.2 → 2.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/BottomSheet.json +1 -1
- package/dist/api/Notify.json +5 -5
- package/dist/api/QAvatar.json +1 -1
- package/dist/api/QBreadcrumbsEl.json +1 -1
- package/dist/api/QBtn.json +2 -2
- package/dist/api/QBtnDropdown.json +3 -3
- package/dist/api/QBtnToggle.json +1 -1
- package/dist/api/QCarousel.json +4 -4
- package/dist/api/QChip.json +4 -4
- package/dist/api/QExpansionItem.json +3 -3
- package/dist/api/QFab.json +2 -2
- package/dist/api/QFabAction.json +1 -1
- package/dist/api/QLinearProgress.json +1 -1
- package/dist/api/QPagination.json +4 -4
- package/dist/api/QPullToRefresh.json +1 -1
- package/dist/api/QRating.json +3 -3
- package/dist/api/QRouteTab.json +1 -1
- package/dist/api/QSelect.json +1 -1
- package/dist/api/QStep.json +4 -4
- package/dist/api/QStepper.json +4 -4
- package/dist/api/QTab.json +1 -1
- package/dist/api/QTable.json +4 -4
- package/dist/api/QTimelineEntry.json +1 -1
- package/dist/api/QToggle.json +1 -1
- package/dist/api/QTree.json +1 -1
- package/dist/api/QVideo.json +11 -1
- 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/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/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/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-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-mdi-v4.umd.prod.js +1 -1
- package/dist/icon-set/svg-mdi-v5.umd.prod.js +1 -1
- package/dist/icon-set/svg-mdi-v6.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.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/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 +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/ms.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/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/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 +5 -5
- package/dist/quasar.esm.prod.js +2 -2
- package/dist/quasar.prod.css +1 -1
- package/dist/quasar.rtl.css +5 -5
- package/dist/quasar.rtl.prod.css +1 -1
- package/dist/quasar.sass +5 -6
- package/dist/quasar.umd.js +268 -206
- package/dist/quasar.umd.prod.js +2 -2
- package/dist/ssr-directives/Morph.js +1 -1
- package/dist/types/index.d.ts +5 -1
- package/dist/types/utils/date.d.ts +2 -1
- package/dist/vetur/quasar-attributes.json +4 -0
- package/dist/vetur/quasar-tags.json +2 -1
- package/dist/web-types/web-types.json +59 -50
- package/package.json +1 -1
- package/src/api.extends.json +1 -1
- package/src/components/dialog/QDialog.js +7 -5
- package/src/components/linear-progress/QLinearProgress.json +1 -1
- package/src/components/menu/QMenu.js +6 -2
- package/src/components/range/QRange.js +67 -89
- package/src/components/rating/QRating.json +3 -3
- package/src/components/resize-observer/QResizeObserver.js +11 -10
- package/src/components/scroll-area/QScrollArea.js +5 -1
- package/src/components/scroll-observer/QScrollObserver.js +2 -0
- package/src/components/slider/QSlider.js +20 -10
- package/src/components/slider/QSlider.sass +5 -6
- package/src/components/slider/use-slider.js +19 -16
- package/src/components/tabs/QTabs.js +27 -11
- package/src/components/tooltip/QTooltip.js +1 -2
- package/src/components/video/QVideo.js +4 -1
- package/src/components/video/QVideo.json +12 -1
- package/src/composables/private/use-field.js +13 -15
- package/src/composables/private/use-model-toggle.js +1 -1
- package/src/composables/private/use-portal.js +9 -7
- package/src/composables/private/use-tick.js +7 -14
- package/src/utils/clone.js +53 -4
- package/src/utils/private/focus-manager.js +8 -10
package/dist/quasar.umd.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Quasar Framework v2.4.
|
|
2
|
+
* Quasar Framework v2.4.3
|
|
3
3
|
* (c) 2015-present Razvan Stoenescu
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -1447,7 +1447,7 @@
|
|
|
1447
1447
|
}
|
|
1448
1448
|
|
|
1449
1449
|
var installQuasar = function (parentApp, opts = {}) {
|
|
1450
|
-
const $q = { version: '2.4.
|
|
1450
|
+
const $q = { version: '2.4.3' };
|
|
1451
1451
|
|
|
1452
1452
|
if (globalConfigIsFrozen === false) {
|
|
1453
1453
|
if (opts.config !== void 0) {
|
|
@@ -3896,7 +3896,7 @@
|
|
|
3896
3896
|
'before-show', 'show', 'before-hide', 'hide'
|
|
3897
3897
|
];
|
|
3898
3898
|
|
|
3899
|
-
// handleShow/handleHide -> removeTick(), self (& emit show)
|
|
3899
|
+
// handleShow/handleHide -> removeTick(), self (& emit show)
|
|
3900
3900
|
|
|
3901
3901
|
function useModelToggle ({
|
|
3902
3902
|
showing,
|
|
@@ -4036,17 +4036,19 @@
|
|
|
4036
4036
|
}
|
|
4037
4037
|
|
|
4038
4038
|
let queue = [];
|
|
4039
|
-
|
|
4039
|
+
let waitFlags = [];
|
|
4040
|
+
|
|
4041
|
+
function clearFlag (flag) {
|
|
4042
|
+
waitFlags = waitFlags.filter(entry => entry !== flag);
|
|
4043
|
+
}
|
|
4040
4044
|
|
|
4041
4045
|
function addFocusWaitFlag (flag) {
|
|
4046
|
+
clearFlag(flag);
|
|
4042
4047
|
waitFlags.push(flag);
|
|
4043
4048
|
}
|
|
4044
4049
|
|
|
4045
4050
|
function removeFocusWaitFlag (flag) {
|
|
4046
|
-
|
|
4047
|
-
if (index !== -1) {
|
|
4048
|
-
waitFlags.splice(index, 1);
|
|
4049
|
-
}
|
|
4051
|
+
clearFlag(flag);
|
|
4050
4052
|
|
|
4051
4053
|
if (waitFlags.length === 0 && queue.length > 0) {
|
|
4052
4054
|
// only call last focus handler (can't focus multiple things at once)
|
|
@@ -4061,15 +4063,11 @@
|
|
|
4061
4063
|
}
|
|
4062
4064
|
else {
|
|
4063
4065
|
queue.push(fn);
|
|
4064
|
-
return fn
|
|
4065
4066
|
}
|
|
4066
4067
|
}
|
|
4067
4068
|
|
|
4068
4069
|
function removeFocusFn (fn) {
|
|
4069
|
-
|
|
4070
|
-
if (index !== -1) {
|
|
4071
|
-
queue.splice(index, 1);
|
|
4072
|
-
}
|
|
4070
|
+
queue = queue.filter(entry => entry !== fn);
|
|
4073
4071
|
}
|
|
4074
4072
|
|
|
4075
4073
|
const globalNodes = [];
|
|
@@ -4200,16 +4198,18 @@
|
|
|
4200
4198
|
return
|
|
4201
4199
|
}
|
|
4202
4200
|
|
|
4203
|
-
if (
|
|
4204
|
-
portalEl
|
|
4205
|
-
|
|
4201
|
+
if (portalIsActive.value === false) {
|
|
4202
|
+
if (onGlobalDialog === false && portalEl === null) {
|
|
4203
|
+
portalEl = createGlobalNode();
|
|
4204
|
+
}
|
|
4206
4205
|
|
|
4207
|
-
|
|
4206
|
+
portalIsActive.value = true;
|
|
4208
4207
|
|
|
4209
|
-
|
|
4210
|
-
|
|
4208
|
+
// register portal
|
|
4209
|
+
portalList.push(vm.proxy);
|
|
4211
4210
|
|
|
4212
|
-
|
|
4211
|
+
addFocusWaitFlag(focusObj);
|
|
4212
|
+
}
|
|
4213
4213
|
}
|
|
4214
4214
|
|
|
4215
4215
|
function hidePortal () {
|
|
@@ -4289,8 +4289,6 @@
|
|
|
4289
4289
|
* Usage:
|
|
4290
4290
|
* registerTick(fn)
|
|
4291
4291
|
* registerTick(fn)
|
|
4292
|
-
* ....
|
|
4293
|
-
* prepareTick()
|
|
4294
4292
|
*/
|
|
4295
4293
|
|
|
4296
4294
|
function useTick () {
|
|
@@ -4303,22 +4301,17 @@
|
|
|
4303
4301
|
return {
|
|
4304
4302
|
registerTick (fn) {
|
|
4305
4303
|
tickFn = fn;
|
|
4304
|
+
|
|
4305
|
+
vue.nextTick(() => {
|
|
4306
|
+
if (tickFn === fn) {
|
|
4307
|
+
tickFn();
|
|
4308
|
+
tickFn = void 0;
|
|
4309
|
+
}
|
|
4310
|
+
});
|
|
4306
4311
|
},
|
|
4307
4312
|
|
|
4308
4313
|
removeTick () {
|
|
4309
4314
|
tickFn = void 0;
|
|
4310
|
-
},
|
|
4311
|
-
|
|
4312
|
-
prepareTick () {
|
|
4313
|
-
if (tickFn !== void 0) {
|
|
4314
|
-
const fn = tickFn;
|
|
4315
|
-
vue.nextTick(() => {
|
|
4316
|
-
if (tickFn === fn) {
|
|
4317
|
-
tickFn();
|
|
4318
|
-
tickFn = void 0;
|
|
4319
|
-
}
|
|
4320
|
-
});
|
|
4321
|
-
}
|
|
4322
4315
|
}
|
|
4323
4316
|
}
|
|
4324
4317
|
}
|
|
@@ -5013,7 +5006,7 @@
|
|
|
5013
5006
|
);
|
|
5014
5007
|
|
|
5015
5008
|
const isDark = useDark(props, $q);
|
|
5016
|
-
const { registerTick, removeTick
|
|
5009
|
+
const { registerTick, removeTick } = useTick();
|
|
5017
5010
|
const { registerTimeout, removeTimeout } = useTimeout();
|
|
5018
5011
|
const { transition, transitionStyle } = useTransition(props, showing);
|
|
5019
5012
|
const { localScrollTarget, changeScrollEvent, unconfigureScrollTarget } = useScrollTarget(props, configureScrollTarget);
|
|
@@ -5140,7 +5133,6 @@
|
|
|
5140
5133
|
updatePosition();
|
|
5141
5134
|
props.noFocus !== true && focus();
|
|
5142
5135
|
});
|
|
5143
|
-
prepareTick();
|
|
5144
5136
|
|
|
5145
5137
|
registerTimeout(() => {
|
|
5146
5138
|
// required in order to avoid the "double-tap needed" issue
|
|
@@ -5173,6 +5165,7 @@
|
|
|
5173
5165
|
)
|
|
5174
5166
|
) {
|
|
5175
5167
|
refocusTarget.focus();
|
|
5168
|
+
refocusTarget = null;
|
|
5176
5169
|
}
|
|
5177
5170
|
|
|
5178
5171
|
registerTimeout(() => {
|
|
@@ -5195,6 +5188,10 @@
|
|
|
5195
5188
|
removeClickOutside(clickOutsideProps);
|
|
5196
5189
|
removeEscapeKey(onEscapeKey);
|
|
5197
5190
|
}
|
|
5191
|
+
|
|
5192
|
+
if (hiding !== true) {
|
|
5193
|
+
refocusTarget = null;
|
|
5194
|
+
}
|
|
5198
5195
|
}
|
|
5199
5196
|
|
|
5200
5197
|
function configureScrollTarget () {
|
|
@@ -8278,7 +8275,7 @@
|
|
|
8278
8275
|
const positionProp = vue.computed(() => (
|
|
8279
8276
|
props.vertical === true
|
|
8280
8277
|
? (isReversed.value === true ? 'bottom' : 'top')
|
|
8281
|
-
: isReversed.value === true ? 'right' : 'left'
|
|
8278
|
+
: (isReversed.value === true ? 'right' : 'left')
|
|
8282
8279
|
));
|
|
8283
8280
|
|
|
8284
8281
|
const sizeProp = vue.computed(() => (props.vertical === true ? 'height' : 'width'));
|
|
@@ -8288,8 +8285,8 @@
|
|
|
8288
8285
|
const attributes = vue.computed(() => {
|
|
8289
8286
|
const acc = {
|
|
8290
8287
|
role: 'slider',
|
|
8291
|
-
'aria-valuemin':
|
|
8292
|
-
'aria-valuemax':
|
|
8288
|
+
'aria-valuemin': innerMin.value,
|
|
8289
|
+
'aria-valuemax': innerMax.value,
|
|
8293
8290
|
'aria-orientation': orientation.value,
|
|
8294
8291
|
'data-step': props.step
|
|
8295
8292
|
};
|
|
@@ -8480,15 +8477,19 @@
|
|
|
8480
8477
|
})
|
|
8481
8478
|
}
|
|
8482
8479
|
|
|
8480
|
+
const filterFn = ({ value }) => value >= props.min && value <= props.max;
|
|
8481
|
+
|
|
8483
8482
|
if (Array.isArray(def) === true) {
|
|
8484
|
-
return def
|
|
8483
|
+
return def
|
|
8484
|
+
.map(item => (Object(item) === item ? item : { value: item }))
|
|
8485
|
+
.filter(filterFn)
|
|
8485
8486
|
}
|
|
8486
8487
|
|
|
8487
8488
|
return Object.keys(def).map(key => {
|
|
8488
8489
|
const item = def[ key ];
|
|
8489
8490
|
const value = Number(key);
|
|
8490
8491
|
return Object(item) === item ? { ...item, value } : { value, label: item }
|
|
8491
|
-
})
|
|
8492
|
+
}).filter(filterFn)
|
|
8492
8493
|
}
|
|
8493
8494
|
|
|
8494
8495
|
function getMarkerLabelStyle (val) {
|
|
@@ -8543,6 +8544,7 @@
|
|
|
8543
8544
|
emit('pan', 'end');
|
|
8544
8545
|
}
|
|
8545
8546
|
active.value = false;
|
|
8547
|
+
focus.value = false;
|
|
8546
8548
|
}
|
|
8547
8549
|
else if (event.isFirst === true) {
|
|
8548
8550
|
dragging.value = getDragging(event.evt);
|
|
@@ -8603,7 +8605,7 @@
|
|
|
8603
8605
|
|
|
8604
8606
|
function getThumbRenderFn (thumb) {
|
|
8605
8607
|
const focusClass = vue.computed(() => (
|
|
8606
|
-
preventFocus.value === false && focus.value === thumb.focusValue
|
|
8608
|
+
preventFocus.value === false && (focus.value === thumb.focusValue || focus.value === 'both')
|
|
8607
8609
|
? ' q-slider--focus'
|
|
8608
8610
|
: ''
|
|
8609
8611
|
));
|
|
@@ -8618,9 +8620,7 @@
|
|
|
8618
8620
|
width: props.thumbSize,
|
|
8619
8621
|
height: props.thumbSize,
|
|
8620
8622
|
[ positionProp.value ]: `${ 100 * thumb.ratio.value }%`,
|
|
8621
|
-
|
|
8622
|
-
? thumb.nextFocus.value === 'min' ? 2 : void 0
|
|
8623
|
-
: void 0
|
|
8623
|
+
zIndex: focus.value === thumb.focusValue ? 2 : void 0
|
|
8624
8624
|
}));
|
|
8625
8625
|
|
|
8626
8626
|
const pinColor = vue.computed(() => (
|
|
@@ -8676,12 +8676,12 @@
|
|
|
8676
8676
|
return vue.h('div', {
|
|
8677
8677
|
class: classes.value,
|
|
8678
8678
|
style: style.value,
|
|
8679
|
-
...
|
|
8679
|
+
...thumb.getNodeData()
|
|
8680
8680
|
}, thumbContent)
|
|
8681
8681
|
}
|
|
8682
8682
|
}
|
|
8683
8683
|
|
|
8684
|
-
function getContent (selectionBarStyle,
|
|
8684
|
+
function getContent (selectionBarStyle, trackContainerTabindex, trackContainerEvents, injectThumb) {
|
|
8685
8685
|
const trackContent = [];
|
|
8686
8686
|
|
|
8687
8687
|
props.innerTrackColor !== 'transparent' && trackContent.push(
|
|
@@ -8716,15 +8716,14 @@
|
|
|
8716
8716
|
{
|
|
8717
8717
|
key: 'trackC',
|
|
8718
8718
|
class: trackContainerClass.value,
|
|
8719
|
-
tabindex:
|
|
8720
|
-
...
|
|
8719
|
+
tabindex: trackContainerTabindex.value,
|
|
8720
|
+
...trackContainerEvents.value
|
|
8721
8721
|
},
|
|
8722
8722
|
[
|
|
8723
8723
|
vue.h('div', {
|
|
8724
8724
|
class: trackClass.value,
|
|
8725
8725
|
style: trackStyle.value
|
|
8726
|
-
},
|
|
8727
|
-
trackContent)
|
|
8726
|
+
}, trackContent)
|
|
8728
8727
|
],
|
|
8729
8728
|
'slide',
|
|
8730
8729
|
editable.value, () => panDirective.value
|
|
@@ -8771,7 +8770,8 @@
|
|
|
8771
8770
|
innerMax,
|
|
8772
8771
|
innerMaxRatio,
|
|
8773
8772
|
positionProp,
|
|
8774
|
-
sizeProp
|
|
8773
|
+
sizeProp,
|
|
8774
|
+
isReversed
|
|
8775
8775
|
},
|
|
8776
8776
|
|
|
8777
8777
|
methods: {
|
|
@@ -8788,6 +8788,8 @@
|
|
|
8788
8788
|
}
|
|
8789
8789
|
}
|
|
8790
8790
|
|
|
8791
|
+
const getNodeData = () => ({});
|
|
8792
|
+
|
|
8791
8793
|
var QSlider = createComponent({
|
|
8792
8794
|
name: 'QSlider',
|
|
8793
8795
|
|
|
@@ -8815,8 +8817,20 @@
|
|
|
8815
8817
|
|
|
8816
8818
|
const rootRef = vue.ref(null);
|
|
8817
8819
|
const curRatio = vue.ref(0);
|
|
8820
|
+
const model = vue.ref(0);
|
|
8818
8821
|
|
|
8819
|
-
|
|
8822
|
+
function normalizeModel () {
|
|
8823
|
+
model.value = props.modelValue === null
|
|
8824
|
+
? state.innerMin.value
|
|
8825
|
+
: between(props.modelValue, state.innerMin.value, state.innerMax.value);
|
|
8826
|
+
}
|
|
8827
|
+
|
|
8828
|
+
vue.watch(
|
|
8829
|
+
() => `${ props.modelValue }|${ state.innerMin.value }|${ state.innerMax.value }`,
|
|
8830
|
+
normalizeModel
|
|
8831
|
+
);
|
|
8832
|
+
|
|
8833
|
+
normalizeModel();
|
|
8820
8834
|
|
|
8821
8835
|
const modelRatio = vue.computed(() => methods.convertModelToRatio(model.value));
|
|
8822
8836
|
const ratio = vue.computed(() => (state.active.value === true ? curRatio.value : modelRatio.value));
|
|
@@ -8834,6 +8848,7 @@
|
|
|
8834
8848
|
|
|
8835
8849
|
const getThumb = methods.getThumbRenderFn({
|
|
8836
8850
|
focusValue: true,
|
|
8851
|
+
getNodeData,
|
|
8837
8852
|
ratio,
|
|
8838
8853
|
label: vue.computed(() => (
|
|
8839
8854
|
props.labelValue !== void 0
|
|
@@ -8845,7 +8860,7 @@
|
|
|
8845
8860
|
labelTextColor: vue.computed(() => props.labelTextColor)
|
|
8846
8861
|
});
|
|
8847
8862
|
|
|
8848
|
-
const
|
|
8863
|
+
const trackContainerEvents = vue.computed(() => {
|
|
8849
8864
|
if (state.editable.value !== true) {
|
|
8850
8865
|
return {}
|
|
8851
8866
|
}
|
|
@@ -8861,12 +8876,6 @@
|
|
|
8861
8876
|
}
|
|
8862
8877
|
});
|
|
8863
8878
|
|
|
8864
|
-
vue.watch(() => props.modelValue + state.innerMin.value + state.innerMax.value, () => {
|
|
8865
|
-
model.value = props.modelValue === null
|
|
8866
|
-
? state.innerMin.value
|
|
8867
|
-
: between(props.modelValue, state.innerMin.value, state.innerMax.value);
|
|
8868
|
-
});
|
|
8869
|
-
|
|
8870
8879
|
function updateValue (change) {
|
|
8871
8880
|
if (model.value !== props.modelValue) {
|
|
8872
8881
|
emit('update:modelValue', model.value);
|
|
@@ -8901,7 +8910,7 @@
|
|
|
8901
8910
|
|
|
8902
8911
|
const
|
|
8903
8912
|
stepVal = ([ 34, 33 ].includes(evt.keyCode) ? 10 : 1) * state.step.value,
|
|
8904
|
-
offset = [ 34, 37, 40 ].includes(evt.keyCode) ? -
|
|
8913
|
+
offset = ([ 34, 37, 40 ].includes(evt.keyCode) ? -1 : 1) * (state.isReversed.value === true ? -1 : 1) * stepVal;
|
|
8905
8914
|
|
|
8906
8915
|
model.value = between(
|
|
8907
8916
|
parseFloat((model.value + offset).toFixed(state.decimals.value)),
|
|
@@ -8915,7 +8924,8 @@
|
|
|
8915
8924
|
return () => {
|
|
8916
8925
|
const content = methods.getContent(
|
|
8917
8926
|
selectionBarStyle,
|
|
8918
|
-
|
|
8927
|
+
state.tabindex,
|
|
8928
|
+
trackContainerEvents,
|
|
8919
8929
|
node => { node.push(getThumb()); }
|
|
8920
8930
|
);
|
|
8921
8931
|
|
|
@@ -8963,19 +8973,20 @@
|
|
|
8963
8973
|
|
|
8964
8974
|
setup (props, { emit }) {
|
|
8965
8975
|
|
|
8966
|
-
let timer, targetEl, size = { width: -1, height: -1 };
|
|
8976
|
+
let timer = null, targetEl, size = { width: -1, height: -1 };
|
|
8967
8977
|
|
|
8968
|
-
function trigger (
|
|
8969
|
-
if (
|
|
8970
|
-
|
|
8978
|
+
function trigger (immediately) {
|
|
8979
|
+
if (immediately === true || props.debounce === 0 || props.debounce === '0') {
|
|
8980
|
+
emitEvent();
|
|
8971
8981
|
}
|
|
8972
|
-
else if (
|
|
8973
|
-
timer = setTimeout(
|
|
8982
|
+
else if (timer === null) {
|
|
8983
|
+
timer = setTimeout(emitEvent, props.debounce);
|
|
8974
8984
|
}
|
|
8975
8985
|
}
|
|
8976
8986
|
|
|
8977
|
-
function
|
|
8978
|
-
timer
|
|
8987
|
+
function emitEvent () {
|
|
8988
|
+
clearTimeout(timer);
|
|
8989
|
+
timer = null;
|
|
8979
8990
|
|
|
8980
8991
|
if (targetEl) {
|
|
8981
8992
|
const { offsetWidth: width, offsetHeight: height } = targetEl;
|
|
@@ -9002,7 +9013,7 @@
|
|
|
9002
9013
|
if (targetEl) {
|
|
9003
9014
|
observer = new ResizeObserver(trigger);
|
|
9004
9015
|
observer.observe(targetEl);
|
|
9005
|
-
|
|
9016
|
+
emitEvent();
|
|
9006
9017
|
}
|
|
9007
9018
|
});
|
|
9008
9019
|
});
|
|
@@ -9045,7 +9056,7 @@
|
|
|
9045
9056
|
if (targetEl && targetEl.contentDocument) {
|
|
9046
9057
|
curDocView = targetEl.contentDocument.defaultView;
|
|
9047
9058
|
curDocView.addEventListener('resize', trigger, listenOpts.passive);
|
|
9048
|
-
|
|
9059
|
+
emitEvent();
|
|
9049
9060
|
}
|
|
9050
9061
|
}
|
|
9051
9062
|
|
|
@@ -9156,7 +9167,8 @@
|
|
|
9156
9167
|
const vm = vue.getCurrentInstance();
|
|
9157
9168
|
const { proxy: { $q } } = vm;
|
|
9158
9169
|
|
|
9159
|
-
const { registerTick
|
|
9170
|
+
const { registerTick: registerScrollTick } = useTick();
|
|
9171
|
+
const { registerTimeout: registerFocusTimeout, removeTimeout: removeFocusTimeout } = useTimeout();
|
|
9160
9172
|
const { registerTimeout } = useTimeout();
|
|
9161
9173
|
|
|
9162
9174
|
const rootRef = vue.ref(null);
|
|
@@ -9264,7 +9276,7 @@
|
|
|
9264
9276
|
}
|
|
9265
9277
|
|
|
9266
9278
|
function recalculateScroll () {
|
|
9267
|
-
|
|
9279
|
+
registerScrollTick(() => {
|
|
9268
9280
|
if (vm.isDeactivated !== true && vm.isUnmounted !== true) {
|
|
9269
9281
|
updateContainer({
|
|
9270
9282
|
width: rootRef.value.offsetWidth,
|
|
@@ -9272,8 +9284,6 @@
|
|
|
9272
9284
|
});
|
|
9273
9285
|
}
|
|
9274
9286
|
});
|
|
9275
|
-
|
|
9276
|
-
prepareTick();
|
|
9277
9287
|
}
|
|
9278
9288
|
|
|
9279
9289
|
function updateContainer (domSize) {
|
|
@@ -9432,11 +9442,8 @@
|
|
|
9432
9442
|
return true
|
|
9433
9443
|
}
|
|
9434
9444
|
|
|
9435
|
-
const dirPrev = (props.vertical === true
|
|
9436
|
-
|
|
9437
|
-
|
|
9438
|
-
const dirNext = (props.vertical === true && keyCode === 40 /* ArrowDown */)
|
|
9439
|
-
|| (props.vertical !== true && keyCode === 39 /* ArrowRight */);
|
|
9445
|
+
const dirPrev = keyCode === (props.vertical === true ? 38 /* ArrowUp */ : 37 /* ArrowLeft */);
|
|
9446
|
+
const dirNext = keyCode === (props.vertical === true ? 40 /* ArrowDown */ : 39 /* ArrowRight */);
|
|
9440
9447
|
|
|
9441
9448
|
const dir = dirPrev === true ? -1 : (dirNext === true ? 1 : void 0);
|
|
9442
9449
|
|
|
@@ -9570,8 +9577,28 @@
|
|
|
9570
9577
|
}
|
|
9571
9578
|
}
|
|
9572
9579
|
|
|
9573
|
-
function onFocusin () {
|
|
9574
|
-
|
|
9580
|
+
function onFocusin (e) {
|
|
9581
|
+
removeFocusTimeout();
|
|
9582
|
+
|
|
9583
|
+
if (
|
|
9584
|
+
hasFocus.value !== true
|
|
9585
|
+
&& rootRef.value !== null
|
|
9586
|
+
&& e.target
|
|
9587
|
+
&& typeof e.target.closest === 'function'
|
|
9588
|
+
) {
|
|
9589
|
+
const tab = e.target.closest('.q-tab');
|
|
9590
|
+
|
|
9591
|
+
// if the target is contained by a QTab/QRouteTab
|
|
9592
|
+
// (it might be other elements focused, like additional QBtn)
|
|
9593
|
+
if (tab && rootRef.value.contains(tab) === true) {
|
|
9594
|
+
hasFocus.value = true;
|
|
9595
|
+
}
|
|
9596
|
+
}
|
|
9597
|
+
}
|
|
9598
|
+
|
|
9599
|
+
function onFocusout () {
|
|
9600
|
+
registerFocusTimeout(() => { hasFocus.value = false; }, 30);
|
|
9601
|
+
}
|
|
9575
9602
|
|
|
9576
9603
|
function verifyRouteModel () {
|
|
9577
9604
|
if ($tabs.avoidRouteWatcher !== true) {
|
|
@@ -12381,7 +12408,7 @@
|
|
|
12381
12408
|
)
|
|
12382
12409
|
}
|
|
12383
12410
|
|
|
12384
|
-
function clone
|
|
12411
|
+
function clone (date) {
|
|
12385
12412
|
return isDate(date) === true
|
|
12386
12413
|
? new Date(date.getTime())
|
|
12387
12414
|
: date
|
|
@@ -12408,7 +12435,7 @@
|
|
|
12408
12435
|
isSameDate,
|
|
12409
12436
|
daysInMonth,
|
|
12410
12437
|
formatDate,
|
|
12411
|
-
clone
|
|
12438
|
+
clone
|
|
12412
12439
|
};
|
|
12413
12440
|
|
|
12414
12441
|
const yearsInterval = 20;
|
|
@@ -14170,7 +14197,7 @@
|
|
|
14170
14197
|
|
|
14171
14198
|
const { preventBodyScroll } = usePreventScroll();
|
|
14172
14199
|
const { registerTimeout, removeTimeout } = useTimeout();
|
|
14173
|
-
const { registerTick, removeTick
|
|
14200
|
+
const { registerTick, removeTick } = useTick();
|
|
14174
14201
|
|
|
14175
14202
|
const { showPortal, hidePortal, portalIsActive, renderPortal } = usePortal(
|
|
14176
14203
|
vm, innerRef, renderPortalContent, /* pls do check if on a global dialog */ true
|
|
@@ -14269,7 +14296,6 @@
|
|
|
14269
14296
|
if (props.noFocus !== true) {
|
|
14270
14297
|
document.activeElement !== null && document.activeElement.blur();
|
|
14271
14298
|
registerTick(focus);
|
|
14272
|
-
prepareTick();
|
|
14273
14299
|
}
|
|
14274
14300
|
|
|
14275
14301
|
registerTimeout(() => {
|
|
@@ -14315,6 +14341,7 @@
|
|
|
14315
14341
|
|
|
14316
14342
|
if (refocusTarget !== null) {
|
|
14317
14343
|
refocusTarget.focus();
|
|
14344
|
+
refocusTarget = null;
|
|
14318
14345
|
}
|
|
14319
14346
|
|
|
14320
14347
|
registerTimeout(() => {
|
|
@@ -14382,6 +14409,10 @@
|
|
|
14382
14409
|
removeEscapeKey(onEscapeKey);
|
|
14383
14410
|
}
|
|
14384
14411
|
}
|
|
14412
|
+
|
|
14413
|
+
if (hiding !== true) {
|
|
14414
|
+
refocusTarget = null;
|
|
14415
|
+
}
|
|
14385
14416
|
}
|
|
14386
14417
|
|
|
14387
14418
|
function updateMaximized (active) {
|
|
@@ -14440,9 +14471,7 @@
|
|
|
14440
14471
|
}
|
|
14441
14472
|
});
|
|
14442
14473
|
|
|
14443
|
-
vue.onBeforeUnmount(
|
|
14444
|
-
cleanup();
|
|
14445
|
-
});
|
|
14474
|
+
vue.onBeforeUnmount(cleanup);
|
|
14446
14475
|
|
|
14447
14476
|
function renderPortalContent () {
|
|
14448
14477
|
return vue.h('div', {
|
|
@@ -15607,7 +15636,7 @@
|
|
|
15607
15636
|
const selfOrigin = vue.computed(() => parsePosition(props.self, $q.lang.rtl));
|
|
15608
15637
|
const hideOnRouteChange = vue.computed(() => props.persistent !== true);
|
|
15609
15638
|
|
|
15610
|
-
const { registerTick, removeTick
|
|
15639
|
+
const { registerTick, removeTick } = useTick();
|
|
15611
15640
|
const { registerTimeout, removeTimeout } = useTimeout();
|
|
15612
15641
|
const { transition, transitionStyle } = useTransition(props, showing);
|
|
15613
15642
|
const { localScrollTarget, changeScrollEvent, unconfigureScrollTarget } = useScrollTarget(props, configureScrollTarget);
|
|
@@ -15673,7 +15702,6 @@
|
|
|
15673
15702
|
updatePosition();
|
|
15674
15703
|
configureScrollTarget();
|
|
15675
15704
|
});
|
|
15676
|
-
prepareTick();
|
|
15677
15705
|
|
|
15678
15706
|
if (unwatchPosition === void 0) {
|
|
15679
15707
|
unwatchPosition = vue.watch(
|
|
@@ -17892,11 +17920,60 @@
|
|
|
17892
17920
|
}
|
|
17893
17921
|
}
|
|
17894
17922
|
|
|
17895
|
-
|
|
17896
|
-
|
|
17897
|
-
|
|
17898
|
-
|
|
17923
|
+
// adapted from https://stackoverflow.com/a/40294058
|
|
17924
|
+
|
|
17925
|
+
function cloneDeep (data, hash = new WeakMap()) {
|
|
17926
|
+
if (Object(data) !== data) return data
|
|
17927
|
+
if (hash.has(data)) return hash.get(data)
|
|
17928
|
+
|
|
17929
|
+
const result = data instanceof Date
|
|
17930
|
+
? new Date(data)
|
|
17931
|
+
: (data instanceof RegExp
|
|
17932
|
+
? new RegExp(data.source, data.flags)
|
|
17933
|
+
: (data instanceof Set
|
|
17934
|
+
? new Set()
|
|
17935
|
+
: (data instanceof Map
|
|
17936
|
+
? new Map()
|
|
17937
|
+
: (typeof data.constructor !== 'function'
|
|
17938
|
+
? Object.create(null)
|
|
17939
|
+
: (data.prototype !== void 0 && typeof data.prototype.constructor === 'function'
|
|
17940
|
+
? data
|
|
17941
|
+
: new data.constructor()
|
|
17942
|
+
)
|
|
17943
|
+
)
|
|
17944
|
+
)
|
|
17945
|
+
)
|
|
17946
|
+
);
|
|
17947
|
+
|
|
17948
|
+
if (typeof data.constructor === 'function' && typeof data.valueOf === 'function') {
|
|
17949
|
+
const val = data.valueOf();
|
|
17950
|
+
|
|
17951
|
+
if (Object(val) !== val) {
|
|
17952
|
+
const result = new data.constructor(val);
|
|
17953
|
+
|
|
17954
|
+
hash.set(data, result);
|
|
17955
|
+
|
|
17956
|
+
return result
|
|
17957
|
+
}
|
|
17958
|
+
}
|
|
17959
|
+
|
|
17960
|
+
hash.set(data, result);
|
|
17961
|
+
|
|
17962
|
+
if (data instanceof Set) {
|
|
17963
|
+
data.forEach(val => {
|
|
17964
|
+
result.add(cloneDeep(val, hash));
|
|
17965
|
+
});
|
|
17966
|
+
}
|
|
17967
|
+
else if (data instanceof Map) {
|
|
17968
|
+
data.forEach((val, key) => {
|
|
17969
|
+
result.set(key, cloneDeep(val, hash));
|
|
17970
|
+
});
|
|
17899
17971
|
}
|
|
17972
|
+
|
|
17973
|
+
return Object.assign(
|
|
17974
|
+
result,
|
|
17975
|
+
...Object.keys(data).map(key => ({ [ key ]: cloneDeep(data[ key ], hash) }))
|
|
17976
|
+
)
|
|
17900
17977
|
}
|
|
17901
17978
|
|
|
17902
17979
|
function fallback (text) {
|
|
@@ -20025,7 +20102,7 @@
|
|
|
20025
20102
|
|
|
20026
20103
|
var utils = /*#__PURE__*/Object.freeze({
|
|
20027
20104
|
__proto__: null,
|
|
20028
|
-
clone:
|
|
20105
|
+
clone: cloneDeep,
|
|
20029
20106
|
colors: colors,
|
|
20030
20107
|
copyToClipboard: copyToClipboard,
|
|
20031
20108
|
createMetaMixin: createMetaMixin,
|
|
@@ -20513,26 +20590,24 @@
|
|
|
20513
20590
|
state.targetUid.value = getTargetUid(val);
|
|
20514
20591
|
});
|
|
20515
20592
|
|
|
20516
|
-
|
|
20517
|
-
|
|
20518
|
-
|
|
20519
|
-
focusFn !== void 0 && removeFocusFn(focusFn);
|
|
20520
|
-
focusFn = addFocusFn(() => {
|
|
20521
|
-
focusFn = void 0;
|
|
20522
|
-
const el = document.activeElement;
|
|
20523
|
-
let target = state.targetRef !== void 0 && state.targetRef.value;
|
|
20593
|
+
function focusHandler () {
|
|
20594
|
+
const el = document.activeElement;
|
|
20595
|
+
let target = state.targetRef !== void 0 && state.targetRef.value;
|
|
20524
20596
|
|
|
20525
|
-
|
|
20526
|
-
|
|
20527
|
-
|
|
20528
|
-
|
|
20529
|
-
}
|
|
20597
|
+
if (target && (el === null || el.id !== state.targetUid.value)) {
|
|
20598
|
+
target.hasAttribute('tabindex') === true || (target = target.querySelector('[tabindex]'));
|
|
20599
|
+
if (target && target !== el) {
|
|
20600
|
+
target.focus();
|
|
20530
20601
|
}
|
|
20531
|
-
}
|
|
20602
|
+
}
|
|
20603
|
+
}
|
|
20604
|
+
|
|
20605
|
+
function focus () {
|
|
20606
|
+
addFocusFn(focusHandler);
|
|
20532
20607
|
}
|
|
20533
20608
|
|
|
20534
20609
|
function blur () {
|
|
20535
|
-
|
|
20610
|
+
removeFocusFn(focusHandler);
|
|
20536
20611
|
const el = document.activeElement;
|
|
20537
20612
|
if (el !== null && state.rootRef.value.contains(el)) {
|
|
20538
20613
|
el.blur();
|
|
@@ -23814,6 +23889,8 @@
|
|
|
23814
23889
|
});
|
|
23815
23890
|
|
|
23816
23891
|
function emitEvent () {
|
|
23892
|
+
clearTimeout(timer);
|
|
23893
|
+
cancelAnimationFrame(timer);
|
|
23817
23894
|
timer = null;
|
|
23818
23895
|
|
|
23819
23896
|
const top = Math.max(0, getVerticalScrollPosition(localScrollTarget));
|
|
@@ -25464,8 +25541,8 @@
|
|
|
25464
25541
|
|
|
25465
25542
|
function onBeforeShow () {
|
|
25466
25543
|
validated = false;
|
|
25467
|
-
initialValue.value =
|
|
25468
|
-
currentModel.value =
|
|
25544
|
+
initialValue.value = cloneDeep(props.modelValue);
|
|
25545
|
+
currentModel.value = cloneDeep(props.modelValue);
|
|
25469
25546
|
emit('before-show');
|
|
25470
25547
|
}
|
|
25471
25548
|
|
|
@@ -25971,13 +26048,8 @@
|
|
|
25971
26048
|
|
|
25972
26049
|
modelValue: {
|
|
25973
26050
|
type: Object,
|
|
25974
|
-
default: () => ({
|
|
25975
|
-
|
|
25976
|
-
max: null
|
|
25977
|
-
}),
|
|
25978
|
-
validator (val) {
|
|
25979
|
-
return 'min' in val && 'max' in val
|
|
25980
|
-
}
|
|
26051
|
+
default: () => ({ min: null, max: null }),
|
|
26052
|
+
validator: v => 'min' in v && 'max' in v
|
|
25981
26053
|
},
|
|
25982
26054
|
|
|
25983
26055
|
dragRange: Boolean,
|
|
@@ -26012,13 +26084,24 @@
|
|
|
26012
26084
|
const rootRef = vue.ref(null);
|
|
26013
26085
|
const curMinRatio = vue.ref(0);
|
|
26014
26086
|
const curMaxRatio = vue.ref(0);
|
|
26087
|
+
const model = vue.ref({ min: 0, max: 0 });
|
|
26015
26088
|
|
|
26016
|
-
|
|
26017
|
-
min
|
|
26018
|
-
|
|
26019
|
-
|
|
26089
|
+
function normalizeModel () {
|
|
26090
|
+
model.value.min = props.modelValue.min === null
|
|
26091
|
+
? state.innerMin.value
|
|
26092
|
+
: between(props.modelValue.min, state.innerMin.value, state.innerMax.value);
|
|
26020
26093
|
|
|
26021
|
-
|
|
26094
|
+
model.value.max = props.modelValue.max === null
|
|
26095
|
+
? state.innerMax.value
|
|
26096
|
+
: between(props.modelValue.max, state.innerMin.value, state.innerMax.value);
|
|
26097
|
+
}
|
|
26098
|
+
|
|
26099
|
+
vue.watch(
|
|
26100
|
+
() => `${ props.modelValue.min }|${ props.modelValue.max }|${ state.innerMin.value }|${ state.innerMax.value }`,
|
|
26101
|
+
normalizeModel
|
|
26102
|
+
);
|
|
26103
|
+
|
|
26104
|
+
normalizeModel();
|
|
26022
26105
|
|
|
26023
26106
|
const modelMinRatio = vue.computed(() => methods.convertModelToRatio(model.value.min));
|
|
26024
26107
|
const modelMaxRatio = vue.computed(() => methods.convertModelToRatio(model.value.max));
|
|
@@ -26041,7 +26124,7 @@
|
|
|
26041
26124
|
return acc
|
|
26042
26125
|
});
|
|
26043
26126
|
|
|
26044
|
-
const
|
|
26127
|
+
const trackContainerEvents = vue.computed(() => {
|
|
26045
26128
|
if (state.editable.value !== true) {
|
|
26046
26129
|
return {}
|
|
26047
26130
|
}
|
|
@@ -26052,34 +26135,45 @@
|
|
|
26052
26135
|
|
|
26053
26136
|
const evt = { onMousedown: methods.onActivate };
|
|
26054
26137
|
|
|
26055
|
-
props.
|
|
26056
|
-
|
|
26057
|
-
|
|
26058
|
-
|
|
26059
|
-
|
|
26060
|
-
|
|
26138
|
+
if (props.dragRange === true || props.dragOnlyRange === true) {
|
|
26139
|
+
Object.assign(evt, {
|
|
26140
|
+
onFocus: () => { state.focus.value = 'both'; },
|
|
26141
|
+
onBlur: methods.onBlur,
|
|
26142
|
+
onKeydown,
|
|
26143
|
+
onKeyup: methods.onKeyup
|
|
26144
|
+
});
|
|
26145
|
+
}
|
|
26061
26146
|
|
|
26062
26147
|
return evt
|
|
26063
26148
|
});
|
|
26064
26149
|
|
|
26065
|
-
|
|
26066
|
-
|
|
26067
|
-
state.editable.value === true && $q.platform.is.mobile !== true && props.dragOnlyRange !== true
|
|
26150
|
+
function getEvents (side) {
|
|
26151
|
+
return $q.platform.is.mobile !== true && state.editable.value === true && props.dragOnlyRange !== true
|
|
26068
26152
|
? {
|
|
26069
|
-
onFocus: () => {
|
|
26153
|
+
onFocus: () => { state.focus.value = side; },
|
|
26070
26154
|
onBlur: methods.onBlur,
|
|
26071
26155
|
onKeydown,
|
|
26072
26156
|
onKeyup: methods.onKeyup
|
|
26073
26157
|
}
|
|
26074
26158
|
: {}
|
|
26159
|
+
}
|
|
26160
|
+
|
|
26161
|
+
const thumbTabindex = vue.computed(() => (props.dragOnlyRange !== true ? state.tabindex.value : null));
|
|
26162
|
+
const trackContainerTabindex = vue.computed(() => (
|
|
26163
|
+
$q.platform.is.mobile !== true && (props.dragRange || props.dragOnlyRange === true)
|
|
26164
|
+
? state.tabindex.value
|
|
26165
|
+
: null
|
|
26075
26166
|
));
|
|
26167
|
+
|
|
26168
|
+
const minThumbRef = vue.ref(null);
|
|
26169
|
+
const minEvents = vue.computed(() => getEvents('min'));
|
|
26076
26170
|
const getMinThumb = methods.getThumbRenderFn({
|
|
26077
26171
|
focusValue: 'min',
|
|
26078
|
-
nextFocus,
|
|
26079
26172
|
getNodeData: () => ({
|
|
26080
26173
|
ref: minThumbRef,
|
|
26174
|
+
key: 'tmin',
|
|
26081
26175
|
...minEvents.value,
|
|
26082
|
-
tabindex:
|
|
26176
|
+
tabindex: thumbTabindex.value
|
|
26083
26177
|
}),
|
|
26084
26178
|
ratio: ratioMin,
|
|
26085
26179
|
label: vue.computed(() => (
|
|
@@ -26092,22 +26186,13 @@
|
|
|
26092
26186
|
labelTextColor: vue.computed(() => props.leftLabelTextColor || props.labelTextColor)
|
|
26093
26187
|
});
|
|
26094
26188
|
|
|
26095
|
-
const maxEvents = vue.computed(() => (
|
|
26096
|
-
state.editable.value === true && $q.platform.is.mobile !== true && props.dragOnlyRange !== true
|
|
26097
|
-
? {
|
|
26098
|
-
onFocus: () => { onFocus('max'); },
|
|
26099
|
-
onBlur: methods.onBlur,
|
|
26100
|
-
onKeydown,
|
|
26101
|
-
onKeyup: methods.onKeyup
|
|
26102
|
-
}
|
|
26103
|
-
: {}
|
|
26104
|
-
));
|
|
26189
|
+
const maxEvents = vue.computed(() => getEvents('max'));
|
|
26105
26190
|
const getMaxThumb = methods.getThumbRenderFn({
|
|
26106
26191
|
focusValue: 'max',
|
|
26107
|
-
nextFocus,
|
|
26108
26192
|
getNodeData: () => ({
|
|
26109
26193
|
...maxEvents.value,
|
|
26110
|
-
|
|
26194
|
+
key: 'tmax',
|
|
26195
|
+
tabindex: thumbTabindex.value
|
|
26111
26196
|
}),
|
|
26112
26197
|
ratio: ratioMax,
|
|
26113
26198
|
label: vue.computed(() => (
|
|
@@ -26120,19 +26205,6 @@
|
|
|
26120
26205
|
labelTextColor: vue.computed(() => props.rightLabelTextColor || props.labelTextColor)
|
|
26121
26206
|
});
|
|
26122
26207
|
|
|
26123
|
-
vue.watch(
|
|
26124
|
-
() => props.modelValue.min + props.modelValue.max + state.innerMin.value + state.innerMax.value,
|
|
26125
|
-
() => {
|
|
26126
|
-
model.value.min = props.modelValue.min === null
|
|
26127
|
-
? state.innerMin.value
|
|
26128
|
-
: between(props.modelValue.min, state.innerMin.value, state.innerMax.value);
|
|
26129
|
-
|
|
26130
|
-
model.value.max = props.modelValue.max === null
|
|
26131
|
-
? state.innerMax.value
|
|
26132
|
-
: between(props.modelValue.max, state.innerMin.value, state.innerMax.value);
|
|
26133
|
-
}
|
|
26134
|
-
);
|
|
26135
|
-
|
|
26136
26208
|
function updateValue (change) {
|
|
26137
26209
|
if (model.value.min !== props.modelValue.min || model.value.max !== props.modelValue.max) {
|
|
26138
26210
|
emit('update:modelValue', { ...model.value });
|
|
@@ -26161,15 +26233,14 @@
|
|
|
26161
26233
|
ratioMax: modelMaxRatio.value
|
|
26162
26234
|
};
|
|
26163
26235
|
|
|
26164
|
-
let type;
|
|
26165
26236
|
const ratio = methods.getDraggingRatio(event, dragging);
|
|
26166
26237
|
|
|
26167
26238
|
if (props.dragOnlyRange !== true && ratio < dragging.ratioMin + sensitivity) {
|
|
26168
|
-
type = dragType.MIN;
|
|
26239
|
+
dragging.type = dragType.MIN;
|
|
26169
26240
|
}
|
|
26170
26241
|
else if (props.dragOnlyRange === true || ratio < dragging.ratioMax - sensitivity) {
|
|
26171
26242
|
if (props.dragRange === true || props.dragOnlyRange === true) {
|
|
26172
|
-
type = dragType.RANGE;
|
|
26243
|
+
dragging.type = dragType.RANGE;
|
|
26173
26244
|
Object.assign(dragging, {
|
|
26174
26245
|
offsetRatio: ratio,
|
|
26175
26246
|
offsetModel: methods.convertRatioToModel(ratio),
|
|
@@ -26178,18 +26249,15 @@
|
|
|
26178
26249
|
});
|
|
26179
26250
|
}
|
|
26180
26251
|
else {
|
|
26181
|
-
type = dragging.ratioMax - ratio < ratio - dragging.ratioMin
|
|
26252
|
+
dragging.type = dragging.ratioMax - ratio < ratio - dragging.ratioMin
|
|
26182
26253
|
? dragType.MAX
|
|
26183
26254
|
: dragType.MIN;
|
|
26184
26255
|
}
|
|
26185
26256
|
}
|
|
26186
26257
|
else {
|
|
26187
|
-
type = dragType.MAX;
|
|
26258
|
+
dragging.type = dragType.MAX;
|
|
26188
26259
|
}
|
|
26189
26260
|
|
|
26190
|
-
dragging.type = type;
|
|
26191
|
-
nextFocus.value = null;
|
|
26192
|
-
|
|
26193
26261
|
return dragging
|
|
26194
26262
|
}
|
|
26195
26263
|
|
|
@@ -26207,7 +26275,7 @@
|
|
|
26207
26275
|
min: localModel,
|
|
26208
26276
|
max: dragging.valueMax
|
|
26209
26277
|
};
|
|
26210
|
-
|
|
26278
|
+
state.focus.value = 'min';
|
|
26211
26279
|
}
|
|
26212
26280
|
else {
|
|
26213
26281
|
pos = {
|
|
@@ -26216,7 +26284,7 @@
|
|
|
26216
26284
|
min: dragging.valueMax,
|
|
26217
26285
|
max: localModel
|
|
26218
26286
|
};
|
|
26219
|
-
|
|
26287
|
+
state.focus.value = 'max';
|
|
26220
26288
|
}
|
|
26221
26289
|
break
|
|
26222
26290
|
|
|
@@ -26228,7 +26296,7 @@
|
|
|
26228
26296
|
min: dragging.valueMin,
|
|
26229
26297
|
max: localModel
|
|
26230
26298
|
};
|
|
26231
|
-
|
|
26299
|
+
state.focus.value = 'max';
|
|
26232
26300
|
}
|
|
26233
26301
|
else {
|
|
26234
26302
|
pos = {
|
|
@@ -26237,7 +26305,7 @@
|
|
|
26237
26305
|
min: localModel,
|
|
26238
26306
|
max: dragging.valueMin
|
|
26239
26307
|
};
|
|
26240
|
-
|
|
26308
|
+
state.focus.value = 'min';
|
|
26241
26309
|
}
|
|
26242
26310
|
break
|
|
26243
26311
|
|
|
@@ -26254,34 +26322,26 @@
|
|
|
26254
26322
|
min: parseFloat(min.toFixed(state.decimals.value)),
|
|
26255
26323
|
max: parseFloat((min + dragging.rangeValue).toFixed(state.decimals.value))
|
|
26256
26324
|
};
|
|
26325
|
+
|
|
26326
|
+
state.focus.value = 'both';
|
|
26257
26327
|
break
|
|
26258
26328
|
}
|
|
26259
26329
|
|
|
26260
|
-
model.value = {
|
|
26261
|
-
min: pos.min,
|
|
26262
|
-
max: pos.max
|
|
26263
|
-
};
|
|
26264
|
-
|
|
26265
26330
|
// If either of the values to be emitted are null, set them to the defaults the user has entered.
|
|
26266
|
-
|
|
26267
|
-
|
|
26268
|
-
|
|
26269
|
-
}
|
|
26331
|
+
model.value = model.value.min === null || model.value.max === null
|
|
26332
|
+
? { min: pos.min || props.min, max: pos.max || props.max }
|
|
26333
|
+
: { min: pos.min, max: pos.max };
|
|
26270
26334
|
|
|
26271
26335
|
if (props.snap !== true || props.step === 0) {
|
|
26272
26336
|
curMinRatio.value = pos.minR;
|
|
26273
26337
|
curMaxRatio.value = pos.maxR;
|
|
26274
26338
|
}
|
|
26275
26339
|
else {
|
|
26276
|
-
curMinRatio.value =
|
|
26277
|
-
curMaxRatio.value =
|
|
26340
|
+
curMinRatio.value = methods.convertModelToRatio(model.value.min);
|
|
26341
|
+
curMaxRatio.value = methods.convertModelToRatio(model.value.max);
|
|
26278
26342
|
}
|
|
26279
26343
|
}
|
|
26280
26344
|
|
|
26281
|
-
function onFocus (which) {
|
|
26282
|
-
state.focus.value = which;
|
|
26283
|
-
}
|
|
26284
|
-
|
|
26285
26345
|
function onKeydown (evt) {
|
|
26286
26346
|
if (!keyCodes$2.includes(evt.keyCode)) {
|
|
26287
26347
|
return
|
|
@@ -26290,14 +26350,11 @@
|
|
|
26290
26350
|
stopAndPrevent(evt);
|
|
26291
26351
|
|
|
26292
26352
|
const
|
|
26293
|
-
stepVal = ([ 34, 33 ].includes(evt.keyCode) ? 10 : 1) *
|
|
26294
|
-
offset = [ 34, 37, 40 ].includes(evt.keyCode) ? -
|
|
26295
|
-
|
|
26296
|
-
if (props.dragOnlyRange) {
|
|
26297
|
-
const interval = props.dragOnlyRange
|
|
26298
|
-
? model.value.max - model.value.min
|
|
26299
|
-
: 0;
|
|
26353
|
+
stepVal = ([ 34, 33 ].includes(evt.keyCode) ? 10 : 1) * state.step.value,
|
|
26354
|
+
offset = ([ 34, 37, 40 ].includes(evt.keyCode) ? -1 : 1) * (state.isReversed.value === true ? -1 : 1) * stepVal;
|
|
26300
26355
|
|
|
26356
|
+
if (state.focus.value === 'both') {
|
|
26357
|
+
const interval = model.value.max - model.value.min;
|
|
26301
26358
|
const min = between(
|
|
26302
26359
|
parseFloat((model.value.min + offset).toFixed(state.decimals.value)),
|
|
26303
26360
|
state.innerMin.value,
|
|
@@ -26331,7 +26388,8 @@
|
|
|
26331
26388
|
return () => {
|
|
26332
26389
|
const content = methods.getContent(
|
|
26333
26390
|
selectionBarStyle,
|
|
26334
|
-
|
|
26391
|
+
trackContainerTabindex,
|
|
26392
|
+
trackContainerEvents,
|
|
26335
26393
|
node => {
|
|
26336
26394
|
node.push(
|
|
26337
26395
|
getMinThumb(),
|
|
@@ -26348,10 +26406,7 @@
|
|
|
26348
26406
|
: ''
|
|
26349
26407
|
),
|
|
26350
26408
|
...state.attributes.value,
|
|
26351
|
-
'aria-valuenow': props.modelValue.min + '|' + props.modelValue.max
|
|
26352
|
-
tabindex: props.dragOnlyRange === true && $q.platform.is.mobile !== true
|
|
26353
|
-
? state.tabindex.value
|
|
26354
|
-
: null
|
|
26409
|
+
'aria-valuenow': props.modelValue.min + '|' + props.modelValue.max
|
|
26355
26410
|
}, content)
|
|
26356
26411
|
}
|
|
26357
26412
|
}
|
|
@@ -26987,6 +27042,7 @@
|
|
|
26987
27042
|
style: mainStyle.value
|
|
26988
27043
|
}, hMergeSlot(slots.default, [
|
|
26989
27044
|
vue.h(QResizeObserver, {
|
|
27045
|
+
debounce: 0,
|
|
26990
27046
|
onResize: updateScrollSize
|
|
26991
27047
|
})
|
|
26992
27048
|
])),
|
|
@@ -26997,7 +27053,10 @@
|
|
|
26997
27053
|
})
|
|
26998
27054
|
]),
|
|
26999
27055
|
|
|
27000
|
-
vue.h(QResizeObserver, {
|
|
27056
|
+
vue.h(QResizeObserver, {
|
|
27057
|
+
debounce: 0,
|
|
27058
|
+
onResize: updateContainer
|
|
27059
|
+
}),
|
|
27001
27060
|
|
|
27002
27061
|
vue.h('div', {
|
|
27003
27062
|
class: scroll.vertical.barClass.value,
|
|
@@ -36110,7 +36169,9 @@
|
|
|
36110
36169
|
src: {
|
|
36111
36170
|
type: String,
|
|
36112
36171
|
required: true
|
|
36113
|
-
}
|
|
36172
|
+
},
|
|
36173
|
+
|
|
36174
|
+
title: String
|
|
36114
36175
|
},
|
|
36115
36176
|
|
|
36116
36177
|
setup (props) {
|
|
@@ -36127,6 +36188,7 @@
|
|
|
36127
36188
|
}, [
|
|
36128
36189
|
vue.h('iframe', {
|
|
36129
36190
|
src: props.src,
|
|
36191
|
+
title: props.title,
|
|
36130
36192
|
frameborder: '0',
|
|
36131
36193
|
allowfullscreen: true
|
|
36132
36194
|
})
|
|
@@ -39127,7 +39189,7 @@
|
|
|
39127
39189
|
});
|
|
39128
39190
|
|
|
39129
39191
|
var index_umd = {
|
|
39130
|
-
version: '2.4.
|
|
39192
|
+
version: '2.4.3',
|
|
39131
39193
|
install (app, opts) {
|
|
39132
39194
|
installQuasar(app, {
|
|
39133
39195
|
components,
|