@nhtio/lucid-resourceful-vue-components 0.1.0-master-92cf468a → 0.1.0-master-4212d8b5

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 (140) hide show
  1. package/{VChip-cvRAefVz.mjs → VChip-BDyK2TcI.mjs} +2 -2
  2. package/{VChip-cvRAefVz.mjs.map → VChip-BDyK2TcI.mjs.map} +1 -1
  3. package/{VDatePicker-BIguCVc-.mjs → VDatePicker-DQIK8Y9D.mjs} +4 -4
  4. package/{VDatePicker-BIguCVc-.mjs.map → VDatePicker-DQIK8Y9D.mjs.map} +1 -1
  5. package/{VDialog-B3zmrWE3.mjs → VDialog-BgbYLU4T.mjs} +3 -3
  6. package/{VDialog-B3zmrWE3.mjs.map → VDialog-BgbYLU4T.mjs.map} +1 -1
  7. package/{VEmptyState-xSkyGTvh.mjs → VEmptyState-BPx3OaCS.mjs} +2 -2
  8. package/{VEmptyState-xSkyGTvh.mjs.map → VEmptyState-BPx3OaCS.mjs.map} +1 -1
  9. package/{VHover-9B6zOfMl.mjs → VHover-DFxPLX5O.mjs} +3 -3
  10. package/{VHover-9B6zOfMl.mjs.map → VHover-DFxPLX5O.mjs.map} +1 -1
  11. package/{VListItem-Db3fin2X.mjs → VListItem-Bm6UEqPQ.mjs} +3 -3
  12. package/{VListItem-Db3fin2X.mjs.map → VListItem-Bm6UEqPQ.mjs.map} +1 -1
  13. package/{VMenu-CJJRgsgx.mjs → VMenu-BsiZ61Ef.mjs} +3 -3
  14. package/{VMenu-CJJRgsgx.mjs.map → VMenu-BsiZ61Ef.mjs.map} +1 -1
  15. package/{VPicker-BMIzQQeC.mjs → VPicker-BVs5uDku.mjs} +4 -4
  16. package/{VPicker-BMIzQQeC.mjs.map → VPicker-BVs5uDku.mjs.map} +1 -1
  17. package/{VRadioGroup-CiJi3SA5.mjs → VRadioGroup-D3SiTdVL.mjs} +4 -4
  18. package/{VRadioGroup-CiJi3SA5.mjs.map → VRadioGroup-D3SiTdVL.mjs.map} +1 -1
  19. package/{VRow-DY9jxlUT.mjs → VRow-2uWyKH1m.mjs} +2 -2
  20. package/{VRow-DY9jxlUT.mjs.map → VRow-2uWyKH1m.mjs.map} +1 -1
  21. package/{VSheet-DMm59Y3v.mjs → VSheet-Be4VY_Mp.mjs} +2 -2
  22. package/{VSheet-DMm59Y3v.mjs.map → VSheet-Be4VY_Mp.mjs.map} +1 -1
  23. package/{actions-DRtd5rpe.mjs → actions-BEwmoQjX.mjs} +12 -12
  24. package/{actions-DRtd5rpe.mjs.map → actions-BEwmoQjX.mjs.map} +1 -1
  25. package/{alert-BXserbWZ.mjs → alert-CoXST_AQ.mjs} +11 -11
  26. package/{alert-BXserbWZ.mjs.map → alert-CoXST_AQ.mjs.map} +1 -1
  27. package/{bigint-DTkus69Q.mjs → bigint-D0uhiche.mjs} +7 -7
  28. package/{bigint-DTkus69Q.mjs.map → bigint-D0uhiche.mjs.map} +1 -1
  29. package/{boolean-DC5WviWG.mjs → boolean-CTCdgV-D.mjs} +10 -10
  30. package/{boolean-DC5WviWG.mjs.map → boolean-CTCdgV-D.mjs.map} +1 -1
  31. package/{clipboard-GzUF8F1H.mjs → clipboard-DpDxswGb.mjs} +7 -7
  32. package/{clipboard-GzUF8F1H.mjs.map → clipboard-DpDxswGb.mjs.map} +1 -1
  33. package/{common-y26hBhM2.mjs → common-CLTkmLpt.mjs} +15 -15
  34. package/{common-y26hBhM2.mjs.map → common-CLTkmLpt.mjs.map} +1 -1
  35. package/components/autorefresh_controller.mjs +1 -1
  36. package/components/control_button.mjs +1 -1
  37. package/components/control_button_bar.mjs +2 -2
  38. package/components/control_menu.mjs +1 -1
  39. package/components/custom_field.mjs +1 -1
  40. package/components/exporter.mjs +1 -1
  41. package/components/fields/bigint.mjs +1 -1
  42. package/components/fields/boolean.mjs +1 -1
  43. package/components/fields/date.mjs +1 -1
  44. package/components/fields/date_time.mjs +1 -1
  45. package/components/fields/enum.mjs +1 -1
  46. package/components/fields/integer.mjs +1 -1
  47. package/components/fields/number.mjs +1 -1
  48. package/components/fields/string.mjs +1 -1
  49. package/components/fields/unsigned_integer.mjs +1 -1
  50. package/components/fields.mjs +9 -9
  51. package/components/form_with_validation.mjs +1 -1
  52. package/components/resourceful_alerter.mjs +1 -1
  53. package/components/resourceful_index.mjs +1 -1
  54. package/components/resourceful_record.mjs +2 -2
  55. package/components/resourceful_record_default_form.mjs +1 -1
  56. package/components/resourceful_record_form.mjs +1 -1
  57. package/components/sortable.mjs +1 -1
  58. package/components/svg_icon.mjs +1 -1
  59. package/components/timezone_picker.mjs +1 -1
  60. package/components.mjs +23 -23
  61. package/composables.mjs +11 -11
  62. package/{custom-D0tUJjUR.mjs → custom-L63bag5r.mjs} +7 -7
  63. package/{custom-D0tUJjUR.mjs.map → custom-L63bag5r.mjs.map} +1 -1
  64. package/{date-3y6HlkRS.mjs → date-Bu_GWv3J.mjs} +10 -10
  65. package/{date-3y6HlkRS.mjs.map → date-Bu_GWv3J.mjs.map} +1 -1
  66. package/{date_time-Dok0C-ky.mjs → date_time-XbWpsj-a.mjs} +18 -18
  67. package/{date_time-Dok0C-ky.mjs.map → date_time-XbWpsj-a.mjs.map} +1 -1
  68. package/{display-C7AHwUDP.mjs → display-BgFCfUhw.mjs} +4 -4
  69. package/{display-C7AHwUDP.mjs.map → display-BgFCfUhw.mjs.map} +1 -1
  70. package/{display-8m6WLbhM.mjs → display-DSFGrK61.mjs} +29 -29
  71. package/{display-8m6WLbhM.mjs.map → display-DSFGrK61.mjs.map} +1 -1
  72. package/{enum-Y_vMbRQU.mjs → enum-CNS1LcyE.mjs} +9 -9
  73. package/{enum-Y_vMbRQU.mjs.map → enum-CNS1LcyE.mjs.map} +1 -1
  74. package/{exceptions-BzaXvPKn.mjs → exceptions-CSGrOAdA.mjs} +2 -2
  75. package/{exceptions-BzaXvPKn.mjs.map → exceptions-CSGrOAdA.mjs.map} +1 -1
  76. package/exceptions.mjs +2 -2
  77. package/factories.mjs +2 -2
  78. package/{field_composer-BGsudu0f.mjs → field_composer-CqDUYus4.mjs} +3 -3
  79. package/{field_composer-BGsudu0f.mjs.map → field_composer-CqDUYus4.mjs.map} +1 -1
  80. package/{form-Zz9ovJUk.mjs → form-xWfoyo_J.mjs} +15 -15
  81. package/{form-Zz9ovJUk.mjs.map → form-xWfoyo_J.mjs.map} +1 -1
  82. package/{guards-DkKUpPFY.mjs → guards-DUfveiTB.mjs} +2 -2
  83. package/{guards-DkKUpPFY.mjs.map → guards-DUfveiTB.mjs.map} +1 -1
  84. package/guards.mjs +4 -4
  85. package/helpers.mjs +12 -12
  86. package/{http-DDqKp3_h.mjs → http-C6gl85rL.mjs} +2 -2
  87. package/{http-DDqKp3_h.mjs.map → http-C6gl85rL.mjs.map} +1 -1
  88. package/{http-C_Q-oPS8.mjs → http-DBeWvRRv.mjs} +2 -2
  89. package/{http-C_Q-oPS8.mjs.map → http-DBeWvRRv.mjs.map} +1 -1
  90. package/http.mjs +1 -1
  91. package/{index-BGXumd5X.mjs → index-BttGLFbV.mjs} +3 -3
  92. package/{index-BGXumd5X.mjs.map → index-BttGLFbV.mjs.map} +1 -1
  93. package/{index-CKsAcMGI.mjs → index-BuANv93B.mjs} +4 -4
  94. package/{index-CKsAcMGI.mjs.map → index-BuANv93B.mjs.map} +1 -1
  95. package/{index-BMbQH0ri.mjs → index-BuM2Non6.mjs} +43 -43
  96. package/{index-BMbQH0ri.mjs.map → index-BuM2Non6.mjs.map} +1 -1
  97. package/{index-gEAkqNVM.mjs → index-C-69XC46.mjs} +2 -2
  98. package/{index-gEAkqNVM.mjs.map → index-C-69XC46.mjs.map} +1 -1
  99. package/{index-C53bXEIe.mjs → index-C83PbHSi.mjs} +6 -6
  100. package/{index-C53bXEIe.mjs.map → index-C83PbHSi.mjs.map} +1 -1
  101. package/{index-5y76H-oT.mjs → index-Cf51NF_C.mjs} +3 -3
  102. package/{index-5y76H-oT.mjs.map → index-Cf51NF_C.mjs.map} +1 -1
  103. package/{index-CFXxepQ0.mjs → index-CnRNmJnf.mjs} +8 -8
  104. package/{index-CFXxepQ0.mjs.map → index-CnRNmJnf.mjs.map} +1 -1
  105. package/{index-DrvODG-6.mjs → index-D-pRjfro.mjs} +8 -8
  106. package/{index-DrvODG-6.mjs.map → index-D-pRjfro.mjs.map} +1 -1
  107. package/{index-Dak2Iq66.mjs → index-DFHFiM3G.mjs} +8 -8
  108. package/{index-Dak2Iq66.mjs.map → index-DFHFiM3G.mjs.map} +1 -1
  109. package/{index-BQSLJOMM.mjs → index-xiL4gRps.mjs} +15 -15
  110. package/{index-BQSLJOMM.mjs.map → index-xiL4gRps.mjs.map} +1 -1
  111. package/index.mjs +37 -37
  112. package/{integer-CCFl1__b.mjs → integer-D08s3du-.mjs} +3 -3
  113. package/{integer-CCFl1__b.mjs.map → integer-D08s3du-.mjs.map} +1 -1
  114. package/{ioc-VpXEFTA_.mjs → ioc-XSkiYED4.mjs} +2 -2
  115. package/{ioc-VpXEFTA_.mjs.map → ioc-XSkiYED4.mjs.map} +1 -1
  116. package/ioc.mjs +1 -1
  117. package/{mdi-BNDL0Fmp.mjs → mdi-Sfb04KxJ.mjs} +15 -15
  118. package/{mdi-BNDL0Fmp.mjs.map → mdi-Sfb04KxJ.mjs.map} +1 -1
  119. package/{number-iw3XUChR.mjs → number-M3fatRCC.mjs} +8 -8
  120. package/{number-iw3XUChR.mjs.map → number-M3fatRCC.mjs.map} +1 -1
  121. package/package.json +1 -1
  122. package/{props-BzOIfizB.mjs → props-CmKs0tOi.mjs} +6 -6
  123. package/{props-BzOIfizB.mjs.map → props-CmKs0tOi.mjs.map} +1 -1
  124. package/{props-d2vGsoV2.mjs → props-T2-chZAO.mjs} +4 -4
  125. package/{props-d2vGsoV2.mjs.map → props-T2-chZAO.mjs.map} +1 -1
  126. package/{renderers-DzeB-7t5.mjs → renderers-DVerxUh1.mjs} +14 -14
  127. package/{renderers-DzeB-7t5.mjs.map → renderers-DVerxUh1.mjs.map} +1 -1
  128. package/{string-CYZ4HJOE.mjs → string-BegCdRUf.mjs} +13 -13
  129. package/{string-CYZ4HJOE.mjs.map → string-BegCdRUf.mjs.map} +1 -1
  130. package/{unsigned_integer-CtzLbU9B.mjs → unsigned_integer-JAzC2D19.mjs} +4 -4
  131. package/{unsigned_integer-CtzLbU9B.mjs.map → unsigned_integer-JAzC2D19.mjs.map} +1 -1
  132. package/{utils-bmb0VKX5.mjs → utils-DPixZO5a.mjs} +13 -6
  133. package/utils-DPixZO5a.mjs.map +1 -0
  134. package/{validation-D9xMBA0E.mjs → validation-CpCLjEty.mjs} +6 -6
  135. package/{validation-D9xMBA0E.mjs.map → validation-CpCLjEty.mjs.map} +1 -1
  136. package/{vendor-nhtio-vuetifiable-ZisC21Mr.mjs → vendor-nhtio-vuetifiable--NpO78cs.mjs} +17 -17
  137. package/{vendor-nhtio-vuetifiable-ZisC21Mr.mjs.map → vendor-nhtio-vuetifiable--NpO78cs.mjs.map} +1 -1
  138. package/{vendor-xlsx-B6rmmoFO.mjs → vendor-xlsx-Cm0x3txX.mjs} +2 -2
  139. package/{vendor-xlsx-B6rmmoFO.mjs.map → vendor-xlsx-Cm0x3txX.mjs.map} +1 -1
  140. package/utils-bmb0VKX5.mjs.map +0 -1
@@ -1,7 +1,7 @@
1
- import { k as useBrowser } from "./ioc-VpXEFTA_.mjs";
1
+ import { k as useBrowser } from "./ioc-XSkiYED4.mjs";
2
2
  import { useDisplay } from "vuetify";
3
- import { t as toUnreactive, f as isHTMLElement } from "./utils-bmb0VKX5.mjs";
4
- import { n as getCurrentInstanceName, S as SUPPORTS_INTERSECTION, d as debounce, I as IN_BROWSER } from "./vendor-nhtio-vuetifiable-ZisC21Mr.mjs";
3
+ import { t as toUnreactive, f as isHTMLElement } from "./utils-DPixZO5a.mjs";
4
+ import { n as getCurrentInstanceName, S as SUPPORTS_INTERSECTION, d as debounce, I as IN_BROWSER } from "./vendor-nhtio-vuetifiable--NpO78cs.mjs";
5
5
  import { shallowRef, reactive, onMounted, watch, onUnmounted, toRefs, triggerRef, nextTick } from "vue";
6
6
  const SUPPORTS_RESIZE_OBSERVATION = IN_BROWSER && "ResizeObserver" in window;
7
7
  const SUPPORTS_VISUAL_VIEWPORT = IN_BROWSER && "visualViewport" in window;
@@ -261,4 +261,4 @@ export {
261
261
  SUPPORTS_VISUAL_VIEWPORT as a,
262
262
  useScopedDisplay as u
263
263
  };
264
- //# sourceMappingURL=display-C7AHwUDP.mjs.map
264
+ //# sourceMappingURL=display-BgFCfUhw.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"display-C7AHwUDP.mjs","sources":["../src/private/ux/display.ts"],"sourcesContent":["import { useBrowser } from '../ioc'\nimport { useDisplay } from 'vuetify'\nimport { toUnreactive } from '../common/utils'\nimport { isHTMLElement } from '../common/guards'\nimport { debounce } from '@nhtio/vuetifiable/util/helpers'\nimport { IN_BROWSER, SUPPORTS_INTERSECTION } from '@nhtio/vuetifiable/util/globals'\nimport { getCurrentInstanceName } from '@nhtio/vuetifiable/util/getCurrentInstance'\nimport {\n reactive,\n shallowRef,\n triggerRef,\n toRefs,\n watch,\n onMounted,\n onUnmounted,\n nextTick,\n} from 'vue'\nimport type { Ref, ComponentPublicInstance, UnwrapRef, WatchStopHandle } from 'vue'\nimport type { DisplayInstance, DisplayBreakpoint, DisplayThresholds } from 'vuetify'\n\nexport const SUPPORTS_RESIZE_OBSERVATION = IN_BROWSER && 'ResizeObserver' in window\n\nexport const SUPPORTS_VISUAL_VIEWPORT = IN_BROWSER && 'visualViewport' in window\n\ntype DisplayPlatform = DisplayInstance['platform']\n\nexport type ReferencedContainer = Ref<HTMLElement | ComponentPublicInstance | null>\n\nexport const ScopedDisplayOrientation = ['landscape', 'portrait', 'square'] as const\nexport type ScopedDisplayOrientation = (typeof ScopedDisplayOrientation)[number]\n\nexport type ScopedDisplayInstance = DisplayInstance & {\n ssr: boolean\n intersecting: Ref<boolean>\n visible: Ref<boolean>\n orientation: Ref<ScopedDisplayOrientation>\n}\n\n// Extract the ref types as non-ref types and exclude functions\ntype InternalReactiveScopedDisplayStateTypes = {\n [key in keyof ScopedDisplayInstance]: ScopedDisplayInstance[key] extends Ref<any>\n ? UnwrapRef<ScopedDisplayInstance[key]>\n : ScopedDisplayInstance[key] extends Function\n ? never\n : ScopedDisplayInstance[key]\n}\n\n// Create a type that only includes the non-excluded keys\ntype InternalReactiveScopedDisplayState = {\n [K in keyof InternalReactiveScopedDisplayStateTypes as InternalReactiveScopedDisplayStateTypes[K] extends never\n ? never\n : K]: InternalReactiveScopedDisplayStateTypes[K]\n}\n\nexport const useScopedDisplay = (\n container: ReferencedContainer,\n name: string = getCurrentInstanceName('resourcefulComposables')\n) => {\n const vuetifyState = useDisplay({ mobile: null }, name)\n const {\n mobile,\n mobileBreakpoint,\n platform,\n thresholds,\n ssr,\n update: vuetifyUseDisplayUpdate,\n } = vuetifyState\n // despite the urge to use a Set here, an array is more peformant for doing simple iterations\n const watchStopHandles: WatchStopHandle[] = []\n let resizeObserver: ResizeObserver | undefined\n let intersectionObserver: IntersectionObserver | undefined\n const width = shallowRef<number>(0)\n const height = shallowRef<number>(0)\n const intersecting = shallowRef<boolean>(false)\n const visible = shallowRef<boolean>(false)\n const state = reactive<Omit<InternalReactiveScopedDisplayState, 'ssr'>>({\n xs: false,\n sm: false,\n md: false,\n lg: false,\n xl: false,\n xxl: false,\n smAndUp: false,\n mdAndUp: false,\n lgAndUp: false,\n xlAndUp: false,\n smAndDown: false,\n mdAndDown: false,\n lgAndDown: false,\n xlAndDown: false,\n name: 'xs' as const,\n width: 0,\n height: 0,\n mobile: false,\n mobileBreakpoint: toUnreactive(mobileBreakpoint),\n platform: toUnreactive(platform),\n thresholds: toUnreactive(thresholds),\n intersecting: false,\n visible: false,\n orientation: 'square' as ScopedDisplayOrientation,\n })\n const resizeObserverHandler = (entries: ResizeObserverEntry[]) => {\n let w: number = 0\n let h: number = 0\n for (const entry of entries) {\n if ('contentBoxSize' in entry && 'undefined' !== typeof entry.contentBoxSize) {\n const contentBoxSize = Array.isArray(entry.contentBoxSize)\n ? (entry.contentBoxSize[0] as ResizeObserverSize)\n : // Old versions of Firefox treat ResizeObserverSize as a single item\n (entry.contentBoxSize as unknown as ResizeObserverSize)\n w = contentBoxSize.inlineSize\n } else {\n w = entry.contentRect.width\n }\n h = entry.contentRect.height\n updateDimensions(w, h)\n }\n }\n const intersectionObserverHandler = (entries: IntersectionObserverEntry[]) => {\n const isIntersecting = entries.some((entry) => entry.isIntersecting)\n const isVisible = entries.some((entry) =>\n 'isVisible' in entry ? (entry as any).isVisible : entry.isIntersecting\n )\n intersecting.value = isIntersecting\n visible.value = isVisible\n triggerRef(intersecting)\n triggerRef(visible)\n }\n // helper utility to ensure that the width and height are updated\n const updateDimensions = (w: number = 0, h: number = 0) => {\n width.value = w\n height.value = h\n triggerRef(width)\n triggerRef(height)\n }\n // an exposed method to force an update of the display state\n const update = () => {\n vuetifyUseDisplayUpdate()\n const el = getContainerHtmlElement()\n if (el) {\n const rect = el.getBoundingClientRect()\n updateDimensions(rect.width, rect.height)\n } else {\n updateDimensions(0, 0)\n }\n }\n // helper utility to get the mobile breakpoint as a number for comparisons\n const getMobileBreakpointAsNumber = () => {\n if (typeof state.mobileBreakpoint === 'number') {\n return state.mobileBreakpoint\n }\n if (state.mobileBreakpoint in state.thresholds) {\n return state.thresholds[state.mobileBreakpoint]\n }\n // fallback to 600\n return 600\n }\n // helper utility to get the element from a referenced value\n // used to get the container element from the reference, and in watchers\n const getReferencedHtmlElement = (value: HTMLElement | ComponentPublicInstance | null) => {\n const browser = useBrowser()\n if (!value || browser.ssr) return undefined\n if (isHTMLElement(value)) return value\n if ('$el' in value && isHTMLElement(value.$el)) {\n return value.$el\n }\n return undefined\n }\n // helper utility to get the referenced container element\n const getContainerHtmlElement = (): HTMLElement | undefined => {\n return getReferencedHtmlElement(container.value)\n }\n // observers for changes in the values from vuetify's useDisplay composable\n const vuetifyUseDisplayMobileObserver = (is: boolean) => {\n if (true === is) {\n state.mobile = true\n } else if (width.value < getMobileBreakpointAsNumber()) {\n state.mobile = true\n } else {\n state.mobile = false\n }\n }\n const vuetifyUseDisplayMobileBreakpointObserver = (is: number | DisplayBreakpoint) => {\n state.mobileBreakpoint = toUnreactive(is)\n queueMicrotask(() => vuetifyUseDisplayMobileObserver(mobile.value))\n }\n const vuetifyUseDisplayPlatformObserver = (is: DisplayPlatform) => {\n state.platform = toUnreactive(is)\n }\n const vuetifyUseDisplayThresholdsObserver = (is: DisplayThresholds) => {\n state.thresholds = toUnreactive(is)\n queueMicrotask(() => vuetifyUseDisplayMobileObserver(mobile.value))\n }\n const containerObserver = (\n is: HTMLElement | ComponentPublicInstance | null,\n was: HTMLElement | ComponentPublicInstance | null | undefined\n ) => {\n const newEl = getReferencedHtmlElement(is)\n const oldEl = getReferencedHtmlElement(was ?? null)\n if (newEl === oldEl) return\n if (intersectionObserver) {\n if (oldEl) {\n intersectionObserver.unobserve(oldEl)\n }\n if (newEl) {\n intersectionObserver.observe(newEl)\n }\n }\n if (resizeObserver) {\n if (oldEl) {\n resizeObserver.unobserve(oldEl)\n }\n if (newEl) {\n resizeObserver.observe(newEl)\n }\n }\n const el = getContainerHtmlElement()\n if (el) {\n const rect = el.getBoundingClientRect()\n updateDimensions(rect.width, rect.height)\n } else {\n updateDimensions(0, 0)\n }\n }\n const dimensionsObserver = debounce(() => {\n state.width = width.value\n state.height = height.value\n vuetifyUseDisplayMobileObserver(mobile.value)\n const xs = width.value < thresholds.value.sm\n const sm = width.value < thresholds.value.md && !xs\n const md = width.value < thresholds.value.lg && !(sm || xs)\n const lg = width.value < thresholds.value.xl && !(md || sm || xs)\n const xl = width.value < thresholds.value.xxl && !(lg || md || sm || xs)\n const xxl = width.value >= thresholds.value.xxl\n const breakpointName = xs ? 'xs' : sm ? 'sm' : md ? 'md' : lg ? 'lg' : xl ? 'xl' : 'xxl'\n const smAndUp = !xs\n const mdAndUp = !(xs || sm)\n const lgAndUp = !(xs || sm || md)\n const xlAndUp = !(xs || sm || md || lg)\n const smAndDown = !(md || lg || xl || xxl)\n const mdAndDown = !(lg || xl || xxl)\n const lgAndDown = !(xl || xxl)\n const xlAndDown = !xxl\n const orientation: ScopedDisplayOrientation =\n width.value > height.value ? 'landscape' : height.value > width.value ? 'portrait' : 'square'\n state.xs = xs\n state.sm = sm\n state.md = md\n state.lg = lg\n state.xl = xl\n state.xxl = xxl\n state.name = breakpointName\n state.smAndUp = smAndUp\n state.mdAndUp = mdAndUp\n state.lgAndUp = lgAndUp\n state.xlAndUp = xlAndUp\n state.smAndDown = smAndDown\n state.mdAndDown = mdAndDown\n state.lgAndDown = lgAndDown\n state.xlAndDown = xlAndDown\n state.orientation = orientation\n }, 50)\n const intersectionAndVisibilityObserver = debounce(() => {\n state.intersecting = intersecting.value\n state.visible = visible.value\n }, 50)\n const windowResizeHandler = debounce(() => {\n // Update Vuetify's display state (handles viewport breakpoints)\n vuetifyUseDisplayUpdate()\n // Give the process a tick and then force an update\n nextTick(update)\n }, 50)\n onMounted(() => {\n watchStopHandles.push(watch(mobile, vuetifyUseDisplayMobileObserver, { immediate: true }))\n watchStopHandles.push(\n watch(mobileBreakpoint, vuetifyUseDisplayMobileBreakpointObserver, { immediate: true })\n )\n watchStopHandles.push(watch(platform, vuetifyUseDisplayPlatformObserver, { immediate: true }))\n watchStopHandles.push(\n watch(thresholds, vuetifyUseDisplayThresholdsObserver, { immediate: true })\n )\n if (SUPPORTS_RESIZE_OBSERVATION) {\n resizeObserver = new ResizeObserver(resizeObserverHandler)\n }\n if (SUPPORTS_INTERSECTION) {\n intersectionObserver = new IntersectionObserver(intersectionObserverHandler)\n }\n watchStopHandles.push(watch(container, containerObserver, { immediate: true }))\n watchStopHandles.push(watch(width, dimensionsObserver, { immediate: true }))\n watchStopHandles.push(watch(height, dimensionsObserver, { immediate: true }))\n watchStopHandles.push(\n watch(intersecting, intersectionAndVisibilityObserver, { immediate: true })\n )\n watchStopHandles.push(watch(visible, intersectionAndVisibilityObserver, { immediate: true }))\n // Add window resize listener\n if (IN_BROWSER) {\n window.addEventListener('resize', windowResizeHandler)\n }\n // Add visual viewport listeners\n if (SUPPORTS_VISUAL_VIEWPORT) {\n window.visualViewport!.addEventListener('resize', windowResizeHandler)\n window.visualViewport!.addEventListener('scroll', windowResizeHandler)\n }\n })\n onUnmounted(() => {\n // Remove window resize listener\n if (IN_BROWSER) {\n window.removeEventListener('resize', windowResizeHandler)\n }\n // Remove visual viewport listeners\n if (SUPPORTS_VISUAL_VIEWPORT) {\n window.visualViewport!.removeEventListener('resize', windowResizeHandler)\n window.visualViewport!.removeEventListener('scroll', windowResizeHandler)\n }\n // clear all of the watch stop handles\n watchStopHandles.forEach((stopHandle) => stopHandle())\n watchStopHandles.splice(0, watchStopHandles.length)\n // cleanup the resize observer\n if (resizeObserver) {\n resizeObserver.disconnect()\n resizeObserver = undefined\n }\n // cleanup the intersection observer\n if (intersectionObserver) {\n intersectionObserver.disconnect()\n intersectionObserver = undefined\n }\n })\n return { ...toRefs(state), update, ssr: !!ssr }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"display-BgFCfUhw.mjs","sources":["../src/private/ux/display.ts"],"sourcesContent":["import { useBrowser } from '../ioc'\nimport { useDisplay } from 'vuetify'\nimport { toUnreactive } from '../common/utils'\nimport { isHTMLElement } from '../common/guards'\nimport { debounce } from '@nhtio/vuetifiable/util/helpers'\nimport { IN_BROWSER, SUPPORTS_INTERSECTION } from '@nhtio/vuetifiable/util/globals'\nimport { getCurrentInstanceName } from '@nhtio/vuetifiable/util/getCurrentInstance'\nimport {\n reactive,\n shallowRef,\n triggerRef,\n toRefs,\n watch,\n onMounted,\n onUnmounted,\n nextTick,\n} from 'vue'\nimport type { Ref, ComponentPublicInstance, UnwrapRef, WatchStopHandle } from 'vue'\nimport type { DisplayInstance, DisplayBreakpoint, DisplayThresholds } from 'vuetify'\n\nexport const SUPPORTS_RESIZE_OBSERVATION = IN_BROWSER && 'ResizeObserver' in window\n\nexport const SUPPORTS_VISUAL_VIEWPORT = IN_BROWSER && 'visualViewport' in window\n\ntype DisplayPlatform = DisplayInstance['platform']\n\nexport type ReferencedContainer = Ref<HTMLElement | ComponentPublicInstance | null>\n\nexport const ScopedDisplayOrientation = ['landscape', 'portrait', 'square'] as const\nexport type ScopedDisplayOrientation = (typeof ScopedDisplayOrientation)[number]\n\nexport type ScopedDisplayInstance = DisplayInstance & {\n ssr: boolean\n intersecting: Ref<boolean>\n visible: Ref<boolean>\n orientation: Ref<ScopedDisplayOrientation>\n}\n\n// Extract the ref types as non-ref types and exclude functions\ntype InternalReactiveScopedDisplayStateTypes = {\n [key in keyof ScopedDisplayInstance]: ScopedDisplayInstance[key] extends Ref<any>\n ? UnwrapRef<ScopedDisplayInstance[key]>\n : ScopedDisplayInstance[key] extends Function\n ? never\n : ScopedDisplayInstance[key]\n}\n\n// Create a type that only includes the non-excluded keys\ntype InternalReactiveScopedDisplayState = {\n [K in keyof InternalReactiveScopedDisplayStateTypes as InternalReactiveScopedDisplayStateTypes[K] extends never\n ? never\n : K]: InternalReactiveScopedDisplayStateTypes[K]\n}\n\nexport const useScopedDisplay = (\n container: ReferencedContainer,\n name: string = getCurrentInstanceName('resourcefulComposables')\n) => {\n const vuetifyState = useDisplay({ mobile: null }, name)\n const {\n mobile,\n mobileBreakpoint,\n platform,\n thresholds,\n ssr,\n update: vuetifyUseDisplayUpdate,\n } = vuetifyState\n // despite the urge to use a Set here, an array is more peformant for doing simple iterations\n const watchStopHandles: WatchStopHandle[] = []\n let resizeObserver: ResizeObserver | undefined\n let intersectionObserver: IntersectionObserver | undefined\n const width = shallowRef<number>(0)\n const height = shallowRef<number>(0)\n const intersecting = shallowRef<boolean>(false)\n const visible = shallowRef<boolean>(false)\n const state = reactive<Omit<InternalReactiveScopedDisplayState, 'ssr'>>({\n xs: false,\n sm: false,\n md: false,\n lg: false,\n xl: false,\n xxl: false,\n smAndUp: false,\n mdAndUp: false,\n lgAndUp: false,\n xlAndUp: false,\n smAndDown: false,\n mdAndDown: false,\n lgAndDown: false,\n xlAndDown: false,\n name: 'xs' as const,\n width: 0,\n height: 0,\n mobile: false,\n mobileBreakpoint: toUnreactive(mobileBreakpoint),\n platform: toUnreactive(platform),\n thresholds: toUnreactive(thresholds),\n intersecting: false,\n visible: false,\n orientation: 'square' as ScopedDisplayOrientation,\n })\n const resizeObserverHandler = (entries: ResizeObserverEntry[]) => {\n let w: number = 0\n let h: number = 0\n for (const entry of entries) {\n if ('contentBoxSize' in entry && 'undefined' !== typeof entry.contentBoxSize) {\n const contentBoxSize = Array.isArray(entry.contentBoxSize)\n ? (entry.contentBoxSize[0] as ResizeObserverSize)\n : // Old versions of Firefox treat ResizeObserverSize as a single item\n (entry.contentBoxSize as unknown as ResizeObserverSize)\n w = contentBoxSize.inlineSize\n } else {\n w = entry.contentRect.width\n }\n h = entry.contentRect.height\n updateDimensions(w, h)\n }\n }\n const intersectionObserverHandler = (entries: IntersectionObserverEntry[]) => {\n const isIntersecting = entries.some((entry) => entry.isIntersecting)\n const isVisible = entries.some((entry) =>\n 'isVisible' in entry ? (entry as any).isVisible : entry.isIntersecting\n )\n intersecting.value = isIntersecting\n visible.value = isVisible\n triggerRef(intersecting)\n triggerRef(visible)\n }\n // helper utility to ensure that the width and height are updated\n const updateDimensions = (w: number = 0, h: number = 0) => {\n width.value = w\n height.value = h\n triggerRef(width)\n triggerRef(height)\n }\n // an exposed method to force an update of the display state\n const update = () => {\n vuetifyUseDisplayUpdate()\n const el = getContainerHtmlElement()\n if (el) {\n const rect = el.getBoundingClientRect()\n updateDimensions(rect.width, rect.height)\n } else {\n updateDimensions(0, 0)\n }\n }\n // helper utility to get the mobile breakpoint as a number for comparisons\n const getMobileBreakpointAsNumber = () => {\n if (typeof state.mobileBreakpoint === 'number') {\n return state.mobileBreakpoint\n }\n if (state.mobileBreakpoint in state.thresholds) {\n return state.thresholds[state.mobileBreakpoint]\n }\n // fallback to 600\n return 600\n }\n // helper utility to get the element from a referenced value\n // used to get the container element from the reference, and in watchers\n const getReferencedHtmlElement = (value: HTMLElement | ComponentPublicInstance | null) => {\n const browser = useBrowser()\n if (!value || browser.ssr) return undefined\n if (isHTMLElement(value)) return value\n if ('$el' in value && isHTMLElement(value.$el)) {\n return value.$el\n }\n return undefined\n }\n // helper utility to get the referenced container element\n const getContainerHtmlElement = (): HTMLElement | undefined => {\n return getReferencedHtmlElement(container.value)\n }\n // observers for changes in the values from vuetify's useDisplay composable\n const vuetifyUseDisplayMobileObserver = (is: boolean) => {\n if (true === is) {\n state.mobile = true\n } else if (width.value < getMobileBreakpointAsNumber()) {\n state.mobile = true\n } else {\n state.mobile = false\n }\n }\n const vuetifyUseDisplayMobileBreakpointObserver = (is: number | DisplayBreakpoint) => {\n state.mobileBreakpoint = toUnreactive(is)\n queueMicrotask(() => vuetifyUseDisplayMobileObserver(mobile.value))\n }\n const vuetifyUseDisplayPlatformObserver = (is: DisplayPlatform) => {\n state.platform = toUnreactive(is)\n }\n const vuetifyUseDisplayThresholdsObserver = (is: DisplayThresholds) => {\n state.thresholds = toUnreactive(is)\n queueMicrotask(() => vuetifyUseDisplayMobileObserver(mobile.value))\n }\n const containerObserver = (\n is: HTMLElement | ComponentPublicInstance | null,\n was: HTMLElement | ComponentPublicInstance | null | undefined\n ) => {\n const newEl = getReferencedHtmlElement(is)\n const oldEl = getReferencedHtmlElement(was ?? null)\n if (newEl === oldEl) return\n if (intersectionObserver) {\n if (oldEl) {\n intersectionObserver.unobserve(oldEl)\n }\n if (newEl) {\n intersectionObserver.observe(newEl)\n }\n }\n if (resizeObserver) {\n if (oldEl) {\n resizeObserver.unobserve(oldEl)\n }\n if (newEl) {\n resizeObserver.observe(newEl)\n }\n }\n const el = getContainerHtmlElement()\n if (el) {\n const rect = el.getBoundingClientRect()\n updateDimensions(rect.width, rect.height)\n } else {\n updateDimensions(0, 0)\n }\n }\n const dimensionsObserver = debounce(() => {\n state.width = width.value\n state.height = height.value\n vuetifyUseDisplayMobileObserver(mobile.value)\n const xs = width.value < thresholds.value.sm\n const sm = width.value < thresholds.value.md && !xs\n const md = width.value < thresholds.value.lg && !(sm || xs)\n const lg = width.value < thresholds.value.xl && !(md || sm || xs)\n const xl = width.value < thresholds.value.xxl && !(lg || md || sm || xs)\n const xxl = width.value >= thresholds.value.xxl\n const breakpointName = xs ? 'xs' : sm ? 'sm' : md ? 'md' : lg ? 'lg' : xl ? 'xl' : 'xxl'\n const smAndUp = !xs\n const mdAndUp = !(xs || sm)\n const lgAndUp = !(xs || sm || md)\n const xlAndUp = !(xs || sm || md || lg)\n const smAndDown = !(md || lg || xl || xxl)\n const mdAndDown = !(lg || xl || xxl)\n const lgAndDown = !(xl || xxl)\n const xlAndDown = !xxl\n const orientation: ScopedDisplayOrientation =\n width.value > height.value ? 'landscape' : height.value > width.value ? 'portrait' : 'square'\n state.xs = xs\n state.sm = sm\n state.md = md\n state.lg = lg\n state.xl = xl\n state.xxl = xxl\n state.name = breakpointName\n state.smAndUp = smAndUp\n state.mdAndUp = mdAndUp\n state.lgAndUp = lgAndUp\n state.xlAndUp = xlAndUp\n state.smAndDown = smAndDown\n state.mdAndDown = mdAndDown\n state.lgAndDown = lgAndDown\n state.xlAndDown = xlAndDown\n state.orientation = orientation\n }, 50)\n const intersectionAndVisibilityObserver = debounce(() => {\n state.intersecting = intersecting.value\n state.visible = visible.value\n }, 50)\n const windowResizeHandler = debounce(() => {\n // Update Vuetify's display state (handles viewport breakpoints)\n vuetifyUseDisplayUpdate()\n // Give the process a tick and then force an update\n nextTick(update)\n }, 50)\n onMounted(() => {\n watchStopHandles.push(watch(mobile, vuetifyUseDisplayMobileObserver, { immediate: true }))\n watchStopHandles.push(\n watch(mobileBreakpoint, vuetifyUseDisplayMobileBreakpointObserver, { immediate: true })\n )\n watchStopHandles.push(watch(platform, vuetifyUseDisplayPlatformObserver, { immediate: true }))\n watchStopHandles.push(\n watch(thresholds, vuetifyUseDisplayThresholdsObserver, { immediate: true })\n )\n if (SUPPORTS_RESIZE_OBSERVATION) {\n resizeObserver = new ResizeObserver(resizeObserverHandler)\n }\n if (SUPPORTS_INTERSECTION) {\n intersectionObserver = new IntersectionObserver(intersectionObserverHandler)\n }\n watchStopHandles.push(watch(container, containerObserver, { immediate: true }))\n watchStopHandles.push(watch(width, dimensionsObserver, { immediate: true }))\n watchStopHandles.push(watch(height, dimensionsObserver, { immediate: true }))\n watchStopHandles.push(\n watch(intersecting, intersectionAndVisibilityObserver, { immediate: true })\n )\n watchStopHandles.push(watch(visible, intersectionAndVisibilityObserver, { immediate: true }))\n // Add window resize listener\n if (IN_BROWSER) {\n window.addEventListener('resize', windowResizeHandler)\n }\n // Add visual viewport listeners\n if (SUPPORTS_VISUAL_VIEWPORT) {\n window.visualViewport!.addEventListener('resize', windowResizeHandler)\n window.visualViewport!.addEventListener('scroll', windowResizeHandler)\n }\n })\n onUnmounted(() => {\n // Remove window resize listener\n if (IN_BROWSER) {\n window.removeEventListener('resize', windowResizeHandler)\n }\n // Remove visual viewport listeners\n if (SUPPORTS_VISUAL_VIEWPORT) {\n window.visualViewport!.removeEventListener('resize', windowResizeHandler)\n window.visualViewport!.removeEventListener('scroll', windowResizeHandler)\n }\n // clear all of the watch stop handles\n watchStopHandles.forEach((stopHandle) => stopHandle())\n watchStopHandles.splice(0, watchStopHandles.length)\n // cleanup the resize observer\n if (resizeObserver) {\n resizeObserver.disconnect()\n resizeObserver = undefined\n }\n // cleanup the intersection observer\n if (intersectionObserver) {\n intersectionObserver.disconnect()\n intersectionObserver = undefined\n }\n })\n return { ...toRefs(state), update, ssr: !!ssr }\n}\n"],"names":[],"mappings":"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"}
@@ -3816,21 +3816,21 @@ export {
3816
3816
  omit as J,
3817
3817
  focusChild as K,
3818
3818
  getNextElement as L,
3819
- VBtnGroup as M,
3820
- breakpoints as N,
3821
- VSlideYTransition as O,
3822
- filterInputAttrs as P,
3823
- useLocale as Q,
3824
- clamp as R,
3825
- extractNumber as S,
3826
- escapeForRegex as T,
3827
- getCurrentInstance as U,
3819
+ VSlideYTransition as M,
3820
+ filterInputAttrs as N,
3821
+ VBtnGroup as O,
3822
+ breakpoints as P,
3823
+ getCurrentInstance as Q,
3824
+ useVariant as R,
3825
+ useToggleScope as S,
3826
+ refElement as T,
3827
+ genOverlays as U,
3828
3828
  VProgressLinear as V,
3829
- useVariant as W,
3830
- useToggleScope as X,
3831
- refElement as Y,
3832
- genOverlays as Z,
3833
- makeVariantProps as _,
3829
+ makeVariantProps as W,
3830
+ useLocale as X,
3831
+ clamp as Y,
3832
+ extractNumber as Z,
3833
+ escapeForRegex as _,
3834
3834
  VImg as a,
3835
3835
  makeLoaderProps as a$,
3836
3836
  SUPPORTS_MATCH_MEDIA as a0,
@@ -3923,22 +3923,22 @@ export {
3923
3923
  isEmpty as bn,
3924
3924
  VBtn as c,
3925
3925
  VIcon as d,
3926
- IN_BROWSER as e,
3927
- useRender as f,
3926
+ provideTheme as e,
3927
+ useBackgroundColor as f,
3928
3928
  genericComponent as g,
3929
- focusableChildren as h,
3930
- VDefaultsProvider as i,
3931
- provideTheme as j,
3932
- useBackgroundColor as k,
3933
- useDimension as l,
3934
- useDisplay as m,
3935
- convertToUnit as n,
3936
- makeThemeProps as o,
3929
+ useDimension as h,
3930
+ useDisplay as i,
3931
+ useRender as j,
3932
+ VDefaultsProvider as k,
3933
+ convertToUnit as l,
3934
+ makeThemeProps as m,
3935
+ makeSizeProps as n,
3936
+ makeDimensionProps as o,
3937
3937
  propsFactory as p,
3938
- makeSizeProps as q,
3939
- makeDimensionProps as r,
3940
- makeComponentProps as s,
3941
- IconValue as t,
3938
+ makeComponentProps as q,
3939
+ IconValue as r,
3940
+ IN_BROWSER as s,
3941
+ focusableChildren as t,
3942
3942
  useProxiedModel as u,
3943
3943
  useBorder as v,
3944
3944
  useElevation as w,
@@ -3946,4 +3946,4 @@ export {
3946
3946
  usePosition as y,
3947
3947
  useRounded as z
3948
3948
  };
3949
- //# sourceMappingURL=display-8m6WLbhM.mjs.map
3949
+ //# sourceMappingURL=display-DSFGrK61.mjs.map