@vcmap/ui 5.0.0-rc.24 → 5.0.0-rc.25

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 (215) hide show
  1. package/build/build.js +132 -14
  2. package/build/buildHelpers.js +196 -92
  3. package/build/bundle.js +56 -0
  4. package/build/commonViteConfig.js +2 -2
  5. package/config/base.config.json +29 -2
  6. package/config/dev.config.json +29 -1
  7. package/config/www.config.json +81 -39
  8. package/dist/assets/@mdi/font/LICENSE +20 -0
  9. package/dist/assets/@mdi/font/css/materialdesignicons.css.map +16 -0
  10. package/dist/assets/@mdi/font/css/materialdesignicons.min.e3f476.css +3 -0
  11. package/dist/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
  12. package/dist/assets/cesium/Workers/{AxisAlignedBoundingBox-85d9e53a.js → AxisAlignedBoundingBox-4140c51f.js} +1 -1
  13. package/dist/assets/cesium/Workers/{BoundingRectangle-1ee7eb47.js → BoundingRectangle-c714b156.js} +1 -1
  14. package/dist/assets/cesium/Workers/{BoxGeometry-3b2be784.js → BoxGeometry-6f3da43d.js} +1 -1
  15. package/dist/assets/cesium/Workers/{Color-f107c84d.js → Color-8a565ff2.js} +5 -5
  16. package/dist/assets/cesium/Workers/{CoplanarPolygonGeometryLibrary-78d71993.js → CoplanarPolygonGeometryLibrary-4b4d4096.js} +1 -1
  17. package/dist/assets/cesium/Workers/{CorridorGeometryLibrary-50d99b33.js → CorridorGeometryLibrary-7b94502b.js} +1 -1
  18. package/dist/assets/cesium/Workers/{CylinderGeometry-51b0d9bf.js → CylinderGeometry-ca070b87.js} +1 -1
  19. package/dist/assets/cesium/Workers/{EllipseGeometry-bcfb5d87.js → EllipseGeometry-122e51fa.js} +1 -1
  20. package/dist/assets/cesium/Workers/{EllipseGeometryLibrary-e94f8472.js → EllipseGeometryLibrary-4d326efc.js} +1 -1
  21. package/dist/assets/cesium/Workers/{EllipseOutlineGeometry-28e3a1bb.js → EllipseOutlineGeometry-16cc2bd7.js} +1 -1
  22. package/dist/assets/cesium/Workers/{EllipsoidGeometry-b222fa63.js → EllipsoidGeometry-cb148ca2.js} +1 -1
  23. package/dist/assets/cesium/Workers/{EllipsoidOutlineGeometry-38a3fb5b.js → EllipsoidOutlineGeometry-0fa10c79.js} +1 -1
  24. package/dist/assets/cesium/Workers/{EllipsoidTangentPlane-8c89f28c.js → EllipsoidTangentPlane-6dd1b7af.js} +1 -1
  25. package/dist/assets/cesium/Workers/{FrustumGeometry-bdd3a04d.js → FrustumGeometry-ee73037c.js} +1 -1
  26. package/dist/assets/cesium/Workers/{GeometryAttribute-153115c5.js → GeometryAttribute-ff5b4fb1.js} +1 -1
  27. package/dist/assets/cesium/Workers/{GeometryPipeline-acb2399c.js → GeometryPipeline-1f8fbf05.js} +1 -1
  28. package/dist/assets/cesium/Workers/{IntersectionTests-271e513e.js → IntersectionTests-70d39ba9.js} +1 -1
  29. package/dist/assets/cesium/Workers/{OrientedBoundingBox-5e04e31f.js → OrientedBoundingBox-159cf1d6.js} +1 -1
  30. package/dist/assets/cesium/Workers/{PolygonGeometryLibrary-6762b65b.js → PolygonGeometryLibrary-076a5d25.js} +1 -1
  31. package/dist/assets/cesium/Workers/{PolygonPipeline-7dc7a431.js → PolygonPipeline-b9f2810a.js} +1 -1
  32. package/dist/assets/cesium/Workers/{PolylinePipeline-15fde655.js → PolylinePipeline-639192e0.js} +1 -1
  33. package/dist/assets/cesium/Workers/{PolylineVolumeGeometryLibrary-ba7dfed5.js → PolylineVolumeGeometryLibrary-b73549fb.js} +1 -1
  34. package/dist/assets/cesium/Workers/{PrimitivePipeline-68f0b9a2.js → PrimitivePipeline-10ede1b6.js} +1 -1
  35. package/dist/assets/cesium/Workers/{RectangleGeometryLibrary-8eaf23da.js → RectangleGeometryLibrary-c35a7356.js} +1 -1
  36. package/dist/assets/cesium/Workers/{TerrainEncoding-eb8a645a.js → TerrainEncoding-668d242f.js} +1 -1
  37. package/dist/assets/cesium/Workers/{Transforms-f6451f99.js → Transforms-a2a85221.js} +14 -0
  38. package/dist/assets/cesium/Workers/{WallGeometryLibrary-feef3109.js → WallGeometryLibrary-1938bf0d.js} +1 -1
  39. package/dist/assets/cesium/Workers/cesiumWorkerBootstrapper.js +1 -1
  40. package/dist/assets/cesium/Workers/combineGeometry.js +1 -1
  41. package/dist/assets/cesium/Workers/createBoxGeometry.js +1 -1
  42. package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +1 -1
  43. package/dist/assets/cesium/Workers/createCircleGeometry.js +1 -1
  44. package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +1 -1
  45. package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +1 -1
  46. package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +1 -1
  47. package/dist/assets/cesium/Workers/createCorridorGeometry.js +1 -1
  48. package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +1 -1
  49. package/dist/assets/cesium/Workers/createCylinderGeometry.js +1 -1
  50. package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +1 -1
  51. package/dist/assets/cesium/Workers/createEllipseGeometry.js +1 -1
  52. package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +1 -1
  53. package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +1 -1
  54. package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +1 -1
  55. package/dist/assets/cesium/Workers/createFrustumGeometry.js +1 -1
  56. package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +1 -1
  57. package/dist/assets/cesium/Workers/createGeometry.js +1 -1
  58. package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +1 -1
  59. package/dist/assets/cesium/Workers/createPlaneGeometry.js +1 -1
  60. package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +1 -1
  61. package/dist/assets/cesium/Workers/createPolygonGeometry.js +1 -1
  62. package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +1 -1
  63. package/dist/assets/cesium/Workers/createPolylineGeometry.js +1 -1
  64. package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +1 -1
  65. package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +1 -1
  66. package/dist/assets/cesium/Workers/createRectangleGeometry.js +1 -1
  67. package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +1 -1
  68. package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +1 -1
  69. package/dist/assets/cesium/Workers/createSphereGeometry.js +1 -1
  70. package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +1 -1
  71. package/dist/assets/cesium/Workers/createVectorTileGeometries.js +1 -1
  72. package/dist/assets/cesium/Workers/createVectorTilePolygons.js +1 -1
  73. package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -1
  74. package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +1 -1
  75. package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +1 -1
  76. package/dist/assets/cesium/Workers/createWallGeometry.js +1 -1
  77. package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +1 -1
  78. package/dist/assets/cesium/Workers/package.js +1 -1
  79. package/dist/assets/cesium/Workers/transferTypedArrayTest.js +1 -1
  80. package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +1 -1
  81. package/dist/assets/{cesium.253914.js → cesium.1457fa.js} +58656 -33170
  82. package/dist/assets/cesium.js +1 -1
  83. package/dist/assets/core.47836f.js +19060 -0
  84. package/dist/assets/core.js +1 -1
  85. package/dist/assets/index-bb372634.js +1 -0
  86. package/dist/assets/{ol.1c946a.js → ol.9e4d23.js} +27344 -12118
  87. package/dist/assets/ol.js +1 -1
  88. package/dist/assets/ui.6ed89d.css +5 -0
  89. package/dist/assets/ui.6ed89d.js +13461 -0
  90. package/dist/assets/ui.js +1 -1
  91. package/dist/assets/{vue.c1ece7.js → vue.7327e4.js} +834 -598
  92. package/dist/assets/vue.js +2 -2
  93. package/dist/assets/{vuetify.6efa21.css → vuetify.d2131d.css} +1 -1
  94. package/dist/assets/{vuetify.6efa21.js → vuetify.d2131d.js} +343 -103
  95. package/dist/assets/vuetify.js +2 -2
  96. package/dist/index.html +7 -6
  97. package/index.html +14 -6
  98. package/index.js +17 -2
  99. package/lib/olLib.js +19 -16
  100. package/package.json +15 -14
  101. package/plugins/@vcmap/create-link/fallbackCreateLink.vue +0 -2
  102. package/plugins/@vcmap/simple-graph/index.js +1 -1
  103. package/plugins/@vcmap-show-case/README.md +2 -1
  104. package/plugins/@vcmap-show-case/buttons-example/ButtonsExample.vue +55 -79
  105. package/plugins/@vcmap-show-case/category-tester/CategoriesExample.vue +135 -0
  106. package/plugins/@vcmap-show-case/category-tester/CollectionComponentOptions.vue +209 -0
  107. package/plugins/@vcmap-show-case/category-tester/index.js +19 -1
  108. package/plugins/@vcmap-show-case/collection-manager-example/CollectionManagerExample.vue +182 -0
  109. package/plugins/@vcmap-show-case/collection-manager-example/README.md +3 -0
  110. package/plugins/@vcmap-show-case/collection-manager-example/index.js +74 -0
  111. package/plugins/@vcmap-show-case/collection-manager-example/package.json +5 -0
  112. package/plugins/@vcmap-show-case/form-inputs-example/FormInputsExample.vue +20 -3
  113. package/plugins/@vcmap-show-case/switch-map-callback-example/README.md +21 -0
  114. package/plugins/@vcmap-show-case/switch-map-callback-example/SwitchMapCallback.js +47 -0
  115. package/plugins/@vcmap-show-case/switch-map-callback-example/config.json +3 -0
  116. package/plugins/@vcmap-show-case/switch-map-callback-example/index.js +34 -0
  117. package/plugins/@vcmap-show-case/switch-map-callback-example/package.json +5 -0
  118. package/plugins/@vcmap-show-case/table-example/DataTableExample.vue +0 -1
  119. package/plugins/package.json +3 -1
  120. package/public/assets/@mdi/font/LICENSE +20 -0
  121. package/public/assets/@mdi/font/css/materialdesignicons.css.map +16 -0
  122. package/public/assets/@mdi/font/css/materialdesignicons.min.css +3 -0
  123. package/public/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
  124. package/public/assets/favicon-128.png +0 -0
  125. package/public/assets/favicon-180.png +0 -0
  126. package/public/assets/favicon-192.png +0 -0
  127. package/public/assets/favicon-32.png +0 -0
  128. package/public/assets/logo-mobile.svg +9 -0
  129. package/public/assets/logo.svg +26 -0
  130. package/src/application/VcsApp.vue +34 -5
  131. package/src/application/VcsAttributions.vue +20 -5
  132. package/src/application/VcsAttributionsFooter.vue +0 -1
  133. package/src/application/VcsNavbar.vue +18 -13
  134. package/src/callback/activateLayersCallback.js +54 -0
  135. package/src/callback/applyLayerStyleCallback.js +63 -0
  136. package/src/callback/deactivateLayersCallback.js +54 -0
  137. package/src/callback/goToViewpointCallback.js +54 -0
  138. package/src/callback/vcsCallback.js +66 -0
  139. package/src/components/buttons/VcsActionButtonList.vue +28 -10
  140. package/src/components/buttons/VcsButton.vue +38 -100
  141. package/src/components/buttons/VcsFormButton.vue +6 -4
  142. package/src/components/buttons/VcsToolButton.vue +161 -0
  143. package/src/components/form-inputs-controls/VcsDatePicker.vue +19 -5
  144. package/src/components/form-inputs-controls/VcsFormSection.vue +0 -1
  145. package/src/components/form-inputs-controls/VcsSelect.vue +16 -2
  146. package/src/components/form-inputs-controls/VcsSlider.vue +72 -0
  147. package/src/components/form-inputs-controls/VcsTextField.vue +24 -13
  148. package/src/components/form-inputs-controls/VcsWizard.vue +13 -14
  149. package/src/components/form-inputs-controls/VcsWizardStep.vue +0 -1
  150. package/src/components/lists/VcsList.vue +3 -2
  151. package/src/components/lists/VcsTreeviewLeaf.vue +0 -1
  152. package/src/components/tables/VcsDataTable.vue +2 -4
  153. package/src/contentTree/LayerTree.vue +15 -9
  154. package/src/contentTree/contentTreeCollection.js +1 -1
  155. package/src/contentTree/contentTreeItem.js +22 -3
  156. package/src/contentTree/groupContentTreeItem.js +1 -0
  157. package/src/contentTree/layerContentTreeItem.js +4 -14
  158. package/src/contentTree/layerGroupContentTreeItem.js +4 -14
  159. package/src/contentTree/obliqueCollectionContentTreeItem.js +4 -0
  160. package/src/contentTree/viewpointContentTreeItem.js +1 -0
  161. package/src/featureInfo/BalloonComponent.vue +0 -1
  162. package/src/featureInfo/abstractFeatureInfoView.js +16 -1
  163. package/src/featureInfo/featureInfo.js +45 -56
  164. package/src/i18n/de.js +5 -2
  165. package/src/i18n/en.js +5 -2
  166. package/src/i18n/i18nCollection.js +1 -2
  167. package/src/init.js +1 -4
  168. package/src/legend/vcsLegend.vue +1 -1
  169. package/src/manager/buttonManager.js +15 -0
  170. package/src/manager/{categoryManager/CategoryComponent.vue → collectionManager/CollectionComponent.vue} +57 -66
  171. package/src/manager/collectionManager/CollectionComponentList.vue +62 -0
  172. package/src/manager/collectionManager/CollectionComponentProvider.vue +38 -0
  173. package/src/manager/collectionManager/CollectionManager.vue +43 -0
  174. package/src/manager/collectionManager/categoryManager.js +83 -0
  175. package/src/manager/collectionManager/collectionComponent.js +453 -0
  176. package/src/manager/collectionManager/collectionManager.js +432 -0
  177. package/src/manager/navbarManager.js +5 -4
  178. package/src/manager/toolbox/GroupToolboxComponent.vue +5 -7
  179. package/src/manager/toolbox/SelectToolboxComponent.vue +6 -9
  180. package/src/manager/toolbox/ToolboxManager.vue +4 -5
  181. package/src/manager/window/WindowComponentHeader.vue +0 -4
  182. package/src/navigation/mapNavigation.vue +34 -8
  183. package/src/navigation/overviewMap.js +7 -1
  184. package/src/notifier/notifierComponent.vue +0 -1
  185. package/src/pluginHelper.js +5 -0
  186. package/src/search/resultItem.vue +0 -1
  187. package/src/search/searchComponent.vue +7 -9
  188. package/src/styles/_theming.scss +2 -2
  189. package/src/styles/_typography.scss +2 -2
  190. package/src/styles/main.scss +8 -0
  191. package/src/styles/vcsFont.scss +1 -22
  192. package/src/vcsUiApp.js +76 -12
  193. package/src/vuePlugins/i18n.js +18 -19
  194. package/src/vuePlugins/vuetify.js +0 -1
  195. package/dist/assets/core.3a8205.js +0 -18426
  196. package/dist/assets/index.91ae2d55.js +0 -1
  197. package/dist/assets/ui.0025be.css +0 -5
  198. package/dist/assets/ui.0025be.js +0 -18534
  199. package/plugins/@vcmap-show-case/category-tester/Categories.vue +0 -291
  200. package/plugins/@vcmap-show-case/category-tester/Category.vue +0 -164
  201. package/src/manager/categoryManager/CategoryComponentList.vue +0 -82
  202. package/src/manager/categoryManager/CategoryManager.vue +0 -47
  203. package/src/manager/categoryManager/categoryManager.js +0 -633
  204. package/start.js +0 -9
  205. /package/{src/assets/favicon-128.png → dist/assets/favicon-128.4c4ce5.png} +0 -0
  206. /package/{src/assets/favicon-180.png → dist/assets/favicon-180.5b99c0.png} +0 -0
  207. /package/{src/assets/favicon-192.png → dist/assets/favicon-192.0e205e.png} +0 -0
  208. /package/{src/assets/favicon-32.png → dist/assets/favicon-32.6b9add.png} +0 -0
  209. /package/dist/assets/{favicon.decf54cc.svg → favicon.d5ec97.svg} +0 -0
  210. /package/dist/assets/font/{TitilliumWeb-Regular.woff2 → TitilliumWeb-Regular.9ca076.woff2} +0 -0
  211. /package/{src/assets/logo-mobile.svg → dist/assets/logo-mobile.2d10a6.svg} +0 -0
  212. /package/{src/assets/logo.svg → dist/assets/logo.27089a.svg} +0 -0
  213. /package/{src → public}/assets/favicon.svg +0 -0
  214. /package/{src → public}/assets/font/OFL.txt +0 -0
  215. /package/{src → public}/assets/font/TitilliumWeb-Regular.woff2 +0 -0
@@ -13,7 +13,7 @@ function loadCss(href) {
13
13
  elem.onerror = reject;
14
14
  document.head.appendChild(elem);
15
15
  });
16
- } await loadCss('./assets/vuetify.6efa21.css');import v from "./vue.c1ece7.js";
16
+ } await loadCss('./assets/vuetify.d2131d.css');import v from "./vue.7327e4.js";
17
17
  const Ne = v.extend().extend({
18
18
  name: "themeable",
19
19
  provide() {
@@ -58,6 +58,7 @@ const Ne = v.extend().extend({
58
58
  "theme--light": !this.isDark
59
59
  };
60
60
  },
61
+ /** Used by menus and dialogs, inherits from v-app instead of the parent */
61
62
  rootIsDark() {
62
63
  return this.dark === !0 ? !0 : this.light === !0 ? !1 : this.appIsDark;
63
64
  },
@@ -236,6 +237,7 @@ class ge extends gt {
236
237
  passive: !0
237
238
  });
238
239
  }
240
+ /* eslint-disable-next-line max-statements */
239
241
  update(e = !1) {
240
242
  const i = e ? 0 : this.getClientHeight(), s = e ? 0 : this.getClientWidth(), n = s < this.thresholds.xs, r = s < this.thresholds.sm && !n, a = s < this.thresholds.md - this.scrollBarWidth && !(r || n), o = s < this.thresholds.lg - this.scrollBarWidth && !(a || r || n), l = s >= this.thresholds.lg - this.scrollBarWidth;
241
243
  switch (this.height = i, this.width = s, this.xs = n, this.sm = r, this.md = a, this.lg = o, this.xl = l, this.xsOnly = n, this.smOnly = r, this.smAndDown = (n || r) && !(a || o || l), this.smAndUp = !n && (r || a || o || l), this.mdOnly = a, this.mdAndDown = (n || r || a) && !(o || l), this.mdAndUp = !(n || r) && (a || o || l), this.lgOnly = o, this.lgAndDown = (n || r || a || o) && !l, this.lgAndUp = !(n || r || a) && (o || l), this.xlOnly = l, !0) {
@@ -271,6 +273,8 @@ class ge extends gt {
271
273
  onResize() {
272
274
  clearTimeout(this.resizeTimeout), this.resizeTimeout = window.setTimeout(this.update.bind(this), 200);
273
275
  }
276
+ // Cross-browser support as described in:
277
+ // https://stackoverflow.com/questions/1248081
274
278
  getClientWidth() {
275
279
  return typeof document > "u" ? 0 : Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
276
280
  }
@@ -281,19 +285,19 @@ class ge extends gt {
281
285
  ge.property = "breakpoint";
282
286
  const rr = (t) => t, ar = (t) => t ** 2, or = (t) => t * (2 - t), lr = (t) => t < 0.5 ? 2 * t ** 2 : -1 + (4 - 2 * t) * t, hr = (t) => t ** 3, cr = (t) => --t ** 3 + 1, Ss = (t) => t < 0.5 ? 4 * t ** 3 : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1, ur = (t) => t ** 4, dr = (t) => 1 - --t ** 4, pr = (t) => t < 0.5 ? 8 * t * t * t * t : 1 - 8 * --t * t * t * t, fr = (t) => t ** 5, mr = (t) => 1 + --t ** 5, gr = (t) => t < 0.5 ? 16 * t ** 5 : 1 + 16 * --t ** 5, vr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
283
287
  __proto__: null,
284
- linear: rr,
285
- easeInQuad: ar,
286
- easeOutQuad: or,
287
- easeInOutQuad: lr,
288
288
  easeInCubic: hr,
289
- easeOutCubic: cr,
290
289
  easeInOutCubic: Ss,
291
- easeInQuart: ur,
292
- easeOutQuart: dr,
290
+ easeInOutQuad: lr,
293
291
  easeInOutQuart: pr,
292
+ easeInOutQuint: gr,
293
+ easeInQuad: ar,
294
+ easeInQuart: ur,
294
295
  easeInQuint: fr,
296
+ easeOutCubic: cr,
297
+ easeOutQuad: or,
298
+ easeOutQuart: dr,
295
299
  easeOutQuint: mr,
296
- easeInOutQuint: gr
300
+ linear: rr
297
301
  }, Symbol.toStringTag, { value: "Module" }));
298
302
  function De(t) {
299
303
  if (typeof t == "number")
@@ -347,7 +351,8 @@ function mt(t, e = {}) {
347
351
  const u = c - n, f = Math.abs(i.duration ? Math.min(u / i.duration, 1) : 1);
348
352
  s.scrollTop = Math.floor(a + (r - a) * o(f));
349
353
  const y = (s === document.body ? document.documentElement.clientHeight : s.clientHeight) + s.scrollTop >= s.scrollHeight;
350
- if (f === 1 || r > s.scrollTop && y)
354
+ if (f === 1 || // Need to go lower but reach bottom
355
+ r > s.scrollTop && y)
351
356
  return l(r);
352
357
  requestAnimationFrame(h);
353
358
  }));
@@ -521,7 +526,7 @@ function wr(t, e, i) {
521
526
  for (let a = 0; a < t.length; a++) {
522
527
  const o = t[a], l = g(o, s, null);
523
528
  r !== l && (r = l, n.push({
524
- name: l != null ? l : "",
529
+ name: l ?? "",
525
530
  items: []
526
531
  })), n[n.length - 1].items.push(o);
527
532
  }
@@ -948,6 +953,7 @@ const Rr = {
948
953
  }
949
954
  }, Wr = {
950
955
  breakpoint: {
956
+ // TODO: update to MD2 spec in v3 - 1280
951
957
  mobileBreakpoint: 1264,
952
958
  scrollBarWidth: 16,
953
959
  thresholds: {
@@ -958,6 +964,7 @@ const Rr = {
958
964
  }
959
965
  },
960
966
  icons: {
967
+ // TODO: remove v3
961
968
  iconfont: "mdi",
962
969
  values: {}
963
970
  },
@@ -966,6 +973,7 @@ const Rr = {
966
973
  locales: {
967
974
  en: Rr
968
975
  },
976
+ // Default translator exists in lang service
969
977
  t: void 0
970
978
  },
971
979
  rtl: !1,
@@ -1251,7 +1259,7 @@ class Se extends gt {
1251
1259
  options: n,
1252
1260
  themes: r
1253
1261
  } = e[Se.property];
1254
- if (this.dark = Boolean(i), this.defaults = this.themes = r, this.options = n, s) {
1262
+ if (this.dark = !!i, this.defaults = this.themes = r, this.options = n, s) {
1255
1263
  this.disabled = !0;
1256
1264
  return;
1257
1265
  }
@@ -1260,6 +1268,8 @@ class Se extends gt {
1260
1268
  light: this.fillVariant(r.light, !1)
1261
1269
  };
1262
1270
  }
1271
+ // When setting css, check for element and apply new values
1272
+ /* eslint-disable-next-line accessor-pairs */
1263
1273
  set css(e) {
1264
1274
  if (this.vueMeta) {
1265
1275
  this.isVueMeta23 && this.applyVueMeta23();
@@ -1272,8 +1282,10 @@ class Se extends gt {
1272
1282
  this.isDark = e, i != null && this.applyTheme();
1273
1283
  }
1274
1284
  get dark() {
1275
- return Boolean(this.isDark);
1285
+ return !!this.isDark;
1276
1286
  }
1287
+ // Apply current theme default
1288
+ // only called on client side
1277
1289
  applyTheme() {
1278
1290
  if (this.disabled)
1279
1291
  return this.clearCss();
@@ -1282,22 +1294,30 @@ class Se extends gt {
1282
1294
  clearCss() {
1283
1295
  this.css = "";
1284
1296
  }
1297
+ // Initialize theme for SSR and SPA
1298
+ // Attach to ssrContext head or
1299
+ // apply new theme to document
1285
1300
  init(e, i) {
1286
1301
  this.disabled || (e.$meta ? this.initVueMeta(e) : i && this.initSSR(i), this.initTheme(e));
1287
1302
  }
1303
+ // Allows for you to set target theme
1288
1304
  setTheme(e, i) {
1289
1305
  this.themes[e] = Object.assign(this.themes[e], i), this.applyTheme();
1290
1306
  }
1307
+ // Reset theme defaults
1291
1308
  resetThemes() {
1292
1309
  this.themes.light = Object.assign({}, this.defaults.light), this.themes.dark = Object.assign({}, this.defaults.dark), this.applyTheme();
1293
1310
  }
1311
+ // Check for existence of style element
1294
1312
  checkOrCreateStyleElement() {
1295
- return this.styleEl = document.getElementById("vuetify-theme-stylesheet"), this.styleEl ? !0 : (this.genStyleElement(), Boolean(this.styleEl));
1313
+ return this.styleEl = document.getElementById("vuetify-theme-stylesheet"), this.styleEl ? !0 : (this.genStyleElement(), !!this.styleEl);
1296
1314
  }
1297
1315
  fillVariant(e = {}, i) {
1298
1316
  const s = this.themes[i ? "dark" : "light"];
1299
1317
  return Object.assign({}, s, e);
1300
1318
  }
1319
+ // Generate the style element
1320
+ // if applicable
1301
1321
  genStyleElement() {
1302
1322
  typeof document > "u" || (this.styleEl = document.createElement("style"), this.styleEl.type = "text/css", this.styleEl.id = "vuetify-theme-stylesheet", this.options.cspNonce && this.styleEl.setAttribute("nonce", this.options.cspNonce), document.head.appendChild(this.styleEl));
1303
1323
  }
@@ -1359,6 +1379,8 @@ class Se extends gt {
1359
1379
  get parsedTheme() {
1360
1380
  return zs(this.currentTheme || {}, void 0, ei(this.options, ["variations"], !0));
1361
1381
  }
1382
+ // Is using v2.3 of vue-meta
1383
+ // https://github.com/nuxt/vue-meta/releases/tag/v2.3.0
1362
1384
  get isVueMeta23() {
1363
1385
  return typeof this.vueMeta.addApp == "function";
1364
1386
  }
@@ -1370,12 +1392,16 @@ class Wt {
1370
1392
  isHydrating: !1
1371
1393
  }, this.installed = [], this.preset = {}, this.userPreset = {}, this.userPreset = e, this.use(Ms), this.use(xs), this.use(ge), this.use(ks), this.use(be), this.use($e), this.use(Se);
1372
1394
  }
1395
+ // Called on the new vuetify instance
1396
+ // bootstrap in install beforeCreate
1397
+ // Exposes ssrContext if available
1373
1398
  init(e, i) {
1374
1399
  this.installed.forEach((s) => {
1375
1400
  const n = this.framework[s];
1376
1401
  n.framework = this.framework, n.init(e, i);
1377
- }), this.framework.rtl = Boolean(this.preset.rtl);
1402
+ }), this.framework.rtl = !!this.preset.rtl;
1378
1403
  }
1404
+ // Instantiate a VuetifyService
1379
1405
  use(e) {
1380
1406
  const i = e.property;
1381
1407
  this.installed.includes(i) || (this.framework[i] = new e(this.preset, this), this.installed.push(i));
@@ -1607,7 +1633,7 @@ function ca(t, e, i) {
1607
1633
  function Ws(t, e, i) {
1608
1634
  var s;
1609
1635
  const n = (s = t._observe) === null || s === void 0 ? void 0 : s[i.context._uid];
1610
- !n || (n.observer.unobserve(t), delete t._observe[i.context._uid]);
1636
+ n && (n.observer.unobserve(t), delete t._observe[i.context._uid]);
1611
1637
  }
1612
1638
  const ua = {
1613
1639
  inserted: ca,
@@ -1718,7 +1744,7 @@ function Ce(...t) {
1718
1744
  for (let i = 2; i--; ) {
1719
1745
  const s = t[i];
1720
1746
  for (const n in s)
1721
- !s[n] || (e[n] ? e[n] = [].concat(s[n], e[n]) : e[n] = s[n]);
1747
+ s[n] && (e[n] ? e[n] = [].concat(s[n], e[n]) : e[n] = s[n]);
1722
1748
  }
1723
1749
  return e;
1724
1750
  }
@@ -1735,6 +1761,8 @@ const Ni = typeof window < "u" && "IntersectionObserver" in window, oi = d(Le, $
1735
1761
  lazySrc: String,
1736
1762
  options: {
1737
1763
  type: Object,
1764
+ // For more information on types, navigate to:
1765
+ // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API
1738
1766
  default: () => ({
1739
1767
  root: void 0,
1740
1768
  rootMargin: void 0,
@@ -1889,6 +1917,8 @@ Original error: ${e.message}` : ""), this);
1889
1917
  role: this.alt ? "img" : void 0
1890
1918
  },
1891
1919
  class: this.themeClasses,
1920
+ // Only load intersect directive if it
1921
+ // will work in the current browser.
1892
1922
  directives: Ni ? [{
1893
1923
  name: "intersect",
1894
1924
  modifiers: {
@@ -2021,9 +2051,10 @@ function da(t, e, i) {
2021
2051
  } = e.modifiers || {}, n = e.value, r = typeof n == "object" && n.options || {
2022
2052
  passive: !0
2023
2053
  }, a = typeof n == "function" || "handleEvent" in n ? n : n.handler, o = s ? t : e.arg ? document.querySelector(e.arg) : window;
2024
- !o || (o.addEventListener("scroll", a, r), t._onScroll = Object(t._onScroll), t._onScroll[i.context._uid] = {
2054
+ o && (o.addEventListener("scroll", a, r), t._onScroll = Object(t._onScroll), t._onScroll[i.context._uid] = {
2025
2055
  handler: a,
2026
2056
  options: r,
2057
+ // Don't reference self
2027
2058
  target: s ? void 0 : o
2028
2059
  });
2029
2060
  }
@@ -2068,6 +2099,8 @@ function Yt(t, e = []) {
2068
2099
  }
2069
2100
  },
2070
2101
  watch: {
2102
+ // If previous value was app
2103
+ // reset the provided prop
2071
2104
  app(i, s) {
2072
2105
  s ? this.removeApplication(!0) : this.callUpdate();
2073
2106
  },
@@ -2094,7 +2127,7 @@ function Yt(t, e = []) {
2094
2127
  },
2095
2128
  methods: {
2096
2129
  callUpdate() {
2097
- !this.app || this.$vuetify.application.register(this._uid, this.applicationProperty, this.updateApplication());
2130
+ this.app && this.$vuetify.application.register(this._uid, this.applicationProperty, this.updateApplication());
2098
2131
  },
2099
2132
  removeApplication(i = !1) {
2100
2133
  !i && !this.app || this.$vuetify.application.unregister(this._uid, this.applicationProperty);
@@ -2140,6 +2173,11 @@ function Ri(t, e) {
2140
2173
  e(document), typeof ShadowRoot < "u" && i instanceof ShadowRoot && e(i);
2141
2174
  }
2142
2175
  const ga = {
2176
+ // [data-app] may not be found
2177
+ // if using bind, inserted makes
2178
+ // sure that the root element is
2179
+ // available, iOS does not support
2180
+ // clicks on body
2143
2181
  inserted(t, e, i) {
2144
2182
  const s = (r) => ma(r, t, e), n = (r) => {
2145
2183
  t._clickOutside.lastMousedownWasOutside = Ks(r, t, e);
@@ -2154,7 +2192,7 @@ const ga = {
2154
2192
  };
2155
2193
  },
2156
2194
  unbind(t, e, i) {
2157
- !t._clickOutside || (Ri(t, (s) => {
2195
+ t._clickOutside && (Ri(t, (s) => {
2158
2196
  var n;
2159
2197
  if (!s || !(!((n = t._clickOutside) === null || n === void 0) && n[i.context._uid]))
2160
2198
  return;
@@ -2181,7 +2219,7 @@ function va(t, e, i) {
2181
2219
  subtree: !0,
2182
2220
  characterData: !0
2183
2221
  }, c = new MutationObserver((u, f) => {
2184
- !t._mutate || (r(u, f), a && Zs(t, e, i));
2222
+ t._mutate && (r(u, f), a && Zs(t, e, i));
2185
2223
  });
2186
2224
  c.observe(t, h), t._mutate = Object(t._mutate), t._mutate[i.context._uid] = {
2187
2225
  observer: c
@@ -2189,7 +2227,7 @@ function va(t, e, i) {
2189
2227
  }
2190
2228
  function Zs(t, e, i) {
2191
2229
  var s;
2192
- !(!((s = t._mutate) === null || s === void 0) && s[i.context._uid]) || (t._mutate[i.context._uid].observer.disconnect(), delete t._mutate[i.context._uid]);
2230
+ !((s = t._mutate) === null || s === void 0) && s[i.context._uid] && (t._mutate[i.context._uid].observer.disconnect(), delete t._mutate[i.context._uid]);
2193
2231
  }
2194
2232
  const Uh = {
2195
2233
  inserted: va,
@@ -2246,6 +2284,7 @@ const Sa = (t, e, i = {}) => {
2246
2284
  centerY: l
2247
2285
  };
2248
2286
  }, ue = {
2287
+ /* eslint-disable max-statements */
2249
2288
  show(t, e, i = {}) {
2250
2289
  if (!e._ripple || !e._ripple.enabled)
2251
2290
  return;
@@ -2453,9 +2492,18 @@ const Va = {
2453
2492
  target: null
2454
2493
  }),
2455
2494
  computed: {
2495
+ /**
2496
+ * A computed property that returns
2497
+ * whether scrolling features are
2498
+ * enabled or disabled
2499
+ */
2456
2500
  canScroll() {
2457
2501
  return typeof window < "u";
2458
2502
  },
2503
+ /**
2504
+ * The threshold that must be met before
2505
+ * thresholdMet function is invoked
2506
+ */
2459
2507
  computedScrollThreshold() {
2460
2508
  return this.scrollThreshold ? Number(this.scrollThreshold) : 300;
2461
2509
  }
@@ -2473,10 +2521,15 @@ const Va = {
2473
2521
  },
2474
2522
  methods: {
2475
2523
  onScroll() {
2476
- !this.canScroll || (this.previousScroll = this.currentScroll, this.currentScroll = this.target ? this.target.scrollTop : window.pageYOffset, this.isScrollingUp = this.currentScroll < this.previousScroll, this.currentThreshold = Math.abs(this.currentScroll - this.computedScrollThreshold), this.$nextTick(() => {
2524
+ this.canScroll && (this.previousScroll = this.currentScroll, this.currentScroll = this.target ? this.target.scrollTop : window.pageYOffset, this.isScrollingUp = this.currentScroll < this.previousScroll, this.currentThreshold = Math.abs(this.currentScroll - this.computedScrollThreshold), this.$nextTick(() => {
2477
2525
  Math.abs(this.currentScroll - this.savedScroll) > this.computedScrollThreshold && this.thresholdMet();
2478
2526
  }));
2479
2527
  },
2528
+ /**
2529
+ * The method invoked when
2530
+ * scrolling in any direction
2531
+ * has exceeded the threshold
2532
+ */
2480
2533
  thresholdMet() {
2481
2534
  }
2482
2535
  }
@@ -2553,7 +2606,10 @@ const La = Gt(), Z = La, Oa = d(et, de, jt, Z, Yt("top", ["clippedLeft", "clippe
2553
2606
  return this.bottom ? "bottom" : "top";
2554
2607
  },
2555
2608
  canScroll() {
2556
- return de.options.computed.canScroll.call(this) && (this.invertedScroll || this.elevateOnScroll || this.hideOnScroll || this.collapseOnScroll || this.isBooted || !this.value);
2609
+ return de.options.computed.canScroll.call(this) && (this.invertedScroll || this.elevateOnScroll || this.hideOnScroll || this.collapseOnScroll || this.isBooted || // If falsy, user has provided an
2610
+ // explicit value which should
2611
+ // overwrite anything we do
2612
+ !this.value);
2557
2613
  },
2558
2614
  classes() {
2559
2615
  return {
@@ -2592,7 +2648,7 @@ const La = Gt(), Z = La, Oa = d(et, de, jt, Z, Yt("top", ["clippedLeft", "clippe
2592
2648
  return this.app ? this.$vuetify.application.bar : 0;
2593
2649
  },
2594
2650
  computedOpacity() {
2595
- if (!!this.fadeImgOnScroll)
2651
+ if (this.fadeImgOnScroll)
2596
2652
  return this.scrollRatio;
2597
2653
  },
2598
2654
  computedOriginalHeight() {
@@ -2685,7 +2741,7 @@ const we = v.extend({
2685
2741
  },
2686
2742
  computed: {
2687
2743
  medium() {
2688
- return Boolean(!this.xSmall && !this.small && !this.large && !this.xLarge);
2744
+ return !this.xSmall && !this.small && !this.large && !this.xLarge;
2689
2745
  },
2690
2746
  sizeableClasses() {
2691
2747
  return {
@@ -2713,6 +2769,7 @@ const Yi = d(
2713
2769
  x,
2714
2770
  we,
2715
2771
  $
2772
+ /* @vue/component */
2716
2773
  ).extend({
2717
2774
  name: "v-icon",
2718
2775
  props: {
@@ -2732,7 +2789,7 @@ const Yi = d(
2732
2789
  return !1;
2733
2790
  },
2734
2791
  hasClickListener() {
2735
- return Boolean(this.listeners$.click || this.listeners$["!click"]);
2792
+ return !!(this.listeners$.click || this.listeners$["!click"]);
2736
2793
  }
2737
2794
  },
2738
2795
  methods: {
@@ -2750,6 +2807,7 @@ const Yi = d(
2750
2807
  }, e = ve(t).find((i) => t[i]);
2751
2808
  return e && je[e] || p(this.size);
2752
2809
  },
2810
+ // Component data for both font icon and SVG wrapper span
2753
2811
  getDefaultData() {
2754
2812
  return {
2755
2813
  staticClass: "v-icon notranslate",
@@ -3007,7 +3065,7 @@ function tt(t, e, i) {
3007
3065
  activeClass: {
3008
3066
  type: String,
3009
3067
  default() {
3010
- if (!!this[t])
3068
+ if (this[t])
3011
3069
  return this[t].activeClass;
3012
3070
  }
3013
3071
  },
@@ -3080,7 +3138,7 @@ const N = v.extend({
3080
3138
  return (t = this.ripple) !== null && t !== void 0 ? t : !this.disabled && this.isClickable;
3081
3139
  },
3082
3140
  isClickable() {
3083
- return this.disabled ? !1 : Boolean(this.isLink || this.$listeners.click || this.$listeners["!click"] || this.$attrs.tabindex);
3141
+ return this.disabled ? !1 : !!(this.isLink || this.$listeners.click || this.$listeners["!click"] || this.$attrs.tabindex);
3084
3142
  },
3085
3143
  isLink() {
3086
3144
  return this.to || this.href || this.link;
@@ -3112,6 +3170,7 @@ const N = v.extend({
3112
3170
  ..."click" in this ? {
3113
3171
  click: this.click
3114
3172
  } : void 0
3173
+ // #14447
3115
3174
  },
3116
3175
  ref: "link"
3117
3176
  };
@@ -3152,6 +3211,7 @@ const N = v.extend({
3152
3211
  we,
3153
3212
  tt("btnToggle"),
3154
3213
  Gt("inputValue")
3214
+ /* @vue/component */
3155
3215
  ), Y = Fa.extend().extend({
3156
3216
  name: "v-btn",
3157
3217
  props: {
@@ -3231,10 +3291,10 @@ const N = v.extend({
3231
3291
  return !this.text && !this.plain && !this.outlined && !this.icon;
3232
3292
  },
3233
3293
  isElevated() {
3234
- return Boolean(!this.icon && !this.text && !this.outlined && !this.depressed && !this.disabled && !this.plain && (this.elevation == null || Number(this.elevation) > 0));
3294
+ return !this.icon && !this.text && !this.outlined && !this.depressed && !this.disabled && !this.plain && (this.elevation == null || Number(this.elevation) > 0);
3235
3295
  },
3236
3296
  isRound() {
3237
- return Boolean(this.icon || this.fab);
3297
+ return !!(this.icon || this.fab);
3238
3298
  },
3239
3299
  styles() {
3240
3300
  return {
@@ -3434,7 +3494,7 @@ const li = v.extend({
3434
3494
  classes() {
3435
3495
  const t = {
3436
3496
  ..._.options.computed.classes.call(this),
3437
- "v-alert--border": Boolean(this.border),
3497
+ "v-alert--border": !!this.border,
3438
3498
  "v-alert--dense": this.dense,
3439
3499
  "v-alert--outlined": this.outlined,
3440
3500
  "v-alert--prominent": this.prominent,
@@ -3449,7 +3509,7 @@ const li = v.extend({
3449
3509
  return this.icon === !1 ? !1 : typeof this.icon == "string" && this.icon ? this.icon : ["error", "info", "success", "warning"].includes(this.type) ? `$${this.type}` : !1;
3450
3510
  },
3451
3511
  hasColoredIcon() {
3452
- return this.hasText || Boolean(this.border) && this.coloredBorder;
3512
+ return this.hasText || !!this.border && this.coloredBorder;
3453
3513
  },
3454
3514
  hasText() {
3455
3515
  return this.text || this.outlined;
@@ -3494,6 +3554,7 @@ const li = v.extend({
3494
3554
  };
3495
3555
  return this.coloredBorder || (t = (this.hasText ? this.setTextColor : this.setBackgroundColor)(this.computedColor, t)), this.$createElement("div", t, [this.genWrapper()]);
3496
3556
  },
3557
+ /** @public */
3497
3558
  toggle() {
3498
3559
  this.isActive = !this.isActive;
3499
3560
  }
@@ -3702,10 +3763,10 @@ const Jh = O("carousel-transition"), Qh = O("carousel-reverse-transition"), za =
3702
3763
  };
3703
3764
  },
3704
3765
  hasClose() {
3705
- return Boolean(this.close);
3766
+ return !!this.close;
3706
3767
  },
3707
3768
  isClickable() {
3708
- return Boolean(N.options.computed.isClickable.call(this) || this.chipGroup);
3769
+ return !!(N.options.computed.isClickable.call(this) || this.chipGroup);
3709
3770
  }
3710
3771
  },
3711
3772
  created() {
@@ -3797,9 +3858,15 @@ const cn = $.extend({
3797
3858
  closeTimeout: void 0
3798
3859
  }),
3799
3860
  methods: {
3861
+ /**
3862
+ * Clear any pending delay timers from executing
3863
+ */
3800
3864
  clearDelay() {
3801
3865
  clearTimeout(this.openTimeout), clearTimeout(this.closeTimeout);
3802
3866
  },
3867
+ /**
3868
+ * Runs callback after a specified delay
3869
+ */
3803
3870
  runDelay(t, e) {
3804
3871
  this.clearDelay();
3805
3872
  const i = parseInt(this[`${t}Delay`], 10);
@@ -3828,6 +3895,7 @@ const cn = $.extend({
3828
3895
  openOnFocus: Boolean
3829
3896
  },
3830
3897
  data: () => ({
3898
+ // Do not use this directly, call getActivator() instead
3831
3899
  activatorElement: null,
3832
3900
  activatorNode: [],
3833
3901
  events: ["click", "mouseenter", "mouseleave", "focus"],
@@ -3892,7 +3960,8 @@ const cn = $.extend({
3892
3960
  typeof this.activator == "string" ? e = i.querySelector(this.activator) : this.activator.$el ? e = this.activator.$el : e = this.activator;
3893
3961
  } else if (this.activatorNode.length === 1 || this.activatorNode.length && !t) {
3894
3962
  const i = this.activatorNode[0].componentInstance;
3895
- i && i.$options.mixins && i.$options.mixins.some((s) => s.options && ["activatable", "menuable"].includes(s.options.name)) ? e = i.getActivator() : e = this.activatorNode[0].elm;
3963
+ i && i.$options.mixins && // Activatable is indirectly used via Menuable
3964
+ i.$options.mixins.some((s) => s.options && ["activatable", "menuable"].includes(s.options.name)) ? e = i.getActivator() : e = this.activatorNode[0].elm;
3896
3965
  } else
3897
3966
  t && (e = t.currentTarget || t.target);
3898
3967
  return this.activatorElement = (e == null ? void 0 : e.nodeType) === Node.ELEMENT_NODE ? e : null, this.activatorElement;
@@ -4093,7 +4162,11 @@ const pn = d(Te).extend({
4093
4162
  };
4094
4163
  },
4095
4164
  initDetach() {
4096
- if (this._isDestroyed || !this.$refs.content || this.hasDetached || this.attach === "" || this.attach === !0 || this.attach === "attach")
4165
+ if (this._isDestroyed || !this.$refs.content || this.hasDetached || // Leave menu in place if attached
4166
+ // and dev has not changed target
4167
+ this.attach === "" || // If used as a boolean prop (<v-menu attach>)
4168
+ this.attach === !0 || // If bound to a boolean (<v-menu :attach="true">)
4169
+ this.attach === "attach")
4097
4170
  return;
4098
4171
  let t;
4099
4172
  if (this.attach === !1 ? t = document.querySelector("[data-app]") : typeof this.attach == "string" ? t = document.querySelector(this.attach) : t = this.attach, !t) {
@@ -4253,10 +4326,12 @@ const pn = d(Te).extend({
4253
4326
  },
4254
4327
  calcYOverflow(t) {
4255
4328
  const e = this.getInnerHeight(), i = this.absoluteYOffset + e, s = this.dimensions.activator, n = this.dimensions.content.height, r = t + n, a = i < r;
4256
- return a && this.offsetOverflow && s.top > n ? t = this.pageYOffset + (s.top - n) : a && !this.allowOverflow ? t = i - n - 12 : t < this.absoluteYOffset && !this.allowOverflow && (t = this.absoluteYOffset + 12), t < 12 ? 12 : t;
4329
+ return a && this.offsetOverflow && // If we don't have enough room to offset
4330
+ // the overflow, don't offset
4331
+ s.top > n ? t = this.pageYOffset + (s.top - n) : a && !this.allowOverflow ? t = i - n - 12 : t < this.absoluteYOffset && !this.allowOverflow && (t = this.absoluteYOffset + 12), t < 12 ? 12 : t;
4257
4332
  },
4258
4333
  callActivate() {
4259
- !this.hasWindow || this.activate();
4334
+ this.hasWindow && this.activate();
4260
4335
  },
4261
4336
  callDeactivate() {
4262
4337
  this.isContentActive = !1, this.deactivate();
@@ -4392,6 +4467,7 @@ const pn = d(Te).extend({
4392
4467
  provide() {
4393
4468
  return {
4394
4469
  isInMenu: !0,
4470
+ // Pass theme through to default slot
4395
4471
  theme: this.theme
4396
4472
  };
4397
4473
  },
@@ -4458,7 +4534,7 @@ const pn = d(Te).extend({
4458
4534
  return (this.auto ? p(this.calcYOverflow(this.calculatedTopAuto)) : this.calcTop()) || "0";
4459
4535
  },
4460
4536
  hasClickableTiles() {
4461
- return Boolean(this.tiles.find((t) => t.tabIndex > -1));
4537
+ return !!this.tiles.find((t) => t.tabIndex > -1);
4462
4538
  },
4463
4539
  styles() {
4464
4540
  return {
@@ -4613,7 +4689,7 @@ const pn = d(Te).extend({
4613
4689
  return this.$listeners.scroll && (t.on = t.on || {}, t.on.scroll = this.$listeners.scroll), !this.disabled && this.openOnHover && (t.on = t.on || {}, t.on.mouseenter = this.mouseEnterHandler), this.openOnHover && (t.on = t.on || {}, t.on.mouseleave = this.mouseLeaveHandler), this.$createElement("div", t, this.getContentSlot());
4614
4690
  },
4615
4691
  getTiles() {
4616
- !this.$refs.content || (this.tiles = Array.from(this.$refs.content.querySelectorAll(".v-list-item, .v-divider, .v-subheader")));
4692
+ this.$refs.content && (this.tiles = Array.from(this.$refs.content.querySelectorAll(".v-list-item, .v-divider, .v-subheader")));
4617
4693
  },
4618
4694
  mouseEnterHandler() {
4619
4695
  this.runDelay("open", () => {
@@ -4650,11 +4726,11 @@ const pn = d(Te).extend({
4650
4726
  },
4651
4727
  lastTile() {
4652
4728
  const t = this.tiles[this.tiles.length - 1];
4653
- !t || (this.listIndex = this.tiles.length - 1, t.tabIndex === -1 && this.prevTile());
4729
+ t && (this.listIndex = this.tiles.length - 1, t.tabIndex === -1 && this.prevTile());
4654
4730
  },
4655
4731
  firstTile() {
4656
4732
  const t = this.tiles[0];
4657
- !t || (this.listIndex = 0, t.tabIndex === -1 && this.nextTile());
4733
+ t && (this.listIndex = 0, t.tabIndex === -1 && this.nextTile());
4658
4734
  },
4659
4735
  onKeyDown(t) {
4660
4736
  if (t.keyCode === m.esc) {
@@ -4668,7 +4744,7 @@ const pn = d(Te).extend({
4668
4744
  this.$nextTick(() => this.changeListIndex(t));
4669
4745
  },
4670
4746
  onResize() {
4671
- !this.isActive || (this.$refs.content.offsetWidth, this.updateDimensions(), clearTimeout(this.resizeTimeout), this.resizeTimeout = window.setTimeout(this.updateDimensions, 100));
4747
+ this.isActive && (this.$refs.content.offsetWidth, this.updateDimensions(), clearTimeout(this.resizeTimeout), this.resizeTimeout = window.setTimeout(this.updateDimensions, 100));
4672
4748
  }
4673
4749
  },
4674
4750
  render(t) {
@@ -4788,6 +4864,7 @@ const Za = $.extend({
4788
4864
  });
4789
4865
  const Ja = d(
4790
4866
  $
4867
+ /* @vue/component */
4791
4868
  ).extend({
4792
4869
  name: "v-subheader",
4793
4870
  props: {
@@ -4936,7 +5013,7 @@ const to = d(x, N, $, tt("listItemGroup"), Gt("inputValue")), se = to.extend().e
4936
5013
  };
4937
5014
  },
4938
5015
  isClickable() {
4939
- return Boolean(N.options.computed.isClickable.call(this) || this.listItemGroup);
5016
+ return !!(N.options.computed.isClickable.call(this) || this.listItemGroup);
4940
5017
  }
4941
5018
  },
4942
5019
  created() {
@@ -5172,6 +5249,9 @@ const so = io(), qt = so, P = d(fi, qt, $).extend({
5172
5249
  },
5173
5250
  data() {
5174
5251
  return {
5252
+ // As long as a value is defined, show it
5253
+ // Otherwise, check if multiple
5254
+ // to determine which default to provide
5175
5255
  internalLazyValue: this.value !== void 0 ? this.value : this.multiple ? [] : void 0,
5176
5256
  items: []
5177
5257
  };
@@ -5240,6 +5320,7 @@ const so = io(), qt = so, P = d(fi, qt, $).extend({
5240
5320
  const i = this.getValue(t, e);
5241
5321
  t.isActive = this.toggleMethod(i);
5242
5322
  },
5323
+ // https://github.com/vuetifyjs/vuetify/issues/5352
5243
5324
  updateItemsState() {
5244
5325
  this.$nextTick(() => {
5245
5326
  if (this.mandatory && !this.selectedItems.length)
@@ -5263,7 +5344,12 @@ const so = io(), qt = so, P = d(fi, qt, $).extend({
5263
5344
  },
5264
5345
  updateMultiple(t) {
5265
5346
  const i = (Array.isArray(this.internalValue) ? this.internalValue : []).slice(), s = i.findIndex((n) => this.valueComparator(n, t));
5266
- this.mandatory && s > -1 && i.length - 1 < 1 || this.max != null && s < 0 && i.length + 1 > this.max || (s > -1 ? i.splice(s, 1) : i.push(t), this.internalValue = i);
5347
+ this.mandatory && // Item already exists
5348
+ s > -1 && // value would be reduced below min
5349
+ i.length - 1 < 1 || // Max is set
5350
+ this.max != null && // Item doesn't exist
5351
+ s < 0 && // value would be increased above max
5352
+ i.length + 1 > this.max || (s > -1 ? i.splice(s, 1) : i.push(t), this.internalValue = i);
5267
5353
  },
5268
5354
  updateSingle(t) {
5269
5355
  const e = this.valueComparator(this.internalValue, t);
@@ -5376,6 +5462,7 @@ const ne = d(x, vt, ai).extend({
5376
5462
  }
5377
5463
  }), mc = F("v-list-item__action-text", "span"), ro = F("v-list-item__content", "div"), ao = F("v-list-item__title", "div"), gc = F("v-list-item__subtitle", "div"), Xi = d(x, $).extend({
5378
5464
  name: "v-select-list",
5465
+ // https://github.com/vuejs/vue/issues/6872
5379
5466
  directives: {
5380
5467
  ripple: R
5381
5468
  },
@@ -5421,6 +5508,7 @@ const ne = d(x, vt, ai).extend({
5421
5508
  },
5422
5509
  on: {
5423
5510
  mousedown: (e) => e.preventDefault()
5511
+ // Prevent onBlur from being called
5424
5512
  }
5425
5513
  };
5426
5514
  return this.$createElement(se, t, [this.genTileContent(this.noDataText)]);
@@ -5488,6 +5576,8 @@ const ne = d(x, vt, ai).extend({
5488
5576
  s || (s = this.hasItem(t)), t === Object(t) && (i = i !== null ? i : this.getDisabled(t));
5489
5577
  const n = {
5490
5578
  attrs: {
5579
+ // Default behavior in list does not
5580
+ // contain aria-selected by default
5491
5581
  "aria-selected": String(s),
5492
5582
  id: `list-item-${this._uid}-${e}`,
5493
5583
  role: "option"
@@ -5528,7 +5618,7 @@ const ne = d(x, vt, ai).extend({
5528
5618
  return t.length !== 1 || t[0].componentOptions == null || t[0].componentOptions.Ctor.options.name !== "v-list-item";
5529
5619
  },
5530
5620
  getDisabled(t) {
5531
- return Boolean(rt(t, this.itemDisabled, !1));
5621
+ return !!rt(t, this.itemDisabled, !1);
5532
5622
  },
5533
5623
  getText(t) {
5534
5624
  return String(rt(t, this.itemText, t));
@@ -5697,6 +5787,8 @@ const oo = d(x, $).extend({
5697
5787
  hasError() {
5698
5788
  return this.internalErrorMessages.length > 0 || this.errorBucket.length > 0 || this.error;
5699
5789
  },
5790
+ // TODO: Add logic that allows the user to enable based
5791
+ // upon a good validation
5700
5792
  hasSuccess() {
5701
5793
  return this.internalSuccessMessages.length > 0 || this.success;
5702
5794
  },
@@ -5793,12 +5885,15 @@ const oo = d(x, $).extend({
5793
5885
  genInternalMessages(t) {
5794
5886
  return t ? Array.isArray(t) ? t : [t] : [];
5795
5887
  },
5888
+ /** @public */
5796
5889
  reset() {
5797
5890
  this.isResetting = !0, this.internalValue = Array.isArray(this.internalValue) ? [] : null;
5798
5891
  },
5892
+ /** @public */
5799
5893
  resetValidation() {
5800
5894
  this.isResetting = !0;
5801
5895
  },
5896
+ /** @public */
5802
5897
  validate(t = !1, e) {
5803
5898
  const i = [];
5804
5899
  e = e || this.internalValue, t && (this.hasInput = this.hasFocused = !0);
@@ -5845,6 +5940,7 @@ const oo = d(x, $).extend({
5845
5940
  "v-input--is-dirty": this.isDirty,
5846
5941
  "v-input--is-disabled": this.isDisabled,
5847
5942
  "v-input--is-focused": this.isFocused,
5943
+ // <v-switch loading>.loading === '' so we can't just cast to boolean
5848
5944
  "v-input--is-loading": this.loading !== !1 && this.loading != null,
5849
5945
  "v-input--is-readonly": this.isReadonly,
5850
5946
  "v-input--dense": this.dense,
@@ -5864,6 +5960,10 @@ const oo = d(x, $).extend({
5864
5960
  hasLabel() {
5865
5961
  return !!(this.$slots.label || this.label);
5866
5962
  },
5963
+ // Proxy for `lazyValue`
5964
+ // This allows an input
5965
+ // to function without
5966
+ // a provided model
5867
5967
  internalValue: {
5868
5968
  get() {
5869
5969
  return this.lazyValue;
@@ -5927,6 +6027,8 @@ const oo = d(x, $).extend({
5927
6027
  click: (o) => {
5928
6028
  o.preventDefault(), o.stopPropagation(), this.$emit(n, o), e && e(o);
5929
6029
  },
6030
+ // Container has g event that will
6031
+ // trigger menu open if enclosed
5930
6032
  mouseup: (o) => {
5931
6033
  o.preventDefault(), o.stopPropagation();
5932
6034
  }
@@ -6192,7 +6294,7 @@ const uo = d(x, Bt(["absolute", "fixed", "top", "bottom"]), qt, $), vn = uo.exte
6192
6294
  return this.normalize(this.internalLazyValue);
6193
6295
  },
6194
6296
  reactive() {
6195
- return Boolean(this.$listeners.change);
6297
+ return !!this.$listeners.change;
6196
6298
  },
6197
6299
  styles() {
6198
6300
  const t = {};
@@ -6384,7 +6486,8 @@ const uo = d(x, Bt(["absolute", "fixed", "top", "bottom"]), qt, $), vn = uo.exte
6384
6486
  return this.isDirty || fo.includes(this.type);
6385
6487
  },
6386
6488
  isSingle() {
6387
- return this.isSolo || this.singleLine || this.fullWidth || this.filled && !this.hasLabel;
6489
+ return this.isSolo || this.singleLine || this.fullWidth || // https://material.io/components/text-fields/#filled-text-field
6490
+ this.filled && !this.hasLabel;
6388
6491
  },
6389
6492
  isSolo() {
6390
6493
  return this.solo || this.soloInverted;
@@ -6407,6 +6510,7 @@ const uo = d(x, Bt(["absolute", "fixed", "top", "bottom"]), qt, $), vn = uo.exte
6407
6510
  }
6408
6511
  },
6409
6512
  watch: {
6513
+ // labelValue: 'setLabelWidth', // moved to mounted, see #11533
6410
6514
  outlined: "setLabelWidth",
6411
6515
  label() {
6412
6516
  this.$nextTick(this.setLabelWidth);
@@ -6430,9 +6534,11 @@ const uo = d(x, Bt(["absolute", "fixed", "top", "bottom"]), qt, $), vn = uo.exte
6430
6534
  });
6431
6535
  },
6432
6536
  methods: {
6537
+ /** @public */
6433
6538
  focus() {
6434
6539
  this.onFocus();
6435
6540
  },
6541
+ /** @public */
6436
6542
  blur(t) {
6437
6543
  window.requestAnimationFrame(() => {
6438
6544
  this.$refs.input && this.$refs.input.blur();
@@ -6587,7 +6693,7 @@ const uo = d(x, Bt(["absolute", "fixed", "top", "bottom"]), qt, $), vn = uo.exte
6587
6693
  if (!this.$refs.input)
6588
6694
  return;
6589
6695
  const e = ce(this.$el);
6590
- if (!!e) {
6696
+ if (e) {
6591
6697
  if (e.activeElement !== this.$refs.input)
6592
6698
  return this.$refs.input.focus();
6593
6699
  this.isFocused || (this.isFocused = !0, t && this.$emit("focus", t));
@@ -6607,10 +6713,10 @@ const uo = d(x, Bt(["absolute", "fixed", "top", "bottom"]), qt, $), vn = uo.exte
6607
6713
  this.hasMouseDown && this.focus(), I.options.methods.onMouseUp.call(this, t);
6608
6714
  },
6609
6715
  setLabelWidth() {
6610
- !this.outlined || (this.labelWidth = this.$refs.label ? Math.min(this.$refs.label.scrollWidth * 0.75 + 6, this.$el.offsetWidth - 24) : 0);
6716
+ this.outlined && (this.labelWidth = this.$refs.label ? Math.min(this.$refs.label.scrollWidth * 0.75 + 6, this.$el.offsetWidth - 24) : 0);
6611
6717
  },
6612
6718
  setPrefixWidth() {
6613
- !this.$refs.prefix || (this.prefixWidth = this.$refs.prefix.offsetWidth);
6719
+ this.$refs.prefix && (this.prefixWidth = this.$refs.prefix.offsetWidth);
6614
6720
  },
6615
6721
  setPrependWidth() {
6616
6722
  !this.outlined || !this.$refs["prepend-inner"] || (this.prependWidth = this.$refs["prepend-inner"].offsetWidth);
@@ -6698,6 +6804,9 @@ const uo = d(x, Bt(["absolute", "fixed", "top", "bottom"]), qt, $), vn = uo.exte
6698
6804
  menuIsBooted: !1,
6699
6805
  isMenuActive: !1,
6700
6806
  lastItem: 20,
6807
+ // As long as a value is defined, show it
6808
+ // Otherwise, check if multiple
6809
+ // to determine which default to provide
6701
6810
  lazyValue: this.value !== void 0 ? this.value : this.multiple ? [] : void 0,
6702
6811
  selectedIndex: -1,
6703
6812
  selectedItems: [],
@@ -6706,6 +6815,7 @@ const uo = d(x, Bt(["absolute", "fixed", "top", "bottom"]), qt, $), vn = uo.exte
6706
6815
  };
6707
6816
  },
6708
6817
  computed: {
6818
+ /* All items that the select has */
6709
6819
  allItems() {
6710
6820
  return this.filterDuplicates(this.cachedItems.concat(this.items));
6711
6821
  },
@@ -6719,6 +6829,7 @@ const uo = d(x, Bt(["absolute", "fixed", "top", "bottom"]), qt, $), vn = uo.exte
6719
6829
  "v-select--is-multi": this.multiple
6720
6830
  };
6721
6831
  },
6832
+ /* Used by other components to overwrite */
6722
6833
  computedItems() {
6723
6834
  return this.allItems;
6724
6835
  },
@@ -6747,7 +6858,7 @@ const uo = d(x, Bt(["absolute", "fixed", "top", "bottom"]), qt, $), vn = uo.exte
6747
6858
  return this.chips || this.smallChips;
6748
6859
  },
6749
6860
  hasSlot() {
6750
- return Boolean(this.hasChips || this.$scopedSlots.selection);
6861
+ return !!(this.hasChips || this.$scopedSlots.selection);
6751
6862
  },
6752
6863
  isDirty() {
6753
6864
  return this.selectedItems.length > 0;
@@ -6819,9 +6930,11 @@ const uo = d(x, Bt(["absolute", "fixed", "top", "bottom"]), qt, $), vn = uo.exte
6819
6930
  }
6820
6931
  },
6821
6932
  methods: {
6933
+ /** @public */
6822
6934
  blur(t) {
6823
6935
  L.options.methods.blur.call(this, t), this.isMenuActive = !1, this.isFocused = !1, this.selectedIndex = -1, this.setMenuIndex(-1);
6824
6936
  },
6937
+ /** @public */
6825
6938
  activateMenu() {
6826
6939
  !this.isInteractive || this.isMenuActive || (this.isMenuActive = !0);
6827
6940
  },
@@ -6829,7 +6942,10 @@ const uo = d(x, Bt(["absolute", "fixed", "top", "bottom"]), qt, $), vn = uo.exte
6829
6942
  this.setValue(this.multiple ? [] : null), this.setMenuIndex(-1), this.$nextTick(() => this.$refs.input && this.$refs.input.focus()), this.openOnClear && (this.isMenuActive = !0);
6830
6943
  },
6831
6944
  closeConditional(t) {
6832
- return this.isMenuActive ? !this._isDestroyed && (!this.getContent() || !this.getContent().contains(t.target)) && this.$el && !this.$el.contains(t.target) && t.target !== this.$el : !0;
6945
+ return this.isMenuActive ? !this._isDestroyed && // Click originates from outside the menu content
6946
+ // Multiple selects don't close when an item is clicked
6947
+ (!this.getContent() || !this.getContent().contains(t.target)) && // Click originates from outside the element
6948
+ this.$el && !this.$el.contains(t.target) && t.target !== this.$el : !0;
6833
6949
  },
6834
6950
  filterDuplicates(t) {
6835
6951
  const e = /* @__PURE__ */ new Map();
@@ -6868,7 +6984,7 @@ const uo = d(x, Bt(["absolute", "fixed", "top", "bottom"]), qt, $), vn = uo.exte
6868
6984
  },
6869
6985
  on: {
6870
6986
  click: (n) => {
6871
- !s || (n.stopPropagation(), this.selectedIndex = e);
6987
+ s && (n.stopPropagation(), this.selectedIndex = e);
6872
6988
  },
6873
6989
  "click:close": () => this.onChipInput(t)
6874
6990
  },
@@ -6955,7 +7071,10 @@ const uo = d(x, Bt(["absolute", "fixed", "top", "bottom"]), qt, $), vn = uo.exte
6955
7071
  },
6956
7072
  genMenu() {
6957
7073
  const t = this.$_menuProps;
6958
- return t.activator = this.$refs["input-slot"], this.attach === "" || this.attach === !0 || this.attach === "attach" ? t.attach = this.$el : t.attach = this.attach, this.$createElement(fn, {
7074
+ return t.activator = this.$refs["input-slot"], // TODO: make this a computed property or helper or something
7075
+ this.attach === "" || // If used as a boolean prop (<v-menu attach>)
7076
+ this.attach === !0 || // If bound to a boolean (<v-menu :attach="true">)
7077
+ this.attach === "attach" ? t.attach = this.$el : t.attach = this.attach, this.$createElement(fn, {
6959
7078
  attrs: {
6960
7079
  role: void 0
6961
7080
  },
@@ -7013,7 +7132,7 @@ const uo = d(x, Bt(["absolute", "fixed", "top", "bottom"]), qt, $), vn = uo.exte
7013
7132
  this.multiple ? this.selectItem(t) : this.setValue(null), this.selectedItems.length === 0 ? this.isMenuActive = !0 : this.isMenuActive = !1, this.selectedIndex = -1;
7014
7133
  },
7015
7134
  onClick(t) {
7016
- !this.isInteractive || (this.isAppendInner(t.target) || (this.isMenuActive = !0), this.isFocused || (this.isFocused = !0, this.$emit("focus")), this.$emit("click", t));
7135
+ this.isInteractive && (this.isAppendInner(t.target) || (this.isMenuActive = !0), this.isFocused || (this.isFocused = !0, this.$emit("focus")), this.$emit("click", t));
7017
7136
  },
7018
7137
  onEscDown(t) {
7019
7138
  t.preventDefault(), this.isMenuActive && (t.stopPropagation(), this.isMenuActive = !1);
@@ -7324,7 +7443,7 @@ const uo = d(x, Bt(["absolute", "fixed", "top", "bottom"]), qt, $), vn = uo.exte
7324
7443
  return this.hasSlot || this.multiple ? B.options.methods.genSelections.call(this) : [];
7325
7444
  },
7326
7445
  onClick(t) {
7327
- !this.isInteractive || (this.selectedIndex > -1 ? this.selectedIndex = -1 : this.onFocus(), this.isAppendInner(t.target) || this.activateMenu());
7446
+ this.isInteractive && (this.selectedIndex > -1 ? this.selectedIndex = -1 : this.onFocus(), this.isAppendInner(t.target) || this.activateMenu());
7328
7447
  },
7329
7448
  onInput(t) {
7330
7449
  if (this.selectedIndex > -1 || !t.target)
@@ -7437,6 +7556,8 @@ const vc = d(x, Bt(["left", "bottom"]), $, Z, li).extend({
7437
7556
  isRtl() {
7438
7557
  return this.$vuetify.rtl;
7439
7558
  },
7559
+ // Default fallback if offsetX
7560
+ // or offsetY are undefined.
7440
7561
  offset() {
7441
7562
  return this.overlap ? this.dot ? 8 : 12 : this.dot ? 2 : 4;
7442
7563
  },
@@ -7563,7 +7684,7 @@ const kt = v.extend({
7563
7684
  };
7564
7685
  },
7565
7686
  hasIcon() {
7566
- return Boolean(this.icon || this.$slots.icon);
7687
+ return !!(this.icon || this.$slots.icon);
7567
7688
  },
7568
7689
  isSticky() {
7569
7690
  return this.sticky || this.app;
@@ -7580,6 +7701,7 @@ const kt = v.extend({
7580
7701
  }
7581
7702
  },
7582
7703
  methods: {
7704
+ /** @public */
7583
7705
  toggle() {
7584
7706
  this.isActive = !this.isActive;
7585
7707
  },
@@ -7615,7 +7737,7 @@ const kt = v.extend({
7615
7737
  const t = b(this, "actions", {
7616
7738
  dismiss: () => this.isActive = !1
7617
7739
  });
7618
- if (!!t)
7740
+ if (t)
7619
7741
  return this.$createElement("div", {
7620
7742
  staticClass: "v-banner__actions"
7621
7743
  }, t);
@@ -7658,6 +7780,7 @@ const Pt = P.extend({
7658
7780
  }
7659
7781
  },
7660
7782
  methods: {
7783
+ // Isn't being passed down through types
7661
7784
  genData: P.options.methods.genData
7662
7785
  }
7663
7786
  }), bc = d(
@@ -7668,6 +7791,7 @@ const Pt = P.extend({
7668
7791
  qt,
7669
7792
  de,
7670
7793
  $
7794
+ /* @vue/component */
7671
7795
  ).extend({
7672
7796
  name: "v-bottom-navigation",
7673
7797
  props: {
@@ -7743,7 +7867,7 @@ const Pt = P.extend({
7743
7867
  style: this.styles,
7744
7868
  props: {
7745
7869
  activeClass: this.activeClass,
7746
- mandatory: Boolean(this.mandatory || this.value !== void 0),
7870
+ mandatory: !!(this.mandatory || this.value !== void 0),
7747
7871
  tag: this.tag,
7748
7872
  value: this.internalValue
7749
7873
  },
@@ -7839,7 +7963,7 @@ const vo = d(x, $, Z).extend({
7839
7963
  },
7840
7964
  watch: {
7841
7965
  hideOverlay(t) {
7842
- !this.isActive || (t ? this.removeOverlay() : this.genOverlay());
7966
+ this.isActive && (t ? this.removeOverlay() : this.genOverlay());
7843
7967
  }
7844
7968
  },
7845
7969
  beforeDestroy() {
@@ -7862,9 +7986,10 @@ const vo = d(x, $, Z).extend({
7862
7986
  genOverlay() {
7863
7987
  if (this.hideScroll(), !this.hideOverlay)
7864
7988
  return this.overlay || this.createOverlay(), this.animationFrame = requestAnimationFrame(() => {
7865
- !this.overlay || (this.activeZIndex !== void 0 ? this.overlay.zIndex = String(this.activeZIndex - 1) : this.$el && (this.overlay.zIndex = Vt(this.$el)), this.overlay.value = !0);
7989
+ this.overlay && (this.activeZIndex !== void 0 ? this.overlay.zIndex = String(this.activeZIndex - 1) : this.$el && (this.overlay.zIndex = Vt(this.$el)), this.overlay.value = !0);
7866
7990
  }), !0;
7867
7991
  },
7992
+ /** removeOverlay(false) will not restore the scollbar afterwards */
7868
7993
  removeOverlay(t = !0) {
7869
7994
  this.overlay && (ti(this.overlay.$el, "transitionend", () => {
7870
7995
  !this.overlay || !this.overlay.$el || !this.overlay.$el.parentNode || this.overlay.value || this.isActive || (this.overlay.$el.parentNode.removeChild(this.overlay.$el), this.overlay.$destroy(), this.overlay = null);
@@ -7872,7 +7997,8 @@ const vo = d(x, $, Z).extend({
7872
7997
  },
7873
7998
  scrollListener(t) {
7874
7999
  if ("key" in t) {
7875
- if (["INPUT", "TEXTAREA", "SELECT"].includes(t.target.tagName) || t.target.isContentEditable)
8000
+ if (["INPUT", "TEXTAREA", "SELECT"].includes(t.target.tagName) || // https://github.com/vuetifyjs/vuetify/issues/4715
8001
+ t.target.isContentEditable)
7876
8002
  return;
7877
8003
  const e = [m.up, m.pageup], i = [m.down, m.pagedown];
7878
8004
  if (e.includes(t.keyCode))
@@ -7981,7 +8107,7 @@ const vo = d(x, $, Z).extend({
7981
8107
  };
7982
8108
  },
7983
8109
  hasActivator() {
7984
- return Boolean(!!this.$slots.activator || !!this.$scopedSlots.activator);
8110
+ return !!(this.$slots.activator || this.$scopedSlots.activator);
7985
8111
  }
7986
8112
  },
7987
8113
  watch: {
@@ -7990,7 +8116,7 @@ const vo = d(x, $, Z).extend({
7990
8116
  t ? (this.show(), this.hideScroll()) : (this.removeOverlay(), this.unbind(), (e = this.previousActiveElement) === null || e === void 0 || e.focus());
7991
8117
  },
7992
8118
  fullscreen(t) {
7993
- !this.isActive || (t ? (this.hideScroll(), this.removeOverlay(!1)) : (this.showScroll(), this.genOverlay()));
8119
+ this.isActive && (t ? (this.hideScroll(), this.removeOverlay(!1)) : (this.showScroll(), this.genOverlay()));
7994
8120
  }
7995
8121
  },
7996
8122
  created() {
@@ -8045,11 +8171,17 @@ const vo = d(x, $, Z).extend({
8045
8171
  }
8046
8172
  this.$emit("keydown", t);
8047
8173
  },
8174
+ // On focus change, wrap focus to stay inside the dialog
8175
+ // https://github.com/vuetifyjs/vuetify/issues/6892
8048
8176
  onFocusin(t) {
8049
8177
  if (!t || !this.retainFocus)
8050
8178
  return;
8051
8179
  const e = t.target;
8052
- if (!!e && this.$refs.dialog && ![document, this.$refs.dialog].includes(e) && !this.$refs.dialog.contains(e) && this.activeZIndex >= this.getMaxZIndex() && !this.getOpenDependentElements().some((i) => i.contains(e))) {
8180
+ if (e && this.$refs.dialog && // It isn't the document or the dialog body
8181
+ ![document, this.$refs.dialog].includes(e) && // It isn't inside the dialog body
8182
+ !this.$refs.dialog.contains(e) && // We're the topmost dialog
8183
+ this.activeZIndex >= this.getMaxZIndex() && // It isn't inside a dependent element (like a menu)
8184
+ !this.getOpenDependentElements().some((i) => i.contains(e))) {
8053
8185
  const s = [...this.$refs.dialog.querySelectorAll('button, [href], input:not([type="hidden"]), select, textarea, [tabindex]:not([tabindex="-1"])')].find((n) => !n.hasAttribute("disabled") && !n.matches('[tabindex="-1"]'));
8054
8186
  s && s.focus();
8055
8187
  }
@@ -8147,6 +8279,8 @@ const vo = d(x, $, Z).extend({
8147
8279
  const bo = d(N).extend({
8148
8280
  name: "v-breadcrumbs-item",
8149
8281
  props: {
8282
+ // In a breadcrumb, the currently
8283
+ // active item should be dimmed
8150
8284
  activeClass: {
8151
8285
  type: String,
8152
8286
  default: "v-breadcrumbs__item--disabled"
@@ -8179,6 +8313,7 @@ const bo = d(N).extend({
8179
8313
  }
8180
8314
  }), $o = F("v-breadcrumbs__divider", "li"), xc = d(
8181
8315
  $
8316
+ /* @vue/component */
8182
8317
  ).extend({
8183
8318
  name: "v-breadcrumbs",
8184
8319
  props: {
@@ -8544,7 +8679,7 @@ function zo(t) {
8544
8679
  }
8545
8680
  function re(t) {
8546
8681
  const e = `${pt(t.hour, 2)}:${pt(t.minute, 2)}`, i = t.date;
8547
- return new Date(`${i}T${e}:00+00:00`);
8682
+ return /* @__PURE__ */ new Date(`${i}T${e}:00+00:00`);
8548
8683
  }
8549
8684
  function pe(t, e, i, s, n = 42, r = 0) {
8550
8685
  const a = V(e), o = [];
@@ -8615,7 +8750,7 @@ const Wo = v.extend({
8615
8750
  this.updateDay(t, this.times.now), this.updateTime(t, this.times.now), this.updateDay(t, this.times.today);
8616
8751
  },
8617
8752
  getNow() {
8618
- return bi(new Date());
8753
+ return bi(/* @__PURE__ */ new Date());
8619
8754
  },
8620
8755
  updateDay(t, e) {
8621
8756
  t.date !== e.date && (e.year = t.year, e.month = t.month, e.day = t.day, e.weekday = t.weekday, e.date = t.date);
@@ -8833,7 +8968,7 @@ const ss = 100, sl = (t, e, i) => {
8833
8968
  start: {
8834
8969
  type: [String, Number, Date],
8835
8970
  validate: Ht,
8836
- default: () => bi(new Date()).date
8971
+ default: () => bi(/* @__PURE__ */ new Date()).date
8837
8972
  },
8838
8973
  end: {
8839
8974
  type: [String, Number, Date],
@@ -9069,6 +9204,7 @@ const xi = d(
9069
9204
  xo,
9070
9205
  $,
9071
9206
  Wo
9207
+ /* @vue/component */
9072
9208
  ).extend({
9073
9209
  name: "calendar-base",
9074
9210
  directives: {
@@ -10395,7 +10531,7 @@ const xt = P.extend({
10395
10531
  return `v-window-${t}${i}-transition`;
10396
10532
  },
10397
10533
  hasActiveItems() {
10398
- return Boolean(this.items.find((t) => !t.disabled));
10534
+ return !!this.items.find((t) => !t.disabled);
10399
10535
  },
10400
10536
  hasNext() {
10401
10537
  return this.continuous || this.internalIndex < this.items.length - 1;
@@ -10564,6 +10700,7 @@ const xt = P.extend({
10564
10700
  default: void 0
10565
10701
  }
10566
10702
  },
10703
+ // pass down the parent's theme
10567
10704
  provide() {
10568
10705
  return {
10569
10706
  parentTheme: this.theme
@@ -10666,7 +10803,7 @@ const xt = P.extend({
10666
10803
  this.slideTimeout && clearTimeout(this.slideTimeout), this.slideTimeout = void 0, window.requestAnimationFrame(this.startTimeout);
10667
10804
  },
10668
10805
  startTimeout() {
10669
- !this.cycle || (this.slideTimeout = window.setTimeout(this.next, +this.interval > 0 ? +this.interval : 6e3));
10806
+ this.cycle && (this.slideTimeout = window.setTimeout(this.next, +this.interval > 0 ? +this.interval : 6e3));
10670
10807
  }
10671
10808
  },
10672
10809
  render(t) {
@@ -10722,7 +10859,7 @@ const xt = P.extend({
10722
10859
  }, this.genDefaultSlot());
10723
10860
  },
10724
10861
  onAfterTransition() {
10725
- !this.inTransition || (this.inTransition = !1, this.windowGroup.transitionCount > 0 && (this.windowGroup.transitionCount--, this.windowGroup.transitionCount === 0 && (this.windowGroup.transitionHeight = void 0)));
10862
+ this.inTransition && (this.inTransition = !1, this.windowGroup.transitionCount > 0 && (this.windowGroup.transitionCount--, this.windowGroup.transitionCount === 0 && (this.windowGroup.transitionHeight = void 0)));
10726
10863
  },
10727
10864
  onBeforeTransition() {
10728
10865
  this.inTransition || (this.inTransition = !0, this.windowGroup.transitionCount === 0 && (this.windowGroup.transitionHeight = p(this.windowGroup.$el.clientHeight)), this.windowGroup.transitionCount++);
@@ -10731,7 +10868,7 @@ const xt = P.extend({
10731
10868
  this.onAfterTransition();
10732
10869
  },
10733
10870
  onEnter(t) {
10734
- !this.inTransition || this.$nextTick(() => {
10871
+ this.inTransition && this.$nextTick(() => {
10735
10872
  !this.computedTransition || !this.inTransition || (this.windowGroup.transitionHeight = p(t.clientHeight));
10736
10873
  });
10737
10874
  }
@@ -10742,12 +10879,15 @@ const xt = P.extend({
10742
10879
  name: this.computedTransition
10743
10880
  },
10744
10881
  on: {
10882
+ // Handlers for enter windows.
10745
10883
  beforeEnter: this.onBeforeTransition,
10746
10884
  afterEnter: this.onAfterTransition,
10747
10885
  enterCancelled: this.onTransitionCancelled,
10886
+ // Handlers for leave windows.
10748
10887
  beforeLeave: this.onBeforeTransition,
10749
10888
  afterLeave: this.onAfterTransition,
10750
10889
  leaveCancelled: this.onTransitionCancelled,
10890
+ // Enter handler for height transition.
10751
10891
  enter: this.onEnter
10752
10892
  }
10753
10893
  }, this.showLazyContent(() => [this.genWindowItem()]));
@@ -10761,6 +10901,7 @@ const xt = P.extend({
10761
10901
  }
10762
10902
  }
10763
10903
  },
10904
+ // pass down the parent's theme
10764
10905
  provide() {
10765
10906
  return {
10766
10907
  theme: this.parentTheme
@@ -10843,7 +10984,7 @@ const Nt = d(I, Si, fi).extend({
10843
10984
  },
10844
10985
  computed: {
10845
10986
  computedColor() {
10846
- if (!!this.isActive)
10987
+ if (this.isActive)
10847
10988
  return this.color ? this.color : this.isDark && !this.appIsDark ? "white" : "primary";
10848
10989
  },
10849
10990
  isMultiple() {
@@ -10851,7 +10992,7 @@ const Nt = d(I, Si, fi).extend({
10851
10992
  },
10852
10993
  isActive() {
10853
10994
  const t = this.value, e = this.internalValue;
10854
- return this.isMultiple ? Array.isArray(e) ? e.some((i) => this.valueComparator(i, t)) : !1 : this.trueValue === void 0 || this.falseValue === void 0 ? t ? this.valueComparator(t, e) : Boolean(e) : this.valueComparator(e, this.trueValue);
10995
+ return this.isMultiple ? Array.isArray(e) ? e.some((i) => this.valueComparator(i, t)) : !1 : this.trueValue === void 0 || this.falseValue === void 0 ? t ? this.valueComparator(t, e) : !!e : this.valueComparator(e, this.trueValue);
10855
10996
  },
10856
10997
  isDirty() {
10857
10998
  return this.isActive;
@@ -10869,6 +11010,7 @@ const Nt = d(I, Si, fi).extend({
10869
11010
  genLabel() {
10870
11011
  const t = I.options.methods.genLabel.call(this);
10871
11012
  return t && (t.data.on = {
11013
+ // Label shouldn't cause the input to focus
10872
11014
  click: Ze
10873
11015
  }, t);
10874
11016
  },
@@ -10917,6 +11059,7 @@ const Nt = d(I, Si, fi).extend({
10917
11059
  onBlur(t) {
10918
11060
  this.isFocused = !1, this.$emit("blur", t);
10919
11061
  },
11062
+ /** @abstract */
10920
11063
  onKeydown(t) {
10921
11064
  }
10922
11065
  }
@@ -10954,6 +11097,9 @@ const Nt = d(I, Si, fi).extend({
10954
11097
  computedIcon() {
10955
11098
  return this.inputIndeterminate ? this.indeterminateIcon : this.isActive ? this.onIcon : this.offIcon;
10956
11099
  },
11100
+ // Do not return undefined if disabled,
11101
+ // according to spec, should still show
11102
+ // a color when disabled and active
10957
11103
  validationState() {
10958
11104
  if (!(this.isDisabled && !this.inputIndeterminate)) {
10959
11105
  if (this.hasError && this.shouldValidate)
@@ -10973,7 +11119,7 @@ const Nt = d(I, Si, fi).extend({
10973
11119
  this.$emit("update:indeterminate", t);
10974
11120
  },
10975
11121
  isActive() {
10976
- !this.indeterminate || (this.inputIndeterminate = !1);
11122
+ this.indeterminate && (this.inputIndeterminate = !1);
10977
11123
  }
10978
11124
  },
10979
11125
  methods: {
@@ -11107,6 +11253,9 @@ const nt = d(P, kt).extend({
11107
11253
  },
11108
11254
  watch: {
11109
11255
  internalValue: "setWidths",
11256
+ // When overflow changes, the arrows alter
11257
+ // the widths of the content and wrapper
11258
+ // and need to be recalculated
11110
11259
  isOverflowing: "setWidths",
11111
11260
  scrollOffset(t) {
11112
11261
  this.$vuetify.rtl && (t = -t);
@@ -11138,7 +11287,7 @@ const nt = d(P, kt).extend({
11138
11287
  this.$refs.wrapper.scrollLeft = 0;
11139
11288
  },
11140
11289
  onFocusin(t) {
11141
- if (!!this.isOverflowing) {
11290
+ if (this.isOverflowing) {
11142
11291
  for (const e of As(t))
11143
11292
  for (const i of this.items)
11144
11293
  if (i.$el === e) {
@@ -11147,6 +11296,7 @@ const nt = d(P, kt).extend({
11147
11296
  }
11148
11297
  }
11149
11298
  },
11299
+ // Always generate next for scrollable hint
11150
11300
  genNext() {
11151
11301
  const t = this.$scopedSlots.next ? this.$scopedSlots.next({}) : this.$slots.next || this.__cachedNext;
11152
11302
  return this.$createElement("div", {
@@ -11188,6 +11338,7 @@ const nt = d(P, kt).extend({
11188
11338
  }
11189
11339
  }, this[`${e}Icon`]);
11190
11340
  },
11341
+ // Always generate prev for scrollable hint
11191
11342
  genPrev() {
11192
11343
  const t = this.$scopedSlots.prev ? this.$scopedSlots.prev({}) : this.$slots.prev || this.__cachedPrev;
11193
11344
  return this.$createElement("div", {
@@ -11238,7 +11389,7 @@ const nt = d(P, kt).extend({
11238
11389
  this.startX = this.scrollOffset + t.touchstartX, e.style.setProperty("transition", "none"), e.style.setProperty("willChange", "transform");
11239
11390
  },
11240
11391
  onTouchMove(t) {
11241
- if (!!this.canTouch) {
11392
+ if (this.canTouch) {
11242
11393
  if (!this.isSwiping) {
11243
11394
  const e = t.touchmoveX - t.touchstartX, i = t.touchmoveY - t.touchstartY;
11244
11395
  this.isSwipingHorizontal = Math.abs(e) > Math.abs(i), this.isSwiping = !0;
@@ -11263,10 +11414,11 @@ const nt = d(P, kt).extend({
11263
11414
  const t = this.items[this.items.length - 1].$el.getBoundingClientRect(), e = this.$refs.wrapper.getBoundingClientRect();
11264
11415
  (this.$vuetify.rtl && e.right < t.right || !this.$vuetify.rtl && e.left > t.left) && this.scrollTo("prev");
11265
11416
  }
11266
- !this.selectedItem || (this.selectedIndex === 0 || !this.centerActive && !this.isOverflowing ? this.scrollOffset = 0 : this.centerActive ? this.scrollOffset = yl(this.selectedItem.$el, this.widths, this.$vuetify.rtl) : this.isOverflowing && (this.scrollOffset = as(this.selectedItem.$el, this.widths, this.$vuetify.rtl, this.scrollOffset)));
11417
+ this.selectedItem && (this.selectedIndex === 0 || !this.centerActive && !this.isOverflowing ? this.scrollOffset = 0 : this.centerActive ? this.scrollOffset = yl(this.selectedItem.$el, this.widths, this.$vuetify.rtl) : this.isOverflowing && (this.scrollOffset = as(this.selectedItem.$el, this.widths, this.$vuetify.rtl, this.scrollOffset)));
11267
11418
  },
11268
11419
  scrollTo(t) {
11269
11420
  this.scrollOffset = this.calculateNewOffset(t, {
11421
+ // Force reflow
11270
11422
  content: this.$refs.content ? this.$refs.content.clientWidth : 0,
11271
11423
  wrapper: this.$refs.wrapper ? this.$refs.wrapper.clientWidth : 0
11272
11424
  }, this.$vuetify.rtl, this.scrollOffset);
@@ -11331,6 +11483,7 @@ const nt = d(P, kt).extend({
11331
11483
  const oe = d(
11332
11484
  I,
11333
11485
  wt
11486
+ /* @vue/component */
11334
11487
  ).extend({
11335
11488
  name: "v-slider",
11336
11489
  directives: {
@@ -11523,6 +11676,7 @@ const oe = d(
11523
11676
  tabindex: -1,
11524
11677
  ...this.$attrs
11525
11678
  }
11679
+ // on: this.genListeners(), // TODO: do we need to attach the listeners to input?
11526
11680
  });
11527
11681
  },
11528
11682
  genTrackContainer() {
@@ -12520,6 +12674,7 @@ const Gl = Ci("#FFFFFF").rgba, Ul = Ci("#000000").rgba, Xl = d($).extend({
12520
12674
  return this.$createElement("div", {
12521
12675
  staticClass: "v-color-picker__color",
12522
12676
  on: {
12677
+ // TODO: Less hacky way of catching transparent
12523
12678
  click: () => this.disabled || this.$emit("update:color", Ci(t === "transparent" ? "#00000000" : t))
12524
12679
  }
12525
12680
  }, [e]);
@@ -12783,6 +12938,8 @@ const os = jt.extend({
12783
12938
  onChipInput(t) {
12784
12939
  B.options.methods.onChipInput.call(this, t), this.editingIndex = -1;
12785
12940
  },
12941
+ // Requires a manual definition
12942
+ // to overwrite removal in v-autocomplete
12786
12943
  onEnterDown(t) {
12787
12944
  t.preventDefault(), !(this.getMenuIndex() > -1) && this.$nextTick(this.updateSelf);
12788
12945
  },
@@ -12816,7 +12973,7 @@ const os = jt.extend({
12816
12973
  updateCombobox() {
12817
12974
  if (!this.searchIsDirty)
12818
12975
  return;
12819
- this.internalSearch !== this.getText(this.internalValue) && this.setValue(), (Boolean(this.$scopedSlots.selection) || this.hasChips) && (this.internalSearch = null);
12976
+ this.internalSearch !== this.getText(this.internalValue) && this.setValue(), (!!this.$scopedSlots.selection || this.hasChips) && (this.internalSearch = null);
12820
12977
  },
12821
12978
  updateSelf() {
12822
12979
  this.multiple ? this.updateTags() : this.updateCombobox();
@@ -13267,7 +13424,7 @@ const Hn = v.extend({
13267
13424
  })]));
13268
13425
  },
13269
13426
  genPaginationInfo() {
13270
- let t = ["\u2013"];
13427
+ let t = [""];
13271
13428
  const e = this.pagination.itemsLength;
13272
13429
  let i = this.pagination.pageStart, s = this.pagination.pageStop;
13273
13430
  return this.pagination.itemsLength && this.pagination.itemsPerPage ? (i = this.pagination.pageStart + 1, s = e < this.pagination.pageStop || this.pagination.pageStop < 0 ? e : this.pagination.pageStop, t = this.$scopedSlots["page-text"] ? [this.$scopedSlots["page-text"]({
@@ -13288,12 +13445,15 @@ const Hn = v.extend({
13288
13445
  disabled: e || this.disablePagination,
13289
13446
  icon: !0,
13290
13447
  text: !0
13448
+ // dark: this.dark, // TODO: add mixin
13449
+ // light: this.light // TODO: add mixin
13291
13450
  },
13292
13451
  on: {
13293
13452
  click: t
13294
13453
  },
13295
13454
  attrs: {
13296
13455
  "aria-label": i
13456
+ // TODO: Localization
13297
13457
  }
13298
13458
  }, [this.$createElement(w, s)]);
13299
13459
  },
@@ -13573,6 +13733,7 @@ const Hn = v.extend({
13573
13733
  }
13574
13734
  });
13575
13735
  const wi = d().extend({
13736
+ // https://github.com/vuejs/vue/issues/6872
13576
13737
  directives: {
13577
13738
  ripple: R
13578
13739
  },
@@ -13954,6 +14115,7 @@ function sh(t, e, i, s, n) {
13954
14115
  }
13955
14116
  const Pc = d(ls, wt).extend({
13956
14117
  name: "v-data-table",
14118
+ // https://github.com/vuejs/vue/issues/6872
13957
14119
  directives: {
13958
14120
  ripple: R
13959
14121
  },
@@ -13966,6 +14128,8 @@ const Pc = d(ls, wt).extend({
13966
14128
  checkboxColor: String,
13967
14129
  showExpand: Boolean,
13968
14130
  showGroupBy: Boolean,
14131
+ // TODO: Fix
14132
+ // virtualRows: Boolean,
13969
14133
  height: [Number, String],
13970
14134
  hideDefaultHeader: Boolean,
13971
14135
  caption: String,
@@ -14317,6 +14481,8 @@ const Pc = d(ls, wt).extend({
14317
14481
  },
14318
14482
  scopedSlots: s,
14319
14483
  on: {
14484
+ // TODO: for click, the first argument should be the event, and the second argument should be data,
14485
+ // but this is a breaking change so it's for v3
14320
14486
  click: () => this.$emit("click:row", t, n),
14321
14487
  contextmenu: (r) => this.$emit("contextmenu:row", r, n),
14322
14488
  dblclick: (r) => this.$emit("dblclick:row", r, n)
@@ -14643,6 +14809,7 @@ const ki = d(x).extend({
14643
14809
  }
14644
14810
  }), rh = d(
14645
14811
  ki
14812
+ /* @vue/component */
14646
14813
  ).extend({
14647
14814
  name: "v-date-picker-title",
14648
14815
  props: {
@@ -14730,7 +14897,7 @@ function ht(t, e, i = {
14730
14897
  };
14731
14898
  try {
14732
14899
  const n = new Intl.DateTimeFormat(t || void 0, e);
14733
- return (r) => n.format(new Date(`${s(r)}T00:00:00+00:00`));
14900
+ return (r) => n.format(/* @__PURE__ */ new Date(`${s(r)}T00:00:00+00:00`));
14734
14901
  } catch {
14735
14902
  return i.start || i.length ? (r) => s(r).substr(i.start || 0, i.length) : void 0;
14736
14903
  }
@@ -14749,6 +14916,7 @@ const zn = (t, e) => {
14749
14916
  x,
14750
14917
  Zt,
14751
14918
  $
14919
+ /* @vue/component */
14752
14920
  ).extend({
14753
14921
  name: "v-date-picker-header",
14754
14922
  props: {
@@ -14862,6 +15030,7 @@ const Wn = d(
14862
15030
  x,
14863
15031
  Zt,
14864
15032
  $
15033
+ /* @vue/component */
14865
15034
  ).extend({
14866
15035
  directives: {
14867
15036
  Touch: Et
@@ -14940,7 +15109,7 @@ const Wn = d(
14940
15109
  genButton(t, e, i, s, n = !1) {
14941
15110
  const r = Rn(t, this.min, this.max, this.allowedDates), a = this.isSelected(t) && r, o = t === this.current, l = a ? this.setBackgroundColor : this.setTextColor, h = (a || o) && (this.color || "accent");
14942
15111
  let c = !1, u = !1;
14943
- return this.range && !!this.value && Array.isArray(this.value) && (c = t === this.value[0], u = t === this.value[this.value.length - 1]), this.$createElement("button", l(h, {
15112
+ return this.range && this.value && Array.isArray(this.value) && (c = t === this.value[0], u = t === this.value[this.value.length - 1]), this.$createElement("button", l(h, {
14944
15113
  staticClass: "v-btn",
14945
15114
  class: this.genButtonClasses(r && !n, e, a, o, c, u),
14946
15115
  attrs: {
@@ -15019,6 +15188,7 @@ const Wn = d(
15019
15188
  }
15020
15189
  }), lh = d(
15021
15190
  Wn
15191
+ /* @vue/component */
15022
15192
  ).extend({
15023
15193
  name: "v-date-picker-date-table",
15024
15194
  props: {
@@ -15063,8 +15233,9 @@ const Wn = d(
15063
15233
  const t = this.weekDays.map((e) => this.$createElement("th", e));
15064
15234
  return this.showWeek && t.unshift(this.$createElement("th")), this.$createElement("thead", this.genTR(t));
15065
15235
  },
15236
+ // Returns number of the days from the firstDayOfWeek to the first day of the current month
15066
15237
  weekDaysBeforeFirstDayOfTheMonth() {
15067
- return (new Date(`${this.displayedYear}-${C(this.displayedMonth + 1)}-01T00:00:00+00:00`).getUTCDay() - parseInt(this.firstDayOfWeek) + 7) % 7;
15238
+ return ((/* @__PURE__ */ new Date(`${this.displayedYear}-${C(this.displayedMonth + 1)}-01T00:00:00+00:00`)).getUTCDay() - parseInt(this.firstDayOfWeek) + 7) % 7;
15068
15239
  },
15069
15240
  getWeekNumber(t) {
15070
15241
  return yn(this.displayedYear, this.displayedMonth, t, parseInt(this.firstDayOfWeek), parseInt(this.localeFirstDayOfYear));
@@ -15074,6 +15245,7 @@ const Wn = d(
15074
15245
  staticClass: "v-date-picker-table--date__week"
15075
15246
  }, String(t).padStart(2, "0"))]);
15076
15247
  },
15248
+ // eslint-disable-next-line max-statements
15077
15249
  genTBody() {
15078
15250
  const t = [], e = new Date(this.displayedYear, this.displayedMonth + 1, 0).getDate();
15079
15251
  let i = [], s = this.weekDaysBeforeFirstDayOfTheMonth();
@@ -15104,6 +15276,7 @@ const Wn = d(
15104
15276
  }
15105
15277
  }), hh = d(
15106
15278
  Wn
15279
+ /* @vue/component */
15107
15280
  ).extend({
15108
15281
  name: "v-date-picker-month-table",
15109
15282
  computed: {
@@ -15144,6 +15317,7 @@ const Wn = d(
15144
15317
  const ch = d(
15145
15318
  x,
15146
15319
  Zt
15320
+ /* @vue/component */
15147
15321
  ).extend({
15148
15322
  name: "v-date-picker-years",
15149
15323
  props: {
@@ -15188,7 +15362,7 @@ const ch = d(
15188
15362
  }), e);
15189
15363
  },
15190
15364
  genYearItems() {
15191
- const t = [], e = this.value ? parseInt(this.value, 10) : new Date().getFullYear(), i = this.max ? parseInt(this.max, 10) : e + 100, s = Math.min(i, this.min ? parseInt(this.min, 10) : e - 100);
15365
+ const t = [], e = this.value ? parseInt(this.value, 10) : (/* @__PURE__ */ new Date()).getFullYear(), i = this.max ? parseInt(this.max, 10) : e + 100, s = Math.min(i, this.min ? parseInt(this.min, 10) : e - 100);
15192
15366
  for (let n = i; n >= s; n--)
15193
15367
  t.push(this.genYearItem(n));
15194
15368
  return t;
@@ -15276,6 +15450,7 @@ const uh = d(x, At, $).extend({
15276
15450
  x,
15277
15451
  At,
15278
15452
  $
15453
+ /* @vue/component */
15279
15454
  ).extend({
15280
15455
  name: "picker",
15281
15456
  props: {
@@ -15332,6 +15507,7 @@ const uh = d(x, At, $).extend({
15332
15507
  props: {
15333
15508
  activePicker: String,
15334
15509
  allowedDates: Function,
15510
+ // Function formatting the day in date picker table
15335
15511
  dayFormat: Function,
15336
15512
  disabled: Boolean,
15337
15513
  events: {
@@ -15346,6 +15522,7 @@ const uh = d(x, At, $).extend({
15346
15522
  type: [String, Number],
15347
15523
  default: 0
15348
15524
  },
15525
+ // Function formatting the tableDate in the day/month table header
15349
15526
  headerDateFormat: Function,
15350
15527
  localeFirstDayOfYear: {
15351
15528
  type: [String, Number],
@@ -15353,6 +15530,7 @@ const uh = d(x, At, $).extend({
15353
15530
  },
15354
15531
  max: String,
15355
15532
  min: String,
15533
+ // Function formatting month in the months table
15356
15534
  monthFormat: Function,
15357
15535
  multiple: Boolean,
15358
15536
  nextIcon: {
@@ -15394,19 +15572,22 @@ const uh = d(x, At, $).extend({
15394
15572
  },
15395
15573
  showAdjacentMonths: Boolean,
15396
15574
  showWeek: Boolean,
15575
+ // Function formatting currently selected date in the picker title
15397
15576
  titleDateFormat: Function,
15398
15577
  type: {
15399
15578
  type: String,
15400
15579
  default: "date",
15401
15580
  validator: (t) => ["date", "month"].includes(t)
15581
+ // TODO: year
15402
15582
  },
15403
15583
  value: [Array, String],
15404
15584
  weekdayFormat: Function,
15585
+ // Function formatting the year in table header and pickup title
15405
15586
  yearFormat: Function,
15406
15587
  yearIcon: String
15407
15588
  },
15408
15589
  data() {
15409
- const t = new Date();
15590
+ const t = /* @__PURE__ */ new Date();
15410
15591
  return {
15411
15592
  internalActivePicker: this.type.toUpperCase(),
15412
15593
  inputDay: null,
@@ -15414,6 +15595,7 @@ const uh = d(x, At, $).extend({
15414
15595
  inputYear: null,
15415
15596
  isReversing: !1,
15416
15597
  now: t,
15598
+ // tableDate is a string in 'YYYY' / 'YYYY-M' format (leading zero for month is not required)
15417
15599
  tableDate: (() => {
15418
15600
  if (this.pickerDate)
15419
15601
  return this.pickerDate;
@@ -15747,6 +15929,7 @@ const Rc = P.extend({
15747
15929
  }), Wc = d(
15748
15930
  tt("expansionPanels", "v-expansion-panel", "v-expansion-panels"),
15749
15931
  ke("expansionPanel", !0)
15932
+ /* @vue/component */
15750
15933
  ).extend({
15751
15934
  name: "v-expansion-panel",
15752
15935
  props: {
@@ -16078,7 +16261,7 @@ const Gc = L.extend({
16078
16261
  genSelections() {
16079
16262
  const t = [];
16080
16263
  return this.isDirty && this.$scopedSlots.selection ? this.internalArrayValue.forEach((e, i) => {
16081
- !this.$scopedSlots.selection || t.push(this.$scopedSlots.selection({
16264
+ this.$scopedSlots.selection && t.push(this.$scopedSlots.selection({
16082
16265
  text: this.text[i],
16083
16266
  file: e,
16084
16267
  index: i
@@ -16111,7 +16294,7 @@ const Gc = L.extend({
16111
16294
  if (t.length < Number(this.truncateLength))
16112
16295
  return t;
16113
16296
  const e = Math.floor((Number(this.truncateLength) - 1) / 2);
16114
- return `${t.slice(0, e)}\u2026${t.slice(t.length - e)}`;
16297
+ return `${t.slice(0, e)}…${t.slice(t.length - e)}`;
16115
16298
  }
16116
16299
  }
16117
16300
  });
@@ -16143,19 +16326,19 @@ const Uc = d(_, Yt("footer", ["height", "inset"]), jt).extend({
16143
16326
  };
16144
16327
  },
16145
16328
  computedBottom() {
16146
- if (!!this.isPositioned)
16329
+ if (this.isPositioned)
16147
16330
  return this.app ? this.$vuetify.application.bottom : 0;
16148
16331
  },
16149
16332
  computedLeft() {
16150
- if (!!this.isPositioned)
16333
+ if (this.isPositioned)
16151
16334
  return this.app && this.inset ? this.$vuetify.application.left : 0;
16152
16335
  },
16153
16336
  computedRight() {
16154
- if (!!this.isPositioned)
16337
+ if (this.isPositioned)
16155
16338
  return this.app && this.inset ? this.$vuetify.application.right : 0;
16156
16339
  },
16157
16340
  isPositioned() {
16158
- return Boolean(this.absolute || this.fixed || this.app);
16341
+ return !!(this.absolute || this.fixed || this.app);
16159
16342
  },
16160
16343
  styles() {
16161
16344
  const t = parseInt(this.height);
@@ -16185,6 +16368,7 @@ const Uc = d(_, Yt("footer", ["height", "inset"]), jt).extend({
16185
16368
  }), Xc = d(
16186
16369
  Tt,
16187
16370
  ke("form")
16371
+ /* @vue/component */
16188
16372
  ).extend({
16189
16373
  name: "v-form",
16190
16374
  provide() {
@@ -16228,12 +16412,14 @@ const Uc = d(_, Yt("footer", ["height", "inset"]), jt).extend({
16228
16412
  }
16229
16413
  };
16230
16414
  return this.lazyValidation ? i.shouldValidate = t.$watch("shouldValidate", (s) => {
16231
- !s || this.errorBag.hasOwnProperty(t._uid) || (i.valid = e(t));
16415
+ s && (this.errorBag.hasOwnProperty(t._uid) || (i.valid = e(t)));
16232
16416
  }) : i.valid = e(t), i;
16233
16417
  },
16418
+ /** @public */
16234
16419
  validate() {
16235
16420
  return this.inputs.filter((t) => !t.validate(!0)).length === 0;
16236
16421
  },
16422
+ /** @public */
16237
16423
  reset() {
16238
16424
  this.inputs.forEach((t) => t.reset()), this.resetErrorBag();
16239
16425
  },
@@ -16242,6 +16428,7 @@ const Uc = d(_, Yt("footer", ["height", "inset"]), jt).extend({
16242
16428
  this.errorBag = {};
16243
16429
  }, 0);
16244
16430
  },
16431
+ /** @public */
16245
16432
  resetValidation() {
16246
16433
  this.inputs.forEach((t) => t.resetValidation()), this.resetErrorBag();
16247
16434
  },
@@ -16411,6 +16598,7 @@ const ds = /* @__PURE__ */ new Map(), qc = v.extend({
16411
16598
  });
16412
16599
  const l = a.some((h) => h.startsWith("col-"));
16413
16600
  a.push({
16601
+ // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.
16414
16602
  col: !l || !e.cols,
16415
16603
  [`col-${e.cols}`]: e.cols,
16416
16604
  [`offset-${e.offset}`]: e.offset,
@@ -16519,6 +16707,7 @@ const fs = /* @__PURE__ */ new Map(), Zc = v.extend({
16519
16707
  }), Jc = F("spacer", "div", "v-spacer"), Qc = Ii("layout"), tu = Ii("flex"), eu = d(
16520
16708
  Ut,
16521
16709
  Z
16710
+ /* @vue/component */
16522
16711
  ).extend({
16523
16712
  name: "v-hover",
16524
16713
  props: {
@@ -16588,6 +16777,8 @@ const fs = /* @__PURE__ */ new Map(), Zc = v.extend({
16588
16777
  props: {
16589
16778
  options: {
16590
16779
  type: Object,
16780
+ // For more information on types, navigate to:
16781
+ // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API
16591
16782
  default: () => ({
16592
16783
  root: void 0,
16593
16784
  rootMargin: void 0,
@@ -16699,6 +16890,10 @@ const yh = d(Yt("left", ["isActive", "isMobile", "miniVariant", "expandOnHover",
16699
16890
  stackMinZIndex: 6
16700
16891
  }),
16701
16892
  computed: {
16893
+ /**
16894
+ * Used for setting an app value from a dynamic
16895
+ * property. Called from applicationable.js
16896
+ */
16702
16897
  applicationProperty() {
16703
16898
  return this.right ? "right" : "left";
16704
16899
  },
@@ -16783,6 +16978,10 @@ const yh = d(Yt("left", ["isActive", "isMobile", "miniVariant", "expandOnHover",
16783
16978
  isActive(t) {
16784
16979
  this.$emit("input", t);
16785
16980
  },
16981
+ /**
16982
+ * When mobile changes, adjust the active state
16983
+ * only when there has been a previous value
16984
+ */
16786
16985
  isMobile(t, e) {
16787
16986
  !t && this.isActive && !this.temporary && this.removeOverlay(), !(e == null || !this.reactsToResize || !this.reactsToMobile) && (this.isActive = !t);
16788
16987
  },
@@ -16903,6 +17102,9 @@ const yh = d(Yt("left", ["isActive", "isMobile", "miniVariant", "expandOnHover",
16903
17102
  swipeRight(t) {
16904
17103
  this.isActive && !this.right || (this.calculateTouchArea(), !(Math.abs(t.touchendX - t.touchstartX) < 100) && (!this.right && t.touchstartX <= this.touchArea.left ? this.isActive = !0 : this.right && this.isActive && (this.isActive = !1)));
16905
17104
  },
17105
+ /**
17106
+ * Update the application layout
17107
+ */
16906
17108
  updateApplication() {
16907
17109
  if (!this.isActive || this.isMobile || this.temporary || !this.$el)
16908
17110
  return 0;
@@ -16971,6 +17173,7 @@ const bh = d(I), ru = bh.extend().extend({
16971
17173
  requestAnimationFrame(() => this.isBooted = !0);
16972
17174
  },
16973
17175
  methods: {
17176
+ /** @public */
16974
17177
  focus(t, e) {
16975
17178
  this.onFocus(t, e || 0);
16976
17179
  },
@@ -17064,7 +17267,7 @@ const bh = d(I), ru = bh.extend().extend({
17064
17267
  onFocus(t, e) {
17065
17268
  t == null || t.preventDefault(), t == null || t.stopPropagation();
17066
17269
  const i = this.$refs.input, s = this.$refs.input && i[e || 0];
17067
- if (!!s) {
17270
+ if (s) {
17068
17271
  if (document.activeElement !== s)
17069
17272
  return s.focus(), s.select();
17070
17273
  this.isFocused || (this.isFocused = !0, s.select(), t && this.$emit("focus", t));
@@ -17390,6 +17593,7 @@ const $h = v.extend({
17390
17593
  listeners() {
17391
17594
  window.addEventListener("scroll", this.translate, !1), window.addEventListener("resize", this.translate, !1);
17392
17595
  },
17596
+ /** @abstract **/
17393
17597
  objHeight() {
17394
17598
  throw new Error("Not implemented !");
17395
17599
  },
@@ -17429,7 +17633,7 @@ const $h = v.extend({
17429
17633
  methods: {
17430
17634
  init() {
17431
17635
  const t = this.$refs.img;
17432
- !t || (t.complete ? (this.translate(), this.listeners()) : t.addEventListener("load", () => {
17636
+ t && (t.complete ? (this.translate(), this.listeners()) : t.addEventListener("load", () => {
17433
17637
  this.translate(), this.listeners();
17434
17638
  }, !1), this.isBooted = !0);
17435
17639
  },
@@ -17479,6 +17683,9 @@ const Sh = d(P, I), hu = Sh.extend({
17479
17683
  },
17480
17684
  name: String,
17481
17685
  row: Boolean,
17686
+ // If no value set on VRadio
17687
+ // will match valueComparator
17688
+ // force default to null
17482
17689
  value: null
17483
17690
  },
17484
17691
  computed: {
@@ -17587,6 +17794,7 @@ const Ch = d(Tt, x, Si, tt("radioGroup"), $), cu = Ch.extend().extend({
17587
17794
  genLabel() {
17588
17795
  return this.hasLabel ? this.$createElement(mi, {
17589
17796
  on: {
17797
+ // Label shouldn't cause the input to focus
17590
17798
  click: Ze
17591
17799
  },
17592
17800
  attrs: {
@@ -17626,6 +17834,7 @@ const Ch = d(Tt, x, Si, tt("radioGroup"), $), cu = Ch.extend().extend({
17626
17834
  },
17627
17835
  onKeydown: () => {
17628
17836
  }
17837
+ // Override default with noop
17629
17838
  },
17630
17839
  render(t) {
17631
17840
  const e = {
@@ -18033,6 +18242,8 @@ const pu = d(At, vt, $).extend({
18033
18242
  length: i
18034
18243
  }).map(s);
18035
18244
  },
18245
+ // Fix type when this is merged
18246
+ // https://github.com/microsoft/TypeScript/pull/33050
18036
18247
  genStructure(t) {
18037
18248
  let e = [];
18038
18249
  t = t || this.type || "";
@@ -18052,6 +18263,8 @@ const pu = d(At, vt, $).extend({
18052
18263
  props: {
18053
18264
  name: this.transition
18054
18265
  },
18266
+ // Only show transition when
18267
+ // content has been loaded
18055
18268
  on: {
18056
18269
  afterEnter: this.resetStyles,
18057
18270
  beforeEnter: this.onBeforeEnter,
@@ -18073,7 +18286,7 @@ const pu = d(At, vt, $).extend({
18073
18286
  t.style.setProperty("display", "none", "important");
18074
18287
  },
18075
18288
  resetStyles(t) {
18076
- !t._initialStyle || (t.style.display = t._initialStyle.display || "", t.style.transition = t._initialStyle.transition, delete t._initialStyle);
18289
+ t._initialStyle && (t.style.display = t._initialStyle.display || "", t.style.transition = t._initialStyle.transition, delete t._initialStyle);
18077
18290
  }
18078
18291
  },
18079
18292
  render(t) {
@@ -18088,6 +18301,7 @@ const pu = d(At, vt, $).extend({
18088
18301
  }), fu = d(
18089
18302
  tr,
18090
18303
  tt("slideGroup")
18304
+ /* @vue/component */
18091
18305
  ).extend({
18092
18306
  name: "v-slide-item"
18093
18307
  });
@@ -18096,6 +18310,7 @@ const mu = d(
18096
18310
  x,
18097
18311
  Z,
18098
18312
  Bt(["absolute", "bottom", "left", "right", "top"])
18313
+ /* @vue/component */
18099
18314
  ).extend({
18100
18315
  name: "v-snackbar",
18101
18316
  props: {
@@ -18137,9 +18352,13 @@ const mu = d(
18137
18352
  "v-snack--vertical": this.vertical
18138
18353
  };
18139
18354
  },
18355
+ // Text and outlined styles both
18356
+ // use transparent backgrounds
18140
18357
  hasBackground() {
18141
18358
  return !this.text && !this.outlined;
18142
18359
  },
18360
+ // Snackbar is dark by default
18361
+ // override themeable logic.
18143
18362
  isDark() {
18144
18363
  return this.hasBackground ? !this.light : $.options.computed.isDark.call(this);
18145
18364
  },
@@ -18221,7 +18440,8 @@ const mu = d(
18221
18440
  setTimeout() {
18222
18441
  window.clearTimeout(this.activeTimeout);
18223
18442
  const t = Number(this.timeout);
18224
- !this.isActive || [0, -1].includes(t) || (this.activeTimeout = window.setTimeout(() => {
18443
+ !this.isActive || // TODO: remove 0 in v3
18444
+ [0, -1].includes(t) || (this.activeTimeout = window.setTimeout(() => {
18225
18445
  this.isActive = !1;
18226
18446
  }, t));
18227
18447
  }
@@ -18423,7 +18643,7 @@ const gu = d(x).extend({
18423
18643
  };
18424
18644
  },
18425
18645
  hasLabels() {
18426
- return Boolean(this.showLabels || this.labels.length > 0 || this.$scopedSlots.label);
18646
+ return !!(this.showLabels || this.labels.length > 0 || this.$scopedSlots.label);
18427
18647
  },
18428
18648
  parsedLabels() {
18429
18649
  const t = [], e = this._values, i = e.length;
@@ -18493,6 +18713,7 @@ const gu = d(x).extend({
18493
18713
  dominantBaseline: "mathematical",
18494
18714
  fill: "currentColor"
18495
18715
  }
18716
+ // TODO: TS 3.5 is too eager with the array type here
18496
18717
  }, t);
18497
18718
  },
18498
18719
  genPath() {
@@ -18845,6 +19066,8 @@ const Ih = d(_, ke("stepper"), qt), yu = Ih.extend({
18845
19066
  data() {
18846
19067
  return {
18847
19068
  height: 0,
19069
+ // Must be null to allow
19070
+ // previous comparison
18848
19071
  isActive: null,
18849
19072
  isReverse: !1,
18850
19073
  isVertical: this.isVerticalProvided
@@ -18866,7 +19089,7 @@ const Ih = d(_, ke("stepper"), qt), yu = Ih.extend({
18866
19089
  this.height = "auto";
18867
19090
  return;
18868
19091
  }
18869
- !this.isVertical || (this.isActive ? this.enter() : this.leave());
19092
+ this.isVertical && (this.isActive ? this.enter() : this.leave());
18870
19093
  }
18871
19094
  },
18872
19095
  mounted() {
@@ -18942,6 +19165,9 @@ const Cu = Nt.extend({
18942
19165
  role: "switch"
18943
19166
  };
18944
19167
  },
19168
+ // Do not return undefined if disabled,
19169
+ // according to spec, should still show
19170
+ // a color when disabled and active
18945
19171
  validationState() {
18946
19172
  if (this.hasError && this.shouldValidate)
18947
19173
  return "error";
@@ -19011,6 +19237,7 @@ const wu = d(
19011
19237
  Yt("bar", ["height", "window"]),
19012
19238
  x,
19013
19239
  $
19240
+ /* @vue/component */
19014
19241
  ).extend({
19015
19242
  name: "v-system-bar",
19016
19243
  props: {
@@ -19056,6 +19283,7 @@ const Ah = d(
19056
19283
  nt,
19057
19284
  jt,
19058
19285
  $
19286
+ /* @vue/component */
19059
19287
  ).extend({
19060
19288
  name: "v-tabs-bar",
19061
19289
  provide() {
@@ -19069,6 +19297,7 @@ const Ah = d(
19069
19297
  ...nt.options.computed.classes.call(this),
19070
19298
  "v-tabs-bar": !0,
19071
19299
  "v-tabs-bar--is-mobile": this.isMobile,
19300
+ // TODO: Remove this and move to v-slide-group
19072
19301
  "v-tabs-bar--show-arrows": this.showArrows,
19073
19302
  ...this.themeClasses
19074
19303
  };
@@ -19081,7 +19310,7 @@ const Ah = d(
19081
19310
  },
19082
19311
  methods: {
19083
19312
  callSlider() {
19084
- !this.isBooted || this.$emit("call:slider");
19313
+ this.isBooted && this.$emit("call:slider");
19085
19314
  },
19086
19315
  genContent() {
19087
19316
  const t = nt.options.methods.genContent.call(this);
@@ -19367,6 +19596,8 @@ const Ah = d(
19367
19596
  }
19368
19597
  }), Mh = d(
19369
19598
  N,
19599
+ // Must be after routable
19600
+ // to overwrite activeClass
19370
19601
  tt("tabsBar"),
19371
19602
  $
19372
19603
  ), Iu = Mh.extend().extend().extend({
@@ -19506,6 +19737,7 @@ const Vh = d(L), _u = Vh.extend({
19506
19737
  });
19507
19738
  const Au = d(
19508
19739
  $
19740
+ /* @vue/component */
19509
19741
  ).extend({
19510
19742
  name: "v-timeline",
19511
19743
  provide() {
@@ -19537,6 +19769,7 @@ const Au = d(
19537
19769
  }), Lh = d(
19538
19770
  x,
19539
19771
  $
19772
+ /* @vue/component */
19540
19773
  ), Bu = Lh.extend().extend({
19541
19774
  name: "v-timeline-item",
19542
19775
  inject: ["timeline"],
@@ -19621,6 +19854,7 @@ var k;
19621
19854
  })(k || (k = {}));
19622
19855
  const Oh = d(
19623
19856
  ki
19857
+ /* @vue/component */
19624
19858
  ).extend({
19625
19859
  name: "v-time-picker-title",
19626
19860
  props: {
@@ -19670,6 +19904,7 @@ const Oh = d(
19670
19904
  const Ph = d(
19671
19905
  x,
19672
19906
  $
19907
+ /* @vue/component */
19673
19908
  ).extend({
19674
19909
  name: "v-time-picker-clock",
19675
19910
  props: {
@@ -19882,6 +20117,7 @@ const Ph = d(
19882
20117
  }, Du = d(
19883
20118
  Yn,
19884
20119
  ki
20120
+ /* @vue/component */
19885
20121
  ).extend({
19886
20122
  name: "v-time-picker",
19887
20123
  props: {
@@ -20316,6 +20552,7 @@ const zh = d(x, st("treeview")), ir = {
20316
20552
  isLoading: !1,
20317
20553
  isOpen: !1,
20318
20554
  isSelected: !1
20555
+ // Node is selected (checkbox)
20319
20556
  }),
20320
20557
  computed: {
20321
20558
  disabled() {
@@ -20523,6 +20760,7 @@ function nr(t, e, i, s, n, r, a) {
20523
20760
  const Lu = d(
20524
20761
  ke("treeview"),
20525
20762
  $
20763
+ /* @vue/component */
20526
20764
  ).extend({
20527
20765
  name: "v-treeview",
20528
20766
  provide() {
@@ -20552,6 +20790,7 @@ const Lu = d(
20552
20790
  returnObject: {
20553
20791
  type: Boolean,
20554
20792
  default: !1
20793
+ // TODO: Should be true in next major
20555
20794
  },
20556
20795
  search: String,
20557
20796
  value: {
@@ -20611,6 +20850,7 @@ const Lu = d(
20611
20850
  (this.$slots.prepend || this.$slots.append) && D("The prepend and append slots require a slot-scope attribute", this), this.openAll ? this.updateAll(!0) : (this.open.forEach((t) => this.updateOpen(this.returnObject ? g(t, this.itemKey) : t, !0)), this.emitOpen());
20612
20851
  },
20613
20852
  methods: {
20853
+ /** @public */
20614
20854
  updateAll(t) {
20615
20855
  Object.keys(this.nodes).forEach((e) => this.updateOpen(g(this.nodes[e].item, this.itemKey), t)), this.emitOpen();
20616
20856
  },
@@ -20649,7 +20889,7 @@ const Lu = d(
20649
20889
  }
20650
20890
  },
20651
20891
  calculateState(t, e) {
20652
- const i = e[t].children, s = i.reduce((a, o) => (a[0] += +Boolean(e[o].isSelected), a[1] += +Boolean(e[o].isIndeterminate), a), [0, 0]), n = !!i.length && s[0] === i.length, r = !n && (s[0] > 0 || s[1] > 0);
20892
+ const i = e[t].children, s = i.reduce((a, o) => (a[0] += +!!e[o].isSelected, a[1] += +!!e[o].isIndeterminate, a), [0, 0]), n = !!i.length && s[0] === i.length, r = !n && (s[0] > 0 || s[1] > 0);
20653
20893
  return {
20654
20894
  isSelected: n,
20655
20895
  isIndeterminate: r
@@ -20704,7 +20944,7 @@ const Lu = d(
20704
20944
  this.nodes[s].isActive = !1, this.updateVnodeState(s), this.activeCache.delete(s);
20705
20945
  });
20706
20946
  const i = this.nodes[t];
20707
- !i || (e ? this.activeCache.add(t) : this.activeCache.delete(t), i.isActive = e, this.updateVnodeState(t));
20947
+ i && (e ? this.activeCache.add(t) : this.activeCache.delete(t), i.isActive = e, this.updateVnodeState(t));
20708
20948
  },
20709
20949
  updateSelected(t, e, i = !1) {
20710
20950
  if (!this.nodes.hasOwnProperty(t))