quasar 1.22.0 → 1.22.1
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/QDialog.json +11 -1
- package/dist/api/QList.json +12 -0
- package/dist/icon-set/bootstrap-icons.umd.min.js +1 -1
- package/dist/icon-set/eva-icons.umd.min.js +1 -1
- package/dist/icon-set/fontawesome-v5-pro.umd.min.js +1 -1
- package/dist/icon-set/fontawesome-v5.umd.min.js +1 -1
- package/dist/icon-set/fontawesome-v6-pro.umd.min.js +1 -1
- package/dist/icon-set/fontawesome-v6.umd.min.js +1 -1
- package/dist/icon-set/ionicons-v4.umd.min.js +1 -1
- package/dist/icon-set/line-awesome.umd.min.js +1 -1
- package/dist/icon-set/material-icons-outlined.umd.min.js +1 -1
- package/dist/icon-set/material-icons-round.umd.min.js +1 -1
- package/dist/icon-set/material-icons-sharp.umd.min.js +1 -1
- package/dist/icon-set/material-icons.umd.min.js +1 -1
- package/dist/icon-set/material-symbols-outlined.umd.min.js +1 -1
- package/dist/icon-set/material-symbols-rounded.umd.min.js +1 -1
- package/dist/icon-set/material-symbols-sharp.umd.min.js +1 -1
- package/dist/icon-set/mdi-v3.umd.min.js +1 -1
- package/dist/icon-set/mdi-v4.umd.min.js +1 -1
- package/dist/icon-set/mdi-v5.umd.min.js +1 -1
- package/dist/icon-set/mdi-v6.umd.min.js +1 -1
- package/dist/icon-set/svg-bootstrap-icons.umd.min.js +1 -1
- package/dist/icon-set/svg-eva-icons.umd.min.js +1 -1
- package/dist/icon-set/svg-fontawesome-v5.umd.min.js +1 -1
- package/dist/icon-set/svg-fontawesome-v6.umd.min.js +1 -1
- package/dist/icon-set/svg-ionicons-v4.umd.min.js +1 -1
- package/dist/icon-set/svg-ionicons-v5.umd.min.js +1 -1
- package/dist/icon-set/svg-ionicons-v6.umd.min.js +1 -1
- package/dist/icon-set/svg-line-awesome.umd.min.js +1 -1
- package/dist/icon-set/svg-material-icons-outlined.umd.min.js +1 -1
- package/dist/icon-set/svg-material-icons-round.umd.min.js +1 -1
- package/dist/icon-set/svg-material-icons-sharp.umd.min.js +1 -1
- package/dist/icon-set/svg-material-icons.umd.min.js +1 -1
- package/dist/icon-set/svg-material-symbols-outlined.umd.min.js +1 -1
- package/dist/icon-set/svg-material-symbols-rounded.umd.min.js +1 -1
- package/dist/icon-set/svg-material-symbols-sharp.umd.min.js +1 -1
- package/dist/icon-set/svg-mdi-v4.umd.min.js +1 -1
- package/dist/icon-set/svg-mdi-v5.umd.min.js +1 -1
- package/dist/icon-set/svg-mdi-v6.umd.min.js +1 -1
- package/dist/icon-set/svg-themify.umd.min.js +1 -1
- package/dist/icon-set/themify.umd.min.js +1 -1
- package/dist/lang/ar.umd.min.js +1 -1
- package/dist/lang/az-latn.umd.min.js +1 -1
- package/dist/lang/bg.umd.min.js +1 -1
- package/dist/lang/ca.umd.min.js +1 -1
- package/dist/lang/cs.umd.min.js +1 -1
- package/dist/lang/da.umd.min.js +1 -1
- package/dist/lang/de.umd.min.js +1 -1
- package/dist/lang/el.umd.min.js +1 -1
- package/dist/lang/en-gb.umd.min.js +1 -1
- package/dist/lang/en-us.umd.min.js +1 -1
- package/dist/lang/eo.umd.min.js +1 -1
- package/dist/lang/es.umd.min.js +1 -1
- package/dist/lang/et.umd.min.js +1 -1
- package/dist/lang/eu.umd.min.js +1 -1
- package/dist/lang/fa-ir.umd.min.js +1 -1
- package/dist/lang/fa.umd.min.js +1 -1
- package/dist/lang/fi.umd.min.js +1 -1
- package/dist/lang/fr.umd.min.js +1 -1
- package/dist/lang/gn.umd.min.js +1 -1
- package/dist/lang/he.umd.min.js +1 -1
- package/dist/lang/hr.umd.min.js +1 -1
- package/dist/lang/hu.umd.min.js +1 -1
- package/dist/lang/id.umd.min.js +1 -1
- package/dist/lang/is.umd.min.js +1 -1
- package/dist/lang/it.umd.min.js +1 -1
- package/dist/lang/ja.umd.min.js +1 -1
- package/dist/lang/km.umd.min.js +1 -1
- package/dist/lang/ko-kr.umd.min.js +1 -1
- package/dist/lang/kur-ckb.umd.min.js +1 -1
- package/dist/lang/kz.umd.min.js +1 -1
- package/dist/lang/lu.umd.min.js +1 -1
- package/dist/lang/lv.umd.min.js +1 -1
- package/dist/lang/ml.umd.min.js +1 -1
- package/dist/lang/mm.umd.min.js +1 -1
- package/dist/lang/ms.umd.min.js +1 -1
- package/dist/lang/my.umd.min.js +1 -1
- package/dist/lang/nb-no.umd.min.js +1 -1
- package/dist/lang/nl.umd.min.js +1 -1
- package/dist/lang/pl.umd.min.js +1 -1
- package/dist/lang/pt-br.umd.min.js +1 -1
- package/dist/lang/pt.umd.min.js +1 -1
- package/dist/lang/ro.umd.min.js +1 -1
- package/dist/lang/ru.umd.min.js +1 -1
- package/dist/lang/sk.umd.min.js +1 -1
- package/dist/lang/sl.umd.min.js +1 -1
- package/dist/lang/sm.umd.min.js +1 -1
- package/dist/lang/sr.umd.min.js +1 -1
- package/dist/lang/sv.umd.min.js +1 -1
- package/dist/lang/ta.umd.min.js +1 -1
- package/dist/lang/th.umd.min.js +1 -1
- package/dist/lang/tr.umd.min.js +1 -1
- package/dist/lang/ug.umd.min.js +1 -1
- package/dist/lang/uk.umd.min.js +1 -1
- package/dist/lang/uz-Cyrl.umd.min.js +1 -1
- package/dist/lang/uz-Latn.umd.min.js +1 -1
- package/dist/lang/vi.umd.min.js +1 -1
- package/dist/lang/zh-hans.umd.min.js +1 -1
- package/dist/lang/zh-hant.umd.min.js +1 -1
- package/dist/quasar.addon.css +1 -1
- package/dist/quasar.addon.rtl.css +1 -1
- package/dist/quasar.common.js +2 -2
- package/dist/quasar.css +3 -3
- package/dist/quasar.esm.js +2 -2
- package/dist/quasar.ie.polyfills.js +1 -1
- package/dist/quasar.ie.polyfills.umd.min.js +1 -1
- package/dist/quasar.min.css +1 -1
- package/dist/quasar.rtl.css +3 -3
- package/dist/quasar.rtl.min.css +1 -1
- package/dist/quasar.sass +3 -3
- package/dist/quasar.styl +3 -3
- package/dist/quasar.umd.js +80 -68
- package/dist/quasar.umd.min.js +2 -2
- package/dist/quasar.umd.modern.js +80 -64
- package/dist/quasar.umd.modern.min.js +2 -2
- package/dist/types/index.d.ts +6 -1
- package/dist/vetur/quasar-attributes.json +4 -0
- package/dist/vetur/quasar-tags.json +1 -0
- package/dist/web-types/web-types.json +11 -1
- package/package.json +1 -1
- package/src/components/dialog/QDialog.js +29 -27
- package/src/components/dialog/QDialog.json +9 -1
- package/src/components/dialog-bottom-sheet/BottomSheet.js +5 -4
- package/src/components/form/QForm.js +3 -1
- package/src/components/inner-loading/QInnerLoading.js +1 -6
- package/src/components/item/QList.js +7 -2
- package/src/components/item/QList.json +8 -0
- package/src/components/menu/QMenu.js +5 -2
- package/src/components/scroll-area/QScrollArea.js +9 -3
- package/src/components/scroll-observer/QScrollObserver.js +4 -0
- package/src/components/select/QSelect.sass +2 -2
- package/src/components/select/QSelect.styl +2 -2
- package/src/components/tooltip/QTooltip.js +1 -1
- package/src/mixins/mask.js +1 -1
- package/src/mixins/transition.js +14 -15
package/dist/types/index.d.ts
CHANGED
|
@@ -2635,8 +2635,9 @@ export interface QDialog extends Vue {
|
|
|
2635
2635
|
focus (selector? : string): void
|
|
2636
2636
|
/**
|
|
2637
2637
|
* Shakes dialog
|
|
2638
|
+
* @param focusTarget Optional DOM Element to be focused after shake
|
|
2638
2639
|
*/
|
|
2639
|
-
shake (): void
|
|
2640
|
+
shake (focusTarget? : Element): void
|
|
2640
2641
|
}
|
|
2641
2642
|
|
|
2642
2643
|
export interface QDrawer extends Vue {
|
|
@@ -4375,6 +4376,10 @@ export interface QItemSection extends Vue {
|
|
|
4375
4376
|
}
|
|
4376
4377
|
|
|
4377
4378
|
export interface QList extends Vue {
|
|
4379
|
+
/**
|
|
4380
|
+
* HTML tag to render
|
|
4381
|
+
*/
|
|
4382
|
+
tag? : string
|
|
4378
4383
|
/**
|
|
4379
4384
|
* Applies a default border to the component
|
|
4380
4385
|
*/
|
|
@@ -2759,6 +2759,10 @@
|
|
|
2759
2759
|
"type": "boolean",
|
|
2760
2760
|
"description": "Do not wrap text (useful for item's main content)"
|
|
2761
2761
|
},
|
|
2762
|
+
"q-list/tag": {
|
|
2763
|
+
"type": "string",
|
|
2764
|
+
"description": "HTML tag to render"
|
|
2765
|
+
},
|
|
2762
2766
|
"q-list/bordered": {
|
|
2763
2767
|
"type": "boolean",
|
|
2764
2768
|
"description": "Applies a default border to the component"
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "",
|
|
3
3
|
"framework": "vue",
|
|
4
4
|
"name": "quasar",
|
|
5
|
-
"version": "1.22.
|
|
5
|
+
"version": "1.22.1",
|
|
6
6
|
"contributions": {
|
|
7
7
|
"html": {
|
|
8
8
|
"types-syntax": "typescript",
|
|
@@ -9180,6 +9180,16 @@
|
|
|
9180
9180
|
"symbol": "QList"
|
|
9181
9181
|
},
|
|
9182
9182
|
"attributes": [
|
|
9183
|
+
{
|
|
9184
|
+
"name": "tag",
|
|
9185
|
+
"value": {
|
|
9186
|
+
"kind": "expression",
|
|
9187
|
+
"type": "string"
|
|
9188
|
+
},
|
|
9189
|
+
"description": "HTML tag to render\n\nExamples:\ndiv\nul\nol",
|
|
9190
|
+
"doc-url": "https://v1.quasar.dev/vue-components/list-and-list-items",
|
|
9191
|
+
"default": "\"div\""
|
|
9192
|
+
},
|
|
9183
9193
|
{
|
|
9184
9194
|
"name": "bordered",
|
|
9185
9195
|
"value": {
|
package/package.json
CHANGED
|
@@ -6,6 +6,7 @@ import ModelToggleMixin from '../../mixins/model-toggle.js'
|
|
|
6
6
|
import PortalMixin from '../../mixins/portal.js'
|
|
7
7
|
import PreventScrollMixin from '../../mixins/prevent-scroll.js'
|
|
8
8
|
import AttrsMixin, { ariaHidden } from '../../mixins/attrs.js'
|
|
9
|
+
import TransitionMixin from '../../mixins/transition.js'
|
|
9
10
|
|
|
10
11
|
import { childHasFocus } from '../../utils/dom.js'
|
|
11
12
|
import EscapeKey from '../../utils/private/escape-key.js'
|
|
@@ -25,7 +26,7 @@ const positionClass = {
|
|
|
25
26
|
left: 'fixed-left items-center'
|
|
26
27
|
}
|
|
27
28
|
|
|
28
|
-
const
|
|
29
|
+
const defaultTransitions = {
|
|
29
30
|
standard: ['scale', 'scale'],
|
|
30
31
|
top: ['slide-down', 'slide-up'],
|
|
31
32
|
bottom: ['slide-up', 'slide-down'],
|
|
@@ -33,11 +34,17 @@ const transitions = {
|
|
|
33
34
|
left: ['slide-right', 'slide-left']
|
|
34
35
|
}
|
|
35
36
|
|
|
37
|
+
const backdropAttrs = {
|
|
38
|
+
...ariaHidden,
|
|
39
|
+
tabindex: -1
|
|
40
|
+
}
|
|
41
|
+
|
|
36
42
|
export default Vue.extend({
|
|
37
43
|
name: 'QDialog',
|
|
38
44
|
|
|
39
45
|
mixins: [
|
|
40
46
|
AttrsMixin,
|
|
47
|
+
TransitionMixin,
|
|
41
48
|
HistoryMixin,
|
|
42
49
|
TimeoutMixin,
|
|
43
50
|
ModelToggleMixin,
|
|
@@ -78,20 +85,11 @@ export default Vue.extend({
|
|
|
78
85
|
|
|
79
86
|
data () {
|
|
80
87
|
return {
|
|
81
|
-
transitionState: this.showing,
|
|
82
88
|
animating: false
|
|
83
89
|
}
|
|
84
90
|
},
|
|
85
91
|
|
|
86
92
|
watch: {
|
|
87
|
-
showing (val) {
|
|
88
|
-
if (this.transitionShowComputed !== this.transitionHideComputed) {
|
|
89
|
-
this.$nextTick(() => {
|
|
90
|
-
this.transitionState = val
|
|
91
|
-
})
|
|
92
|
-
}
|
|
93
|
-
},
|
|
94
|
-
|
|
95
93
|
maximized (state) {
|
|
96
94
|
this.showing === true && this.__updateMaximized(state)
|
|
97
95
|
},
|
|
@@ -112,18 +110,12 @@ export default Vue.extend({
|
|
|
112
110
|
(this.square === true ? ' q-dialog__inner--square' : '')
|
|
113
111
|
},
|
|
114
112
|
|
|
115
|
-
|
|
116
|
-
return
|
|
113
|
+
defaultTransitionShow () {
|
|
114
|
+
return defaultTransitions[this.position][0]
|
|
117
115
|
},
|
|
118
116
|
|
|
119
|
-
|
|
120
|
-
return
|
|
121
|
-
},
|
|
122
|
-
|
|
123
|
-
transition () {
|
|
124
|
-
return this.transitionState === true
|
|
125
|
-
? this.transitionHideComputed
|
|
126
|
-
: this.transitionShowComputed
|
|
117
|
+
defaultTransitionHide () {
|
|
118
|
+
return defaultTransitions[this.position][1]
|
|
127
119
|
},
|
|
128
120
|
|
|
129
121
|
useBackdrop () {
|
|
@@ -170,13 +162,23 @@ export default Vue.extend({
|
|
|
170
162
|
return
|
|
171
163
|
}
|
|
172
164
|
|
|
173
|
-
node = node.querySelector(selector
|
|
165
|
+
node = (selector !== '' ? node.querySelector(selector) : null) ||
|
|
166
|
+
node.querySelector('[autofocus][tabindex], [data-autofocus][tabindex]') ||
|
|
167
|
+
node.querySelector('[autofocus] [tabindex], [data-autofocus] [tabindex]') ||
|
|
168
|
+
node.querySelector('[autofocus], [data-autofocus]') ||
|
|
169
|
+
node
|
|
174
170
|
node.focus({ preventScroll: true })
|
|
175
171
|
})
|
|
176
172
|
},
|
|
177
173
|
|
|
178
|
-
shake () {
|
|
179
|
-
|
|
174
|
+
shake (refocusTarget) {
|
|
175
|
+
if (refocusTarget && typeof refocusTarget.focus === 'function') {
|
|
176
|
+
refocusTarget.focus({ preventScroll: true })
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
this.focus()
|
|
180
|
+
}
|
|
181
|
+
|
|
180
182
|
this.$emit('shake')
|
|
181
183
|
|
|
182
184
|
const node = this.__getInnerNode()
|
|
@@ -338,7 +340,7 @@ export default Vue.extend({
|
|
|
338
340
|
this.hide(e)
|
|
339
341
|
}
|
|
340
342
|
else if (this.noShake !== true) {
|
|
341
|
-
this.shake()
|
|
343
|
+
this.shake(e.relatedTarget)
|
|
342
344
|
}
|
|
343
345
|
},
|
|
344
346
|
|
|
@@ -365,15 +367,15 @@ export default Vue.extend({
|
|
|
365
367
|
}, this.useBackdrop === true ? [
|
|
366
368
|
h('div', {
|
|
367
369
|
staticClass: 'q-dialog__backdrop fixed-full',
|
|
368
|
-
attrs:
|
|
370
|
+
attrs: backdropAttrs,
|
|
369
371
|
on: cache(this, 'bkdrop', {
|
|
370
|
-
|
|
372
|
+
focusin: this.__onBackdropClick
|
|
371
373
|
})
|
|
372
374
|
})
|
|
373
375
|
] : null),
|
|
374
376
|
|
|
375
377
|
h('transition', {
|
|
376
|
-
props: {
|
|
378
|
+
props: { ...this.transitionProps }
|
|
377
379
|
}, [
|
|
378
380
|
this.showing === true ? h('div', {
|
|
379
381
|
ref: 'inner',
|
|
@@ -143,7 +143,15 @@
|
|
|
143
143
|
},
|
|
144
144
|
|
|
145
145
|
"shake": {
|
|
146
|
-
"desc": "Shakes dialog"
|
|
146
|
+
"desc": "Shakes dialog",
|
|
147
|
+
"params": {
|
|
148
|
+
"focusTarget": {
|
|
149
|
+
"type": "Element",
|
|
150
|
+
"desc": "Optional DOM Element to be focused after shake",
|
|
151
|
+
"examples": [ "document.getElementById('example')" ],
|
|
152
|
+
"addedIn": "v1.22.1"
|
|
153
|
+
}
|
|
154
|
+
}
|
|
147
155
|
}
|
|
148
156
|
},
|
|
149
157
|
|
|
@@ -78,7 +78,9 @@ export default Vue.extend({
|
|
|
78
78
|
class: action.classes,
|
|
79
79
|
attrs: attrsGridItem,
|
|
80
80
|
on: {
|
|
81
|
-
click: () =>
|
|
81
|
+
click: () => {
|
|
82
|
+
this.onOk(action)
|
|
83
|
+
},
|
|
82
84
|
keyup: e => {
|
|
83
85
|
e.keyCode === 13 && this.onOk(action)
|
|
84
86
|
}
|
|
@@ -117,9 +119,8 @@ export default Vue.extend({
|
|
|
117
119
|
dark: this.isDark
|
|
118
120
|
},
|
|
119
121
|
on: {
|
|
120
|
-
click: () =>
|
|
121
|
-
|
|
122
|
-
e.keyCode === 13 && this.onOk(action)
|
|
122
|
+
click: () => {
|
|
123
|
+
this.onOk(action)
|
|
123
124
|
}
|
|
124
125
|
}
|
|
125
126
|
}, [
|
|
@@ -156,7 +156,9 @@ export default Vue.extend({
|
|
|
156
156
|
addFocusFn(() => {
|
|
157
157
|
if (!this.$el) { return }
|
|
158
158
|
|
|
159
|
-
const target = this.$el.querySelector('[autofocus], [data-autofocus]') ||
|
|
159
|
+
const target = this.$el.querySelector('[autofocus][tabindex], [data-autofocus][tabindex]') ||
|
|
160
|
+
this.$el.querySelector('[autofocus] [tabindex], [data-autofocus] [tabindex]') ||
|
|
161
|
+
this.$el.querySelector('[autofocus], [data-autofocus]') ||
|
|
160
162
|
Array.prototype.find.call(this.$el.querySelectorAll('[tabindex]'), el => el.tabIndex > -1)
|
|
161
163
|
|
|
162
164
|
target !== null && target !== void 0 && target.focus({ preventScroll: true })
|
|
@@ -78,11 +78,6 @@ export default Vue.extend({
|
|
|
78
78
|
},
|
|
79
79
|
|
|
80
80
|
render (h) {
|
|
81
|
-
return h('transition', {
|
|
82
|
-
props: {
|
|
83
|
-
name: this.transition,
|
|
84
|
-
appear: true
|
|
85
|
-
}
|
|
86
|
-
}, this.__getContent(h))
|
|
81
|
+
return h('transition', { props: { ...this.transitionProps } }, this.__getContent(h))
|
|
87
82
|
}
|
|
88
83
|
})
|
|
@@ -16,7 +16,12 @@ export default Vue.extend({
|
|
|
16
16
|
bordered: Boolean,
|
|
17
17
|
dense: Boolean,
|
|
18
18
|
separator: Boolean,
|
|
19
|
-
padding: Boolean
|
|
19
|
+
padding: Boolean,
|
|
20
|
+
|
|
21
|
+
tag: {
|
|
22
|
+
type: String,
|
|
23
|
+
default: 'div'
|
|
24
|
+
}
|
|
20
25
|
},
|
|
21
26
|
|
|
22
27
|
computed: {
|
|
@@ -31,7 +36,7 @@ export default Vue.extend({
|
|
|
31
36
|
},
|
|
32
37
|
|
|
33
38
|
render (h) {
|
|
34
|
-
return h(
|
|
39
|
+
return h(this.tag, {
|
|
35
40
|
class: this.classes,
|
|
36
41
|
attrs,
|
|
37
42
|
on: { ...this.qListeners }
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
+
"mixins": [ "mixins/tag" ],
|
|
3
|
+
|
|
2
4
|
"meta": {
|
|
3
5
|
"docsUrl": "https://v1.quasar.dev/vue-components/list-and-list-items"
|
|
4
6
|
},
|
|
@@ -30,6 +32,12 @@
|
|
|
30
32
|
"type": "Boolean",
|
|
31
33
|
"desc": "Applies a material design-like padding on top and bottom",
|
|
32
34
|
"category": "content"
|
|
35
|
+
},
|
|
36
|
+
|
|
37
|
+
"tag": {
|
|
38
|
+
"default": "div",
|
|
39
|
+
"examples": [ "div", "ul", "ol" ],
|
|
40
|
+
"addedIn": "v1.22.1"
|
|
33
41
|
}
|
|
34
42
|
},
|
|
35
43
|
|
|
@@ -140,7 +140,10 @@ export default Vue.extend({
|
|
|
140
140
|
: void 0
|
|
141
141
|
|
|
142
142
|
if (node !== void 0 && node.contains(document.activeElement) !== true) {
|
|
143
|
-
node = node.querySelector('[autofocus], [data-autofocus]') ||
|
|
143
|
+
node = node.querySelector('[autofocus][tabindex], [data-autofocus][tabindex]') ||
|
|
144
|
+
node.querySelector('[autofocus] [tabindex], [data-autofocus] [tabindex]') ||
|
|
145
|
+
node.querySelector('[autofocus], [data-autofocus]') ||
|
|
146
|
+
node
|
|
144
147
|
node.focus({ preventScroll: true })
|
|
145
148
|
}
|
|
146
149
|
})
|
|
@@ -321,7 +324,7 @@ export default Vue.extend({
|
|
|
321
324
|
|
|
322
325
|
__renderPortal (h) {
|
|
323
326
|
return h('transition', {
|
|
324
|
-
props: {
|
|
327
|
+
props: { ...this.transitionProps }
|
|
325
328
|
}, [
|
|
326
329
|
this.showing === true ? h('div', {
|
|
327
330
|
ref: 'inner',
|
|
@@ -101,7 +101,7 @@ export default Vue.extend({
|
|
|
101
101
|
horizontalScrollPercentage () {
|
|
102
102
|
const diff = this.scroll.horizontal.size - this.container.horizontal
|
|
103
103
|
if (diff <= 0) { return 0 }
|
|
104
|
-
const p = between(this.scroll.horizontal.position / diff, 0, 1)
|
|
104
|
+
const p = between(Math.abs(this.scroll.horizontal.position) / diff, 0, 1)
|
|
105
105
|
return Math.round(p * 10000) / 10000
|
|
106
106
|
},
|
|
107
107
|
|
|
@@ -162,7 +162,7 @@ export default Vue.extend({
|
|
|
162
162
|
return {
|
|
163
163
|
...this.thumbStyle,
|
|
164
164
|
...this.horizontalThumbStyle,
|
|
165
|
-
left: `${this.horizontalThumbStart}px`,
|
|
165
|
+
[ this.$q.lang.rtl === true ? 'right' : 'left' ]: `${this.horizontalThumbStart}px`,
|
|
166
166
|
width: `${this.horizontalThumbSize}px`
|
|
167
167
|
}
|
|
168
168
|
},
|
|
@@ -251,6 +251,12 @@ export default Vue.extend({
|
|
|
251
251
|
}
|
|
252
252
|
},
|
|
253
253
|
|
|
254
|
+
watch: {
|
|
255
|
+
'$q.lang.rtl' (rtl) {
|
|
256
|
+
this.setScrollPosition('horizontal', Math.abs(this.scroll.horizontal.position) * (rtl === true ? -1 : 1))
|
|
257
|
+
}
|
|
258
|
+
},
|
|
259
|
+
|
|
254
260
|
methods: {
|
|
255
261
|
getScrollTarget () {
|
|
256
262
|
return this.$refs.target
|
|
@@ -330,7 +336,7 @@ export default Vue.extend({
|
|
|
330
336
|
|
|
331
337
|
this.setScrollPosition(
|
|
332
338
|
axis,
|
|
333
|
-
percentage * (this.scroll[axis].size - this.container[axis]),
|
|
339
|
+
percentage * (this.scroll[axis].size - this.container[axis]) * (axis === 'horizontal' && this.$q.lang.rtl === true ? -1 : 1),
|
|
334
340
|
duration
|
|
335
341
|
)
|
|
336
342
|
},
|
|
@@ -222,7 +222,7 @@ export default Vue.extend({
|
|
|
222
222
|
|
|
223
223
|
__renderPortal (h) {
|
|
224
224
|
return h('transition', {
|
|
225
|
-
props: {
|
|
225
|
+
props: { ...this.transitionProps }
|
|
226
226
|
}, [
|
|
227
227
|
this.showing === true ? h('div', {
|
|
228
228
|
staticClass: 'q-tooltip q-tooltip--style q-position-engine no-pointer-events',
|
package/src/mixins/mask.js
CHANGED
|
@@ -190,7 +190,7 @@ export default {
|
|
|
190
190
|
|
|
191
191
|
this.computedMask = mask
|
|
192
192
|
this.computedUnmask = val => {
|
|
193
|
-
const unmaskMatch = unmaskMatcher.exec(val)
|
|
193
|
+
const unmaskMatch = unmaskMatcher.exec(this.reverseFillMask === true ? val : val.slice(0, mask.length))
|
|
194
194
|
if (unmaskMatch !== null) {
|
|
195
195
|
val = unmaskMatch.slice(1).join('')
|
|
196
196
|
}
|
package/src/mixins/transition.js
CHANGED
|
@@ -11,23 +11,22 @@ export default {
|
|
|
11
11
|
}
|
|
12
12
|
},
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
},
|
|
14
|
+
computed: {
|
|
15
|
+
transitionProps () {
|
|
16
|
+
const show = `q-transition--${this.transitionShow || this.defaultTransitionShow}`
|
|
17
|
+
const hide = `q-transition--${this.transitionHide || this.defaultTransitionHide}`
|
|
19
18
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
this.transitionShow !== this.transitionHide && this.$nextTick(() => {
|
|
23
|
-
this.transitionState = val
|
|
24
|
-
})
|
|
25
|
-
}
|
|
26
|
-
},
|
|
19
|
+
return {
|
|
20
|
+
appear: true,
|
|
27
21
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
22
|
+
enterClass: `${show}-enter`,
|
|
23
|
+
enterActiveClass: `${show}-enter-active`,
|
|
24
|
+
enterToClass: `${show}-enter-to`,
|
|
25
|
+
|
|
26
|
+
leaveClass: `${hide}-leave`,
|
|
27
|
+
leaveActiveClass: `${hide}-leave-active`,
|
|
28
|
+
leaveToClass: `${hide}-leave-to`
|
|
29
|
+
}
|
|
31
30
|
}
|
|
32
31
|
}
|
|
33
32
|
}
|