quasar 2.18.7 → 2.19.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +15 -28
  157. package/dist/quasar.prod.css +1 -1
  158. package/dist/quasar.rtl.css +14 -28
  159. package/dist/quasar.rtl.prod.css +1 -1
  160. package/dist/quasar.sass +4 -25
  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 +0 -8
  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 +3 -16
  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
@@ -15,16 +15,12 @@ describe('[QBtn API]', () => {
15
15
  const wrapper = mount(QBtn)
16
16
  const target = wrapper.get('.q-btn')
17
17
 
18
- expect(
19
- target.$style('font-size')
20
- ).not.toBe(propVal)
18
+ expect(target.$style('font-size')).not.toBe(propVal)
21
19
 
22
20
  await wrapper.setProps({ size: propVal })
23
21
  await flushPromises()
24
22
 
25
- expect(
26
- target.$style('font-size')
27
- ).toBe(propVal)
23
+ expect(target.$style('font-size')).toBe(propVal)
28
24
  })
29
25
 
30
26
  test('type String has effect (as "xs")', async () => {
@@ -32,72 +28,58 @@ describe('[QBtn API]', () => {
32
28
  const wrapper = mount(QBtn)
33
29
  const target = wrapper.get('.q-btn')
34
30
 
35
- expect(
36
- target.$style('font-size')
37
- ).not.toBe(`${ defaultSizes.xs }px`)
31
+ expect(target.$style('font-size')).not.toBe(`${defaultSizes.xs}px`)
38
32
 
39
33
  await wrapper.setProps({ size: propVal })
40
34
  await flushPromises()
41
35
 
42
- expect(
43
- target.$style('font-size')
44
- ).toBe(`${ defaultSizes.xs }px`)
36
+ expect(target.$style('font-size')).toBe(`${defaultSizes.xs}px`)
45
37
  })
46
38
  })
47
39
 
48
40
  describe('[(prop)type]', () => {
49
- test.each([
50
- [ 'button' ],
51
- [ 'a' ]
52
- ])('type "%s" has effect', (propVal) => {
41
+ test.each([['button'], ['a']])('type "%s" has effect', propVal => {
53
42
  const wrapper = mount(QBtn, {
54
43
  props: {
55
44
  type: propVal
56
45
  }
57
46
  })
58
47
 
59
- expect(
60
- wrapper.get('.q-btn').element.tagName.toLowerCase()
61
- ).toBe(propVal)
48
+ expect(wrapper.get('.q-btn').element.tagName.toLowerCase()).toBe(
49
+ propVal
50
+ )
62
51
  })
63
52
 
64
- test.each([
65
- [ 'submit' ],
66
- [ 'reset' ]
67
- ])('type "%s" has effect', (propVal) => {
53
+ test.each([['submit'], ['reset']])('type "%s" has effect', propVal => {
68
54
  const wrapper = mount(QBtn, {
69
55
  props: {
70
56
  type: propVal
71
57
  }
72
58
  })
73
59
 
74
- expect(
75
- wrapper.get('.q-btn').element.tagName.toLowerCase()
76
- ).toBe('button')
60
+ expect(wrapper.get('.q-btn').element.tagName.toLowerCase()).toBe(
61
+ 'button'
62
+ )
77
63
  })
78
64
 
79
65
  // accessibility
80
- test.each([
81
- [ 'media/html' ],
82
- [ 'image/png' ]
83
- ])('type "%s" has effect', (propVal) => {
84
- const wrapper = mount(QBtn, {
85
- props: {
86
- type: propVal,
87
- href: 'https://quasar.dev'
88
- }
89
- })
66
+ test.each([['media/html'], ['image/png']])(
67
+ 'type "%s" has effect',
68
+ propVal => {
69
+ const wrapper = mount(QBtn, {
70
+ props: {
71
+ type: propVal,
72
+ href: 'https://quasar.dev'
73
+ }
74
+ })
90
75
 
91
- const target = wrapper.get('.q-btn')
76
+ const target = wrapper.get('.q-btn')
92
77
 
93
- expect(
94
- target.element.tagName.toLowerCase()
95
- ).toBe('a')
78
+ expect(target.element.tagName.toLowerCase()).toBe('a')
96
79
 
97
- expect(
98
- target.attributes('type')
99
- ).toBe(propVal)
100
- })
80
+ expect(target.attributes('type')).toBe(propVal)
81
+ }
82
+ )
101
83
  })
102
84
 
103
85
  describe('[(prop)to]', () => {
@@ -107,32 +89,28 @@ describe('[QBtn API]', () => {
107
89
 
108
90
  const wrapper = mount(QBtn, {
109
91
  global: {
110
- plugins: [ router ]
92
+ plugins: [router]
111
93
  }
112
94
  })
113
95
 
114
- expect(
115
- wrapper.find('a').exists()
116
- ).toBe(false)
96
+ expect(wrapper.find('a').exists()).toBe(false)
117
97
 
118
98
  await wrapper.setProps({ to: testRoute })
119
99
  await flushPromises()
120
100
 
121
- expect(
122
- wrapper.get('a').attributes('href')
123
- ).toBe(testRoute)
101
+ expect(wrapper.get('a').attributes('href')).toBe(testRoute)
124
102
 
125
103
  const routerFn = vi.spyOn(router, 'push')
126
104
 
127
105
  await wrapper.trigger('click')
128
106
  await flushPromises()
129
107
 
130
- expect(
131
- router.currentRoute.value.path
132
- ).toBe(testRoute)
108
+ expect(router.currentRoute.value.path).toBe(testRoute)
133
109
 
134
110
  expect(routerFn).toHaveBeenCalledTimes(1)
135
111
  expect(routerFn).toHaveBeenCalledWith(testRoute)
112
+
113
+ vi.restoreAllMocks()
136
114
  })
137
115
 
138
116
  test('type Object has effect', async () => {
@@ -142,32 +120,28 @@ describe('[QBtn API]', () => {
142
120
 
143
121
  const wrapper = mount(QBtn, {
144
122
  global: {
145
- plugins: [ router ]
123
+ plugins: [router]
146
124
  }
147
125
  })
148
126
 
149
- expect(
150
- wrapper.find('a').exists()
151
- ).toBe(false)
127
+ expect(wrapper.find('a').exists()).toBe(false)
152
128
 
153
129
  await wrapper.setProps({ to: propVal })
154
130
  await flushPromises()
155
131
 
156
- expect(
157
- wrapper.get('a').attributes('href')
158
- ).toBe(testRoute)
132
+ expect(wrapper.get('a').attributes('href')).toBe(testRoute)
159
133
 
160
134
  const routerFn = vi.spyOn(router, 'push')
161
135
 
162
136
  await wrapper.trigger('click')
163
137
  await flushPromises()
164
138
 
165
- expect(
166
- router.currentRoute.value.path
167
- ).toBe(testRoute)
139
+ expect(router.currentRoute.value.path).toBe(testRoute)
168
140
 
169
141
  expect(routerFn).toHaveBeenCalledTimes(1)
170
142
  expect(routerFn).toHaveBeenCalledWith(propVal)
143
+
144
+ vi.restoreAllMocks()
171
145
  })
172
146
  })
173
147
 
@@ -182,25 +156,23 @@ describe('[QBtn API]', () => {
182
156
  to: testRoute
183
157
  },
184
158
  global: {
185
- plugins: [ router ]
159
+ plugins: [router]
186
160
  }
187
161
  })
188
162
 
189
- expect(
190
- wrapper.get('a').attributes('href')
191
- ).toBe(testRoute)
163
+ expect(wrapper.get('a').attributes('href')).toBe(testRoute)
192
164
 
193
165
  const routerFn = vi.spyOn(router, 'replace')
194
166
 
195
167
  await wrapper.trigger('click')
196
168
  await flushPromises()
197
169
 
198
- expect(
199
- router.currentRoute.value.path
200
- ).toBe(testRoute)
170
+ expect(router.currentRoute.value.path).toBe(testRoute)
201
171
 
202
172
  expect(routerFn).toHaveBeenCalledTimes(1)
203
173
  expect(routerFn).toHaveBeenCalledWith(testRoute)
174
+
175
+ vi.restoreAllMocks()
204
176
  })
205
177
  })
206
178
 
@@ -209,16 +181,12 @@ describe('[QBtn API]', () => {
209
181
  const propVal = 'https://quasar.dev'
210
182
  const wrapper = mount(QBtn)
211
183
 
212
- expect(
213
- wrapper.find('a').exists()
214
- ).toBe(false)
184
+ expect(wrapper.find('a').exists()).toBe(false)
215
185
 
216
186
  await wrapper.setProps({ href: propVal })
217
187
  await flushPromises()
218
188
 
219
- expect(
220
- wrapper.get('a').attributes('href')
221
- ).toBe(propVal)
189
+ expect(wrapper.get('a').attributes('href')).toBe(propVal)
222
190
  })
223
191
  })
224
192
 
@@ -235,13 +203,9 @@ describe('[QBtn API]', () => {
235
203
 
236
204
  const link = wrapper.get('a')
237
205
 
238
- expect(
239
- link.attributes('href')
240
- ).toBe(href)
206
+ expect(link.attributes('href')).toBe(href)
241
207
 
242
- expect(
243
- link.attributes('target')
244
- ).toBe(propVal)
208
+ expect(link.attributes('target')).toBe(propVal)
245
209
  })
246
210
  })
247
211
 
@@ -262,12 +226,12 @@ describe('[QBtn API]', () => {
262
226
  const propVal = 10
263
227
  const wrapper = mount(QBtn)
264
228
 
265
- expect(wrapper.text()).not.toContain('' + propVal)
229
+ expect(wrapper.text()).not.toContain(String(propVal))
266
230
 
267
231
  await wrapper.setProps({ label: propVal })
268
232
  await flushPromises()
269
233
 
270
- expect(wrapper.text()).toContain('' + propVal)
234
+ expect(wrapper.text()).toContain(String(propVal))
271
235
  })
272
236
  })
273
237
 
@@ -276,16 +240,12 @@ describe('[QBtn API]', () => {
276
240
  const propVal = 'map'
277
241
  const wrapper = mount(QBtn)
278
242
 
279
- expect(
280
- wrapper.find('.q-icon').exists()
281
- ).toBe(false)
243
+ expect(wrapper.find('.q-icon').exists()).toBe(false)
282
244
 
283
245
  await wrapper.setProps({ icon: propVal })
284
246
  await flushPromises()
285
247
 
286
- expect(
287
- wrapper.get('.q-icon').text()
288
- ).toContain(propVal)
248
+ expect(wrapper.get('.q-icon').text()).toContain(propVal)
289
249
  })
290
250
  })
291
251
 
@@ -294,16 +254,12 @@ describe('[QBtn API]', () => {
294
254
  const propVal = 'map'
295
255
  const wrapper = mount(QBtn)
296
256
 
297
- expect(
298
- wrapper.find('.q-icon').exists()
299
- ).toBe(false)
257
+ expect(wrapper.find('.q-icon').exists()).toBe(false)
300
258
 
301
259
  await wrapper.setProps({ iconRight: propVal })
302
260
  await flushPromises()
303
261
 
304
- expect(
305
- wrapper.get('.q-icon').text()
306
- ).toContain(propVal)
262
+ expect(wrapper.get('.q-icon').text()).toContain(propVal)
307
263
  })
308
264
  })
309
265
 
@@ -312,20 +268,14 @@ describe('[QBtn API]', () => {
312
268
  const wrapper = mount(QBtn)
313
269
  const target = wrapper.get('.q-btn')
314
270
 
315
- expect(
316
- target.classes()
317
- ).not.toContain('q-btn--outline')
271
+ expect(target.classes()).not.toContain('q-btn--outline')
318
272
 
319
273
  await wrapper.setProps({ outline: true })
320
274
  await flushPromises()
321
275
 
322
- expect(
323
- target.classes()
324
- ).toContain('q-btn--outline')
276
+ expect(target.classes()).toContain('q-btn--outline')
325
277
 
326
- expect(
327
- target.$computedStyle('background')
328
- ).toBe('transparent')
278
+ expect(target.$computedStyle('background')).toBe('transparent')
329
279
  })
330
280
  })
331
281
 
@@ -334,16 +284,12 @@ describe('[QBtn API]', () => {
334
284
  const wrapper = mount(QBtn)
335
285
  const target = wrapper.get('.q-btn')
336
286
 
337
- expect(
338
- target.classes()
339
- ).not.toContain('q-btn--flat')
287
+ expect(target.classes()).not.toContain('q-btn--flat')
340
288
 
341
289
  await wrapper.setProps({ flat: true })
342
290
  await flushPromises()
343
291
 
344
- expect(
345
- target.classes()
346
- ).toContain('q-btn--flat')
292
+ expect(target.classes()).toContain('q-btn--flat')
347
293
  })
348
294
  })
349
295
 
@@ -352,16 +298,12 @@ describe('[QBtn API]', () => {
352
298
  const wrapper = mount(QBtn)
353
299
  const target = wrapper.get('.q-btn')
354
300
 
355
- expect(
356
- target.classes()
357
- ).not.toContain('q-btn--unelevated')
301
+ expect(target.classes()).not.toContain('q-btn--unelevated')
358
302
 
359
303
  await wrapper.setProps({ unelevated: true })
360
304
  await flushPromises()
361
305
 
362
- expect(
363
- target.classes()
364
- ).toContain('q-btn--unelevated')
306
+ expect(target.classes()).toContain('q-btn--unelevated')
365
307
  })
366
308
  })
367
309
 
@@ -370,20 +312,14 @@ describe('[QBtn API]', () => {
370
312
  const wrapper = mount(QBtn)
371
313
  const target = wrapper.get('.q-btn')
372
314
 
373
- expect(
374
- target.classes()
375
- ).not.toContain('q-btn--rounded')
315
+ expect(target.classes()).not.toContain('q-btn--rounded')
376
316
 
377
317
  await wrapper.setProps({ rounded: true })
378
318
  await flushPromises()
379
319
 
380
- expect(
381
- target.classes()
382
- ).toContain('q-btn--rounded')
320
+ expect(target.classes()).toContain('q-btn--rounded')
383
321
 
384
- expect(
385
- target.$computedStyle('border-radius')
386
- ).toBe('28px')
322
+ expect(target.$computedStyle('border-radius')).toBe('28px')
387
323
  })
388
324
  })
389
325
 
@@ -392,24 +328,16 @@ describe('[QBtn API]', () => {
392
328
  const wrapper = mount(QBtn)
393
329
  const target = wrapper.get('.q-btn')
394
330
 
395
- expect(
396
- target.classes()
397
- ).not.toContain('q-btn--push')
331
+ expect(target.classes()).not.toContain('q-btn--push')
398
332
 
399
333
  await wrapper.setProps({ push: true })
400
334
  await flushPromises()
401
335
 
402
- expect(
403
- target.classes()
404
- ).toContain('q-btn--push')
336
+ expect(target.classes()).toContain('q-btn--push')
405
337
 
406
- expect(
407
- target.$computedStyle('border-radius')
408
- ).toBe('7px')
338
+ expect(target.$computedStyle('border-radius')).toBe('7px')
409
339
 
410
- expect(
411
- target.$computedStyle('transition')
412
- ).toBeDefined()
340
+ expect(target.$computedStyle('transition')).toBeDefined()
413
341
  })
414
342
  })
415
343
 
@@ -418,20 +346,14 @@ describe('[QBtn API]', () => {
418
346
  const wrapper = mount(QBtn)
419
347
  const target = wrapper.get('.q-btn')
420
348
 
421
- expect(
422
- target.classes()
423
- ).not.toContain('q-btn--square')
349
+ expect(target.classes()).not.toContain('q-btn--square')
424
350
 
425
351
  await wrapper.setProps({ square: true })
426
352
  await flushPromises()
427
353
 
428
- expect(
429
- target.classes()
430
- ).toContain('q-btn--square')
354
+ expect(target.classes()).toContain('q-btn--square')
431
355
 
432
- expect(
433
- target.$computedStyle('border-radius')
434
- ).toBe('0')
356
+ expect(target.$computedStyle('border-radius')).toBe('0px')
435
357
  })
436
358
  })
437
359
 
@@ -440,16 +362,12 @@ describe('[QBtn API]', () => {
440
362
  const wrapper = mount(QBtn)
441
363
  const target = wrapper.get('.q-btn')
442
364
 
443
- expect(
444
- target.classes()
445
- ).not.toContain('glossy')
365
+ expect(target.classes()).not.toContain('glossy')
446
366
 
447
367
  await wrapper.setProps({ glossy: true })
448
368
  await flushPromises()
449
369
 
450
- expect(
451
- target.classes()
452
- ).toContain('glossy')
370
+ expect(target.classes()).toContain('glossy')
453
371
  })
454
372
  })
455
373
 
@@ -458,16 +376,12 @@ describe('[QBtn API]', () => {
458
376
  const wrapper = mount(QBtn)
459
377
  const target = wrapper.get('.q-btn')
460
378
 
461
- expect(
462
- target.classes()
463
- ).not.toContain('q-btn--fab')
379
+ expect(target.classes()).not.toContain('q-btn--fab')
464
380
 
465
381
  await wrapper.setProps({ fab: true })
466
382
  await flushPromises()
467
383
 
468
- expect(
469
- target.classes()
470
- ).toContain('q-btn--fab')
384
+ expect(target.classes()).toContain('q-btn--fab')
471
385
  })
472
386
  })
473
387
 
@@ -476,93 +390,72 @@ describe('[QBtn API]', () => {
476
390
  const wrapper = mount(QBtn)
477
391
  const target = wrapper.get('.q-btn')
478
392
 
479
- expect(
480
- target.classes()
481
- ).not.toContain('q-btn--fab-mini')
393
+ expect(target.classes()).not.toContain('q-btn--fab-mini')
482
394
 
483
395
  await wrapper.setProps({ fabMini: true })
484
396
  await flushPromises()
485
397
 
486
- expect(
487
- target.classes()
488
- ).toContain('q-btn--fab-mini')
398
+ expect(target.classes()).toContain('q-btn--fab-mini')
489
399
  })
490
400
  })
491
401
 
492
402
  describe('[(prop)padding]', () => {
493
403
  test.each([
494
- [ 'pixels; single value', '50px' ],
495
- [ 'pixels; multiple values', '50px 100px' ]
404
+ ['pixels; single value', '50px'],
405
+ ['pixels; multiple values', '50px 100px']
496
406
  ])('type String has effect (%s)', async (_, propVal) => {
497
407
  const wrapper = mount(QBtn)
498
408
  const target = wrapper.get('.q-btn')
499
409
 
500
- expect(
501
- target.$style('padding')
502
- ).not.toBe(propVal)
410
+ expect(target.$style('padding')).not.toBe(propVal)
503
411
 
504
412
  await wrapper.setProps({ padding: propVal })
505
413
  await flushPromises()
506
414
 
507
- expect(
508
- target.$style('padding')
509
- ).toBe(propVal)
415
+ expect(target.$style('padding')).toBe(propVal)
510
416
  })
511
417
 
512
418
  test('type String has effect (as "xs")', async () => {
513
419
  const wrapper = mount(QBtn)
514
420
  const target = wrapper.get('.q-btn')
515
421
 
516
- expect(
517
- target.$style('padding')
518
- ).not.toBe(`${ btnPadding.xs }px`)
422
+ expect(target.$style('padding')).not.toBe(`${btnPadding.xs}px`)
519
423
 
520
424
  await wrapper.setProps({ padding: 'xs' })
521
425
  await flushPromises()
522
426
 
523
- expect(
524
- target.$style('padding')
525
- ).toBe(`${ btnPadding.xs }px`)
427
+ expect(target.$style('padding')).toBe(`${btnPadding.xs}px`)
526
428
  })
527
429
 
528
430
  test('type String has effect (as "xs xl")', async () => {
529
431
  const wrapper = mount(QBtn)
530
432
  const target = wrapper.get('.q-btn')
531
433
 
532
- expect(
533
- target.$style('padding')
534
- ).not.toBe(`${ btnPadding.xs }px ${ btnPadding.xl }px`)
434
+ expect(target.$style('padding')).not.toBe(
435
+ `${btnPadding.xs}px ${btnPadding.xl}px`
436
+ )
535
437
 
536
438
  await wrapper.setProps({ padding: 'xs xl' })
537
439
  await flushPromises()
538
440
 
539
- expect(
540
- target.$style('padding')
541
- ).toBe(`${ btnPadding.xs }px ${ btnPadding.xl }px`)
441
+ expect(target.$style('padding')).toBe(
442
+ `${btnPadding.xs}px ${btnPadding.xl}px`
443
+ )
542
444
  })
543
445
 
544
446
  test('padding "0" is applied correctly', async () => {
545
447
  const wrapper = mount(QBtn)
546
448
  const target = wrapper.get('.q-btn')
547
449
 
548
- expect(
549
- target.$style('min-width')
550
- ).not.toBe('0')
450
+ expect(target.$style('min-width')).not.toBe('0')
551
451
 
552
- expect(
553
- target.$style('min-height')
554
- ).not.toBe('0')
452
+ expect(target.$style('min-height')).not.toBe('0')
555
453
 
556
454
  await wrapper.setProps({ padding: 'xs xl' })
557
455
  await flushPromises()
558
456
 
559
- expect(
560
- target.$style('min-width')
561
- ).toBe('0')
562
-
563
- expect(
564
- target.$style('min-height')
565
- ).toBe('0')
457
+ expect(target.$style('min-width')).toBe('0px')
458
+ expect(target.$style('min-height')).toBe('0px')
566
459
  })
567
460
  })
568
461
 
@@ -584,49 +477,49 @@ describe('[QBtn API]', () => {
584
477
  expect(cls).toContain('text-white')
585
478
  })
586
479
 
587
- test.each([
588
- [ 'push' ],
589
- [ 'unelevated' ]
590
- ])('(design "%s") is applied correctly', async designProp => {
591
- const wrapper = mount(QBtn)
592
- const target = wrapper.get('.q-btn')
593
-
594
- let cls = target.classes()
595
- expect(cls).not.toContain('bg-red')
596
- expect(cls).not.toContain('text-white')
597
-
598
- await wrapper.setProps({
599
- color: 'red',
600
- [ designProp ]: true
601
- })
602
- await flushPromises()
603
-
604
- cls = target.classes()
605
- expect(cls).toContain('bg-red')
606
- expect(cls).toContain('text-white')
607
- })
608
-
609
- test.each([
610
- [ 'flat' ],
611
- [ 'outline' ]
612
- ])('(design "%s") is applied correctly', async designProp => {
613
- const wrapper = mount(QBtn)
614
- const target = wrapper.get('.q-btn')
615
-
616
- let cls = target.classes()
617
- expect(cls).not.toContain('text-red')
618
- expect(cls).not.toContain('bg-red')
619
-
620
- await wrapper.setProps({
621
- color: 'red',
622
- [ designProp ]: true
623
- })
624
- await flushPromises()
625
-
626
- cls = target.classes()
627
- expect(cls).toContain('text-red')
628
- expect(cls).not.toContain('bg-red')
629
- })
480
+ test.each([['push'], ['unelevated']])(
481
+ '(design "%s") is applied correctly',
482
+ async designProp => {
483
+ const wrapper = mount(QBtn)
484
+ const target = wrapper.get('.q-btn')
485
+
486
+ let cls = target.classes()
487
+ expect(cls).not.toContain('bg-red')
488
+ expect(cls).not.toContain('text-white')
489
+
490
+ await wrapper.setProps({
491
+ color: 'red',
492
+ [designProp]: true
493
+ })
494
+ await flushPromises()
495
+
496
+ cls = target.classes()
497
+ expect(cls).toContain('bg-red')
498
+ expect(cls).toContain('text-white')
499
+ }
500
+ )
501
+
502
+ test.each([['flat'], ['outline']])(
503
+ '(design "%s") is applied correctly',
504
+ async designProp => {
505
+ const wrapper = mount(QBtn)
506
+ const target = wrapper.get('.q-btn')
507
+
508
+ let cls = target.classes()
509
+ expect(cls).not.toContain('text-red')
510
+ expect(cls).not.toContain('bg-red')
511
+
512
+ await wrapper.setProps({
513
+ color: 'red',
514
+ [designProp]: true
515
+ })
516
+ await flushPromises()
517
+
518
+ cls = target.classes()
519
+ expect(cls).toContain('text-red')
520
+ expect(cls).not.toContain('bg-red')
521
+ }
522
+ )
630
523
  })
631
524
 
632
525
  describe('[(prop)text-color]', () => {
@@ -672,65 +565,65 @@ describe('[QBtn API]', () => {
672
565
  expect(cls).not.toContain('bg-blue')
673
566
  })
674
567
 
675
- test.each([
676
- [ 'push' ],
677
- [ 'unelevated' ]
678
- ])('(design "%s" + color) is applied correctly', async designProp => {
679
- const wrapper = mount(QBtn)
680
- const target = wrapper.get('.q-btn')
568
+ test.each([['push'], ['unelevated']])(
569
+ '(design "%s" + color) is applied correctly',
570
+ async designProp => {
571
+ const wrapper = mount(QBtn)
572
+ const target = wrapper.get('.q-btn')
681
573
 
682
- let cls = target.classes()
574
+ let cls = target.classes()
683
575
 
684
- expect(cls).not.toContain('bg-red')
685
- expect(cls).not.toContain('text-red')
686
- expect(cls).not.toContain('bg-blue')
687
- expect(cls).not.toContain('text-blue')
576
+ expect(cls).not.toContain('bg-red')
577
+ expect(cls).not.toContain('text-red')
578
+ expect(cls).not.toContain('bg-blue')
579
+ expect(cls).not.toContain('text-blue')
688
580
 
689
- await wrapper.setProps({
690
- color: 'red',
691
- textColor: 'blue',
692
- [ designProp ]: true
693
- })
694
- await flushPromises()
581
+ await wrapper.setProps({
582
+ color: 'red',
583
+ textColor: 'blue',
584
+ [designProp]: true
585
+ })
586
+ await flushPromises()
695
587
 
696
- cls = target.classes()
588
+ cls = target.classes()
697
589
 
698
- expect(cls).toContain('bg-red')
699
- expect(cls).toContain('text-blue')
590
+ expect(cls).toContain('bg-red')
591
+ expect(cls).toContain('text-blue')
700
592
 
701
- expect(cls).not.toContain('text-red')
702
- expect(cls).not.toContain('bg-blue')
703
- })
593
+ expect(cls).not.toContain('text-red')
594
+ expect(cls).not.toContain('bg-blue')
595
+ }
596
+ )
704
597
 
705
- test.each([
706
- [ 'flat' ],
707
- [ 'outline' ]
708
- ])('(design "%s" + color) is applied correctly', async designProp => {
709
- const wrapper = mount(QBtn)
710
- const target = wrapper.get('.q-btn')
598
+ test.each([['flat'], ['outline']])(
599
+ '(design "%s" + color) is applied correctly',
600
+ async designProp => {
601
+ const wrapper = mount(QBtn)
602
+ const target = wrapper.get('.q-btn')
711
603
 
712
- let cls = target.classes()
604
+ let cls = target.classes()
713
605
 
714
- expect(cls).not.toContain('text-blue')
715
- expect(cls).not.toContain('text-red')
716
- expect(cls).not.toContain('bg-red')
717
- expect(cls).not.toContain('bg-blue')
606
+ expect(cls).not.toContain('text-blue')
607
+ expect(cls).not.toContain('text-red')
608
+ expect(cls).not.toContain('bg-red')
609
+ expect(cls).not.toContain('bg-blue')
718
610
 
719
- await wrapper.setProps({
720
- color: 'red',
721
- textColor: 'blue',
722
- [ designProp ]: true
723
- })
724
- await flushPromises()
611
+ await wrapper.setProps({
612
+ color: 'red',
613
+ textColor: 'blue',
614
+ [designProp]: true
615
+ })
616
+ await flushPromises()
725
617
 
726
- cls = target.classes()
618
+ cls = target.classes()
727
619
 
728
- expect(cls).toContain('text-blue')
620
+ expect(cls).toContain('text-blue')
729
621
 
730
- expect(cls).not.toContain('text-red')
731
- expect(cls).not.toContain('bg-red')
732
- expect(cls).not.toContain('bg-blue')
733
- })
622
+ expect(cls).not.toContain('text-red')
623
+ expect(cls).not.toContain('bg-red')
624
+ expect(cls).not.toContain('bg-blue')
625
+ }
626
+ )
734
627
  })
735
628
 
736
629
  describe('[(prop)no-caps]', () => {
@@ -738,20 +631,14 @@ describe('[QBtn API]', () => {
738
631
  const wrapper = mount(QBtn)
739
632
  const target = wrapper.get('.q-btn')
740
633
 
741
- expect(
742
- target.classes()
743
- ).not.toContain('q-btn--no-uppercase')
634
+ expect(target.classes()).not.toContain('q-btn--no-uppercase')
744
635
 
745
636
  await wrapper.setProps({ noCaps: true })
746
637
  await flushPromises()
747
638
 
748
- expect(
749
- target.classes()
750
- ).toContain('q-btn--no-uppercase')
639
+ expect(target.classes()).toContain('q-btn--no-uppercase')
751
640
 
752
- expect(
753
- target.$computedStyle('text-transform')
754
- ).toBe('none')
641
+ expect(target.$computedStyle('text-transform')).toBe('none')
755
642
  })
756
643
  })
757
644
 
@@ -777,16 +664,12 @@ describe('[QBtn API]', () => {
777
664
  const wrapper = mount(QBtn)
778
665
  const target = wrapper.get('.q-btn')
779
666
 
780
- expect(
781
- target.classes()
782
- ).not.toContain('q-btn--dense')
667
+ expect(target.classes()).not.toContain('q-btn--dense')
783
668
 
784
669
  await wrapper.setProps({ dense: true })
785
670
  await flushPromises()
786
671
 
787
- expect(
788
- target.classes()
789
- ).toContain('q-btn--dense')
672
+ expect(target.classes()).toContain('q-btn--dense')
790
673
  })
791
674
  })
792
675
 
@@ -794,68 +677,50 @@ describe('[QBtn API]', () => {
794
677
  test('type Boolean has effect', async () => {
795
678
  const wrapper = mount(QBtn)
796
679
 
797
- expect(
798
- wrapper.find('.q-ripple')
799
- .exists()
800
- ).toBe(false)
680
+ expect(wrapper.find('.q-ripple').exists()).toBe(false)
801
681
 
802
682
  await wrapper.setProps({ ripple: true })
803
683
  await flushPromises()
804
684
 
805
685
  await wrapper.trigger('click')
806
686
 
807
- expect(
808
- wrapper.find('.q-ripple')
809
- .exists()
810
- ).toBe(true)
687
+ expect(wrapper.find('.q-ripple').exists()).toBe(true)
811
688
  })
812
689
 
813
690
  test('type Object has effect', async () => {
814
691
  const propVal = { center: true, color: 'teal', keyCodes: [] }
815
692
  const wrapper = mount(QBtn)
816
693
 
817
- expect(
818
- wrapper.find('.q-ripple')
819
- .exists()
820
- ).toBe(false)
694
+ expect(wrapper.find('.q-ripple').exists()).toBe(false)
821
695
 
822
696
  await wrapper.setProps({ ripple: propVal })
823
697
  await flushPromises()
824
698
 
825
699
  await wrapper.trigger('click')
826
700
 
827
- expect(
828
- wrapper.find('.q-ripple')
829
- .exists()
830
- ).toBe(true)
701
+ expect(wrapper.find('.q-ripple').exists()).toBe(true)
831
702
  })
832
703
  })
833
704
 
834
705
  describe('[(prop)tabindex]', () => {
835
706
  test.each([
836
- [ 'Number', 100 ],
837
- [ 'String', '100' ]
707
+ ['Number', 100],
708
+ ['String', '100']
838
709
  ])('type %s has effect', async (_, propVal) => {
839
710
  const wrapper = mount(QBtn)
840
711
 
841
- expect(
842
- wrapper.attributes('tabindex')
843
- ).not.toBe('' + propVal)
712
+ expect(wrapper.attributes('tabindex')).not.toBe(String(propVal))
844
713
 
845
714
  await wrapper.setProps({ tabindex: propVal })
846
715
  await flushPromises()
847
716
 
848
- expect(
849
- wrapper.attributes('tabindex')
850
- ).toBe('' + propVal)
717
+ expect(wrapper.attributes('tabindex')).toBe(String(propVal))
851
718
 
852
719
  // we'll test tabindex + disable
853
720
  await wrapper.setProps({ disable: true })
854
721
  await flushPromises()
855
722
 
856
- expect(
857
- wrapper.attributes('tabindex')
858
- ).toBe('-1')
723
+ expect(wrapper.attributes('tabindex')).toBe('-1')
859
724
 
860
725
  // we'll now test loading + disable
861
726
  await wrapper.setProps({
@@ -864,37 +729,31 @@ describe('[QBtn API]', () => {
864
729
  })
865
730
  await flushPromises()
866
731
 
867
- expect(
868
- wrapper.attributes('tabindex')
869
- ).toBe('-1')
732
+ expect(wrapper.attributes('tabindex')).toBe('-1')
870
733
  })
871
734
  })
872
735
 
873
736
  describe('[(prop)align]', () => {
874
737
  test.each([
875
- [ 'left' ],
876
- [ 'center' ],
877
- [ 'right' ],
878
- [ 'between' ],
879
- [ 'around' ],
880
- [ 'evenly' ]
738
+ ['left'],
739
+ ['center'],
740
+ ['right'],
741
+ ['between'],
742
+ ['around'],
743
+ ['evenly']
881
744
  ])('value "%s" has effect', async propVal => {
882
745
  const wrapper = mount(QBtn)
883
746
  const target = wrapper.get('.q-btn__content')
884
747
 
885
748
  if (propVal !== 'center') {
886
749
  // the default value
887
- expect(
888
- target.classes()
889
- ).not.toContain(`justify-${ alignMap[ propVal ] }`)
750
+ expect(target.classes()).not.toContain(`justify-${alignMap[propVal]}`)
890
751
  }
891
752
 
892
753
  await wrapper.setProps({ align: propVal })
893
754
  await flushPromises()
894
755
 
895
- expect(
896
- target.classes()
897
- ).toContain(`justify-${ alignMap[ propVal ] }`)
756
+ expect(target.classes()).toContain(`justify-${alignMap[propVal]}`)
898
757
  })
899
758
  })
900
759
 
@@ -903,16 +762,12 @@ describe('[QBtn API]', () => {
903
762
  const wrapper = mount(QBtn)
904
763
  const target = wrapper.get('.q-btn__content')
905
764
 
906
- expect(
907
- target.classes()
908
- ).toContain('row')
765
+ expect(target.classes()).toContain('row')
909
766
 
910
767
  await wrapper.setProps({ stack: true })
911
768
  await flushPromises()
912
769
 
913
- expect(
914
- target.classes()
915
- ).toContain('column')
770
+ expect(target.classes()).toContain('column')
916
771
  })
917
772
  })
918
773
 
@@ -921,16 +776,12 @@ describe('[QBtn API]', () => {
921
776
  const wrapper = mount(QBtn)
922
777
  const target = wrapper.get('.q-btn')
923
778
 
924
- expect(
925
- target.classes()
926
- ).not.toContain('self-stretch')
779
+ expect(target.classes()).not.toContain('self-stretch')
927
780
 
928
781
  await wrapper.setProps({ stretch: true })
929
782
  await flushPromises()
930
783
 
931
- expect(
932
- target.classes()
933
- ).toContain('self-stretch')
784
+ expect(target.classes()).toContain('self-stretch')
934
785
  })
935
786
  })
936
787
 
@@ -939,79 +790,51 @@ describe('[QBtn API]', () => {
939
790
  const wrapper = mount(QBtn)
940
791
  const target = wrapper.get('.q-btn')
941
792
 
942
- expect(
943
- target.attributes('role')
944
- ).not.toBe('progressbar')
793
+ expect(target.attributes('role')).not.toBe('progressbar')
945
794
 
946
- expect(
947
- target.attributes('aria-valuenow')
948
- ).toBeUndefined()
795
+ expect(target.attributes('aria-valuenow')).toBeUndefined()
949
796
 
950
797
  await wrapper.setProps({ loading: true })
951
798
  await flushPromises()
952
799
 
953
- expect(
954
- target.attributes('role')
955
- ).not.toBe('progressbar')
800
+ expect(target.attributes('role')).not.toBe('progressbar')
956
801
 
957
- expect(
958
- target.attributes('aria-valuenow')
959
- ).toBeUndefined()
802
+ expect(target.attributes('aria-valuenow')).toBeUndefined()
960
803
 
961
- expect(
962
- wrapper.find('.q-spinner')
963
- .exists()
964
- ).toBe(true)
804
+ expect(wrapper.find('.q-spinner').exists()).toBe(true)
965
805
 
966
- expect(
967
- wrapper.get('.q-btn__content')
968
- .classes()
969
- ).toContain('q-btn__content--hidden')
806
+ expect(wrapper.get('.q-btn__content').classes()).toContain(
807
+ 'q-btn__content--hidden'
808
+ )
970
809
 
971
810
  await wrapper.setProps({ percentage: 50 })
972
811
  await flushPromises()
973
812
 
974
- expect(
975
- target.attributes('role')
976
- ).toBe('progressbar')
813
+ expect(target.attributes('role')).toBe('progressbar')
977
814
 
978
- expect(
979
- target.attributes('aria-valuenow')
980
- ).toBe('50')
815
+ expect(target.attributes('aria-valuenow')).toBe('50')
981
816
  })
982
817
 
983
818
  test('type null has effect', async () => {
984
819
  const wrapper = mount(QBtn)
985
820
  const target = wrapper.get('.q-btn')
986
821
 
987
- expect(
988
- target.attributes('role')
989
- ).not.toBe('progressbar')
822
+ expect(target.attributes('role')).not.toBe('progressbar')
990
823
 
991
- expect(
992
- target.attributes('aria-valuenow')
993
- ).toBeUndefined()
824
+ expect(target.attributes('aria-valuenow')).toBeUndefined()
994
825
 
995
826
  await wrapper.setProps({ loading: null })
996
827
  await flushPromises()
997
828
 
998
- expect(
999
- target.attributes('role')
1000
- ).not.toBe('progressbar')
829
+ expect(target.attributes('role')).not.toBe('progressbar')
1001
830
 
1002
- expect(
1003
- target.attributes('aria-valuenow')
1004
- ).toBeUndefined()
831
+ expect(target.attributes('aria-valuenow')).toBeUndefined()
1005
832
 
1006
- expect(
1007
- wrapper.get('.q-btn__content')
1008
- .classes()
1009
- ).not.toContain('q-btn__content--hidden')
833
+ expect(wrapper.get('.q-btn__content').classes()).not.toContain(
834
+ 'q-btn__content--hidden'
835
+ )
1010
836
 
1011
- expect(
1012
- wrapper.find('.q-spinner')
1013
- .exists()
1014
- ).toBe(false)
837
+ expect(wrapper.find('.q-spinner').exists()).toBe(false)
1015
838
  })
1016
839
  })
1017
840
 
@@ -1020,24 +843,16 @@ describe('[QBtn API]', () => {
1020
843
  const wrapper = mount(QBtn)
1021
844
  const target = wrapper.get('.q-btn')
1022
845
 
1023
- expect(
1024
- target.classes()
1025
- ).not.toContain('disabled')
846
+ expect(target.classes()).not.toContain('disabled')
1026
847
 
1027
- expect(
1028
- target.attributes('aria-disabled')
1029
- ).not.toBe('true')
848
+ expect(target.attributes('aria-disabled')).not.toBe('true')
1030
849
 
1031
850
  await wrapper.setProps({ disable: true })
1032
851
  await flushPromises()
1033
852
 
1034
- expect(
1035
- target.classes()
1036
- ).toContain('disabled')
853
+ expect(target.classes()).toContain('disabled')
1037
854
 
1038
- expect(
1039
- target.attributes('aria-disabled')
1040
- ).toBe('true')
855
+ expect(target.attributes('aria-disabled')).toBe('true')
1041
856
  })
1042
857
 
1043
858
  test('link + disable', async () => {
@@ -1050,20 +865,16 @@ describe('[QBtn API]', () => {
1050
865
  to: testRoute
1051
866
  },
1052
867
  global: {
1053
- plugins: [ router ]
868
+ plugins: [router]
1054
869
  }
1055
870
  })
1056
871
 
1057
- expect(
1058
- wrapper.find('a').exists()
1059
- ).toBe(false)
872
+ expect(wrapper.find('a').exists()).toBe(false)
1060
873
 
1061
874
  await wrapper.trigger('click')
1062
875
  await flushPromises()
1063
876
 
1064
- expect(
1065
- router.currentRoute.value.path
1066
- ).not.toBe(testRoute)
877
+ expect(router.currentRoute.value.path).not.toBe(testRoute)
1067
878
  })
1068
879
 
1069
880
  test('loading + disable', async () => {
@@ -1076,16 +887,14 @@ describe('[QBtn API]', () => {
1076
887
  to: testRoute
1077
888
  },
1078
889
  global: {
1079
- plugins: [ router ]
890
+ plugins: [router]
1080
891
  }
1081
892
  })
1082
893
 
1083
894
  await wrapper.trigger('click')
1084
895
  await flushPromises()
1085
896
 
1086
- expect(
1087
- router.currentRoute.value.path
1088
- ).not.toBe(testRoute)
897
+ expect(router.currentRoute.value.path).not.toBe(testRoute)
1089
898
  })
1090
899
  })
1091
900
 
@@ -1094,20 +903,14 @@ describe('[QBtn API]', () => {
1094
903
  const wrapper = mount(QBtn)
1095
904
  const target = wrapper.get('.q-btn')
1096
905
 
1097
- expect(
1098
- target.classes()
1099
- ).toContain('q-btn--rectangle')
906
+ expect(target.classes()).toContain('q-btn--rectangle')
1100
907
 
1101
908
  await wrapper.setProps({ round: true })
1102
909
  await flushPromises()
1103
910
 
1104
- expect(
1105
- target.classes()
1106
- ).toContain('q-btn--round')
911
+ expect(target.classes()).toContain('q-btn--round')
1107
912
 
1108
- expect(
1109
- target.$computedStyle('border-radius')
1110
- ).toBe('50%')
913
+ expect(target.$computedStyle('border-radius')).toBe('50%')
1111
914
  })
1112
915
  })
1113
916
 
@@ -1116,51 +919,35 @@ describe('[QBtn API]', () => {
1116
919
  const propVal = 58
1117
920
  const wrapper = mount(QBtn)
1118
921
 
1119
- expect(
1120
- wrapper.find('.q-btn__progress')
1121
- .exists()
1122
- ).toBe(false)
922
+ expect(wrapper.find('.q-btn__progress').exists()).toBe(false)
1123
923
 
1124
924
  expect(
1125
- wrapper.get('.q-btn')
1126
- .attributes('aria-valuenow')
925
+ wrapper.get('.q-btn').attributes('aria-valuenow')
1127
926
  ).toBeUndefined()
1128
927
 
1129
928
  await wrapper.setProps({ percentage: propVal })
1130
929
  await flushPromises()
1131
930
 
1132
- expect(
1133
- wrapper.find('.q-btn__progress')
1134
- .exists()
1135
- ).toBe(false)
931
+ expect(wrapper.find('.q-btn__progress').exists()).toBe(false)
1136
932
 
1137
933
  expect(
1138
- wrapper.get('.q-btn')
1139
- .attributes('aria-valuenow')
934
+ wrapper.get('.q-btn').attributes('aria-valuenow')
1140
935
  ).toBeUndefined()
1141
936
 
1142
937
  await wrapper.setProps({ loading: true })
1143
938
  await flushPromises()
1144
939
 
1145
- expect(
1146
- wrapper.find('.q-btn__progress')
1147
- .exists()
1148
- ).toBe(true)
940
+ expect(wrapper.find('.q-btn__progress').exists()).toBe(true)
1149
941
 
1150
942
  expect(
1151
- wrapper.get('.q-btn__progress-indicator')
1152
- .$computedStyle('transform')
1153
- ).toContain(`${ 100 - propVal }%`)
943
+ wrapper.get('.q-btn__progress-indicator').$computedStyle('transform')
944
+ ).toContain(`${100 - propVal}%`)
1154
945
 
1155
- expect(
1156
- wrapper.find('.q-spinner')
1157
- .exists()
1158
- ).toBe(true)
946
+ expect(wrapper.find('.q-spinner').exists()).toBe(true)
1159
947
 
1160
- expect(
1161
- wrapper.get('.q-btn')
1162
- .attributes('aria-valuenow')
1163
- ).toBe('' + propVal)
948
+ expect(wrapper.get('.q-btn').attributes('aria-valuenow')).toBe(
949
+ String(propVal)
950
+ )
1164
951
  })
1165
952
  })
1166
953
 
@@ -1169,15 +956,11 @@ describe('[QBtn API]', () => {
1169
956
  const propVal = 58
1170
957
  const wrapper = mount(QBtn)
1171
958
 
1172
- expect(
1173
- wrapper.get('.q-btn')
1174
- .attributes('aria-valuenow')
1175
- ).not.toBe('' + propVal)
959
+ expect(wrapper.get('.q-btn').attributes('aria-valuenow')).not.toBe(
960
+ String(propVal)
961
+ )
1176
962
 
1177
- expect(
1178
- wrapper.find('.q-btn__progress')
1179
- .exists()
1180
- ).toBe(false)
963
+ expect(wrapper.find('.q-btn__progress').exists()).toBe(false)
1181
964
 
1182
965
  await wrapper.setProps({
1183
966
  percentage: propVal,
@@ -1186,15 +969,13 @@ describe('[QBtn API]', () => {
1186
969
  })
1187
970
  await flushPromises()
1188
971
 
1189
- expect(
1190
- wrapper.get('.q-btn')
1191
- .attributes('aria-valuenow')
1192
- ).toBe('' + propVal)
972
+ expect(wrapper.get('.q-btn').attributes('aria-valuenow')).toBe(
973
+ String(propVal)
974
+ )
1193
975
 
1194
- expect(
1195
- wrapper.get('.q-btn__progress')
1196
- .classes()
1197
- ).toContain('q-btn__progress--dark')
976
+ expect(wrapper.get('.q-btn__progress').classes()).toContain(
977
+ 'q-btn__progress--dark'
978
+ )
1198
979
  })
1199
980
  })
1200
981
  })
@@ -1243,7 +1024,7 @@ describe('[QBtn API]', () => {
1243
1024
  to: testRoute
1244
1025
  },
1245
1026
  global: {
1246
- plugins: [ router ]
1027
+ plugins: [router]
1247
1028
  }
1248
1029
  })
1249
1030
 
@@ -1253,7 +1034,7 @@ describe('[QBtn API]', () => {
1253
1034
  expect(eventList).toHaveProperty('click')
1254
1035
  expect(eventList.click).toHaveLength(1)
1255
1036
 
1256
- const [ evt, go ] = eventList.click[ 0 ]
1037
+ const [evt, go] = eventList.click[0]
1257
1038
  expect(evt).toBeInstanceOf(Event)
1258
1039
  expect(go).toBeTypeOf('function')
1259
1040
  })
@@ -1268,16 +1049,14 @@ describe('[QBtn API]', () => {
1268
1049
  onClick: e => e.preventDefault()
1269
1050
  },
1270
1051
  global: {
1271
- plugins: [ router ]
1052
+ plugins: [router]
1272
1053
  }
1273
1054
  })
1274
1055
 
1275
1056
  await wrapper.trigger('click')
1276
1057
  await flushPromises()
1277
1058
 
1278
- expect(
1279
- router.currentRoute.value.path
1280
- ).not.toBe(testRoute)
1059
+ expect(router.currentRoute.value.path).not.toBe(testRoute)
1281
1060
  })
1282
1061
 
1283
1062
  test('(with route) can manually navigate by calling go()', async () => {
@@ -1293,16 +1072,14 @@ describe('[QBtn API]', () => {
1293
1072
  }
1294
1073
  },
1295
1074
  global: {
1296
- plugins: [ router ]
1075
+ plugins: [router]
1297
1076
  }
1298
1077
  })
1299
1078
 
1300
1079
  await wrapper.trigger('click')
1301
1080
  await flushPromises()
1302
1081
 
1303
- expect(
1304
- router.currentRoute.value.path
1305
- ).toBe(testRoute)
1082
+ expect(router.currentRoute.value.path).toBe(testRoute)
1306
1083
  })
1307
1084
 
1308
1085
  test('is emitting', async () => {
@@ -1314,7 +1091,7 @@ describe('[QBtn API]', () => {
1314
1091
  expect(eventList).toHaveProperty('click')
1315
1092
  expect(eventList.click).toHaveLength(1)
1316
1093
 
1317
- const [ evt, go ] = eventList.click[ 0 ]
1094
+ const [evt, go] = eventList.click[0]
1318
1095
  expect(evt).toBeInstanceOf(Event)
1319
1096
  expect(go).toBeUndefined()
1320
1097
  })
@@ -1353,15 +1130,13 @@ describe('[QBtn API]', () => {
1353
1130
  const event = new MouseEvent('click')
1354
1131
  const wrapper = mount(QBtn)
1355
1132
 
1356
- expect(
1357
- wrapper.vm.click(event)
1358
- ).toBeUndefined()
1133
+ expect(wrapper.vm.click(event)).toBeUndefined()
1359
1134
 
1360
1135
  const eventList = wrapper.emitted()
1361
1136
  expect(eventList).toHaveProperty('click')
1362
1137
  expect(eventList.click).toHaveLength(1)
1363
1138
 
1364
- const [ evt, go ] = eventList.click[ 0 ]
1139
+ const [evt, go] = eventList.click[0]
1365
1140
  expect(evt).toBeInstanceOf(Event)
1366
1141
  expect(go).toBeUndefined()
1367
1142
  })
@@ -1374,9 +1149,7 @@ describe('[QBtn API]', () => {
1374
1149
  }
1375
1150
  })
1376
1151
 
1377
- expect(
1378
- wrapper.vm.click(event)
1379
- ).toBeUndefined()
1152
+ expect(wrapper.vm.click(event)).toBeUndefined()
1380
1153
 
1381
1154
  const eventList = wrapper.emitted()
1382
1155
  expect(eventList).not.toHaveProperty('click')