quasar 1.22.2 → 1.22.4
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/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/mdi-v7.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-mdi-v7.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 +12 -4
- 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 +17 -6
- package/dist/quasar.rtl.min.css +1 -1
- package/dist/quasar.sass +9 -4
- package/dist/quasar.styl +9 -4
- package/dist/quasar.umd.js +85 -39
- package/dist/quasar.umd.min.js +2 -2
- package/dist/quasar.umd.modern.js +80 -36
- package/dist/quasar.umd.modern.min.js +2 -2
- package/dist/web-types/web-types.json +1 -1
- package/package.json +1 -1
- package/src/components/card/QCard.sass +1 -1
- package/src/components/card/QCard.styl +1 -1
- package/src/components/dialog/QDialog.js +1 -1
- package/src/components/input/QInput.js +1 -1
- package/src/components/linear-progress/QLinearProgress.js +8 -6
- package/src/components/linear-progress/QLinearProgress.sass +3 -1
- package/src/components/linear-progress/QLinearProgress.styl +3 -1
- package/src/css/core/visibility.sass +5 -1
- package/src/css/core/visibility.styl +5 -1
- package/src/utils/private/position-engine.js +67 -30
package/package.json
CHANGED
|
@@ -372,7 +372,7 @@ export default Vue.extend({
|
|
|
372
372
|
staticClass: 'q-dialog__backdrop fixed-full',
|
|
373
373
|
attrs: backdropAttrs,
|
|
374
374
|
on: cache(this, 'bkdrop', {
|
|
375
|
-
focusin: this.__onBackdropClick
|
|
375
|
+
[ this.$q.platform.is.ios === true ? 'click' : 'focusin' ]: this.__onBackdropClick
|
|
376
376
|
})
|
|
377
377
|
})
|
|
378
378
|
] : null),
|
|
@@ -297,8 +297,8 @@ export default Vue.extend({
|
|
|
297
297
|
// but keep the total control size the same
|
|
298
298
|
// Firefox rulez #14263, #14344
|
|
299
299
|
this.$q.platform.is.firefox !== true && (inp.style.overflow = 'hidden')
|
|
300
|
-
inp.style.height = '1px'
|
|
301
300
|
parentStyle.marginBottom = (inp.scrollHeight - 1) + 'px'
|
|
301
|
+
inp.style.height = '1px'
|
|
302
302
|
|
|
303
303
|
inp.style.height = inp.scrollHeight + 'px'
|
|
304
304
|
inp.style.overflow = overflow
|
|
@@ -68,8 +68,12 @@ export default Vue.extend({
|
|
|
68
68
|
return width(this.buffer !== void 0 ? this.buffer : 1, this.widthReverse, this.$q)
|
|
69
69
|
},
|
|
70
70
|
|
|
71
|
+
transitionSuffix () {
|
|
72
|
+
return `with${this.instantFeedback === true ? 'out' : ''}-transition`
|
|
73
|
+
},
|
|
74
|
+
|
|
71
75
|
trackClass () {
|
|
72
|
-
return `q-linear-progress__track
|
|
76
|
+
return `q-linear-progress__track absolute-full q-linear-progress__track--${this.transitionSuffix}` +
|
|
73
77
|
` q-linear-progress__track--${this.isDark === true ? 'dark' : 'light'}` +
|
|
74
78
|
(this.trackColor !== void 0 ? ` bg-${this.trackColor}` : '')
|
|
75
79
|
},
|
|
@@ -79,7 +83,7 @@ export default Vue.extend({
|
|
|
79
83
|
},
|
|
80
84
|
|
|
81
85
|
modelClasses () {
|
|
82
|
-
return `q-linear-progress__model
|
|
86
|
+
return `q-linear-progress__model absolute-full q-linear-progress__model--${this.transitionSuffix}` +
|
|
83
87
|
` q-linear-progress__model--${this.motion === true ? 'in' : ''}determinate`
|
|
84
88
|
},
|
|
85
89
|
|
|
@@ -88,7 +92,8 @@ export default Vue.extend({
|
|
|
88
92
|
},
|
|
89
93
|
|
|
90
94
|
stripeClass () {
|
|
91
|
-
return
|
|
95
|
+
return `q-linear-progress__stripe q-linear-progress__stripe--${this.transitionSuffix}`
|
|
96
|
+
+ ` absolute-${this.reverse === true ? 'right' : 'left'}`
|
|
92
97
|
},
|
|
93
98
|
|
|
94
99
|
attrs () {
|
|
@@ -104,13 +109,11 @@ export default Vue.extend({
|
|
|
104
109
|
render (h) {
|
|
105
110
|
const child = [
|
|
106
111
|
h('div', {
|
|
107
|
-
staticClass: 'q-linear-progress__track absolute-full',
|
|
108
112
|
style: this.trackStyle,
|
|
109
113
|
class: this.trackClass
|
|
110
114
|
}),
|
|
111
115
|
|
|
112
116
|
h('div', {
|
|
113
|
-
staticClass: 'q-linear-progress__model absolute-full',
|
|
114
117
|
style: this.modelStyle,
|
|
115
118
|
class: this.modelClasses
|
|
116
119
|
})
|
|
@@ -118,7 +121,6 @@ export default Vue.extend({
|
|
|
118
121
|
|
|
119
122
|
this.stripe === true && this.motion === false && child.push(
|
|
120
123
|
h('div', {
|
|
121
|
-
staticClass: 'q-linear-progress__stripe',
|
|
122
124
|
style: this.stripeStyle,
|
|
123
125
|
class: this.stripeClass
|
|
124
126
|
})
|
|
@@ -52,10 +52,12 @@
|
|
|
52
52
|
background: rgba(255,255,255,.6)
|
|
53
53
|
|
|
54
54
|
&__stripe
|
|
55
|
-
transition: width .3s
|
|
56
55
|
background-image: linear-gradient(45deg, rgba(255,255,255,.15) 25%, rgba(255,255,255,0) 25%, rgba(255,255,255,0) 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, rgba(255,255,255,0) 75%, rgba(255,255,255,0)) !important
|
|
57
56
|
background-size: 40px 40px !important
|
|
58
57
|
|
|
58
|
+
&--with-transition
|
|
59
|
+
transition: width .3s
|
|
60
|
+
|
|
59
61
|
@keyframes q-linear-progress--indeterminate
|
|
60
62
|
0%
|
|
61
63
|
transform: translate3d(-35%, 0, 0) scale3d(.35, 1, 1)
|
|
@@ -52,10 +52,12 @@
|
|
|
52
52
|
background: rgba(255,255,255,.6)
|
|
53
53
|
|
|
54
54
|
&__stripe
|
|
55
|
-
transition: width .3s
|
|
56
55
|
background-image: linear-gradient(45deg, rgba(255,255,255,.15) 25%, rgba(255,255,255,0) 25%, rgba(255,255,255,0) 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, rgba(255,255,255,0) 75%, rgba(255,255,255,0)) !important
|
|
57
56
|
background-size: 40px 40px !important
|
|
58
57
|
|
|
58
|
+
&--with-transition
|
|
59
|
+
transition: width .3s
|
|
60
|
+
|
|
59
61
|
@keyframes q-linear-progress--indeterminate
|
|
60
62
|
0%
|
|
61
63
|
transform: translate3d(-35%, 0, 0) scale3d(.35, 1, 1)
|
|
@@ -36,8 +36,12 @@
|
|
|
36
36
|
|
|
37
37
|
.hidden
|
|
38
38
|
display: none !important
|
|
39
|
-
.invisible
|
|
39
|
+
.invisible, .invisible *
|
|
40
40
|
visibility: hidden !important
|
|
41
|
+
transition: none !important
|
|
42
|
+
animation: none !important
|
|
43
|
+
.invisible svg *
|
|
44
|
+
display: none
|
|
41
45
|
.transparent
|
|
42
46
|
background: transparent !important
|
|
43
47
|
|
|
@@ -36,8 +36,12 @@
|
|
|
36
36
|
|
|
37
37
|
.hidden
|
|
38
38
|
display: none !important
|
|
39
|
-
.invisible
|
|
39
|
+
.invisible, .invisible *
|
|
40
40
|
visibility: hidden !important
|
|
41
|
+
transition: none !important
|
|
42
|
+
animation: none !important
|
|
43
|
+
.invisible svg *
|
|
44
|
+
display: none
|
|
41
45
|
.transparent
|
|
42
46
|
background: transparent !important
|
|
43
47
|
|
|
@@ -48,11 +48,6 @@ export function parsePosition (pos, rtl) {
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
export function validateCover (val) {
|
|
52
|
-
if (val === true || val === false) { return true }
|
|
53
|
-
return validatePosition(val)
|
|
54
|
-
}
|
|
55
|
-
|
|
56
51
|
export function getAnchorProps (el, offset) {
|
|
57
52
|
let { top, left, right, bottom, width, height } = el.getBoundingClientRect()
|
|
58
53
|
|
|
@@ -67,17 +62,32 @@ export function getAnchorProps (el, offset) {
|
|
|
67
62
|
}
|
|
68
63
|
|
|
69
64
|
return {
|
|
70
|
-
top,
|
|
71
|
-
left,
|
|
72
|
-
right,
|
|
73
|
-
bottom,
|
|
74
|
-
width,
|
|
75
|
-
height,
|
|
65
|
+
top, bottom, height,
|
|
66
|
+
left, right, width,
|
|
76
67
|
middle: left + (right - left) / 2,
|
|
77
68
|
center: top + (bottom - top) / 2
|
|
78
69
|
}
|
|
79
70
|
}
|
|
80
71
|
|
|
72
|
+
function getAbsoluteAnchorProps (el, absoluteOffset, offset) {
|
|
73
|
+
let { top, left } = el.getBoundingClientRect()
|
|
74
|
+
|
|
75
|
+
top += absoluteOffset.top
|
|
76
|
+
left += absoluteOffset.left
|
|
77
|
+
|
|
78
|
+
if (offset !== void 0) {
|
|
79
|
+
top += offset[ 1 ]
|
|
80
|
+
left += offset[ 0 ]
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return {
|
|
84
|
+
top, bottom: top + 1, height: 1,
|
|
85
|
+
left, right: left + 1, width: 1,
|
|
86
|
+
middle: left,
|
|
87
|
+
center: top
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
81
91
|
export function getTargetProps (el) {
|
|
82
92
|
return {
|
|
83
93
|
top: 0,
|
|
@@ -89,6 +99,13 @@ export function getTargetProps (el) {
|
|
|
89
99
|
}
|
|
90
100
|
}
|
|
91
101
|
|
|
102
|
+
function getTopLeftProps (anchorProps, targetProps, cfg) {
|
|
103
|
+
return {
|
|
104
|
+
top: anchorProps[ cfg.anchorOrigin.vertical ] - targetProps[ cfg.selfOrigin.vertical ],
|
|
105
|
+
left: anchorProps[ cfg.anchorOrigin.horizontal ] - targetProps[ cfg.selfOrigin.horizontal ]
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
92
109
|
// cfg: { el, anchorEl, anchorOrigin, selfOrigin, offset, absoluteOffset, cover, fit, maxHeight, maxWidth }
|
|
93
110
|
export function setPosition (cfg) {
|
|
94
111
|
if (client.is.ios === true && window.visualViewport !== void 0) {
|
|
@@ -107,25 +124,15 @@ export function setPosition (cfg) {
|
|
|
107
124
|
}
|
|
108
125
|
}
|
|
109
126
|
|
|
110
|
-
let anchorProps
|
|
111
|
-
|
|
112
127
|
// scroll position might change
|
|
113
128
|
// if max-height/-width changes, so we
|
|
114
129
|
// need to restore it after we calculate
|
|
115
130
|
// the new positioning
|
|
116
131
|
const { scrollLeft, scrollTop } = cfg.el
|
|
117
132
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
else {
|
|
122
|
-
const
|
|
123
|
-
{ top: anchorTop, left: anchorLeft } = cfg.anchorEl.getBoundingClientRect(),
|
|
124
|
-
top = anchorTop + cfg.absoluteOffset.top,
|
|
125
|
-
left = anchorLeft + cfg.absoluteOffset.left
|
|
126
|
-
|
|
127
|
-
anchorProps = { top, left, width: 1, height: 1, right: left + 1, center: top, middle: left, bottom: top + 1 }
|
|
128
|
-
}
|
|
133
|
+
const anchorProps = cfg.absoluteOffset === void 0
|
|
134
|
+
? getAnchorProps(cfg.anchorEl, cfg.cover === true ? [ 0, 0 ] : cfg.offset)
|
|
135
|
+
: getAbsoluteAnchorProps(cfg.anchorEl, cfg.absoluteOffset, cfg.offset)
|
|
129
136
|
|
|
130
137
|
let elStyle = {
|
|
131
138
|
maxHeight: cfg.maxHeight,
|
|
@@ -142,14 +149,44 @@ export function setPosition (cfg) {
|
|
|
142
149
|
|
|
143
150
|
Object.assign(cfg.el.style, elStyle)
|
|
144
151
|
|
|
145
|
-
const
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
152
|
+
const targetProps = getTargetProps(cfg.el)
|
|
153
|
+
let props = getTopLeftProps(anchorProps, targetProps, cfg)
|
|
154
|
+
|
|
155
|
+
if (cfg.absoluteOffset === void 0 || cfg.offset === void 0) {
|
|
156
|
+
applyBoundaries(props, anchorProps, targetProps, cfg.anchorOrigin, cfg.selfOrigin)
|
|
157
|
+
}
|
|
158
|
+
else { // we have touch position or context menu with offset
|
|
159
|
+
const { top, left } = props // cache initial values
|
|
160
|
+
|
|
161
|
+
// apply initial boundaries
|
|
162
|
+
applyBoundaries(props, anchorProps, targetProps, cfg.anchorOrigin, cfg.selfOrigin)
|
|
163
|
+
|
|
164
|
+
let hasChanged = false
|
|
165
|
+
|
|
166
|
+
// did it flip vertically?
|
|
167
|
+
if (props.top !== top) {
|
|
168
|
+
hasChanged = true
|
|
169
|
+
const offsetY = 2 * cfg.offset[ 1 ]
|
|
170
|
+
anchorProps.center = anchorProps.top -= offsetY
|
|
171
|
+
anchorProps.bottom -= offsetY + 2
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
// did it flip horizontally?
|
|
175
|
+
if (props.left !== left) {
|
|
176
|
+
hasChanged = true
|
|
177
|
+
const offsetX = 2 * cfg.offset[ 0 ]
|
|
178
|
+
anchorProps.middle = anchorProps.left -= offsetX
|
|
179
|
+
anchorProps.right -= offsetX + 2
|
|
150
180
|
}
|
|
151
181
|
|
|
152
|
-
|
|
182
|
+
if (hasChanged === true) {
|
|
183
|
+
// re-calculate props with the new anchor
|
|
184
|
+
props = getTopLeftProps(anchorProps, targetProps, cfg)
|
|
185
|
+
|
|
186
|
+
// and re-apply boundaries
|
|
187
|
+
applyBoundaries(props, anchorProps, targetProps, cfg.anchorOrigin, cfg.selfOrigin)
|
|
188
|
+
}
|
|
189
|
+
}
|
|
153
190
|
|
|
154
191
|
elStyle = {
|
|
155
192
|
top: props.top + 'px',
|