quasar 2.2.2 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (290) hide show
  1. package/dist/api/BottomSheet.json +17 -2
  2. package/dist/api/Dialog.json +17 -2
  3. package/dist/api/LocalStorage.json +8 -0
  4. package/dist/api/QCircularProgress.json +14 -0
  5. package/dist/api/QDate.json +46 -0
  6. package/dist/api/QEditor.json +7 -2
  7. package/dist/api/QFooter.json +1 -1
  8. package/dist/api/QHeader.json +1 -1
  9. package/dist/api/QIntersection.json +14 -0
  10. package/dist/api/QLinearProgress.json +14 -0
  11. package/dist/api/QRouteTab.json +1 -24
  12. package/dist/api/QScrollArea.json +3 -0
  13. package/dist/api/QSelect.json +62 -0
  14. package/dist/api/QSkeleton.json +1 -1
  15. package/dist/api/QTable.json +62 -5
  16. package/dist/api/QTree.json +6 -0
  17. package/dist/api/QUploader.json +81 -1
  18. package/dist/api/SessionStorage.json +8 -0
  19. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  20. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  21. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  22. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  23. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  24. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  25. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  26. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  27. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  28. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  29. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  30. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  31. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  32. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  33. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  34. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  35. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  36. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  37. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  38. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  39. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  40. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  41. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  42. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  43. package/dist/icon-set/svg-mdi-v4.umd.prod.js +1 -1
  44. package/dist/icon-set/svg-mdi-v5.umd.prod.js +1 -1
  45. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  46. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  47. package/dist/icon-set/themify.umd.prod.js +1 -1
  48. package/dist/lang/ar.umd.prod.js +1 -1
  49. package/dist/lang/az-Latn.umd.prod.js +1 -1
  50. package/dist/lang/bg.umd.prod.js +1 -1
  51. package/dist/lang/bn.umd.prod.js +1 -1
  52. package/dist/lang/ca.umd.prod.js +1 -1
  53. package/dist/lang/cs.umd.prod.js +1 -1
  54. package/dist/lang/da.umd.prod.js +1 -1
  55. package/dist/lang/de.umd.prod.js +1 -1
  56. package/dist/lang/el.umd.prod.js +1 -1
  57. package/dist/lang/en-GB.umd.prod.js +1 -1
  58. package/dist/lang/en-US.umd.prod.js +1 -1
  59. package/dist/lang/eo.umd.prod.js +1 -1
  60. package/dist/lang/es.umd.prod.js +1 -1
  61. package/dist/lang/et.umd.prod.js +1 -1
  62. package/dist/lang/fa-IR.umd.prod.js +1 -1
  63. package/dist/lang/fa.umd.prod.js +1 -1
  64. package/dist/lang/fi.umd.prod.js +1 -1
  65. package/dist/lang/fr.umd.prod.js +1 -1
  66. package/dist/lang/gn.umd.prod.js +1 -1
  67. package/dist/lang/he.umd.prod.js +1 -1
  68. package/dist/lang/hr.umd.prod.js +1 -1
  69. package/dist/lang/hu.umd.prod.js +1 -1
  70. package/dist/lang/id.umd.prod.js +1 -1
  71. package/dist/lang/is.umd.prod.js +1 -1
  72. package/dist/lang/it.umd.prod.js +1 -1
  73. package/dist/lang/ja.umd.prod.js +1 -1
  74. package/dist/lang/km.umd.prod.js +1 -1
  75. package/dist/lang/ko-KR.umd.prod.js +1 -1
  76. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  77. package/dist/lang/lt.umd.prod.js +1 -1
  78. package/dist/lang/lu.umd.prod.js +1 -1
  79. package/dist/lang/lv.umd.prod.js +1 -1
  80. package/dist/lang/ml.umd.prod.js +1 -1
  81. package/dist/lang/ms.umd.prod.js +1 -1
  82. package/dist/lang/nb-NO.umd.prod.js +1 -1
  83. package/dist/lang/nl.umd.prod.js +1 -1
  84. package/dist/lang/pl.umd.prod.js +1 -1
  85. package/dist/lang/pt-BR.umd.prod.js +1 -1
  86. package/dist/lang/pt.umd.prod.js +1 -1
  87. package/dist/lang/ro.umd.prod.js +1 -1
  88. package/dist/lang/ru.umd.prod.js +1 -1
  89. package/dist/lang/sk.umd.prod.js +1 -1
  90. package/dist/lang/sl.umd.prod.js +1 -1
  91. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  92. package/dist/lang/sr.umd.prod.js +1 -1
  93. package/dist/lang/sv.umd.prod.js +1 -1
  94. package/dist/lang/ta.umd.prod.js +1 -1
  95. package/dist/lang/th.umd.prod.js +1 -1
  96. package/dist/lang/tr.umd.prod.js +1 -1
  97. package/dist/lang/ug.umd.prod.js +1 -1
  98. package/dist/lang/uk.umd.prod.js +1 -1
  99. package/dist/lang/vi.umd.prod.js +1 -1
  100. package/dist/lang/zh-CN.umd.prod.js +1 -1
  101. package/dist/lang/zh-TW.umd.prod.js +1 -1
  102. package/dist/quasar.cjs.prod.js +2 -2
  103. package/dist/quasar.css +57 -9
  104. package/dist/quasar.esm.prod.js +2 -2
  105. package/dist/quasar.prod.css +1 -1
  106. package/dist/quasar.rtl.css +124 -9
  107. package/dist/quasar.rtl.prod.css +1 -1
  108. package/dist/quasar.sass +47 -7
  109. package/dist/quasar.umd.js +356 -267
  110. package/dist/quasar.umd.prod.js +2 -2
  111. package/dist/ssr-directives/Morph.js +1 -1
  112. package/dist/types/index.d.ts +374 -141
  113. package/dist/vetur/quasar-attributes.json +18 -2
  114. package/dist/vetur/quasar-tags.json +6 -2
  115. package/dist/web-types/web-types.json +44 -3
  116. package/package.json +4 -1
  117. package/src/api.extends.json +7 -0
  118. package/src/body.js +14 -4
  119. package/src/components/ajax-bar/QAjaxBar.js +3 -2
  120. package/src/components/avatar/QAvatar.js +3 -2
  121. package/src/components/badge/QBadge.js +3 -2
  122. package/src/components/banner/QBanner.js +3 -2
  123. package/src/components/bar/QBar.js +3 -2
  124. package/src/components/breadcrumbs/QBreadcrumbs.js +3 -2
  125. package/src/components/breadcrumbs/QBreadcrumbsEl.js +3 -2
  126. package/src/components/btn/QBtn.js +3 -2
  127. package/src/components/btn-dropdown/QBtnDropdown.js +3 -2
  128. package/src/components/btn-group/QBtnGroup.js +3 -2
  129. package/src/components/btn-toggle/QBtnToggle.js +3 -2
  130. package/src/components/card/QCard.js +3 -2
  131. package/src/components/card/QCardActions.js +3 -2
  132. package/src/components/card/QCardSection.js +3 -2
  133. package/src/components/carousel/QCarousel.js +3 -2
  134. package/src/components/carousel/QCarouselControl.js +3 -2
  135. package/src/components/carousel/QCarouselSlide.js +3 -2
  136. package/src/components/chat/QChatMessage.js +3 -2
  137. package/src/components/checkbox/QCheckbox.js +3 -2
  138. package/src/components/chip/QChip.js +3 -2
  139. package/src/components/circular-progress/QCircularProgress.js +9 -3
  140. package/src/components/circular-progress/QCircularProgress.json +6 -0
  141. package/src/components/color/QColor.js +3 -2
  142. package/src/components/date/QDate.js +5 -3
  143. package/src/components/date/QDate.json +34 -0
  144. package/src/components/dialog/QDialog.js +3 -2
  145. package/src/components/dialog-bottom-sheet/BottomSheet.js +3 -2
  146. package/src/components/dialog-plugin/DialogPlugin.js +3 -2
  147. package/src/components/drawer/QDrawer.js +3 -2
  148. package/src/components/editor/QEditor.js +3 -2
  149. package/src/components/editor/QEditor.json +6 -2
  150. package/src/components/expansion-item/QExpansionItem.js +3 -2
  151. package/src/components/fab/QFab.js +3 -2
  152. package/src/components/fab/QFabAction.js +3 -2
  153. package/src/components/field/QField.js +3 -3
  154. package/src/components/file/QFile.js +3 -2
  155. package/src/components/footer/QFooter.js +3 -2
  156. package/src/components/footer/QFooter.json +1 -1
  157. package/src/components/form/QForm.js +3 -2
  158. package/src/components/header/QHeader.js +3 -2
  159. package/src/components/header/QHeader.json +1 -1
  160. package/src/components/icon/QIcon.js +4 -2
  161. package/src/components/img/QImg.js +5 -2
  162. package/src/components/infinite-scroll/QInfiniteScroll.js +50 -32
  163. package/src/components/inner-loading/QInnerLoading.js +3 -2
  164. package/src/components/input/QInput.js +3 -2
  165. package/src/components/intersection/QIntersection.js +12 -3
  166. package/src/components/intersection/QIntersection.json +9 -0
  167. package/src/components/item/QItem.js +3 -2
  168. package/src/components/item/QItemLabel.js +3 -2
  169. package/src/components/item/QItemSection.js +3 -2
  170. package/src/components/item/QList.js +3 -3
  171. package/src/components/knob/QKnob.js +3 -2
  172. package/src/components/layout/QLayout.js +3 -2
  173. package/src/components/linear-progress/QLinearProgress.js +13 -3
  174. package/src/components/linear-progress/QLinearProgress.json +6 -0
  175. package/src/components/linear-progress/QLinearProgress.sass +2 -1
  176. package/src/components/markup-table/QMarkupTable.js +3 -2
  177. package/src/components/menu/QMenu.js +4 -3
  178. package/src/components/no-ssr/QNoSsr.js +3 -2
  179. package/src/components/option-group/QOptionGroup.js +4 -2
  180. package/src/components/page/QPage.js +3 -2
  181. package/src/components/page/QPageContainer.js +3 -2
  182. package/src/components/page-scroller/QPageScroller.js +4 -2
  183. package/src/components/page-sticky/QPageSticky.js +2 -3
  184. package/src/components/pagination/QPagination.js +3 -2
  185. package/src/components/parallax/QParallax.js +3 -2
  186. package/src/components/popup-edit/QPopupEdit.js +3 -2
  187. package/src/components/popup-proxy/QPopupProxy.js +10 -17
  188. package/src/components/pull-to-refresh/QPullToRefresh.js +3 -2
  189. package/src/components/radio/QRadio.js +3 -2
  190. package/src/components/range/QRange.js +3 -2
  191. package/src/components/rating/QRating.js +6 -5
  192. package/src/components/resize-observer/QResizeObserver.js +3 -2
  193. package/src/components/responsive/QResponsive.js +3 -2
  194. package/src/components/scroll-area/QScrollArea.js +3 -2
  195. package/src/components/scroll-area/QScrollArea.json +4 -1
  196. package/src/components/scroll-observer/QScrollObserver.js +3 -2
  197. package/src/components/select/QSelect.js +17 -22
  198. package/src/components/select/QSelect.json +47 -0
  199. package/src/components/separator/QSeparator.js +4 -2
  200. package/src/components/skeleton/QSkeleton.js +3 -2
  201. package/src/components/skeleton/QSkeleton.json +1 -4
  202. package/src/components/slide-item/QSlideItem.js +3 -2
  203. package/src/components/slide-transition/QSlideTransition.js +4 -2
  204. package/src/components/slider/QSlider.js +3 -2
  205. package/src/components/slider/use-slider.js +3 -3
  206. package/src/components/space/QSpace.js +4 -2
  207. package/src/components/spinner/QSpinner.js +4 -2
  208. package/src/components/spinner/QSpinnerAudio.js +4 -2
  209. package/src/components/spinner/QSpinnerBall.js +4 -2
  210. package/src/components/spinner/QSpinnerBars.js +4 -2
  211. package/src/components/spinner/QSpinnerBox.js +4 -2
  212. package/src/components/spinner/QSpinnerClock.js +4 -2
  213. package/src/components/spinner/QSpinnerComment.js +4 -2
  214. package/src/components/spinner/QSpinnerCube.js +4 -2
  215. package/src/components/spinner/QSpinnerDots.js +4 -2
  216. package/src/components/spinner/QSpinnerFacebook.js +4 -2
  217. package/src/components/spinner/QSpinnerGears.js +4 -2
  218. package/src/components/spinner/QSpinnerGrid.js +4 -2
  219. package/src/components/spinner/QSpinnerHearts.js +4 -2
  220. package/src/components/spinner/QSpinnerHourglass.js +4 -2
  221. package/src/components/spinner/QSpinnerInfinity.js +4 -2
  222. package/src/components/spinner/QSpinnerIos.js +4 -2
  223. package/src/components/spinner/QSpinnerOrbit.js +4 -2
  224. package/src/components/spinner/QSpinnerOval.js +4 -2
  225. package/src/components/spinner/QSpinnerPie.js +4 -2
  226. package/src/components/spinner/QSpinnerPuff.js +4 -2
  227. package/src/components/spinner/QSpinnerRadio.js +4 -2
  228. package/src/components/spinner/QSpinnerRings.js +4 -2
  229. package/src/components/spinner/QSpinnerTail.js +4 -2
  230. package/src/components/splitter/QSplitter.js +3 -2
  231. package/src/components/stepper/QStep.js +3 -2
  232. package/src/components/stepper/QStepper.js +3 -2
  233. package/src/components/stepper/QStepperNavigation.js +3 -2
  234. package/src/components/stepper/StepHeader.js +4 -2
  235. package/src/components/tab-panels/QTabPanel.js +4 -2
  236. package/src/components/tab-panels/QTabPanels.js +3 -2
  237. package/src/components/table/QTable.js +4 -2
  238. package/src/components/table/QTable.json +51 -5
  239. package/src/components/table/QTd.js +3 -2
  240. package/src/components/table/QTh.js +3 -2
  241. package/src/components/table/QTr.js +3 -2
  242. package/src/components/table/table-pagination.js +2 -2
  243. package/src/components/tabs/QRouteTab.js +4 -2
  244. package/src/components/tabs/QRouteTab.json +1 -23
  245. package/src/components/tabs/QTab.js +3 -3
  246. package/src/components/tabs/QTabs.js +4 -3
  247. package/src/components/time/QTime.js +9 -7
  248. package/src/components/timeline/QTimeline.js +3 -2
  249. package/src/components/timeline/QTimelineEntry.js +3 -2
  250. package/src/components/toggle/QToggle.js +5 -2
  251. package/src/components/toolbar/QToolbar.js +3 -2
  252. package/src/components/toolbar/QToolbarTitle.js +3 -2
  253. package/src/components/tooltip/QTooltip.js +3 -2
  254. package/src/components/tree/QTree.js +12 -7
  255. package/src/components/tree/QTree.json +5 -0
  256. package/src/components/tree/QTree.sass +52 -4
  257. package/src/components/uploader/QUploaderAddTrigger.js +3 -2
  258. package/src/components/uploader/uploader-core.js +2 -7
  259. package/src/components/uploader/xhr-uploader-plugin.json +97 -1
  260. package/src/components/video/QVideo.js +4 -2
  261. package/src/components/virtual-scroll/QVirtualScroll.js +3 -2
  262. package/src/components/virtual-scroll/use-virtual-scroll.js +17 -1
  263. package/src/composables/private/use-field.js +2 -2
  264. package/src/composables/private/use-file.js +8 -0
  265. package/src/composables/private/use-model-toggle.js +1 -1
  266. package/src/composables/private/use-refocus-target.js +12 -3
  267. package/src/composables/use-dialog-plugin-component.js +6 -1
  268. package/src/css/core/transitions.sass +3 -1
  269. package/src/css/normalize.sass +0 -7
  270. package/src/directives/ClosePopup.js +3 -1
  271. package/src/directives/Intersection.js +3 -1
  272. package/src/directives/Morph.js +4 -1
  273. package/src/directives/Mutation.js +3 -1
  274. package/src/directives/Ripple.js +3 -1
  275. package/src/directives/Scroll.js +3 -1
  276. package/src/directives/ScrollFire.js +3 -1
  277. package/src/directives/TouchHold.js +4 -1
  278. package/src/directives/TouchPan.js +4 -1
  279. package/src/directives/TouchRepeat.js +4 -1
  280. package/src/directives/TouchSwipe.js +4 -1
  281. package/src/install-quasar.js +1 -0
  282. package/src/plugins/Notify.js +4 -3
  283. package/src/utils/create-uploader-component.js +9 -7
  284. package/src/utils/date.js +1 -1
  285. package/src/utils/private/create.js +4 -0
  286. package/src/utils/private/get-emits-object.js +11 -0
  287. package/src/utils/private/global-dialog.json +10 -2
  288. package/src/utils/private/vm.js +3 -3
  289. package/src/utils/private/web-storage.json +10 -0
  290. package/wrappers/index.js +4 -0
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v2.2.2
2
+ * Quasar Framework v2.3.1
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */
@@ -560,7 +560,7 @@
560
560
  }
561
561
 
562
562
  const SIZE_LIST = [ 'sm', 'md', 'lg', 'xl' ];
563
- const { passive: passive$3 } = listenOpts;
563
+ const { passive: passive$4 } = listenOpts;
564
564
 
565
565
  var Screen = defineReactivePlugin({
566
566
  width: 0,
@@ -697,11 +697,11 @@
697
697
  };
698
698
 
699
699
  this.setDebounce = delay => {
700
- updateEvt !== void 0 && target.removeEventListener('resize', updateEvt, passive$3);
700
+ updateEvt !== void 0 && target.removeEventListener('resize', updateEvt, passive$4);
701
701
  updateEvt = delay > 0
702
702
  ? debounce(this.__update, delay)
703
703
  : this.__update;
704
- target.addEventListener('resize', updateEvt, passive$3);
704
+ target.addEventListener('resize', updateEvt, passive$4);
705
705
  };
706
706
 
707
707
  this.setDebounce(updateDebounce);
@@ -1170,16 +1170,16 @@
1170
1170
  var Body = {
1171
1171
  install (opts) {
1172
1172
 
1173
- const { $q } = opts;
1174
-
1175
- $q.config.brand !== void 0 && setColors($q.config.brand);
1176
-
1177
1173
  if (this.__installed === true) { return }
1178
1174
 
1179
1175
  if (isRuntimeSsrPreHydration.value === true) {
1180
1176
  applyClientSsrCorrections();
1181
1177
  }
1182
1178
  else {
1179
+ const { $q } = opts;
1180
+
1181
+ $q.config.brand !== void 0 && setColors($q.config.brand);
1182
+
1183
1183
  const cls = getBodyClasses(client, $q.config);
1184
1184
  document.body.classList.add.apply(document.body.classList, cls);
1185
1185
  }
@@ -1437,7 +1437,7 @@
1437
1437
  }
1438
1438
 
1439
1439
  var installQuasar = function (parentApp, opts = {}) {
1440
- const $q = { version: '2.2.2' };
1440
+ const $q = { version: '2.3.1' };
1441
1441
 
1442
1442
  if (globalConfigIsFrozen === false) {
1443
1443
  if (opts.config !== void 0) {
@@ -1460,6 +1460,9 @@
1460
1460
  });
1461
1461
  };
1462
1462
 
1463
+ const createComponent = raw => vue.markRaw(vue.defineComponent(raw));
1464
+ const createDirective = raw => vue.markRaw(raw);
1465
+
1463
1466
  const units = [ 'B', 'KB', 'MB', 'GB', 'TB', 'PB' ];
1464
1467
 
1465
1468
  function humanStorageSize (bytes) {
@@ -1589,7 +1592,7 @@
1589
1592
  }
1590
1593
  }
1591
1594
 
1592
- var QAjaxBar = vue.defineComponent({
1595
+ var QAjaxBar = createComponent({
1593
1596
  name: 'QAjaxBar',
1594
1597
 
1595
1598
  props: {
@@ -1865,7 +1868,7 @@
1865
1868
  const ionRE = /^ion-/;
1866
1869
  const faLaRE = /^[l|f]a[s|r|l|b|d]? /;
1867
1870
 
1868
- var QIcon = vue.defineComponent({
1871
+ var QIcon = createComponent({
1869
1872
  name: 'QIcon',
1870
1873
 
1871
1874
  props: {
@@ -2033,7 +2036,7 @@
2033
2036
  }
2034
2037
  });
2035
2038
 
2036
- var QAvatar = vue.defineComponent({
2039
+ var QAvatar = createComponent({
2037
2040
  name: 'QAvatar',
2038
2041
 
2039
2042
  props: {
@@ -2089,7 +2092,7 @@
2089
2092
 
2090
2093
  const alignValues$3 = [ 'top', 'middle', 'bottom' ];
2091
2094
 
2092
- var QBadge = vue.defineComponent({
2095
+ var QBadge = createComponent({
2093
2096
  name: 'QBadge',
2094
2097
 
2095
2098
  props: {
@@ -2159,7 +2162,7 @@
2159
2162
  ))
2160
2163
  }
2161
2164
 
2162
- var QBanner = vue.defineComponent({
2165
+ var QBanner = createComponent({
2163
2166
  name: 'QBanner',
2164
2167
 
2165
2168
  props: {
@@ -2211,7 +2214,7 @@
2211
2214
  }
2212
2215
  });
2213
2216
 
2214
- var QBar = vue.defineComponent({
2217
+ var QBar = createComponent({
2215
2218
  name: 'QBar',
2216
2219
 
2217
2220
  props: {
@@ -2268,14 +2271,14 @@
2268
2271
 
2269
2272
  // used directly by docs too
2270
2273
  function getParentVm (vm) {
2271
- if (vm.$parent !== void 0 && vm.$parent !== null) {
2274
+ if (Object(vm.$parent) === vm.$parent) {
2272
2275
  return vm.$parent
2273
2276
  }
2274
2277
 
2275
2278
  vm = vm.$.parent;
2276
2279
 
2277
- while (vm !== void 0 && vm !== null) {
2278
- if (vm.proxy !== void 0 && vm.proxy !== null) {
2280
+ while (Object(vm) === vm) {
2281
+ if (Object(vm.proxy) === vm.proxy) {
2279
2282
  return vm.proxy
2280
2283
  }
2281
2284
 
@@ -2305,7 +2308,7 @@
2305
2308
  return vm.appContext.config.globalProperties.$router !== void 0
2306
2309
  }
2307
2310
 
2308
- var QBreadcrumbs = vue.defineComponent({
2311
+ var QBreadcrumbs = createComponent({
2309
2312
  name: 'QBreadcrumbs',
2310
2313
 
2311
2314
  props: {
@@ -2632,7 +2635,7 @@
2632
2635
  }
2633
2636
  }
2634
2637
 
2635
- var QBreadcrumbsEl = vue.defineComponent({
2638
+ var QBreadcrumbsEl = createComponent({
2636
2639
  name: 'QBreadcrumbsEl',
2637
2640
 
2638
2641
  props: {
@@ -2705,7 +2708,7 @@
2705
2708
  }
2706
2709
  }
2707
2710
 
2708
- var QSpinner = vue.defineComponent({
2711
+ var QSpinner = createComponent({
2709
2712
  name: 'QSpinner',
2710
2713
 
2711
2714
  props: {
@@ -2918,7 +2921,7 @@
2918
2921
  };
2919
2922
  }
2920
2923
 
2921
- var Ripple = {
2924
+ var Ripple = createDirective({
2922
2925
  name: 'ripple',
2923
2926
 
2924
2927
  beforeMount (el, binding) {
@@ -2983,7 +2986,8 @@
2983
2986
  cleanEvt(ctx, 'main');
2984
2987
  delete el._qripple;
2985
2988
  }
2986
- };
2989
+ }
2990
+ );
2987
2991
 
2988
2992
  const padding = {
2989
2993
  none: 0,
@@ -3186,7 +3190,7 @@
3186
3190
  keyboardTarget = null,
3187
3191
  mouseTarget = null;
3188
3192
 
3189
- var QBtn = vue.defineComponent({
3193
+ var QBtn = createComponent({
3190
3194
  name: 'QBtn',
3191
3195
 
3192
3196
  props: {
@@ -3541,7 +3545,7 @@
3541
3545
  }
3542
3546
  });
3543
3547
 
3544
- var QBtnGroup = vue.defineComponent({
3548
+ var QBtnGroup = createComponent({
3545
3549
  name: 'QBtnGroup',
3546
3550
 
3547
3551
  props: {
@@ -3842,7 +3846,7 @@
3842
3846
  default: null
3843
3847
  },
3844
3848
 
3845
- 'onUpdate:modelValue': Function
3849
+ 'onUpdate:modelValue': [ Function, Array ]
3846
3850
  };
3847
3851
 
3848
3852
  const useModelToggleEmits = [
@@ -4892,7 +4896,7 @@
4892
4896
  }
4893
4897
  }
4894
4898
 
4895
- var QMenu = vue.defineComponent({
4899
+ var QMenu = createComponent({
4896
4900
  name: 'QMenu',
4897
4901
 
4898
4902
  inheritAttrs: false,
@@ -5239,7 +5243,7 @@
5239
5243
  }
5240
5244
  });
5241
5245
 
5242
- var QBtnDropdown = vue.defineComponent({
5246
+ var QBtnDropdown = createComponent({
5243
5247
  name: 'QBtnDropdown',
5244
5248
 
5245
5249
  props: {
@@ -5471,7 +5475,7 @@
5471
5475
  return vue.computed(() => props.name || props.for)
5472
5476
  }
5473
5477
 
5474
- var QBtnToggle = vue.defineComponent({
5478
+ var QBtnToggle = createComponent({
5475
5479
  name: 'QBtnToggle',
5476
5480
 
5477
5481
  props: {
@@ -5629,7 +5633,7 @@
5629
5633
  }
5630
5634
  });
5631
5635
 
5632
- var QCard = vue.defineComponent({
5636
+ var QCard = createComponent({
5633
5637
  name: 'QCard',
5634
5638
 
5635
5639
  props: {
@@ -5661,7 +5665,7 @@
5661
5665
  }
5662
5666
  });
5663
5667
 
5664
- var QCardSection = vue.defineComponent({
5668
+ var QCardSection = createComponent({
5665
5669
  name: 'QCardSection',
5666
5670
 
5667
5671
  props: {
@@ -5683,7 +5687,7 @@
5683
5687
  }
5684
5688
  });
5685
5689
 
5686
- var QCardActions = vue.defineComponent({
5690
+ var QCardActions = createComponent({
5687
5691
  name: 'QCardActions',
5688
5692
 
5689
5693
  props: {
@@ -5775,7 +5779,7 @@
5775
5779
  return data
5776
5780
  }
5777
5781
 
5778
- var TouchSwipe = {
5782
+ var TouchSwipe = createDirective({
5779
5783
  name: 'touch-swipe',
5780
5784
 
5781
5785
  beforeMount (el, { value, arg, modifiers }) {
@@ -6015,7 +6019,8 @@
6015
6019
  delete el.__qtouchswipe;
6016
6020
  }
6017
6021
  }
6018
- };
6022
+ }
6023
+ );
6019
6024
 
6020
6025
  function useCache () {
6021
6026
  const cache = new Map();
@@ -6539,7 +6544,7 @@
6539
6544
  const navigationPositionOptions = [ 'top', 'right', 'bottom', 'left' ];
6540
6545
  const controlTypeOptions = [ 'regular', 'flat', 'outline', 'push', 'unelevated' ];
6541
6546
 
6542
- var QCarousel = vue.defineComponent({
6547
+ var QCarousel = createComponent({
6543
6548
  name: 'QCarousel',
6544
6549
 
6545
6550
  props: {
@@ -6800,7 +6805,7 @@
6800
6805
  }
6801
6806
  });
6802
6807
 
6803
- var QCarouselSlide = vue.defineComponent({
6808
+ var QCarouselSlide = createComponent({
6804
6809
  name: 'QCarouselSlide',
6805
6810
 
6806
6811
  props: {
@@ -6822,7 +6827,7 @@
6822
6827
  }
6823
6828
  });
6824
6829
 
6825
- var QCarouselControl = vue.defineComponent({
6830
+ var QCarouselControl = createComponent({
6826
6831
  name: 'QCarouselControl',
6827
6832
 
6828
6833
  props: {
@@ -6855,7 +6860,7 @@
6855
6860
  }
6856
6861
  });
6857
6862
 
6858
- var QChatMessage = vue.defineComponent({
6863
+ var QChatMessage = createComponent({
6859
6864
  name: 'QChatMessage',
6860
6865
 
6861
6866
  props: {
@@ -7023,12 +7028,21 @@
7023
7028
  });
7024
7029
 
7025
7030
  function refocusTarget (e) {
7031
+ const root = rootRef.value;
7032
+
7026
7033
  if (e !== void 0 && e.type.indexOf('key') === 0) {
7027
- if (document.activeElement !== rootRef.value && rootRef.value.contains(document.activeElement) === true) {
7028
- rootRef.value.focus();
7034
+ if (
7035
+ root !== null
7036
+ && document.activeElement !== root
7037
+ && root.contains(document.activeElement) === true
7038
+ ) {
7039
+ root.focus();
7029
7040
  }
7030
7041
  }
7031
- else if ((e === void 0 || rootRef.value.contains(e.target) === true) && refocusRef.value !== null) {
7042
+ else if (
7043
+ refocusRef.value !== null
7044
+ && (e === void 0 || (root !== null && root.contains(e.target) === true))
7045
+ ) {
7032
7046
  refocusRef.value.focus();
7033
7047
  }
7034
7048
  }
@@ -7294,7 +7308,7 @@
7294
7308
  ])
7295
7309
  ]);
7296
7310
 
7297
- var QCheckbox = vue.defineComponent({
7311
+ var QCheckbox = createComponent({
7298
7312
  name: 'QCheckbox',
7299
7313
 
7300
7314
  props: useCheckboxProps,
@@ -7313,7 +7327,7 @@
7313
7327
  xl: 24
7314
7328
  };
7315
7329
 
7316
- var QChip = vue.defineComponent({
7330
+ var QChip = createComponent({
7317
7331
  name: 'QChip',
7318
7332
 
7319
7333
  props: {
@@ -7534,7 +7548,7 @@
7534
7548
  circumference = diameter * Math.PI,
7535
7549
  strokeDashArray = Math.round(circumference * 1000) / 1000;
7536
7550
 
7537
- var QCircularProgress = vue.defineComponent({
7551
+ var QCircularProgress = createComponent({
7538
7552
  name: 'QCircularProgress',
7539
7553
 
7540
7554
  props: {
@@ -7545,6 +7559,11 @@
7545
7559
  default: 0
7546
7560
  },
7547
7561
 
7562
+ animationSpeed: {
7563
+ type: [ String, Number ],
7564
+ default: 600
7565
+ },
7566
+
7548
7567
  indeterminate: Boolean
7549
7568
  },
7550
7569
 
@@ -7564,7 +7583,7 @@
7564
7583
 
7565
7584
  const circleStyle = vue.computed(() => (
7566
7585
  props.instantFeedback !== true && props.indeterminate !== true
7567
- ? { transition: 'stroke-dashoffset 0.6s ease 0s, stroke 0.6s ease' }
7586
+ ? { transition: `stroke-dashoffset ${ props.animationSpeed }ms ease 0s, stroke ${ props.animationSpeed }ms ease` }
7568
7587
  : ''
7569
7588
  ));
7570
7589
 
@@ -7769,7 +7788,7 @@
7769
7788
 
7770
7789
  let uid$4 = 0;
7771
7790
 
7772
- var TouchPan = {
7791
+ var TouchPan = createDirective({
7773
7792
  name: 'touch-pan',
7774
7793
 
7775
7794
  beforeMount (el, { value, modifiers }) {
@@ -8071,7 +8090,8 @@
8071
8090
  delete el.__qtouchpan;
8072
8091
  }
8073
8092
  }
8074
- };
8093
+ }
8094
+ );
8075
8095
 
8076
8096
  // PGDOWN, LEFT, DOWN, PGUP, RIGHT, UP
8077
8097
  const keyCodes$2 = [ 34, 37, 40, 33, 39, 38 ];
@@ -8275,7 +8295,7 @@
8275
8295
  }
8276
8296
 
8277
8297
  function onPan (event) {
8278
- if (event.isFinal) {
8298
+ if (event.isFinal === true) {
8279
8299
  if (dragging.value !== void 0) {
8280
8300
  updatePosition(event.evt);
8281
8301
  // only if touch, because we also have mousedown/up:
@@ -8285,7 +8305,7 @@
8285
8305
  }
8286
8306
  active.value = false;
8287
8307
  }
8288
- else if (event.isFirst) {
8308
+ else if (event.isFirst === true) {
8289
8309
  dragging.value = getDragging(event.evt);
8290
8310
  updatePosition(event.evt);
8291
8311
  updateValue();
@@ -8315,7 +8335,7 @@
8315
8335
  function onDeactivate () {
8316
8336
  preventFocus.value = false;
8317
8337
 
8318
- if (dragging.value === void 0) {
8338
+ if (dragging.value === false) {
8319
8339
  active.value = false;
8320
8340
  }
8321
8341
 
@@ -8373,7 +8393,7 @@
8373
8393
  }
8374
8394
  }
8375
8395
 
8376
- var QSlider = vue.defineComponent({
8396
+ var QSlider = createComponent({
8377
8397
  name: 'QSlider',
8378
8398
 
8379
8399
  props: {
@@ -8617,7 +8637,7 @@
8617
8637
  url: 'about:blank'
8618
8638
  };
8619
8639
 
8620
- var QResizeObserver = vue.defineComponent({
8640
+ var QResizeObserver = createComponent({
8621
8641
  name: 'QResizeObserver',
8622
8642
 
8623
8643
  props: {
@@ -8777,7 +8797,7 @@
8777
8797
  const alignValues$1 = [ 'left', 'center', 'right', 'justify' ];
8778
8798
  const emptyFn = () => {};
8779
8799
 
8780
- var QTabs = vue.defineComponent({
8800
+ var QTabs = createComponent({
8781
8801
  name: 'QTabs',
8782
8802
 
8783
8803
  props: {
@@ -8817,7 +8837,7 @@
8817
8837
 
8818
8838
  contentClass: String,
8819
8839
 
8820
- 'onUpdate:modelValue': Function
8840
+ 'onUpdate:modelValue': [ Function, Array ]
8821
8841
  },
8822
8842
 
8823
8843
  setup (props, { slots, emit }) {
@@ -9512,7 +9532,7 @@
9512
9532
  return { renderTab, $tabs }
9513
9533
  }
9514
9534
 
9515
- var QTab = vue.defineComponent({
9535
+ var QTab = createComponent({
9516
9536
  name: 'QTab',
9517
9537
 
9518
9538
  props: useTabProps,
@@ -9525,7 +9545,7 @@
9525
9545
  }
9526
9546
  });
9527
9547
 
9528
- var QTabPanels = vue.defineComponent({
9548
+ var QTabPanels = createComponent({
9529
9549
  name: 'QTabPanels',
9530
9550
 
9531
9551
  props: {
@@ -9561,7 +9581,7 @@
9561
9581
  }
9562
9582
  });
9563
9583
 
9564
- var QTabPanel = vue.defineComponent({
9584
+ var QTabPanel = createComponent({
9565
9585
  name: 'QTabPanel',
9566
9586
 
9567
9587
  props: usePanelChildProps,
@@ -9914,7 +9934,7 @@
9914
9934
 
9915
9935
  const thumbPath = 'M5 5 h10 v10 h-10 v-10 z';
9916
9936
 
9917
- var QColor = vue.defineComponent({
9937
+ var QColor = createComponent({
9918
9938
  name: 'QColor',
9919
9939
 
9920
9940
  props: {
@@ -11484,7 +11504,7 @@
11484
11504
  }
11485
11505
  }
11486
11506
 
11487
- date.dateHash = date.year + '/' + pad(date.month) + '/' + pad(date.day);
11507
+ date.dateHash = pad(date.year, 6) + '/' + pad(date.month) + '/' + pad(date.day);
11488
11508
  date.timeHash = pad(date.hour) + ':' + pad(date.minute) + ':' + pad(date.second) + tzString;
11489
11509
 
11490
11510
  return date
@@ -12019,7 +12039,7 @@
12019
12039
  return date.year + '/' + pad(date.month)
12020
12040
  }
12021
12041
 
12022
- var QDate = vue.defineComponent({
12042
+ var QDate = createComponent({
12023
12043
  name: 'QDate',
12024
12044
 
12025
12045
  props: {
@@ -12797,8 +12817,9 @@
12797
12817
  return getDefaultViewModel()
12798
12818
  }
12799
12819
 
12820
+ const target = model[ model.length - 1 ];
12800
12821
  const decoded = decodeString(
12801
- model[ 0 ].from !== void 0 ? model[ 0 ].from : model[ 0 ],
12822
+ target.from !== void 0 ? target.from : target,
12802
12823
  mask,
12803
12824
  locale
12804
12825
  );
@@ -13706,7 +13727,7 @@
13706
13727
  left: [ 'slide-right', 'slide-left' ]
13707
13728
  };
13708
13729
 
13709
- var QDialog = vue.defineComponent({
13730
+ var QDialog = createComponent({
13710
13731
  name: 'QDialog',
13711
13732
 
13712
13733
  inheritAttrs: false,
@@ -14084,7 +14105,7 @@
14084
14105
 
14085
14106
  const duration = 150;
14086
14107
 
14087
- var QDrawer = vue.defineComponent({
14108
+ var QDrawer = createComponent({
14088
14109
  name: 'QDrawer',
14089
14110
 
14090
14111
  inheritAttrs: false,
@@ -15127,7 +15148,7 @@
15127
15148
  }
15128
15149
  }
15129
15150
 
15130
- var QTooltip = vue.defineComponent({
15151
+ var QTooltip = createComponent({
15131
15152
  name: 'QTooltip',
15132
15153
 
15133
15154
  inheritAttrs: false,
@@ -15421,7 +15442,7 @@
15421
15442
  }
15422
15443
  });
15423
15444
 
15424
- var QItem = vue.defineComponent({
15445
+ var QItem = createComponent({
15425
15446
  name: 'QItem',
15426
15447
 
15427
15448
  props: {
@@ -15569,7 +15590,7 @@
15569
15590
  }
15570
15591
  });
15571
15592
 
15572
- var QItemSection = vue.defineComponent({
15593
+ var QItemSection = createComponent({
15573
15594
  name: 'QItemSection',
15574
15595
 
15575
15596
  props: {
@@ -15985,7 +16006,7 @@
15985
16006
  return target
15986
16007
  }
15987
16008
 
15988
- var QEditor = vue.defineComponent({
16009
+ var QEditor = createComponent({
15989
16010
  name: 'QEditor',
15990
16011
 
15991
16012
  props: {
@@ -16509,7 +16530,7 @@
16509
16530
  }
16510
16531
  });
16511
16532
 
16512
- var QItemLabel = vue.defineComponent({
16533
+ var QItemLabel = createComponent({
16513
16534
  name: 'QItemLabel',
16514
16535
 
16515
16536
  props: {
@@ -16548,7 +16569,7 @@
16548
16569
  }
16549
16570
  });
16550
16571
 
16551
- var QSlideTransition = vue.defineComponent({
16572
+ var QSlideTransition = createComponent({
16552
16573
  name: 'QSlideTransition',
16553
16574
 
16554
16575
  props: {
@@ -16674,7 +16695,7 @@
16674
16695
  xl: 24
16675
16696
  };
16676
16697
 
16677
- var QSeparator = vue.defineComponent({
16698
+ var QSeparator = createComponent({
16678
16699
  name: 'QSeparator',
16679
16700
 
16680
16701
  props: {
@@ -16817,7 +16838,7 @@
16817
16838
  const itemGroups = vue.shallowReactive({});
16818
16839
  const LINK_PROPS = Object.keys(useRouterLinkProps);
16819
16840
 
16820
- var QExpansionItem = vue.defineComponent({
16841
+ var QExpansionItem = createComponent({
16821
16842
  name: 'QExpansionItem',
16822
16843
 
16823
16844
  props: {
@@ -17227,7 +17248,7 @@
17227
17248
  const directions = [ 'up', 'right', 'down', 'left' ];
17228
17249
  const alignValues = [ 'left', 'center', 'right' ];
17229
17250
 
17230
- var QFab = vue.defineComponent({
17251
+ var QFab = createComponent({
17231
17252
  name: 'QFab',
17232
17253
 
17233
17254
  props: {
@@ -17358,7 +17379,7 @@
17358
17379
 
17359
17380
  const anchorValues = Object.keys(anchorMap);
17360
17381
 
17361
- var QFabAction = vue.defineComponent({
17382
+ var QFabAction = createComponent({
17362
17383
  name: 'QFabAction',
17363
17384
 
17364
17385
  props: {
@@ -17753,7 +17774,7 @@
17753
17774
 
17754
17775
  innerLoading: vue.ref(false),
17755
17776
  focused: vue.ref(false),
17756
- hasPopupOpen: vue.ref(false),
17777
+ hasPopupOpen: false,
17757
17778
 
17758
17779
  splitAttrs: useSplitAttrs(attrs),
17759
17780
  targetUid: vue.ref(getTargetUid(props.for)),
@@ -17966,7 +17987,7 @@
17966
17987
  focusoutTimer = setTimeout(() => {
17967
17988
  if (
17968
17989
  document.hasFocus() === true && (
17969
- state.hasPopupOpen.value === true
17990
+ state.hasPopupOpen === true
17970
17991
  || (
17971
17992
  state.controlRef !== void 0
17972
17993
  && (
@@ -18251,7 +18272,7 @@
18251
18272
  }
18252
18273
  }
18253
18274
 
18254
- var QField = vue.defineComponent({
18275
+ var QField = createComponent({
18255
18276
  name: 'QField',
18256
18277
 
18257
18278
  inheritAttrs: false,
@@ -18375,6 +18396,14 @@
18375
18396
  files = [ files[ 0 ] ];
18376
18397
  }
18377
18398
 
18399
+ // Avoid duplicate files
18400
+ const filenameMap = currentFileList.map(entry => entry.name);
18401
+ files = filterFiles(files, rejectedFiles, 'duplicate', file => {
18402
+ return filenameMap.includes(file.name) === false
18403
+ });
18404
+
18405
+ if (files.length === 0) { return done() }
18406
+
18378
18407
  if (props.maxTotalSize !== void 0) {
18379
18408
  let size = append === true
18380
18409
  ? currentFileList.reduce((total, file) => total + file.size, 0)
@@ -18506,7 +18535,7 @@
18506
18535
  : vue.computed(getFormDomProps)
18507
18536
  }
18508
18537
 
18509
- var QFile = vue.defineComponent({
18538
+ var QFile = createComponent({
18510
18539
  name: 'QFile',
18511
18540
 
18512
18541
  inheritAttrs: false,
@@ -18768,7 +18797,7 @@
18768
18797
  }
18769
18798
  });
18770
18799
 
18771
- var QFooter = vue.defineComponent({
18800
+ var QFooter = createComponent({
18772
18801
  name: 'QFooter',
18773
18802
 
18774
18803
  props: {
@@ -18960,7 +18989,7 @@
18960
18989
  }
18961
18990
  });
18962
18991
 
18963
- var QForm = vue.defineComponent({
18992
+ var QForm = createComponent({
18964
18993
  name: 'QForm',
18965
18994
 
18966
18995
  props: {
@@ -19176,7 +19205,7 @@
19176
19205
  }
19177
19206
  };
19178
19207
 
19179
- var QHeader = vue.defineComponent({
19208
+ var QHeader = createComponent({
19180
19209
  name: 'QHeader',
19181
19210
 
19182
19211
  props: {
@@ -19368,7 +19397,7 @@
19368
19397
 
19369
19398
  const defaultRatio = 16 / 9;
19370
19399
 
19371
- var QImg = vue.defineComponent({
19400
+ var QImg = createComponent({
19372
19401
  name: 'QImg',
19373
19402
 
19374
19403
  props: {
@@ -19638,7 +19667,9 @@
19638
19667
  }
19639
19668
  });
19640
19669
 
19641
- var QInfiniteScroll = vue.defineComponent({
19670
+ const { passive: passive$3 } = listenOpts;
19671
+
19672
+ var QInfiniteScroll = createComponent({
19642
19673
  name: 'QInfiniteScroll',
19643
19674
 
19644
19675
  props: {
@@ -19665,20 +19696,21 @@
19665
19696
  emits: [ 'load' ],
19666
19697
 
19667
19698
  setup (props, { slots, emit }) {
19668
- const fetching = vue.ref(false);
19699
+ const isFetching = vue.ref(false);
19700
+ const isWorking = vue.ref(true);
19669
19701
  const rootRef = vue.ref(null);
19670
19702
 
19671
19703
  let index = props.initialIndex || 0;
19672
- let isWorking = true;
19704
+ let scrollPos = false;
19673
19705
  let localScrollTarget, poll;
19674
19706
 
19675
19707
  const classes = vue.computed(() =>
19676
19708
  'q-infinite-scroll__loading'
19677
- + (fetching.value === true ? '' : ' invisible')
19709
+ + (isFetching.value === true ? '' : ' invisible')
19678
19710
  );
19679
19711
 
19680
19712
  function immediatePoll () {
19681
- if (props.disable === true || fetching.value === true || isWorking === false) {
19713
+ if (props.disable === true || isFetching.value === true || isWorking.value === false) {
19682
19714
  return
19683
19715
  }
19684
19716
 
@@ -19700,18 +19732,18 @@
19700
19732
  }
19701
19733
 
19702
19734
  function trigger () {
19703
- if (props.disable === true || fetching.value === true || isWorking === false) {
19735
+ if (props.disable === true || isFetching.value === true || isWorking.value === false) {
19704
19736
  return
19705
19737
  }
19706
19738
 
19707
19739
  index++;
19708
- fetching.value = true;
19740
+ isFetching.value = true;
19709
19741
 
19710
19742
  const heightBefore = getScrollHeight(localScrollTarget);
19711
19743
 
19712
19744
  emit('load', index, isDone => {
19713
- if (isWorking === true) {
19714
- fetching.value = false;
19745
+ if (isWorking.value === true) {
19746
+ isFetching.value = false;
19715
19747
  vue.nextTick(() => {
19716
19748
  if (props.reverse === true) {
19717
19749
  const
@@ -19738,31 +19770,31 @@
19738
19770
  }
19739
19771
 
19740
19772
  function resume () {
19741
- if (isWorking === false) {
19742
- isWorking = true;
19743
- localScrollTarget.addEventListener('scroll', poll, listenOpts.passive);
19773
+ if (isWorking.value === false) {
19774
+ isWorking.value = true;
19775
+ localScrollTarget.addEventListener('scroll', poll, passive$3);
19744
19776
  }
19745
19777
 
19746
19778
  immediatePoll();
19747
19779
  }
19748
19780
 
19749
19781
  function stop () {
19750
- if (isWorking === true) {
19751
- isWorking = false;
19752
- fetching.value = false;
19753
- localScrollTarget.removeEventListener('scroll', poll, listenOpts.passive);
19782
+ if (isWorking.value === true) {
19783
+ isWorking.value = false;
19784
+ isFetching.value = false;
19785
+ localScrollTarget.removeEventListener('scroll', poll, passive$3);
19754
19786
  }
19755
19787
  }
19756
19788
 
19757
19789
  function updateScrollTarget () {
19758
- if (localScrollTarget && isWorking === true) {
19759
- localScrollTarget.removeEventListener('scroll', poll, listenOpts.passive);
19790
+ if (localScrollTarget && isWorking.value === true) {
19791
+ localScrollTarget.removeEventListener('scroll', poll, passive$3);
19760
19792
  }
19761
19793
 
19762
19794
  localScrollTarget = getScrollTarget(rootRef.value, props.scrollTarget);
19763
19795
 
19764
- if (isWorking === true) {
19765
- localScrollTarget.addEventListener('scroll', poll, listenOpts.passive);
19796
+ if (isWorking.value === true) {
19797
+ localScrollTarget.addEventListener('scroll', poll, passive$3);
19766
19798
  }
19767
19799
  }
19768
19800
 
@@ -19786,30 +19818,44 @@
19786
19818
  ? immediatePoll
19787
19819
  : debounce(immediatePoll, isNaN(val) === true ? 100 : val);
19788
19820
 
19789
- if (localScrollTarget && isWorking === true) {
19821
+ if (localScrollTarget && isWorking.value === true) {
19790
19822
  if (oldPoll !== void 0) {
19791
- localScrollTarget.removeEventListener('scroll', oldPoll, listenOpts.passive);
19823
+ localScrollTarget.removeEventListener('scroll', oldPoll, passive$3);
19792
19824
  }
19793
19825
 
19794
- localScrollTarget.addEventListener('scroll', poll, listenOpts.passive);
19826
+ localScrollTarget.addEventListener('scroll', poll, passive$3);
19795
19827
  }
19796
19828
  }
19797
19829
 
19798
19830
  vue.watch(() => props.disable, val => {
19799
- if (val === true) {
19800
- stop();
19801
- }
19802
- else {
19803
- resume();
19831
+ if (val === true) { stop(); }
19832
+ else { resume(); }
19833
+ });
19834
+
19835
+ vue.watch(() => props.reverse, val => {
19836
+ if (isFetching.value === false && isWorking.value === true) {
19837
+ immediatePoll();
19804
19838
  }
19805
19839
  });
19806
19840
 
19807
19841
  vue.watch(() => props.scrollTarget, updateScrollTarget);
19808
19842
  vue.watch(() => props.debounce, setDebounce);
19809
19843
 
19844
+ vue.onActivated(() => {
19845
+ if (localScrollTarget && scrollPos !== false) {
19846
+ setVerticalScrollPosition(localScrollTarget, scrollPos);
19847
+ }
19848
+ });
19849
+
19850
+ vue.onDeactivated(() => {
19851
+ scrollPos = localScrollTarget
19852
+ ? getVerticalScrollPosition(localScrollTarget)
19853
+ : false;
19854
+ });
19855
+
19810
19856
  vue.onBeforeUnmount(() => {
19811
- if (isWorking === true) {
19812
- localScrollTarget.removeEventListener('scroll', poll, listenOpts.passive);
19857
+ if (isWorking.value === true) {
19858
+ localScrollTarget.removeEventListener('scroll', poll, passive$3);
19813
19859
  }
19814
19860
  });
19815
19861
 
@@ -19832,7 +19878,7 @@
19832
19878
  return () => {
19833
19879
  const child = hUniqueSlot(slots.default, []);
19834
19880
 
19835
- if (props.disable !== true && isWorking === true) {
19881
+ if (props.disable !== true && isWorking.value === true) {
19836
19882
  child[ props.reverse === false ? 'push' : 'unshift' ](
19837
19883
  vue.h('div', { class: classes.value }, hSlot(slots.loading))
19838
19884
  );
@@ -19846,7 +19892,7 @@
19846
19892
  }
19847
19893
  });
19848
19894
 
19849
- var QInnerLoading = vue.defineComponent({
19895
+ var QInnerLoading = createComponent({
19850
19896
  name: 'QInnerLoading',
19851
19897
 
19852
19898
  props: {
@@ -20488,7 +20534,7 @@
20488
20534
  }
20489
20535
  }
20490
20536
 
20491
- var QInput = vue.defineComponent({
20537
+ var QInput = createComponent({
20492
20538
  name: 'QInput',
20493
20539
 
20494
20540
  inheritAttrs: false,
@@ -20937,7 +20983,7 @@
20937
20983
  }
20938
20984
  }
20939
20985
 
20940
- var Intersection = {
20986
+ var Intersection = createDirective({
20941
20987
  name: 'intersection',
20942
20988
 
20943
20989
  mounted (el, { modifiers, value }) {
@@ -20956,9 +21002,10 @@
20956
21002
  },
20957
21003
 
20958
21004
  beforeUnmount: destroy$1
20959
- };
21005
+ }
21006
+ );
20960
21007
 
20961
- var QIntersection = vue.defineComponent({
21008
+ var QIntersection = createComponent({
20962
21009
  name: 'QIntersection',
20963
21010
 
20964
21011
  props: {
@@ -20969,6 +21016,10 @@
20969
21016
 
20970
21017
  once: Boolean,
20971
21018
  transition: String,
21019
+ transitionDuration: {
21020
+ type: [ String, Number ],
21021
+ default: 300
21022
+ },
20972
21023
 
20973
21024
  ssrPrerender: Boolean,
20974
21025
 
@@ -21014,6 +21065,10 @@
21014
21065
  ] ]
21015
21066
  });
21016
21067
 
21068
+ const transitionStyle = vue.computed(
21069
+ () => `--q-transition-duration: ${ props.transitionDuration }ms`
21070
+ );
21071
+
21017
21072
  function trigger (entry) {
21018
21073
  if (showing.value !== entry.isIntersecting) {
21019
21074
  showing.value = entry.isIntersecting;
@@ -21023,7 +21078,7 @@
21023
21078
 
21024
21079
  function getContent () {
21025
21080
  return showing.value === true
21026
- ? [ vue.h('div', { key: 'content' }, hSlot(slots.default)) ]
21081
+ ? [ vue.h('div', { key: 'content', style: transitionStyle.value }, hSlot(slots.default)) ]
21027
21082
  : void 0
21028
21083
  }
21029
21084
 
@@ -21048,7 +21103,7 @@
21048
21103
  }
21049
21104
  });
21050
21105
 
21051
- var QList = vue.defineComponent({
21106
+ var QList = createComponent({
21052
21107
  name: 'QList',
21053
21108
 
21054
21109
  props: {
@@ -21081,7 +21136,7 @@
21081
21136
  const keyCodes$1 = [ 34, 37, 40, 33, 39, 38 ];
21082
21137
  const commonPropsName = Object.keys(useCircularCommonProps);
21083
21138
 
21084
- var QKnob = vue.defineComponent({
21139
+ var QKnob = createComponent({
21085
21140
  name: 'QKnob',
21086
21141
 
21087
21142
  props: {
@@ -21348,7 +21403,7 @@
21348
21403
  const { passive: passive$2 } = listenOpts;
21349
21404
  const axisValues = [ 'both', 'horizontal', 'vertical' ];
21350
21405
 
21351
- var QScrollObserver = vue.defineComponent({
21406
+ var QScrollObserver = createComponent({
21352
21407
  name: 'QScrollObserver',
21353
21408
 
21354
21409
  props: {
@@ -21476,7 +21531,7 @@
21476
21531
  }
21477
21532
  });
21478
21533
 
21479
- var QLayout = vue.defineComponent({
21534
+ var QLayout = createComponent({
21480
21535
  name: 'QLayout',
21481
21536
 
21482
21537
  props: {
@@ -21676,7 +21731,7 @@
21676
21731
 
21677
21732
  const separatorValues = [ 'horizontal', 'vertical', 'cell', 'none' ];
21678
21733
 
21679
- var QMarkupTable = vue.defineComponent({
21734
+ var QMarkupTable = createComponent({
21680
21735
  name: 'QMarkupTable',
21681
21736
 
21682
21737
  props: {
@@ -21718,7 +21773,7 @@
21718
21773
  }
21719
21774
  });
21720
21775
 
21721
- var QNoSsr = vue.defineComponent({
21776
+ var QNoSsr = createComponent({
21722
21777
  name: 'QNoSsr',
21723
21778
 
21724
21779
  props: {
@@ -21774,7 +21829,7 @@
21774
21829
  })
21775
21830
  ]);
21776
21831
 
21777
- var QRadio = vue.defineComponent({
21832
+ var QRadio = createComponent({
21778
21833
  name: 'QRadio',
21779
21834
 
21780
21835
  props: {
@@ -21928,7 +21983,7 @@
21928
21983
  }
21929
21984
  });
21930
21985
 
21931
- var QToggle = vue.defineComponent({
21986
+ var QToggle = createComponent({
21932
21987
  name: 'QToggle',
21933
21988
 
21934
21989
  props: {
@@ -21988,7 +22043,7 @@
21988
22043
 
21989
22044
  const typeValues = Object.keys(components$1);
21990
22045
 
21991
- var QOptionGroup = vue.defineComponent({
22046
+ var QOptionGroup = createComponent({
21992
22047
  name: 'QOptionGroup',
21993
22048
 
21994
22049
  props: {
@@ -22097,7 +22152,7 @@
22097
22152
  }
22098
22153
  });
22099
22154
 
22100
- var QPage = vue.defineComponent({
22155
+ var QPage = createComponent({
22101
22156
  name: 'QPage',
22102
22157
 
22103
22158
  props: {
@@ -22148,7 +22203,7 @@
22148
22203
  }
22149
22204
  });
22150
22205
 
22151
- var QPageContainer = vue.defineComponent({
22206
+ var QPageContainer = createComponent({
22152
22207
  name: 'QPageContainer',
22153
22208
 
22154
22209
  setup (_, { slots }) {
@@ -22299,7 +22354,7 @@
22299
22354
  }
22300
22355
  }
22301
22356
 
22302
- var QPageScroller = vue.defineComponent({
22357
+ var QPageScroller = createComponent({
22303
22358
  name: 'QPageScroller',
22304
22359
 
22305
22360
  props: {
@@ -22411,7 +22466,7 @@
22411
22466
  }
22412
22467
  });
22413
22468
 
22414
- var QPageSticky = vue.defineComponent({
22469
+ var QPageSticky = createComponent({
22415
22470
  name: 'QPageSticky',
22416
22471
 
22417
22472
  props: usePageStickyProps,
@@ -22422,7 +22477,7 @@
22422
22477
  }
22423
22478
  });
22424
22479
 
22425
- var QPagination = vue.defineComponent({
22480
+ var QPagination = createComponent({
22426
22481
  name: 'QPagination',
22427
22482
 
22428
22483
  props: {
@@ -22812,7 +22867,7 @@
22812
22867
 
22813
22868
  const { passive: passive$1 } = listenOpts;
22814
22869
 
22815
- var QParallax = vue.defineComponent({
22870
+ var QParallax = createComponent({
22816
22871
  name: 'QParallax',
22817
22872
 
22818
22873
  props: {
@@ -22976,7 +23031,7 @@
22976
23031
  }
22977
23032
  }
22978
23033
 
22979
- var QPopupEdit = vue.defineComponent({
23034
+ var QPopupEdit = createComponent({
22980
23035
  name: 'QPopupEdit',
22981
23036
 
22982
23037
  props: {
@@ -23162,7 +23217,7 @@
23162
23217
  }
23163
23218
  });
23164
23219
 
23165
- var QPopupProxy = vue.defineComponent({
23220
+ var QPopupProxy = createComponent({
23166
23221
  name: 'QPopupProxy',
23167
23222
 
23168
23223
  props: {
@@ -23194,6 +23249,10 @@
23194
23249
 
23195
23250
  const type = vue.ref(getType());
23196
23251
 
23252
+ const popupProps = vue.computed(() => (
23253
+ type.value === 'menu' ? { maxHeight: '99vh' } : {})
23254
+ );
23255
+
23197
23256
  vue.watch(() => getType(), val => {
23198
23257
  if (showing.value !== true) {
23199
23258
  type.value = val;
@@ -23219,21 +23278,9 @@
23219
23278
  }
23220
23279
 
23221
23280
  return () => {
23222
- const def = hSlot(slots.default);
23223
-
23224
- const popupProps = (
23225
- type.value === 'menu'
23226
- && def !== void 0
23227
- && def[ 0 ] !== void 0
23228
- && def[ 0 ].type !== void 0
23229
- && [ 'QDate', 'QTime', 'QCarousel', 'QColor' ].includes(
23230
- def[ 0 ].type.name
23231
- )
23232
- ) ? { cover: true, maxHeight: '99vh' } : {};
23233
-
23234
23281
  const data = {
23235
23282
  ref: popupRef,
23236
- ...popupProps,
23283
+ ...popupProps.value,
23237
23284
  ...attrs,
23238
23285
  onShow,
23239
23286
  onHide
@@ -23254,7 +23301,7 @@
23254
23301
  });
23255
23302
  }
23256
23303
 
23257
- return vue.h(component, data, () => def)
23304
+ return vue.h(component, data, slots.default)
23258
23305
  }
23259
23306
  }
23260
23307
  });
@@ -23275,7 +23322,7 @@
23275
23322
  }
23276
23323
  }
23277
23324
 
23278
- var QLinearProgress = vue.defineComponent({
23325
+ var QLinearProgress = createComponent({
23279
23326
  name: 'QLinearProgress',
23280
23327
 
23281
23328
  props: {
@@ -23297,6 +23344,11 @@
23297
23344
  query: Boolean,
23298
23345
  rounded: Boolean,
23299
23346
 
23347
+ animationSpeed: {
23348
+ type: [ String, Number ],
23349
+ default: 2100
23350
+ },
23351
+
23300
23352
  instantFeedback: Boolean
23301
23353
  },
23302
23354
 
@@ -23306,6 +23358,10 @@
23306
23358
  const sizeStyle = useSize(props, defaultSizes);
23307
23359
 
23308
23360
  const motion = vue.computed(() => props.indeterminate === true || props.query === true);
23361
+ const style = vue.computed(() => ({
23362
+ ...(sizeStyle.value !== null ? sizeStyle.value : {}),
23363
+ '--q-linear-progress-speed': `${ props.animationSpeed }ms`
23364
+ }));
23309
23365
 
23310
23366
  const classes = vue.computed(() =>
23311
23367
  'q-linear-progress'
@@ -23356,7 +23412,7 @@
23356
23412
 
23357
23413
  return vue.h('div', {
23358
23414
  class: classes.value,
23359
- style: sizeStyle.value,
23415
+ style: style.value,
23360
23416
  role: 'progressbar',
23361
23417
  'aria-valuemin': 0,
23362
23418
  'aria-valuemax': 1,
@@ -23372,7 +23428,7 @@
23372
23428
  PULLER_HEIGHT = 40,
23373
23429
  OFFSET_TOP = 20;
23374
23430
 
23375
- var QPullToRefresh = vue.defineComponent({
23431
+ var QPullToRefresh = createComponent({
23376
23432
  name: 'QPullToRefresh',
23377
23433
 
23378
23434
  props: {
@@ -23577,7 +23633,7 @@
23577
23633
  MAX: 2
23578
23634
  };
23579
23635
 
23580
- var QRange = vue.defineComponent({
23636
+ var QRange = createComponent({
23581
23637
  name: 'QRange',
23582
23638
 
23583
23639
  props: {
@@ -24085,7 +24141,7 @@
24085
24141
  }
24086
24142
  });
24087
24143
 
24088
- var QRating = vue.defineComponent({
24144
+ var QRating = createComponent({
24089
24145
  name: 'QRating',
24090
24146
 
24091
24147
  props: {
@@ -24311,7 +24367,7 @@
24311
24367
  }
24312
24368
  });
24313
24369
 
24314
- var QResponsive = vue.defineComponent({
24370
+ var QResponsive = createComponent({
24315
24371
  name: 'QResponsive',
24316
24372
 
24317
24373
  props: useRatioProps,
@@ -24341,7 +24397,7 @@
24341
24397
  horizontal: { offset: 'offsetX', scroll: 'scrollLeft', dir: 'right', dist: 'x' }
24342
24398
  };
24343
24399
 
24344
- var QScrollArea = vue.defineComponent({
24400
+ var QScrollArea = createComponent({
24345
24401
  name: 'QScrollArea',
24346
24402
 
24347
24403
  props: {
@@ -25443,6 +25499,22 @@
25443
25499
  setVirtualScrollSize();
25444
25500
  });
25445
25501
 
25502
+ vue.onActivated(() => {
25503
+ const scrollEl = getVirtualScrollTarget();
25504
+
25505
+ if (prevScrollStart !== void 0 && scrollEl !== void 0 && scrollEl !== null && scrollEl.nodeType !== 8) {
25506
+ setScroll(
25507
+ scrollEl,
25508
+ prevScrollStart,
25509
+ props.virtualScrollHorizontal,
25510
+ $q.lang.rtl
25511
+ );
25512
+ }
25513
+ else {
25514
+ scrollTo(prevToIndex);
25515
+ }
25516
+ });
25517
+
25446
25518
  setOverflowAnchor !== noop && vue.onBeforeUnmount(() => {
25447
25519
  const styleSheet = document.getElementById(vsId + '_ss');
25448
25520
  styleSheet !== null && styleSheet.remove();
@@ -25470,7 +25542,7 @@
25470
25542
  const reEscapeList = '.*+?^${}()|[]\\';
25471
25543
  const fieldPropsList = Object.keys(useFieldProps);
25472
25544
 
25473
- var QSelect = vue.defineComponent({
25545
+ var QSelect = createComponent({
25474
25546
  name: 'QSelect',
25475
25547
 
25476
25548
  inheritAttrs: false,
@@ -26376,6 +26448,12 @@
26376
26448
  }
26377
26449
 
26378
26450
  function getAllOptions () {
26451
+ if (noOptions.value === true) {
26452
+ return slots[ 'no-option' ] !== void 0
26453
+ ? slots[ 'no-option' ]({ inputValue: inputValue.value })
26454
+ : void 0
26455
+ }
26456
+
26379
26457
  const fn = slots.option !== void 0
26380
26458
  ? slots.option
26381
26459
  : scope => {
@@ -26557,14 +26635,6 @@
26557
26635
  }
26558
26636
 
26559
26637
  function getMenu () {
26560
- const child = noOptions.value === true
26561
- ? (
26562
- slots[ 'no-option' ] !== void 0
26563
- ? () => slots[ 'no-option' ]({ inputValue: inputValue.value })
26564
- : void 0
26565
- )
26566
- : getAllOptions;
26567
-
26568
26638
  return vue.h(QMenu, {
26569
26639
  ref: menuRef,
26570
26640
  class: menuContentClass.value,
@@ -26589,7 +26659,7 @@
26589
26659
  onBeforeShow: onControlPopupShow,
26590
26660
  onBeforeHide: onMenuBeforeHide,
26591
26661
  onShow: onMenuShow
26592
- }, child)
26662
+ }, getAllOptions)
26593
26663
  }
26594
26664
 
26595
26665
  function onMenuBeforeHide (e) {
@@ -26646,15 +26716,7 @@
26646
26716
  ...listboxAttrs.value,
26647
26717
  onClick: prevent,
26648
26718
  onScrollPassive: onVirtualScrollEvt
26649
- }, (
26650
- noOptions.value === true
26651
- ? (
26652
- slots[ 'no-option' ] !== void 0
26653
- ? slots[ 'no-option' ]({ inputValue: inputValue.value })
26654
- : null
26655
- )
26656
- : getAllOptions()
26657
- ))
26719
+ }, getAllOptions())
26658
26720
  );
26659
26721
 
26660
26722
  return vue.h(QDialog, {
@@ -26792,14 +26854,14 @@
26792
26854
  function onControlPopupShow (e) {
26793
26855
  e !== void 0 && stop(e);
26794
26856
  emit('popup-show', e);
26795
- state.hasPopupOpen.value = true;
26857
+ state.hasPopupOpen = true;
26796
26858
  state.onControlFocusin(e);
26797
26859
  }
26798
26860
 
26799
26861
  function onControlPopupHide (e) {
26800
26862
  e !== void 0 && stop(e);
26801
26863
  emit('popup-hide', e);
26802
- state.hasPopupOpen.value = false;
26864
+ state.hasPopupOpen = false;
26803
26865
  state.onControlFocusout(e);
26804
26866
  }
26805
26867
 
@@ -26871,6 +26933,10 @@
26871
26933
  ) {
26872
26934
  return hasDialog === true ? getDialog() : getMenu()
26873
26935
  }
26936
+ else if (state.hasPopupOpen === true) {
26937
+ // explicitly set it otherwise TAB will not blur component
26938
+ state.hasPopupOpen = false;
26939
+ }
26874
26940
  },
26875
26941
 
26876
26942
  controlEvents: {
@@ -26974,7 +27040,7 @@
26974
27040
  'wave', 'pulse', 'pulse-x', 'pulse-y', 'fade', 'blink', 'none'
26975
27041
  ];
26976
27042
 
26977
- var QSkeleton = vue.defineComponent({
27043
+ var QSkeleton = createComponent({
26978
27044
  name: 'QSkeleton',
26979
27045
 
26980
27046
  props: {
@@ -27046,7 +27112,7 @@
27046
27112
  [ 'bottom', 'end', 'center', 'height' ]
27047
27113
  ];
27048
27114
 
27049
- var QSlideItem = vue.defineComponent({
27115
+ var QSlideItem = createComponent({
27050
27116
  name: 'QSlideItem',
27051
27117
 
27052
27118
  props: {
@@ -27265,7 +27331,7 @@
27265
27331
 
27266
27332
  const space = vue.h('div', { class: 'q-space' });
27267
27333
 
27268
- var QSpace = vue.defineComponent({
27334
+ var QSpace = createComponent({
27269
27335
  name: 'QSpace',
27270
27336
 
27271
27337
  setup () {
@@ -27339,7 +27405,7 @@
27339
27405
  ])
27340
27406
  ];
27341
27407
 
27342
- var QSpinnerAudio = vue.defineComponent({
27408
+ var QSpinnerAudio = createComponent({
27343
27409
  name: 'QSpinnerAudio',
27344
27410
 
27345
27411
  props: useSpinnerProps,
@@ -27440,7 +27506,7 @@
27440
27506
  ])
27441
27507
  ];
27442
27508
 
27443
- var QSpinnerBall = vue.defineComponent({
27509
+ var QSpinnerBall = createComponent({
27444
27510
  name: 'QSpinnerBall',
27445
27511
 
27446
27512
  props: useSpinnerProps,
@@ -27580,7 +27646,7 @@
27580
27646
  ])
27581
27647
  ];
27582
27648
 
27583
- var QSpinnerBars = vue.defineComponent({
27649
+ var QSpinnerBars = createComponent({
27584
27650
  name: 'QSpinnerBars',
27585
27651
 
27586
27652
  props: useSpinnerProps,
@@ -27638,7 +27704,7 @@
27638
27704
  ])
27639
27705
  ];
27640
27706
 
27641
- var QSpinnerBox = vue.defineComponent({
27707
+ var QSpinnerBox = createComponent({
27642
27708
  name: 'QSpinnerBox',
27643
27709
 
27644
27710
  props: useSpinnerProps,
@@ -27707,7 +27773,7 @@
27707
27773
  ])
27708
27774
  ];
27709
27775
 
27710
- var QSpinnerClock = vue.defineComponent({
27776
+ var QSpinnerClock = createComponent({
27711
27777
  name: 'QSpinnerClock',
27712
27778
 
27713
27779
  props: useSpinnerProps,
@@ -27788,7 +27854,7 @@
27788
27854
  ])
27789
27855
  ];
27790
27856
 
27791
- var QSpinnerComment = vue.defineComponent({
27857
+ var QSpinnerComment = createComponent({
27792
27858
  name: 'QSpinnerComment',
27793
27859
 
27794
27860
  props: useSpinnerProps,
@@ -27917,7 +27983,7 @@
27917
27983
  ])
27918
27984
  ];
27919
27985
 
27920
- var QSpinnerCube = vue.defineComponent({
27986
+ var QSpinnerCube = createComponent({
27921
27987
  name: 'QSpinnerCube',
27922
27988
 
27923
27989
  props: useSpinnerProps,
@@ -28018,7 +28084,7 @@
28018
28084
  ])
28019
28085
  ];
28020
28086
 
28021
- var QSpinnerDots = vue.defineComponent({
28087
+ var QSpinnerDots = createComponent({
28022
28088
  name: 'QSpinnerDots',
28023
28089
 
28024
28090
  props: useSpinnerProps,
@@ -28118,7 +28184,7 @@
28118
28184
  ])
28119
28185
  ];
28120
28186
 
28121
- var QSpinnerFacebook = vue.defineComponent({
28187
+ var QSpinnerFacebook = createComponent({
28122
28188
  name: 'QSpinnerFacebook',
28123
28189
 
28124
28190
  props: useSpinnerProps,
@@ -28174,7 +28240,7 @@
28174
28240
  ])
28175
28241
  ];
28176
28242
 
28177
- var QSpinnerGears = vue.defineComponent({
28243
+ var QSpinnerGears = createComponent({
28178
28244
  name: 'QSpinnerGears',
28179
28245
 
28180
28246
  props: useSpinnerProps,
@@ -28323,7 +28389,7 @@
28323
28389
  ])
28324
28390
  ];
28325
28391
 
28326
- var QSpinnerGrid = vue.defineComponent({
28392
+ var QSpinnerGrid = createComponent({
28327
28393
  name: 'QSpinnerGrid',
28328
28394
 
28329
28395
  props: useSpinnerProps,
@@ -28374,7 +28440,7 @@
28374
28440
  })
28375
28441
  ];
28376
28442
 
28377
- var QSpinnerHearts = vue.defineComponent({
28443
+ var QSpinnerHearts = createComponent({
28378
28444
  name: 'QSpinnerHearts',
28379
28445
 
28380
28446
  props: useSpinnerProps,
@@ -28483,7 +28549,7 @@
28483
28549
  ])
28484
28550
  ];
28485
28551
 
28486
- var QSpinnerHourglass = vue.defineComponent({
28552
+ var QSpinnerHourglass = createComponent({
28487
28553
  name: 'QSpinnerHourglass',
28488
28554
 
28489
28555
  props: useSpinnerProps,
@@ -28523,7 +28589,7 @@
28523
28589
  ])
28524
28590
  ];
28525
28591
 
28526
- var QSpinnerInfinity = vue.defineComponent({
28592
+ var QSpinnerInfinity = createComponent({
28527
28593
  name: 'QSpinnerInfinity',
28528
28594
 
28529
28595
  props: useSpinnerProps,
@@ -28693,7 +28759,7 @@
28693
28759
  ])
28694
28760
  ];
28695
28761
 
28696
- var QSpinnerIos = vue.defineComponent({
28762
+ var QSpinnerIos = createComponent({
28697
28763
  name: 'QSpinnerIos',
28698
28764
 
28699
28765
  props: useSpinnerProps,
@@ -28741,7 +28807,7 @@
28741
28807
  ])
28742
28808
  ];
28743
28809
 
28744
- var QSpinnerOrbit = vue.defineComponent({
28810
+ var QSpinnerOrbit = createComponent({
28745
28811
  name: 'QSpinnerOrbit',
28746
28812
 
28747
28813
  props: useSpinnerProps,
@@ -28788,7 +28854,7 @@
28788
28854
  ])
28789
28855
  ];
28790
28856
 
28791
- var QSpinnerOval = vue.defineComponent({
28857
+ var QSpinnerOval = createComponent({
28792
28858
  name: 'QSpinnerOval',
28793
28859
 
28794
28860
  props: useSpinnerProps,
@@ -28866,7 +28932,7 @@
28866
28932
  ])
28867
28933
  ];
28868
28934
 
28869
- var QSpinnerPie = vue.defineComponent({
28935
+ var QSpinnerPie = createComponent({
28870
28936
  name: 'QSpinnerPie',
28871
28937
 
28872
28938
  props: useSpinnerProps,
@@ -28946,7 +29012,7 @@
28946
29012
  ])
28947
29013
  ];
28948
29014
 
28949
- var QSpinnerPuff = vue.defineComponent({
29015
+ var QSpinnerPuff = createComponent({
28950
29016
  name: 'QSpinnerPuff',
28951
29017
 
28952
29018
  props: useSpinnerProps,
@@ -29019,7 +29085,7 @@
29019
29085
  ])
29020
29086
  ];
29021
29087
 
29022
- var QSpinnerRadio = vue.defineComponent({
29088
+ var QSpinnerRadio = createComponent({
29023
29089
  name: 'QSpinnerRadio',
29024
29090
 
29025
29091
  props: useSpinnerProps,
@@ -29122,7 +29188,7 @@
29122
29188
  ])
29123
29189
  ];
29124
29190
 
29125
- var QSpinnerRings = vue.defineComponent({
29191
+ var QSpinnerRings = createComponent({
29126
29192
  name: 'QSpinnerRings',
29127
29193
 
29128
29194
  props: useSpinnerProps,
@@ -29203,7 +29269,7 @@
29203
29269
  ])
29204
29270
  ];
29205
29271
 
29206
- var QSpinnerTail = vue.defineComponent({
29272
+ var QSpinnerTail = createComponent({
29207
29273
  name: 'QSpinnerTail',
29208
29274
 
29209
29275
  props: useSpinnerProps,
@@ -29221,7 +29287,7 @@
29221
29287
  }
29222
29288
  });
29223
29289
 
29224
- var QSplitter = vue.defineComponent({
29290
+ var QSplitter = createComponent({
29225
29291
  name: 'QSplitter',
29226
29292
 
29227
29293
  props: {
@@ -29419,7 +29485,7 @@
29419
29485
  }
29420
29486
  });
29421
29487
 
29422
- var StepHeader = vue.defineComponent({
29488
+ var StepHeader = createComponent({
29423
29489
  name: 'StepHeader',
29424
29490
 
29425
29491
  props: {
@@ -29596,7 +29662,7 @@
29596
29662
  }
29597
29663
  };
29598
29664
 
29599
- var QStep = vue.defineComponent({
29665
+ var QStep = createComponent({
29600
29666
  name: 'QStep',
29601
29667
 
29602
29668
  props: {
@@ -29713,7 +29779,7 @@
29713
29779
  return acc
29714
29780
  }
29715
29781
 
29716
- var QStepper = vue.defineComponent({
29782
+ var QStepper = createComponent({
29717
29783
  name: 'QStepper',
29718
29784
 
29719
29785
  props: {
@@ -29826,7 +29892,7 @@
29826
29892
  }
29827
29893
  });
29828
29894
 
29829
- var QStepperNavigation = vue.defineComponent({
29895
+ var QStepperNavigation = createComponent({
29830
29896
  name: 'QStepperNavigation',
29831
29897
 
29832
29898
  setup (_, { slots }) {
@@ -29834,7 +29900,7 @@
29834
29900
  }
29835
29901
  });
29836
29902
 
29837
- var QTh = vue.defineComponent({
29903
+ var QTh = createComponent({
29838
29904
  name: 'QTh',
29839
29905
 
29840
29906
  props: {
@@ -29911,7 +29977,7 @@
29911
29977
 
29912
29978
  const typeOptions = [ 'list', 'table', '__qtable' ];
29913
29979
 
29914
- var QVirtualScroll = vue.defineComponent({
29980
+ var QVirtualScroll = createComponent({
29915
29981
  name: 'QVirtualScroll',
29916
29982
 
29917
29983
  props: {
@@ -30238,7 +30304,7 @@
30238
30304
  default: () => [ 5, 7, 10, 15, 20, 25, 50, 0 ]
30239
30305
  },
30240
30306
 
30241
- 'onUpdate:pagination': Function
30307
+ 'onUpdate:pagination': [ Function, Array ]
30242
30308
  };
30243
30309
 
30244
30310
  function useTablePaginationState (vm, getCellValue) {
@@ -30288,7 +30354,7 @@
30288
30354
  ...val
30289
30355
  });
30290
30356
 
30291
- if (samePagination(computedPagination.value, newPagination)) {
30357
+ if (samePagination(computedPagination.value, newPagination) === true) {
30292
30358
  if (isServerSide.value === true && forceServerRequest === true) {
30293
30359
  sendServerRequest(newPagination);
30294
30360
  }
@@ -30655,7 +30721,7 @@
30655
30721
  const commonVirtPropsObj = {};
30656
30722
  commonVirtPropsList.forEach(p => { commonVirtPropsObj[ p ] = {}; });
30657
30723
 
30658
- var QTable = vue.defineComponent({
30724
+ var QTable = createComponent({
30659
30725
  name: 'QTable',
30660
30726
 
30661
30727
  props: {
@@ -31694,7 +31760,7 @@
31694
31760
  }
31695
31761
  });
31696
31762
 
31697
- var QTr = vue.defineComponent({
31763
+ var QTr = createComponent({
31698
31764
  name: 'QTr',
31699
31765
 
31700
31766
  props: {
@@ -31713,7 +31779,7 @@
31713
31779
  }
31714
31780
  });
31715
31781
 
31716
- var QTd = vue.defineComponent({
31782
+ var QTd = createComponent({
31717
31783
  name: 'QTd',
31718
31784
 
31719
31785
  props: {
@@ -31753,7 +31819,7 @@
31753
31819
  }
31754
31820
  });
31755
31821
 
31756
- var QRouteTab = vue.defineComponent({
31822
+ var QRouteTab = createComponent({
31757
31823
  name: 'QRouteTab',
31758
31824
 
31759
31825
  props: {
@@ -31809,7 +31875,7 @@
31809
31875
  }
31810
31876
  }
31811
31877
 
31812
- var QTime = vue.defineComponent({
31878
+ var QTime = createComponent({
31813
31879
  name: 'QTime',
31814
31880
 
31815
31881
  props: {
@@ -32431,21 +32497,22 @@
32431
32497
  function setHour (hour) {
32432
32498
  if (innerModel.value.hour !== hour) {
32433
32499
  innerModel.value.hour = hour;
32434
- innerModel.value.minute = null;
32435
- innerModel.value.second = null;
32500
+ verifyAndUpdate();
32436
32501
  }
32437
32502
  }
32438
32503
 
32439
32504
  function setMinute (minute) {
32440
32505
  if (innerModel.value.minute !== minute) {
32441
32506
  innerModel.value.minute = minute;
32442
- innerModel.value.second = null;
32443
- props.withSeconds !== true && updateValue({ minute });
32507
+ verifyAndUpdate();
32444
32508
  }
32445
32509
  }
32446
32510
 
32447
32511
  function setSecond (second) {
32448
- innerModel.value.second !== second && updateValue({ second });
32512
+ if (innerModel.value.second !== second) {
32513
+ innerModel.value.second = second;
32514
+ verifyAndUpdate();
32515
+ }
32449
32516
  }
32450
32517
 
32451
32518
  const setModel = {
@@ -32694,7 +32761,7 @@
32694
32761
  }
32695
32762
  });
32696
32763
 
32697
- var QTimeline = vue.defineComponent({
32764
+ var QTimeline = createComponent({
32698
32765
  name: 'QTimeline',
32699
32766
 
32700
32767
  props: {
@@ -32731,7 +32798,7 @@
32731
32798
  }
32732
32799
  });
32733
32800
 
32734
- var QTimelineEntry = vue.defineComponent({
32801
+ var QTimelineEntry = createComponent({
32735
32802
  name: 'QTimelineEntry',
32736
32803
 
32737
32804
  props: {
@@ -32835,7 +32902,7 @@
32835
32902
  }
32836
32903
  });
32837
32904
 
32838
- var QToolbar = vue.defineComponent({
32905
+ var QToolbar = createComponent({
32839
32906
  name: 'QToolbar',
32840
32907
 
32841
32908
  props: {
@@ -32852,7 +32919,7 @@
32852
32919
  }
32853
32920
  });
32854
32921
 
32855
- var QToolbarTitle = vue.defineComponent({
32922
+ var QToolbarTitle = createComponent({
32856
32923
  name: 'QToolbarTitle',
32857
32924
 
32858
32925
  props: {
@@ -32869,7 +32936,9 @@
32869
32936
  }
32870
32937
  });
32871
32938
 
32872
- var QTree = vue.defineComponent({
32939
+ const tickStrategyOptions = [ 'none', 'strict', 'leaf', 'leaf-filtered' ];
32940
+
32941
+ var QTree = createComponent({
32873
32942
  name: 'QTree',
32874
32943
 
32875
32944
  props: {
@@ -32892,6 +32961,8 @@
32892
32961
  default: 'children'
32893
32962
  },
32894
32963
 
32964
+ dense: Boolean,
32965
+
32895
32966
  color: String,
32896
32967
  controlColor: String,
32897
32968
  textColor: String,
@@ -32902,7 +32973,7 @@
32902
32973
  tickStrategy: {
32903
32974
  type: String,
32904
32975
  default: 'none',
32905
- validator: v => [ 'none', 'strict', 'leaf', 'leaf-filtered' ].includes(v)
32976
+ validator: v => tickStrategyOptions.includes(v)
32906
32977
  },
32907
32978
  ticked: Array, // v-model:ticked
32908
32979
  expanded: Array, // v-model:expanded
@@ -32947,7 +33018,7 @@
32947
33018
  });
32948
33019
 
32949
33020
  const classes = vue.computed(() =>
32950
- 'q-tree'
33021
+ `q-tree q-tree--${ props.dense === true ? 'dense' : 'standard' }`
32951
33022
  + (props.noConnectors === true ? ' q-tree--no-connectors' : '')
32952
33023
  + (isDark.value === true ? ' q-tree--dark' : '')
32953
33024
  + (props.color !== void 0 ? ` text-${ props.color }` : '')
@@ -33389,13 +33460,13 @@
33389
33460
 
33390
33461
  m.lazy === 'loading'
33391
33462
  ? vue.h(QSpinner, {
33392
- class: 'q-tree__spinner q-mr-xs',
33463
+ class: 'q-tree__spinner',
33393
33464
  color: computedControlColor.value
33394
33465
  })
33395
33466
  : (
33396
33467
  isParent === true
33397
33468
  ? vue.h(QIcon, {
33398
- class: 'q-tree__arrow q-mr-xs'
33469
+ class: 'q-tree__arrow'
33399
33470
  + (m.expanded === true ? ' q-tree__arrow--rotate' : ''),
33400
33471
  name: computedIcon.value,
33401
33472
  onClick (e) { onExpandClick(node, m, e); }
@@ -33405,7 +33476,7 @@
33405
33476
 
33406
33477
  m.hasTicking === true && m.noTick !== true
33407
33478
  ? vue.h(QCheckbox, {
33408
- class: 'q-mr-xs',
33479
+ class: 'q-tree__tickbox',
33409
33480
  modelValue: m.indeterminate === true ? null : m.ticked,
33410
33481
  color: computedControlColor.value,
33411
33482
  dark: isDark.value,
@@ -33797,20 +33868,15 @@
33797
33868
  }
33798
33869
 
33799
33870
  function addFilesToQueue (e, fileList) {
33800
- const processedFiles = processFiles(e, fileList, state.files.value, true);
33801
-
33802
- if (processedFiles === void 0) { return }
33871
+ const localFiles = processFiles(e, fileList, state.files.value, true);
33803
33872
 
33804
- const localFiles = processedFiles
33805
- .filter(file => state.files.value.findIndex(f => file.name === f.name) === -1);
33873
+ if (localFiles === void 0) { return }
33806
33874
 
33807
33875
  const fileInput = getFileInput();
33808
33876
  if (fileInput !== void 0 && fileInput !== null) {
33809
33877
  fileInput.value = '';
33810
33878
  }
33811
33879
 
33812
- if (localFiles === void 0) { return }
33813
-
33814
33880
  localFiles.forEach(file => {
33815
33881
  state.updateFileStatus(file, 'idle');
33816
33882
  uploadSize.value += file.size;
@@ -34017,7 +34083,21 @@
34017
34083
  }
34018
34084
  }
34019
34085
 
34020
- var createUploaderComponent = ({ name, props, emits, injectPlugin }) => vue.defineComponent({
34086
+ const trueFn = () => true;
34087
+
34088
+ function getEmitsObject (emitsArray) {
34089
+ const emitsObject = {};
34090
+
34091
+ emitsArray.forEach(val => {
34092
+ emitsObject[ val ] = trueFn;
34093
+ });
34094
+
34095
+ return emitsObject
34096
+ }
34097
+
34098
+ const coreEmitsObject = getEmitsObject(coreEmits);
34099
+
34100
+ var createUploaderComponent = ({ name, props, emits, injectPlugin }) => createComponent({
34021
34101
  name,
34022
34102
 
34023
34103
  props: {
@@ -34025,10 +34105,9 @@
34025
34105
  ...props
34026
34106
  },
34027
34107
 
34028
- emits: [
34029
- ...coreEmits,
34030
- ...emits
34031
- ],
34108
+ emits: Object(emits) === emits
34109
+ ? { ...coreEmitsObject, ...emits }
34110
+ : [ ...coreEmits, ...emits ],
34032
34111
 
34033
34112
  setup () {
34034
34113
  return getRenderer(injectPlugin)
@@ -34062,7 +34141,7 @@
34062
34141
  factory: Function
34063
34142
  };
34064
34143
 
34065
- const emits = [ 'factory-failed', 'uploaded', 'failed', 'uploading' ];
34144
+ const emits$1 = [ 'factory-failed', 'uploaded', 'failed', 'uploading' ];
34066
34145
 
34067
34146
  function injectPlugin ({ props, emit, helpers }) {
34068
34147
  const xhrs = vue.ref([]);
@@ -34288,13 +34367,13 @@
34288
34367
  var xhrUploaderPlugin = {
34289
34368
  name: 'QUploader',
34290
34369
  props: props$2,
34291
- emits,
34370
+ emits: emits$1,
34292
34371
  injectPlugin
34293
34372
  };
34294
34373
 
34295
34374
  var QUploader = createUploaderComponent(xhrUploaderPlugin);
34296
34375
 
34297
- var QUploaderAddTrigger = vue.defineComponent({
34376
+ var QUploaderAddTrigger = createComponent({
34298
34377
  name: 'QUploaderAddTrigger',
34299
34378
 
34300
34379
  setup () {
@@ -34304,7 +34383,7 @@
34304
34383
  }
34305
34384
  });
34306
34385
 
34307
- var QVideo = vue.defineComponent({
34386
+ var QVideo = createComponent({
34308
34387
  name: 'QVideo',
34309
34388
 
34310
34389
  props: {
@@ -34483,7 +34562,7 @@
34483
34562
  return isNaN(depth) ? 0 : depth
34484
34563
  }
34485
34564
 
34486
- var ClosePopup = {
34565
+ var ClosePopup = createDirective({
34487
34566
  name: 'close-popup',
34488
34567
 
34489
34568
  beforeMount (el, { value }) {
@@ -34523,7 +34602,8 @@
34523
34602
  el.removeEventListener('keyup', ctx.handlerKey);
34524
34603
  delete el.__qclosepopup;
34525
34604
  }
34526
- };
34605
+ }
34606
+ );
34527
34607
 
34528
34608
  let id = 0;
34529
34609
  let offsetBase = void 0;
@@ -35673,7 +35753,7 @@
35673
35753
  }
35674
35754
  }
35675
35755
 
35676
- var Morph = {
35756
+ var Morph = createDirective({
35677
35757
  name: 'morph',
35678
35758
 
35679
35759
  mounted (el, binding) {
@@ -35718,7 +35798,8 @@
35718
35798
 
35719
35799
  delete el.__qmorph;
35720
35800
  }
35721
- };
35801
+ }
35802
+ );
35722
35803
 
35723
35804
  const defaultCfg = {
35724
35805
  childList: true,
@@ -35754,7 +35835,7 @@
35754
35835
  }
35755
35836
  }
35756
35837
 
35757
- var Mutation = {
35838
+ var Mutation = createDirective({
35758
35839
  name: 'mutation',
35759
35840
 
35760
35841
  mounted (el, { modifiers: { once, ...mod }, value }) {
@@ -35778,7 +35859,8 @@
35778
35859
  },
35779
35860
 
35780
35861
  beforeUnmount: destroy
35781
- };
35862
+ }
35863
+ );
35782
35864
 
35783
35865
  const { passive } = listenOpts;
35784
35866
 
@@ -35795,7 +35877,7 @@
35795
35877
  }
35796
35878
  }
35797
35879
 
35798
- var ScrollFire = {
35880
+ var ScrollFire = createDirective({
35799
35881
  name: 'scroll-fire',
35800
35882
 
35801
35883
  mounted (el, binding) {
@@ -35836,7 +35918,8 @@
35836
35918
  ctx.scrollTarget.removeEventListener('scroll', ctx.scroll, passive);
35837
35919
  delete el.__qscrollfire;
35838
35920
  }
35839
- };
35921
+ }
35922
+ );
35840
35923
 
35841
35924
  function update (ctx, { value, oldValue }) {
35842
35925
  if (typeof value !== 'function') {
@@ -35850,7 +35933,7 @@
35850
35933
  }
35851
35934
  }
35852
35935
 
35853
- var Scroll = {
35936
+ var Scroll = createDirective({
35854
35937
  name: 'scroll',
35855
35938
 
35856
35939
  mounted (el, binding) {
@@ -35880,9 +35963,10 @@
35880
35963
  ctx.scrollTarget.removeEventListener('scroll', ctx.scroll, listenOpts.passive);
35881
35964
  delete el.__qscroll;
35882
35965
  }
35883
- };
35966
+ }
35967
+ );
35884
35968
 
35885
- var TouchHold = {
35969
+ var TouchHold = createDirective({
35886
35970
  name: 'touch-hold',
35887
35971
 
35888
35972
  beforeMount (el, binding) {
@@ -36033,7 +36117,8 @@
36033
36117
  delete el.__qtouchhold;
36034
36118
  }
36035
36119
  }
36036
- };
36120
+ }
36121
+ );
36037
36122
 
36038
36123
  const
36039
36124
  keyCodes = {
@@ -36056,7 +36141,7 @@
36056
36141
  || Math.abs(top - origin.top) >= 7
36057
36142
  }
36058
36143
 
36059
- var TouchRepeat = {
36144
+ var TouchRepeat = createDirective({
36060
36145
  name: 'touch-repeat',
36061
36146
 
36062
36147
  beforeMount (el, { modifiers, value, arg }) {
@@ -36267,7 +36352,8 @@
36267
36352
  delete el.__qtouchrepeat;
36268
36353
  }
36269
36354
  }
36270
- };
36355
+ }
36356
+ );
36271
36357
 
36272
36358
  var directives = /*#__PURE__*/Object.freeze({
36273
36359
  __proto__: null,
@@ -36500,7 +36586,7 @@
36500
36586
  }
36501
36587
  }
36502
36588
 
36503
- var BottomSheet$1 = vue.defineComponent({
36589
+ var BottomSheet$1 = createComponent({
36504
36590
  name: 'BottomSheetPlugin',
36505
36591
 
36506
36592
  props: {
@@ -37017,7 +37103,7 @@
37017
37103
  Object.assign(Plugin$3, getObject());
37018
37104
  }
37019
37105
 
37020
- var DialogPlugin = vue.defineComponent({
37106
+ var DialogPlugin = createComponent({
37021
37107
  name: 'DialogPlugin',
37022
37108
 
37023
37109
  props: {
@@ -37760,9 +37846,9 @@
37760
37846
  }
37761
37847
 
37762
37848
  function getComponent ($q) {
37763
- return vue.defineComponent({
37849
+ return createComponent({
37764
37850
  name: 'QNotifications',
37765
-
37851
+
37766
37852
  // hide App from Vue devtools
37767
37853
  devtools: { hide: true },
37768
37854
 
@@ -38663,7 +38749,10 @@
38663
38749
  }
38664
38750
  }
38665
38751
 
38666
- useDialogPluginComponent.emits = [ 'ok', 'hide' ];
38752
+ const emits = [ 'ok', 'hide' ];
38753
+
38754
+ useDialogPluginComponent.emits = emits;
38755
+ useDialogPluginComponent.emitsObject = getEmitsObject(emits);
38667
38756
 
38668
38757
  function useMeta (metaOptions) {
38669
38758
  {
@@ -38719,7 +38808,7 @@
38719
38808
  });
38720
38809
 
38721
38810
  var index_umd = {
38722
- version: '2.2.2',
38811
+ version: '2.3.1',
38723
38812
  install (app, opts) {
38724
38813
  installQuasar(app, {
38725
38814
  components,