quasar 2.2.4 → 2.3.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.
Files changed (253) hide show
  1. package/dist/api/AppFullscreen.json +15 -8
  2. package/dist/api/BottomSheet.json +23 -2
  3. package/dist/api/Cookies.json +4 -3
  4. package/dist/api/Dialog.json +40 -11
  5. package/dist/api/Loading.json +4 -2
  6. package/dist/api/LoadingBar.json +8 -3
  7. package/dist/api/LocalStorage.json +8 -0
  8. package/dist/api/Morph.json +14 -7
  9. package/dist/api/Mutation.json +1 -1
  10. package/dist/api/Notify.json +41 -27
  11. package/dist/api/QAjaxBar.json +6 -3
  12. package/dist/api/QBreadcrumbs.json +8 -4
  13. package/dist/api/QBreadcrumbsEl.json +4 -2
  14. package/dist/api/QBtn.json +6 -3
  15. package/dist/api/QBtnDropdown.json +10 -5
  16. package/dist/api/QBtnToggle.json +4 -2
  17. package/dist/api/QCard.json +2 -1
  18. package/dist/api/QCardActions.json +2 -1
  19. package/dist/api/QCardSection.json +2 -1
  20. package/dist/api/QCarousel.json +10 -5
  21. package/dist/api/QCarouselControl.json +4 -2
  22. package/dist/api/QChatMessage.json +8 -4
  23. package/dist/api/QCheckbox.json +8 -4
  24. package/dist/api/QChip.json +2 -1
  25. package/dist/api/QCircularProgress.json +27 -6
  26. package/dist/api/QColor.json +6 -3
  27. package/dist/api/QDate.json +79 -5
  28. package/dist/api/QDialog.json +8 -4
  29. package/dist/api/QDrawer.json +10 -5
  30. package/dist/api/QEditor.json +17 -7
  31. package/dist/api/QExpansionItem.json +2 -1
  32. package/dist/api/QFab.json +8 -4
  33. package/dist/api/QFabAction.json +4 -2
  34. package/dist/api/QField.json +2 -1
  35. package/dist/api/QFile.json +3 -0
  36. package/dist/api/QFooter.json +3 -2
  37. package/dist/api/QHeader.json +5 -3
  38. package/dist/api/QIcon.json +2 -1
  39. package/dist/api/QImg.json +8 -4
  40. package/dist/api/QInfiniteScroll.json +6 -3
  41. package/dist/api/QInnerLoading.json +8 -4
  42. package/dist/api/QInput.json +2 -1
  43. package/dist/api/QIntersection.json +17 -1
  44. package/dist/api/QItem.json +2 -1
  45. package/dist/api/QKnob.json +8 -4
  46. package/dist/api/QLayout.json +9 -1
  47. package/dist/api/QLinearProgress.json +17 -1
  48. package/dist/api/QMarkupTable.json +2 -1
  49. package/dist/api/QMenu.json +8 -4
  50. package/dist/api/QNoSsr.json +2 -1
  51. package/dist/api/QOptionGroup.json +2 -1
  52. package/dist/api/QPage.json +2 -1
  53. package/dist/api/QPageScroller.json +8 -4
  54. package/dist/api/QPageSticky.json +2 -1
  55. package/dist/api/QPagination.json +10 -6
  56. package/dist/api/QParallax.json +2 -1
  57. package/dist/api/QPopupEdit.json +5 -2
  58. package/dist/api/QPopupProxy.json +4 -2
  59. package/dist/api/QRange.json +8 -4
  60. package/dist/api/QRating.json +2 -1
  61. package/dist/api/QResizeObserver.json +4 -1
  62. package/dist/api/QRouteTab.json +5 -26
  63. package/dist/api/QScrollArea.json +29 -4
  64. package/dist/api/QScrollObserver.json +13 -1
  65. package/dist/api/QSelect.json +135 -37
  66. package/dist/api/QSeparator.json +2 -1
  67. package/dist/api/QSkeleton.json +9 -5
  68. package/dist/api/QSlideItem.json +9 -0
  69. package/dist/api/QSlideTransition.json +2 -1
  70. package/dist/api/QSlider.json +8 -4
  71. package/dist/api/QSpinner.json +2 -1
  72. package/dist/api/QSplitter.json +4 -2
  73. package/dist/api/QStep.json +2 -1
  74. package/dist/api/QStepper.json +6 -3
  75. package/dist/api/QTab.json +4 -2
  76. package/dist/api/QTabPanels.json +6 -3
  77. package/dist/api/QTable.json +216 -93
  78. package/dist/api/QTabs.json +4 -2
  79. package/dist/api/QTime.json +16 -4
  80. package/dist/api/QTimeline.json +4 -2
  81. package/dist/api/QTimelineEntry.json +4 -2
  82. package/dist/api/QToggle.json +8 -4
  83. package/dist/api/QTooltip.json +18 -9
  84. package/dist/api/QTree.json +26 -15
  85. package/dist/api/QUploader.json +93 -5
  86. package/dist/api/QVirtualScroll.json +23 -9
  87. package/dist/api/ScrollFire.json +1 -1
  88. package/dist/api/SessionStorage.json +8 -0
  89. package/dist/api/TouchHold.json +2 -1
  90. package/dist/api/TouchRepeat.json +2 -1
  91. package/dist/api/TouchSwipe.json +2 -1
  92. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  93. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  94. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  95. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  96. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  97. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  98. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  99. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  100. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  101. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  102. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  103. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  104. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  105. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  106. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  107. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  108. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  109. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  110. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  111. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +6 -0
  112. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  113. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  114. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  115. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  116. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  117. package/dist/icon-set/svg-mdi-v4.umd.prod.js +1 -1
  118. package/dist/icon-set/svg-mdi-v5.umd.prod.js +1 -1
  119. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  120. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  121. package/dist/icon-set/themify.umd.prod.js +1 -1
  122. package/dist/lang/ar.umd.prod.js +1 -1
  123. package/dist/lang/az-Latn.umd.prod.js +1 -1
  124. package/dist/lang/bg.umd.prod.js +1 -1
  125. package/dist/lang/bn.umd.prod.js +1 -1
  126. package/dist/lang/ca.umd.prod.js +1 -1
  127. package/dist/lang/cs.umd.prod.js +1 -1
  128. package/dist/lang/da.umd.prod.js +1 -1
  129. package/dist/lang/de.umd.prod.js +1 -1
  130. package/dist/lang/el.umd.prod.js +1 -1
  131. package/dist/lang/en-GB.umd.prod.js +1 -1
  132. package/dist/lang/en-US.umd.prod.js +1 -1
  133. package/dist/lang/eo.umd.prod.js +1 -1
  134. package/dist/lang/es.umd.prod.js +1 -1
  135. package/dist/lang/et.umd.prod.js +1 -1
  136. package/dist/lang/fa-IR.umd.prod.js +1 -1
  137. package/dist/lang/fa.umd.prod.js +1 -1
  138. package/dist/lang/fi.umd.prod.js +1 -1
  139. package/dist/lang/fr.umd.prod.js +1 -1
  140. package/dist/lang/gn.umd.prod.js +1 -1
  141. package/dist/lang/he.umd.prod.js +1 -1
  142. package/dist/lang/hr.umd.prod.js +1 -1
  143. package/dist/lang/hu.umd.prod.js +1 -1
  144. package/dist/lang/id.umd.prod.js +1 -1
  145. package/dist/lang/is.umd.prod.js +1 -1
  146. package/dist/lang/it.umd.prod.js +1 -1
  147. package/dist/lang/ja.umd.prod.js +1 -1
  148. package/dist/lang/km.umd.prod.js +1 -1
  149. package/dist/lang/ko-KR.umd.prod.js +1 -1
  150. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  151. package/dist/lang/lt.umd.prod.js +1 -1
  152. package/dist/lang/lu.umd.prod.js +1 -1
  153. package/dist/lang/lv.umd.prod.js +1 -1
  154. package/dist/lang/ml.umd.prod.js +1 -1
  155. package/dist/lang/ms.umd.prod.js +1 -1
  156. package/dist/lang/nb-NO.umd.prod.js +1 -1
  157. package/dist/lang/nl.umd.prod.js +1 -1
  158. package/dist/lang/pl.umd.prod.js +1 -1
  159. package/dist/lang/pt-BR.umd.prod.js +1 -1
  160. package/dist/lang/pt.umd.prod.js +1 -1
  161. package/dist/lang/ro.umd.prod.js +1 -1
  162. package/dist/lang/ru.umd.prod.js +1 -1
  163. package/dist/lang/sk.umd.prod.js +1 -1
  164. package/dist/lang/sl.umd.prod.js +1 -1
  165. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  166. package/dist/lang/sr.umd.prod.js +1 -1
  167. package/dist/lang/sv.umd.prod.js +1 -1
  168. package/dist/lang/ta.umd.prod.js +1 -1
  169. package/dist/lang/th.umd.prod.js +1 -1
  170. package/dist/lang/tr.umd.prod.js +1 -1
  171. package/dist/lang/ug.umd.prod.js +1 -1
  172. package/dist/lang/uk.umd.prod.js +1 -1
  173. package/dist/lang/vi.umd.prod.js +1 -1
  174. package/dist/lang/zh-CN.umd.prod.js +1 -1
  175. package/dist/lang/zh-TW.umd.prod.js +1 -1
  176. package/dist/quasar.cjs.prod.js +2 -2
  177. package/dist/quasar.css +7 -2
  178. package/dist/quasar.esm.prod.js +2 -2
  179. package/dist/quasar.prod.css +1 -1
  180. package/dist/quasar.rtl.css +7 -2
  181. package/dist/quasar.rtl.prod.css +1 -1
  182. package/dist/quasar.sass +6 -3
  183. package/dist/quasar.umd.js +185 -105
  184. package/dist/quasar.umd.prod.js +2 -2
  185. package/dist/ssr-directives/Morph.js +1 -1
  186. package/dist/types/api/cookies.d.ts +1 -1
  187. package/dist/types/composables.d.ts +5 -1
  188. package/dist/types/extras/icon-set.d.ts +1 -0
  189. package/dist/types/index.d.ts +516 -176
  190. package/dist/vetur/quasar-attributes.json +14 -2
  191. package/dist/vetur/quasar-tags.json +5 -2
  192. package/dist/web-types/web-types.json +43 -8
  193. package/icon-set/svg-ionicons-v6.js +225 -0
  194. package/package.json +5 -2
  195. package/src/api.extends.json +7 -0
  196. package/src/body.js +14 -4
  197. package/src/components/btn/QBtn.js +1 -0
  198. package/src/components/circular-progress/QCircularProgress.js +6 -1
  199. package/src/components/circular-progress/QCircularProgress.json +6 -0
  200. package/src/components/date/QDate.json +59 -1
  201. package/src/components/editor/QEditor.js +2 -2
  202. package/src/components/editor/QEditor.json +6 -2
  203. package/src/components/field/QField.json +3 -3
  204. package/src/components/file/QFile.json +3 -0
  205. package/src/components/footer/QFooter.json +1 -1
  206. package/src/components/header/QHeader.json +1 -1
  207. package/src/components/icon/QIcon.js +1 -1
  208. package/src/components/infinite-scroll/QInfiniteScroll.js +48 -31
  209. package/src/components/intersection/QIntersection.js +9 -1
  210. package/src/components/intersection/QIntersection.json +9 -0
  211. package/src/components/layout/QLayout.json +8 -1
  212. package/src/components/linear-progress/QLinearProgress.js +10 -1
  213. package/src/components/linear-progress/QLinearProgress.json +6 -0
  214. package/src/components/linear-progress/QLinearProgress.sass +3 -2
  215. package/src/components/pagination/QPagination.json +0 -1
  216. package/src/components/popup-edit/QPopupEdit.json +1 -0
  217. package/src/components/popup-proxy/QPopupProxy.js +6 -15
  218. package/src/components/resize-observer/QResizeObserver.json +2 -0
  219. package/src/components/scroll-area/QScrollArea.js +8 -13
  220. package/src/components/scroll-area/QScrollArea.json +28 -4
  221. package/src/components/scroll-observer/QScrollObserver.json +11 -0
  222. package/src/components/select/QSelect.js +7 -3
  223. package/src/components/select/QSelect.json +71 -11
  224. package/src/components/skeleton/QSkeleton.json +1 -4
  225. package/src/components/slide-item/QSlideItem.json +9 -0
  226. package/src/components/slider/use-slider.js +3 -3
  227. package/src/components/table/QTable.json +155 -60
  228. package/src/components/table/table-pagination.js +6 -2
  229. package/src/components/tabs/QRouteTab.json +1 -23
  230. package/src/components/time/QTime.json +8 -0
  231. package/src/components/tree/QTree.json +14 -9
  232. package/src/components/uploader/xhr-uploader-plugin.json +105 -4
  233. package/src/components/virtual-scroll/use-virtual-scroll.js +17 -1
  234. package/src/components/virtual-scroll/use-virtual-scroll.json +5 -0
  235. package/src/composables/private/use-field.js +4 -4
  236. package/src/composables/private/use-refocus-target.js +12 -3
  237. package/src/composables/private/use-split-attrs.js +10 -7
  238. package/src/composables/use-dialog-plugin-component.js +7 -1
  239. package/src/css/core/transitions.sass +3 -1
  240. package/src/directives/Mutation.json +2 -3
  241. package/src/directives/ScrollFire.json +2 -3
  242. package/src/install-quasar.js +1 -0
  243. package/src/plugins/AppFullscreen.json +8 -8
  244. package/src/plugins/Cookies.json +2 -2
  245. package/src/plugins/Dialog.json +4 -2
  246. package/src/plugins/LoadingBar.json +4 -3
  247. package/src/plugins/Notify.json +13 -19
  248. package/src/utils/create-uploader-component.js +6 -4
  249. package/src/utils/private/get-emits-object.js +11 -0
  250. package/src/utils/private/global-dialog.json +16 -2
  251. package/src/utils/private/vm.js +3 -3
  252. package/src/utils/private/web-storage.json +10 -0
  253. package/wrappers/index.js +4 -0
@@ -173,6 +173,7 @@
173
173
  "params": {
174
174
  "value": {
175
175
  "type": "Any",
176
+ "required": true,
176
177
  "desc": "Value to be checked",
177
178
  "examples": [ 0, "Changed text" ]
178
179
  }
@@ -6,7 +6,6 @@ import QMenu from '../menu/QMenu.js'
6
6
  import useAnchor, { useAnchorProps } from '../../composables/private/use-anchor.js'
7
7
 
8
8
  import { createComponent } from '../../utils/private/create.js'
9
- import { hSlot } from '../../utils/private/render.js'
10
9
 
11
10
  export default createComponent({
12
11
  name: 'QPopupProxy',
@@ -40,6 +39,10 @@ export default createComponent({
40
39
 
41
40
  const type = ref(getType())
42
41
 
42
+ const popupProps = computed(() => (
43
+ type.value === 'menu' ? { maxHeight: '99vh' } : {})
44
+ )
45
+
43
46
  watch(() => getType(), val => {
44
47
  if (showing.value !== true) {
45
48
  type.value = val
@@ -65,21 +68,9 @@ export default createComponent({
65
68
  }
66
69
 
67
70
  return () => {
68
- const def = hSlot(slots.default)
69
-
70
- const popupProps = (
71
- type.value === 'menu'
72
- && def !== void 0
73
- && def[ 0 ] !== void 0
74
- && def[ 0 ].type !== void 0
75
- && [ 'QDate', 'QTime', 'QCarousel', 'QColor' ].includes(
76
- def[ 0 ].type.name
77
- )
78
- ) ? { cover: true, maxHeight: '99vh' } : {}
79
-
80
71
  const data = {
81
72
  ref: popupRef,
82
- ...popupProps,
73
+ ...popupProps.value,
83
74
  ...attrs,
84
75
  onShow,
85
76
  onHide
@@ -100,7 +91,7 @@ export default createComponent({
100
91
  })
101
92
  }
102
93
 
103
- return h(component, data, () => def)
94
+ return h(component, data, slots.default)
104
95
  }
105
96
  }
106
97
  })
@@ -23,11 +23,13 @@
23
23
  "definition": {
24
24
  "height": {
25
25
  "type": "Number",
26
+ "required": true,
26
27
  "desc": "Layout height",
27
28
  "examples": [ 822 ]
28
29
  },
29
30
  "width": {
30
31
  "type": "Number",
32
+ "required": true,
31
33
  "desc": "Layout width",
32
34
  "examples": [ 822 ]
33
35
  }
@@ -18,6 +18,11 @@ const dirProps = {
18
18
  vertical: { offset: 'offsetY', scroll: 'scrollTop', dir: 'down', dist: 'y' },
19
19
  horizontal: { offset: 'offsetX', scroll: 'scrollLeft', dir: 'right', dist: 'x' }
20
20
  }
21
+ const panOpts = {
22
+ prevent: true,
23
+ mouse: true,
24
+ mouseAllDir: true
25
+ }
21
26
 
22
27
  export default createComponent({
23
28
  name: 'QScrollArea',
@@ -173,7 +178,7 @@ export default createComponent({
173
178
  )
174
179
 
175
180
  const mainStyle = computed(() => (
176
- scroll.vertical.thumbHidden.value === true || scroll.horizontal.thumbHidden.value === true
181
+ scroll.vertical.thumbHidden.value === true && scroll.horizontal.thumbHidden.value === true
177
182
  ? props.contentStyle
178
183
  : props.contentActiveStyle
179
184
  ))
@@ -182,24 +187,14 @@ export default createComponent({
182
187
  TouchPan,
183
188
  e => { onPanThumb(e, 'vertical') },
184
189
  void 0,
185
- {
186
- vertical: true,
187
- prevent: true,
188
- mouse: true,
189
- mouseAllDir: true
190
- }
190
+ { vertical: true, ...panOpts }
191
191
  ] ]
192
192
 
193
193
  const thumbHorizDir = [ [
194
194
  TouchPan,
195
195
  e => { onPanThumb(e, 'horizontal') },
196
196
  void 0,
197
- {
198
- horizontal: true,
199
- prevent: true,
200
- mouse: true,
201
- mouseAllDir: true
202
- }
197
+ { horizontal: true, ...panOpts }
203
198
  ] ]
204
199
 
205
200
  function getScroll () {
@@ -95,51 +95,61 @@
95
95
  "params": {
96
96
  "info": {
97
97
  "type": "Object",
98
- "__exemption": [ "examples" ],
98
+ "desc": "An object containing scroll information",
99
99
  "definition": {
100
100
  "ref": {
101
101
  "type": "Object",
102
+ "required": true,
102
103
  "desc": "Vue reference to the QScrollArea which triggered the event",
103
104
  "__exemption": [ "examples" ]
104
105
  },
106
+
105
107
  "verticalPosition": {
106
108
  "type": "Number",
109
+ "required": true,
107
110
  "desc": "Vertical scroll position (in px)",
108
111
  "__exemption": [ "examples" ]
109
112
  },
110
113
  "verticalPercentage": {
111
114
  "type": "Number",
115
+ "required": true,
112
116
  "desc": "Vertical scroll percentage (0.0 <= x <= 1.0)",
113
117
  "__exemption": [ "examples" ]
114
118
  },
115
119
  "verticalSize": {
116
120
  "type": "Number",
121
+ "required": true,
117
122
  "desc": "Vertical scroll size (in px)",
118
123
  "__exemption": [ "examples" ]
119
124
  },
120
125
  "verticalContainerSize": {
121
126
  "type": "Number",
127
+ "required": true,
122
128
  "desc": "Height of the container (in px)",
123
129
  "__exemption": [ "examples" ]
124
130
  },
125
131
 
126
132
  "horizontalPosition": {
127
133
  "type": "Number",
134
+ "required": true,
128
135
  "desc": "Horizontal scroll position (in px)",
129
136
  "__exemption": [ "examples" ]
130
137
  },
131
138
  "horizontalPercentage": {
132
139
  "type": "Number",
140
+ "required": true,
133
141
  "desc": "Horizontal scroll percentage (0.0 <= x <= 1.0)",
134
142
  "__exemption": [ "examples" ]
135
143
  },
136
144
  "horizontalSize": {
137
145
  "type": "Number",
146
+ "required": true,
138
147
  "desc": "Horizontal scroll size (in px)",
139
148
  "__exemption": [ "examples" ]
140
149
  },
141
150
  "horizontalContainerSize": {
142
151
  "type": "Number",
152
+ "required": true,
143
153
  "desc": "Width of the container (in px)",
144
154
  "__exemption": [ "examples" ]
145
155
  }
@@ -168,42 +178,50 @@
168
178
  "definition": {
169
179
  "verticalPosition": {
170
180
  "type": "Number",
181
+ "required": true,
171
182
  "desc": "Vertical scroll position (in px)",
172
183
  "__exemption": [ "examples" ]
173
184
  },
174
185
  "verticalPercentage": {
175
186
  "type": "Number",
187
+ "required": true,
176
188
  "desc": "Vertical scroll percentage (0.0 <= x <= 1.0)",
177
189
  "__exemption": [ "examples" ]
178
190
  },
179
191
  "verticalSize": {
180
192
  "type": "Number",
193
+ "required": true,
181
194
  "desc": "Vertical scroll size (in px)",
182
195
  "__exemption": [ "examples" ]
183
196
  },
184
197
  "verticalContainerSize": {
185
198
  "type": "Number",
199
+ "required": true,
186
200
  "desc": "Height of the container (in px)",
187
201
  "__exemption": [ "examples" ]
188
202
  },
189
203
 
190
204
  "horizontalPosition": {
191
205
  "type": "Number",
206
+ "required": true,
192
207
  "desc": "Horizontal scroll position (in px)",
193
208
  "__exemption": [ "examples" ]
194
209
  },
195
210
  "horizontalPercentage": {
196
211
  "type": "Number",
212
+ "required": true,
197
213
  "desc": "Horizontal scroll percentage (0.0 <= x <= 1.0)",
198
214
  "__exemption": [ "examples" ]
199
215
  },
200
216
  "horizontalSize": {
201
217
  "type": "Number",
218
+ "required": true,
202
219
  "desc": "Horizontal scroll size (in px)",
203
220
  "__exemption": [ "examples" ]
204
221
  },
205
222
  "horizontalContainerSize": {
206
223
  "type": "Number",
224
+ "required": true,
207
225
  "desc": "Width of the container (in px)",
208
226
  "__exemption": [ "examples" ]
209
227
  }
@@ -215,14 +233,17 @@
215
233
  "desc": "Get current scroll position",
216
234
  "returns": {
217
235
  "type": "Object",
236
+ "desc": "An object containing scroll position information",
218
237
  "definition": {
219
238
  "top": {
220
239
  "type": "Number",
240
+ "required": true,
221
241
  "desc": "Scroll offset from top (vertical)",
222
242
  "examples": [ 120 ]
223
243
  },
224
244
  "left": {
225
245
  "type": "Number",
246
+ "required": true,
226
247
  "desc": "Scroll offset from left (horizontal)",
227
248
  "examples": [ 10 ]
228
249
  }
@@ -235,14 +256,17 @@
235
256
  "desc": "Get current scroll position in percentage (0.0 <= x <= 1.0)",
236
257
  "returns": {
237
258
  "type": "Object",
259
+ "desc": "An object containing scroll position information in percentage",
238
260
  "definition": {
239
261
  "top": {
240
262
  "type": "Number",
263
+ "required": true,
241
264
  "desc": "Scroll percentage (0.0 <= x <= 1.0) offset from top (vertical)",
242
265
  "examples": [ 0.12 ]
243
266
  },
244
267
  "left": {
245
268
  "type": "Number",
269
+ "required": true,
246
270
  "desc": "Scroll percentage (0.0 <= x <= 1.0) offset from left (horizontal)",
247
271
  "examples": [ 0.92 ]
248
272
  }
@@ -256,14 +280,14 @@
256
280
  "params": {
257
281
  "axis": {
258
282
  "type": "String",
283
+ "required": true,
259
284
  "desc": "Scroll axis",
260
- "values": [ "vertical", "horizontal" ],
261
- "required": true
285
+ "values": [ "vertical", "horizontal" ]
262
286
  },
263
287
  "offset": {
264
288
  "type": "Number",
265
- "desc": "Scroll position offset from top (in pixels)",
266
289
  "required": true,
290
+ "desc": "Scroll position offset from top (in pixels)",
267
291
  "examples": [ 220 ]
268
292
  },
269
293
  "duration": {
@@ -34,15 +34,18 @@
34
34
  "definition": {
35
35
  "position": {
36
36
  "type": "Object",
37
+ "required": true,
37
38
  "desc": "Scroll offset (from top and left)",
38
39
  "definition": {
39
40
  "top": {
40
41
  "type": "Number",
42
+ "required": true,
41
43
  "desc": "Scroll offset from top (vertical)",
42
44
  "examples": [ 120 ]
43
45
  },
44
46
  "left": {
45
47
  "type": "Number",
48
+ "required": true,
46
49
  "desc": "Scroll offset from left (horizontal)",
47
50
  "examples": [ 10 ]
48
51
  }
@@ -51,24 +54,29 @@
51
54
 
52
55
  "direction": {
53
56
  "type": "String",
57
+ "required": true,
54
58
  "desc": "Direction of scroll",
55
59
  "values": [ "up", "down", "left", "right" ]
56
60
  },
57
61
  "directionChanged": {
58
62
  "type": "Boolean",
63
+ "required": true,
59
64
  "desc": "Has scroll direction changed since event was last emitted?"
60
65
  },
61
66
  "delta": {
62
67
  "type": "Object",
68
+ "required": true,
63
69
  "desc": "Delta of distance (in pixels) since event was last emitted",
64
70
  "definition": {
65
71
  "top": {
66
72
  "type": "Number",
73
+ "required": true,
67
74
  "desc": "Vertical delta distance since event was last emitted",
68
75
  "examples": [ 120 ]
69
76
  },
70
77
  "left": {
71
78
  "type": "Number",
79
+ "required": true,
72
80
  "desc": "Horizontal delta distance since event was last emitted",
73
81
  "examples": [ 10 ]
74
82
  }
@@ -77,15 +85,18 @@
77
85
 
78
86
  "inflectionPoint": {
79
87
  "type": "Object",
88
+ "required": true,
80
89
  "desc": "Last scroll offset where scroll direction has changed",
81
90
  "definition": {
82
91
  "top": {
83
92
  "type": "Number",
93
+ "required": true,
84
94
  "desc": "Scroll offset from top (vertical)",
85
95
  "examples": [ 120 ]
86
96
  },
87
97
  "left": {
88
98
  "type": "Number",
99
+ "required": true,
89
100
  "desc": "Scroll offset from left (horizontal)",
90
101
  "examples": [ 10 ]
91
102
  }
@@ -1173,7 +1173,7 @@ export default createComponent({
1173
1173
  function getDialog () {
1174
1174
  const content = [
1175
1175
  h(QField, {
1176
- class: `col-auto ${ state.fieldClass }`,
1176
+ class: `col-auto ${ state.fieldClass.value }`,
1177
1177
  ...innerFieldProps.value,
1178
1178
  for: state.targetUid.value,
1179
1179
  dark: isOptionsDark.value,
@@ -1339,14 +1339,14 @@ export default createComponent({
1339
1339
  function onControlPopupShow (e) {
1340
1340
  e !== void 0 && stop(e)
1341
1341
  emit('popup-show', e)
1342
- state.hasPopupOpen.value = true
1342
+ state.hasPopupOpen = true
1343
1343
  state.onControlFocusin(e)
1344
1344
  }
1345
1345
 
1346
1346
  function onControlPopupHide (e) {
1347
1347
  e !== void 0 && stop(e)
1348
1348
  emit('popup-hide', e)
1349
- state.hasPopupOpen.value = false
1349
+ state.hasPopupOpen = false
1350
1350
  state.onControlFocusout(e)
1351
1351
  }
1352
1352
 
@@ -1418,6 +1418,10 @@ export default createComponent({
1418
1418
  ) {
1419
1419
  return hasDialog === true ? getDialog() : getMenu()
1420
1420
  }
1421
+ else if (state.hasPopupOpen === true) {
1422
+ // explicitly set it otherwise TAB will not blur component
1423
+ state.hasPopupOpen = false
1424
+ }
1421
1425
  },
1422
1426
 
1423
1427
  controlEvents: {
@@ -47,6 +47,22 @@
47
47
  "type": [ "Function", "String" ],
48
48
  "desc": "Property of option which holds the 'value'; If using a function then for best performance, reference it from your scope and do not define it inline",
49
49
  "default": "value",
50
+ "params": {
51
+ "option": {
52
+ "type": [ "String", "Object" ],
53
+ "desc": "The current option being processed",
54
+ "examples": [
55
+ "'BMW'",
56
+ "'Samsung Phone'",
57
+ "{ label: 'BMW', value: 'car', cannotSelect: true }"
58
+ ]
59
+ }
60
+ },
61
+ "returns": {
62
+ "type": "Any",
63
+ "desc": "Value of the current option",
64
+ "examples": [ "'car'", "34" ]
65
+ },
50
66
  "examples": [
51
67
  "option-value=\"modelNumber\"",
52
68
  ":option-value=\"(item) => item === null ? null : item.modelNumber\""
@@ -58,6 +74,22 @@
58
74
  "type": [ "Function", "String" ],
59
75
  "desc": "Property of option which holds the 'label'; If using a function then for best performance, reference it from your scope and do not define it inline",
60
76
  "default": "label",
77
+ "params": {
78
+ "option": {
79
+ "type": [ "String", "Object" ],
80
+ "desc": "The current option being processed",
81
+ "examples": [
82
+ "'BMW'",
83
+ "'Samsung Phone'",
84
+ "{ label: 'BMW', value: 'car', cannotSelect: true }"
85
+ ]
86
+ }
87
+ },
88
+ "returns": {
89
+ "type": "String",
90
+ "desc": "Label of the current option",
91
+ "examples": [ "'BMW'", "'Samsung Phone'" ]
92
+ },
61
93
  "examples": [
62
94
  "option-label=\"itemName\"",
63
95
  ":option-label=\"(item) => item === null ? 'Null value' : item.itemName\""
@@ -69,6 +101,21 @@
69
101
  "type": [ "Function", "String" ],
70
102
  "desc": "Property of option which tells it's disabled; The value of the property must be a Boolean; If using a function then for best performance, reference it from your scope and do not define it inline",
71
103
  "default": "disable",
104
+ "params": {
105
+ "option": {
106
+ "type": [ "String", "Object" ],
107
+ "desc": "The current option being processed",
108
+ "examples": [
109
+ "'BMW'",
110
+ "'Samsung Phone'",
111
+ "{ label: 'BMW', value: 'car', cannotSelect: true }"
112
+ ]
113
+ }
114
+ },
115
+ "returns": {
116
+ "type": "Boolean",
117
+ "desc": "If true, the current option will be disabled"
118
+ },
72
119
  "examples": [
73
120
  "option-disable=\"cannotSelect\"",
74
121
  ":option-disable=\"(item) => item === null ? true : item.cannotSelect\""
@@ -346,6 +393,7 @@
346
393
  "params": {
347
394
  "index": {
348
395
  "type": "Number",
396
+ "required": true,
349
397
  "desc": "Index at which to remove selection",
350
398
  "examples": [ 0 ]
351
399
  }
@@ -358,6 +406,7 @@
358
406
  "params": {
359
407
  "opt": {
360
408
  "type": "Any",
409
+ "required": true,
361
410
  "desc": "Option to add to model",
362
411
  "__exemption": [ "examples" ]
363
412
  }
@@ -399,6 +448,7 @@
399
448
  "params": {
400
449
  "opt": {
401
450
  "type": "Any",
451
+ "required": true,
402
452
  "desc": "Option to add to model",
403
453
  "__exemption": [ "examples" ]
404
454
  }
@@ -411,6 +461,7 @@
411
461
  "params": {
412
462
  "index": {
413
463
  "type": "Number",
464
+ "required": true,
414
465
  "desc": "Index of option from menu",
415
466
  "examples": [ 10 ]
416
467
  }
@@ -437,7 +488,6 @@
437
488
  "value": {
438
489
  "type": "String",
439
490
  "desc": "New text value",
440
- "required": true,
441
491
  "__exemption": [ "examples" ]
442
492
  }
443
493
  }
@@ -452,11 +502,13 @@
452
502
  "definition": {
453
503
  "index": {
454
504
  "type": "Number",
505
+ "required": true,
455
506
  "desc": "Model index at which removal took place",
456
507
  "examples": [ 2 ]
457
508
  },
458
509
  "value": {
459
510
  "type": "Any",
511
+ "required": true,
460
512
  "desc": "The actual value that was removed",
461
513
  "__exemption": [ "examples" ]
462
514
  }
@@ -474,11 +526,13 @@
474
526
  "definition": {
475
527
  "index": {
476
528
  "type": "Number",
529
+ "required": true,
477
530
  "desc": "Model index at which addition took place",
478
531
  "examples": [ 2 ]
479
532
  },
480
533
  "value": {
481
534
  "type": "Any",
535
+ "required": true,
482
536
  "desc": "The actual value that was added",
483
537
  "__exemption": [ "examples" ]
484
538
  }
@@ -501,11 +555,13 @@
501
555
  "params": {
502
556
  "item": {
503
557
  "type": "Any",
558
+ "required": false,
504
559
  "desc": "Item to add",
505
560
  "__exemption": [ "examples" ]
506
561
  },
507
562
  "mode": {
508
563
  "type": "String",
564
+ "required": false,
509
565
  "desc": "Override 'new-value-mode' (prop) behavior should you wish to",
510
566
  "values": [ "add", "add-unique", "toggle" ],
511
567
  "default": "add"
@@ -530,16 +586,19 @@
530
586
  "params": {
531
587
  "callbackFn": {
532
588
  "type": "Function",
589
+ "required": true,
533
590
  "desc": "Callback to call to make the actual updates",
534
591
  "params": null,
535
592
  "returns": null
536
593
  },
537
594
  "afterFn": {
538
595
  "type": "Function",
596
+ "required": false,
539
597
  "desc": "Callback to call at the end after the update has been fully processed by QSelect",
540
598
  "params": {
541
599
  "ref": {
542
600
  "type": "Object",
601
+ "required": true,
543
602
  "desc": "Vue reference to the QSelect which triggered the filtering",
544
603
  "__exemption": [ "examples" ]
545
604
  }
@@ -603,8 +662,8 @@
603
662
  "params": {
604
663
  "index": {
605
664
  "type": "Number",
606
- "desc": "Index at which to remove selection",
607
665
  "required": true,
666
+ "desc": "Index at which to remove selection",
608
667
  "examples": [ 0 ]
609
668
  }
610
669
  }
@@ -615,8 +674,8 @@
615
674
  "params": {
616
675
  "opt": {
617
676
  "type": "Any",
618
- "desc": "Option to add to model",
619
677
  "required": true,
678
+ "desc": "Option to add to model",
620
679
  "__exemption": [ "examples" ]
621
680
  },
622
681
  "unique": {
@@ -632,8 +691,8 @@
632
691
  "params": {
633
692
  "opt": {
634
693
  "type": "Any",
635
- "desc": "Option to add to model",
636
694
  "required": true,
695
+ "desc": "Option to add to model",
637
696
  "__exemption": [ "examples" ]
638
697
  },
639
698
  "keepOpen": {
@@ -648,8 +707,8 @@
648
707
  "params": {
649
708
  "index": {
650
709
  "type": "Number",
651
- "desc": "Index of option from menu",
652
710
  "required": true,
711
+ "desc": "Index of option from menu",
653
712
  "examples": [ 10 ]
654
713
  }
655
714
  }
@@ -676,8 +735,8 @@
676
735
  "params": {
677
736
  "value": {
678
737
  "type": "String",
679
- "desc": "String to filter with",
680
738
  "required": true,
739
+ "desc": "String to filter with",
681
740
  "examples": [ "car" ]
682
741
  }
683
742
  }
@@ -692,6 +751,7 @@
692
751
  "params": {
693
752
  "value": {
694
753
  "type": "String",
754
+ "required": true,
695
755
  "desc": "String to set the input value to",
696
756
  "examples": [ "hotel" ]
697
757
  },
@@ -707,8 +767,8 @@
707
767
  "params": {
708
768
  "opt": {
709
769
  "type": "Any",
710
- "desc": "Option entry",
711
770
  "required": true,
771
+ "desc": "Option entry",
712
772
  "__exemption": [ "examples" ]
713
773
  }
714
774
  },
@@ -723,8 +783,8 @@
723
783
  "params": {
724
784
  "opt": {
725
785
  "type": "Any",
726
- "desc": "Option entry",
727
786
  "required": true,
787
+ "desc": "Option entry",
728
788
  "__exemption": [ "examples" ]
729
789
  }
730
790
  },
@@ -740,8 +800,8 @@
740
800
  "params": {
741
801
  "opt": {
742
802
  "type": "Any",
743
- "desc": "Option entry",
744
803
  "required": true,
804
+ "desc": "Option entry",
745
805
  "__exemption": [ "examples" ]
746
806
  }
747
807
  },
@@ -757,8 +817,8 @@
757
817
  "params": {
758
818
  "opt": {
759
819
  "type": "Any",
760
- "desc": "Option entry",
761
820
  "required": true,
821
+ "desc": "Option entry",
762
822
  "__exemption": [ "examples" ]
763
823
  }
764
824
  },
@@ -774,8 +834,8 @@
774
834
  "params": {
775
835
  "opt": {
776
836
  "type": "Any",
777
- "desc": "Option entry",
778
837
  "required": true,
838
+ "desc": "Option entry",
779
839
  "__exemption": [ "examples" ]
780
840
  }
781
841
  },
@@ -33,11 +33,8 @@
33
33
  },
34
34
 
35
35
  "animation-speed": {
36
- "type": [ "String", "Number" ],
37
- "desc": "Animation speed (in milliseconds, without unit)",
36
+ "extends": "animation-speed",
38
37
  "default": 300,
39
- "examples": [ 500, "1200" ],
40
- "category": "style",
41
38
  "addedIn": "v2.2"
42
39
  },
43
40