quasar 2.17.6 → 2.18.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 (291) hide show
  1. package/dist/api/QBtnDropdown.json +1 -1
  2. package/dist/api/QDialog.json +1 -1
  3. package/dist/api/QMenu.json +1 -1
  4. package/dist/api/QOptionGroup.json +1 -1
  5. package/dist/api/QSelect.json +1 -1
  6. package/dist/api/QTable.json +1 -1
  7. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  8. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  9. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  10. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  11. package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +1 -1
  12. package/dist/icon-set/fontawesome-v6.umd.prod.js +1 -1
  13. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  14. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  15. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  16. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  17. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  18. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  19. package/dist/icon-set/material-symbols-outlined.umd.prod.js +1 -1
  20. package/dist/icon-set/material-symbols-rounded.umd.prod.js +1 -1
  21. package/dist/icon-set/material-symbols-sharp.umd.prod.js +1 -1
  22. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  23. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  24. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  25. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  26. package/dist/icon-set/mdi-v7.umd.prod.js +1 -1
  27. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  28. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  29. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  30. package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +1 -1
  31. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  32. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  33. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
  34. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  35. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  36. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  37. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  38. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  39. package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +1 -1
  40. package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +1 -1
  41. package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +1 -1
  42. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  43. package/dist/icon-set/svg-mdi-v7.umd.prod.js +1 -1
  44. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  45. package/dist/icon-set/themify.umd.prod.js +1 -1
  46. package/dist/lang/ar-TN.umd.prod.js +2 -2
  47. package/dist/lang/ar.umd.prod.js +2 -2
  48. package/dist/lang/az-Latn.umd.prod.js +2 -2
  49. package/dist/lang/bg.umd.prod.js +2 -2
  50. package/dist/lang/bn.umd.prod.js +2 -2
  51. package/dist/lang/bs-BA.umd.prod.js +2 -2
  52. package/dist/lang/ca.umd.prod.js +2 -2
  53. package/dist/lang/cs.umd.prod.js +2 -2
  54. package/dist/lang/da.umd.prod.js +2 -2
  55. package/dist/lang/de-CH.umd.prod.js +2 -2
  56. package/dist/lang/de-DE.umd.prod.js +2 -2
  57. package/dist/lang/de.umd.prod.js +2 -2
  58. package/dist/lang/el.umd.prod.js +2 -2
  59. package/dist/lang/en-GB.umd.prod.js +2 -2
  60. package/dist/lang/en-US.umd.prod.js +2 -2
  61. package/dist/lang/eo.umd.prod.js +2 -2
  62. package/dist/lang/es.umd.prod.js +2 -2
  63. package/dist/lang/et.umd.prod.js +2 -2
  64. package/dist/lang/eu.umd.prod.js +2 -2
  65. package/dist/lang/fa-IR.umd.prod.js +2 -2
  66. package/dist/lang/fa.umd.prod.js +2 -2
  67. package/dist/lang/fi.umd.prod.js +2 -2
  68. package/dist/lang/fr.umd.prod.js +2 -2
  69. package/dist/lang/gn.umd.prod.js +2 -2
  70. package/dist/lang/he.umd.prod.js +2 -2
  71. package/dist/lang/hi.umd.prod.js +2 -2
  72. package/dist/lang/hr.umd.prod.js +2 -2
  73. package/dist/lang/hu.umd.prod.js +2 -2
  74. package/dist/lang/id.umd.prod.js +2 -2
  75. package/dist/lang/is.umd.prod.js +2 -2
  76. package/dist/lang/it.umd.prod.js +2 -2
  77. package/dist/lang/ja.umd.prod.js +2 -2
  78. package/dist/lang/kk.umd.prod.js +2 -2
  79. package/dist/lang/km.umd.prod.js +2 -2
  80. package/dist/lang/ko-KR.umd.prod.js +2 -2
  81. package/dist/lang/kur-CKB.umd.prod.js +2 -2
  82. package/dist/lang/lt.umd.prod.js +2 -2
  83. package/dist/lang/lu.umd.prod.js +2 -2
  84. package/dist/lang/lv.umd.prod.js +2 -2
  85. package/dist/lang/mk.umd.prod.js +2 -2
  86. package/dist/lang/ml.umd.prod.js +2 -2
  87. package/dist/lang/mm.umd.prod.js +2 -2
  88. package/dist/lang/ms-MY.umd.prod.js +2 -2
  89. package/dist/lang/ms.umd.prod.js +2 -2
  90. package/dist/lang/my.umd.prod.js +2 -2
  91. package/dist/lang/nb-NO.umd.prod.js +2 -2
  92. package/dist/lang/nl.umd.prod.js +2 -2
  93. package/dist/lang/pl.umd.prod.js +2 -2
  94. package/dist/lang/pt-BR.umd.prod.js +2 -2
  95. package/dist/lang/pt.umd.prod.js +2 -2
  96. package/dist/lang/ro.umd.prod.js +2 -2
  97. package/dist/lang/ru.umd.prod.js +2 -2
  98. package/dist/lang/sk.umd.prod.js +2 -2
  99. package/dist/lang/sl.umd.prod.js +2 -2
  100. package/dist/lang/sm.umd.prod.js +2 -2
  101. package/dist/lang/sr-CYR.umd.prod.js +2 -2
  102. package/dist/lang/sr.umd.prod.js +2 -2
  103. package/dist/lang/sv.umd.prod.js +2 -2
  104. package/dist/lang/ta.umd.prod.js +2 -2
  105. package/dist/lang/th.umd.prod.js +2 -2
  106. package/dist/lang/tl.umd.prod.js +2 -2
  107. package/dist/lang/tr.umd.prod.js +2 -2
  108. package/dist/lang/ug.umd.prod.js +1 -1
  109. package/dist/lang/uk.umd.prod.js +2 -2
  110. package/dist/lang/ur-PK.umd.prod.js +7 -0
  111. package/dist/lang/uz-Cyrl.umd.prod.js +2 -2
  112. package/dist/lang/uz-Latn.umd.prod.js +2 -2
  113. package/dist/lang/vi.umd.prod.js +2 -2
  114. package/dist/lang/zh-CN.umd.prod.js +2 -2
  115. package/dist/lang/zh-TW.umd.prod.js +2 -2
  116. package/dist/quasar.client.js +252 -179
  117. package/dist/quasar.css +1 -1
  118. package/dist/quasar.prod.css +1 -1
  119. package/dist/quasar.rtl.css +1 -1
  120. package/dist/quasar.rtl.prod.css +1 -1
  121. package/dist/quasar.sass +2 -2
  122. package/dist/quasar.server.prod.cjs +36 -36
  123. package/dist/quasar.server.prod.js +37 -37
  124. package/dist/quasar.umd.js +252 -179
  125. package/dist/quasar.umd.prod.js +42 -42
  126. package/dist/types/index.d.ts +86 -17
  127. package/dist/vetur/quasar-attributes.json +1 -1
  128. package/dist/vetur/quasar-tags.json +1 -1
  129. package/dist/web-types/web-types.json +1 -1
  130. package/lang/ar-TN.js +6 -0
  131. package/lang/ar.js +6 -0
  132. package/lang/az-Latn.js +6 -0
  133. package/lang/bg.js +6 -0
  134. package/lang/bn.js +6 -0
  135. package/lang/bs-BA.js +6 -0
  136. package/lang/ca.js +6 -0
  137. package/lang/cs.js +6 -0
  138. package/lang/da.js +6 -0
  139. package/lang/de-CH.js +6 -0
  140. package/lang/de-DE.js +6 -0
  141. package/lang/de.js +6 -0
  142. package/lang/el.js +6 -0
  143. package/lang/en-GB.js +6 -0
  144. package/lang/en-US.js +6 -0
  145. package/lang/eo.js +6 -0
  146. package/lang/es.js +6 -0
  147. package/lang/et.js +6 -0
  148. package/lang/eu.js +6 -0
  149. package/lang/fa-IR.js +6 -0
  150. package/lang/fa.js +6 -0
  151. package/lang/fi.js +6 -0
  152. package/lang/fr.js +6 -0
  153. package/lang/gn.js +6 -0
  154. package/lang/he.js +6 -0
  155. package/lang/hi.js +6 -0
  156. package/lang/hr.js +6 -0
  157. package/lang/hu.js +6 -0
  158. package/lang/id.js +6 -0
  159. package/lang/index.json +1 -1
  160. package/lang/is.js +6 -0
  161. package/lang/it.js +6 -0
  162. package/lang/ja.js +6 -0
  163. package/lang/kk.js +6 -0
  164. package/lang/km.js +6 -0
  165. package/lang/ko-KR.js +6 -0
  166. package/lang/kur-CKB.js +6 -0
  167. package/lang/lt.js +6 -0
  168. package/lang/lu.js +6 -0
  169. package/lang/lv.js +6 -0
  170. package/lang/mk.js +6 -0
  171. package/lang/ml.js +6 -0
  172. package/lang/mm.js +6 -0
  173. package/lang/ms-MY.js +6 -0
  174. package/lang/ms.js +6 -0
  175. package/lang/my.js +6 -0
  176. package/lang/nb-NO.js +6 -0
  177. package/lang/nl.js +6 -0
  178. package/lang/pl.js +6 -0
  179. package/lang/pt-BR.js +6 -0
  180. package/lang/pt.js +6 -0
  181. package/lang/ro.js +6 -0
  182. package/lang/ru.js +6 -0
  183. package/lang/sk.js +6 -0
  184. package/lang/sl.js +6 -0
  185. package/lang/sm.js +6 -0
  186. package/lang/sr-CYR.js +6 -0
  187. package/lang/sr.js +6 -0
  188. package/lang/sv.js +6 -0
  189. package/lang/ta.js +6 -0
  190. package/lang/th.js +6 -0
  191. package/lang/tl.js +6 -0
  192. package/lang/tr.js +6 -0
  193. package/lang/uk.js +6 -0
  194. package/lang/ur-PK.js +111 -0
  195. package/lang/uz-Cyrl.js +6 -0
  196. package/lang/uz-Latn.js +6 -0
  197. package/lang/vi.js +6 -0
  198. package/lang/zh-CN.js +6 -0
  199. package/lang/zh-TW.js +6 -0
  200. package/package.json +4 -4
  201. package/src/components/breadcrumbs/QBreadcrumbs.js +2 -2
  202. package/src/components/btn/QBtn.js +7 -8
  203. package/src/components/btn-dropdown/QBtnDropdown.js +10 -4
  204. package/src/components/btn-dropdown/QBtnDropdown.json +21 -0
  205. package/src/components/color/QColor.js +1 -1
  206. package/src/components/date/QDate.js +14 -7
  207. package/src/components/dialog/QDialog.js +2 -2
  208. package/src/components/dialog/QDialog.json +1 -1
  209. package/src/components/drawer/QDrawer.js +3 -5
  210. package/src/components/editor/QEditor.js +1 -1
  211. package/src/components/editor/editor-caret.js +1 -1
  212. package/src/components/editor/editor-utils.js +2 -2
  213. package/src/components/expansion-item/QExpansionItem.js +6 -3
  214. package/src/components/fab/QFab.js +2 -2
  215. package/src/components/form/QForm.js +2 -2
  216. package/src/components/form/QFormChildMixin.js +6 -4
  217. package/src/components/icon/QIcon.js +2 -2
  218. package/src/components/infinite-scroll/QInfiniteScroll.js +2 -4
  219. package/src/components/input/QInput.js +3 -3
  220. package/src/components/item/QItem.js +1 -1
  221. package/src/components/menu/QMenu.js +8 -5
  222. package/src/components/menu/QMenu.json +8 -1
  223. package/src/components/option-group/QOptionGroup.json +1 -17
  224. package/src/components/pagination/QPagination.js +8 -4
  225. package/src/components/parallax/QParallax.js +1 -1
  226. package/src/components/popup-edit/QPopupEdit.js +2 -2
  227. package/src/components/pull-to-refresh/QPullToRefresh.js +1 -1
  228. package/src/components/rating/QRating.sass +1 -1
  229. package/src/components/resize-observer/QResizeObserver.js +1 -1
  230. package/src/components/scroll-observer/QScrollObserver.js +2 -2
  231. package/src/components/select/QSelect.js +8 -6
  232. package/src/components/select/QSelect.json +2 -2
  233. package/src/components/slide-transition/QSlideTransition.js +2 -2
  234. package/src/components/stepper/StepHeader.js +1 -1
  235. package/src/components/table/QTable.js +84 -36
  236. package/src/components/table/QTable.json +138 -0
  237. package/src/components/table/QTr.js +4 -1
  238. package/src/components/table/table-sort.js +1 -1
  239. package/src/components/tabs/QTabs.js +2 -2
  240. package/src/components/tabs/use-tab.js +4 -4
  241. package/src/components/time/QTime.js +1 -1
  242. package/src/components/tree/QTree.js +2 -3
  243. package/src/components/virtual-scroll/use-virtual-scroll.js +3 -3
  244. package/src/composables/private.use-field/use-field.js +5 -5
  245. package/src/composables/private.use-file/use-file.js +6 -3
  246. package/src/composables/private.use-model-toggle/use-model-toggle.js +2 -2
  247. package/src/composables/private.use-refocus-target/use-refocus-target.js +6 -5
  248. package/src/composables/private.use-validate/use-validate.js +1 -1
  249. package/src/directives/intersection/Intersection.js +2 -2
  250. package/src/directives/morph/Morph.js +2 -2
  251. package/src/directives/mutation/Mutation.js +2 -2
  252. package/src/directives/touch-hold/TouchHold.js +2 -2
  253. package/src/directives/touch-pan/TouchPan.js +2 -2
  254. package/src/directives/touch-repeat/TouchRepeat.js +3 -3
  255. package/src/directives/touch-swipe/TouchSwipe.js +3 -3
  256. package/src/plugins/lang/Lang.test.js +12 -0
  257. package/src/plugins/loading/Loading.js +1 -1
  258. package/src/plugins/notify/Notify.js +1 -1
  259. package/src/plugins/private.body/Body.js +1 -1
  260. package/src/plugins/private.history/History.js +1 -1
  261. package/src/plugins/screen/Screen.js +1 -1
  262. package/src/utils/morph/morph.js +13 -10
  263. package/src/utils/open-url/open-url.js +3 -3
  264. package/src/utils/private.dialog/create-dialog.js +2 -2
  265. package/src/utils/private.portal/portal.js +1 -1
  266. package/src/components/date/__tests__/QDate.cy.js +0 -189
  267. package/src/components/date/__tests__/use-datetime.cy.js +0 -83
  268. package/src/components/editor/__tests__/QEditor.cy.js +0 -195
  269. package/src/components/field/__tests__/QField.cy.js +0 -156
  270. package/src/components/input/__tests__/QInput.cy.js +0 -786
  271. package/src/components/input/__tests__/use-mask.cy.js +0 -124
  272. package/src/components/menu/__tests__/QMenu.cy.js +0 -634
  273. package/src/components/menu/__tests__/WrapperOne.vue +0 -51
  274. package/src/components/menu/__tests__/WrapperTwo.vue +0 -38
  275. package/src/components/select/__tests__/QSelect.cy.js +0 -2018
  276. package/src/components/table/__tests__/QTable.cy.js +0 -635
  277. package/src/components/table/__tests__/QTd.cy.js +0 -35
  278. package/src/components/table/__tests__/QTh.cy.js +0 -27
  279. package/src/components/table/__tests__/QTr.cy.js +0 -27
  280. package/src/components/tabs/__tests__/QTab.cy.js +0 -79
  281. package/src/components/tabs/__tests__/QTabs.cy.js +0 -147
  282. package/src/components/uploader/__tests__/QUploader.cy.js +0 -191
  283. package/src/composables/__tests__/FieldWrapper.vue +0 -54
  284. package/src/composables/__tests__/use-anchor.cy.js +0 -98
  285. package/src/composables/__tests__/use-field.cy.js +0 -547
  286. package/src/composables/__tests__/use-file.cy.js +0 -69
  287. package/src/composables/__tests__/use-fullscreen.cy.js +0 -37
  288. package/src/composables/__tests__/use-model-toggle.cy.js +0 -350
  289. package/src/composables/__tests__/use-portal.cy.js +0 -4
  290. package/src/composables/__tests__/use-router-link.cy.js +0 -55
  291. package/src/composables/__tests__/use-validate.cy.js +0 -257
@@ -28,7 +28,7 @@ function update (el, ctx, value) {
28
28
 
29
29
  if (changed === true) {
30
30
  ctx.cfg = cfg
31
- ctx.observer !== void 0 && ctx.observer.unobserve(el)
31
+ ctx.observer?.unobserve(el)
32
32
 
33
33
  ctx.observer = new IntersectionObserver(([ entry ]) => {
34
34
  if (typeof ctx.handler === 'function') {
@@ -62,7 +62,7 @@ function destroy (el) {
62
62
  const ctx = el.__qvisible
63
63
 
64
64
  if (ctx !== void 0) {
65
- ctx.observer !== void 0 && ctx.observer.unobserve(el)
65
+ ctx.observer?.unobserve(el)
66
66
  delete el.__qvisible
67
67
  }
68
68
  }
@@ -44,7 +44,7 @@ function trigger (group) {
44
44
  },
45
45
  ...to.opts,
46
46
  onEnd (dir, aborted) {
47
- to.opts.onEnd !== void 0 && to.opts.onEnd(dir, aborted)
47
+ to.opts.onEnd?.(dir, aborted)
48
48
 
49
49
  if (aborted === true) return
50
50
 
@@ -206,7 +206,7 @@ export default createDirective(__QUASAR_SSR_SERVER__
206
206
  group.queue = group.queue.filter(item => item !== ctx)
207
207
 
208
208
  if (group.queue.length === 0) {
209
- group.cancel !== void 0 && group.cancel()
209
+ group.cancel?.()
210
210
  delete morphGroups[ ctx.group ]
211
211
  }
212
212
  }
@@ -12,7 +12,7 @@ const defaultCfg = {
12
12
 
13
13
  function update (el, ctx, value) {
14
14
  ctx.handler = value
15
- ctx.observer !== void 0 && ctx.observer.disconnect()
15
+ ctx.observer?.disconnect()
16
16
 
17
17
  ctx.observer = new MutationObserver(list => {
18
18
  if (typeof ctx.handler === 'function') {
@@ -30,7 +30,7 @@ function destroy (el) {
30
30
  const ctx = el.__qmutation
31
31
 
32
32
  if (ctx !== void 0) {
33
- ctx.observer !== void 0 && ctx.observer.disconnect()
33
+ ctx.observer?.disconnect()
34
34
  delete el.__qmutation
35
35
  }
36
36
  }
@@ -106,7 +106,7 @@ export default createDirective(__QUASAR_SSR_SERVER__
106
106
  cleanEvt(ctx, 'temp')
107
107
 
108
108
  // delay needed otherwise selection still occurs
109
- ctx.styleCleanup !== void 0 && ctx.styleCleanup(ctx.triggered)
109
+ ctx.styleCleanup?.(ctx.triggered)
110
110
 
111
111
  if (ctx.triggered === true) {
112
112
  evt !== void 0 && stopAndPrevent(evt)
@@ -166,7 +166,7 @@ export default createDirective(__QUASAR_SSR_SERVER__
166
166
  cleanEvt(ctx, 'temp')
167
167
 
168
168
  ctx.timer !== void 0 && clearTimeout(ctx.timer)
169
- ctx.styleCleanup !== void 0 && ctx.styleCleanup()
169
+ ctx.styleCleanup?.()
170
170
 
171
171
  delete el.__qtouchhold
172
172
  }
@@ -355,7 +355,7 @@ export default createDirective(__QUASAR_SSR_SERVER__
355
355
  client.is.firefox === true && preventDraggable(el, false)
356
356
 
357
357
  if (abort === true) {
358
- ctx.styleCleanup !== void 0 && ctx.styleCleanup()
358
+ ctx.styleCleanup?.()
359
359
 
360
360
  if (ctx.event.detected !== true && ctx.initialEvent !== void 0) {
361
361
  ctx.initialEvent.target.dispatchEvent(ctx.initialEvent.event)
@@ -426,7 +426,7 @@ export default createDirective(__QUASAR_SSR_SERVER__
426
426
  cleanEvt(ctx, 'temp')
427
427
 
428
428
  client.is.firefox === true && preventDraggable(el, false)
429
- ctx.styleCleanup !== void 0 && ctx.styleCleanup()
429
+ ctx.styleCleanup?.()
430
430
 
431
431
  delete el.__qtouchpan
432
432
  }
@@ -186,8 +186,8 @@ export default createDirective(__QUASAR_SSR_SERVER__
186
186
  end (evt) {
187
187
  if (ctx.event === void 0) return
188
188
 
189
- ctx.styleCleanup !== void 0 && ctx.styleCleanup(true)
190
- evt !== void 0 && ctx.event.repeatCount > 0 && stopAndPrevent(evt)
189
+ ctx.styleCleanup?.(true)
190
+ if ((evt !== void 0) && (ctx.event.repeatCount > 0)) stopAndPrevent(evt)
191
191
 
192
192
  cleanEvt(ctx, 'temp')
193
193
 
@@ -248,7 +248,7 @@ export default createDirective(__QUASAR_SSR_SERVER__
248
248
  cleanEvt(ctx, 'main')
249
249
  cleanEvt(ctx, 'temp')
250
250
 
251
- ctx.styleCleanup !== void 0 && ctx.styleCleanup()
251
+ ctx.styleCleanup?.()
252
252
 
253
253
  delete el.__qtouchrepeat
254
254
  }
@@ -221,8 +221,8 @@ export default createDirective(__QUASAR_SSR_SERVER__
221
221
 
222
222
  cleanEvt(ctx, 'temp')
223
223
  client.is.firefox === true && preventDraggable(el, false)
224
- ctx.styleCleanup !== void 0 && ctx.styleCleanup(true)
225
- evt !== void 0 && ctx.event.dir !== false && stopAndPrevent(evt)
224
+ ctx.styleCleanup?.(true)
225
+ if ((evt !== void 0) && (ctx.event.dir !== false)) stopAndPrevent(evt)
226
226
 
227
227
  ctx.event = void 0
228
228
  }
@@ -268,7 +268,7 @@ export default createDirective(__QUASAR_SSR_SERVER__
268
268
  cleanEvt(ctx, 'temp')
269
269
 
270
270
  client.is.firefox === true && preventDraggable(el, false)
271
- ctx.styleCleanup !== void 0 && ctx.styleCleanup()
271
+ ctx.styleCleanup?.()
272
272
 
273
273
  delete el.__qtouchswipe
274
274
  }
@@ -61,6 +61,12 @@ describe('[Lang API]', () => {
61
61
  pagination: expect.any(Function),
62
62
  columns: expect.any(String)
63
63
  },
64
+ pagination: {
65
+ first: expect.any(String),
66
+ last: expect.any(String),
67
+ next: expect.any(String),
68
+ prev: expect.any(String)
69
+ },
64
70
  editor: {
65
71
  url: expect.any(String),
66
72
  bold: expect.any(String),
@@ -173,6 +179,12 @@ describe('[Lang API]', () => {
173
179
  pagination: (start, end, total) => start + '-' + end + ' of ' + total,
174
180
  columns: 'Columns'
175
181
  },
182
+ pagination: {
183
+ first: expect.any(String),
184
+ last: expect.any(String),
185
+ next: expect.any(String),
186
+ prev: expect.any(String)
187
+ },
176
188
  editor: {
177
189
  url: 'URL',
178
190
  bold: 'Bold',
@@ -34,7 +34,7 @@ const originalDefaults = {
34
34
  const defaults = { ...originalDefaults }
35
35
 
36
36
  function registerProps (opts) {
37
- if (opts && opts.group !== void 0 && activeGroups[ opts.group ] !== void 0) {
37
+ if (opts?.group !== void 0 && activeGroups[ opts.group ] !== void 0) {
38
38
  return Object.assign(activeGroups[ opts.group ], opts)
39
39
  }
40
40
 
@@ -149,7 +149,7 @@ function addNotification (config, $q, originalApi) {
149
149
  ? defaults.actions
150
150
  : []
151
151
  ).concat(
152
- notifTypes[ config.type ] !== void 0 && Array.isArray(notifTypes[ config.type ].actions) === true
152
+ Array.isArray(notifTypes[ config.type ]?.actions) === true
153
153
  ? notifTypes[ config.type ].actions
154
154
  : []
155
155
  )
@@ -100,7 +100,7 @@ export default {
100
100
  const { $q, ssrContext } = opts
101
101
  const cls = getBodyClasses($q.platform, $q.config)
102
102
 
103
- if ($q.config.screen !== void 0 && $q.config.screen.bodyClass === true) {
103
+ if ($q.config.screen?.bodyClass === true) {
104
104
  cls.push('screen--xs')
105
105
  }
106
106
 
@@ -51,7 +51,7 @@ export default {
51
51
 
52
52
  const qConf = $q.config[ cordova === true ? 'cordova' : 'capacitor' ]
53
53
 
54
- if (qConf !== void 0 && qConf.backButton === false) return
54
+ if (qConf?.backButton === false) return
55
55
 
56
56
  // if the '@capacitor/app' plugin is not installed
57
57
  // then we got nothing to do
@@ -71,7 +71,7 @@ export default createReactivePlugin({
71
71
  visualViewport.height * visualViewport.scale + window.innerHeight - scrollingElement.clientHeight
72
72
  ]
73
73
 
74
- const classes = $q.config.screen !== void 0 && $q.config.screen.bodyClasses === true
74
+ const classes = $q.config.screen?.bodyClasses === true
75
75
 
76
76
  this.__update = force => {
77
77
  const [ w, h ] = getSize()
@@ -256,7 +256,7 @@ export default function morph (_options) {
256
256
 
257
257
  // we clean the clone of the initial element
258
258
  elFromClone.remove()
259
- elFromTween !== void 0 && elFromTween.remove()
259
+ elFromTween?.remove()
260
260
 
261
261
  options.hideFromClone === true && elFromClone.classList.remove('q-morph--internal')
262
262
 
@@ -301,7 +301,7 @@ export default function morph (_options) {
301
301
 
302
302
  // we clean the clone of the initial element
303
303
  elFromClone.remove()
304
- elFromTween !== void 0 && elFromTween.remove()
304
+ elFromTween?.remove()
305
305
 
306
306
  options.hideFromClone === true && elFromClone.classList.remove('q-morph--internal')
307
307
 
@@ -516,12 +516,15 @@ export default function morph (_options) {
516
516
  elTo.style.cssText = elToStyleSaved
517
517
  elTo.className = elToClassSaved
518
518
  }
519
- elToClone.parentNode === elToParent && elToParent.insertBefore(elTo, elToClone)
519
+
520
+ if (elToClone.parentNode === elToParent) {
521
+ elToParent.insertBefore(elTo, elToClone)
522
+ }
520
523
 
521
524
  // we clean the spacers
522
525
  elFromClone.remove()
523
526
  elToClone.remove()
524
- elFromTween !== void 0 && elFromTween.remove()
527
+ elFromTween?.remove()
525
528
 
526
529
  // cancel will be no longer available
527
530
  cancel = () => false
@@ -677,9 +680,9 @@ export default function morph (_options) {
677
680
  })
678
681
 
679
682
  const cleanup = abort => {
680
- animationFromClone !== void 0 && animationFromClone.cancel()
681
- animationFromTween !== void 0 && animationFromTween.cancel()
682
- animationToClone !== void 0 && animationToClone.cancel()
683
+ animationFromClone?.cancel()
684
+ animationFromTween?.cancel()
685
+ animationToClone?.cancel()
683
686
  animationTo.cancel()
684
687
 
685
688
  animationTo.removeEventListener('finish', cleanup)
@@ -721,9 +724,9 @@ export default function morph (_options) {
721
724
 
722
725
  endElementTo = endElementTo !== true
723
726
 
724
- animationFromClone !== void 0 && animationFromClone.reverse()
725
- animationFromTween !== void 0 && animationFromTween.reverse()
726
- animationToClone !== void 0 && animationToClone.reverse()
727
+ animationFromClone?.reverse()
728
+ animationFromTween?.reverse()
729
+ animationToClone?.reverse()
727
730
  animationTo.reverse()
728
731
 
729
732
  return true
@@ -22,10 +22,10 @@ function openWindow (url, reject, windowFeatures) {
22
22
  let open = window.open
23
23
 
24
24
  if (Platform.is.cordova === true) {
25
- if (cordova !== void 0 && cordova.InAppBrowser !== void 0 && cordova.InAppBrowser.open !== void 0) {
25
+ if (cordova?.InAppBrowser?.open !== void 0) {
26
26
  open = cordova.InAppBrowser.open
27
27
  }
28
- else if (navigator !== void 0 && navigator.app !== void 0) {
28
+ else if (navigator?.app !== void 0) {
29
29
  return navigator.app.loadUrl(url, {
30
30
  openExternal: true
31
31
  })
@@ -39,7 +39,7 @@ function openWindow (url, reject, windowFeatures) {
39
39
  return win
40
40
  }
41
41
  else {
42
- reject && reject()
42
+ reject?.()
43
43
  }
44
44
  }
45
45
 
@@ -57,14 +57,14 @@ export default function (DefaultComponent, supportsCustomComponent, parentApp) {
57
57
  const el = createGlobalNode(false, 'dialog')
58
58
 
59
59
  const applyState = cmd => {
60
- if (dialogRef.value !== null && dialogRef.value[ cmd ] !== void 0) {
60
+ if (dialogRef.value?.[ cmd ] !== void 0) {
61
61
  dialogRef.value[ cmd ]()
62
62
  return
63
63
  }
64
64
 
65
65
  const target = vm.$.subTree
66
66
 
67
- if (target && target.component) {
67
+ if (target?.component) {
68
68
  // account for "script setup" way of declaring component
69
69
  if (target.component.proxy && target.component.proxy[ cmd ]) {
70
70
  target.component.proxy[ cmd ]()
@@ -25,7 +25,7 @@ export function closePortalMenus (proxy, evt) {
25
25
  // and hide it too
26
26
  const parent = getParentProxy(proxy)
27
27
 
28
- if (parent !== void 0 && parent.$options.name === 'QPopupProxy') {
28
+ if (parent?.$options.name === 'QPopupProxy') {
29
29
  proxy.hide(evt)
30
30
  return parent
31
31
  }
@@ -1,189 +0,0 @@
1
- describe('Date API', () => {
2
- describe('Props', () => {
3
- describe('Category: behavior', () => {
4
- describe('(prop): years-in-month-view', () => {
5
- it.skip(' ', () => {
6
- //
7
- })
8
- })
9
- })
10
-
11
- describe('Category: content', () => {
12
- describe('(prop): title', () => {
13
- it.skip(' ', () => {
14
- //
15
- })
16
- })
17
-
18
- describe('(prop): subtitle', () => {
19
- it.skip(' ', () => {
20
- //
21
- })
22
- })
23
-
24
- describe('(prop): today-btn', () => {
25
- it.skip(' ', () => {
26
- //
27
- })
28
- })
29
-
30
- describe('(prop): minimal', () => {
31
- it.skip(' ', () => {
32
- //
33
- })
34
- })
35
- })
36
-
37
- describe('Category: model', () => {
38
- describe('(prop): model-value', () => {
39
- it.skip(' ', () => {
40
- //
41
- })
42
- })
43
-
44
- describe('(prop): default-year-month', () => {
45
- it.skip(' ', () => {
46
- //
47
- })
48
- })
49
-
50
- describe('(prop): default-view', () => {
51
- it.skip(' ', () => {
52
- //
53
- })
54
- })
55
-
56
- describe('(prop): events', () => {
57
- it.skip(' ', () => {
58
- //
59
- })
60
- })
61
-
62
- describe('(prop): options', () => {
63
- it.skip(' ', () => {
64
- //
65
- })
66
- })
67
-
68
- describe('(prop): first-day-of-week', () => {
69
- it.skip(' ', () => {
70
- //
71
- })
72
- })
73
-
74
- describe('(prop): emit-immediately', () => {
75
- it.skip(' ', () => {
76
- //
77
- })
78
- })
79
- })
80
-
81
- describe('Category: model|selection', () => {
82
- describe('(prop): multiple', () => {
83
- it.skip(' ', () => {
84
- //
85
- })
86
- })
87
-
88
- describe('(prop): range', () => {
89
- it.skip(' ', () => {
90
- //
91
- })
92
- })
93
- })
94
-
95
- describe('Category: selection', () => {
96
- describe('(prop): navigation-min-year-month', () => {
97
- it.skip(' ', () => {
98
- //
99
- })
100
- })
101
-
102
- describe('(prop): navigation-max-year-month', () => {
103
- it.skip(' ', () => {
104
- //
105
- })
106
- })
107
-
108
- describe('(prop): no-unset', () => {
109
- it.skip(' ', () => {
110
- //
111
- })
112
- })
113
- })
114
-
115
- describe('Category: style', () => {
116
- describe('(prop): event-color', () => {
117
- it.skip(' ', () => {
118
- //
119
- })
120
- })
121
- })
122
- })
123
-
124
- describe('Slots', () => {
125
- describe('(slot): default', () => {
126
- it.skip(' ', () => {
127
- //
128
- })
129
- })
130
- })
131
-
132
- describe('Events', () => {
133
- describe('(event): update:model-value', () => {
134
- it.skip(' ', () => {
135
- //
136
- })
137
- })
138
-
139
- describe('(event): navigation', () => {
140
- it.skip(' ', () => {
141
- //
142
- })
143
- })
144
-
145
- describe('(event): range-start', () => {
146
- it.skip(' ', () => {
147
- //
148
- })
149
- })
150
-
151
- describe('(event): range-end', () => {
152
- it.skip(' ', () => {
153
- //
154
- })
155
- })
156
- })
157
-
158
- describe('Methods', () => {
159
- describe('(method): setToday', () => {
160
- it.skip(' ', () => {
161
- //
162
- })
163
- })
164
-
165
- describe('(method): setView', () => {
166
- it.skip(' ', () => {
167
- //
168
- })
169
- })
170
-
171
- describe('(method): offsetCalendar', () => {
172
- it.skip(' ', () => {
173
- //
174
- })
175
- })
176
-
177
- describe('(method): setCalendarTo', () => {
178
- it.skip(' ', () => {
179
- //
180
- })
181
- })
182
-
183
- describe('(method): setEditingRange', () => {
184
- it.skip(' ', () => {
185
- //
186
- })
187
- })
188
- })
189
- })
@@ -1,83 +0,0 @@
1
- describe('use-datetime API', () => {
2
- describe('Props', () => {
3
- describe('Category: behavior', () => {
4
- describe('(prop): landscape', () => {
5
- it.skip(' ', () => {
6
- //
7
- })
8
- })
9
- })
10
-
11
- describe('Category: model', () => {
12
- describe('(prop): mask', () => {
13
- it.skip(' ', () => {
14
- //
15
- })
16
- })
17
-
18
- describe('(prop): locale', () => {
19
- it.skip(' ', () => {
20
- //
21
- })
22
- })
23
-
24
- describe('(prop): calendar', () => {
25
- it.skip(' ', () => {
26
- //
27
- })
28
- })
29
- })
30
-
31
- describe('Category: state', () => {
32
- describe('(prop): readonly', () => {
33
- it.skip(' ', () => {
34
- //
35
- })
36
- })
37
-
38
- describe('(prop): disable', () => {
39
- it.skip(' ', () => {
40
- //
41
- })
42
- })
43
- })
44
-
45
- describe('Category: style', () => {
46
- describe('(prop): color', () => {
47
- it.skip(' ', () => {
48
- //
49
- })
50
- })
51
-
52
- describe('(prop): text-color', () => {
53
- it.skip(' ', () => {
54
- //
55
- })
56
- })
57
-
58
- describe('(prop): dark', () => {
59
- it.skip(' ', () => {
60
- //
61
- })
62
- })
63
-
64
- describe('(prop): square', () => {
65
- it.skip(' ', () => {
66
- //
67
- })
68
- })
69
-
70
- describe('(prop): flat', () => {
71
- it.skip(' ', () => {
72
- //
73
- })
74
- })
75
-
76
- describe('(prop): bordered', () => {
77
- it.skip(' ', () => {
78
- //
79
- })
80
- })
81
- })
82
- })
83
- })