quasar 1.22.3 → 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.
Files changed (120) hide show
  1. package/dist/icon-set/bootstrap-icons.umd.min.js +1 -1
  2. package/dist/icon-set/eva-icons.umd.min.js +1 -1
  3. package/dist/icon-set/fontawesome-v5-pro.umd.min.js +1 -1
  4. package/dist/icon-set/fontawesome-v5.umd.min.js +1 -1
  5. package/dist/icon-set/fontawesome-v6-pro.umd.min.js +1 -1
  6. package/dist/icon-set/fontawesome-v6.umd.min.js +1 -1
  7. package/dist/icon-set/ionicons-v4.umd.min.js +1 -1
  8. package/dist/icon-set/line-awesome.umd.min.js +1 -1
  9. package/dist/icon-set/material-icons-outlined.umd.min.js +1 -1
  10. package/dist/icon-set/material-icons-round.umd.min.js +1 -1
  11. package/dist/icon-set/material-icons-sharp.umd.min.js +1 -1
  12. package/dist/icon-set/material-icons.umd.min.js +1 -1
  13. package/dist/icon-set/material-symbols-outlined.umd.min.js +1 -1
  14. package/dist/icon-set/material-symbols-rounded.umd.min.js +1 -1
  15. package/dist/icon-set/material-symbols-sharp.umd.min.js +1 -1
  16. package/dist/icon-set/mdi-v3.umd.min.js +1 -1
  17. package/dist/icon-set/mdi-v4.umd.min.js +1 -1
  18. package/dist/icon-set/mdi-v5.umd.min.js +1 -1
  19. package/dist/icon-set/mdi-v6.umd.min.js +1 -1
  20. package/dist/icon-set/mdi-v7.umd.min.js +1 -1
  21. package/dist/icon-set/svg-bootstrap-icons.umd.min.js +1 -1
  22. package/dist/icon-set/svg-eva-icons.umd.min.js +1 -1
  23. package/dist/icon-set/svg-fontawesome-v5.umd.min.js +1 -1
  24. package/dist/icon-set/svg-fontawesome-v6.umd.min.js +1 -1
  25. package/dist/icon-set/svg-ionicons-v4.umd.min.js +1 -1
  26. package/dist/icon-set/svg-ionicons-v5.umd.min.js +1 -1
  27. package/dist/icon-set/svg-ionicons-v6.umd.min.js +1 -1
  28. package/dist/icon-set/svg-line-awesome.umd.min.js +1 -1
  29. package/dist/icon-set/svg-material-icons-outlined.umd.min.js +1 -1
  30. package/dist/icon-set/svg-material-icons-round.umd.min.js +1 -1
  31. package/dist/icon-set/svg-material-icons-sharp.umd.min.js +1 -1
  32. package/dist/icon-set/svg-material-icons.umd.min.js +1 -1
  33. package/dist/icon-set/svg-material-symbols-outlined.umd.min.js +1 -1
  34. package/dist/icon-set/svg-material-symbols-rounded.umd.min.js +1 -1
  35. package/dist/icon-set/svg-material-symbols-sharp.umd.min.js +1 -1
  36. package/dist/icon-set/svg-mdi-v4.umd.min.js +1 -1
  37. package/dist/icon-set/svg-mdi-v5.umd.min.js +1 -1
  38. package/dist/icon-set/svg-mdi-v6.umd.min.js +1 -1
  39. package/dist/icon-set/svg-mdi-v7.umd.min.js +1 -1
  40. package/dist/icon-set/svg-themify.umd.min.js +1 -1
  41. package/dist/icon-set/themify.umd.min.js +1 -1
  42. package/dist/lang/ar.umd.min.js +1 -1
  43. package/dist/lang/az-latn.umd.min.js +1 -1
  44. package/dist/lang/bg.umd.min.js +1 -1
  45. package/dist/lang/ca.umd.min.js +1 -1
  46. package/dist/lang/cs.umd.min.js +1 -1
  47. package/dist/lang/da.umd.min.js +1 -1
  48. package/dist/lang/de.umd.min.js +1 -1
  49. package/dist/lang/el.umd.min.js +1 -1
  50. package/dist/lang/en-gb.umd.min.js +1 -1
  51. package/dist/lang/en-us.umd.min.js +1 -1
  52. package/dist/lang/eo.umd.min.js +1 -1
  53. package/dist/lang/es.umd.min.js +1 -1
  54. package/dist/lang/et.umd.min.js +1 -1
  55. package/dist/lang/eu.umd.min.js +1 -1
  56. package/dist/lang/fa-ir.umd.min.js +1 -1
  57. package/dist/lang/fa.umd.min.js +1 -1
  58. package/dist/lang/fi.umd.min.js +1 -1
  59. package/dist/lang/fr.umd.min.js +1 -1
  60. package/dist/lang/gn.umd.min.js +1 -1
  61. package/dist/lang/he.umd.min.js +1 -1
  62. package/dist/lang/hr.umd.min.js +1 -1
  63. package/dist/lang/hu.umd.min.js +1 -1
  64. package/dist/lang/id.umd.min.js +1 -1
  65. package/dist/lang/is.umd.min.js +1 -1
  66. package/dist/lang/it.umd.min.js +1 -1
  67. package/dist/lang/ja.umd.min.js +1 -1
  68. package/dist/lang/km.umd.min.js +1 -1
  69. package/dist/lang/ko-kr.umd.min.js +1 -1
  70. package/dist/lang/kur-ckb.umd.min.js +1 -1
  71. package/dist/lang/kz.umd.min.js +1 -1
  72. package/dist/lang/lu.umd.min.js +1 -1
  73. package/dist/lang/lv.umd.min.js +1 -1
  74. package/dist/lang/ml.umd.min.js +1 -1
  75. package/dist/lang/mm.umd.min.js +1 -1
  76. package/dist/lang/ms.umd.min.js +1 -1
  77. package/dist/lang/my.umd.min.js +1 -1
  78. package/dist/lang/nb-no.umd.min.js +1 -1
  79. package/dist/lang/nl.umd.min.js +1 -1
  80. package/dist/lang/pl.umd.min.js +1 -1
  81. package/dist/lang/pt-br.umd.min.js +1 -1
  82. package/dist/lang/pt.umd.min.js +1 -1
  83. package/dist/lang/ro.umd.min.js +1 -1
  84. package/dist/lang/ru.umd.min.js +1 -1
  85. package/dist/lang/sk.umd.min.js +1 -1
  86. package/dist/lang/sl.umd.min.js +1 -1
  87. package/dist/lang/sm.umd.min.js +1 -1
  88. package/dist/lang/sr.umd.min.js +1 -1
  89. package/dist/lang/sv.umd.min.js +1 -1
  90. package/dist/lang/ta.umd.min.js +1 -1
  91. package/dist/lang/th.umd.min.js +1 -1
  92. package/dist/lang/tr.umd.min.js +1 -1
  93. package/dist/lang/ug.umd.min.js +1 -1
  94. package/dist/lang/uk.umd.min.js +1 -1
  95. package/dist/lang/uz-Cyrl.umd.min.js +1 -1
  96. package/dist/lang/uz-Latn.umd.min.js +1 -1
  97. package/dist/lang/vi.umd.min.js +1 -1
  98. package/dist/lang/zh-hans.umd.min.js +1 -1
  99. package/dist/lang/zh-hant.umd.min.js +1 -1
  100. package/dist/quasar.addon.css +1 -1
  101. package/dist/quasar.addon.rtl.css +1 -1
  102. package/dist/quasar.common.js +2 -2
  103. package/dist/quasar.css +4 -1
  104. package/dist/quasar.esm.js +2 -2
  105. package/dist/quasar.ie.polyfills.js +1 -1
  106. package/dist/quasar.ie.polyfills.umd.min.js +1 -1
  107. package/dist/quasar.min.css +1 -1
  108. package/dist/quasar.rtl.css +4 -1
  109. package/dist/quasar.rtl.min.css +1 -1
  110. package/dist/quasar.sass +3 -1
  111. package/dist/quasar.styl +3 -1
  112. package/dist/quasar.umd.js +73 -29
  113. package/dist/quasar.umd.min.js +2 -2
  114. package/dist/quasar.umd.modern.js +70 -28
  115. package/dist/quasar.umd.modern.min.js +2 -2
  116. package/dist/web-types/web-types.json +1 -1
  117. package/package.json +1 -1
  118. package/src/css/core/visibility.sass +2 -0
  119. package/src/css/core/visibility.styl +2 -0
  120. package/src/utils/private/position-engine.js +67 -30
@@ -2,7 +2,7 @@
2
2
  "$schema": "",
3
3
  "framework": "vue",
4
4
  "name": "quasar",
5
- "version": "1.22.3",
5
+ "version": "1.22.4",
6
6
  "contributions": {
7
7
  "html": {
8
8
  "types-syntax": "typescript",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quasar",
3
- "version": "1.22.3",
3
+ "version": "1.22.4",
4
4
  "description": "Build high-performance VueJS user interfaces (SPA, PWA, SSR, Mobile and Desktop) in record time",
5
5
  "module": "src/index.esm.js",
6
6
  "typings": "dist/types/index.d.ts",
@@ -40,6 +40,8 @@
40
40
  visibility: hidden !important
41
41
  transition: none !important
42
42
  animation: none !important
43
+ .invisible svg *
44
+ display: none
43
45
  .transparent
44
46
  background: transparent !important
45
47
 
@@ -40,6 +40,8 @@
40
40
  visibility: hidden !important
41
41
  transition: none !important
42
42
  animation: none !important
43
+ .invisible svg *
44
+ display: none
43
45
  .transparent
44
46
  background: transparent !important
45
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
- if (cfg.absoluteOffset === void 0) {
119
- anchorProps = getAnchorProps(cfg.anchorEl, cfg.cover === true ? [0, 0] : cfg.offset)
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
- targetProps = getTargetProps(cfg.el),
147
- props = {
148
- top: anchorProps[cfg.anchorOrigin.vertical] - targetProps[cfg.selfOrigin.vertical],
149
- left: anchorProps[cfg.anchorOrigin.horizontal] - targetProps[cfg.selfOrigin.horizontal]
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
- applyBoundaries(props, anchorProps, targetProps, cfg.anchorOrigin, cfg.selfOrigin)
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',