quasar 2.1.4 → 2.1.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/Loading.json +5 -2
- package/dist/api/QColor.json +9 -2
- package/dist/api/QDate.json +5 -2
- package/dist/api/QFile.json +3 -1
- package/dist/api/QImg.json +15 -0
- package/dist/api/QInput.json +5 -2
- package/dist/api/QRadio.json +3 -1
- package/dist/api/QRange.json +13 -3
- package/dist/api/QSelect.json +3 -1
- package/dist/api/QSlider.json +9 -2
- package/dist/api/QTabs.json +3 -1
- package/dist/api/QTime.json +9 -2
- 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-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/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.esm.prod.js +2 -2
- package/dist/quasar.sass +1 -1
- package/dist/quasar.umd.js +123 -125
- package/dist/quasar.umd.prod.js +2 -2
- package/dist/ssr-directives/Morph.js +1 -1
- package/dist/types/index.d.ts +1824 -1522
- package/dist/vetur/quasar-attributes.json +18 -10
- package/dist/vetur/quasar-tags.json +2 -0
- package/dist/web-types/web-types.json +34 -16
- package/package.json +1 -1
- package/src/components/color/QColor.json +7 -2
- package/src/components/date/QDate.js +1 -1
- package/src/components/date/QDate.json +2 -2
- package/src/components/file/QFile.js +2 -1
- package/src/components/file/QFile.json +1 -1
- package/src/components/img/QImg.js +9 -13
- package/src/components/img/QImg.json +14 -0
- package/src/components/input/QInput.json +2 -2
- package/src/components/menu/QMenu.js +4 -1
- package/src/components/radio/QRadio.json +1 -1
- package/src/components/range/QRange.json +3 -3
- package/src/components/select/QSelect.js +23 -60
- package/src/components/select/QSelect.json +1 -1
- package/src/components/slider/QSlider.json +7 -2
- package/src/components/tabs/QTabs.js +41 -12
- package/src/components/tabs/QTabs.json +1 -1
- package/src/components/time/QTime.json +2 -2
- package/src/components/tooltip/QTooltip.js +4 -1
- package/src/components/virtual-scroll/use-virtual-scroll.js +4 -28
- package/src/composables/private/use-field.js +4 -6
- package/src/plugins/Loading.json +3 -2
- package/src/plugins/LoadingBar.js +4 -0
- package/src/plugins/Meta.js +16 -8
- package/src/plugins/Notify.js +3 -0
- package/src/utils/private/global-dialog.js +2 -1
- package/src/utils/private/rtl.js +27 -0
package/dist/quasar.sass
CHANGED
package/dist/quasar.umd.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Quasar Framework v2.1.
|
|
2
|
+
* Quasar Framework v2.1.8
|
|
3
3
|
* (c) 2015-present Razvan Stoenescu
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -1437,7 +1437,7 @@
|
|
|
1437
1437
|
}
|
|
1438
1438
|
|
|
1439
1439
|
var installQuasar = function (parentApp, opts = {}) {
|
|
1440
|
-
const $q = { version: '2.1.
|
|
1440
|
+
const $q = { version: '2.1.8' };
|
|
1441
1441
|
|
|
1442
1442
|
if (globalConfigIsFrozen === false) {
|
|
1443
1443
|
if (opts.config !== void 0) {
|
|
@@ -5222,7 +5222,10 @@
|
|
|
5222
5222
|
'q-menu q-position-engine scroll' + menuClass.value,
|
|
5223
5223
|
attrs.class
|
|
5224
5224
|
],
|
|
5225
|
-
style: [
|
|
5225
|
+
style: [
|
|
5226
|
+
attrs.style,
|
|
5227
|
+
transitionStyle.value
|
|
5228
|
+
],
|
|
5226
5229
|
...onEvents.value
|
|
5227
5230
|
}, hSlot(slots.default))
|
|
5228
5231
|
: null
|
|
@@ -8726,6 +8729,30 @@
|
|
|
8726
8729
|
}
|
|
8727
8730
|
});
|
|
8728
8731
|
|
|
8732
|
+
let rtlHasScrollBug = false;
|
|
8733
|
+
|
|
8734
|
+
// mobile Chrome takes the crown for this
|
|
8735
|
+
{
|
|
8736
|
+
const scroller = document.createElement('div');
|
|
8737
|
+
const spacer = document.createElement('div');
|
|
8738
|
+
|
|
8739
|
+
scroller.setAttribute('dir', 'rtl');
|
|
8740
|
+
scroller.style.width = '1px';
|
|
8741
|
+
scroller.style.height = '1px';
|
|
8742
|
+
scroller.style.overflow = 'auto';
|
|
8743
|
+
|
|
8744
|
+
spacer.style.width = '1000px';
|
|
8745
|
+
spacer.style.height = '1px';
|
|
8746
|
+
|
|
8747
|
+
document.body.appendChild(scroller);
|
|
8748
|
+
scroller.appendChild(spacer);
|
|
8749
|
+
scroller.scrollLeft = -1000;
|
|
8750
|
+
|
|
8751
|
+
rtlHasScrollBug = scroller.scrollLeft >= 0;
|
|
8752
|
+
|
|
8753
|
+
scroller.remove();
|
|
8754
|
+
}
|
|
8755
|
+
|
|
8729
8756
|
function getIndicatorClass (color, top, vertical) {
|
|
8730
8757
|
const pos = vertical === true
|
|
8731
8758
|
? [ 'left', 'right' ]
|
|
@@ -8852,6 +8879,11 @@
|
|
|
8852
8879
|
: { container: 'width', content: 'offsetWidth', scroll: 'scrollWidth' }
|
|
8853
8880
|
));
|
|
8854
8881
|
|
|
8882
|
+
const isRTL = vue.computed(() => props.vertical !== true && $q.lang.rtl === true);
|
|
8883
|
+
const rtlPosCorrection = vue.computed(() => rtlHasScrollBug === false && isRTL.value === true);
|
|
8884
|
+
|
|
8885
|
+
vue.watch(isRTL, localUpdateArrows);
|
|
8886
|
+
|
|
8855
8887
|
vue.watch(() => props.modelValue, name => {
|
|
8856
8888
|
updateModel({ name, setCurrent: true, skipEmit: true });
|
|
8857
8889
|
});
|
|
@@ -8994,12 +9026,18 @@
|
|
|
8994
9026
|
if (content !== null) {
|
|
8995
9027
|
const
|
|
8996
9028
|
rect = content.getBoundingClientRect(),
|
|
8997
|
-
pos = props.vertical === true ? content.scrollTop : content.scrollLeft;
|
|
9029
|
+
pos = props.vertical === true ? content.scrollTop : Math.abs(content.scrollLeft);
|
|
8998
9030
|
|
|
8999
|
-
|
|
9000
|
-
|
|
9001
|
-
|
|
9002
|
-
|
|
9031
|
+
if (isRTL.value === true) {
|
|
9032
|
+
leftArrow.value = Math.ceil(pos + rect.width) < content.scrollWidth - 1;
|
|
9033
|
+
rightArrow.value = pos > 0;
|
|
9034
|
+
}
|
|
9035
|
+
else {
|
|
9036
|
+
leftArrow.value = pos > 0;
|
|
9037
|
+
rightArrow.value = props.vertical === true
|
|
9038
|
+
? Math.ceil(pos + rect.height) < content.scrollHeight
|
|
9039
|
+
: Math.ceil(pos + rect.width) < content.scrollWidth;
|
|
9040
|
+
}
|
|
9003
9041
|
}
|
|
9004
9042
|
}
|
|
9005
9043
|
|
|
@@ -9008,33 +9046,50 @@
|
|
|
9008
9046
|
scrollTowards(value);
|
|
9009
9047
|
|
|
9010
9048
|
scrollTimer = setInterval(() => {
|
|
9011
|
-
if (scrollTowards(value)) {
|
|
9049
|
+
if (scrollTowards(value) === true) {
|
|
9012
9050
|
stopAnimScroll();
|
|
9013
9051
|
}
|
|
9014
9052
|
}, 5);
|
|
9015
9053
|
}
|
|
9016
9054
|
|
|
9017
9055
|
function scrollToStart () {
|
|
9018
|
-
animScrollTo(0);
|
|
9056
|
+
animScrollTo(rtlPosCorrection.value === true ? 9999 : 0);
|
|
9019
9057
|
}
|
|
9020
9058
|
|
|
9021
9059
|
function scrollToEnd () {
|
|
9022
|
-
animScrollTo(9999);
|
|
9060
|
+
animScrollTo(rtlPosCorrection.value === true ? 0 : 9999);
|
|
9023
9061
|
}
|
|
9024
9062
|
|
|
9025
9063
|
function stopAnimScroll () {
|
|
9026
9064
|
clearInterval(scrollTimer);
|
|
9027
9065
|
}
|
|
9028
9066
|
|
|
9067
|
+
// let's speed up execution of time-sensitive scrollTowards()
|
|
9068
|
+
// with a computed variable by directly applying the minimal
|
|
9069
|
+
// number of instructions on get/set functions
|
|
9070
|
+
const posFn = vue.computed(() => (
|
|
9071
|
+
rtlPosCorrection.value === true
|
|
9072
|
+
? { get: content => Math.abs(content.scrollLeft), set: (content, pos) => { content.scrollLeft = -pos; } }
|
|
9073
|
+
: (
|
|
9074
|
+
props.vertical === true
|
|
9075
|
+
? { get: content => content.scrollTop, set: (content, pos) => { content.scrollTop = pos; } }
|
|
9076
|
+
: { get: content => content.scrollLeft, set: (content, pos) => { content.scrollLeft = pos; } }
|
|
9077
|
+
)
|
|
9078
|
+
));
|
|
9079
|
+
|
|
9029
9080
|
function scrollTowards (value) {
|
|
9030
|
-
const
|
|
9081
|
+
const
|
|
9082
|
+
content = contentRef.value,
|
|
9083
|
+
{ get, set } = posFn.value;
|
|
9084
|
+
|
|
9031
9085
|
let
|
|
9032
|
-
|
|
9033
|
-
|
|
9086
|
+
done = false,
|
|
9087
|
+
pos = get(content);
|
|
9034
9088
|
|
|
9035
9089
|
const direction = value < pos ? -1 : 1;
|
|
9036
9090
|
|
|
9037
9091
|
pos += direction * 5;
|
|
9092
|
+
|
|
9038
9093
|
if (pos < 0) {
|
|
9039
9094
|
done = true;
|
|
9040
9095
|
pos = 0;
|
|
@@ -9047,7 +9102,7 @@
|
|
|
9047
9102
|
pos = value;
|
|
9048
9103
|
}
|
|
9049
9104
|
|
|
9050
|
-
content
|
|
9105
|
+
set(content, pos);
|
|
9051
9106
|
localUpdateArrows();
|
|
9052
9107
|
|
|
9053
9108
|
return done
|
|
@@ -13251,7 +13306,7 @@
|
|
|
13251
13306
|
if (editRange.value === null) {
|
|
13252
13307
|
const dayProps = days.value.find(day => day.fill !== true && day.i === dayIndex);
|
|
13253
13308
|
|
|
13254
|
-
if (dayProps.range !== void 0) {
|
|
13309
|
+
if (props.noUnset !== true && dayProps.range !== void 0) {
|
|
13255
13310
|
removeFromModel({ target: day, from: dayProps.range.from, to: dayProps.range.to });
|
|
13256
13311
|
return
|
|
13257
13312
|
}
|
|
@@ -15272,7 +15327,10 @@
|
|
|
15272
15327
|
'q-tooltip q-tooltip--style q-position-engine no-pointer-events',
|
|
15273
15328
|
attrs.class
|
|
15274
15329
|
],
|
|
15275
|
-
style:
|
|
15330
|
+
style: [
|
|
15331
|
+
attrs.style,
|
|
15332
|
+
transitionStyle.value
|
|
15333
|
+
],
|
|
15276
15334
|
role: 'complementary'
|
|
15277
15335
|
}, hSlot(slots.default))
|
|
15278
15336
|
: null
|
|
@@ -18085,12 +18143,10 @@
|
|
|
18085
18143
|
return function renderField () {
|
|
18086
18144
|
return vue.h('label', {
|
|
18087
18145
|
ref: state.rootRef,
|
|
18088
|
-
class:
|
|
18089
|
-
|
|
18090
|
-
|
|
18091
|
-
|
|
18092
|
-
]
|
|
18093
|
-
: classes.value,
|
|
18146
|
+
class: [
|
|
18147
|
+
classes.value,
|
|
18148
|
+
attrs.class
|
|
18149
|
+
],
|
|
18094
18150
|
style: attrs.style,
|
|
18095
18151
|
...attributes.value
|
|
18096
18152
|
}, [
|
|
@@ -18384,6 +18440,8 @@
|
|
|
18384
18440
|
var QFile = vue.defineComponent({
|
|
18385
18441
|
name: 'QFile',
|
|
18386
18442
|
|
|
18443
|
+
inheritAttrs: false,
|
|
18444
|
+
|
|
18387
18445
|
props: {
|
|
18388
18446
|
...useFieldProps,
|
|
18389
18447
|
...useFormProps,
|
|
@@ -18594,7 +18652,6 @@
|
|
|
18594
18652
|
}
|
|
18595
18653
|
|
|
18596
18654
|
Object.assign(state, {
|
|
18597
|
-
inheritAttrs: true,
|
|
18598
18655
|
fieldClass: { value: 'q-file q-field--auto-height' },
|
|
18599
18656
|
emitValue,
|
|
18600
18657
|
hasValue,
|
|
@@ -19240,9 +19297,6 @@
|
|
|
19240
19297
|
})
|
|
19241
19298
|
}
|
|
19242
19299
|
|
|
19243
|
-
const crossoriginValues = [ 'anonymous', 'use-credentials' ];
|
|
19244
|
-
const loadingValues = [ 'eager', 'lazy' ];
|
|
19245
|
-
const fitValues = [ 'cover', 'fill', 'contain', 'none', 'scale-down' ];
|
|
19246
19300
|
const defaultRatio = 16 / 9;
|
|
19247
19301
|
|
|
19248
19302
|
var QImg = vue.defineComponent({
|
|
@@ -19256,16 +19310,15 @@
|
|
|
19256
19310
|
sizes: String,
|
|
19257
19311
|
|
|
19258
19312
|
alt: String,
|
|
19259
|
-
crossorigin:
|
|
19260
|
-
|
|
19261
|
-
|
|
19262
|
-
|
|
19313
|
+
crossorigin: String,
|
|
19314
|
+
decoding: String,
|
|
19315
|
+
referrerpolicy: String,
|
|
19316
|
+
|
|
19263
19317
|
draggable: Boolean,
|
|
19264
19318
|
|
|
19265
19319
|
loading: {
|
|
19266
19320
|
type: String,
|
|
19267
|
-
default: 'lazy'
|
|
19268
|
-
validator: val => loadingValues.includes(val)
|
|
19321
|
+
default: 'lazy'
|
|
19269
19322
|
},
|
|
19270
19323
|
width: String,
|
|
19271
19324
|
height: String,
|
|
@@ -19278,8 +19331,7 @@
|
|
|
19278
19331
|
|
|
19279
19332
|
fit: {
|
|
19280
19333
|
type: String,
|
|
19281
|
-
default: 'cover'
|
|
19282
|
-
validator: val => fitValues.includes(val)
|
|
19334
|
+
default: 'cover'
|
|
19283
19335
|
},
|
|
19284
19336
|
position: {
|
|
19285
19337
|
type: String,
|
|
@@ -19299,7 +19351,7 @@
|
|
|
19299
19351
|
|
|
19300
19352
|
emits: [ 'load', 'error' ],
|
|
19301
19353
|
|
|
19302
|
-
setup (props, { slots,
|
|
19354
|
+
setup (props, { slots, emit }) {
|
|
19303
19355
|
const naturalRatio = vue.ref(props.initialRatio);
|
|
19304
19356
|
const ratioStyle = useRatio(props, naturalRatio);
|
|
19305
19357
|
|
|
@@ -19422,10 +19474,11 @@
|
|
|
19422
19474
|
|
|
19423
19475
|
const data = {
|
|
19424
19476
|
key: 'img_' + index,
|
|
19425
|
-
...attrs,
|
|
19426
19477
|
class: imgClass.value,
|
|
19427
19478
|
style: imgStyle.value,
|
|
19428
19479
|
crossorigin: props.crossorigin,
|
|
19480
|
+
decoding: props.decoding,
|
|
19481
|
+
referrerpolicy: props.referrerpolicy,
|
|
19429
19482
|
height: props.height,
|
|
19430
19483
|
width: props.width,
|
|
19431
19484
|
loading: props.loading,
|
|
@@ -24605,31 +24658,6 @@
|
|
|
24605
24658
|
];
|
|
24606
24659
|
|
|
24607
24660
|
const slice = Array.prototype.slice;
|
|
24608
|
-
|
|
24609
|
-
let buggyRTL = void 0;
|
|
24610
|
-
|
|
24611
|
-
// mobile Chrome takes the crown for this
|
|
24612
|
-
{
|
|
24613
|
-
const scroller = document.createElement('div');
|
|
24614
|
-
const spacer = document.createElement('div');
|
|
24615
|
-
|
|
24616
|
-
scroller.setAttribute('dir', 'rtl');
|
|
24617
|
-
scroller.style.width = '1px';
|
|
24618
|
-
scroller.style.height = '1px';
|
|
24619
|
-
scroller.style.overflow = 'auto';
|
|
24620
|
-
|
|
24621
|
-
spacer.style.width = '1000px';
|
|
24622
|
-
spacer.style.height = '1px';
|
|
24623
|
-
|
|
24624
|
-
document.body.appendChild(scroller);
|
|
24625
|
-
scroller.appendChild(spacer);
|
|
24626
|
-
scroller.scrollLeft = -1000;
|
|
24627
|
-
|
|
24628
|
-
buggyRTL = scroller.scrollLeft >= 0;
|
|
24629
|
-
|
|
24630
|
-
scroller.remove();
|
|
24631
|
-
}
|
|
24632
|
-
|
|
24633
24661
|
let id$1 = 1;
|
|
24634
24662
|
|
|
24635
24663
|
const setOverflowAnchor = window.getComputedStyle(document.body).overflowAnchor === void 0
|
|
@@ -24689,7 +24717,7 @@
|
|
|
24689
24717
|
details.scrollMaxSize = parentCalc.scrollWidth;
|
|
24690
24718
|
|
|
24691
24719
|
if (rtl === true) {
|
|
24692
|
-
details.scrollStart = (
|
|
24720
|
+
details.scrollStart = (rtlHasScrollBug === true ? details.scrollMaxSize - details.scrollViewSize : 0) - details.scrollStart;
|
|
24693
24721
|
}
|
|
24694
24722
|
}
|
|
24695
24723
|
else {
|
|
@@ -24747,7 +24775,7 @@
|
|
|
24747
24775
|
if (parent === window) {
|
|
24748
24776
|
if (horizontal === true) {
|
|
24749
24777
|
if (rtl === true) {
|
|
24750
|
-
scroll = (
|
|
24778
|
+
scroll = (rtlHasScrollBug === true ? document.body.scrollWidth - window.innerWidth : 0) - scroll;
|
|
24751
24779
|
}
|
|
24752
24780
|
window.scrollTo(scroll, window.pageYOffset || window.scrollY || document.body.scrollTop || 0);
|
|
24753
24781
|
}
|
|
@@ -24757,7 +24785,7 @@
|
|
|
24757
24785
|
}
|
|
24758
24786
|
else if (horizontal === true) {
|
|
24759
24787
|
if (rtl === true) {
|
|
24760
|
-
scroll = (
|
|
24788
|
+
scroll = (rtlHasScrollBug === true ? parent.scrollWidth - parent.offsetWidth : 0) - scroll;
|
|
24761
24789
|
}
|
|
24762
24790
|
parent.scrollLeft = scroll;
|
|
24763
24791
|
}
|
|
@@ -25436,7 +25464,7 @@
|
|
|
25436
25464
|
const dialogFieldFocused = vue.ref(false);
|
|
25437
25465
|
const innerLoadingIndicator = vue.ref(false);
|
|
25438
25466
|
|
|
25439
|
-
let inputTimer, innerValueCache,
|
|
25467
|
+
let inputTimer, innerValueCache,
|
|
25440
25468
|
hasDialog, userInputValue, filterId, defaultInputValue,
|
|
25441
25469
|
transitionShowComputed, searchBuffer, searchBufferExp;
|
|
25442
25470
|
|
|
@@ -25562,17 +25590,28 @@
|
|
|
25562
25590
|
const tabindex = vue.computed(() => (state.focused.value === true ? props.tabindex : -1));
|
|
25563
25591
|
|
|
25564
25592
|
const comboboxAttrs = vue.computed(() => ({
|
|
25593
|
+
tabindex: tabindex.value,
|
|
25565
25594
|
role: 'combobox',
|
|
25566
|
-
'aria-
|
|
25595
|
+
'aria-label': props.label,
|
|
25596
|
+
'aria-autocomplete': props.useInput === true ? 'list' : 'none',
|
|
25567
25597
|
'aria-expanded': menu.value === true ? 'true' : 'false',
|
|
25568
25598
|
'aria-owns': `${ state.targetUid.value }_lb`,
|
|
25569
|
-
'aria-
|
|
25599
|
+
'aria-controls': `${ state.targetUid.value }_lb`
|
|
25570
25600
|
}));
|
|
25571
25601
|
|
|
25572
|
-
const listboxAttrs = vue.computed(() =>
|
|
25573
|
-
|
|
25574
|
-
|
|
25575
|
-
|
|
25602
|
+
const listboxAttrs = vue.computed(() => {
|
|
25603
|
+
const attrs = {
|
|
25604
|
+
id: `${ state.targetUid.value }_lb`,
|
|
25605
|
+
role: 'listbox',
|
|
25606
|
+
'aria-multiselectable': props.multiple === true ? 'true' : 'false'
|
|
25607
|
+
};
|
|
25608
|
+
|
|
25609
|
+
if (optionIndex.value >= 0) {
|
|
25610
|
+
attrs[ 'aria-activedescendant' ] = `${ state.targetUid.value }_${ optionIndex.value }`;
|
|
25611
|
+
}
|
|
25612
|
+
|
|
25613
|
+
return attrs
|
|
25614
|
+
});
|
|
25576
25615
|
|
|
25577
25616
|
const selectedScope = vue.computed(() => {
|
|
25578
25617
|
return innerValue.value.map((opt, i) => ({
|
|
@@ -25592,7 +25631,6 @@
|
|
|
25592
25631
|
}
|
|
25593
25632
|
|
|
25594
25633
|
const { from, to } = virtualScrollSliceRange.value;
|
|
25595
|
-
const { options, optionEls } = optionScopeCache;
|
|
25596
25634
|
|
|
25597
25635
|
return props.options.slice(from, to).map((opt, i) => {
|
|
25598
25636
|
const disable = isOptionDisabled.value(opt) === true;
|
|
@@ -25624,7 +25662,7 @@
|
|
|
25624
25662
|
}
|
|
25625
25663
|
}
|
|
25626
25664
|
|
|
25627
|
-
|
|
25665
|
+
return {
|
|
25628
25666
|
index,
|
|
25629
25667
|
opt,
|
|
25630
25668
|
html: needsHtmlFn.value(opt),
|
|
@@ -25634,23 +25672,7 @@
|
|
|
25634
25672
|
toggleOption,
|
|
25635
25673
|
setOptionIndex,
|
|
25636
25674
|
itemProps
|
|
25637
|
-
};
|
|
25638
|
-
|
|
25639
|
-
const optionWithoutEvents = {
|
|
25640
|
-
...option,
|
|
25641
|
-
itemProps: {
|
|
25642
|
-
...itemProps,
|
|
25643
|
-
onClick: void 0,
|
|
25644
|
-
onMousemove: void 0
|
|
25645
|
-
}
|
|
25646
|
-
};
|
|
25647
|
-
|
|
25648
|
-
if (options[ i ] === void 0 || isDeepEqual(optionWithoutEvents, options[ i ]) !== true) {
|
|
25649
|
-
options[ i ] = optionWithoutEvents;
|
|
25650
|
-
optionEls[ i ] = void 0;
|
|
25651
25675
|
}
|
|
25652
|
-
|
|
25653
|
-
return option
|
|
25654
25676
|
})
|
|
25655
25677
|
});
|
|
25656
25678
|
|
|
@@ -26232,14 +26254,6 @@
|
|
|
26232
26254
|
}
|
|
26233
26255
|
|
|
26234
26256
|
function getAllOptions () {
|
|
26235
|
-
if (
|
|
26236
|
-
slots.option !== void 0
|
|
26237
|
-
&& optionScopeCache.optionSlot !== slots.option
|
|
26238
|
-
) {
|
|
26239
|
-
optionScopeCache.optionSlot = slots.option;
|
|
26240
|
-
optionScopeCache.optionEls = [];
|
|
26241
|
-
}
|
|
26242
|
-
|
|
26243
26257
|
const fn = slots.option !== void 0
|
|
26244
26258
|
? slots.option
|
|
26245
26259
|
: scope => {
|
|
@@ -26259,15 +26273,7 @@
|
|
|
26259
26273
|
})
|
|
26260
26274
|
};
|
|
26261
26275
|
|
|
26262
|
-
|
|
26263
|
-
|
|
26264
|
-
let options = padVirtualScroll('div', optionScope.value.map((scope, i) => {
|
|
26265
|
-
if (optionEls[ i ] === void 0) {
|
|
26266
|
-
optionEls[ i ] = fn(scope);
|
|
26267
|
-
}
|
|
26268
|
-
|
|
26269
|
-
return optionEls[ i ]
|
|
26270
|
-
}));
|
|
26276
|
+
let options = padVirtualScroll('div', optionScope.value.map(fn));
|
|
26271
26277
|
|
|
26272
26278
|
if (slots[ 'before-options' ] !== void 0) {
|
|
26273
26279
|
options = slots[ 'before-options' ]().concat(options);
|
|
@@ -26285,16 +26291,15 @@
|
|
|
26285
26291
|
value: inputValue.value !== void 0 ? inputValue.value : '',
|
|
26286
26292
|
// required for Android in order to show ENTER key when in form
|
|
26287
26293
|
type: 'search',
|
|
26294
|
+
...comboboxAttrs.value,
|
|
26288
26295
|
...state.splitAttrs.attributes.value,
|
|
26289
26296
|
id: state.targetUid.value,
|
|
26290
26297
|
maxlength: props.maxlength,
|
|
26291
|
-
tabindex: props.tabindex,
|
|
26292
26298
|
autocomplete: props.autocomplete,
|
|
26293
26299
|
'data-autofocus': (fromDialog !== true && props.autofocus === true) || void 0,
|
|
26294
26300
|
disabled: props.disable === true,
|
|
26295
26301
|
readonly: props.readonly === true,
|
|
26296
|
-
...inputControlEvents.value
|
|
26297
|
-
...comboboxAttrs.value
|
|
26302
|
+
...inputControlEvents.value
|
|
26298
26303
|
};
|
|
26299
26304
|
|
|
26300
26305
|
if (fromDialog !== true && hasDialog === true) {
|
|
@@ -26580,10 +26585,6 @@
|
|
|
26580
26585
|
}
|
|
26581
26586
|
|
|
26582
26587
|
function closeMenu () {
|
|
26583
|
-
if (optionScopeCache !== void 0) {
|
|
26584
|
-
optionScopeCache.optionEls = [];
|
|
26585
|
-
}
|
|
26586
|
-
|
|
26587
26588
|
if (dialog.value === true) {
|
|
26588
26589
|
return
|
|
26589
26590
|
}
|
|
@@ -26699,16 +26700,7 @@
|
|
|
26699
26700
|
|
|
26700
26701
|
updatePreState();
|
|
26701
26702
|
|
|
26702
|
-
vue.onBeforeMount(() => {
|
|
26703
|
-
optionScopeCache = {
|
|
26704
|
-
optionSlot: slots.option,
|
|
26705
|
-
options: [],
|
|
26706
|
-
optionEls: []
|
|
26707
|
-
};
|
|
26708
|
-
});
|
|
26709
|
-
|
|
26710
26703
|
vue.onBeforeUnmount(() => {
|
|
26711
|
-
optionScopeCache = void 0;
|
|
26712
26704
|
clearTimeout(inputTimer);
|
|
26713
26705
|
});
|
|
26714
26706
|
|
|
@@ -26796,7 +26788,6 @@
|
|
|
26796
26788
|
key: 'd_t',
|
|
26797
26789
|
class: 'no-outline',
|
|
26798
26790
|
id: state.targetUid.value,
|
|
26799
|
-
tabindex: props.tabindex,
|
|
26800
26791
|
...comboboxAttrs.value,
|
|
26801
26792
|
onKeydown: onTargetKeydown,
|
|
26802
26793
|
onKeyup: onTargetKeyup,
|
|
@@ -37240,6 +37231,10 @@
|
|
|
37240
37231
|
|
|
37241
37232
|
const vm = createChildApp({
|
|
37242
37233
|
name: 'LoadingBar',
|
|
37234
|
+
|
|
37235
|
+
// hide App from Vue devtools
|
|
37236
|
+
devtools: { hide: true },
|
|
37237
|
+
|
|
37243
37238
|
setup: () => () => vue.h(QAjaxBar, props.value)
|
|
37244
37239
|
}, parentApp).mount(el);
|
|
37245
37240
|
|
|
@@ -37635,6 +37630,9 @@
|
|
|
37635
37630
|
function getComponent ($q) {
|
|
37636
37631
|
return vue.defineComponent({
|
|
37637
37632
|
name: 'QNotifications',
|
|
37633
|
+
|
|
37634
|
+
// hide App from Vue devtools
|
|
37635
|
+
devtools: { hide: true },
|
|
37638
37636
|
|
|
37639
37637
|
setup () {
|
|
37640
37638
|
const notificationsList = {};
|
|
@@ -38589,7 +38587,7 @@
|
|
|
38589
38587
|
});
|
|
38590
38588
|
|
|
38591
38589
|
var index_umd = {
|
|
38592
|
-
version: '2.1.
|
|
38590
|
+
version: '2.1.8',
|
|
38593
38591
|
install (app, opts) {
|
|
38594
38592
|
installQuasar(app, {
|
|
38595
38593
|
components,
|