quasar 2.18.7 → 2.19.0

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 (857) hide show
  1. package/README.md +2 -0
  2. package/dist/api/BottomSheet.json +1 -1
  3. package/dist/api/Dialog.json +1 -1
  4. package/dist/api/Intersection.json +1 -1
  5. package/dist/api/Lang.json +1 -1
  6. package/dist/api/LocalStorage.json +1 -1
  7. package/dist/api/Notify.json +1 -1
  8. package/dist/api/QBtnDropdown.json +1 -1
  9. package/dist/api/QBtnToggle.json +1 -1
  10. package/dist/api/QCarousel.json +1 -1
  11. package/dist/api/QCarouselControl.json +1 -1
  12. package/dist/api/QChatMessage.json +1 -1
  13. package/dist/api/QCheckbox.json +1 -1
  14. package/dist/api/QColor.json +1 -1
  15. package/dist/api/QDate.json +1 -1
  16. package/dist/api/QEditor.json +1 -1
  17. package/dist/api/QField.json +1 -1
  18. package/dist/api/QFile.json +1 -1
  19. package/dist/api/QInput.json +1 -1
  20. package/dist/api/QIntersection.json +1 -1
  21. package/dist/api/QMenu.json +1 -1
  22. package/dist/api/QOptionGroup.json +1 -1
  23. package/dist/api/QPageScroller.json +1 -1
  24. package/dist/api/QPageSticky.json +1 -1
  25. package/dist/api/QPopupEdit.json +1 -1
  26. package/dist/api/QRange.json +1 -1
  27. package/dist/api/QRating.json +1 -1
  28. package/dist/api/QScrollArea.json +1 -1
  29. package/dist/api/QSelect.json +1 -1
  30. package/dist/api/QSlider.json +1 -1
  31. package/dist/api/QSplitter.json +1 -1
  32. package/dist/api/QStepper.json +1 -1
  33. package/dist/api/QTabPanels.json +1 -1
  34. package/dist/api/QTable.json +1 -1
  35. package/dist/api/QTime.json +1 -1
  36. package/dist/api/QToggle.json +1 -1
  37. package/dist/api/QTooltip.json +1 -1
  38. package/dist/api/QTree.json +1 -1
  39. package/dist/api/QUploader.json +1 -1
  40. package/dist/api/QVirtualScroll.json +1 -1
  41. package/dist/api/Ripple.json +1 -1
  42. package/dist/api/SessionStorage.json +1 -1
  43. package/dist/icon-set/bootstrap-icons.umd.prod.js +5 -6
  44. package/dist/icon-set/eva-icons.umd.prod.js +5 -6
  45. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +5 -6
  46. package/dist/icon-set/fontawesome-v5.umd.prod.js +5 -6
  47. package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +5 -6
  48. package/dist/icon-set/fontawesome-v6.umd.prod.js +5 -6
  49. package/dist/icon-set/ionicons-v4.umd.prod.js +5 -6
  50. package/dist/icon-set/line-awesome.umd.prod.js +5 -6
  51. package/dist/icon-set/material-icons-outlined.umd.prod.js +5 -6
  52. package/dist/icon-set/material-icons-round.umd.prod.js +5 -6
  53. package/dist/icon-set/material-icons-sharp.umd.prod.js +5 -6
  54. package/dist/icon-set/material-icons.umd.prod.js +5 -6
  55. package/dist/icon-set/material-symbols-outlined.umd.prod.js +5 -6
  56. package/dist/icon-set/material-symbols-rounded.umd.prod.js +5 -6
  57. package/dist/icon-set/material-symbols-sharp.umd.prod.js +5 -6
  58. package/dist/icon-set/mdi-v3.umd.prod.js +5 -6
  59. package/dist/icon-set/mdi-v4.umd.prod.js +5 -6
  60. package/dist/icon-set/mdi-v5.umd.prod.js +5 -6
  61. package/dist/icon-set/mdi-v6.umd.prod.js +5 -6
  62. package/dist/icon-set/mdi-v7.umd.prod.js +5 -6
  63. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +5 -6
  64. package/dist/icon-set/svg-eva-icons.umd.prod.js +5 -6
  65. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +5 -6
  66. package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +5 -6
  67. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +5 -6
  68. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +5 -6
  69. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +5 -6
  70. package/dist/icon-set/svg-line-awesome.umd.prod.js +5 -6
  71. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +5 -6
  72. package/dist/icon-set/svg-material-icons-round.umd.prod.js +5 -6
  73. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +5 -6
  74. package/dist/icon-set/svg-material-icons.umd.prod.js +5 -6
  75. package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +5 -6
  76. package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +5 -6
  77. package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +5 -6
  78. package/dist/icon-set/svg-mdi-v6.umd.prod.js +5 -6
  79. package/dist/icon-set/svg-mdi-v7.umd.prod.js +5 -6
  80. package/dist/icon-set/svg-themify.umd.prod.js +5 -6
  81. package/dist/icon-set/themify.umd.prod.js +5 -6
  82. package/dist/lang/ar-TN.umd.prod.js +5 -6
  83. package/dist/lang/ar.umd.prod.js +5 -6
  84. package/dist/lang/az-Latn.umd.prod.js +5 -6
  85. package/dist/lang/bg.umd.prod.js +5 -6
  86. package/dist/lang/bn.umd.prod.js +5 -6
  87. package/dist/lang/bs-BA.umd.prod.js +5 -6
  88. package/dist/lang/ca.umd.prod.js +5 -6
  89. package/dist/lang/cs.umd.prod.js +5 -6
  90. package/dist/lang/da.umd.prod.js +5 -6
  91. package/dist/lang/de-CH.umd.prod.js +5 -6
  92. package/dist/lang/de-DE.umd.prod.js +5 -6
  93. package/dist/lang/de.umd.prod.js +5 -6
  94. package/dist/lang/el.umd.prod.js +5 -6
  95. package/dist/lang/en-GB.umd.prod.js +5 -6
  96. package/dist/lang/en-US.umd.prod.js +5 -6
  97. package/dist/lang/eo.umd.prod.js +5 -6
  98. package/dist/lang/es.umd.prod.js +5 -6
  99. package/dist/lang/et.umd.prod.js +5 -6
  100. package/dist/lang/eu.umd.prod.js +5 -6
  101. package/dist/lang/fa-IR.umd.prod.js +5 -6
  102. package/dist/lang/fa.umd.prod.js +5 -6
  103. package/dist/lang/fi.umd.prod.js +5 -6
  104. package/dist/lang/fr.umd.prod.js +5 -6
  105. package/dist/lang/gn.umd.prod.js +5 -6
  106. package/dist/lang/he.umd.prod.js +5 -6
  107. package/dist/lang/hi.umd.prod.js +5 -6
  108. package/dist/lang/hr.umd.prod.js +5 -6
  109. package/dist/lang/hu.umd.prod.js +5 -6
  110. package/dist/lang/id.umd.prod.js +5 -6
  111. package/dist/lang/is.umd.prod.js +5 -6
  112. package/dist/lang/it.umd.prod.js +5 -6
  113. package/dist/lang/ja.umd.prod.js +5 -6
  114. package/dist/lang/kk.umd.prod.js +5 -6
  115. package/dist/lang/km.umd.prod.js +5 -6
  116. package/dist/lang/ko-KR.umd.prod.js +5 -6
  117. package/dist/lang/kur-CKB.umd.prod.js +5 -6
  118. package/dist/lang/lt.umd.prod.js +5 -6
  119. package/dist/lang/lu.umd.prod.js +5 -6
  120. package/dist/lang/lv.umd.prod.js +5 -6
  121. package/dist/lang/mk.umd.prod.js +5 -6
  122. package/dist/lang/ml.umd.prod.js +5 -6
  123. package/dist/lang/mm.umd.prod.js +5 -6
  124. package/dist/lang/ms-MY.umd.prod.js +5 -6
  125. package/dist/lang/ms.umd.prod.js +5 -6
  126. package/dist/lang/my.umd.prod.js +5 -6
  127. package/dist/lang/nb-NO.umd.prod.js +5 -6
  128. package/dist/lang/nl.umd.prod.js +5 -6
  129. package/dist/lang/pl.umd.prod.js +5 -6
  130. package/dist/lang/pt-BR.umd.prod.js +5 -6
  131. package/dist/lang/pt.umd.prod.js +5 -6
  132. package/dist/lang/ro.umd.prod.js +5 -6
  133. package/dist/lang/ru.umd.prod.js +5 -6
  134. package/dist/lang/sk.umd.prod.js +5 -6
  135. package/dist/lang/sl.umd.prod.js +5 -6
  136. package/dist/lang/sm.umd.prod.js +5 -6
  137. package/dist/lang/sq.umd.prod.js +5 -6
  138. package/dist/lang/sr-CYR.umd.prod.js +5 -6
  139. package/dist/lang/sr.umd.prod.js +5 -6
  140. package/dist/lang/sv.umd.prod.js +5 -6
  141. package/dist/lang/ta.umd.prod.js +5 -6
  142. package/dist/lang/th.umd.prod.js +5 -6
  143. package/dist/lang/tl.umd.prod.js +5 -6
  144. package/dist/lang/tr.umd.prod.js +5 -6
  145. package/dist/lang/ug.umd.prod.js +5 -6
  146. package/dist/lang/uk.umd.prod.js +5 -6
  147. package/dist/lang/ur-PK.umd.prod.js +5 -6
  148. package/dist/lang/uz-Cyrl.umd.prod.js +5 -6
  149. package/dist/lang/uz-Latn.umd.prod.js +5 -6
  150. package/dist/lang/vi.umd.prod.js +5 -6
  151. package/dist/lang/zh-CN.umd.prod.js +5 -6
  152. package/dist/lang/zh-TW.umd.prod.js +5 -6
  153. package/dist/quasar.addon.prod.css +1 -1
  154. package/dist/quasar.addon.rtl.prod.css +1 -1
  155. package/dist/quasar.client.js +24830 -29220
  156. package/dist/quasar.css +24 -30
  157. package/dist/quasar.prod.css +1 -1
  158. package/dist/quasar.rtl.css +25 -30
  159. package/dist/quasar.rtl.prod.css +1 -1
  160. package/dist/quasar.sass +7 -16
  161. package/dist/quasar.server.prod.cjs +78 -79
  162. package/dist/quasar.server.prod.js +78 -79
  163. package/dist/quasar.umd.js +25876 -29791
  164. package/dist/quasar.umd.prod.js +78 -79
  165. package/dist/types/api/dialog.d.ts +1 -1
  166. package/dist/types/api/qinput.d.ts +1 -1
  167. package/dist/types/api/qtable.d.ts +1 -1
  168. package/dist/types/api/qtree.d.ts +1 -1
  169. package/dist/types/api/quploader.d.ts +1 -1
  170. package/dist/types/api/slider.d.ts +2 -4
  171. package/dist/types/api/validation.d.ts +1 -1
  172. package/dist/types/api/web-storage.d.ts +6 -6
  173. package/dist/types/feature-flag.d.ts +1 -1
  174. package/dist/types/globals.d.ts +7 -4
  175. package/dist/types/index.d.ts +126 -414
  176. package/dist/types/lang.d.ts +3 -3
  177. package/dist/types/ts-helpers.d.ts +4 -9
  178. package/dist/types/utils/colors.d.ts +1 -1
  179. package/dist/types/utils/date.d.ts +8 -8
  180. package/dist/types/utils/dom.d.ts +1 -1
  181. package/dist/types/utils/run-sequential-promises.d.ts +12 -12
  182. package/dist/types/utils/scroll.d.ts +5 -5
  183. package/dist/types/utils.d.ts +16 -19
  184. package/dist/web-types/web-types.json +1 -1
  185. package/icon-set/bootstrap-icons.js +1 -4
  186. package/icon-set/svg-bootstrap-icons.js +1 -4
  187. package/icon-set/svg-fontawesome-v5.js +0 -1
  188. package/icon-set/svg-ionicons-v5.js +2 -2
  189. package/lang/ar-TN.js +10 -8
  190. package/lang/ar.js +10 -8
  191. package/lang/az-Latn.js +13 -9
  192. package/lang/bg.js +10 -8
  193. package/lang/bn.js +14 -9
  194. package/lang/bs-BA.js +13 -9
  195. package/lang/ca.js +18 -14
  196. package/lang/cs.js +9 -7
  197. package/lang/da.js +10 -8
  198. package/lang/de-CH.js +13 -9
  199. package/lang/de-DE.js +13 -9
  200. package/lang/de.js +13 -9
  201. package/lang/el.js +10 -8
  202. package/lang/en-GB.js +10 -8
  203. package/lang/en-US.js +10 -8
  204. package/lang/eo.js +14 -9
  205. package/lang/es.js +10 -8
  206. package/lang/et.js +15 -12
  207. package/lang/eu.js +15 -12
  208. package/lang/fa-IR.js +16 -8
  209. package/lang/fa.js +16 -8
  210. package/lang/fi.js +17 -8
  211. package/lang/fr.js +21 -13
  212. package/lang/gn.js +14 -12
  213. package/lang/he.js +15 -10
  214. package/lang/hi.js +8 -8
  215. package/lang/hr.js +13 -9
  216. package/lang/hu.js +10 -8
  217. package/lang/id.js +11 -9
  218. package/lang/is.js +13 -9
  219. package/lang/it.js +14 -9
  220. package/lang/ja.js +13 -8
  221. package/lang/kk.js +22 -11
  222. package/lang/km.js +9 -8
  223. package/lang/ko-KR.js +9 -10
  224. package/lang/kur-CKB.js +16 -17
  225. package/lang/lt.js +26 -19
  226. package/lang/lu.js +13 -9
  227. package/lang/lv.js +13 -9
  228. package/lang/mk.js +10 -8
  229. package/lang/ml.js +15 -14
  230. package/lang/mm.js +16 -13
  231. package/lang/ms-MY.js +16 -11
  232. package/lang/ms.js +10 -8
  233. package/lang/my.js +15 -8
  234. package/lang/nb-NO.js +10 -8
  235. package/lang/nl.js +13 -9
  236. package/lang/pl.js +13 -9
  237. package/lang/pt-BR.js +17 -10
  238. package/lang/pt.js +17 -10
  239. package/lang/ro.js +10 -8
  240. package/lang/ru.js +25 -12
  241. package/lang/sk.js +18 -9
  242. package/lang/sl.js +12 -8
  243. package/lang/sm.js +51 -47
  244. package/lang/sq.js +13 -9
  245. package/lang/sr-CYR.js +10 -8
  246. package/lang/sr.js +10 -8
  247. package/lang/sv.js +10 -8
  248. package/lang/ta.js +10 -8
  249. package/lang/th.js +12 -11
  250. package/lang/tl.js +10 -8
  251. package/lang/tr.js +8 -5
  252. package/lang/ug.js +16 -8
  253. package/lang/uk.js +22 -11
  254. package/lang/ur-PK.js +13 -11
  255. package/lang/uz-Cyrl.js +5 -5
  256. package/lang/uz-Latn.js +24 -24
  257. package/lang/vi.js +13 -9
  258. package/lang/zh-CN.js +18 -9
  259. package/lang/zh-TW.js +20 -10
  260. package/package.json +50 -64
  261. package/src/api.extends.json +15 -12
  262. package/src/components/ajax-bar/QAjaxBar.js +91 -65
  263. package/src/components/ajax-bar/QAjaxBar.json +2 -2
  264. package/src/components/ajax-bar/index.js +1 -3
  265. package/src/components/avatar/QAvatar.js +36 -28
  266. package/src/components/avatar/QAvatar.json +2 -2
  267. package/src/components/avatar/QAvatar.test.js +29 -78
  268. package/src/components/avatar/index.js +1 -3
  269. package/src/components/badge/QBadge.js +33 -26
  270. package/src/components/badge/QBadge.json +3 -3
  271. package/src/components/badge/QBadge.test.js +40 -95
  272. package/src/components/badge/index.js +1 -3
  273. package/src/components/banner/QBanner.js +46 -25
  274. package/src/components/banner/QBanner.test.js +14 -35
  275. package/src/components/banner/index.js +1 -3
  276. package/src/components/bar/QBar.js +21 -11
  277. package/src/components/bar/QBar.test.js +6 -17
  278. package/src/components/bar/index.js +1 -3
  279. package/src/components/breadcrumbs/QBreadcrumbs.js +44 -32
  280. package/src/components/breadcrumbs/QBreadcrumbs.json +10 -3
  281. package/src/components/breadcrumbs/QBreadcrumbs.test.js +56 -69
  282. package/src/components/breadcrumbs/QBreadcrumbsEl.js +28 -22
  283. package/src/components/breadcrumbs/QBreadcrumbsEl.json +5 -8
  284. package/src/components/breadcrumbs/QBreadcrumbsEl.test.js +60 -134
  285. package/src/components/breadcrumbs/index.js +1 -4
  286. package/src/components/btn/QBtn.js +159 -103
  287. package/src/components/btn/QBtn.json +3 -6
  288. package/src/components/btn/QBtn.test.js +269 -496
  289. package/src/components/btn/index.js +1 -3
  290. package/src/components/btn/use-btn.js +82 -70
  291. package/src/components/btn/use-btn.json +33 -16
  292. package/src/components/btn/use-btn.test.js +30 -47
  293. package/src/components/btn-dropdown/QBtnDropdown.js +143 -104
  294. package/src/components/btn-dropdown/QBtnDropdown.json +41 -16
  295. package/src/components/btn-dropdown/index.js +1 -3
  296. package/src/components/btn-group/QBtnGroup.js +18 -6
  297. package/src/components/btn-group/index.js +1 -3
  298. package/src/components/btn-toggle/QBtnToggle.js +80 -61
  299. package/src/components/btn-toggle/QBtnToggle.json +16 -9
  300. package/src/components/btn-toggle/index.js +1 -3
  301. package/src/components/card/QCard.js +14 -9
  302. package/src/components/card/QCard.json +1 -1
  303. package/src/components/card/QCardActions.js +8 -5
  304. package/src/components/card/QCardActions.json +9 -1
  305. package/src/components/card/QCardSection.js +5 -4
  306. package/src/components/card/QCardSection.json +1 -1
  307. package/src/components/card/index.js +1 -5
  308. package/src/components/carousel/QCarousel.js +194 -125
  309. package/src/components/carousel/QCarousel.json +10 -11
  310. package/src/components/carousel/QCarouselControl.js +26 -13
  311. package/src/components/carousel/QCarouselControl.json +10 -5
  312. package/src/components/carousel/QCarouselSlide.js +13 -10
  313. package/src/components/carousel/QCarouselSlide.json +1 -1
  314. package/src/components/carousel/index.js +1 -5
  315. package/src/components/chat/QChatMessage.js +62 -57
  316. package/src/components/chat/QChatMessage.json +8 -5
  317. package/src/components/chat/index.js +1 -3
  318. package/src/components/checkbox/QCheckbox.js +56 -41
  319. package/src/components/checkbox/QCheckbox.json +1 -1
  320. package/src/components/checkbox/index.js +1 -3
  321. package/src/components/checkbox/use-checkbox.js +112 -83
  322. package/src/components/checkbox/use-checkbox.json +15 -12
  323. package/src/components/chip/QChip.js +101 -73
  324. package/src/components/chip/QChip.json +6 -6
  325. package/src/components/chip/QChip.test.js +72 -180
  326. package/src/components/chip/index.js +1 -3
  327. package/src/components/circular-progress/QCircularProgress.js +92 -57
  328. package/src/components/circular-progress/QCircularProgress.json +2 -2
  329. package/src/components/circular-progress/index.js +1 -3
  330. package/src/components/color/QColor.js +550 -367
  331. package/src/components/color/QColor.json +8 -8
  332. package/src/components/color/index.js +1 -3
  333. package/src/components/date/QDate.js +902 -607
  334. package/src/components/date/QDate.json +32 -23
  335. package/src/components/date/index.js +1 -3
  336. package/src/components/date/use-datetime.js +12 -14
  337. package/src/components/date/use-datetime.json +7 -7
  338. package/src/components/dialog/QDialog.js +178 -139
  339. package/src/components/dialog/QDialog.json +8 -4
  340. package/src/components/dialog/QDialog.test.js +123 -228
  341. package/src/components/dialog/index.js +1 -3
  342. package/src/components/drawer/QDrawer.js +306 -242
  343. package/src/components/drawer/QDrawer.json +4 -4
  344. package/src/components/drawer/index.js +1 -3
  345. package/src/components/editor/QEditor.js +409 -190
  346. package/src/components/editor/QEditor.json +33 -32
  347. package/src/components/editor/editor-caret.js +78 -83
  348. package/src/components/editor/editor-utils.js +176 -130
  349. package/src/components/editor/index.js +1 -3
  350. package/src/components/expansion-item/QExpansionItem.js +149 -103
  351. package/src/components/expansion-item/QExpansionItem.json +21 -24
  352. package/src/components/expansion-item/index.js +1 -3
  353. package/src/components/fab/QFab.js +86 -54
  354. package/src/components/fab/QFab.json +6 -3
  355. package/src/components/fab/QFabAction.js +34 -29
  356. package/src/components/fab/QFabAction.json +4 -7
  357. package/src/components/fab/index.js +1 -4
  358. package/src/components/fab/use-fab.js +20 -20
  359. package/src/components/fab/use-fab.json +10 -13
  360. package/src/components/field/QField.js +7 -5
  361. package/src/components/field/QField.json +6 -6
  362. package/src/components/field/QField.sass +5 -6
  363. package/src/components/field/index.js +1 -3
  364. package/src/components/file/QFile.js +95 -74
  365. package/src/components/file/QFile.json +17 -14
  366. package/src/components/file/index.js +1 -3
  367. package/src/components/footer/QFooter.js +110 -67
  368. package/src/components/footer/QFooter.json +2 -2
  369. package/src/components/footer/index.js +1 -3
  370. package/src/components/form/QForm.js +93 -58
  371. package/src/components/form/QForm.json +2 -2
  372. package/src/components/form/QFormChildMixin.js +10 -11
  373. package/src/components/form/QFormChildMixin.json +2 -2
  374. package/src/components/form/index.js +1 -4
  375. package/src/components/header/QHeader.js +93 -56
  376. package/src/components/header/QHeader.json +2 -2
  377. package/src/components/header/index.js +1 -3
  378. package/src/components/icon/QIcon.js +70 -57
  379. package/src/components/icon/QIcon.json +2 -2
  380. package/src/components/icon/index.js +1 -3
  381. package/src/components/img/QImg.js +104 -98
  382. package/src/components/img/QImg.json +20 -18
  383. package/src/components/img/index.js +1 -3
  384. package/src/components/infinite-scroll/QInfiniteScroll.js +123 -64
  385. package/src/components/infinite-scroll/QInfiniteScroll.json +1 -1
  386. package/src/components/infinite-scroll/index.js +1 -3
  387. package/src/components/inner-loading/QInnerLoading.js +31 -23
  388. package/src/components/inner-loading/QInnerLoading.json +9 -9
  389. package/src/components/inner-loading/index.js +1 -3
  390. package/src/components/input/QInput.js +179 -137
  391. package/src/components/input/QInput.json +25 -15
  392. package/src/components/input/index.js +1 -3
  393. package/src/components/input/use-mask.js +328 -243
  394. package/src/components/input/use-mask.json +16 -8
  395. package/src/components/intersection/QIntersection.js +45 -28
  396. package/src/components/intersection/QIntersection.json +7 -10
  397. package/src/components/intersection/index.js +1 -3
  398. package/src/components/item/QItem.js +60 -52
  399. package/src/components/item/QItem.json +6 -9
  400. package/src/components/item/QItemLabel.js +23 -15
  401. package/src/components/item/QItemLabel.json +1 -1
  402. package/src/components/item/QItemSection.js +11 -8
  403. package/src/components/item/QList.js +21 -13
  404. package/src/components/item/QList.json +1 -1
  405. package/src/components/item/QList.test.js +7 -11
  406. package/src/components/item/index.js +1 -7
  407. package/src/components/knob/QKnob.js +86 -76
  408. package/src/components/knob/QKnob.json +6 -3
  409. package/src/components/knob/index.js +1 -3
  410. package/src/components/layout/QLayout.js +98 -69
  411. package/src/components/layout/QLayout.json +2 -2
  412. package/src/components/layout/index.js +1 -3
  413. package/src/components/linear-progress/QLinearProgress.js +78 -47
  414. package/src/components/linear-progress/QLinearProgress.json +3 -3
  415. package/src/components/linear-progress/index.js +1 -3
  416. package/src/components/markup-table/QMarkupTable.js +25 -17
  417. package/src/components/markup-table/QMarkupTable.json +2 -2
  418. package/src/components/markup-table/index.js +1 -3
  419. package/src/components/menu/QMenu.js +144 -100
  420. package/src/components/menu/QMenu.json +39 -10
  421. package/src/components/menu/index.js +1 -3
  422. package/src/components/no-ssr/QNoSsr.js +5 -5
  423. package/src/components/no-ssr/QNoSsr.json +2 -2
  424. package/src/components/no-ssr/index.js +1 -3
  425. package/src/components/option-group/QOptionGroup.js +84 -66
  426. package/src/components/option-group/QOptionGroup.json +35 -21
  427. package/src/components/option-group/index.js +1 -3
  428. package/src/components/page/QPage.js +35 -22
  429. package/src/components/page/QPage.json +1 -1
  430. package/src/components/page/QPageContainer.js +24 -11
  431. package/src/components/page/index.js +1 -4
  432. package/src/components/page-scroller/QPageScroller.js +49 -32
  433. package/src/components/page-scroller/QPageScroller.json +2 -2
  434. package/src/components/page-scroller/index.js +1 -3
  435. package/src/components/page-sticky/QPageSticky.js +1 -1
  436. package/src/components/page-sticky/QPageSticky.json +9 -4
  437. package/src/components/page-sticky/index.js +1 -3
  438. package/src/components/page-sticky/use-page-sticky.js +47 -36
  439. package/src/components/pagination/QPagination.js +210 -146
  440. package/src/components/pagination/QPagination.json +35 -21
  441. package/src/components/pagination/index.js +1 -3
  442. package/src/components/parallax/QParallax.js +81 -56
  443. package/src/components/parallax/index.js +1 -3
  444. package/src/components/popup-edit/QPopupEdit.js +88 -59
  445. package/src/components/popup-edit/QPopupEdit.json +40 -16
  446. package/src/components/popup-edit/index.js +1 -3
  447. package/src/components/popup-proxy/QPopupProxy.js +30 -19
  448. package/src/components/popup-proxy/QPopupProxy.json +3 -3
  449. package/src/components/popup-proxy/index.js +1 -3
  450. package/src/components/pull-to-refresh/QPullToRefresh.js +71 -49
  451. package/src/components/pull-to-refresh/index.js +1 -3
  452. package/src/components/radio/QRadio.js +133 -95
  453. package/src/components/radio/QRadio.json +11 -8
  454. package/src/components/radio/index.js +1 -3
  455. package/src/components/range/QRange.js +151 -104
  456. package/src/components/range/QRange.json +9 -9
  457. package/src/components/range/index.js +1 -3
  458. package/src/components/rating/QRating.js +171 -112
  459. package/src/components/rating/QRating.json +19 -12
  460. package/src/components/rating/index.js +1 -3
  461. package/src/components/resize-observer/QResizeObserver.js +52 -30
  462. package/src/components/resize-observer/QResizeObserver.json +2 -2
  463. package/src/components/resize-observer/index.js +1 -3
  464. package/src/components/responsive/QResponsive.js +27 -14
  465. package/src/components/responsive/QResponsive.json +1 -1
  466. package/src/components/responsive/index.js +1 -3
  467. package/src/components/scroll-area/QScrollArea.js +279 -192
  468. package/src/components/scroll-area/QScrollArea.json +31 -21
  469. package/src/components/scroll-area/ScrollAreaControls.js +6 -11
  470. package/src/components/scroll-area/index.js +1 -3
  471. package/src/components/scroll-observer/QScrollObserver.js +46 -26
  472. package/src/components/scroll-observer/QScrollObserver.json +4 -4
  473. package/src/components/scroll-observer/index.js +1 -3
  474. package/src/components/select/QSelect.js +710 -519
  475. package/src/components/select/QSelect.json +70 -45
  476. package/src/components/select/index.js +1 -3
  477. package/src/components/separator/QSeparator.js +34 -30
  478. package/src/components/separator/QSeparator.json +4 -4
  479. package/src/components/separator/index.js +1 -3
  480. package/src/components/skeleton/QSkeleton.js +49 -23
  481. package/src/components/skeleton/QSkeleton.json +26 -9
  482. package/src/components/skeleton/index.js +1 -3
  483. package/src/components/slide-item/QSlideItem.js +121 -94
  484. package/src/components/slide-item/QSlideItem.json +2 -2
  485. package/src/components/slide-item/index.js +1 -3
  486. package/src/components/slide-transition/QSlideTransition.js +34 -26
  487. package/src/components/slide-transition/index.js +1 -3
  488. package/src/components/slider/QSlider.js +64 -43
  489. package/src/components/slider/QSlider.json +6 -6
  490. package/src/components/slider/index.js +1 -3
  491. package/src/components/slider/use-slider.js +327 -220
  492. package/src/components/slider/use-slider.json +32 -32
  493. package/src/components/space/QSpace.js +1 -1
  494. package/src/components/space/QSpace.test.js +1 -4
  495. package/src/components/space/index.js +1 -3
  496. package/src/components/spinner/QSpinner.js +23 -18
  497. package/src/components/spinner/QSpinner.json +1 -1
  498. package/src/components/spinner/QSpinner.test.js +11 -27
  499. package/src/components/spinner/QSpinnerAudio.js +13 -11
  500. package/src/components/spinner/QSpinnerAudio.json +1 -1
  501. package/src/components/spinner/QSpinnerAudio.test.js +9 -21
  502. package/src/components/spinner/QSpinnerBall.js +13 -11
  503. package/src/components/spinner/QSpinnerBall.json +1 -1
  504. package/src/components/spinner/QSpinnerBall.test.js +9 -21
  505. package/src/components/spinner/QSpinnerBars.js +13 -11
  506. package/src/components/spinner/QSpinnerBars.json +1 -1
  507. package/src/components/spinner/QSpinnerBars.test.js +9 -21
  508. package/src/components/spinner/QSpinnerBox.js +13 -11
  509. package/src/components/spinner/QSpinnerBox.json +1 -1
  510. package/src/components/spinner/QSpinnerBox.test.js +9 -21
  511. package/src/components/spinner/QSpinnerClock.js +13 -11
  512. package/src/components/spinner/QSpinnerClock.json +1 -1
  513. package/src/components/spinner/QSpinnerClock.test.js +9 -21
  514. package/src/components/spinner/QSpinnerComment.js +13 -11
  515. package/src/components/spinner/QSpinnerComment.json +1 -1
  516. package/src/components/spinner/QSpinnerComment.test.js +9 -21
  517. package/src/components/spinner/QSpinnerCube.js +13 -11
  518. package/src/components/spinner/QSpinnerCube.json +1 -1
  519. package/src/components/spinner/QSpinnerCube.test.js +9 -21
  520. package/src/components/spinner/QSpinnerDots.js +13 -11
  521. package/src/components/spinner/QSpinnerDots.json +1 -1
  522. package/src/components/spinner/QSpinnerDots.test.js +9 -21
  523. package/src/components/spinner/QSpinnerFacebook.js +13 -11
  524. package/src/components/spinner/QSpinnerFacebook.json +1 -1
  525. package/src/components/spinner/QSpinnerFacebook.test.js +9 -21
  526. package/src/components/spinner/QSpinnerGears.js +13 -11
  527. package/src/components/spinner/QSpinnerGears.json +1 -1
  528. package/src/components/spinner/QSpinnerGears.test.js +9 -21
  529. package/src/components/spinner/QSpinnerGrid.js +13 -11
  530. package/src/components/spinner/QSpinnerGrid.json +1 -1
  531. package/src/components/spinner/QSpinnerGrid.test.js +9 -21
  532. package/src/components/spinner/QSpinnerHearts.js +13 -11
  533. package/src/components/spinner/QSpinnerHearts.json +1 -1
  534. package/src/components/spinner/QSpinnerHearts.test.js +9 -21
  535. package/src/components/spinner/QSpinnerHourglass.js +13 -11
  536. package/src/components/spinner/QSpinnerHourglass.json +1 -1
  537. package/src/components/spinner/QSpinnerHourglass.test.js +9 -21
  538. package/src/components/spinner/QSpinnerInfinity.js +12 -10
  539. package/src/components/spinner/QSpinnerInfinity.json +1 -1
  540. package/src/components/spinner/QSpinnerInfinity.test.js +9 -21
  541. package/src/components/spinner/QSpinnerIos.js +13 -11
  542. package/src/components/spinner/QSpinnerIos.json +1 -1
  543. package/src/components/spinner/QSpinnerIos.test.js +9 -21
  544. package/src/components/spinner/QSpinnerOrbit.js +13 -11
  545. package/src/components/spinner/QSpinnerOrbit.json +1 -1
  546. package/src/components/spinner/QSpinnerOrbit.test.js +9 -21
  547. package/src/components/spinner/QSpinnerOval.js +13 -11
  548. package/src/components/spinner/QSpinnerOval.json +1 -1
  549. package/src/components/spinner/QSpinnerOval.test.js +9 -21
  550. package/src/components/spinner/QSpinnerPie.js +13 -11
  551. package/src/components/spinner/QSpinnerPie.json +1 -1
  552. package/src/components/spinner/QSpinnerPie.test.js +9 -21
  553. package/src/components/spinner/QSpinnerPuff.js +13 -11
  554. package/src/components/spinner/QSpinnerPuff.json +1 -1
  555. package/src/components/spinner/QSpinnerPuff.test.js +9 -21
  556. package/src/components/spinner/QSpinnerRadio.js +13 -11
  557. package/src/components/spinner/QSpinnerRadio.json +1 -1
  558. package/src/components/spinner/QSpinnerRadio.test.js +9 -21
  559. package/src/components/spinner/QSpinnerRings.js +13 -11
  560. package/src/components/spinner/QSpinnerRings.json +1 -1
  561. package/src/components/spinner/QSpinnerRings.test.js +9 -21
  562. package/src/components/spinner/QSpinnerTail.js +12 -10
  563. package/src/components/spinner/QSpinnerTail.json +1 -1
  564. package/src/components/spinner/QSpinnerTail.test.js +9 -21
  565. package/src/components/spinner/index.js +0 -1
  566. package/src/components/spinner/spinner.json +2 -2
  567. package/src/components/spinner/use-spinner.js +7 -7
  568. package/src/components/spinner/use-spinner.test.js +1 -1
  569. package/src/components/splitter/QSplitter.js +133 -94
  570. package/src/components/splitter/QSplitter.json +10 -19
  571. package/src/components/splitter/index.js +1 -3
  572. package/src/components/stepper/QStep.js +65 -42
  573. package/src/components/stepper/QStep.json +5 -5
  574. package/src/components/stepper/QStepper.js +62 -39
  575. package/src/components/stepper/QStepper.json +2 -2
  576. package/src/components/stepper/QStepperNavigation.js +1 -1
  577. package/src/components/stepper/StepHeader.js +87 -67
  578. package/src/components/stepper/index.js +1 -5
  579. package/src/components/tab-panels/QTabPanel.js +3 -2
  580. package/src/components/tab-panels/QTabPanel.json +1 -1
  581. package/src/components/tab-panels/QTabPanels.js +12 -6
  582. package/src/components/tab-panels/QTabPanels.json +1 -1
  583. package/src/components/tab-panels/index.js +1 -4
  584. package/src/components/table/QTable.js +544 -426
  585. package/src/components/table/QTable.json +168 -165
  586. package/src/components/table/QTd.js +18 -13
  587. package/src/components/table/QTd.json +1 -1
  588. package/src/components/table/QTh.js +25 -20
  589. package/src/components/table/QTh.json +1 -1
  590. package/src/components/table/QTr.js +17 -9
  591. package/src/components/table/QTr.json +1 -1
  592. package/src/components/table/get-table-middle.js +2 -4
  593. package/src/components/table/index.js +1 -6
  594. package/src/components/table/table-column-selection.js +45 -35
  595. package/src/components/table/table-filter.js +9 -8
  596. package/src/components/table/table-pagination.js +75 -52
  597. package/src/components/table/table-row-expand.js +15 -16
  598. package/src/components/table/table-row-selection.js +31 -31
  599. package/src/components/table/table-sort.js +26 -29
  600. package/src/components/tabs/QRouteTab.js +10 -12
  601. package/src/components/tabs/QRouteTab.json +6 -6
  602. package/src/components/tabs/QTab.js +1 -1
  603. package/src/components/tabs/QTab.json +1 -1
  604. package/src/components/tabs/QTabs.js +283 -205
  605. package/src/components/tabs/QTabs.json +9 -9
  606. package/src/components/tabs/index.js +1 -5
  607. package/src/components/tabs/use-tab.js +127 -103
  608. package/src/components/tabs/use-tab.json +8 -8
  609. package/src/components/time/QTime.js +502 -383
  610. package/src/components/time/QTime.json +19 -15
  611. package/src/components/time/index.js +1 -3
  612. package/src/components/timeline/QTimeline.js +10 -7
  613. package/src/components/timeline/QTimeline.json +2 -2
  614. package/src/components/timeline/QTimelineEntry.js +44 -27
  615. package/src/components/timeline/QTimelineEntry.json +7 -5
  616. package/src/components/timeline/index.js +1 -4
  617. package/src/components/toggle/QToggle.js +29 -19
  618. package/src/components/toggle/QToggle.json +1 -1
  619. package/src/components/toggle/index.js +1 -3
  620. package/src/components/toolbar/QToolbar.js +7 -5
  621. package/src/components/toolbar/QToolbar.test.js +2 -6
  622. package/src/components/toolbar/QToolbarTitle.js +5 -4
  623. package/src/components/toolbar/QToolbarTitle.test.js +2 -6
  624. package/src/components/toolbar/index.js +1 -4
  625. package/src/components/tooltip/QTooltip.js +125 -72
  626. package/src/components/tooltip/QTooltip.json +34 -10
  627. package/src/components/tooltip/index.js +1 -3
  628. package/src/components/tree/QTree.js +417 -297
  629. package/src/components/tree/QTree.json +27 -25
  630. package/src/components/tree/index.js +1 -3
  631. package/src/components/uploader/QUploader.json +9 -6
  632. package/src/components/uploader/QUploaderAddTrigger.js +5 -2
  633. package/src/components/uploader/index.js +1 -4
  634. package/src/components/uploader/uploader-core.js +262 -178
  635. package/src/components/uploader/xhr-uploader-plugin.js +96 -89
  636. package/src/components/uploader/xhr-uploader-plugin.json +29 -29
  637. package/src/components/video/QVideo.js +25 -19
  638. package/src/components/video/QVideo.json +5 -5
  639. package/src/components/video/QVideo.test.js +55 -85
  640. package/src/components/video/index.js +1 -3
  641. package/src/components/virtual-scroll/QVirtualScroll.js +89 -37
  642. package/src/components/virtual-scroll/QVirtualScroll.json +6 -6
  643. package/src/components/virtual-scroll/index.js +1 -3
  644. package/src/components/virtual-scroll/use-virtual-scroll.js +421 -240
  645. package/src/components/virtual-scroll/use-virtual-scroll.json +20 -13
  646. package/src/composables/private.use-align/use-align.js +8 -5
  647. package/src/composables/private.use-align/use-align.test.js +9 -17
  648. package/src/composables/private.use-anchor/use-anchor-static.json +2 -7
  649. package/src/composables/private.use-anchor/use-anchor.js +79 -62
  650. package/src/composables/private.use-anchor/use-anchor.json +1 -1
  651. package/src/composables/private.use-dark/use-dark.js +2 -6
  652. package/src/composables/private.use-dark/use-dark.test.js +7 -21
  653. package/src/composables/private.use-field/use-field.js +384 -251
  654. package/src/composables/private.use-field/use-field.json +10 -10
  655. package/src/composables/private.use-file/use-file-dom-props.js +11 -15
  656. package/src/composables/private.use-file/use-file.js +86 -67
  657. package/src/composables/private.use-file/use-file.json +8 -8
  658. package/src/composables/private.use-fullscreen/use-fullscreen.js +35 -17
  659. package/src/composables/private.use-fullscreen/use-fullscreen.json +1 -1
  660. package/src/composables/private.use-history/use-history.js +4 -4
  661. package/src/composables/private.use-history/use-history.test.js +9 -21
  662. package/src/composables/private.use-key-composition/use-key-composition.js +16 -12
  663. package/src/composables/private.use-model-toggle/use-model-toggle.js +44 -35
  664. package/src/composables/private.use-model-toggle/use-model-toggle.json +2 -2
  665. package/src/composables/private.use-panel/use-panel.child.json +1 -1
  666. package/src/composables/private.use-panel/use-panel.js +131 -91
  667. package/src/composables/private.use-panel/use-panel.json +18 -18
  668. package/src/composables/private.use-portal/use-portal.js +20 -15
  669. package/src/composables/private.use-prevent-scroll/use-prevent-scroll.js +4 -4
  670. package/src/composables/private.use-ratio/use-ratio.js +3 -3
  671. package/src/composables/private.use-ratio/use-ratio.json +2 -7
  672. package/src/composables/private.use-refocus-target/use-refocus-target.js +7 -8
  673. package/src/composables/private.use-router-link/use-router-link.js +111 -110
  674. package/src/composables/private.use-router-link/use-router-link.json +6 -9
  675. package/src/composables/private.use-scroll-target/use-scroll-target.js +14 -11
  676. package/src/composables/private.use-size/use-size.js +6 -4
  677. package/src/composables/private.use-size/use-size.json +1 -1
  678. package/src/composables/private.use-size/use-size.test.js +1 -1
  679. package/src/composables/private.use-transition/use-transition.js +17 -11
  680. package/src/composables/private.use-transition/use-transition.json +1 -1
  681. package/src/composables/private.use-transition/use-transition.test.js +7 -21
  682. package/src/composables/private.use-validate/use-validate.js +78 -67
  683. package/src/composables/private.use-validate/use-validate.json +9 -12
  684. package/src/composables/use-dialog-plugin-component/use-dialog-plugin-component.js +12 -6
  685. package/src/composables/use-form/private.use-form.js +4 -4
  686. package/src/composables/use-form/private.use-form.json +1 -1
  687. package/src/composables/use-form/private.use-form.test.js +17 -15
  688. package/src/composables/use-form/use-form-child.js +25 -14
  689. package/src/composables/use-hydration/use-hydration.js +1 -1
  690. package/src/composables/use-hydration/use-hydration.test.js +2 -4
  691. package/src/composables/use-id/use-id.js +10 -12
  692. package/src/composables/use-id/use-id.test.js +1 -1
  693. package/src/composables/use-interval/use-interval.js +3 -3
  694. package/src/composables/use-interval/use-interval.test.js +6 -9
  695. package/src/composables/use-meta/use-meta.js +13 -10
  696. package/src/composables/use-quasar/use-quasar.js +1 -1
  697. package/src/composables/use-quasar/use-quasar.test.js +4 -10
  698. package/src/composables/use-render-cache/use-render-cache.js +16 -24
  699. package/src/composables/use-split-attrs/use-split-attrs.js +9 -5
  700. package/src/composables/use-split-attrs/use-split-attrs.test.js +17 -15
  701. package/src/composables/use-tick/use-tick.js +10 -5
  702. package/src/composables/use-tick/use-tick.test.js +5 -8
  703. package/src/composables/use-timeout/use-timeout.js +3 -3
  704. package/src/composables/use-timeout/use-timeout.test.js +6 -9
  705. package/src/composables.js +0 -1
  706. package/src/css/core/helpers.sass +4 -9
  707. package/src/directives/close-popup/ClosePopup.js +41 -35
  708. package/src/directives/close-popup/ClosePopup.json +1 -1
  709. package/src/directives/intersection/Intersection.js +25 -28
  710. package/src/directives/intersection/Intersection.json +6 -6
  711. package/src/directives/morph/Morph.js +87 -87
  712. package/src/directives/morph/Morph.json +15 -13
  713. package/src/directives/mutation/Mutation.js +23 -24
  714. package/src/directives/mutation/Mutation.json +11 -11
  715. package/src/directives/ripple/Ripple.js +88 -79
  716. package/src/directives/ripple/Ripple.json +10 -10
  717. package/src/directives/ripple/Ripple.test.js +31 -87
  718. package/src/directives/scroll/Scroll.js +43 -30
  719. package/src/directives/scroll/Scroll.json +4 -2
  720. package/src/directives/scroll-fire/ScrollFire.js +43 -38
  721. package/src/directives/scroll-fire/ScrollFire.json +1 -1
  722. package/src/directives/touch-hold/TouchHold.js +155 -139
  723. package/src/directives/touch-hold/TouchHold.json +2 -2
  724. package/src/directives/touch-pan/TouchPan.js +311 -278
  725. package/src/directives/touch-pan/TouchPan.json +6 -4
  726. package/src/directives/touch-repeat/TouchRepeat.js +222 -188
  727. package/src/directives/touch-repeat/TouchRepeat.json +5 -3
  728. package/src/directives/touch-swipe/TouchSwipe.js +235 -214
  729. package/src/directives/touch-swipe/TouchSwipe.json +5 -3
  730. package/src/flags.dev.js +10 -17
  731. package/src/index.dev.js +2 -0
  732. package/src/index.ssr.js +2 -6
  733. package/src/index.umd.js +4 -2
  734. package/src/install-quasar.js +92 -76
  735. package/src/plugins/addressbar/AddressbarColor.js +28 -25
  736. package/src/plugins/addressbar/AddressbarColor.json +1 -1
  737. package/src/plugins/addressbar/AddressbarColor.test.js +10 -9
  738. package/src/plugins/app-fullscreen/AppFullscreen.js +50 -51
  739. package/src/plugins/app-fullscreen/AppFullscreen.json +6 -10
  740. package/src/plugins/app-fullscreen/AppFullscreen.test.js +11 -26
  741. package/src/plugins/app-fullscreen/test/mock-fullscreen.js +7 -5
  742. package/src/plugins/app-visibility/AppVisibility.js +21 -17
  743. package/src/plugins/app-visibility/AppVisibility.test.js +3 -1
  744. package/src/plugins/bottom-sheet/BottomSheet.js +1 -1
  745. package/src/plugins/bottom-sheet/BottomSheet.json +9 -9
  746. package/src/plugins/bottom-sheet/component/BottomSheetComponent.js +132 -95
  747. package/src/plugins/cookies/Cookies.js +50 -58
  748. package/src/plugins/cookies/Cookies.json +24 -16
  749. package/src/plugins/dark/Dark.js +61 -55
  750. package/src/plugins/dark/Dark.json +6 -6
  751. package/src/plugins/dark/Dark.test.js +26 -44
  752. package/src/plugins/dialog/Dialog.js +1 -1
  753. package/src/plugins/dialog/Dialog.json +29 -21
  754. package/src/plugins/dialog/component/DialogPluginComponent.js +122 -121
  755. package/src/plugins/icon-set/IconSet.js +63 -56
  756. package/src/plugins/icon-set/IconSet.json +421 -419
  757. package/src/plugins/icon-set/IconSet.test.js +8 -7
  758. package/src/plugins/lang/Lang.js +115 -96
  759. package/src/plugins/lang/Lang.json +201 -175
  760. package/src/plugins/lang/Lang.test.js +52 -20
  761. package/src/plugins/loading/Loading.js +175 -143
  762. package/src/plugins/loading/Loading.json +15 -15
  763. package/src/plugins/loading-bar/LoadingBar.js +61 -56
  764. package/src/plugins/loading-bar/LoadingBar.json +2 -2
  765. package/src/plugins/meta/Meta.js +91 -81
  766. package/src/plugins/notify/Notify.js +275 -221
  767. package/src/plugins/notify/Notify.json +79 -71
  768. package/src/plugins/platform/Platform.js +105 -112
  769. package/src/plugins/platform/Platform.json +12 -8
  770. package/src/plugins/platform/Platform.test.js +4 -7
  771. package/src/plugins/private.body/Body.js +19 -23
  772. package/src/plugins/private.body/Body.test.js +4 -6
  773. package/src/plugins/private.history/History.js +27 -30
  774. package/src/plugins/screen/Screen.js +160 -147
  775. package/src/plugins/screen/Screen.json +6 -6
  776. package/src/plugins/screen/Screen.test.js +6 -12
  777. package/src/plugins/storage/LocalStorage.js +5 -4
  778. package/src/plugins/storage/LocalStorage.json +1 -1
  779. package/src/plugins/storage/LocalStorage.test.js +56 -62
  780. package/src/plugins/storage/SessionStorage.js +5 -4
  781. package/src/plugins/storage/SessionStorage.json +1 -1
  782. package/src/plugins/storage/SessionStorage.test.js +56 -62
  783. package/src/plugins/storage/engine/web-storage.js +24 -26
  784. package/src/plugins/storage/engine/web-storage.json +45 -15
  785. package/src/utils/EventBus/EventBus.js +12 -13
  786. package/src/utils/clone/clone.js +27 -28
  787. package/src/utils/clone/clone.test.js +27 -52
  788. package/src/utils/colors/colors.js +69 -63
  789. package/src/utils/colors/colors.test.js +360 -270
  790. package/src/utils/copy-to-clipboard/copy-to-clipboard.js +9 -10
  791. package/src/utils/create-meta-mixin/create-meta-mixin.js +17 -19
  792. package/src/utils/create-uploader-component/create-uploader-component.js +20 -14
  793. package/src/utils/css-var/get-css-var.js +4 -2
  794. package/src/utils/css-var/get-css-var.test.js +4 -11
  795. package/src/utils/css-var/set-css-var.js +2 -2
  796. package/src/utils/css-var/set-css-var.test.js +6 -12
  797. package/src/utils/date/date.js +251 -243
  798. package/src/utils/date/private.persian.js +54 -44
  799. package/src/utils/debounce/debounce.js +5 -5
  800. package/src/utils/debounce/debounce.test.js +3 -10
  801. package/src/utils/dom/dom.js +21 -22
  802. package/src/utils/dom/dom.test.js +19 -39
  803. package/src/utils/event/event.js +53 -49
  804. package/src/utils/export-file/export-file.js +11 -12
  805. package/src/utils/extend/extend.js +30 -26
  806. package/src/utils/extend/extend.test.js +36 -42
  807. package/src/utils/format/format.js +11 -13
  808. package/src/utils/format/format.test.js +50 -61
  809. package/src/utils/frame-debounce/frame-debounce.js +5 -3
  810. package/src/utils/frame-debounce/frame-debounce.test.js +3 -10
  811. package/src/utils/is/is.js +27 -23
  812. package/src/utils/is/is.test.js +100 -84
  813. package/src/utils/morph/morph.js +470 -377
  814. package/src/utils/open-url/open-url.js +10 -21
  815. package/src/utils/patterns/patterns.js +11 -7
  816. package/src/utils/patterns/patterns.test.js +2 -0
  817. package/src/utils/private.click-outside/click-outside.js +28 -26
  818. package/src/utils/private.config/instance-config.js +1 -1
  819. package/src/utils/private.config/instance-config.test.js +11 -7
  820. package/src/utils/private.config/nodes.js +14 -14
  821. package/src/utils/private.config/nodes.test.js +32 -38
  822. package/src/utils/private.create/create.js +10 -4
  823. package/src/utils/private.create/create.test.js +11 -7
  824. package/src/utils/private.dialog/create-dialog.js +70 -59
  825. package/src/utils/private.dialog/create-dialog.json +13 -6
  826. package/src/utils/private.focus/focus-manager.js +7 -8
  827. package/src/utils/private.focus/focus-manager.test.js +13 -18
  828. package/src/utils/private.focus/focusout.js +4 -4
  829. package/src/utils/private.focus/focusout.test.js +10 -22
  830. package/src/utils/private.get-emits-object/get-emits-object.js +2 -2
  831. package/src/utils/private.get-emits-object/get-emits-object.test.js +4 -10
  832. package/src/utils/private.inject-obj-prop/inject-obj-prop.js +3 -3
  833. package/src/utils/private.inject-obj-prop/inject-obj-prop.test.js +20 -49
  834. package/src/utils/private.keyboard/escape-key.js +10 -10
  835. package/src/utils/private.keyboard/escape-key.test.js +10 -22
  836. package/src/utils/private.keyboard/key-composition.js +9 -7
  837. package/src/utils/private.portal/portal.js +7 -10
  838. package/src/utils/private.position-engine/position-engine.js +127 -75
  839. package/src/utils/private.render/render.js +9 -24
  840. package/src/utils/private.render/render.test.js +40 -55
  841. package/src/utils/private.rtl/rtl.js +1 -3
  842. package/src/utils/private.selection/selection.js +6 -6
  843. package/src/utils/private.selection/selection.test.js +7 -13
  844. package/src/utils/private.sort/sort.js +4 -6
  845. package/src/utils/private.symbols/symbols.js +1 -1
  846. package/src/utils/private.touch/touch.js +16 -16
  847. package/src/utils/private.touch/touch.test.js +56 -16
  848. package/src/utils/private.vm/vm.js +6 -7
  849. package/src/utils/private.vm/vm.test.js +32 -32
  850. package/src/utils/run-sequential-promises/run-sequential-promises.js +56 -50
  851. package/src/utils/scroll/prevent-scroll.js +75 -47
  852. package/src/utils/scroll/scroll.js +51 -44
  853. package/src/utils/throttle/throttle.js +7 -4
  854. package/src/utils/throttle/throttle.test.js +2 -7
  855. package/src/utils/uid/uid.js +34 -22
  856. package/wrappers/index.cjs +17 -15
  857. package/wrappers/index.js +15 -15
@@ -1 +1 @@
1
- {"type":"component","meta":{"docsUrl":"https://v2.quasar.dev/vue-components/input"},"props":{"name":{"type":"String","desc":"Used to specify the name of the control; Useful if dealing with forms; If not specified, it takes the value of 'for' prop, if it exists","examples":["'car_id'"],"category":"behavior"},"mask":{"type":"String","desc":"Custom mask or one of the predefined mask names","examples":["'###-##'","'date'","'datetime'","'time'","'fulltime'","'phone'","'card'"],"category":"mask"},"fill-mask":{"type":["Boolean","String"],"desc":"Fills string with specified characters (or underscore if value is not string) to fill mask's length","examples":["true","'0'","'_'"],"category":"mask"},"reverse-fill-mask":{"type":"Boolean","desc":"Fills string from the right side of the mask","category":"mask"},"unmasked-value":{"type":"Boolean","desc":"Model will be unmasked (won't contain tokens/separation characters)","category":"mask"},"mask-tokens":{"type":"Object","desc":"Object of custom mask tokens to be added on top of the default ones; Can also override any of the default ones","definition":{"...tokenCharacter":{"type":"Object","desc":"The definition for the current custom mask token","required":true,"definition":{"pattern":{"type":"String","required":true,"desc":"A string representing a regular expression to match against a single character","examples":["'[0-9]'","'[a-zA-Z]'"]},"negate":{"type":"String","required":true,"desc":"A string representing a regular expression to NOT match against a single character","examples":["'[^0-9]'","'[^a-zA-Z]'"]},"transform":{"type":"Function","required":false,"desc":"A function that takes the character as argument and returns the transformed character","examples":["v => v.toLocaleUpperCase()"],"params":{"char":{"type":"String","required":true,"desc":"The character being transformed","examples":["'a'","'1'"]}},"returns":{"type":"String","desc":"The transformed character"}}},"examples":["{ pattern: '[0-4a-eA-E]', negate: '[^0-4a-eA-E]', transform: v => v.toLocaleUpperCase() }","{ pattern: '[5-8]', negate: '[^5-8]' }"]}},"examples":["{ C: { pattern: '[0-4a-eA-E]', negate: '[^0-4a-eA-E]', transform: v => v.toLocaleUpperCase() } }"],"category":"mask","addedIn":"v2.18.4"},"model-value":{"desc":"Model of the component; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive","required":true,"syncable":true,"category":"model","type":["String","Number","FileList","null","undefined"],"examples":["# v-model=\"myText\""]},"error":{"type":["Boolean","null"],"default":"null","desc":"Does field have validation errors?","category":"validation","required":false},"error-message":{"type":"String","desc":"Validation error message (gets displayed only if 'error' is set to 'true')","examples":["'Username must have at least 5 characters'"],"category":"validation"},"no-error-icon":{"type":"Boolean","desc":"Hide error icon when there is an error","category":"validation"},"rules":{"type":"Array","tsType":"ValidationRule","desc":"Array of Functions/Strings; If String, then it must be a name of one of the embedded validation rules","examples":["[ val => val.length <= 3 || 'Please use maximum 3 characters' ]","[ 'fulltime' ]","[ (val, rules) => rules.email(val) || 'Please enter a valid email address' ]"],"category":"validation"},"reactive-rules":{"type":"Boolean","desc":"By default a change in the rules does not trigger a new validation until the model changes; If set to true then a change in the rules will trigger a validation; Has a performance penalty, so use it only when you really need it","category":"validation"},"lazy-rules":{"type":["Boolean","String"],"desc":"If set to boolean true then it checks validation status against the 'rules' only after field loses focus for first time; If set to 'ondemand' then it will trigger only when component's validate() method is manually called or when the wrapper QForm submits itself","default":"false","values":["true","false","'ondemand'"],"category":"validation","required":false},"label":{"type":"String","desc":"A text label that will “float” up above the input field, once the field gets focus","examples":["'Username'"],"category":"content"},"stack-label":{"type":"Boolean","desc":"Label will be always shown above the field regardless of field content (if any)","category":"content"},"hint":{"type":"String","desc":"Helper (hint) text which gets placed below your wrapped form component","examples":["'Fill in between 3 and 12 characters'"],"category":"content"},"hide-hint":{"type":"Boolean","desc":"Hide the helper (hint) text when field doesn't have focus","category":"content"},"prefix":{"type":"String","desc":"Prefix","examples":["'$'"],"category":"content"},"suffix":{"type":"String","desc":"Suffix","examples":["'@gmail.com'"],"category":"content"},"label-color":{"type":"String","tsType":"NamedColor","desc":"Color name for the label from the Quasar Color Palette; Overrides the 'color' prop; The difference from 'color' prop is that the label will always have this color, even when field is not focused","examples":["'primary'","'teal'","'teal-10'"],"category":"style"},"color":{"type":"String","tsType":"NamedColor","desc":"Color name for component from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"style"},"bg-color":{"type":"String","tsType":"NamedColor","desc":"Color name for component from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"style"},"dark":{"type":["Boolean","null"],"default":"null","desc":"Notify the component that the background is a dark color","category":"style","required":false},"loading":{"type":"Boolean","desc":"Signals the user a process is in progress by displaying a spinner; Spinner can be customized by using the 'loading' slot.","category":"behavior|content"},"clearable":{"type":"Boolean","desc":"Appends clearable icon when a value (not undefined or null) is set; When clicked, model becomes null","category":"behavior|content"},"clear-icon":{"type":"String","desc":"Custom icon to use for the clear button when using along with 'clearable' prop","examples":["'close'"],"category":"content"},"filled":{"type":"Boolean","desc":"Use 'filled' design for the field","category":"style"},"outlined":{"type":"Boolean","desc":"Use 'outlined' design for the field","category":"style"},"borderless":{"type":"Boolean","desc":"Use 'borderless' design for the field","category":"style"},"standout":{"type":["Boolean","String"],"desc":"Use 'standout' design for the field; Specifies classes to be applied when focused (overriding default ones)","examples":["true","'bg-primary text-white'"],"category":"style"},"label-slot":{"type":"Boolean","desc":"Enables label slot; You need to set it to force use of the 'label' slot if the 'label' prop is not set","category":"content"},"bottom-slots":{"type":"Boolean","desc":"Enables bottom slots ('error', 'hint', 'counter')","category":"content"},"hide-bottom-space":{"type":"Boolean","desc":"Do not reserve space for hint/error/counter anymore when these are not used; As a result, it also disables the animation for those; It also allows the hint/error area to stretch vertically based on its content","category":"style"},"counter":{"type":"Boolean","desc":"Show an automatic counter on bottom right","category":"content"},"rounded":{"type":"Boolean","desc":"Applies a small standard border-radius for a squared shape of the component","category":"style"},"square":{"type":"Boolean","desc":"Remove border-radius so borders are squared; Overrides 'rounded' prop","category":"style"},"dense":{"type":"Boolean","desc":"Dense mode; occupies less space","category":"style"},"item-aligned":{"type":"Boolean","desc":"Match inner content alignment to that of QItem","category":"style"},"disable":{"type":"Boolean","desc":"Put component in disabled mode","category":"state"},"readonly":{"type":"Boolean","desc":"Put component in readonly mode","category":"state"},"autofocus":{"type":"Boolean","desc":"Focus field on initial component render","category":"behavior"},"for":{"type":"String","desc":"Used to specify the 'id' of the control and also the 'for' attribute of the label that wraps it; If no 'name' prop is specified, then it is used for this attribute as well","examples":["'myFieldsId'"],"category":"behavior"},"shadow-text":{"type":"String","desc":"Text to be displayed as shadow at the end of the text in the control; Does NOT applies to type=file","examples":["'rest of the fill value'"],"category":"content"},"type":{"type":"String","desc":"Input type","default":"'text'","values":["'text'","'password'","'textarea'","'email'","'search'","'tel'","'file'","'number'","'url'","'time'","'date'","'datetime-local'"],"category":"general","required":false},"debounce":{"type":["String","Number"],"desc":"Debounce amount (in milliseconds) when updating model","category":"model"},"maxlength":{"type":["String","Number"],"desc":"Specify a max length of model","category":"model"},"autogrow":{"type":"Boolean","desc":"Make field autogrow along with its content (uses a textarea)","category":"content"},"input-class":{"type":["String","Array","Object"],"tsType":"VueClassProp","desc":"Class definitions to be attributed to the underlying input tag","examples":["'my-special-class'","{ 'my-special-class': true }"],"category":"style"},"input-style":{"type":["String","Array","Object"],"tsType":"VueStyleProp","desc":"Style definitions to be attributed to the underlying input tag","examples":["'background-color: #ff0000'","{ backgroundColor: '#ff0000' }"],"category":"style"}},"slots":{"default":{"desc":"Field main content"},"prepend":{"desc":"Prepend inner field; Suggestions: QIcon, QBtn"},"append":{"desc":"Append to inner field; Suggestions: QIcon, QBtn"},"before":{"desc":"Prepend outer field; Suggestions: QIcon, QBtn"},"after":{"desc":"Append outer field; Suggestions: QIcon, QBtn"},"label":{"desc":"Slot for label; Used only if 'label-slot' prop is set or the 'label' prop is set; When it is used the text in the 'label' prop is ignored"},"error":{"desc":"Slot for errors; Enabled only if 'bottom-slots' prop is used; Suggestion: <div>"},"hint":{"desc":"Slot for hint text; Enabled only if 'bottom-slots' prop is used; Suggestion: <div>"},"counter":{"desc":"Slot for counter text; Enabled only if 'bottom-slots' prop is used; Suggestion: <div>"},"loading":{"desc":"Override default spinner when component is in loading mode; Use in conjunction with 'loading' prop"}},"events":{"update:model-value":{"desc":"Emitted when the component needs to change the model; Is also used by v-model","params":{"value":{"type":["String","Number","null"],"desc":"New model value","required":true}}},"focus":{"desc":"Emitted when component gets focused","params":{"evt":{"type":"Event","desc":"JS event object"}}},"blur":{"desc":"Emitted when component loses focus","params":{"evt":{"type":"Event","desc":"JS event object"}}},"clear":{"desc":"When using the 'clearable' property, this event is emitted when the clear icon is clicked","params":{"value":{"type":"Any","desc":"The previous value before clearing it"}}}},"methods":{"resetValidation":{"desc":"Reset validation status","params":null,"returns":null},"validate":{"desc":"Trigger a validation","params":{"value":{"type":"Any","desc":"Optional value to validate against"}},"returns":{"type":["Boolean","Promise<boolean>"],"desc":"True/false if no async rules, otherwise a Promise with the outcome (true -> validation was a success, false -> invalid models detected)","examples":["true","validate().then(outcome => { ... })"]}},"focus":{"desc":"Focus underlying input tag","params":null,"returns":null},"blur":{"desc":"Lose focus on underlying input tag","params":null,"returns":null},"select":{"desc":"Select input text","params":null,"returns":null},"getNativeElement":{"desc":"DEPRECATED; Access 'nativeEl' directly instead; Get the native input/textarea DOM Element","params":null,"returns":{"type":"Element","tsType":"QInputNativeElement","desc":"The underlying native input/textarea DOM Element"}}},"computedProps":{"hasError":{"type":"Boolean","desc":"Whether the component is in error state"},"nativeEl":{"type":"Element","tsType":"QInputNativeElement","desc":"The native input/textarea DOM Element","addedIn":"v2.10.1"}}}
1
+ {"type":"component","meta":{"docsUrl":"https://v2.quasar.dev/vue-components/input"},"props":{"name":{"type":"String","desc":"Used to specify the name of the control; Useful if dealing with forms; If not specified, it takes the value of 'for' prop, if it exists","examples":["'car_id'"],"category":"behavior"},"mask":{"type":"String","desc":"Custom mask or one of the predefined mask names","examples":["'###-##'","'date'","'datetime'","'time'","'fulltime'","'phone'","'card'"],"category":"mask"},"fill-mask":{"type":["Boolean","String"],"desc":"Fills string with specified characters (or underscore if value is not string) to fill mask's length","examples":["true","'0'","'_'"],"category":"mask"},"reverse-fill-mask":{"type":"Boolean","desc":"Fills string from the right side of the mask","category":"mask"},"unmasked-value":{"type":"Boolean","desc":"Model will be unmasked (won't contain tokens/separation characters)","category":"mask"},"mask-tokens":{"type":"Object","desc":"Object of custom mask tokens to be added on top of the default ones; Can also override any of the default ones","definition":{"...tokenCharacter":{"type":"Object","desc":"The definition for the current custom mask token","required":true,"definition":{"pattern":{"type":"String","required":true,"desc":"A string representing a regular expression to match against a single character","examples":["'[0-9]'","'[a-zA-Z]'"]},"negate":{"type":"String","required":true,"desc":"A string representing a regular expression to NOT match against a single character","examples":["'[^0-9]'","'[^a-zA-Z]'"]},"transform":{"type":"Function","required":false,"desc":"A function that takes the character as argument and returns the transformed character","examples":["v => v.toLocaleUpperCase()"],"params":{"char":{"type":"String","required":true,"desc":"The character being transformed","examples":["'a'","'1'"]}},"returns":{"type":"String","desc":"The transformed character"}}},"examples":["{ pattern: '[0-4a-eA-E]', negate: '[^0-4a-eA-E]', transform: v => v.toLocaleUpperCase() }","{ pattern: '[5-8]', negate: '[^5-8]' }"]}},"examples":["{ C: { pattern: '[0-4a-eA-E]', negate: '[^0-4a-eA-E]', transform: v => v.toLocaleUpperCase() } }"],"category":"mask","addedIn":"v2.18.4"},"model-value":{"desc":"Model of the component; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive","required":true,"syncable":true,"category":"model","type":["String","Number","FileList","null","undefined"],"examples":["# v-model=\"myText\""]},"error":{"type":["Boolean","null"],"default":"null","desc":"Does field have validation errors?","category":"validation","required":false},"error-message":{"type":"String","desc":"Validation error message (gets displayed only if 'error' is set to 'true')","examples":["'Username must have at least 5 characters'"],"category":"validation"},"no-error-icon":{"type":"Boolean","desc":"Hide error icon when there is an error","category":"validation"},"rules":{"type":"Array","tsType":"ValidationRule","desc":"Array of Functions/Strings; If String, then it must be a name of one of the embedded validation rules","examples":["[val => val.length <= 3 || 'Please use maximum 3 characters']","['fulltime']","[(val, rules) => rules.email(val) || 'Please enter a valid email address']"],"category":"validation"},"reactive-rules":{"type":"Boolean","desc":"By default a change in the rules does not trigger a new validation until the model changes; If set to true then a change in the rules will trigger a validation; Has a performance penalty, so use it only when you really need it","category":"validation"},"lazy-rules":{"type":["Boolean","String"],"desc":"If set to boolean true then it checks validation status against the 'rules' only after field loses focus for first time; If set to 'ondemand' then it will trigger only when component's validate() method is manually called or when the wrapper QForm submits itself","default":"false","values":["true","false","'ondemand'"],"category":"validation","required":false},"label":{"type":"String","desc":"A text label that will “float” up above the input field, once the field gets focus","examples":["'Username'"],"category":"content"},"stack-label":{"type":"Boolean","desc":"Label will be always shown above the field regardless of field content (if any)","category":"content"},"hint":{"type":"String","desc":"Helper (hint) text which gets placed below your wrapped form component","examples":["'Fill in between 3 and 12 characters'"],"category":"content"},"hide-hint":{"type":"Boolean","desc":"Hide the helper (hint) text when field doesn't have focus","category":"content"},"prefix":{"type":"String","desc":"Prefix","examples":["'$'"],"category":"content"},"suffix":{"type":"String","desc":"Suffix","examples":["'@gmail.com'"],"category":"content"},"label-color":{"type":"String","tsType":"NamedColor","desc":"Color name for the label from the Quasar Color Palette; Overrides the 'color' prop; The difference from 'color' prop is that the label will always have this color, even when field is not focused","examples":["'primary'","'teal'","'teal-10'"],"category":"style"},"color":{"type":"String","tsType":"NamedColor","desc":"Color name for component from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"style"},"bg-color":{"type":"String","tsType":"NamedColor","desc":"Color name for component from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"style"},"dark":{"type":["Boolean","null"],"default":"null","desc":"Notify the component that the background is a dark color","category":"style","required":false},"loading":{"type":"Boolean","desc":"Signals the user a process is in progress by displaying a spinner; Spinner can be customized by using the 'loading' slot.","category":"behavior|content"},"clearable":{"type":"Boolean","desc":"Appends clearable icon when a value (not undefined or null) is set; When clicked, model becomes null","category":"behavior|content"},"clear-icon":{"type":"String","desc":"Custom icon to use for the clear button when using along with 'clearable' prop","examples":["'close'"],"category":"content"},"filled":{"type":"Boolean","desc":"Use 'filled' design for the field","category":"style"},"outlined":{"type":"Boolean","desc":"Use 'outlined' design for the field","category":"style"},"borderless":{"type":"Boolean","desc":"Use 'borderless' design for the field","category":"style"},"standout":{"type":["Boolean","String"],"desc":"Use 'standout' design for the field; Specifies classes to be applied when focused (overriding default ones)","examples":["true","'bg-primary text-white'"],"category":"style"},"label-slot":{"type":"Boolean","desc":"Enables label slot; You need to set it to force use of the 'label' slot if the 'label' prop is not set","category":"content"},"bottom-slots":{"type":"Boolean","desc":"Enables bottom slots ('error', 'hint', 'counter')","category":"content"},"hide-bottom-space":{"type":"Boolean","desc":"Do not reserve space for hint/error/counter anymore when these are not used; As a result, it also disables the animation for those; It also allows the hint/error area to stretch vertically based on its content","category":"style"},"counter":{"type":"Boolean","desc":"Show an automatic counter on bottom right","category":"content"},"rounded":{"type":"Boolean","desc":"Applies a small standard border-radius for a squared shape of the component","category":"style"},"square":{"type":"Boolean","desc":"Remove border-radius so borders are squared; Overrides 'rounded' prop","category":"style"},"dense":{"type":"Boolean","desc":"Dense mode; occupies less space","category":"style"},"item-aligned":{"type":"Boolean","desc":"Match inner content alignment to that of QItem","category":"style"},"disable":{"type":"Boolean","desc":"Put component in disabled mode","category":"state"},"readonly":{"type":"Boolean","desc":"Put component in readonly mode","category":"state"},"autofocus":{"type":"Boolean","desc":"Focus field on initial component render","category":"behavior"},"for":{"type":"String","desc":"Used to specify the 'id' of the control and also the 'for' attribute of the label that wraps it; If no 'name' prop is specified, then it is used for this attribute as well","examples":["'myFieldsId'"],"category":"behavior"},"shadow-text":{"type":"String","desc":"Text to be displayed as shadow at the end of the text in the control; Does NOT applies to type=file","examples":["'rest of the fill value'"],"category":"content"},"type":{"type":"String","desc":"Input type","default":"'text'","values":["'text'","'password'","'textarea'","'email'","'search'","'tel'","'file'","'number'","'url'","'time'","'date'","'datetime-local'"],"category":"general","required":false},"debounce":{"type":["String","Number"],"desc":"Debounce amount (in milliseconds) when updating model","category":"model"},"maxlength":{"type":["String","Number"],"desc":"Specify a max length of model","category":"model"},"autogrow":{"type":"Boolean","desc":"Make field autogrow along with its content (uses a textarea)","category":"content"},"input-class":{"type":["String","Array","Object"],"tsType":"VueClassProp","desc":"Class definitions to be attributed to the underlying input tag","examples":["'my-special-class'","{ 'my-special-class': true }"],"category":"style"},"input-style":{"type":["String","Array","Object"],"tsType":"VueStyleProp","desc":"Style definitions to be attributed to the underlying input tag","examples":["'background-color: #ff0000'","{ backgroundColor: '#ff0000' }"],"category":"style"}},"slots":{"default":{"desc":"Field main content"},"prepend":{"desc":"Prepend inner field; Suggestions: QIcon, QBtn"},"append":{"desc":"Append to inner field; Suggestions: QIcon, QBtn"},"before":{"desc":"Prepend outer field; Suggestions: QIcon, QBtn"},"after":{"desc":"Append outer field; Suggestions: QIcon, QBtn"},"label":{"desc":"Slot for label; Used only if 'label-slot' prop is set or the 'label' prop is set; When it is used the text in the 'label' prop is ignored"},"error":{"desc":"Slot for errors; Enabled only if 'bottom-slots' prop is used; Suggestion: <div>"},"hint":{"desc":"Slot for hint text; Enabled only if 'bottom-slots' prop is used; Suggestion: <div>"},"counter":{"desc":"Slot for counter text; Enabled only if 'bottom-slots' prop is used; Suggestion: <div>"},"loading":{"desc":"Override default spinner when component is in loading mode; Use in conjunction with 'loading' prop"}},"events":{"update:model-value":{"desc":"Emitted when the component needs to change the model; Is also used by v-model","params":{"value":{"type":["String","Number","null"],"desc":"New model value","required":true}}},"focus":{"desc":"Emitted when component gets focused","params":{"evt":{"type":"Event","desc":"JS event object"}}},"blur":{"desc":"Emitted when component loses focus","params":{"evt":{"type":"Event","desc":"JS event object"}}},"clear":{"desc":"When using the 'clearable' property, this event is emitted when the clear icon is clicked","params":{"value":{"type":"Any","desc":"The previous value before clearing it"}}}},"methods":{"resetValidation":{"desc":"Reset validation status","params":null,"returns":null},"validate":{"desc":"Trigger a validation","params":{"value":{"type":"Any","desc":"Optional value to validate against"}},"returns":{"type":["Boolean","Promise<boolean>"],"desc":"True/false if no async rules, otherwise a Promise with the outcome (true -> validation was a success, false -> invalid models detected)","examples":["true","validate().then(outcome => { ... })"]}},"focus":{"desc":"Focus underlying input tag","params":null,"returns":null},"blur":{"desc":"Lose focus on underlying input tag","params":null,"returns":null},"select":{"desc":"Select input text","params":null,"returns":null},"getNativeElement":{"desc":"DEPRECATED; Access 'nativeEl' directly instead; Get the native input/textarea DOM Element","params":null,"returns":{"type":"Element","tsType":"QInputNativeElement","desc":"The underlying native input/textarea DOM Element"}}},"computedProps":{"hasError":{"type":"Boolean","desc":"Whether the component is in error state"},"nativeEl":{"type":"Element","tsType":"QInputNativeElement","desc":"The native input/textarea DOM Element","addedIn":"v2.10.1"}}}
@@ -1 +1 @@
1
- {"type":"component","meta":{"docsUrl":"https://v2.quasar.dev/vue-components/intersection"},"props":{"tag":{"type":"String","desc":"HTML tag to use","category":"content","default":"'div'","examples":["'div'","'span'","'blockquote'"],"required":false},"once":{"type":"Boolean","desc":"Get triggered only once","category":"behavior"},"ssr-prerender":{"type":"Boolean","desc":"Pre-render content on server side if using SSR (use it to pre-render above the fold content)","category":"behavior"},"root":{"type":["Element","null"],"default":"null","desc":"[Intersection API root prop] Lets you define an alternative to the viewport as your root (through its DOM element); It is important to keep in mind that root needs to be an ancestor of the observed element","examples":["document.getElementById('myTable')","$refs.myTable.$el"],"category":"behavior","required":false},"margin":{"type":"String","desc":"[Intersection API rootMargin prop] Allows you to specify the margins for the root, effectively allowing you to either grow or shrink the area used for intersections","examples":["'-20px 0px'","'10px 20px 30px 40px'"],"category":"behavior"},"threshold":{"type":["Array","Number"],"desc":"[Intersection API threshold prop] Threshold(s) at which to trigger, specified as a ratio, or list of ratios, of (visible area / total area) of the observed element","examples":["[ 0, 0.25, 0.5, 0.75, 1 ]","1"],"category":"behavior"},"transition":{"type":"String","desc":"One of Quasar's embedded transitions","examples":["'fade'","'slide-down'"],"category":"behavior"},"transition-duration":{"type":["String","Number"],"desc":"Transition duration (in milliseconds, without unit)","default":"300","category":"behavior","addedIn":"v2.3.1","required":false},"disable":{"type":"Boolean","desc":"Disable visibility observable (content will remain as it was, visible or hidden)","category":"behavior"}},"slots":{"default":{"desc":"Default slot in the devland unslotted content of the component"},"hidden":{"desc":"Slot for content to render when component is not on screen; Example: a text that the user can search for with the browser's search function","addedIn":"v2.12"}},"events":{"visibility":{"desc":"Fires when visibility changes","params":{"isVisible":{"type":"Boolean","desc":"Visibility status (true/false)"}}}}}
1
+ {"type":"component","meta":{"docsUrl":"https://v2.quasar.dev/vue-components/intersection"},"props":{"tag":{"type":"String","desc":"HTML tag to use","category":"content","default":"'div'","examples":["'div'","'span'","'blockquote'"],"required":false},"once":{"type":"Boolean","desc":"Get triggered only once","category":"behavior"},"ssr-prerender":{"type":"Boolean","desc":"Pre-render content on server side if using SSR (use it to pre-render above the fold content)","category":"behavior"},"root":{"type":["Element","null"],"default":"null","desc":"[Intersection API root prop] Lets you define an alternative to the viewport as your root (through its DOM element); It is important to keep in mind that root needs to be an ancestor of the observed element","examples":["document.getElementById('myTable')","$refs.myTable.$el"],"category":"behavior","required":false},"margin":{"type":"String","desc":"[Intersection API rootMargin prop] Allows you to specify the margins for the root, effectively allowing you to either grow or shrink the area used for intersections","examples":["'-20px 0px'","'10px 20px 30px 40px'"],"category":"behavior"},"threshold":{"type":["Array","Number"],"desc":"[Intersection API threshold prop] Threshold(s) at which to trigger, specified as a ratio, or list of ratios, of (visible area / total area) of the observed element","examples":["[0, 0.25, 0.5, 0.75, 1]","1"],"category":"behavior"},"transition":{"type":"String","desc":"One of Quasar's embedded transitions","examples":["'fade'","'slide-down'"],"category":"behavior"},"transition-duration":{"type":["String","Number"],"desc":"Transition duration (in milliseconds, without unit)","default":"300","category":"behavior","addedIn":"v2.3.1","required":false},"disable":{"type":"Boolean","desc":"Disable visibility observable (content will remain as it was, visible or hidden)","category":"behavior"}},"slots":{"default":{"desc":"Default slot in the devland unslotted content of the component"},"hidden":{"desc":"Slot for content to render when component is not on screen; Example: a text that the user can search for with the browser's search function","addedIn":"v2.12"}},"events":{"visibility":{"desc":"Fires when visibility changes","params":{"isVisible":{"type":"Boolean","desc":"Visibility status (true/false)"}}}}}
@@ -1 +1 @@
1
- {"type":"component","meta":{"docsUrl":"https://v2.quasar.dev/vue-components/menu"},"props":{"transition-show":{"type":"String","desc":"One of Quasar's embedded transitions","examples":["'fade'","'slide-down'"],"category":"transition","default":"'fade'","required":false},"transition-hide":{"type":"String","desc":"One of Quasar's embedded transitions","examples":["'fade'","'slide-down'"],"category":"transition","default":"'fade'","required":false},"transition-duration":{"type":["String","Number"],"desc":"Transition duration (in milliseconds, without unit)","default":"300","category":"transition","required":false},"target":{"type":["Boolean","String","Element"],"desc":"Configure a target element to trigger component toggle; 'true' means it enables the parent DOM element, 'false' means it disables attaching events to any DOM elements; By using a String (CSS selector) or a DOM element it attaches the events to the specified DOM element (if it exists)","default":"true","examples":["false",".my-parent","#target-id","$refs.target"],"category":"behavior","required":false},"no-parent-event":{"type":"Boolean","desc":"Skips attaching events to the target DOM element (that trigger the element to get shown)","category":"behavior"},"context-menu":{"type":"Boolean","desc":"Allows the component to behave like a context menu, which opens with a right mouse click (or long tap on mobile)","category":"behavior"},"model-value":{"type":["Boolean","null"],"desc":"Model of the component defining shown/hidden state; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive","default":"null","category":"model","examples":["# v-model=\"state\""],"required":false},"dark":{"type":["Boolean","null"],"default":"null","desc":"Notify the component that the background is a dark color","category":"style","required":false},"fit":{"type":"Boolean","desc":"Allows the menu to match at least the full width of its target","category":"position"},"cover":{"type":"Boolean","desc":"Allows the menu to cover its target. When used, the 'self' and 'fit' props are no longer effective","category":"position"},"anchor":{"type":"String","desc":"Two values setting the starting position or anchor point of the menu relative to its target","values":["'top left'","'top middle'","'top right'","'top start'","'top end'","'center left'","'center middle'","'center right'","'center start'","'center end'","'bottom left'","'bottom middle'","'bottom right'","'bottom start'","'bottom end'"],"category":"position"},"self":{"type":"String","desc":"Two values setting the menu's own position relative to its target","values":["'top left'","'top middle'","'top right'","'top start'","'top end'","'center left'","'center middle'","'center right'","'center start'","'center end'","'bottom left'","'bottom middle'","'bottom right'","'bottom start'","'bottom end'"],"category":"position"},"offset":{"type":"Array","desc":"An array of two numbers to offset the menu horizontally and vertically in pixels","examples":["[ 8, 8 ]","[ 5, 10 ]"],"category":"position"},"scroll-target":{"type":["Element","String"],"desc":"CSS selector or DOM element to be used as a custom scroll container instead of the auto detected one","examples":[".scroll-target-class","#scroll-target-id","$refs.scrollTarget","document.body"],"category":"behavior"},"touch-position":{"type":"Boolean","desc":"Allows for the target position to be set by the mouse position, when the target of the menu is either clicked or touched","category":"behavior"},"persistent":{"type":"Boolean","desc":"Allows the menu to not be dismissed by a click/tap outside of the menu or by hitting the ESC key; Also, an app route change won't dismiss it","category":"behavior"},"no-esc-dismiss":{"type":"Boolean","desc":"User cannot dismiss the popup by hitting ESC key; No need to set it if 'persistent' prop is also set","category":"behavior","addedIn":"v2.18"},"no-route-dismiss":{"type":"Boolean","desc":"Changing route app won't dismiss the popup; No need to set it if 'persistent' prop is also set","category":"behavior"},"auto-close":{"type":"Boolean","desc":"Allows any click/tap in the menu to close it; Useful instead of attaching events to each menu item that should close the menu on click/tap","category":"behavior"},"separate-close-popup":{"type":"Boolean","desc":"Separate from parent menu, marking it as a separate closing point for v-close-popup (without this, chained menus close all together)","category":"behavior"},"square":{"type":"Boolean","desc":"Forces content to have squared borders","category":"style"},"no-refocus":{"type":"Boolean","desc":"(Accessibility) When Menu gets hidden, do not refocus on the DOM element that previously had focus","category":"behavior"},"no-focus":{"type":"Boolean","desc":"(Accessibility) When Menu gets shown, do not switch focus on it","category":"behavior"},"max-height":{"type":["String","null"],"desc":"The maximum height of the menu; Size in CSS units, including unit name","examples":["'16px'","'2rem'"],"category":"style","default":"null","required":false},"max-width":{"type":["String","null"],"desc":"The maximum width of the menu; Size in CSS units, including unit name","examples":["'16px'","'2rem'"],"category":"style","default":"null","required":false}},"slots":{"default":{"desc":"Default slot in the devland unslotted content of the component"}},"events":{"update:model-value":{"desc":"Emitted when showing/hidden state changes; Is also used by v-model","params":{"value":{"type":"Boolean","desc":"New state (showing/hidden)"}}},"show":{"desc":"Emitted after component has triggered show()","params":{"evt":{"type":"Event","desc":"JS event object","required":true}}},"before-show":{"desc":"Emitted when component triggers show() but before it finishes doing it","params":{"evt":{"type":"Event","desc":"JS event object","required":true}}},"hide":{"desc":"Emitted after component has triggered hide()","params":{"evt":{"type":"Event","desc":"JS event object","required":true}}},"before-hide":{"desc":"Emitted when component triggers hide() but before it finishes doing it","params":{"evt":{"type":"Event","desc":"JS event object","required":true}}},"escape-key":{"desc":"Emitted when ESC key is pressed; Does not get emitted if Menu is 'persistent' or it has 'no-esc-dismiss' set"}},"methods":{"show":{"desc":"Triggers component to show","params":{"evt":{"type":"Event","desc":"JS event object","required":false}},"returns":null},"hide":{"desc":"Triggers component to hide","params":{"evt":{"type":"Event","desc":"JS event object","required":false}},"returns":null},"toggle":{"desc":"Triggers component to toggle between show/hide","params":{"evt":{"type":"Event","desc":"JS event object","required":false}},"returns":null},"updatePosition":{"desc":"There are some custom scenarios for which Quasar cannot automatically reposition the menu without significant performance drawbacks so the optimal solution is for you to call this method when you need it","params":null,"returns":null},"focus":{"desc":"Focus menu; if you have content with autofocus attribute, it will directly focus it","params":null,"returns":null}},"computedProps":{"contentEl":{"type":"Element","desc":"The DOM Element of the rendered content","addedIn":"v2.10.1"}}}
1
+ {"type":"component","meta":{"docsUrl":"https://v2.quasar.dev/vue-components/menu"},"props":{"transition-show":{"type":"String","desc":"One of Quasar's embedded transitions","examples":["'fade'","'slide-down'"],"category":"transition","default":"'fade'","required":false},"transition-hide":{"type":"String","desc":"One of Quasar's embedded transitions","examples":["'fade'","'slide-down'"],"category":"transition","default":"'fade'","required":false},"transition-duration":{"type":["String","Number"],"desc":"Transition duration (in milliseconds, without unit)","default":"300","category":"transition","required":false},"target":{"type":["Boolean","String","Element"],"desc":"Configure a target element to trigger component toggle; 'true' means it enables the parent DOM element, 'false' means it disables attaching events to any DOM elements; By using a String (CSS selector) or a DOM element it attaches the events to the specified DOM element (if it exists)","default":"true","examples":["false",".my-parent","#target-id","$refs.target"],"category":"behavior","required":false},"no-parent-event":{"type":"Boolean","desc":"Skips attaching events to the target DOM element (that trigger the element to get shown)","category":"behavior"},"context-menu":{"type":"Boolean","desc":"Allows the component to behave like a context menu, which opens with a right mouse click (or long tap on mobile)","category":"behavior"},"model-value":{"type":["Boolean","null"],"desc":"Model of the component defining shown/hidden state; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive","default":"null","category":"model","examples":["# v-model=\"state\""],"required":false},"dark":{"type":["Boolean","null"],"default":"null","desc":"Notify the component that the background is a dark color","category":"style","required":false},"fit":{"type":"Boolean","desc":"Allows the menu to match at least the full width of its target","category":"position"},"cover":{"type":"Boolean","desc":"Allows the menu to cover its target. When used, the 'self' and 'fit' props are no longer effective","category":"position"},"anchor":{"type":"String","desc":"Two values setting the starting position or anchor point of the menu relative to its target","values":["'top left'","'top middle'","'top right'","'top start'","'top end'","'center left'","'center middle'","'center right'","'center start'","'center end'","'bottom left'","'bottom middle'","'bottom right'","'bottom start'","'bottom end'"],"category":"position"},"self":{"type":"String","desc":"Two values setting the menu's own position relative to its target","values":["'top left'","'top middle'","'top right'","'top start'","'top end'","'center left'","'center middle'","'center right'","'center start'","'center end'","'bottom left'","'bottom middle'","'bottom right'","'bottom start'","'bottom end'"],"category":"position"},"offset":{"type":"Array","desc":"An array of two numbers to offset the menu horizontally and vertically in pixels","examples":["[8, 8]","[5, 10]"],"category":"position"},"scroll-target":{"type":["Element","String"],"desc":"CSS selector or DOM element to be used as a custom scroll container instead of the auto detected one","examples":[".scroll-target-class","#scroll-target-id","$refs.scrollTarget","document.body"],"category":"behavior"},"touch-position":{"type":"Boolean","desc":"Allows for the target position to be set by the mouse position, when the target of the menu is either clicked or touched","category":"behavior"},"persistent":{"type":"Boolean","desc":"Allows the menu to not be dismissed by a click/tap outside of the menu or by hitting the ESC key; Also, an app route change won't dismiss it","category":"behavior"},"no-esc-dismiss":{"type":"Boolean","desc":"User cannot dismiss the popup by hitting ESC key; No need to set it if 'persistent' prop is also set","category":"behavior","addedIn":"v2.18"},"no-route-dismiss":{"type":"Boolean","desc":"Changing route app won't dismiss the popup; No need to set it if 'persistent' prop is also set","category":"behavior"},"auto-close":{"type":"Boolean","desc":"Allows any click/tap in the menu to close it; Useful instead of attaching events to each menu item that should close the menu on click/tap","category":"behavior"},"separate-close-popup":{"type":"Boolean","desc":"Separate from parent menu, marking it as a separate closing point for v-close-popup (without this, chained menus close all together)","category":"behavior"},"square":{"type":"Boolean","desc":"Forces content to have squared borders","category":"style"},"no-refocus":{"type":"Boolean","desc":"(Accessibility) When Menu gets hidden, do not refocus on the DOM element that previously had focus","category":"behavior"},"no-focus":{"type":"Boolean","desc":"(Accessibility) When Menu gets shown, do not switch focus on it","category":"behavior"},"max-height":{"type":["String","null"],"desc":"The maximum height of the menu; Size in CSS units, including unit name","examples":["'16px'","'2rem'"],"category":"style","default":"null","required":false},"max-width":{"type":["String","null"],"desc":"The maximum width of the menu; Size in CSS units, including unit name","examples":["'16px'","'2rem'"],"category":"style","default":"null","required":false}},"slots":{"default":{"desc":"Default slot in the devland unslotted content of the component"}},"events":{"update:model-value":{"desc":"Emitted when showing/hidden state changes; Is also used by v-model","params":{"value":{"type":"Boolean","desc":"New state (showing/hidden)"}}},"show":{"desc":"Emitted after component has triggered show()","params":{"evt":{"type":"Event","desc":"JS event object","required":true}}},"before-show":{"desc":"Emitted when component triggers show() but before it finishes doing it","params":{"evt":{"type":"Event","desc":"JS event object","required":true}}},"hide":{"desc":"Emitted after component has triggered hide()","params":{"evt":{"type":"Event","desc":"JS event object","required":true}}},"before-hide":{"desc":"Emitted when component triggers hide() but before it finishes doing it","params":{"evt":{"type":"Event","desc":"JS event object","required":true}}},"escape-key":{"desc":"Emitted when ESC key is pressed; Does not get emitted if Menu is 'persistent' or it has 'no-esc-dismiss' set"}},"methods":{"show":{"desc":"Triggers component to show","params":{"evt":{"type":"Event","desc":"JS event object","required":false}},"returns":null},"hide":{"desc":"Triggers component to hide","params":{"evt":{"type":"Event","desc":"JS event object","required":false}},"returns":null},"toggle":{"desc":"Triggers component to toggle between show/hide","params":{"evt":{"type":"Event","desc":"JS event object","required":false}},"returns":null},"updatePosition":{"desc":"There are some custom scenarios for which Quasar cannot automatically reposition the menu without significant performance drawbacks so the optimal solution is for you to call this method when you need it","params":null,"returns":null},"focus":{"desc":"Focus menu; if you have content with autofocus attribute, it will directly focus it","params":null,"returns":null}},"computedProps":{"contentEl":{"type":"Element","desc":"The DOM Element of the rendered content","addedIn":"v2.10.1"}}}
@@ -1 +1 @@
1
- {"type":"component","meta":{"docsUrl":"https://v2.quasar.dev/vue-components/option-group"},"props":{"size":{"type":"String","desc":"Size in CSS units, including unit name or standard size name (xs|sm|md|lg|xl)","examples":["'16px'","'2rem'","'xs'","'md'"],"category":"style"},"model-value":{"desc":"Model of the component; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive","required":true,"syncable":true,"category":"model","type":"Any","examples":["# v-model=\"group\""]},"options":{"type":"Array","desc":"Array of objects that the binary components will be created from. For best performance reference a variable in your scope. Canonical form of each object is with 'label' (String), 'value' (Any) and optional 'disable' (Boolean) props (can be customized with options-value/option-label/option-disable props) along with any other props from QToggle, QCheckbox, or QRadio.","default":"[]","definition":{"...props":{"type":"Any","desc":"Any other props from QToggle, QCheckbox, or QRadio","examples":["# val=\"car\"","# :true-value=\"trueValue\"","# checked-icon=\"visibility\""]}},"examples":["[ { label: 'Option 1', value: 'op1' }, { label: 'Option 2', value: 'op2' }, { label: 'Option 3', value: 'op3', disable: true } ]"],"category":"options","required":false},"option-value":{"type":["Function","String"],"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","default":"'value'","params":{"option":{"type":["String","Object"],"desc":"The current option being processed","examples":["'Tesla'","'iPhone'","{ label: 'Tesla', value: 'car', cannotSelect: true }"]}},"returns":{"type":"Any","desc":"Value of the current option","examples":["'car'","34"]},"examples":["'modelNumber'","item => (item === null ? null : item.modelNumber)"],"category":"options","addedIn":"v2.17","required":false},"option-label":{"type":["Function","String"],"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","default":"'label'","params":{"option":{"type":["String","Object"],"desc":"The current option being processed","examples":["'Tesla'","'iPhone'","{ label: 'Tesla', value: 'car', cannotSelect: true }"]}},"returns":{"type":"String","desc":"Label of the current option","examples":["'Tesla'","'iPhone'"]},"examples":["'itemName'","item => (item === null ? 'Null value' : item.itemName)"],"category":"options","addedIn":"v2.17","required":false},"option-disable":{"type":["Function","String"],"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","default":"'disable'","params":{"option":{"type":["String","Object"],"desc":"The current option being processed","examples":["'Tesla'","'iPhone'","{ label: 'Tesla', value: 'car', cannotSelect: true }"]}},"returns":{"type":"Boolean","desc":"If true, the current option will be disabled"},"examples":["item => (item === null ? true : item.cannotSelect)","# option-disable=\"cannotSelect\""],"category":"options","addedIn":"v2.17","required":false},"name":{"type":"String","desc":"Used to specify the name of the controls; Useful if dealing with forms submitted directly to a URL","examples":["'car_id'"],"category":"behavior"},"type":{"type":"String","desc":"The type of input component to be used","values":["'radio'","'checkbox'","'toggle'"],"default":"'radio'","category":"content","required":false},"color":{"type":"String","tsType":"NamedColor","desc":"Color name for component from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"style"},"keep-color":{"type":"Boolean","desc":"Should the color (if specified any) be kept when input components are unticked?","category":"behavior"},"dark":{"type":["Boolean","null"],"default":"null","desc":"Notify the component that the background is a dark color","category":"style","required":false},"dense":{"type":"Boolean","desc":"Dense mode; occupies less space","category":"style"},"left-label":{"type":"Boolean","desc":"Label (if any specified) should be displayed on the left side of the input components","category":"content"},"inline":{"type":"Boolean","desc":"Show input components as inline-block rather than each having their own row","category":"content"},"disable":{"type":"Boolean","desc":"Put component in disabled mode","category":"state"}},"slots":{"label":{"desc":"Generic slot for all labels","scope":{"...self":{"type":"Object","desc":"The corresponding option entry from the 'options' prop","definition":{"label":{"type":"String","desc":"Label to display along the component","required":true,"examples":["'Option 1'","'Option 2'","'Option 3'"]},"value":{"type":"Any","desc":"Value of the option that will be used by the component model","required":true,"examples":["'op1'","'op2'","'op3'"]},"disable":{"type":"Boolean","desc":"If true, the option will be disabled"},"...props":{"type":"Any","desc":"Any other props from QToggle, QCheckbox, or QRadio","examples":["# val=\"car\"","# :true-value=\"trueValue\"","# checked-icon=\"visibility\""]}}}},"addedIn":"v2.2"},"label-[name]":{"desc":"Slot to define the specific label for the option at '[name]' where name is a 0-based index; Overrides the generic 'label' slot if used","scope":{"...self":{"type":"Object","desc":"The corresponding option entry from the 'options' prop","definition":{"label":{"type":"String","desc":"Label to display along the component","required":true,"examples":["'Option 1'","'Option 2'","'Option 3'"]},"value":{"type":"Any","desc":"Value of the option that will be used by the component model","required":true,"examples":["'op1'","'op2'","'op3'"]},"disable":{"type":"Boolean","desc":"If true, the option will be disabled"},"...props":{"type":"Any","desc":"Any other props from QToggle, QCheckbox, or QRadio","examples":["# val=\"car\"","# :true-value=\"trueValue\"","# checked-icon=\"visibility\""]}}}},"addedIn":"v2.2"}},"events":{"update:model-value":{"desc":"Emitted when the component needs to change the model; Is also used by v-model","params":{"value":{"type":"Any","desc":"New model value","required":true}}}}}
1
+ {"type":"component","meta":{"docsUrl":"https://v2.quasar.dev/vue-components/option-group"},"props":{"size":{"type":"String","desc":"Size in CSS units, including unit name or standard size name (xs|sm|md|lg|xl)","examples":["'16px'","'2rem'","'xs'","'md'"],"category":"style"},"model-value":{"desc":"Model of the component; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive","required":true,"syncable":true,"category":"model","type":"Any","examples":["# v-model=\"group\""]},"options":{"type":"Array","desc":"Array of objects that the binary components will be created from. For best performance reference a variable in your scope. Canonical form of each object is with 'label' (String), 'value' (Any) and optional 'disable' (Boolean) props (can be customized with options-value/option-label/option-disable props) along with any other props from QToggle, QCheckbox, or QRadio.","default":"[]","definition":{"...props":{"type":"Any","desc":"Any other props from QToggle, QCheckbox, or QRadio","examples":["# val=\"car\"","# :true-value=\"trueValue\"","# checked-icon=\"visibility\""]}},"examples":["[{ label: 'Option 1', value: 'op1' }, { label: 'Option 2', value: 'op2' }, { label: 'Option 3', value: 'op3', disable: true }]"],"category":"options","required":false},"option-value":{"type":["Function","String"],"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","default":"'value'","params":{"option":{"type":["String","Object"],"desc":"The current option being processed","examples":["'Tesla'","'iPhone'","{ label: 'Tesla', value: 'car', cannotSelect: true }"]}},"returns":{"type":"Any","desc":"Value of the current option","examples":["'car'","34"]},"examples":["'modelNumber'","item => (item === null ? null : item.modelNumber)"],"category":"options","addedIn":"v2.17","required":false},"option-label":{"type":["Function","String"],"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","default":"'label'","params":{"option":{"type":["String","Object"],"desc":"The current option being processed","examples":["'Tesla'","'iPhone'","{ label: 'Tesla', value: 'car', cannotSelect: true }"]}},"returns":{"type":"String","desc":"Label of the current option","examples":["'Tesla'","'iPhone'"]},"examples":["'itemName'","item => (item === null ? 'Null value' : item.itemName)"],"category":"options","addedIn":"v2.17","required":false},"option-disable":{"type":["Function","String"],"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","default":"'disable'","params":{"option":{"type":["String","Object"],"desc":"The current option being processed","examples":["'Tesla'","'iPhone'","{ label: 'Tesla', value: 'car', cannotSelect: true }"]}},"returns":{"type":"Boolean","desc":"If true, the current option will be disabled"},"examples":["item => (item === null ? true : item.cannotSelect)","# option-disable=\"cannotSelect\""],"category":"options","addedIn":"v2.17","required":false},"name":{"type":"String","desc":"Used to specify the name of the controls; Useful if dealing with forms submitted directly to a URL","examples":["'car_id'"],"category":"behavior"},"type":{"type":"String","desc":"The type of input component to be used","values":["'radio'","'checkbox'","'toggle'"],"default":"'radio'","category":"content","required":false},"color":{"type":"String","tsType":"NamedColor","desc":"Color name for component from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"style"},"keep-color":{"type":"Boolean","desc":"Should the color (if specified any) be kept when input components are unticked?","category":"behavior"},"dark":{"type":["Boolean","null"],"default":"null","desc":"Notify the component that the background is a dark color","category":"style","required":false},"dense":{"type":"Boolean","desc":"Dense mode; occupies less space","category":"style"},"left-label":{"type":"Boolean","desc":"Label (if any specified) should be displayed on the left side of the input components","category":"content"},"inline":{"type":"Boolean","desc":"Show input components as inline-block rather than each having their own row","category":"content"},"disable":{"type":"Boolean","desc":"Put component in disabled mode","category":"state"}},"slots":{"label":{"desc":"Generic slot for all labels","scope":{"...self":{"type":"Object","desc":"The corresponding option entry from the 'options' prop","definition":{"label":{"type":"String","desc":"Label to display along the component","required":true,"examples":["'Option 1'","'Option 2'","'Option 3'"]},"value":{"type":"Any","desc":"Value of the option that will be used by the component model","required":true,"examples":["'op1'","'op2'","'op3'"]},"disable":{"type":"Boolean","desc":"If true, the option will be disabled"},"...props":{"type":"Any","desc":"Any other props from QToggle, QCheckbox, or QRadio","examples":["# val=\"car\"","# :true-value=\"trueValue\"","# checked-icon=\"visibility\""]}}}},"addedIn":"v2.2"},"label-[name]":{"desc":"Slot to define the specific label for the option at '[name]' where name is a 0-based index; Overrides the generic 'label' slot if used","scope":{"...self":{"type":"Object","desc":"The corresponding option entry from the 'options' prop","definition":{"label":{"type":"String","desc":"Label to display along the component","required":true,"examples":["'Option 1'","'Option 2'","'Option 3'"]},"value":{"type":"Any","desc":"Value of the option that will be used by the component model","required":true,"examples":["'op1'","'op2'","'op3'"]},"disable":{"type":"Boolean","desc":"If true, the option will be disabled"},"...props":{"type":"Any","desc":"Any other props from QToggle, QCheckbox, or QRadio","examples":["# val=\"car\"","# :true-value=\"trueValue\"","# checked-icon=\"visibility\""]}}}},"addedIn":"v2.2"}},"events":{"update:model-value":{"desc":"Emitted when the component needs to change the model; Is also used by v-model","params":{"value":{"type":"Any","desc":"New model value","required":true}}}}}
@@ -1 +1 @@
1
- {"type":"component","meta":{"docsUrl":"https://v2.quasar.dev/layout/page-scroller"},"props":{"position":{"type":"String","desc":"Page side/corner to stick to","default":"'bottom-right'","values":["'top-right'","'top-left'","'bottom-right'","'bottom-left'","'top'","'right'","'bottom'","'left'"],"category":"position","required":false},"offset":{"type":"Array","desc":"An array of two numbers to offset the component horizontally and vertically in pixels","examples":["[ 8, 8 ]","[ 5, 10 ]"],"category":"content","default":"[ 18, 18 ]","required":false},"expand":{"type":"Boolean","desc":"By default the component shrinks to content's size; By using this prop you make the component fully expand horizontally or vertically, based on 'position' prop","category":"content"},"scroll-offset":{"type":"Number","desc":"Scroll offset (in pixels) from which point the component is shown on page; Measured from the top of the page (or from the bottom if in 'reverse' mode)","default":"1000","category":"behavior","required":false},"reverse":{"type":"Boolean","desc":"Work in reverse (shows when scrolling to the top of the page and scrolls to bottom when triggered)","category":"behavior"},"duration":{"type":"Number","desc":"Duration (in milliseconds) of the scrolling until it reaches its target","default":"300","category":"behavior","required":false}},"slots":{"default":{"desc":"Default slot in the devland unslotted content of the component"}}}
1
+ {"type":"component","meta":{"docsUrl":"https://v2.quasar.dev/layout/page-scroller"},"props":{"position":{"type":"String","desc":"Page side/corner to stick to","default":"'bottom-right'","values":["'top-right'","'top-left'","'bottom-right'","'bottom-left'","'top'","'right'","'bottom'","'left'"],"category":"position","required":false},"offset":{"type":"Array","desc":"An array of two numbers to offset the component horizontally and vertically in pixels","examples":["[8, 8]","[5, 10]"],"category":"content","default":"[18, 18]","required":false},"expand":{"type":"Boolean","desc":"By default the component shrinks to content's size; By using this prop you make the component fully expand horizontally or vertically, based on 'position' prop","category":"content"},"scroll-offset":{"type":"Number","desc":"Scroll offset (in pixels) from which point the component is shown on page; Measured from the top of the page (or from the bottom if in 'reverse' mode)","default":"1000","category":"behavior","required":false},"reverse":{"type":"Boolean","desc":"Work in reverse (shows when scrolling to the top of the page and scrolls to bottom when triggered)","category":"behavior"},"duration":{"type":"Number","desc":"Duration (in milliseconds) of the scrolling until it reaches its target","default":"300","category":"behavior","required":false}},"slots":{"default":{"desc":"Default slot in the devland unslotted content of the component"}}}
@@ -1 +1 @@
1
- {"type":"component","meta":{"docsUrl":"https://v2.quasar.dev/layout/page-sticky"},"props":{"position":{"type":"String","desc":"Page side/corner to stick to","default":"'bottom-right'","values":["'top-right'","'top-left'","'bottom-right'","'bottom-left'","'top'","'right'","'bottom'","'left'"],"category":"position","required":false},"offset":{"type":"Array","desc":"An array of two numbers to offset the component horizontally and vertically in pixels","examples":["[ 8, 8 ]","[ 5, 10 ]"],"category":"position"},"expand":{"type":"Boolean","desc":"By default the component shrinks to content's size; By using this prop you make the component fully expand horizontally or vertically, based on 'position' prop","category":"content"}},"slots":{"default":{"desc":"Default slot in the devland unslotted content of the component"}}}
1
+ {"type":"component","meta":{"docsUrl":"https://v2.quasar.dev/layout/page-sticky"},"props":{"position":{"type":"String","desc":"Page side/corner to stick to","default":"'bottom-right'","values":["'top-right'","'top-left'","'bottom-right'","'bottom-left'","'top'","'right'","'bottom'","'left'"],"category":"position","required":false},"offset":{"type":"Array","desc":"An array of two numbers to offset the component horizontally and vertically in pixels","examples":["[8, 8]","[5, 10]"],"category":"position"},"expand":{"type":"Boolean","desc":"By default the component shrinks to content's size; By using this prop you make the component fully expand horizontally or vertically, based on 'position' prop","category":"content"}},"slots":{"default":{"desc":"Default slot in the devland unslotted content of the component"}}}
@@ -1 +1 @@
1
- {"type":"component","meta":{"docsUrl":"https://v2.quasar.dev/vue-components/popup-edit"},"props":{"model-value":{"desc":"Model of the component; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive","required":true,"syncable":true,"category":"model","type":"Any","examples":["# v-model=\"myValue\""]},"title":{"type":"String","desc":"Optional title (unless 'title' slot is used)","examples":["'Calories'"],"category":"content"},"buttons":{"type":"Boolean","desc":"Show Set and Cancel buttons","category":"content"},"label-set":{"type":"String","desc":"Override Set button label","examples":["'OK'"],"category":"content"},"label-cancel":{"type":"String","desc":"Override Cancel button label","examples":["'Cancel'"],"category":"content"},"auto-save":{"type":"Boolean","desc":"Automatically save the model (if changed) when user clicks/taps outside of the popup; It does not apply to ESC key","category":"behavior"},"color":{"type":"String","tsType":"NamedColor","desc":"Color name for component from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"style","default":"'primary'","required":false},"validate":{"type":"Function","desc":"Validates model then triggers 'save' and closes Popup; Returns a Boolean ('true' means valid, 'false' means abort); Syntax: validate(value); For best performance, reference it from your scope and do not define it inline","params":{"value":{"type":"Any","desc":"Model to validate","examples":["'My car'"]}},"returns":{"type":"Boolean","desc":"Is the model valid or not?"},"default":"() => true","examples":["value => value !== 0"],"category":"model","required":false},"disable":{"type":"Boolean","desc":"Put component in disabled mode","category":"state"},"fit":{"type":"Boolean","desc":"Allows the menu to match at least the full width of its target","category":"position","passthrough":true},"cover":{"type":"Boolean","default":"true","desc":"Allows the menu to cover its target. When used, the 'self' and 'fit' props are no longer effective","category":"position","required":false},"anchor":{"type":"String","desc":"Two values setting the starting position or anchor point of the menu relative to its target","values":["'top left'","'top middle'","'top right'","'top start'","'top end'","'center left'","'center middle'","'center right'","'center start'","'center end'","'bottom left'","'bottom middle'","'bottom right'","'bottom start'","'bottom end'"],"category":"position","passthrough":true},"self":{"type":"String","desc":"Two values setting the menu's own position relative to its target","values":["'top left'","'top middle'","'top right'","'top start'","'top end'","'center left'","'center middle'","'center right'","'center start'","'center end'","'bottom left'","'bottom middle'","'bottom right'","'bottom start'","'bottom end'"],"category":"position","passthrough":true},"offset":{"type":"Array","desc":"An array of two numbers to offset the menu horizontally and vertically in pixels","examples":["[ 8, 8 ]","[ 5, 10 ]"],"category":"style","passthrough":true},"touch-position":{"type":"Boolean","desc":"Allows for the target position to be set by the mouse position, when the target of the menu is either clicked or touched","category":"behavior","passthrough":true},"persistent":{"type":"Boolean","desc":"Avoid menu closing by hitting ESC key or by clicking/tapping outside of the Popup","category":"behavior","passthrough":true},"separate-close-popup":{"type":"Boolean","desc":"Separate from parent menu, marking it as a separate closing point for v-close-popup (without this, chained menus close all together)","category":"behavior","passthrough":true},"square":{"type":"Boolean","desc":"Forces menu to have squared borders","category":"style","passthrough":true},"max-height":{"type":"String","desc":"The maximum height of the menu; Size in CSS units, including unit name","examples":["'16px'","'2rem'"],"category":"style","passthrough":true},"max-width":{"type":"String","desc":"The maximum width of the menu; Size in CSS units, including unit name","examples":["'16px'","'2rem'"],"category":"style","passthrough":true}},"slots":{"default":{"desc":"Used for injecting the form component; Do NOT destructure it","scope":{"initialValue":{"type":"Any","desc":"Initial value","examples":["0.241","'Text'"]},"value":{"type":"Any","desc":"Current value","examples":["0.241","'Text'"]},"validate":{"type":"Function","desc":"Function that checks if the value is valid","params":{"value":{"type":"Any","required":true,"desc":"Value to be checked","examples":["0","'Changed text'"]}},"returns":{"type":"Boolean","desc":"Checked value is valid or not"}},"set":{"type":"Function","desc":"Function that sets the value and closes the popup","params":null,"returns":null},"cancel":{"type":"Function","desc":"Function that cancels the editing and reverts the value to the initialValue","params":null,"returns":null},"updatePosition":{"type":"Function","desc":"There are some custom scenarios for which Quasar cannot automatically reposition the component without significant performance drawbacks so the optimal solution is for you to call this method when you need it","params":null,"returns":null}}}},"events":{"update:model-value":{"desc":"Emitted when Popup gets cancelled in order to reset model to its initial value; Is also used by v-model","params":{"value":{"type":"Any","desc":"New model value","required":true}}},"before-show":{"desc":"Emitted right before Popup gets shown"},"show":{"desc":"Emitted right after Popup gets shown"},"before-hide":{"desc":"Emitted right before Popup gets dismissed"},"hide":{"desc":"Emitted right after Popup gets dismissed"},"save":{"desc":"Emitted when value has been successfully validated and it should be saved","params":{"value":{"type":"Any","desc":"Validated value to be saved"},"initialValue":{"type":"Any","desc":"Initial value, before changes"}}},"cancel":{"desc":"Emitted when user cancelled the change (hit ESC key or clicking outside of Popup or hit 'Cancel' button)","params":{"value":{"type":"Any","desc":"Edited value"},"initialValue":{"type":"Any","desc":"Initial value, before changes"}}}},"methods":{"set":{"desc":"Trigger a model update; Validates model (and emits 'save' event if it's the case) then closes Popup","params":null,"returns":null},"cancel":{"desc":"Triggers a model reset to its initial value ('cancel' event is emitted) then closes Popup","params":null,"returns":null},"show":{"desc":"Triggers component to show","params":{"evt":{"type":"Event","desc":"JS event object","required":false}},"returns":null},"hide":{"desc":"Triggers component to hide","params":{"evt":{"type":"Event","desc":"JS event object","required":false}},"returns":null},"updatePosition":{"desc":"There are some custom scenarios for which Quasar cannot automatically reposition the component without significant performance drawbacks so the optimal solution is for you to call this method when you need it","params":null,"returns":null}}}
1
+ {"type":"component","meta":{"docsUrl":"https://v2.quasar.dev/vue-components/popup-edit"},"props":{"model-value":{"desc":"Model of the component; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive","required":true,"syncable":true,"category":"model","type":"Any","examples":["# v-model=\"myValue\""]},"title":{"type":"String","desc":"Optional title (unless 'title' slot is used)","examples":["'Calories'"],"category":"content"},"buttons":{"type":"Boolean","desc":"Show Set and Cancel buttons","category":"content"},"label-set":{"type":"String","desc":"Override Set button label","examples":["'OK'"],"category":"content"},"label-cancel":{"type":"String","desc":"Override Cancel button label","examples":["'Cancel'"],"category":"content"},"auto-save":{"type":"Boolean","desc":"Automatically save the model (if changed) when user clicks/taps outside of the popup; It does not apply to ESC key","category":"behavior"},"color":{"type":"String","tsType":"NamedColor","desc":"Color name for component from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"style","default":"'primary'","required":false},"validate":{"type":"Function","desc":"Validates model then triggers 'save' and closes Popup; Returns a Boolean ('true' means valid, 'false' means abort); Syntax: validate(value); For best performance, reference it from your scope and do not define it inline","params":{"value":{"type":"Any","desc":"Model to validate","examples":["'My car'"]}},"returns":{"type":"Boolean","desc":"Is the model valid or not?"},"default":"() => true","examples":["value => value !== 0"],"category":"model","required":false},"disable":{"type":"Boolean","desc":"Put component in disabled mode","category":"state"},"fit":{"type":"Boolean","desc":"Allows the menu to match at least the full width of its target","category":"position","passthrough":true},"cover":{"type":"Boolean","default":"true","desc":"Allows the menu to cover its target. When used, the 'self' and 'fit' props are no longer effective","category":"position","required":false},"anchor":{"type":"String","desc":"Two values setting the starting position or anchor point of the menu relative to its target","values":["'top left'","'top middle'","'top right'","'top start'","'top end'","'center left'","'center middle'","'center right'","'center start'","'center end'","'bottom left'","'bottom middle'","'bottom right'","'bottom start'","'bottom end'"],"category":"position","passthrough":true},"self":{"type":"String","desc":"Two values setting the menu's own position relative to its target","values":["'top left'","'top middle'","'top right'","'top start'","'top end'","'center left'","'center middle'","'center right'","'center start'","'center end'","'bottom left'","'bottom middle'","'bottom right'","'bottom start'","'bottom end'"],"category":"position","passthrough":true},"offset":{"type":"Array","desc":"An array of two numbers to offset the menu horizontally and vertically in pixels","examples":["[8, 8]","[5, 10]"],"category":"style","passthrough":true},"touch-position":{"type":"Boolean","desc":"Allows for the target position to be set by the mouse position, when the target of the menu is either clicked or touched","category":"behavior","passthrough":true},"persistent":{"type":"Boolean","desc":"Avoid menu closing by hitting ESC key or by clicking/tapping outside of the Popup","category":"behavior","passthrough":true},"separate-close-popup":{"type":"Boolean","desc":"Separate from parent menu, marking it as a separate closing point for v-close-popup (without this, chained menus close all together)","category":"behavior","passthrough":true},"square":{"type":"Boolean","desc":"Forces menu to have squared borders","category":"style","passthrough":true},"max-height":{"type":"String","desc":"The maximum height of the menu; Size in CSS units, including unit name","examples":["'16px'","'2rem'"],"category":"style","passthrough":true},"max-width":{"type":"String","desc":"The maximum width of the menu; Size in CSS units, including unit name","examples":["'16px'","'2rem'"],"category":"style","passthrough":true}},"slots":{"default":{"desc":"Used for injecting the form component; Do NOT destructure it","scope":{"initialValue":{"type":"Any","desc":"Initial value","examples":["0.241","'Text'"]},"value":{"type":"Any","desc":"Current value","examples":["0.241","'Text'"]},"validate":{"type":"Function","desc":"Function that checks if the value is valid","params":{"value":{"type":"Any","required":true,"desc":"Value to be checked","examples":["0","'Changed text'"]}},"returns":{"type":"Boolean","desc":"Checked value is valid or not"}},"set":{"type":"Function","desc":"Function that sets the value and closes the popup","params":null,"returns":null},"cancel":{"type":"Function","desc":"Function that cancels the editing and reverts the value to the initialValue","params":null,"returns":null},"updatePosition":{"type":"Function","desc":"There are some custom scenarios for which Quasar cannot automatically reposition the component without significant performance drawbacks so the optimal solution is for you to call this method when you need it","params":null,"returns":null}}}},"events":{"update:model-value":{"desc":"Emitted when Popup gets cancelled in order to reset model to its initial value; Is also used by v-model","params":{"value":{"type":"Any","desc":"New model value","required":true}}},"before-show":{"desc":"Emitted right before Popup gets shown"},"show":{"desc":"Emitted right after Popup gets shown"},"before-hide":{"desc":"Emitted right before Popup gets dismissed"},"hide":{"desc":"Emitted right after Popup gets dismissed"},"save":{"desc":"Emitted when value has been successfully validated and it should be saved","params":{"value":{"type":"Any","desc":"Validated value to be saved"},"initialValue":{"type":"Any","desc":"Initial value, before changes"}}},"cancel":{"desc":"Emitted when user cancelled the change (hit ESC key or clicking outside of Popup or hit 'Cancel' button)","params":{"value":{"type":"Any","desc":"Edited value"},"initialValue":{"type":"Any","desc":"Initial value, before changes"}}}},"methods":{"set":{"desc":"Trigger a model update; Validates model (and emits 'save' event if it's the case) then closes Popup","params":null,"returns":null},"cancel":{"desc":"Triggers a model reset to its initial value ('cancel' event is emitted) then closes Popup","params":null,"returns":null},"show":{"desc":"Triggers component to show","params":{"evt":{"type":"Event","desc":"JS event object","required":false}},"returns":null},"hide":{"desc":"Triggers component to hide","params":{"evt":{"type":"Event","desc":"JS event object","required":false}},"returns":null},"updatePosition":{"desc":"There are some custom scenarios for which Quasar cannot automatically reposition the component without significant performance drawbacks so the optimal solution is for you to call this method when you need it","params":null,"returns":null}}}
@@ -1 +1 @@
1
- {"type":"component","meta":{"docsUrl":"https://v2.quasar.dev/vue-components/range"},"props":{"name":{"type":"String","desc":"Used to specify the name of the control; Useful if dealing with forms submitted directly to a URL","examples":["'car_id'"],"category":"behavior"},"min":{"type":"Number","desc":"Minimum value of the model; Set track's minimum value","default":"0","category":"model","required":false},"max":{"type":"Number","desc":"Maximum value of the model; Set track's maximum value","default":"100","category":"model","required":false},"inner-min":{"type":"Number","desc":"Inner minimum value of the model; Use in case you need the model value to be inside of the track's min-max values; Needs to be higher or equal to 'min' prop; Defaults to 'min' prop","category":"model","addedIn":"v2.4"},"inner-max":{"type":"Number","desc":"Inner maximum value of the model; Use in case you need the model value to be inside of the track's min-max values; Needs to be lower or equal to 'max' prop; Defaults to 'max' prop","category":"model","addedIn":"v2.4"},"step":{"type":"Number","desc":"Specify step amount between valid values (> 0.0); When step equals to 0 it defines infinite granularity","default":"1","category":"model","required":false},"snap":{"type":"Boolean","desc":"Snap on valid values, rather than sliding freely; Suggestion: use with 'step' prop","category":"behavior"},"reverse":{"type":"Boolean","desc":"Work in reverse (changes direction)","category":"behavior"},"vertical":{"type":"Boolean","desc":"Display in vertical direction","category":"behavior"},"color":{"type":"String","tsType":"NamedColor","desc":"Color name for component from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"style"},"track-color":{"type":"String","tsType":"NamedColor","desc":"Color name for the track (can be 'transparent' too) from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"style","addedIn":"v2.4"},"track-img":{"type":"String","desc":"Apply a pattern image on the track","transformAssetUrls":true,"examples":["'~assets/my-pattern.png'"],"category":"style","addedIn":"v2.4"},"inner-track-color":{"type":"String","tsType":"NamedColor","desc":"Color name for the inner track (can be 'transparent' too) from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"style","addedIn":"v2.4"},"inner-track-img":{"type":"String","desc":"Apply a pattern image on the inner track","transformAssetUrls":true,"examples":["'~assets/my-pattern.png'"],"category":"style","addedIn":"v2.4"},"selection-color":{"type":"String","tsType":"NamedColor","desc":"Color name for the selection bar (can be 'transparent' too) from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"style","addedIn":"v2.4"},"selection-img":{"type":"String","desc":"Apply a pattern image on the selection bar","transformAssetUrls":true,"examples":["'~assets/my-pattern.png'"],"category":"style","addedIn":"v2.4"},"label":{"type":"Boolean","desc":"Popup a label when user clicks/taps on the slider thumb and moves it","category":"content"},"label-color":{"type":"String","tsType":"NamedColor","desc":"Color name for component from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"style"},"label-text-color":{"type":"String","tsType":"NamedColor","desc":"Color name for component from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"style"},"switch-label-side":{"type":"Boolean","desc":"Switch the position of the label (top <-> bottom or left <-> right)","category":"style","addedIn":"v2.4"},"label-always":{"type":"Boolean","desc":"Always display the label","category":"behavior|content"},"markers":{"type":["Boolean","Number"],"desc":"Display markers on the track, one for each possible value for the model or using a custom step (when specifying a Number)","category":"content","examples":["5","true"]},"marker-labels":{"type":["Boolean","Array","Object","Function"],"tsType":"SliderMarkerLabels","desc":"Configure the marker labels (or show the default ones if 'true'); Array of definition Objects or Object with key-value where key is the model and the value is the marker label definition","definition":{"value":{"type":"Number","required":true,"desc":"Value of equivalent model where to position the marker"},"label":{"type":["Number","String"],"desc":"Label to use"},"classes":{"type":["String","Array","Object"],"tsType":"VueClassProp","desc":"CSS classes to be attributed to the marker label","examples":["'my-class-name'"]},"style":{"type":"Object","tsType":"VueStyleObjectProp","desc":"Style definitions to be attributed to the marker label","examples":["{ height: '24px' }"]}},"params":{"value":{"type":"Number","desc":"The marker value to transform","required":true}},"returns":{"type":["String","Object"],"desc":"Marker definition Object or directly a String for the label of the marker","definition":{"value":{"type":"Number","desc":"Value of equivalent model where to position the marker"},"label":{"type":["Number","String"],"desc":"Label to use"},"classes":{"type":["String","Array","Object"],"tsType":"VueClassProp","desc":"CSS classes to be attributed to the marker label","examples":["'my-class-name'"]},"style":{"type":"Object","tsType":"VueStyleObjectProp","desc":"Style definitions to be attributed to the marker label","examples":["{ height: '24px' }"]}}},"category":"content","examples":["true","[ { value: 0, label: '0%' }, { value: 5, classes: 'my-class', style: { width: '24px' } } ]","{ 0: '0%', 5: { label: '5%', classes: 'my-class', style: { width: '24px' } } }","val => (10 * val) + '%'","val => ({ label: (10 * val) + '%', classes: 'my-class', style: { width: '24px' } })"],"addedIn":"v2.4"},"marker-labels-class":{"type":"String","desc":"CSS class(es) to apply to the marker labels container","examples":["'text-orange'"],"category":"style","addedIn":"v2.4"},"switch-marker-labels-side":{"type":"Boolean","desc":"Switch the position of the marker labels (top <-> bottom or left <-> right)","category":"style","addedIn":"v2.4"},"track-size":{"type":"String","desc":"Track size (including CSS unit)","default":"'4px'","examples":["'35px'"],"category":"style","addedIn":"v2.4","required":false},"thumb-size":{"type":"String","desc":"Thumb size (including CSS unit)","default":"'20px'","examples":["'20px'"],"category":"style","addedIn":"v2.4","required":false},"thumb-color":{"type":"String","tsType":"NamedColor","desc":"Color name for component from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"style","addedIn":"v2.4"},"thumb-path":{"type":"String","desc":"Set custom thumb svg path","default":"'M 4, 10 a 6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0'","examples":["'M5 5 h10 v10 h-10 v-10'"],"category":"style","required":false},"dark":{"type":["Boolean","null"],"default":"null","desc":"Notify the component that the background is a dark color","category":"style","required":false},"dense":{"type":"Boolean","desc":"Dense mode; occupies less space","category":"style"},"disable":{"type":"Boolean","desc":"Put component in disabled mode","category":"state"},"readonly":{"type":"Boolean","desc":"Put component in readonly mode","category":"state"},"tabindex":{"type":["Number","String"],"desc":"Tabindex HTML attribute value","examples":["100","'0'"],"category":"general"},"model-value":{"desc":"Model of the component of type { min, max } (both values must be between global min/max); Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive","required":true,"syncable":true,"category":"model","type":["Object","null","undefined"],"definition":{"min":{"type":["Number","null"],"desc":"Model value for left thumb"},"max":{"type":["Number","null"],"desc":"Model value for right thumb"}},"default":"{ min: null, max: null }","examples":["# v-model=\"positionModel\""]},"drag-range":{"type":"Boolean","desc":"User can drag range instead of just the two thumbs","category":"content"},"drag-only-range":{"type":"Boolean","desc":"User can drag only the range instead and NOT the two thumbs","category":"content"},"left-label-color":{"type":"String","tsType":"NamedColor","desc":"Color name for left label background from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"labels"},"left-label-text-color":{"type":"String","tsType":"NamedColor","desc":"Color name for left label text from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"labels"},"right-label-color":{"type":"String","tsType":"NamedColor","desc":"Color name for right label background from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"labels"},"right-label-text-color":{"type":"String","tsType":"NamedColor","desc":"Color name for right label text from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"labels"},"left-label-value":{"type":["String","Number"],"desc":"Override default label for min value","examples":["# :left-label-value=\"model.min + 'px'\""],"category":"labels"},"right-label-value":{"type":["String","Number"],"desc":"Override default label for max value","examples":["# :right-label-value=\"model.max + 'px'\""],"category":"labels"},"left-thumb-color":{"type":"String","tsType":"NamedColor","desc":"Color name (from the Quasar Color Palette) for left thumb","examples":["'primary'","'teal'","'teal-10'"],"category":"labels","addedIn":"v2.4"},"right-thumb-color":{"type":"String","tsType":"NamedColor","desc":"Color name (from the Quasar Color Palette) for right thumb","examples":["'primary'","'teal'","'teal-10'"],"category":"labels","addedIn":"v2.4"}},"slots":{"marker-label":{"desc":"What should the menu display after filtering options and none are left to be displayed; Suggestion: <div>","addedIn":"v2.4","scope":{"marker":{"type":"Object","tsType":"SliderMarkerLabelConfig","desc":"Config for current marker label","definition":{"index":{"type":"Number","desc":"Index of the marker label (0-based)"},"value":{"type":"Number","desc":"Equivalent model value for the marker label"},"label":{"type":["Number","String"],"desc":"Configured label for the marker"},"classes":{"type":"String","desc":"Required CSS classes to be applied to the marker element"},"style":{"type":"Object","tsType":"VueStyleObjectProp","desc":"Style definitions to be attributed to the marker label","examples":["{ height: '24px' }"]}}},"markerList":{"type":"Array","tsType":"SliderMarkerLabelConfig","desc":"Array of marker label configs","definition":{"index":{"type":"Number","desc":"Index of the marker label (0-based)"},"value":{"type":"Number","desc":"Equivalent model value for the marker label"},"label":{"type":["Number","String"],"desc":"Configured label for the marker"},"classes":{"type":"String","desc":"Required CSS classes to be applied to the marker element"},"style":{"type":"Object","tsType":"VueStyleObjectProp","desc":"Style definitions to be attributed to the marker label","examples":["{ height: '24px' }"]}}},"markerMap":{"type":"Object","tsType":"SliderMarkerLabelObjectConfig","desc":"Object with key-value where key is the model and the value is the marker label config","definition":{"...key":{"type":"Object","desc":"Marker label config","definition":{"index":{"type":"Number","desc":"Index of the marker label (0-based)"},"value":{"type":"Number","desc":"Equivalent model value for the marker label"},"label":{"type":["Number","String"],"desc":"Configured label for the marker"},"classes":{"type":"String","desc":"Required CSS classes to be applied to the marker element"},"style":{"type":"Object","tsType":"VueStyleObjectProp","desc":"Style definitions to be attributed to the marker label","examples":["{ height: '24px' }"]}}}}},"classes":{"type":"String","desc":"Required CSS classes to be applied to the marker element"},"getStyle":{"type":"Function","desc":"Get CSS style Object to apply to a marker element at respective model value; For perf reasons, use only if requested model value is not already part of markerMap","params":{"value":{"type":"Number","desc":"The marker label equivalent model value","required":true}},"returns":{"type":"Object","desc":"CSS style Object to apply to a marker element at respective model value"}}}},"marker-label-group":{"desc":"What should the menu display after filtering options and none are left to be displayed; Suggestion: <div>","addedIn":"v2.4","scope":{"markerList":{"type":"Array","tsType":"SliderMarkerLabelConfig","desc":"Array of marker label configs","definition":{"index":{"type":"Number","desc":"Index of the marker label (0-based)"},"value":{"type":"Number","desc":"Equivalent model value for the marker label"},"label":{"type":["Number","String"],"desc":"Configured label for the marker"},"classes":{"type":"String","desc":"Required CSS classes to be applied to the marker element"},"style":{"type":"Object","tsType":"VueStyleObjectProp","desc":"Style definitions to be attributed to the marker label","examples":["{ height: '24px' }"]}}},"markerMap":{"type":"Object","tsType":"SliderMarkerLabelObjectConfig","desc":"Object with key-value where key is the model and the value is the marker label config","definition":{"...key":{"type":"Object","desc":"Marker label config","definition":{"index":{"type":"Number","desc":"Index of the marker label (0-based)"},"value":{"type":"Number","desc":"Equivalent model value for the marker label"},"label":{"type":["Number","String"],"desc":"Configured label for the marker"},"classes":{"type":"String","desc":"Required CSS classes to be applied to the marker element"},"style":{"type":"Object","tsType":"VueStyleObjectProp","desc":"Style definitions to be attributed to the marker label","examples":["{ height: '24px' }"]}}}}},"classes":{"type":"String","desc":"Required CSS classes to be applied to the marker element"},"getStyle":{"type":"Function","desc":"Get CSS style Object to apply to a marker element at respective model value; For perf reasons, use only if requested model value is not already part of markerMap","params":{"value":{"type":"Number","desc":"The marker label equivalent model value","required":true}},"returns":{"type":"Object","desc":"CSS style Object to apply to a marker element at respective model value"}}}}},"events":{"change":{"desc":"Emitted on lazy model value change (after user slides then releases the thumb)","params":{"value":{"type":"Any","desc":"New model value","required":true}}},"pan":{"desc":"Triggered when user starts panning on the component","params":{"phase":{"type":"String","desc":"Phase of panning","values":["'start'","'end'"]}}},"update:model-value":{"desc":"Emitted when the component needs to change the model; Is also used by v-model","params":{"value":{"type":"Any","desc":"New model value","required":true}}}}}
1
+ {"type":"component","meta":{"docsUrl":"https://v2.quasar.dev/vue-components/range"},"props":{"name":{"type":"String","desc":"Used to specify the name of the control; Useful if dealing with forms submitted directly to a URL","examples":["'car_id'"],"category":"behavior"},"min":{"type":"Number","desc":"Minimum value of the model; Set track's minimum value","default":"0","category":"model","required":false},"max":{"type":"Number","desc":"Maximum value of the model; Set track's maximum value","default":"100","category":"model","required":false},"inner-min":{"type":"Number","desc":"Inner minimum value of the model; Use in case you need the model value to be inside of the track's min-max values; Needs to be higher or equal to 'min' prop; Defaults to 'min' prop","category":"model","addedIn":"v2.4"},"inner-max":{"type":"Number","desc":"Inner maximum value of the model; Use in case you need the model value to be inside of the track's min-max values; Needs to be lower or equal to 'max' prop; Defaults to 'max' prop","category":"model","addedIn":"v2.4"},"step":{"type":"Number","desc":"Specify step amount between valid values (> 0.0); When step equals to 0 it defines infinite granularity","default":"1","category":"model","required":false},"snap":{"type":"Boolean","desc":"Snap on valid values, rather than sliding freely; Suggestion: use with 'step' prop","category":"behavior"},"reverse":{"type":"Boolean","desc":"Work in reverse (changes direction)","category":"behavior"},"vertical":{"type":"Boolean","desc":"Display in vertical direction","category":"behavior"},"color":{"type":"String","tsType":"NamedColor","desc":"Color name for component from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"style"},"track-color":{"type":"String","tsType":"NamedColor","desc":"Color name for the track (can be 'transparent' too) from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"style","addedIn":"v2.4"},"track-img":{"type":"String","desc":"Apply a pattern image on the track","transformAssetUrls":true,"examples":["'~assets/my-pattern.png'"],"category":"style","addedIn":"v2.4"},"inner-track-color":{"type":"String","tsType":"NamedColor","desc":"Color name for the inner track (can be 'transparent' too) from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"style","addedIn":"v2.4"},"inner-track-img":{"type":"String","desc":"Apply a pattern image on the inner track","transformAssetUrls":true,"examples":["'~assets/my-pattern.png'"],"category":"style","addedIn":"v2.4"},"selection-color":{"type":"String","tsType":"NamedColor","desc":"Color name for the selection bar (can be 'transparent' too) from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"style","addedIn":"v2.4"},"selection-img":{"type":"String","desc":"Apply a pattern image on the selection bar","transformAssetUrls":true,"examples":["'~assets/my-pattern.png'"],"category":"style","addedIn":"v2.4"},"label":{"type":"Boolean","desc":"Popup a label when user clicks/taps on the slider thumb and moves it","category":"content"},"label-color":{"type":"String","tsType":"NamedColor","desc":"Color name for component from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"style"},"label-text-color":{"type":"String","tsType":"NamedColor","desc":"Color name for component from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"style"},"switch-label-side":{"type":"Boolean","desc":"Switch the position of the label (top <-> bottom or left <-> right)","category":"style","addedIn":"v2.4"},"label-always":{"type":"Boolean","desc":"Always display the label","category":"behavior|content"},"markers":{"type":["Boolean","Number"],"desc":"Display markers on the track, one for each possible value for the model or using a custom step (when specifying a Number)","category":"content","examples":["5","true"]},"marker-labels":{"type":["Boolean","Array","Object","Function"],"tsType":"SliderMarkerLabels","desc":"Configure the marker labels (or show the default ones if 'true'); Array of definition Objects or Object with key-value where key is the model and the value is the marker label definition","definition":{"value":{"type":"Number","required":true,"desc":"Value of equivalent model where to position the marker"},"label":{"type":["Number","String"],"desc":"Label to use"},"classes":{"type":["String","Array","Object"],"tsType":"VueClassProp","desc":"CSS classes to be attributed to the marker label","examples":["'my-class-name'"]},"style":{"type":"Object","tsType":"VueStyleObjectProp","desc":"Style definitions to be attributed to the marker label","examples":["{ height: '24px' }"]}},"params":{"value":{"type":"Number","desc":"The marker value to transform","required":true}},"returns":{"type":["String","Object"],"desc":"Marker definition Object or directly a String for the label of the marker","definition":{"value":{"type":"Number","desc":"Value of equivalent model where to position the marker"},"label":{"type":["Number","String"],"desc":"Label to use"},"classes":{"type":["String","Array","Object"],"tsType":"VueClassProp","desc":"CSS classes to be attributed to the marker label","examples":["'my-class-name'"]},"style":{"type":"Object","tsType":"VueStyleObjectProp","desc":"Style definitions to be attributed to the marker label","examples":["{ height: '24px' }"]}}},"category":"content","examples":["true","[{ value: 0, label: '0%' }, { value: 5, classes: 'my-class', style: { width: '24px' } }]","{ 0: '0%', 5: { label: '5%', classes: 'my-class', style: { width: '24px' } } }","val => (10 * val) + '%'","val => ({ label: (10 * val) + '%', classes: 'my-class', style: { width: '24px' } })"],"addedIn":"v2.4"},"marker-labels-class":{"type":"String","desc":"CSS class(es) to apply to the marker labels container","examples":["'text-orange'"],"category":"style","addedIn":"v2.4"},"switch-marker-labels-side":{"type":"Boolean","desc":"Switch the position of the marker labels (top <-> bottom or left <-> right)","category":"style","addedIn":"v2.4"},"track-size":{"type":"String","desc":"Track size (including CSS unit)","default":"'4px'","examples":["'35px'"],"category":"style","addedIn":"v2.4","required":false},"thumb-size":{"type":"String","desc":"Thumb size (including CSS unit)","default":"'20px'","examples":["'20px'"],"category":"style","addedIn":"v2.4","required":false},"thumb-color":{"type":"String","tsType":"NamedColor","desc":"Color name for component from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"style","addedIn":"v2.4"},"thumb-path":{"type":"String","desc":"Set custom thumb svg path","default":"'M 4, 10 a 6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0'","examples":["'M5 5 h10 v10 h-10 v-10'"],"category":"style","required":false},"dark":{"type":["Boolean","null"],"default":"null","desc":"Notify the component that the background is a dark color","category":"style","required":false},"dense":{"type":"Boolean","desc":"Dense mode; occupies less space","category":"style"},"disable":{"type":"Boolean","desc":"Put component in disabled mode","category":"state"},"readonly":{"type":"Boolean","desc":"Put component in readonly mode","category":"state"},"tabindex":{"type":["Number","String"],"desc":"Tabindex HTML attribute value","examples":["100","'0'"],"category":"general"},"model-value":{"desc":"Model of the component of type { min, max } (both values must be between global min/max); Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive","required":true,"syncable":true,"category":"model","type":["Object","null","undefined"],"definition":{"min":{"type":["Number","null"],"desc":"Model value for left thumb"},"max":{"type":["Number","null"],"desc":"Model value for right thumb"}},"default":"{ min: null, max: null }","examples":["# v-model=\"positionModel\""]},"drag-range":{"type":"Boolean","desc":"User can drag range instead of just the two thumbs","category":"content"},"drag-only-range":{"type":"Boolean","desc":"User can drag only the range instead and NOT the two thumbs","category":"content"},"left-label-color":{"type":"String","tsType":"NamedColor","desc":"Color name for left label background from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"labels"},"left-label-text-color":{"type":"String","tsType":"NamedColor","desc":"Color name for left label text from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"labels"},"right-label-color":{"type":"String","tsType":"NamedColor","desc":"Color name for right label background from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"labels"},"right-label-text-color":{"type":"String","tsType":"NamedColor","desc":"Color name for right label text from the Quasar Color Palette","examples":["'primary'","'teal'","'teal-10'"],"category":"labels"},"left-label-value":{"type":["String","Number"],"desc":"Override default label for min value","examples":["# :left-label-value=\"model.min + 'px'\""],"category":"labels"},"right-label-value":{"type":["String","Number"],"desc":"Override default label for max value","examples":["# :right-label-value=\"model.max + 'px'\""],"category":"labels"},"left-thumb-color":{"type":"String","tsType":"NamedColor","desc":"Color name (from the Quasar Color Palette) for left thumb","examples":["'primary'","'teal'","'teal-10'"],"category":"labels","addedIn":"v2.4"},"right-thumb-color":{"type":"String","tsType":"NamedColor","desc":"Color name (from the Quasar Color Palette) for right thumb","examples":["'primary'","'teal'","'teal-10'"],"category":"labels","addedIn":"v2.4"}},"slots":{"marker-label":{"desc":"What should the menu display after filtering options and none are left to be displayed; Suggestion: <div>","addedIn":"v2.4","scope":{"marker":{"type":"Object","tsType":"SliderMarkerLabelConfig","desc":"Config for current marker label","definition":{"index":{"type":"Number","desc":"Index of the marker label (0-based)"},"value":{"type":"Number","desc":"Equivalent model value for the marker label"},"label":{"type":["Number","String"],"desc":"Configured label for the marker"},"classes":{"type":"String","desc":"Required CSS classes to be applied to the marker element"},"style":{"type":"Object","tsType":"VueStyleObjectProp","desc":"Style definitions to be attributed to the marker label","examples":["{ height: '24px' }"]}}},"markerList":{"type":"Array","tsType":"SliderMarkerLabelConfig","desc":"Array of marker label configs","definition":{"index":{"type":"Number","desc":"Index of the marker label (0-based)"},"value":{"type":"Number","desc":"Equivalent model value for the marker label"},"label":{"type":["Number","String"],"desc":"Configured label for the marker"},"classes":{"type":"String","desc":"Required CSS classes to be applied to the marker element"},"style":{"type":"Object","tsType":"VueStyleObjectProp","desc":"Style definitions to be attributed to the marker label","examples":["{ height: '24px' }"]}}},"markerMap":{"type":"Object","tsType":"SliderMarkerLabelObjectConfig","desc":"Object with key-value where key is the model and the value is the marker label config","definition":{"...key":{"type":"Object","desc":"Marker label config","definition":{"index":{"type":"Number","desc":"Index of the marker label (0-based)"},"value":{"type":"Number","desc":"Equivalent model value for the marker label"},"label":{"type":["Number","String"],"desc":"Configured label for the marker"},"classes":{"type":"String","desc":"Required CSS classes to be applied to the marker element"},"style":{"type":"Object","tsType":"VueStyleObjectProp","desc":"Style definitions to be attributed to the marker label","examples":["{ height: '24px' }"]}}}}},"classes":{"type":"String","desc":"Required CSS classes to be applied to the marker element"},"getStyle":{"type":"Function","desc":"Get CSS style Object to apply to a marker element at respective model value; For perf reasons, use only if requested model value is not already part of markerMap","params":{"value":{"type":"Number","desc":"The marker label equivalent model value","required":true}},"returns":{"type":"Object","desc":"CSS style Object to apply to a marker element at respective model value"}}}},"marker-label-group":{"desc":"What should the menu display after filtering options and none are left to be displayed; Suggestion: <div>","addedIn":"v2.4","scope":{"markerList":{"type":"Array","tsType":"SliderMarkerLabelConfig","desc":"Array of marker label configs","definition":{"index":{"type":"Number","desc":"Index of the marker label (0-based)"},"value":{"type":"Number","desc":"Equivalent model value for the marker label"},"label":{"type":["Number","String"],"desc":"Configured label for the marker"},"classes":{"type":"String","desc":"Required CSS classes to be applied to the marker element"},"style":{"type":"Object","tsType":"VueStyleObjectProp","desc":"Style definitions to be attributed to the marker label","examples":["{ height: '24px' }"]}}},"markerMap":{"type":"Object","tsType":"SliderMarkerLabelObjectConfig","desc":"Object with key-value where key is the model and the value is the marker label config","definition":{"...key":{"type":"Object","desc":"Marker label config","definition":{"index":{"type":"Number","desc":"Index of the marker label (0-based)"},"value":{"type":"Number","desc":"Equivalent model value for the marker label"},"label":{"type":["Number","String"],"desc":"Configured label for the marker"},"classes":{"type":"String","desc":"Required CSS classes to be applied to the marker element"},"style":{"type":"Object","tsType":"VueStyleObjectProp","desc":"Style definitions to be attributed to the marker label","examples":["{ height: '24px' }"]}}}}},"classes":{"type":"String","desc":"Required CSS classes to be applied to the marker element"},"getStyle":{"type":"Function","desc":"Get CSS style Object to apply to a marker element at respective model value; For perf reasons, use only if requested model value is not already part of markerMap","params":{"value":{"type":"Number","desc":"The marker label equivalent model value","required":true}},"returns":{"type":"Object","desc":"CSS style Object to apply to a marker element at respective model value"}}}}},"events":{"change":{"desc":"Emitted on lazy model value change (after user slides then releases the thumb)","params":{"value":{"type":"Any","desc":"New model value","required":true}}},"pan":{"desc":"Triggered when user starts panning on the component","params":{"phase":{"type":"String","desc":"Phase of panning","values":["'start'","'end'"]}}},"update:model-value":{"desc":"Emitted when the component needs to change the model; Is also used by v-model","params":{"value":{"type":"Any","desc":"New model value","required":true}}}}}
@@ -1 +1 @@
1
- {"type":"component","meta":{"docsUrl":"https://v2.quasar.dev/vue-components/rating"},"props":{"name":{"type":"String","desc":"Used to specify the name of the control; Useful if dealing with forms submitted directly to a URL","examples":["'car_id'"],"category":"behavior"},"size":{"type":"String","desc":"Size in CSS units, including unit name or standard size name (xs|sm|md|lg|xl)","examples":["'16px'","'2rem'","'xs'","'md'"],"category":"style"},"model-value":{"desc":"Model of the component; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive","required":true,"syncable":true,"category":"model","type":"Number","examples":["# v-model=\"rating\"","# :model-value=\"rating\"","# :model-value=\"2\""]},"max":{"type":["Number","String"],"desc":"Number of icons to display","default":"5","category":"general","required":false},"icon":{"type":["String","Array"],"desc":"Icon name following Quasar convention; make sure you have the icon library installed unless you are using 'img:' prefix; If an array is provided each rating value will use the corresponding icon in the array (0 based)","examples":["'map'","'ion-add'","'img:https://cdn.quasar.dev/logo-v2/svg/logo.svg'","'img:path/to/some_image.png'"],"category":"content"},"icon-selected":{"type":["String","Array"],"desc":"Icon name following Quasar convention to be used when selected (optional); make sure you have the icon library installed unless you are using 'img:' prefix; If an array is provided each rating value will use the corresponding icon in the array (0 based)","examples":["'map'","'ion-add'","'img:https://cdn.quasar.dev/logo-v2/svg/logo.svg'","'img:path/to/some_image.png'"],"category":"content"},"icon-half":{"type":["String","Array"],"desc":"Icon name following Quasar convention to be used when selected (optional); make sure you have the icon library installed unless you are using 'img:' prefix; If an array is provided each rating value will use the corresponding icon in the array (0 based)","examples":["'map'","'ion-add'","'img:https://cdn.quasar.dev/logo-v2/svg/logo.svg'","'img:path/to/some_image.png'"],"category":"content"},"icon-aria-label":{"type":["String","Array"],"desc":"Label to be set on aria-label for Icon; If an array is provided each rating value will use the corresponding aria-label in the array (0 based); If string value is provided the rating value will be appended; If not provided the name of the icon will be used","examples":["'Rating'","[ 'Bad', 'Normal', 'Good' ]"],"category":"accessibility","addedIn":"v1.20.3"},"color":{"type":["String","Array"],"tsType":"NamedColor","desc":"Color name for component from the Quasar Color Palette; v1.5.0+: If an array is provided each rating value will use the corresponding color in the array (0 based)","examples":["'primary'","'teal'","'teal-10'","[ 'accent', 'grey-7' ]"],"category":"style"},"color-selected":{"type":["String","Array"],"tsType":"NamedColor","desc":"Color name from the Quasar Palette for selected icons","examples":["'primary'","'teal'","'teal-10'"],"category":"style"},"color-half":{"type":["String","Array"],"tsType":"NamedColor","desc":"Color name from the Quasar Palette for half selected icons","examples":["'primary'","'teal'","'teal-10'"],"category":"style"},"no-dimming":{"type":"Boolean","desc":"Does not lower opacity for unselected icons","category":"style"},"no-reset":{"type":"Boolean","desc":"When used, disables default behavior of clicking/tapping on icon which represents current model value to reset model to 0","category":"model"},"readonly":{"type":"Boolean","desc":"Put component in readonly mode","category":"state"},"disable":{"type":"Boolean","desc":"Put component in disabled mode","category":"state"}},"slots":{"tip-[name]":{"desc":"Slot to define the tooltip of icon at '[name]' where name is a 1-based index; Suggestion: QTooltip"}},"events":{"update:model-value":{"desc":"Emitted when the component needs to change the model; Is also used by v-model","params":{"value":{"type":"Any","desc":"New model value","required":true}}}}}
1
+ {"type":"component","meta":{"docsUrl":"https://v2.quasar.dev/vue-components/rating"},"props":{"name":{"type":"String","desc":"Used to specify the name of the control; Useful if dealing with forms submitted directly to a URL","examples":["'car_id'"],"category":"behavior"},"size":{"type":"String","desc":"Size in CSS units, including unit name or standard size name (xs|sm|md|lg|xl)","examples":["'16px'","'2rem'","'xs'","'md'"],"category":"style"},"model-value":{"desc":"Model of the component; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive","required":true,"syncable":true,"category":"model","type":"Number","examples":["# v-model=\"rating\"","# :model-value=\"rating\"","# :model-value=\"2\""]},"max":{"type":["Number","String"],"desc":"Number of icons to display","default":"5","category":"general","required":false},"icon":{"type":["String","Array"],"desc":"Icon name following Quasar convention; make sure you have the icon library installed unless you are using 'img:' prefix; If an array is provided each rating value will use the corresponding icon in the array (0 based)","examples":["'map'","'ion-add'","'img:https://cdn.quasar.dev/logo-v2/svg/logo.svg'","'img:path/to/some_image.png'"],"category":"content"},"icon-selected":{"type":["String","Array"],"desc":"Icon name following Quasar convention to be used when selected (optional); make sure you have the icon library installed unless you are using 'img:' prefix; If an array is provided each rating value will use the corresponding icon in the array (0 based)","examples":["'map'","'ion-add'","'img:https://cdn.quasar.dev/logo-v2/svg/logo.svg'","'img:path/to/some_image.png'"],"category":"content"},"icon-half":{"type":["String","Array"],"desc":"Icon name following Quasar convention to be used when selected (optional); make sure you have the icon library installed unless you are using 'img:' prefix; If an array is provided each rating value will use the corresponding icon in the array (0 based)","examples":["'map'","'ion-add'","'img:https://cdn.quasar.dev/logo-v2/svg/logo.svg'","'img:path/to/some_image.png'"],"category":"content"},"icon-aria-label":{"type":["String","Array"],"desc":"Label to be set on aria-label for Icon; If an array is provided each rating value will use the corresponding aria-label in the array (0 based); If string value is provided the rating value will be appended; If not provided the name of the icon will be used","examples":["'Rating'","['Bad', 'Normal', 'Good']"],"category":"accessibility","addedIn":"v1.20.3"},"color":{"type":["String","Array"],"tsType":"NamedColor","desc":"Color name for component from the Quasar Color Palette; v1.5.0+: If an array is provided each rating value will use the corresponding color in the array (0 based)","examples":["'primary'","'teal'","'teal-10'","['accent', 'grey-7']"],"category":"style"},"color-selected":{"type":["String","Array"],"tsType":"NamedColor","desc":"Color name from the Quasar Palette for selected icons","examples":["'primary'","'teal'","'teal-10'"],"category":"style"},"color-half":{"type":["String","Array"],"tsType":"NamedColor","desc":"Color name from the Quasar Palette for half selected icons","examples":["'primary'","'teal'","'teal-10'"],"category":"style"},"no-dimming":{"type":"Boolean","desc":"Does not lower opacity for unselected icons","category":"style"},"no-reset":{"type":"Boolean","desc":"When used, disables default behavior of clicking/tapping on icon which represents current model value to reset model to 0","category":"model"},"readonly":{"type":"Boolean","desc":"Put component in readonly mode","category":"state"},"disable":{"type":"Boolean","desc":"Put component in disabled mode","category":"state"}},"slots":{"tip-[name]":{"desc":"Slot to define the tooltip of icon at '[name]' where name is a 1-based index; Suggestion: QTooltip"}},"events":{"update:model-value":{"desc":"Emitted when the component needs to change the model; Is also used by v-model","params":{"value":{"type":"Any","desc":"New model value","required":true}}}}}
@@ -1 +1 @@
1
- {"type":"component","meta":{"docsUrl":"https://v2.quasar.dev/vue-components/scroll-area"},"props":{"dark":{"type":["Boolean","null"],"default":"null","desc":"Notify the component that the background is a dark color","category":"style","required":false},"vertical-offset":{"type":"Array","desc":"Adds [top, bottom] offset to vertical thumb","default":"# [ 0, 0 ]","category":"style","addedIn":"v2.17","required":false},"horizontal-offset":{"type":"Array","desc":"Adds [left, right] offset to horizontal thumb","default":"# [ 0, 0 ]","category":"style","addedIn":"v2.17","required":false},"bar-style":{"type":["String","Array","Object"],"tsType":"VueStyleProp","desc":"Object with CSS properties and values for custom styling the scrollbars (both vertical and horizontal)","examples":["{ borderRadius: '5px', background: 'red', opacity: 1 }"],"category":"style"},"vertical-bar-style":{"type":["String","Array","Object"],"tsType":"VueStyleProp","desc":"Object with CSS properties and values for custom styling the vertical scrollbar; Is applied on top of 'bar-style' prop","examples":["{ right: '4px', borderRadius: '5px', background: 'red', width: '10px', opacity: 1 }"],"category":"style"},"horizontal-bar-style":{"type":["String","Array","Object"],"tsType":"VueStyleProp","desc":"Object with CSS properties and values for custom styling the horizontal scrollbar; Is applied on top of 'bar-style' prop","examples":["{ bottom: '4px', borderRadius: '5px', background: 'red', height: '10px', opacity: 1 }"],"category":"style"},"thumb-style":{"type":"Object","tsType":"VueStyleObjectProp","desc":"Object with CSS properties and values for custom styling the thumb of scrollbars (both vertical and horizontal)","examples":["{ right: '4px', borderRadius: '5px', background: 'red', width: '10px', opacity: 1 }"],"category":"style"},"vertical-thumb-style":{"type":"Object","tsType":"VueStyleObjectProp","desc":"Object with CSS properties and values for custom styling the thumb of the vertical scrollbar; Is applied on top of 'thumb-style' prop","examples":["{ right: '4px', borderRadius: '5px', background: 'red', width: '10px', opacity: 1 }"],"category":"style"},"horizontal-thumb-style":{"type":"Object","tsType":"VueStyleObjectProp","desc":"Object with CSS properties and values for custom styling the thumb of the horizontal scrollbar; Is applied on top of 'thumb-style' prop","examples":["{ bottom: '4px', borderRadius: '5px', background: 'red', height: '10px', opacity: 1 }"],"category":"style"},"content-style":{"type":["String","Array","Object"],"tsType":"VueStyleProp","desc":"Object with CSS properties and values for styling the container of QScrollArea","examples":["{ backgroundColor: '#C0C0C0' }"],"category":"style"},"content-active-style":{"type":["String","Array","Object"],"tsType":"VueStyleProp","desc":"Object with CSS properties and values for styling the container of QScrollArea when scroll area becomes active (is mouse hovered)","examples":["{ backgroundColor: 'white' }"],"category":"style"},"visible":{"type":["Boolean","null"],"default":"null","desc":"Manually control the visibility of the scrollbar; Overrides default mouse over/leave behavior","category":"behavior","required":false},"delay":{"type":["Number","String"],"desc":"When content changes, the scrollbar appears; this delay defines the amount of time (in milliseconds) before scrollbars disappear again (if component is not hovered)","default":"1000","category":"behavior","required":false},"tabindex":{"type":["Number","String"],"desc":"Tabindex HTML attribute value","examples":["100","'0'"],"category":"general"}},"slots":{"default":{"desc":"Default slot in the devland unslotted content of the component"}},"events":{"scroll":{"desc":"Emitted when scroll information changes (and listener is configured)","params":{"info":{"type":"Object","desc":"An object containing scroll information","definition":{"ref":{"type":"Component","tsType":"QScrollArea","required":true,"desc":"Vue reference to the QScrollArea which triggered the event"},"verticalPosition":{"type":"Number","required":true,"desc":"Vertical scroll position (in px)"},"verticalPercentage":{"type":"Number","required":true,"desc":"Vertical scroll percentage (0.0 <= x <= 1.0)"},"verticalSize":{"type":"Number","required":true,"desc":"Vertical scroll size (in px)"},"verticalContainerSize":{"type":"Number","required":true,"desc":"Height of the container (in px)"},"verticalContainerInnerSize":{"type":"Number","required":true,"desc":"Height of the container without the vertical offset (in px)","addedIn":"v2.17"},"horizontalPosition":{"type":"Number","required":true,"desc":"Horizontal scroll position (in px)"},"horizontalPercentage":{"type":"Number","required":true,"desc":"Horizontal scroll percentage (0.0 <= x <= 1.0)"},"horizontalSize":{"type":"Number","required":true,"desc":"Horizontal scroll size (in px)"},"horizontalContainerSize":{"type":"Number","required":true,"desc":"Width of the container (in px)"},"horizontalContainerInnerSize":{"type":"Number","required":true,"desc":"Width of the container without the horizontal offset (in px)","addedIn":"v2.17"}}}}}},"methods":{"getScrollTarget":{"desc":"Get the scrolling DOM element target","params":null,"returns":{"type":"Element","desc":"DOM element upon which scrolling takes place"}},"getScroll":{"desc":"Get the current scroll information","params":null,"returns":{"type":"Object","desc":"Scroll information","definition":{"verticalPosition":{"type":"Number","required":true,"desc":"Vertical scroll position (in px)"},"verticalPercentage":{"type":"Number","required":true,"desc":"Vertical scroll percentage (0.0 <= x <= 1.0)"},"verticalSize":{"type":"Number","required":true,"desc":"Vertical scroll size (in px)"},"verticalContainerSize":{"type":"Number","required":true,"desc":"Height of the container (in px)"},"verticalContainerInnerSize":{"type":"Number","required":true,"desc":"Height of the container without the vertical offset (in px)","addedIn":"v2.17"},"horizontalPosition":{"type":"Number","required":true,"desc":"Horizontal scroll position (in px)"},"horizontalPercentage":{"type":"Number","required":true,"desc":"Horizontal scroll percentage (0.0 <= x <= 1.0)"},"horizontalSize":{"type":"Number","required":true,"desc":"Horizontal scroll size (in px)"},"horizontalContainerSize":{"type":"Number","required":true,"desc":"Width of the container (in px)"},"horizontalContainerInnerSize":{"type":"Number","required":true,"desc":"Width of the container without the horizontal offset (in px)","addedIn":"v2.17"}}}},"getScrollPosition":{"desc":"Get current scroll position","params":null,"returns":{"type":"Object","desc":"An object containing scroll position information","definition":{"top":{"type":"Number","required":true,"desc":"Scroll offset from top (vertical)"},"left":{"type":"Number","required":true,"desc":"Scroll offset from left (horizontal)"}},"examples":["{ top: 10, left: 0 }"]}},"getScrollPercentage":{"desc":"Get current scroll position in percentage (0.0 <= x <= 1.0)","params":null,"returns":{"type":"Object","desc":"An object containing scroll position information in percentage","definition":{"top":{"type":"Number","required":true,"desc":"Scroll percentage (0.0 <= x <= 1.0) offset from top (vertical)"},"left":{"type":"Number","required":true,"desc":"Scroll percentage (0.0 <= x <= 1.0) offset from left (horizontal)"}},"examples":["{ top: 0.212, left: 0 }"]}},"setScrollPosition":{"desc":"Set scroll position to an offset; If a duration (in milliseconds) is specified then the scroll is animated","params":{"axis":{"type":"String","required":true,"desc":"Scroll axis","values":["'vertical'","'horizontal'"]},"offset":{"type":"Number","required":true,"desc":"Scroll position offset from top (in pixels)"},"duration":{"type":"Number","desc":"Duration (in milliseconds) enabling animated scroll"}},"returns":null},"setScrollPercentage":{"desc":"Set scroll position to a percentage (0.0 <= x <= 1.0) of the total scrolling size; If a duration (in milliseconds) is specified then the scroll is animated","params":{"axis":{"type":"String","desc":"Scroll axis","values":["'vertical'","'horizontal'"],"required":true},"offset":{"type":"Number","desc":"Scroll percentage (0.0 <= x <= 1.0) of the total scrolling size","required":true},"duration":{"type":"Number","desc":"Duration (in milliseconds) enabling animated scroll"}},"returns":null}}}
1
+ {"type":"component","meta":{"docsUrl":"https://v2.quasar.dev/vue-components/scroll-area"},"props":{"dark":{"type":["Boolean","null"],"default":"null","desc":"Notify the component that the background is a dark color","category":"style","required":false},"vertical-offset":{"type":"Array","desc":"Adds [top, bottom] offset to vertical thumb","default":"# [0, 0]","category":"style","addedIn":"v2.17","required":false},"horizontal-offset":{"type":"Array","desc":"Adds [left, right] offset to horizontal thumb","default":"# [0, 0]","category":"style","addedIn":"v2.17","required":false},"bar-style":{"type":["String","Array","Object"],"tsType":"VueStyleProp","desc":"Object with CSS properties and values for custom styling the scrollbars (both vertical and horizontal)","examples":["{ borderRadius: '5px', background: 'red', opacity: 1 }"],"category":"style"},"vertical-bar-style":{"type":["String","Array","Object"],"tsType":"VueStyleProp","desc":"Object with CSS properties and values for custom styling the vertical scrollbar; Is applied on top of 'bar-style' prop","examples":["{ right: '4px', borderRadius: '5px', background: 'red', width: '10px', opacity: 1 }"],"category":"style"},"horizontal-bar-style":{"type":["String","Array","Object"],"tsType":"VueStyleProp","desc":"Object with CSS properties and values for custom styling the horizontal scrollbar; Is applied on top of 'bar-style' prop","examples":["{ bottom: '4px', borderRadius: '5px', background: 'red', height: '10px', opacity: 1 }"],"category":"style"},"thumb-style":{"type":"Object","tsType":"VueStyleObjectProp","desc":"Object with CSS properties and values for custom styling the thumb of scrollbars (both vertical and horizontal)","examples":["{ right: '4px', borderRadius: '5px', background: 'red', width: '10px', opacity: 1 }"],"category":"style"},"vertical-thumb-style":{"type":"Object","tsType":"VueStyleObjectProp","desc":"Object with CSS properties and values for custom styling the thumb of the vertical scrollbar; Is applied on top of 'thumb-style' prop","examples":["{ right: '4px', borderRadius: '5px', background: 'red', width: '10px', opacity: 1 }"],"category":"style"},"horizontal-thumb-style":{"type":"Object","tsType":"VueStyleObjectProp","desc":"Object with CSS properties and values for custom styling the thumb of the horizontal scrollbar; Is applied on top of 'thumb-style' prop","examples":["{ bottom: '4px', borderRadius: '5px', background: 'red', height: '10px', opacity: 1 }"],"category":"style"},"content-style":{"type":["String","Array","Object"],"tsType":"VueStyleProp","desc":"Object with CSS properties and values for styling the container of QScrollArea","examples":["{ backgroundColor: '#C0C0C0' }"],"category":"style"},"content-active-style":{"type":["String","Array","Object"],"tsType":"VueStyleProp","desc":"Object with CSS properties and values for styling the container of QScrollArea when scroll area becomes active (is mouse hovered)","examples":["{ backgroundColor: 'white' }"],"category":"style"},"visible":{"type":["Boolean","null"],"default":"null","desc":"Manually control the visibility of the scrollbar; Overrides default mouse over/leave behavior","category":"behavior","required":false},"delay":{"type":["Number","String"],"desc":"When content changes, the scrollbar appears; this delay defines the amount of time (in milliseconds) before scrollbars disappear again (if component is not hovered)","default":"1000","category":"behavior","required":false},"tabindex":{"type":["Number","String"],"desc":"Tabindex HTML attribute value","examples":["100","'0'"],"category":"general"}},"slots":{"default":{"desc":"Default slot in the devland unslotted content of the component"}},"events":{"scroll":{"desc":"Emitted when scroll information changes (and listener is configured)","params":{"info":{"type":"Object","desc":"An object containing scroll information","definition":{"ref":{"type":"Component","tsType":"QScrollArea","required":true,"desc":"Vue reference to the QScrollArea which triggered the event"},"verticalPosition":{"type":"Number","required":true,"desc":"Vertical scroll position (in px)"},"verticalPercentage":{"type":"Number","required":true,"desc":"Vertical scroll percentage (0.0 <= x <= 1.0)"},"verticalSize":{"type":"Number","required":true,"desc":"Vertical scroll size (in px)"},"verticalContainerSize":{"type":"Number","required":true,"desc":"Height of the container (in px)"},"verticalContainerInnerSize":{"type":"Number","required":true,"desc":"Height of the container without the vertical offset (in px)","addedIn":"v2.17"},"horizontalPosition":{"type":"Number","required":true,"desc":"Horizontal scroll position (in px)"},"horizontalPercentage":{"type":"Number","required":true,"desc":"Horizontal scroll percentage (0.0 <= x <= 1.0)"},"horizontalSize":{"type":"Number","required":true,"desc":"Horizontal scroll size (in px)"},"horizontalContainerSize":{"type":"Number","required":true,"desc":"Width of the container (in px)"},"horizontalContainerInnerSize":{"type":"Number","required":true,"desc":"Width of the container without the horizontal offset (in px)","addedIn":"v2.17"}}}}}},"methods":{"getScrollTarget":{"desc":"Get the scrolling DOM element target","params":null,"returns":{"type":"Element","desc":"DOM element upon which scrolling takes place"}},"getScroll":{"desc":"Get the current scroll information","params":null,"returns":{"type":"Object","desc":"Scroll information","definition":{"verticalPosition":{"type":"Number","required":true,"desc":"Vertical scroll position (in px)"},"verticalPercentage":{"type":"Number","required":true,"desc":"Vertical scroll percentage (0.0 <= x <= 1.0)"},"verticalSize":{"type":"Number","required":true,"desc":"Vertical scroll size (in px)"},"verticalContainerSize":{"type":"Number","required":true,"desc":"Height of the container (in px)"},"verticalContainerInnerSize":{"type":"Number","required":true,"desc":"Height of the container without the vertical offset (in px)","addedIn":"v2.17"},"horizontalPosition":{"type":"Number","required":true,"desc":"Horizontal scroll position (in px)"},"horizontalPercentage":{"type":"Number","required":true,"desc":"Horizontal scroll percentage (0.0 <= x <= 1.0)"},"horizontalSize":{"type":"Number","required":true,"desc":"Horizontal scroll size (in px)"},"horizontalContainerSize":{"type":"Number","required":true,"desc":"Width of the container (in px)"},"horizontalContainerInnerSize":{"type":"Number","required":true,"desc":"Width of the container without the horizontal offset (in px)","addedIn":"v2.17"}}}},"getScrollPosition":{"desc":"Get current scroll position","params":null,"returns":{"type":"Object","desc":"An object containing scroll position information","definition":{"top":{"type":"Number","required":true,"desc":"Scroll offset from top (vertical)"},"left":{"type":"Number","required":true,"desc":"Scroll offset from left (horizontal)"}},"examples":["{ top: 10, left: 0 }"]}},"getScrollPercentage":{"desc":"Get current scroll position in percentage (0.0 <= x <= 1.0)","params":null,"returns":{"type":"Object","desc":"An object containing scroll position information in percentage","definition":{"top":{"type":"Number","required":true,"desc":"Scroll percentage (0.0 <= x <= 1.0) offset from top (vertical)"},"left":{"type":"Number","required":true,"desc":"Scroll percentage (0.0 <= x <= 1.0) offset from left (horizontal)"}},"examples":["{ top: 0.212, left: 0 }"]}},"setScrollPosition":{"desc":"Set scroll position to an offset; If a duration (in milliseconds) is specified then the scroll is animated","params":{"axis":{"type":"String","required":true,"desc":"Scroll axis","values":["'vertical'","'horizontal'"]},"offset":{"type":"Number","required":true,"desc":"Scroll position offset from top (in pixels)"},"duration":{"type":"Number","desc":"Duration (in milliseconds) enabling animated scroll"}},"returns":null},"setScrollPercentage":{"desc":"Set scroll position to a percentage (0.0 <= x <= 1.0) of the total scrolling size; If a duration (in milliseconds) is specified then the scroll is animated","params":{"axis":{"type":"String","desc":"Scroll axis","values":["'vertical'","'horizontal'"],"required":true},"offset":{"type":"Number","desc":"Scroll percentage (0.0 <= x <= 1.0) of the total scrolling size","required":true},"duration":{"type":"Number","desc":"Duration (in milliseconds) enabling animated scroll"}},"returns":null}}}