quasar 2.19.2 → 2.20.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 (562) hide show
  1. package/dist/api/Lang.json +1 -1
  2. package/dist/api/QCarouselSlide.json +1 -1
  3. package/dist/api/QChatMessage.json +1 -1
  4. package/dist/api/QImg.json +1 -1
  5. package/dist/api/QParallax.json +1 -1
  6. package/dist/api/QRange.json +1 -1
  7. package/dist/api/QSlider.json +1 -1
  8. package/dist/api/QTimelineEntry.json +1 -1
  9. package/dist/api/QTree.json +1 -1
  10. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  11. package/dist/icon-set/eva-icons.umd.prod.js +2 -2
  12. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +5 -5
  13. package/dist/icon-set/fontawesome-v5.umd.prod.js +5 -5
  14. package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +5 -5
  15. package/dist/icon-set/fontawesome-v6.umd.prod.js +5 -5
  16. package/dist/icon-set/fontawesome-v7-pro.umd.prod.js +6 -0
  17. package/dist/icon-set/fontawesome-v7.umd.prod.js +6 -0
  18. package/dist/icon-set/ionicons-v4.umd.prod.js +2 -2
  19. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  20. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  21. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  22. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  23. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  24. package/dist/icon-set/material-symbols-outlined.umd.prod.js +1 -1
  25. package/dist/icon-set/material-symbols-rounded.umd.prod.js +1 -1
  26. package/dist/icon-set/material-symbols-sharp.umd.prod.js +1 -1
  27. package/dist/icon-set/mdi-v3.umd.prod.js +5 -5
  28. package/dist/icon-set/mdi-v4.umd.prod.js +5 -5
  29. package/dist/icon-set/mdi-v5.umd.prod.js +5 -5
  30. package/dist/icon-set/mdi-v6.umd.prod.js +5 -5
  31. package/dist/icon-set/mdi-v7.umd.prod.js +1 -1
  32. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  33. package/dist/icon-set/svg-eva-icons.umd.prod.js +2 -2
  34. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +5 -5
  35. package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +5 -5
  36. package/dist/icon-set/svg-fontawesome-v7.umd.prod.js +6 -0
  37. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +2 -2
  38. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +5 -5
  39. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +5 -5
  40. package/dist/icon-set/svg-ionicons-v7.umd.prod.js +6 -0
  41. package/dist/icon-set/svg-ionicons-v8.umd.prod.js +6 -0
  42. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  43. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  44. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  45. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  46. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  47. package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +2 -2
  48. package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +2 -2
  49. package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +2 -2
  50. package/dist/icon-set/svg-mdi-v6.umd.prod.js +5 -5
  51. package/dist/icon-set/svg-mdi-v7.umd.prod.js +1 -1
  52. package/dist/icon-set/svg-themify.umd.prod.js +2 -2
  53. package/dist/icon-set/themify.umd.prod.js +2 -2
  54. package/dist/lang/ar-TN.umd.prod.js +2 -2
  55. package/dist/lang/ar.umd.prod.js +2 -2
  56. package/dist/lang/az-Latn.umd.prod.js +2 -2
  57. package/dist/lang/bg.umd.prod.js +2 -2
  58. package/dist/lang/bn.umd.prod.js +2 -2
  59. package/dist/lang/bs-BA.umd.prod.js +2 -2
  60. package/dist/lang/ca.umd.prod.js +2 -2
  61. package/dist/lang/cs.umd.prod.js +2 -2
  62. package/dist/lang/da.umd.prod.js +2 -2
  63. package/dist/lang/de-CH.umd.prod.js +2 -2
  64. package/dist/lang/de-DE.umd.prod.js +2 -2
  65. package/dist/lang/de.umd.prod.js +2 -2
  66. package/dist/lang/el.umd.prod.js +2 -2
  67. package/dist/lang/en-GB.umd.prod.js +2 -2
  68. package/dist/lang/en-US.umd.prod.js +2 -2
  69. package/dist/lang/eo.umd.prod.js +2 -2
  70. package/dist/lang/es.umd.prod.js +2 -2
  71. package/dist/lang/et.umd.prod.js +2 -2
  72. package/dist/lang/eu.umd.prod.js +2 -2
  73. package/dist/lang/fa-IR.umd.prod.js +2 -2
  74. package/dist/lang/fa.umd.prod.js +2 -2
  75. package/dist/lang/fi.umd.prod.js +2 -2
  76. package/dist/lang/fr.umd.prod.js +2 -2
  77. package/dist/lang/gn.umd.prod.js +2 -2
  78. package/dist/lang/he.umd.prod.js +2 -2
  79. package/dist/lang/hi.umd.prod.js +2 -2
  80. package/dist/lang/hr.umd.prod.js +2 -2
  81. package/dist/lang/hu.umd.prod.js +2 -2
  82. package/dist/lang/id.umd.prod.js +2 -2
  83. package/dist/lang/is.umd.prod.js +2 -2
  84. package/dist/lang/it.umd.prod.js +2 -2
  85. package/dist/lang/ja.umd.prod.js +2 -2
  86. package/dist/lang/kk.umd.prod.js +2 -2
  87. package/dist/lang/km.umd.prod.js +2 -2
  88. package/dist/lang/ko-KR.umd.prod.js +1 -1
  89. package/dist/lang/kur-CKB.umd.prod.js +2 -2
  90. package/dist/lang/lt.umd.prod.js +2 -2
  91. package/dist/lang/lu.umd.prod.js +2 -2
  92. package/dist/lang/lv.umd.prod.js +2 -2
  93. package/dist/lang/mk.umd.prod.js +2 -2
  94. package/dist/lang/ml.umd.prod.js +2 -2
  95. package/dist/lang/mm.umd.prod.js +2 -2
  96. package/dist/lang/ms-MY.umd.prod.js +2 -2
  97. package/dist/lang/ms.umd.prod.js +2 -2
  98. package/dist/lang/my.umd.prod.js +2 -2
  99. package/dist/lang/nb-NO.umd.prod.js +2 -2
  100. package/dist/lang/nl.umd.prod.js +2 -2
  101. package/dist/lang/pl.umd.prod.js +2 -2
  102. package/dist/lang/pt-BR.umd.prod.js +2 -2
  103. package/dist/lang/pt.umd.prod.js +2 -2
  104. package/dist/lang/ro.umd.prod.js +2 -2
  105. package/dist/lang/ru.umd.prod.js +2 -2
  106. package/dist/lang/sk.umd.prod.js +2 -2
  107. package/dist/lang/sl.umd.prod.js +2 -2
  108. package/dist/lang/sm.umd.prod.js +2 -2
  109. package/dist/lang/sq.umd.prod.js +2 -2
  110. package/dist/lang/sr-CYR.umd.prod.js +2 -2
  111. package/dist/lang/sr.umd.prod.js +2 -2
  112. package/dist/lang/sv.umd.prod.js +2 -2
  113. package/dist/lang/ta.umd.prod.js +2 -2
  114. package/dist/lang/th.umd.prod.js +2 -2
  115. package/dist/lang/tl.umd.prod.js +2 -2
  116. package/dist/lang/tr.umd.prod.js +2 -2
  117. package/dist/lang/ug.umd.prod.js +2 -2
  118. package/dist/lang/uk.umd.prod.js +2 -2
  119. package/dist/lang/ur-PK.umd.prod.js +2 -2
  120. package/dist/lang/uz-Cyrl.umd.prod.js +2 -2
  121. package/dist/lang/uz-Latn.umd.prod.js +2 -2
  122. package/dist/lang/vi.umd.prod.js +2 -2
  123. package/dist/lang/zh-CN.umd.prod.js +2 -2
  124. package/dist/lang/zh-TW.umd.prod.js +2 -2
  125. package/dist/quasar.client.js +2615 -2603
  126. package/dist/quasar.sass +1 -1
  127. package/dist/quasar.server.prod.cjs +11 -11
  128. package/dist/quasar.server.prod.js +25 -25
  129. package/dist/quasar.umd.js +2610 -2598
  130. package/dist/quasar.umd.prod.js +23 -23
  131. package/dist/types/api/dialog.d.ts +1 -1
  132. package/dist/types/api/qnotify.d.ts +1 -1
  133. package/dist/types/api/qpopupproxy.d.ts +1 -1
  134. package/dist/types/feature-flag.d.ts +2 -2
  135. package/dist/types/globals.d.ts +3 -3
  136. package/dist/types/{extras/icon-set.d.ts → icon-set.d.ts} +21 -16
  137. package/dist/types/index.d.ts +1 -1
  138. package/dist/types/plugin.d.ts +1 -1
  139. package/dist/types/shim-icon-set.d.ts +1 -2
  140. package/dist/types/shim-lang.d.ts +1 -2
  141. package/dist/types/ts-helpers.d.ts +3 -3
  142. package/dist/types/tsconfig.json +1 -1
  143. package/dist/types/utils/scroll.d.ts +1 -1
  144. package/dist/types/utils.d.ts +2 -2
  145. package/dist/web-types/web-types.json +1 -1
  146. package/icon-set/bootstrap-icons.js +1 -1
  147. package/icon-set/eva-icons.js +23 -23
  148. package/icon-set/fontawesome-v7-pro.js +128 -0
  149. package/icon-set/fontawesome-v7.js +128 -0
  150. package/icon-set/ionicons-v4.js +17 -17
  151. package/icon-set/svg-bootstrap-icons.js +1 -1
  152. package/icon-set/svg-eva-icons.js +23 -23
  153. package/icon-set/svg-fontawesome-v5.js +1 -1
  154. package/icon-set/svg-fontawesome-v7.js +197 -0
  155. package/icon-set/svg-ionicons-v4.js +17 -17
  156. package/icon-set/svg-ionicons-v5.js +1 -1
  157. package/icon-set/svg-ionicons-v6.js +1 -1
  158. package/icon-set/svg-ionicons-v7.js +224 -0
  159. package/icon-set/svg-ionicons-v8.js +224 -0
  160. package/icon-set/svg-themify.js +7 -7
  161. package/icon-set/themify.js +7 -7
  162. package/lang/ar-TN.js +1 -1
  163. package/lang/ar.js +1 -1
  164. package/lang/az-Latn.js +1 -1
  165. package/lang/bg.js +1 -1
  166. package/lang/bn.js +1 -1
  167. package/lang/bs-BA.js +1 -1
  168. package/lang/ca.js +1 -1
  169. package/lang/cs.js +11 -6
  170. package/lang/da.js +1 -1
  171. package/lang/de-CH.js +1 -1
  172. package/lang/de-DE.js +1 -1
  173. package/lang/de.js +1 -1
  174. package/lang/el.js +1 -1
  175. package/lang/en-GB.js +1 -1
  176. package/lang/en-US.js +1 -1
  177. package/lang/eo.js +1 -1
  178. package/lang/es.js +1 -1
  179. package/lang/et.js +1 -1
  180. package/lang/eu.js +1 -1
  181. package/lang/fa-IR.js +1 -1
  182. package/lang/fa.js +1 -1
  183. package/lang/fi.js +1 -1
  184. package/lang/fr.js +1 -1
  185. package/lang/gn.js +1 -1
  186. package/lang/he.js +1 -1
  187. package/lang/hi.js +1 -1
  188. package/lang/hr.js +1 -1
  189. package/lang/hu.js +1 -1
  190. package/lang/id.js +1 -1
  191. package/lang/is.js +1 -1
  192. package/lang/it.js +9 -9
  193. package/lang/ja.js +1 -1
  194. package/lang/kk.js +1 -1
  195. package/lang/km.js +1 -1
  196. package/lang/kur-CKB.js +1 -1
  197. package/lang/lt.js +2 -2
  198. package/lang/lu.js +1 -1
  199. package/lang/lv.js +1 -1
  200. package/lang/mk.js +1 -1
  201. package/lang/ml.js +1 -1
  202. package/lang/mm.js +1 -1
  203. package/lang/ms-MY.js +1 -1
  204. package/lang/ms.js +1 -1
  205. package/lang/my.js +1 -1
  206. package/lang/nb-NO.js +1 -1
  207. package/lang/nl.js +1 -1
  208. package/lang/pl.js +1 -1
  209. package/lang/pt-BR.js +1 -1
  210. package/lang/pt.js +1 -1
  211. package/lang/ro.js +1 -1
  212. package/lang/ru.js +1 -1
  213. package/lang/sk.js +1 -1
  214. package/lang/sl.js +1 -1
  215. package/lang/sm.js +1 -1
  216. package/lang/sq.js +1 -1
  217. package/lang/sr-CYR.js +1 -1
  218. package/lang/sr.js +1 -1
  219. package/lang/sv.js +1 -1
  220. package/lang/ta.js +1 -1
  221. package/lang/th.js +1 -1
  222. package/lang/tl.js +1 -1
  223. package/lang/tr.js +1 -1
  224. package/lang/ug.js +1 -1
  225. package/lang/uk.js +1 -1
  226. package/lang/ur-PK.js +1 -1
  227. package/lang/uz-Cyrl.js +1 -1
  228. package/lang/uz-Latn.js +1 -1
  229. package/lang/vi.js +1 -1
  230. package/lang/zh-CN.js +1 -1
  231. package/lang/zh-TW.js +1 -1
  232. package/package.json +13 -17
  233. package/src/components/ajax-bar/QAjaxBar.js +22 -25
  234. package/src/components/avatar/QAvatar.js +3 -3
  235. package/src/components/avatar/QAvatar.test.js +2 -2
  236. package/src/components/badge/QBadge.js +9 -10
  237. package/src/components/badge/QBadge.test.js +2 -2
  238. package/src/components/banner/QBanner.js +6 -6
  239. package/src/components/banner/QBanner.test.js +2 -2
  240. package/src/components/bar/QBar.js +3 -3
  241. package/src/components/bar/QBar.test.js +2 -2
  242. package/src/components/breadcrumbs/QBreadcrumbs.js +5 -4
  243. package/src/components/breadcrumbs/QBreadcrumbs.test.js +3 -3
  244. package/src/components/breadcrumbs/QBreadcrumbsEl.js +4 -4
  245. package/src/components/breadcrumbs/QBreadcrumbsEl.test.js +2 -2
  246. package/src/components/btn/QBtn.js +39 -44
  247. package/src/components/btn/QBtn.test.js +2 -2
  248. package/src/components/btn/use-btn.js +34 -47
  249. package/src/components/btn/use-btn.test.js +5 -5
  250. package/src/components/btn-dropdown/QBtnDropdown.js +15 -16
  251. package/src/components/btn-group/QBtnGroup.js +3 -3
  252. package/src/components/btn-toggle/QBtnToggle.js +5 -9
  253. package/src/components/card/QCard.js +5 -5
  254. package/src/components/card/QCardActions.js +2 -2
  255. package/src/components/card/QCardSection.js +2 -2
  256. package/src/components/carousel/QCarousel.js +32 -38
  257. package/src/components/carousel/QCarouselControl.js +1 -1
  258. package/src/components/carousel/QCarouselSlide.js +1 -1
  259. package/src/components/carousel/QCarouselSlide.json +1 -1
  260. package/src/components/chat/QChatMessage.js +13 -14
  261. package/src/components/chat/QChatMessage.json +1 -1
  262. package/src/components/checkbox/QCheckbox.js +5 -5
  263. package/src/components/checkbox/use-checkbox.js +38 -50
  264. package/src/components/chip/QChip.js +26 -34
  265. package/src/components/chip/QChip.test.js +2 -2
  266. package/src/components/circular-progress/QCircularProgress.js +8 -11
  267. package/src/components/circular-progress/circular-progress.test.js +1 -1
  268. package/src/components/color/QColor.js +75 -98
  269. package/src/components/date/QDate.js +128 -140
  270. package/src/components/date/use-datetime.js +3 -6
  271. package/src/components/dialog/QDialog.js +44 -50
  272. package/src/components/dialog/QDialog.test.js +7 -7
  273. package/src/components/drawer/QDrawer.js +110 -152
  274. package/src/components/editor/QEditor.js +44 -37
  275. package/src/components/editor/editor-caret.js +27 -31
  276. package/src/components/editor/editor-utils.js +9 -5
  277. package/src/components/expansion-item/QExpansionItem.js +36 -48
  278. package/src/components/fab/QFab.js +11 -11
  279. package/src/components/fab/QFabAction.js +2 -4
  280. package/src/components/fab/use-fab.js +6 -7
  281. package/src/components/field/QField.js +2 -2
  282. package/src/components/file/QFile.js +26 -33
  283. package/src/components/footer/QFooter.js +40 -53
  284. package/src/components/form/QForm.js +37 -43
  285. package/src/components/form/QFormChildMixin.js +3 -3
  286. package/src/components/header/QHeader.js +35 -47
  287. package/src/components/icon/QIcon.js +19 -19
  288. package/src/components/img/QImg.js +24 -24
  289. package/src/components/img/QImg.json +3 -3
  290. package/src/components/infinite-scroll/QInfiniteScroll.js +38 -52
  291. package/src/components/inner-loading/QInnerLoading.js +3 -3
  292. package/src/components/input/QInput.js +52 -52
  293. package/src/components/input/use-mask.js +56 -54
  294. package/src/components/intersection/QIntersection.js +6 -8
  295. package/src/components/item/QItem.js +20 -30
  296. package/src/components/item/QItemLabel.js +5 -7
  297. package/src/components/item/QItemSection.js +6 -6
  298. package/src/components/item/QList.js +6 -6
  299. package/src/components/item/QList.test.js +2 -2
  300. package/src/components/knob/QKnob.js +39 -44
  301. package/src/components/layout/QLayout.js +30 -34
  302. package/src/components/linear-progress/QLinearProgress.js +14 -23
  303. package/src/components/markup-table/QMarkupTable.js +7 -9
  304. package/src/components/menu/QMenu.js +36 -37
  305. package/src/components/no-ssr/QNoSsr.js +1 -1
  306. package/src/components/option-group/QOptionGroup.js +5 -5
  307. package/src/components/page/QPage.js +16 -18
  308. package/src/components/page/QPageContainer.js +9 -9
  309. package/src/components/page-scroller/QPageScroller.js +11 -13
  310. package/src/components/page-sticky/use-page-sticky.js +18 -18
  311. package/src/components/pagination/QPagination.js +24 -26
  312. package/src/components/parallax/QParallax.js +15 -9
  313. package/src/components/parallax/QParallax.json +1 -1
  314. package/src/components/popup-edit/QPopupEdit.js +10 -13
  315. package/src/components/popup-proxy/QPopupProxy.js +5 -7
  316. package/src/components/pull-to-refresh/QPullToRefresh.js +15 -17
  317. package/src/components/radio/QRadio.js +24 -29
  318. package/src/components/range/QRange.js +33 -37
  319. package/src/components/rating/QRating.js +59 -61
  320. package/src/components/resize-observer/QResizeObserver.js +55 -62
  321. package/src/components/scroll-area/QScrollArea.js +32 -36
  322. package/src/components/scroll-observer/QScrollObserver.js +3 -3
  323. package/src/components/select/QSelect.js +208 -269
  324. package/src/components/separator/QSeparator.js +7 -10
  325. package/src/components/skeleton/QSkeleton.js +4 -4
  326. package/src/components/slide-item/QSlideItem.js +7 -7
  327. package/src/components/slide-transition/QSlideTransition.js +4 -4
  328. package/src/components/slider/QSlider.js +13 -16
  329. package/src/components/slider/use-slider.js +53 -81
  330. package/src/components/slider/use-slider.json +3 -3
  331. package/src/components/space/QSpace.test.js +1 -1
  332. package/src/components/spinner/QSpinner.test.js +2 -2
  333. package/src/components/spinner/QSpinnerAudio.test.js +2 -2
  334. package/src/components/spinner/QSpinnerBall.test.js +2 -2
  335. package/src/components/spinner/QSpinnerBars.test.js +2 -2
  336. package/src/components/spinner/QSpinnerBox.test.js +2 -2
  337. package/src/components/spinner/QSpinnerClock.test.js +2 -2
  338. package/src/components/spinner/QSpinnerComment.test.js +2 -2
  339. package/src/components/spinner/QSpinnerCube.test.js +2 -2
  340. package/src/components/spinner/QSpinnerDots.test.js +2 -2
  341. package/src/components/spinner/QSpinnerFacebook.test.js +2 -2
  342. package/src/components/spinner/QSpinnerGears.test.js +2 -2
  343. package/src/components/spinner/QSpinnerGrid.test.js +2 -2
  344. package/src/components/spinner/QSpinnerHearts.test.js +2 -2
  345. package/src/components/spinner/QSpinnerHourglass.test.js +2 -2
  346. package/src/components/spinner/QSpinnerInfinity.test.js +2 -2
  347. package/src/components/spinner/QSpinnerIos.test.js +2 -2
  348. package/src/components/spinner/QSpinnerOrbit.test.js +2 -2
  349. package/src/components/spinner/QSpinnerOval.test.js +2 -2
  350. package/src/components/spinner/QSpinnerPie.test.js +2 -2
  351. package/src/components/spinner/QSpinnerPuff.test.js +2 -2
  352. package/src/components/spinner/QSpinnerRadio.test.js +2 -2
  353. package/src/components/spinner/QSpinnerRings.test.js +2 -2
  354. package/src/components/spinner/QSpinnerTail.test.js +2 -2
  355. package/src/components/spinner/use-spinner.test.js +1 -1
  356. package/src/components/splitter/QSplitter.js +19 -21
  357. package/src/components/stepper/QStep.js +12 -14
  358. package/src/components/stepper/QStepper.js +13 -14
  359. package/src/components/stepper/StepHeader.js +34 -35
  360. package/src/components/tab-panels/QTabPanels.js +3 -3
  361. package/src/components/table/QTable.js +82 -100
  362. package/src/components/table/QTd.js +3 -3
  363. package/src/components/table/QTh.js +5 -6
  364. package/src/components/table/QTr.js +3 -3
  365. package/src/components/table/table-column-selection.js +4 -6
  366. package/src/components/table/table-filter.js +2 -2
  367. package/src/components/table/table-pagination.js +14 -20
  368. package/src/components/table/table-row-expand.js +3 -3
  369. package/src/components/table/table-row-selection.js +10 -20
  370. package/src/components/table/table-sort.js +7 -7
  371. package/src/components/tabs/QRouteTab.js +1 -1
  372. package/src/components/tabs/QTab.js +1 -1
  373. package/src/components/tabs/QTabs.js +82 -109
  374. package/src/components/tabs/use-tab.js +36 -38
  375. package/src/components/time/QTime.js +109 -132
  376. package/src/components/timeline/QTimeline.js +7 -4
  377. package/src/components/timeline/QTimelineEntry.js +7 -6
  378. package/src/components/timeline/QTimelineEntry.json +1 -1
  379. package/src/components/toggle/QToggle.js +6 -8
  380. package/src/components/toolbar/QToolbar.js +2 -2
  381. package/src/components/toolbar/QToolbar.test.js +2 -2
  382. package/src/components/toolbar/QToolbarTitle.js +2 -4
  383. package/src/components/toolbar/QToolbarTitle.test.js +2 -2
  384. package/src/components/tooltip/QTooltip.js +27 -28
  385. package/src/components/tree/QTree.js +96 -114
  386. package/src/components/tree/QTree.json +1 -1
  387. package/src/components/uploader/QUploaderAddTrigger.js +2 -2
  388. package/src/components/uploader/uploader-core.js +44 -51
  389. package/src/components/uploader/xhr-uploader-plugin.js +13 -17
  390. package/src/components/video/QVideo.js +1 -1
  391. package/src/components/video/QVideo.test.js +2 -2
  392. package/src/components/virtual-scroll/QVirtualScroll.js +9 -10
  393. package/src/components/virtual-scroll/use-virtual-scroll.js +42 -50
  394. package/src/composables/private.use-align/use-align.js +2 -2
  395. package/src/composables/private.use-align/use-align.test.js +1 -1
  396. package/src/composables/private.use-anchor/use-anchor.js +23 -32
  397. package/src/composables/private.use-dark/use-dark.test.js +1 -1
  398. package/src/composables/private.use-field/use-field.js +79 -99
  399. package/src/composables/private.use-file/use-file-dom-props.js +2 -2
  400. package/src/composables/private.use-file/use-file.js +27 -27
  401. package/src/composables/private.use-fullscreen/use-fullscreen.js +15 -20
  402. package/src/composables/private.use-history/use-history.js +2 -2
  403. package/src/composables/private.use-history/use-history.test.js +1 -1
  404. package/src/composables/private.use-key-composition/use-key-composition.js +11 -12
  405. package/src/composables/private.use-model-toggle/use-model-toggle.js +16 -25
  406. package/src/composables/private.use-panel/use-panel.js +25 -27
  407. package/src/composables/private.use-portal/use-portal.js +11 -9
  408. package/src/composables/private.use-prevent-scroll/use-prevent-scroll.js +1 -4
  409. package/src/composables/private.use-ratio/use-ratio.js +6 -5
  410. package/src/composables/private.use-ratio/use-ratio.test.js +1 -1
  411. package/src/composables/private.use-refocus-target/use-refocus-target.js +2 -4
  412. package/src/composables/private.use-router-link/use-router-link.js +44 -55
  413. package/src/composables/private.use-scroll-target/use-scroll-target.js +1 -1
  414. package/src/composables/private.use-size/use-size.test.js +1 -1
  415. package/src/composables/private.use-transition/use-transition.test.js +1 -1
  416. package/src/composables/private.use-validate/use-validate.js +23 -36
  417. package/src/composables/use-dialog-plugin-component/use-dialog-plugin-component.js +1 -1
  418. package/src/composables/use-form/private.use-form.js +1 -1
  419. package/src/composables/use-form/private.use-form.test.js +3 -3
  420. package/src/composables/use-form/use-form-child.js +7 -7
  421. package/src/composables/use-hydration/use-hydration.js +2 -2
  422. package/src/composables/use-hydration/use-hydration.test.js +1 -1
  423. package/src/composables/use-id/use-id.js +4 -8
  424. package/src/composables/use-id/use-id.test.js +1 -1
  425. package/src/composables/use-interval/use-interval.js +3 -3
  426. package/src/composables/use-interval/use-interval.test.js +1 -1
  427. package/src/composables/use-meta/use-meta.js +3 -3
  428. package/src/composables/use-quasar/use-quasar.test.js +1 -1
  429. package/src/composables/use-render-cache/use-render-cache.js +1 -1
  430. package/src/composables/use-render-cache/use-render-cache.test.js +1 -1
  431. package/src/composables/use-split-attrs/use-split-attrs.js +3 -7
  432. package/src/composables/use-split-attrs/use-split-attrs.test.js +1 -1
  433. package/src/composables/use-tick/use-tick.js +3 -3
  434. package/src/composables/use-tick/use-tick.test.js +2 -2
  435. package/src/composables/use-timeout/use-timeout.js +2 -2
  436. package/src/composables/use-timeout/use-timeout.test.js +1 -1
  437. package/src/directives/close-popup/ClosePopup.js +4 -9
  438. package/src/directives/intersection/Intersection.js +5 -8
  439. package/src/directives/morph/Morph.js +12 -18
  440. package/src/directives/ripple/Ripple.js +19 -26
  441. package/src/directives/ripple/Ripple.test.js +2 -2
  442. package/src/directives/scroll/Scroll.js +2 -2
  443. package/src/directives/touch-hold/TouchHold.js +22 -28
  444. package/src/directives/touch-pan/TouchPan.js +68 -84
  445. package/src/directives/touch-repeat/TouchRepeat.js +28 -39
  446. package/src/directives/touch-swipe/TouchSwipe.js +30 -33
  447. package/src/index.ssr.js +2 -0
  448. package/src/index.umd.js +2 -0
  449. package/src/install-quasar.js +9 -9
  450. package/src/plugins/addressbar/AddressbarColor.js +9 -9
  451. package/src/plugins/addressbar/AddressbarColor.test.js +2 -2
  452. package/src/plugins/app-fullscreen/AppFullscreen.js +11 -10
  453. package/src/plugins/app-fullscreen/AppFullscreen.test.js +2 -2
  454. package/src/plugins/app-fullscreen/test/mock-fullscreen.js +2 -2
  455. package/src/plugins/app-visibility/AppVisibility.js +5 -5
  456. package/src/plugins/app-visibility/AppVisibility.test.js +2 -2
  457. package/src/plugins/bottom-sheet/BottomSheet.js +2 -2
  458. package/src/plugins/bottom-sheet/component/BottomSheetComponent.js +4 -4
  459. package/src/plugins/cookies/Cookies.js +50 -62
  460. package/src/plugins/dark/Dark.js +3 -5
  461. package/src/plugins/dark/Dark.test.js +1 -1
  462. package/src/plugins/dialog/Dialog.js +2 -2
  463. package/src/plugins/dialog/component/DialogPluginComponent.js +17 -20
  464. package/src/plugins/icon-set/IconSet.js +2 -4
  465. package/src/plugins/icon-set/IconSet.test.js +1 -1
  466. package/src/plugins/lang/Lang.js +7 -10
  467. package/src/plugins/lang/Lang.json +2 -2
  468. package/src/plugins/lang/Lang.test.js +2 -2
  469. package/src/plugins/loading/Loading.js +10 -12
  470. package/src/plugins/loading-bar/LoadingBar.js +4 -4
  471. package/src/plugins/meta/Meta.js +10 -11
  472. package/src/plugins/notify/Notify.js +67 -72
  473. package/src/plugins/platform/Platform.js +19 -21
  474. package/src/plugins/platform/Platform.test.js +1 -1
  475. package/src/plugins/private.body/Body.js +23 -29
  476. package/src/plugins/private.body/Body.test.js +1 -1
  477. package/src/plugins/private.history/History.js +17 -25
  478. package/src/plugins/private.history/History.test.js +1 -1
  479. package/src/plugins/screen/Screen.js +16 -16
  480. package/src/plugins/screen/Screen.test.js +1 -1
  481. package/src/plugins/storage/LocalStorage.js +3 -4
  482. package/src/plugins/storage/LocalStorage.test.js +2 -2
  483. package/src/plugins/storage/SessionStorage.js +3 -4
  484. package/src/plugins/storage/SessionStorage.test.js +2 -2
  485. package/src/plugins/storage/engine/web-storage.js +30 -23
  486. package/src/plugins/storage/engine/web-storage.test.js +1 -1
  487. package/src/utils/EventBus/EventBus.js +3 -4
  488. package/src/utils/EventBus/EventBus.test.js +1 -1
  489. package/src/utils/clone/clone.test.js +4 -8
  490. package/src/utils/colors/colors.js +38 -29
  491. package/src/utils/colors/colors.test.js +2 -2
  492. package/src/utils/copy-to-clipboard/copy-to-clipboard.js +6 -11
  493. package/src/utils/create-meta-mixin/create-meta-mixin.js +2 -2
  494. package/src/utils/create-uploader-component/create-uploader-component.js +12 -7
  495. package/src/utils/css-var/get-css-var.test.js +2 -2
  496. package/src/utils/css-var/set-css-var.test.js +2 -2
  497. package/src/utils/date/date.js +229 -172
  498. package/src/utils/date/private.persian.js +11 -11
  499. package/src/utils/debounce/debounce.js +3 -7
  500. package/src/utils/debounce/debounce.test.js +1 -1
  501. package/src/utils/dom/dom.js +2 -4
  502. package/src/utils/dom/dom.test.js +4 -4
  503. package/src/utils/event/event.js +21 -23
  504. package/src/utils/export-file/export-file.js +3 -3
  505. package/src/utils/extend/extend.js +15 -14
  506. package/src/utils/extend/extend.test.js +2 -2
  507. package/src/utils/format/format.js +4 -10
  508. package/src/utils/format/format.test.js +1 -1
  509. package/src/utils/frame-debounce/frame-debounce.js +23 -12
  510. package/src/utils/frame-debounce/frame-debounce.test.js +1 -1
  511. package/src/utils/is/is.js +15 -26
  512. package/src/utils/is/is.test.js +8 -7
  513. package/src/utils/morph/morph.js +57 -48
  514. package/src/utils/open-url/open-url.js +7 -7
  515. package/src/utils/patterns/patterns.js +26 -23
  516. package/src/utils/patterns/patterns.test.js +1 -1
  517. package/src/utils/private.click-outside/click-outside.js +5 -5
  518. package/src/utils/private.config/instance-config.js +2 -0
  519. package/src/utils/private.config/instance-config.test.js +4 -4
  520. package/src/utils/private.config/nodes.js +5 -5
  521. package/src/utils/private.config/nodes.test.js +4 -4
  522. package/src/utils/private.create/create.test.js +1 -1
  523. package/src/utils/private.dialog/create-dialog.js +9 -12
  524. package/src/utils/private.focus/focus-manager.js +1 -1
  525. package/src/utils/private.focus/focus-manager.test.js +4 -4
  526. package/src/utils/private.focus/focusout.js +2 -2
  527. package/src/utils/private.focus/focusout.test.js +1 -1
  528. package/src/utils/private.get-emits-object/get-emits-object.test.js +1 -1
  529. package/src/utils/private.inject-obj-prop/inject-obj-prop.test.js +2 -2
  530. package/src/utils/private.keyboard/escape-key.js +5 -5
  531. package/src/utils/private.keyboard/escape-key.test.js +1 -1
  532. package/src/utils/private.keyboard/key-composition.js +4 -6
  533. package/src/utils/private.noop-ssr-directive-transform/noop-ssr-directive-transform.js +3 -1
  534. package/src/utils/private.noop-ssr-directive-transform/noop-ssr-directive-transform.test.js +1 -1
  535. package/src/utils/private.portal/portal.js +5 -5
  536. package/src/utils/private.position-engine/position-engine.js +20 -22
  537. package/src/utils/private.render/render.js +5 -7
  538. package/src/utils/private.render/render.test.js +5 -5
  539. package/src/utils/private.rtl/rtl.js +3 -2
  540. package/src/utils/private.rtl/rtl.test.js +1 -1
  541. package/src/utils/private.selection/selection.js +1 -1
  542. package/src/utils/private.selection/selection.test.js +2 -2
  543. package/src/utils/private.sort/sort.test.js +2 -2
  544. package/src/utils/private.touch/touch.js +10 -14
  545. package/src/utils/private.touch/touch.test.js +1 -1
  546. package/src/utils/private.vm/vm.js +2 -2
  547. package/src/utils/private.vm/vm.test.js +4 -4
  548. package/src/utils/run-sequential-promises/run-sequential-promises.js +44 -54
  549. package/src/utils/run-sequential-promises/run-sequential-promises.test.js +183 -0
  550. package/src/utils/scroll/prevent-scroll.js +9 -9
  551. package/src/utils/scroll/scroll.js +11 -12
  552. package/src/utils/throttle/throttle.js +4 -3
  553. package/src/utils/throttle/throttle.test.js +1 -1
  554. package/src/utils/uid/uid.js +51 -77
  555. package/src/utils/uid/uid.test.js +3 -3
  556. package/wrappers/index.cjs +2 -2
  557. package/wrappers/index.js +2 -2
  558. package/dist/types/extras/animations.d.ts +0 -106
  559. package/dist/types/extras/fonts.d.ts +0 -1
  560. package/dist/types/extras.d.ts +0 -3
  561. package/dist/vetur/quasar-attributes.json +0 -1
  562. package/dist/vetur/quasar-tags.json +0 -1
@@ -1,13 +1,13 @@
1
1
  import {
2
- h,
3
- ref,
4
2
  computed,
5
- watch,
3
+ getCurrentInstance,
4
+ h,
5
+ nextTick,
6
+ onBeforeUnmount,
6
7
  onBeforeUpdate,
7
8
  onUpdated,
8
- onBeforeUnmount,
9
- nextTick,
10
- getCurrentInstance
9
+ ref,
10
+ watch
11
11
  } from 'vue'
12
12
 
13
13
  import QField from '../field/QField.js'
@@ -22,32 +22,33 @@ import QMenu from '../menu/QMenu.js'
22
22
  import QDialog from '../dialog/QDialog.js'
23
23
 
24
24
  import useField, {
25
- useFieldState,
26
- useFieldProps,
25
+ fieldValueIsFilled,
27
26
  useFieldEmits,
28
- fieldValueIsFilled
27
+ useFieldProps,
28
+ useFieldState
29
29
  } from '../../composables/private.use-field/use-field.js'
30
30
  import {
31
31
  useVirtualScroll,
32
32
  useVirtualScrollProps
33
33
  } from '../virtual-scroll/use-virtual-scroll.js'
34
34
  import {
35
- useFormProps,
36
- useFormInputNameAttr
35
+ useFormInputNameAttr,
36
+ useFormProps
37
37
  } from '../../composables/use-form/private.use-form.js'
38
38
  import useKeyComposition from '../../composables/private.use-key-composition/use-key-composition.js'
39
39
 
40
40
  import { createComponent } from '../../utils/private.create/create.js'
41
41
  import { isDeepEqual } from '../../utils/is/is.js'
42
- import { stop, prevent, stopAndPrevent } from '../../utils/event/event.js'
42
+ import { prevent, stop, stopAndPrevent } from '../../utils/event/event.js'
43
43
  import { normalizeToInterval } from '../../utils/format/format.js'
44
44
  import {
45
- shouldIgnoreKey,
46
- isKeyCode
45
+ isKeyCode,
46
+ shouldIgnoreKey
47
47
  } from '../../utils/private.keyboard/key-composition.js'
48
48
  import { hMergeSlot } from '../../utils/private.render/render.js'
49
49
 
50
50
  const validateNewValueMode = v => ['add', 'add-unique', 'toggle'].includes(v)
51
+ // oxlint-disable-next-line no-template-curly-in-string
51
52
  const reEscapeList = '.*+?^${}()|[]\\'
52
53
  const fieldPropsList = Object.keys(useFieldProps)
53
54
 
@@ -213,7 +214,7 @@ export default createComponent({
213
214
 
214
215
  const virtualScrollItemSizeComputed = computed(() =>
215
216
  props.virtualScrollItemSize === void 0
216
- ? props.optionsDense === true
217
+ ? props.optionsDense
217
218
  ? 24
218
219
  : 48
219
220
  : props.virtualScrollItemSize
@@ -237,23 +238,20 @@ export default createComponent({
237
238
  const state = useFieldState()
238
239
 
239
240
  const innerValue = computed(() => {
240
- const mapNull = props.mapOptions === true && props.multiple !== true,
241
+ const mapNull = props.mapOptions && !props.multiple,
241
242
  val =
242
- props.modelValue !== void 0 &&
243
- (props.modelValue !== null || mapNull === true)
244
- ? props.multiple === true && Array.isArray(props.modelValue)
243
+ props.modelValue !== void 0 && (props.modelValue !== null || mapNull)
244
+ ? props.multiple && Array.isArray(props.modelValue)
245
245
  ? props.modelValue
246
246
  : [props.modelValue]
247
247
  : []
248
248
 
249
- if (props.mapOptions === true && Array.isArray(props.options) === true) {
249
+ if (props.mapOptions && Array.isArray(props.options)) {
250
250
  const cache =
251
- props.mapOptions === true && innerValueCache !== void 0
252
- ? innerValueCache
253
- : []
251
+ props.mapOptions && innerValueCache !== void 0 ? innerValueCache : []
254
252
  const values = val.map(v => getOption(v, cache))
255
253
 
256
- return props.modelValue === null && mapNull === true
254
+ return props.modelValue === null && mapNull
257
255
  ? values.filter(v => v !== null)
258
256
  : values
259
257
  }
@@ -281,7 +279,7 @@ export default createComponent({
281
279
  const computedInputClass = computed(() => {
282
280
  let cls = 'q-field__input q-placeholder col'
283
281
 
284
- if (props.hideSelected === true || innerValue.value.length === 0) {
282
+ if (props.hideSelected || innerValue.value.length === 0) {
285
283
  return [cls, props.inputClass]
286
284
  }
287
285
 
@@ -292,9 +290,8 @@ export default createComponent({
292
290
 
293
291
  const menuContentClass = computed(
294
292
  () =>
295
- (props.virtualScrollHorizontal === true
296
- ? 'q-virtual-scroll--horizontal'
297
- : '') + (props.popupContentClass ? ' ' + props.popupContentClass : '')
293
+ (props.virtualScrollHorizontal ? 'q-virtual-scroll--horizontal' : '') +
294
+ (props.popupContentClass ? ' ' + props.popupContentClass : '')
298
295
  )
299
296
 
300
297
  const noOptions = computed(() => virtualScrollLength.value === 0)
@@ -308,29 +305,26 @@ export default createComponent({
308
305
  )
309
306
 
310
307
  const needsHtmlFn = computed(() =>
311
- props.optionsHtml === true ? () => true : opt => opt?.html === true
308
+ props.optionsHtml ? () => true : opt => opt?.html === true
312
309
  )
313
310
 
314
311
  const valueAsHtml = computed(
315
312
  () =>
316
- props.displayValueHtml === true ||
313
+ props.displayValueHtml ||
317
314
  (props.displayValue === void 0 &&
318
- (props.optionsHtml === true ||
319
- innerValue.value.some(needsHtmlFn.value)))
315
+ (props.optionsHtml || innerValue.value.some(needsHtmlFn.value)))
320
316
  )
321
317
 
322
- const tabindex = computed(() =>
323
- state.focused.value === true ? props.tabindex : -1
324
- )
318
+ const tabindex = computed(() => (state.focused.value ? props.tabindex : -1))
325
319
 
326
320
  const comboboxAttrs = computed(() => {
327
321
  const attrs = {
328
322
  tabindex: props.tabindex,
329
323
  role: 'combobox',
330
324
  'aria-label': props.label,
331
- 'aria-readonly': props.readonly === true ? 'true' : 'false',
332
- 'aria-autocomplete': props.useInput === true ? 'list' : 'none',
333
- 'aria-expanded': menu.value === true ? 'true' : 'false',
325
+ 'aria-readonly': props.readonly ? 'true' : 'false',
326
+ 'aria-autocomplete': props.useInput ? 'list' : 'none',
327
+ 'aria-expanded': menu.value ? 'true' : 'false',
334
328
  'aria-controls': `${state.targetUid.value}_lb`
335
329
  }
336
330
 
@@ -345,7 +339,7 @@ export default createComponent({
345
339
  const listboxAttrs = computed(() => ({
346
340
  id: `${state.targetUid.value}_lb`,
347
341
  role: 'listbox',
348
- 'aria-multiselectable': props.multiple === true ? 'true' : 'false'
342
+ 'aria-multiselectable': props.multiple ? 'true' : 'false'
349
343
  }))
350
344
 
351
345
  const selectedScope = computed(() =>
@@ -361,15 +355,13 @@ export default createComponent({
361
355
  )
362
356
 
363
357
  const optionScope = computed(() => {
364
- if (virtualScrollLength.value === 0) {
365
- return []
366
- }
358
+ if (virtualScrollLength.value === 0) return []
367
359
 
368
360
  const { from, to } = virtualScrollSliceRange.value
369
361
 
370
362
  return props.options.slice(from, to).map((opt, i) => {
371
363
  const disable = isOptionDisabled.value(opt) === true
372
- const active = isOptionSelected(opt) === true
364
+ const active = isOptionSelected(opt)
373
365
  const index = from + i
374
366
 
375
367
  const itemProps = {
@@ -383,19 +375,19 @@ export default createComponent({
383
375
  dense: props.optionsDense,
384
376
  dark: isOptionsDark.value,
385
377
  role: 'option',
386
- 'aria-selected': active === true ? 'true' : 'false',
378
+ 'aria-selected': active ? 'true' : 'false',
387
379
  id: `${state.targetUid.value}_${index}`,
388
380
  onClick: () => {
389
381
  toggleOption(opt)
390
382
  }
391
383
  }
392
384
 
393
- if (disable !== true) {
385
+ if (!disable) {
394
386
  if (optionIndex.value === index) itemProps.focused = true
395
387
 
396
- if ($q.platform.is.desktop === true) {
388
+ if ($q.platform.is.desktop) {
397
389
  itemProps.onMousemove = () => {
398
- if (menu.value === true) setOptionIndex(index)
390
+ if (menu.value) setOptionIndex(index)
399
391
  }
400
392
  }
401
393
  }
@@ -422,11 +414,11 @@ export default createComponent({
422
414
 
423
415
  const squaredMenu = computed(
424
416
  () =>
425
- props.optionsCover === false &&
426
- props.outlined !== true &&
427
- props.standout !== true &&
428
- props.borderless !== true &&
429
- props.rounded !== true
417
+ !props.optionsCover &&
418
+ !props.outlined &&
419
+ !props.standout &&
420
+ !props.borderless &&
421
+ !props.rounded
430
422
  )
431
423
 
432
424
  const computedOptionsSelectedClass = computed(() =>
@@ -450,7 +442,8 @@ export default createComponent({
450
442
  )
451
443
 
452
444
  // returns method to tell if an option is disabled;
453
- // takes into account 'option-disable' prop
445
+ // takes into account 'option-disable' prop;
446
+ // must be compared strictly to boolean true
454
447
  const isOptionDisabled = computed(() =>
455
448
  getPropValueFn(props.optionDisable, 'disable')
456
449
  )
@@ -472,7 +465,7 @@ export default createComponent({
472
465
  onKeypress: onTargetKeypress,
473
466
  onFocus: selectInputText,
474
467
  onClick(e) {
475
- if (hasDialog === true) stop(e)
468
+ if (hasDialog) stop(e)
476
469
  }
477
470
  }
478
471
 
@@ -490,19 +483,16 @@ export default createComponent({
490
483
  innerValueCache = val
491
484
 
492
485
  if (
493
- props.useInput === true &&
494
- props.fillInput === true &&
495
- props.multiple !== true &&
486
+ props.useInput &&
487
+ props.fillInput &&
488
+ !props.multiple &&
496
489
  // Prevent re-entering in filter while filtering
497
490
  // Also prevent clearing inputValue while filtering
498
- state.innerLoading.value !== true &&
499
- ((dialog.value !== true && menu.value !== true) ||
500
- hasValue.value !== true)
491
+ !state.innerLoading.value &&
492
+ ((!dialog.value && !menu.value) || !hasValue.value)
501
493
  ) {
502
- if (userInputValue !== true) resetInputValue()
503
- if (dialog.value === true || menu.value === true) {
504
- filter('')
505
- }
494
+ if (!userInputValue) resetInputValue()
495
+ if (dialog.value || menu.value) filter('')
506
496
  }
507
497
  },
508
498
  { immediate: true }
@@ -515,13 +505,13 @@ export default createComponent({
515
505
  watch(virtualScrollLength, rerenderMenu)
516
506
 
517
507
  function getEmittingOptionValue(opt) {
518
- return props.emitValue === true ? getOptionValue.value(opt) : opt
508
+ return props.emitValue ? getOptionValue.value(opt) : opt
519
509
  }
520
510
 
521
511
  function removeAtIndex(index) {
522
512
  if (index !== -1 && index < innerValue.value.length) {
523
- if (props.multiple === true) {
524
- const model = props.modelValue.slice()
513
+ if (props.multiple) {
514
+ const model = [...props.modelValue]
525
515
  emit('remove', { index, value: model.splice(index, 1)[0] })
526
516
  emit('update:modelValue', model)
527
517
  } else {
@@ -538,8 +528,8 @@ export default createComponent({
538
528
  function add(opt, unique) {
539
529
  const val = getEmittingOptionValue(opt)
540
530
 
541
- if (props.multiple !== true) {
542
- if (props.fillInput === true) {
531
+ if (!props.multiple) {
532
+ if (props.fillInput) {
543
533
  updateInputValue(getOptionLabel.value(opt), true, true)
544
534
  }
545
535
 
@@ -549,11 +539,11 @@ export default createComponent({
549
539
 
550
540
  if (innerValue.value.length === 0) {
551
541
  emit('add', { index: 0, value: val })
552
- emit('update:modelValue', props.multiple === true ? [val] : val)
542
+ emit('update:modelValue', props.multiple ? [val] : val)
553
543
  return
554
544
  }
555
545
 
556
- if (unique === true && isOptionSelected(opt) === true) return
546
+ if (unique && isOptionSelected(opt)) return
557
547
 
558
548
  if (
559
549
  props.maxValues !== void 0 &&
@@ -562,7 +552,7 @@ export default createComponent({
562
552
  return
563
553
  }
564
554
 
565
- const model = props.modelValue.slice()
555
+ const model = [...props.modelValue]
566
556
 
567
557
  emit('add', { index: model.length, value: val })
568
558
  model.push(val)
@@ -571,7 +561,7 @@ export default createComponent({
571
561
 
572
562
  function toggleOption(opt, keepOpen) {
573
563
  if (
574
- state.editable.value !== true ||
564
+ !state.editable.value ||
575
565
  opt === void 0 ||
576
566
  isOptionDisabled.value(opt) === true
577
567
  ) {
@@ -580,10 +570,10 @@ export default createComponent({
580
570
 
581
571
  const optValue = getOptionValue.value(opt)
582
572
 
583
- if (props.multiple !== true) {
584
- if (keepOpen !== true) {
573
+ if (!props.multiple) {
574
+ if (!keepOpen) {
585
575
  updateInputValue(
586
- props.fillInput === true ? getOptionLabel.value(opt) : '',
576
+ props.fillInput ? getOptionLabel.value(opt) : '',
587
577
  true,
588
578
  true
589
579
  )
@@ -595,29 +585,26 @@ export default createComponent({
595
585
 
596
586
  if (
597
587
  innerValue.value.length === 0 ||
598
- isDeepEqual(getOptionValue.value(innerValue.value[0]), optValue) !==
599
- true
588
+ !isDeepEqual(getOptionValue.value(innerValue.value[0]), optValue)
600
589
  ) {
601
- emit('update:modelValue', props.emitValue === true ? optValue : opt)
590
+ emit('update:modelValue', props.emitValue ? optValue : opt)
602
591
  }
603
592
 
604
593
  return
605
594
  }
606
595
 
607
- if (hasDialog !== true || dialogFieldFocused.value === true) {
608
- state.focus()
609
- }
596
+ if (!hasDialog || dialogFieldFocused.value) state.focus()
610
597
 
611
598
  selectInputText()
612
599
 
613
600
  if (innerValue.value.length === 0) {
614
- const val = props.emitValue === true ? optValue : opt
601
+ const val = props.emitValue ? optValue : opt
615
602
  emit('add', { index: 0, value: val })
616
- emit('update:modelValue', props.multiple === true ? [val] : val)
603
+ emit('update:modelValue', props.multiple ? [val] : val)
617
604
  return
618
605
  }
619
606
 
620
- const model = props.modelValue.slice(),
607
+ const model = [...props.modelValue],
621
608
  index = innerOptionsValue.value.findIndex(v => isDeepEqual(v, optValue))
622
609
 
623
610
  if (index !== -1) {
@@ -627,7 +614,7 @@ export default createComponent({
627
614
  return
628
615
  }
629
616
 
630
- const val = props.emitValue === true ? optValue : opt
617
+ const val = props.emitValue ? optValue : opt
631
618
 
632
619
  emit('add', { index: model.length, value: val })
633
620
  model.push(val)
@@ -637,7 +624,7 @@ export default createComponent({
637
624
  }
638
625
 
639
626
  function setOptionIndex(index) {
640
- if ($q.platform.is.desktop !== true) return
627
+ if (!$q.platform.is.desktop) return
641
628
 
642
629
  const val = index !== -1 && index < virtualScrollLength.value ? index : -1
643
630
 
@@ -648,7 +635,7 @@ export default createComponent({
648
635
 
649
636
  // oxlint-disable-next-line default-param-last
650
637
  function moveOptionSelection(localOffset = 1, skipInputValue) {
651
- if (menu.value === true) {
638
+ if (menu.value) {
652
639
  let index = optionIndex.value
653
640
  do {
654
641
  index = normalizeToInterval(
@@ -666,11 +653,7 @@ export default createComponent({
666
653
  setOptionIndex(index)
667
654
  scrollTo(index)
668
655
 
669
- if (
670
- skipInputValue !== true &&
671
- props.useInput === true &&
672
- props.fillInput === true
673
- ) {
656
+ if (!skipInputValue && props.useInput && props.fillInput) {
674
657
  setInputValue(
675
658
  index >= 0
676
659
  ? getOptionLabel.value(props.options[index])
@@ -694,7 +677,7 @@ export default createComponent({
694
677
 
695
678
  function selectInputText(e) {
696
679
  if (
697
- props.useInput === true &&
680
+ props.useInput &&
698
681
  targetRef.value !== null &&
699
682
  (e === void 0 ||
700
683
  (targetRef.value === e.target &&
@@ -708,7 +691,7 @@ export default createComponent({
708
691
  // if ESC and we have an opened menu
709
692
  // then stop propagation (might be caught by a QDialog
710
693
  // and so it will also close the QDialog, which is wrong)
711
- if (isKeyCode(e, 27) === true && menu.value === true) {
694
+ if (isKeyCode(e, 27) && menu.value) {
712
695
  stop(e)
713
696
  // on ESC we need to close the dialog also
714
697
  hidePopup()
@@ -748,19 +731,16 @@ export default createComponent({
748
731
 
749
732
  if (option === void 0) return false
750
733
 
751
- if (innerValue.value.indexOf(option) === -1) {
752
- toggleOption(option)
753
- } else {
754
- hidePopup()
755
- }
734
+ if (innerValue.value.includes(option)) hidePopup()
735
+ else toggleOption(option)
756
736
 
757
737
  return true
758
738
  }
759
739
  const fillFn = afterFilter => {
760
740
  if (
761
- findFn(getOptionValue) !== true &&
762
- afterFilter !== true &&
763
- findFn(getOptionLabel) !== true
741
+ !findFn(getOptionValue) &&
742
+ !afterFilter &&
743
+ !findFn(getOptionLabel)
764
744
  ) {
765
745
  filter(value, true, () => fillFn(true))
766
746
  }
@@ -779,17 +759,17 @@ export default createComponent({
779
759
  function onTargetKeydown(e) {
780
760
  emit('keydown', e)
781
761
 
782
- if (shouldIgnoreKey(e) === true) return
762
+ if (shouldIgnoreKey(e)) return
783
763
 
784
764
  const newValueModeValid =
785
765
  inputValue.value.length !== 0 &&
786
766
  (props.newValueMode !== void 0 || props.onNewValue !== void 0)
787
767
 
788
768
  const tabShouldSelect =
789
- e.shiftKey !== true &&
790
- props.disableTabSelection !== true &&
791
- props.multiple !== true &&
792
- (optionIndex.value !== -1 || newValueModeValid === true)
769
+ !e.shiftKey &&
770
+ !props.disableTabSelection &&
771
+ !props.multiple &&
772
+ (optionIndex.value !== -1 || newValueModeValid)
793
773
 
794
774
  // escape
795
775
  if (e.keyCode === 27) {
@@ -798,7 +778,7 @@ export default createComponent({
798
778
  }
799
779
 
800
780
  // tab
801
- if (e.keyCode === 9 && tabShouldSelect === false) {
781
+ if (e.keyCode === 9 && !tabShouldSelect) {
802
782
  closeMenu()
803
783
  return
804
784
  }
@@ -806,17 +786,13 @@ export default createComponent({
806
786
  if (
807
787
  e.target === void 0 ||
808
788
  e.target.id !== state.targetUid.value ||
809
- state.editable.value !== true
789
+ !state.editable.value
810
790
  ) {
811
791
  return
812
792
  }
813
793
 
814
794
  // down
815
- if (
816
- e.keyCode === 40 &&
817
- state.innerLoading.value !== true &&
818
- menu.value === false
819
- ) {
795
+ if (e.keyCode === 40 && !state.innerLoading.value && !menu.value) {
820
796
  stopAndPrevent(e)
821
797
  showPopup()
822
798
  return
@@ -825,16 +801,13 @@ export default createComponent({
825
801
  // backspace
826
802
  if (
827
803
  e.keyCode === 8 &&
828
- (props.useChips === true || props.clearable === true) &&
829
- props.hideSelected !== true &&
804
+ (props.useChips || props.clearable) &&
805
+ !props.hideSelected &&
830
806
  inputValue.value.length === 0
831
807
  ) {
832
- if (
833
- props.multiple === true &&
834
- Array.isArray(props.modelValue) === true
835
- ) {
808
+ if (props.multiple && Array.isArray(props.modelValue)) {
836
809
  removeAtIndex(props.modelValue.length - 1)
837
- } else if (props.multiple !== true && props.modelValue !== null) {
810
+ } else if (!props.multiple && props.modelValue !== null) {
838
811
  emit('update:modelValue', null)
839
812
  }
840
813
 
@@ -885,30 +858,29 @@ export default createComponent({
885
858
  // keyboard search when not having use-input
886
859
  if (
887
860
  optionsLength > 0 &&
888
- props.useInput !== true &&
861
+ !props.useInput &&
889
862
  e.key !== void 0 &&
890
863
  e.key.length === 1 && // printable char
891
- e.altKey === false && // not kbd shortcut
892
- e.ctrlKey === false && // not kbd shortcut
893
- e.metaKey === false && // not kbd shortcut, especially on macOS with Command key
864
+ !e.altKey && // not kbd shortcut
865
+ !e.ctrlKey && // not kbd shortcut
866
+ !e.metaKey && // not kbd shortcut, especially on macOS with Command key
894
867
  (e.keyCode !== 32 || searchBuffer.length !== 0) // space in middle of search
895
868
  ) {
896
- if (menu.value !== true) showPopup(e)
869
+ if (!menu.value) showPopup(e)
897
870
 
898
871
  const char = e.key.toLocaleLowerCase(),
899
872
  keyRepeat = searchBuffer.length === 1 && searchBuffer[0] === char
900
873
 
901
874
  searchBufferExp = Date.now() + 1500
902
- if (keyRepeat === false) {
875
+ if (!keyRepeat) {
903
876
  stopAndPrevent(e)
904
877
  searchBuffer += char
905
878
  }
906
879
 
907
880
  const searchRe = new RegExp(
908
881
  '^' +
909
- searchBuffer
910
- .split('')
911
- .map(l => (reEscapeList.indexOf(l) !== -1 ? '\\' + l : l))
882
+ [...searchBuffer]
883
+ .map(l => (reEscapeList.includes(l) ? '\\' + l : l))
912
884
  .join('.*'),
913
885
  'i'
914
886
  )
@@ -916,17 +888,16 @@ export default createComponent({
916
888
  let index = optionIndex.value
917
889
 
918
890
  if (
919
- keyRepeat === true ||
891
+ keyRepeat ||
920
892
  index < 0 ||
921
- searchRe.test(getOptionLabel.value(props.options[index])) !== true
893
+ !searchRe.test(getOptionLabel.value(props.options[index]))
922
894
  ) {
923
895
  do {
924
896
  index = normalizeToInterval(index + 1, -1, optionsLength - 1)
925
897
  } while (
926
898
  index !== optionIndex.value &&
927
899
  (isOptionDisabled.value(props.options[index]) === true ||
928
- searchRe.test(getOptionLabel.value(props.options[index])) !==
929
- true)
900
+ !searchRe.test(getOptionLabel.value(props.options[index])))
930
901
  )
931
902
  }
932
903
 
@@ -935,11 +906,7 @@ export default createComponent({
935
906
  setOptionIndex(index)
936
907
  scrollTo(index)
937
908
 
938
- if (
939
- index >= 0 &&
940
- props.useInput === true &&
941
- props.fillInput === true
942
- ) {
909
+ if (index >= 0 && props.useInput && props.fillInput) {
943
910
  setInputValue(getOptionLabel.value(props.options[index]), true)
944
911
  }
945
912
  })
@@ -948,12 +915,13 @@ export default createComponent({
948
915
  return
949
916
  }
950
917
 
951
- // enter, space (when not using use-input and not in search), or tab (when not using multiple and option selected)
918
+ // enter, space (when not using use-input and not in search),
919
+ // or tab (when not using multiple and option selected)
952
920
  // same target is checked above
953
921
  if (
954
922
  e.keyCode !== 13 &&
955
- (e.keyCode !== 32 || props.useInput === true || searchBuffer !== '') &&
956
- (e.keyCode !== 9 || tabShouldSelect === false)
923
+ (e.keyCode !== 32 || props.useInput || searchBuffer !== '') &&
924
+ (e.keyCode !== 9 || !tabShouldSelect)
957
925
  ) {
958
926
  return
959
927
  }
@@ -965,22 +933,22 @@ export default createComponent({
965
933
  return
966
934
  }
967
935
 
968
- if (newValueModeValid === true) {
936
+ if (newValueModeValid) {
969
937
  const done = (val, mode) => {
970
938
  if (mode) {
971
- if (validateNewValueMode(mode) !== true) return
939
+ if (!validateNewValueMode(mode)) return
972
940
  } else {
973
941
  mode = props.newValueMode
974
942
  }
975
943
 
976
- updateInputValue('', props.multiple !== true, true)
944
+ updateInputValue('', !props.multiple, true)
977
945
 
978
946
  if (val === void 0 || val === null) return
979
947
 
980
948
  const fn = mode === 'toggle' ? toggleOption : add
981
949
  fn(val, mode === 'add-unique')
982
950
 
983
- if (props.multiple !== true) {
951
+ if (!props.multiple) {
984
952
  targetRef.value?.focus()
985
953
  hidePopup()
986
954
  }
@@ -992,18 +960,18 @@ export default createComponent({
992
960
  done(inputValue.value)
993
961
  }
994
962
 
995
- if (props.multiple !== true) return
963
+ if (!props.multiple) return
996
964
  }
997
965
 
998
- if (menu.value === true) {
966
+ if (menu.value) {
999
967
  closeMenu()
1000
- } else if (state.innerLoading.value !== true) {
968
+ } else if (!state.innerLoading.value) {
1001
969
  showPopup()
1002
970
  }
1003
971
  }
1004
972
 
1005
973
  function getVirtualScrollEl() {
1006
- return hasDialog === true
974
+ return hasDialog
1007
975
  ? menuContentRef.value
1008
976
  : menuRef.value !== null && menuRef.value.contentEl !== null
1009
977
  ? menuRef.value.contentEl
@@ -1015,28 +983,24 @@ export default createComponent({
1015
983
  }
1016
984
 
1017
985
  function getSelection() {
1018
- if (props.hideSelected === true) {
1019
- return []
1020
- }
986
+ if (props.hideSelected) return []
1021
987
 
1022
988
  if (slots['selected-item'] !== void 0) {
1023
- return selectedScope.value
1024
- .map(scope => slots['selected-item'](scope))
1025
- .slice()
989
+ return selectedScope.value.map(scope => slots['selected-item'](scope))
1026
990
  }
1027
991
 
1028
992
  if (slots.selected !== void 0) {
1029
- return [].concat(slots.selected())
993
+ return [slots.selected()].flat()
1030
994
  }
1031
995
 
1032
- if (props.useChips === true) {
996
+ if (props.useChips) {
1033
997
  return selectedScope.value.map((scope, i) =>
1034
998
  h(
1035
999
  QChip,
1036
1000
  {
1037
1001
  key: 'option-' + i,
1038
1002
  removable:
1039
- state.editable.value === true &&
1003
+ state.editable.value &&
1040
1004
  isOptionDisabled.value(scope.opt) !== true,
1041
1005
  dense: true,
1042
1006
  textColor: props.color,
@@ -1048,7 +1012,7 @@ export default createComponent({
1048
1012
  () =>
1049
1013
  h('span', {
1050
1014
  class: 'ellipsis',
1051
- [scope.html === true ? 'innerHTML' : 'textContent']:
1015
+ [scope.html ? 'innerHTML' : 'textContent']:
1052
1016
  getOptionLabel.value(scope.opt)
1053
1017
  })
1054
1018
  )
@@ -1058,14 +1022,14 @@ export default createComponent({
1058
1022
  return [
1059
1023
  h('span', {
1060
1024
  class: 'ellipsis',
1061
- [valueAsHtml.value === true ? 'innerHTML' : 'textContent']:
1025
+ [valueAsHtml.value ? 'innerHTML' : 'textContent']:
1062
1026
  ariaCurrentValue.value
1063
1027
  })
1064
1028
  ]
1065
1029
  }
1066
1030
 
1067
1031
  function getAllOptions() {
1068
- if (noOptions.value === true) {
1032
+ if (noOptions.value) {
1069
1033
  return slots['no-option'] !== void 0
1070
1034
  ? slots['no-option']({ inputValue: inputValue.value })
1071
1035
  : void 0
@@ -1085,8 +1049,7 @@ export default createComponent({
1085
1049
  h(QItemSection, () =>
1086
1050
  h(QItemLabel, () =>
1087
1051
  h('span', {
1088
- [scope.html === true ? 'innerHTML' : 'textContent']:
1089
- scope.label
1052
+ [scope.html ? 'innerHTML' : 'textContent']: scope.label
1090
1053
  })
1091
1054
  )
1092
1055
  )
@@ -1095,20 +1058,19 @@ export default createComponent({
1095
1058
  let options = padVirtualScroll('div', optionScope.value.map(fn))
1096
1059
 
1097
1060
  if (slots['before-options'] !== void 0) {
1098
- options = slots['before-options']().concat(options)
1061
+ options = [slots['before-options'](), ...options].flat()
1099
1062
  }
1100
1063
 
1101
1064
  return hMergeSlot(slots['after-options'], options)
1102
1065
  }
1103
1066
 
1104
1067
  function getInput(fromDialog, isTarget) {
1105
- const attrs =
1106
- isTarget === true
1107
- ? { ...comboboxAttrs.value, ...state.splitAttrs.attributes.value }
1108
- : void 0
1068
+ const attrs = isTarget
1069
+ ? { ...comboboxAttrs.value, ...state.splitAttrs.attributes.value }
1070
+ : void 0
1109
1071
 
1110
1072
  const data = {
1111
- ref: isTarget === true ? targetRef : void 0,
1073
+ ref: isTarget ? targetRef : void 0,
1112
1074
  key: 'i_t',
1113
1075
  class: computedInputClass.value,
1114
1076
  style: props.inputStyle,
@@ -1116,18 +1078,17 @@ export default createComponent({
1116
1078
  // required for Android in order to show ENTER key when in form
1117
1079
  type: 'search',
1118
1080
  ...attrs,
1119
- id: isTarget === true ? state.targetUid.value : void 0,
1081
+ id: isTarget ? state.targetUid.value : void 0,
1120
1082
  maxlength: props.maxlength,
1121
1083
  autocomplete: props.autocomplete,
1122
- 'data-autofocus':
1123
- fromDialog === true || props.autofocus === true || void 0,
1124
- disabled: props.disable === true,
1125
- readonly: props.readonly === true,
1084
+ 'data-autofocus': fromDialog === true || props.autofocus || void 0,
1085
+ disabled: props.disable,
1086
+ readonly: props.readonly,
1126
1087
  ...inputControlEvents.value
1127
1088
  }
1128
1089
 
1129
- if (fromDialog !== true && hasDialog === true) {
1130
- if (Array.isArray(data.class) === true) {
1090
+ if (!fromDialog && hasDialog) {
1091
+ if (Array.isArray(data.class)) {
1131
1092
  data.class = [...data.class, 'no-pointer-events']
1132
1093
  } else {
1133
1094
  data.class += ' no-pointer-events'
@@ -1147,7 +1108,7 @@ export default createComponent({
1147
1108
  inputValueTimer = null
1148
1109
  }
1149
1110
 
1150
- if (e && e.target && e.target.qComposing === true) return
1111
+ if (e?.target?.qComposing) return
1151
1112
 
1152
1113
  setInputValue(e.target.value || '')
1153
1114
  // mark it here as user input so that if updateInputValue is called
@@ -1155,10 +1116,7 @@ export default createComponent({
1155
1116
  userInputValue = true
1156
1117
  defaultInputValue = inputValue.value
1157
1118
 
1158
- if (
1159
- state.focused.value !== true &&
1160
- (hasDialog !== true || dialogFieldFocused.value === true)
1161
- ) {
1119
+ if (!state.focused.value && (!hasDialog || dialogFieldFocused.value)) {
1162
1120
  state.focus()
1163
1121
  }
1164
1122
 
@@ -1175,7 +1133,7 @@ export default createComponent({
1175
1133
  inputValue.value = val
1176
1134
 
1177
1135
  if (
1178
- emitImmediately === true ||
1136
+ emitImmediately ||
1179
1137
  props.inputDebounce === 0 ||
1180
1138
  props.inputDebounce === '0'
1181
1139
  ) {
@@ -1192,26 +1150,23 @@ export default createComponent({
1192
1150
  function updateInputValue(val, noFiltering, internal) {
1193
1151
  userInputValue = internal !== true
1194
1152
 
1195
- if (props.useInput === true) {
1153
+ if (props.useInput) {
1196
1154
  setInputValue(val, true)
1197
1155
 
1198
- if (noFiltering === true || internal !== true) {
1156
+ if (noFiltering || userInputValue) {
1199
1157
  defaultInputValue = val
1200
1158
  }
1201
1159
 
1202
- if (noFiltering !== true) filter(val)
1160
+ if (!noFiltering) filter(val)
1203
1161
  }
1204
1162
  }
1205
1163
 
1206
1164
  function filter(val, keepClosed, afterUpdateFn) {
1207
- if (
1208
- props.onFilter === void 0 ||
1209
- (keepClosed !== true && state.focused.value !== true)
1210
- ) {
1165
+ if (props.onFilter === void 0 || (!keepClosed && !state.focused.value)) {
1211
1166
  return
1212
1167
  }
1213
1168
 
1214
- if (state.innerLoading.value === true) {
1169
+ if (state.innerLoading.value) {
1215
1170
  emit('filterAbort')
1216
1171
  } else {
1217
1172
  state.innerLoading.value = true
@@ -1220,16 +1175,16 @@ export default createComponent({
1220
1175
 
1221
1176
  if (
1222
1177
  val !== '' &&
1223
- props.multiple !== true &&
1178
+ !props.multiple &&
1224
1179
  innerValue.value.length !== 0 &&
1225
- userInputValue !== true &&
1180
+ !userInputValue &&
1226
1181
  val === getOptionLabel.value(innerValue.value[0])
1227
1182
  ) {
1228
1183
  val = ''
1229
1184
  }
1230
1185
 
1231
1186
  const localFilterId = setTimeout(() => {
1232
- if (menu.value === true) menu.value = false
1187
+ if (menu.value) menu.value = false
1233
1188
  }, 10)
1234
1189
 
1235
1190
  if (filterId !== null) clearTimeout(filterId)
@@ -1240,7 +1195,7 @@ export default createComponent({
1240
1195
  val,
1241
1196
  (fn, afterFn) => {
1242
1197
  if (
1243
- (keepClosed === true || state.focused.value === true) &&
1198
+ (keepClosed || state.focused.value) &&
1244
1199
  filterId === localFilterId
1245
1200
  ) {
1246
1201
  clearTimeout(filterId)
@@ -1253,10 +1208,10 @@ export default createComponent({
1253
1208
  nextTick(() => {
1254
1209
  state.innerLoading.value = false
1255
1210
 
1256
- if (state.editable.value === true) {
1257
- if (keepClosed === true) {
1258
- if (menu.value === true) hidePopup()
1259
- } else if (menu.value === true) {
1211
+ if (state.editable.value) {
1212
+ if (keepClosed) {
1213
+ if (menu.value) hidePopup()
1214
+ } else if (menu.value) {
1260
1215
  updateMenu(true)
1261
1216
  } else {
1262
1217
  menu.value = true
@@ -1278,13 +1233,13 @@ export default createComponent({
1278
1233
  }
1279
1234
  },
1280
1235
  () => {
1281
- if (state.focused.value === true && filterId === localFilterId) {
1236
+ if (state.focused.value && filterId === localFilterId) {
1282
1237
  clearTimeout(filterId)
1283
1238
  state.innerLoading.value = false
1284
1239
  innerLoadingIndicator.value = false
1285
1240
  }
1286
1241
 
1287
- if (menu.value === true) menu.value = false
1242
+ if (menu.value) menu.value = false
1288
1243
  }
1289
1244
  )
1290
1245
  }
@@ -1297,11 +1252,8 @@ export default createComponent({
1297
1252
  class: menuContentClass.value,
1298
1253
  style: props.popupContentStyle,
1299
1254
  modelValue: menu.value,
1300
- fit: props.menuShrink !== true,
1301
- cover:
1302
- props.optionsCover === true &&
1303
- noOptions.value !== true &&
1304
- props.useInput !== true,
1255
+ fit: !props.menuShrink,
1256
+ cover: props.optionsCover && !noOptions.value && !props.useInput,
1305
1257
  anchor: props.menuAnchor,
1306
1258
  self: props.menuSelf,
1307
1259
  offset: props.menuOffset,
@@ -1378,7 +1330,7 @@ export default createComponent({
1378
1330
  )
1379
1331
  ]
1380
1332
 
1381
- if (menu.value === true) {
1333
+ if (menu.value) {
1382
1334
  content.push(
1383
1335
  h(
1384
1336
  'div',
@@ -1400,7 +1352,7 @@ export default createComponent({
1400
1352
  {
1401
1353
  ref: dialogRef,
1402
1354
  modelValue: dialog.value,
1403
- position: props.useInput === true ? 'top' : void 0,
1355
+ position: props.useInput ? 'top' : void 0,
1404
1356
  transitionShow: transitionShowComputed,
1405
1357
  transitionHide: props.transitionHide,
1406
1358
  transitionDuration: props.transitionDuration,
@@ -1416,12 +1368,8 @@ export default createComponent({
1416
1368
  {
1417
1369
  class:
1418
1370
  'q-select__dialog' +
1419
- (isOptionsDark.value === true
1420
- ? ' q-select__dialog--dark q-dark'
1421
- : '') +
1422
- (dialogFieldFocused.value === true
1423
- ? ' q-select__dialog--focused'
1424
- : '')
1371
+ (isOptionsDark.value ? ' q-select__dialog--dark q-dark' : '') +
1372
+ (dialogFieldFocused.value ? ' q-select__dialog--focused' : '')
1425
1373
  },
1426
1374
  content
1427
1375
  )
@@ -1444,7 +1392,7 @@ export default createComponent({
1444
1392
 
1445
1393
  function onDialogHide(e) {
1446
1394
  hidePopup()
1447
- if (state.focused.value === false) emit('blur', e)
1395
+ if (!state.focused.value) emit('blur', e)
1448
1396
  resetInputValue()
1449
1397
  }
1450
1398
 
@@ -1462,21 +1410,21 @@ export default createComponent({
1462
1410
  }
1463
1411
 
1464
1412
  function closeMenu() {
1465
- if (dialog.value === true) return
1413
+ if (dialog.value) return
1466
1414
 
1467
1415
  optionIndex.value = -1
1468
1416
 
1469
- if (menu.value === true) {
1417
+ if (menu.value) {
1470
1418
  menu.value = false
1471
1419
  }
1472
1420
 
1473
- if (state.focused.value === false) {
1421
+ if (!state.focused.value) {
1474
1422
  if (filterId !== null) {
1475
1423
  clearTimeout(filterId)
1476
1424
  filterId = null
1477
1425
  }
1478
1426
 
1479
- if (state.innerLoading.value === true) {
1427
+ if (state.innerLoading.value) {
1480
1428
  emit('filterAbort')
1481
1429
  state.innerLoading.value = false
1482
1430
  innerLoadingIndicator.value = false
@@ -1485,9 +1433,9 @@ export default createComponent({
1485
1433
  }
1486
1434
 
1487
1435
  function showPopup(e) {
1488
- if (state.editable.value !== true) return
1436
+ if (!state.editable.value) return
1489
1437
 
1490
- if (hasDialog === true) {
1438
+ if (hasDialog) {
1491
1439
  state.onControlFocusin(e)
1492
1440
  dialog.value = true
1493
1441
  nextTick(() => {
@@ -1499,7 +1447,7 @@ export default createComponent({
1499
1447
 
1500
1448
  if (props.onFilter !== void 0) {
1501
1449
  filter(inputValue.value)
1502
- } else if (noOptions.value !== true || slots['no-option'] !== void 0) {
1450
+ } else if (!noOptions.value || slots['no-option'] !== void 0) {
1503
1451
  menu.value = true
1504
1452
  }
1505
1453
  }
@@ -1510,11 +1458,9 @@ export default createComponent({
1510
1458
  }
1511
1459
 
1512
1460
  function resetInputValue() {
1513
- if (props.useInput === true) {
1461
+ if (props.useInput) {
1514
1462
  updateInputValue(
1515
- props.multiple !== true &&
1516
- props.fillInput === true &&
1517
- innerValue.value.length !== 0
1463
+ !props.multiple && props.fillInput && innerValue.value.length !== 0
1518
1464
  ? getOptionLabel.value(innerValue.value[0]) || ''
1519
1465
  : '',
1520
1466
  true,
@@ -1526,7 +1472,7 @@ export default createComponent({
1526
1472
  function updateMenu(show) {
1527
1473
  let localOptionIndex = -1
1528
1474
 
1529
- if (show === true) {
1475
+ if (show) {
1530
1476
  if (innerValue.value.length !== 0) {
1531
1477
  const val = getOptionValue.value(innerValue.value[0])
1532
1478
  localOptionIndex = props.options.findIndex(v =>
@@ -1541,11 +1487,11 @@ export default createComponent({
1541
1487
  }
1542
1488
 
1543
1489
  function rerenderMenu(newLength, oldLength) {
1544
- if (menu.value === true && state.innerLoading.value === false) {
1490
+ if (menu.value && !state.innerLoading.value) {
1545
1491
  localResetVirtualScroll(-1, true)
1546
1492
 
1547
1493
  nextTick(() => {
1548
- if (menu.value === true && state.innerLoading.value === false) {
1494
+ if (menu.value && !state.innerLoading.value) {
1549
1495
  if (newLength > oldLength) {
1550
1496
  localResetVirtualScroll()
1551
1497
  } else {
@@ -1557,9 +1503,7 @@ export default createComponent({
1557
1503
  }
1558
1504
 
1559
1505
  function updateMenuPosition() {
1560
- if (dialog.value === false && menuRef.value !== null) {
1561
- menuRef.value.updatePosition()
1562
- }
1506
+ if (!dialog.value) menuRef.value?.updatePosition()
1563
1507
  }
1564
1508
 
1565
1509
  function onControlPopupShow(e) {
@@ -1578,19 +1522,17 @@ export default createComponent({
1578
1522
 
1579
1523
  function updatePreState() {
1580
1524
  hasDialog =
1581
- $q.platform.is.mobile !== true && props.behavior !== 'dialog'
1525
+ !$q.platform.is.mobile && props.behavior !== 'dialog'
1582
1526
  ? false
1583
1527
  : props.behavior !== 'menu' &&
1584
- (props.useInput === true
1528
+ (props.useInput
1585
1529
  ? slots['no-option'] !== void 0 ||
1586
1530
  props.onFilter !== void 0 ||
1587
- noOptions.value === false
1531
+ !noOptions.value
1588
1532
  : true)
1589
1533
 
1590
1534
  transitionShowComputed =
1591
- $q.platform.is.ios === true &&
1592
- hasDialog === true &&
1593
- props.useInput === true
1535
+ $q.platform.is.ios && hasDialog && props.useInput
1594
1536
  ? 'fade'
1595
1537
  : props.transitionShow
1596
1538
  }
@@ -1620,10 +1562,9 @@ export default createComponent({
1620
1562
  updateInputValue,
1621
1563
  isOptionSelected,
1622
1564
  getEmittingOptionValue,
1623
- isOptionDisabled: (...args) =>
1624
- isOptionDisabled.value.apply(null, args) === true,
1625
- getOptionValue: (...args) => getOptionValue.value.apply(null, args),
1626
- getOptionLabel: (...args) => getOptionLabel.value.apply(null, args)
1565
+ isOptionDisabled: (...args) => isOptionDisabled.value(...args) === true,
1566
+ getOptionValue: (...args) => getOptionValue.value(...args),
1567
+ getOptionLabel: (...args) => getOptionLabel.value(...args)
1627
1568
  })
1628
1569
 
1629
1570
  Object.assign(state, {
@@ -1631,9 +1572,9 @@ export default createComponent({
1631
1572
 
1632
1573
  fieldClass: computed(
1633
1574
  () =>
1634
- `q-select q-field--auto-height q-select--with${props.useInput !== true ? 'out' : ''}-input` +
1635
- ` q-select--with${props.useChips !== true ? 'out' : ''}-chips` +
1636
- ` q-select--${props.multiple === true ? 'multiple' : 'single'}`
1575
+ `q-select q-field--auto-height q-select--with${props.useInput ? '' : 'out'}-input` +
1576
+ ` q-select--with${props.useChips ? '' : 'out'}-chips` +
1577
+ ` q-select--${props.multiple ? 'multiple' : 'single'}`
1637
1578
  ),
1638
1579
 
1639
1580
  inputRef,
@@ -1643,7 +1584,7 @@ export default createComponent({
1643
1584
 
1644
1585
  floatingLabel: computed(
1645
1586
  () =>
1646
- (props.hideSelected !== true && hasValue.value === true) ||
1587
+ (!props.hideSelected && hasValue.value) ||
1647
1588
  typeof inputValue.value === 'number' ||
1648
1589
  inputValue.value.length !== 0 ||
1649
1590
  fieldValueIsFilled(props.displayValue)
@@ -1651,13 +1592,13 @@ export default createComponent({
1651
1592
 
1652
1593
  getControlChild: () => {
1653
1594
  if (
1654
- state.editable.value !== false &&
1655
- (dialog.value === true || // dialog always has menu displayed, so need to render it
1656
- noOptions.value !== true ||
1595
+ state.editable.value &&
1596
+ (dialog.value || // dialog always has menu displayed, so need to render it
1597
+ !noOptions.value ||
1657
1598
  slots['no-option'] !== void 0)
1658
1599
  ) {
1659
- return hasDialog === true ? getDialog() : getMenu()
1660
- } else if (state.hasPopupOpen === true) {
1600
+ return hasDialog ? getDialog() : getMenu()
1601
+ } else if (state.hasPopupOpen) {
1661
1602
  // explicitly set it otherwise TAB will not blur component
1662
1603
  state.hasPopupOpen = false
1663
1604
  }
@@ -1677,7 +1618,7 @@ export default createComponent({
1677
1618
  // label from QField will propagate click on the input
1678
1619
  prevent(e)
1679
1620
 
1680
- if (hasDialog !== true && menu.value === true) {
1621
+ if (!hasDialog && menu.value) {
1681
1622
  closeMenu()
1682
1623
  targetRef.value?.focus()
1683
1624
  return
@@ -1689,26 +1630,25 @@ export default createComponent({
1689
1630
 
1690
1631
  getControl: fromDialog => {
1691
1632
  const child = getSelection()
1692
- const isTarget =
1693
- fromDialog === true || dialog.value !== true || hasDialog !== true
1633
+ const isTarget = fromDialog === true || !dialog.value || !hasDialog
1694
1634
 
1695
- if (props.useInput === true) {
1635
+ if (props.useInput) {
1696
1636
  child.push(getInput(fromDialog, isTarget))
1697
1637
  }
1698
1638
  // there can be only one (when dialog is opened the control in dialog should be target)
1699
- else if (state.editable.value === true) {
1700
- const attrs = isTarget === true ? comboboxAttrs.value : void 0
1639
+ else if (state.editable.value) {
1640
+ const attrs = isTarget ? comboboxAttrs.value : void 0
1701
1641
 
1702
1642
  child.push(
1703
1643
  h('input', {
1704
- ref: isTarget === true ? targetRef : void 0,
1644
+ ref: isTarget ? targetRef : void 0,
1705
1645
  key: 'd_t',
1706
1646
  class: 'q-select__focus-target',
1707
- id: isTarget === true ? state.targetUid.value : void 0,
1647
+ id: isTarget ? state.targetUid.value : void 0,
1708
1648
  value: ariaCurrentValue.value,
1709
1649
  readonly: true,
1710
1650
  'data-autofocus':
1711
- fromDialog === true || props.autofocus === true || void 0,
1651
+ fromDialog === true || props.autofocus || void 0,
1712
1652
  ...attrs,
1713
1653
  onKeydown: onTargetKeydown,
1714
1654
  onKeyup: onTargetKeyup,
@@ -1717,7 +1657,7 @@ export default createComponent({
1717
1657
  )
1718
1658
 
1719
1659
  if (
1720
- isTarget === true &&
1660
+ isTarget &&
1721
1661
  typeof props.autocomplete === 'string' &&
1722
1662
  props.autocomplete.length !== 0
1723
1663
  ) {
@@ -1734,7 +1674,7 @@ export default createComponent({
1734
1674
 
1735
1675
  if (
1736
1676
  nameProp.value !== void 0 &&
1737
- props.disable !== true &&
1677
+ !props.disable &&
1738
1678
  innerOptionsValue.value.length !== 0
1739
1679
  ) {
1740
1680
  const opts = innerOptionsValue.value.map(value =>
@@ -1755,7 +1695,7 @@ export default createComponent({
1755
1695
  }
1756
1696
 
1757
1697
  const attrs =
1758
- props.useInput === true || isTarget !== true
1698
+ props.useInput || !isTarget
1759
1699
  ? void 0
1760
1700
  : state.splitAttrs.attributes.value
1761
1701
 
@@ -1771,14 +1711,13 @@ export default createComponent({
1771
1711
  },
1772
1712
 
1773
1713
  getInnerAppend: () =>
1774
- props.loading !== true &&
1775
- innerLoadingIndicator.value !== true &&
1776
- props.hideDropdownIcon !== true
1714
+ !props.loading &&
1715
+ !innerLoadingIndicator.value &&
1716
+ !props.hideDropdownIcon
1777
1717
  ? [
1778
1718
  h(QIcon, {
1779
1719
  class:
1780
- 'q-select__dropdown-icon' +
1781
- (menu.value === true ? ' rotate-180' : ''),
1720
+ 'q-select__dropdown-icon' + (menu.value ? ' rotate-180' : ''),
1782
1721
  name: dropdownArrowIcon.value
1783
1722
  })
1784
1723
  ]