@nhtio/lucid-resourceful-vue-components 0.1.0-master-2b799e79 → 0.1.0-master-9802f3a9

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 (135) hide show
  1. package/{VChip-DWwcL8cL.mjs → VChip-COQck2AV.mjs} +2 -2
  2. package/{VChip-DWwcL8cL.mjs.map → VChip-COQck2AV.mjs.map} +1 -1
  3. package/{VDatePicker-C7_ULYfO.mjs → VDatePicker-DJFZcev9.mjs} +4 -4
  4. package/{VDatePicker-C7_ULYfO.mjs.map → VDatePicker-DJFZcev9.mjs.map} +1 -1
  5. package/{VDialog-BVRDhoD7.mjs → VDialog-JGibK5Rl.mjs} +3 -3
  6. package/{VDialog-BVRDhoD7.mjs.map → VDialog-JGibK5Rl.mjs.map} +1 -1
  7. package/{VEmptyState-C2B0Znk9.mjs → VEmptyState-DKODfacQ.mjs} +2 -2
  8. package/{VEmptyState-C2B0Znk9.mjs.map → VEmptyState-DKODfacQ.mjs.map} +1 -1
  9. package/{VHover-DnB1GlWG.mjs → VHover-DGMoUvi7.mjs} +3 -3
  10. package/{VHover-DnB1GlWG.mjs.map → VHover-DGMoUvi7.mjs.map} +1 -1
  11. package/{VListItem-DojRgtpe.mjs → VListItem-ZmExdT37.mjs} +3 -3
  12. package/{VListItem-DojRgtpe.mjs.map → VListItem-ZmExdT37.mjs.map} +1 -1
  13. package/{VMenu-D2biKkpd.mjs → VMenu-DCDIKpqX.mjs} +3 -3
  14. package/{VMenu-D2biKkpd.mjs.map → VMenu-DCDIKpqX.mjs.map} +1 -1
  15. package/{VPicker-dxKS1KK4.mjs → VPicker-CAvKVtUE.mjs} +4 -4
  16. package/{VPicker-dxKS1KK4.mjs.map → VPicker-CAvKVtUE.mjs.map} +1 -1
  17. package/{VRadioGroup-lC_c6Ath.mjs → VRadioGroup-BPByWwud.mjs} +4 -4
  18. package/{VRadioGroup-lC_c6Ath.mjs.map → VRadioGroup-BPByWwud.mjs.map} +1 -1
  19. package/{VRow-BBY2gEjT.mjs → VRow-BwokRy3H.mjs} +2 -2
  20. package/{VRow-BBY2gEjT.mjs.map → VRow-BwokRy3H.mjs.map} +1 -1
  21. package/{VSheet-B4SA9_dv.mjs → VSheet-CHO05eqU.mjs} +2 -2
  22. package/{VSheet-B4SA9_dv.mjs.map → VSheet-CHO05eqU.mjs.map} +1 -1
  23. package/{actions-CXhEUJp6.mjs → actions-CpgDJP6D.mjs} +12 -12
  24. package/{actions-CXhEUJp6.mjs.map → actions-CpgDJP6D.mjs.map} +1 -1
  25. package/{alert-B0j6GH3V.mjs → alert-C-iwLX_v.mjs} +11 -11
  26. package/{alert-B0j6GH3V.mjs.map → alert-C-iwLX_v.mjs.map} +1 -1
  27. package/{bigint-DXS_rVbG.mjs → bigint-DatNMKMQ.mjs} +7 -7
  28. package/{bigint-DXS_rVbG.mjs.map → bigint-DatNMKMQ.mjs.map} +1 -1
  29. package/{boolean-BTu-4Ihs.mjs → boolean-B0IH8K9C.mjs} +10 -10
  30. package/{boolean-BTu-4Ihs.mjs.map → boolean-B0IH8K9C.mjs.map} +1 -1
  31. package/{clipboard-C6YTX8YB.mjs → clipboard-DWKPq79h.mjs} +7 -7
  32. package/{clipboard-C6YTX8YB.mjs.map → clipboard-DWKPq79h.mjs.map} +1 -1
  33. package/{common-a_cd4SQg.mjs → common-Dzn-bQuK.mjs} +15 -15
  34. package/{common-a_cd4SQg.mjs.map → common-Dzn-bQuK.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-CgyU3A_B.mjs → custom-B_tvJRGH.mjs} +7 -7
  63. package/{custom-CgyU3A_B.mjs.map → custom-B_tvJRGH.mjs.map} +1 -1
  64. package/{date-B8edF8kU.mjs → date-4kOMkpPK.mjs} +10 -10
  65. package/{date-B8edF8kU.mjs.map → date-4kOMkpPK.mjs.map} +1 -1
  66. package/{date_time-BNsYnH-e.mjs → date_time-D96QVf1U.mjs} +18 -18
  67. package/{date_time-BNsYnH-e.mjs.map → date_time-D96QVf1U.mjs.map} +1 -1
  68. package/{display-pfXaBUr6.mjs → display-D5DX6q0x.mjs} +4 -4
  69. package/{display-pfXaBUr6.mjs.map → display-D5DX6q0x.mjs.map} +1 -1
  70. package/{display-CHspVOz6.mjs → display-XSB3T9Jj.mjs} +25 -25
  71. package/{display-CHspVOz6.mjs.map → display-XSB3T9Jj.mjs.map} +1 -1
  72. package/{enum-DoxJn16e.mjs → enum-0BP9v0N5.mjs} +9 -9
  73. package/{enum-DoxJn16e.mjs.map → enum-0BP9v0N5.mjs.map} +1 -1
  74. package/{exceptions-BeFuVcrH.mjs → exceptions-eIayR6I-.mjs} +2 -2
  75. package/{exceptions-BeFuVcrH.mjs.map → exceptions-eIayR6I-.mjs.map} +1 -1
  76. package/exceptions.mjs +2 -2
  77. package/factories.mjs +2 -2
  78. package/{field_composer-CPqM1aSV.mjs → field_composer-ohZKjFvR.mjs} +3 -3
  79. package/{field_composer-CPqM1aSV.mjs.map → field_composer-ohZKjFvR.mjs.map} +1 -1
  80. package/{form-BkQlevYR.mjs → form-Bn6xP2j6.mjs} +15 -15
  81. package/{form-BkQlevYR.mjs.map → form-Bn6xP2j6.mjs.map} +1 -1
  82. package/{guards-D0G8CU2m.mjs → guards-2UyYIEIu.mjs} +2 -2
  83. package/{guards-D0G8CU2m.mjs.map → guards-2UyYIEIu.mjs.map} +1 -1
  84. package/guards.mjs +4 -4
  85. package/helpers.mjs +12 -12
  86. package/{http-C15bx-Gn.mjs → http-BCSx8rC5.mjs} +6 -6
  87. package/{http-C15bx-Gn.mjs.map → http-BCSx8rC5.mjs.map} +1 -1
  88. package/{http-ChBUYgv8.mjs → http-BPAApU10.mjs} +2 -2
  89. package/{http-ChBUYgv8.mjs.map → http-BPAApU10.mjs.map} +1 -1
  90. package/http.mjs +1 -1
  91. package/{index-DHoLuRuJ.mjs → index-BACipeG5.mjs} +6 -6
  92. package/{index-DHoLuRuJ.mjs.map → index-BACipeG5.mjs.map} +1 -1
  93. package/{index-De0W4KPF.mjs → index-BL6_XmCt.mjs} +8 -8
  94. package/{index-De0W4KPF.mjs.map → index-BL6_XmCt.mjs.map} +1 -1
  95. package/{index-CduefDwU.mjs → index-BPddr1wp.mjs} +3 -3
  96. package/{index-CduefDwU.mjs.map → index-BPddr1wp.mjs.map} +1 -1
  97. package/{index-CvhhGjZn.mjs → index-BfgMbbzT.mjs} +3 -3
  98. package/{index-CvhhGjZn.mjs.map → index-BfgMbbzT.mjs.map} +1 -1
  99. package/{index-DLzoBhUb.mjs → index-BzKOotZB.mjs} +4 -4
  100. package/{index-DLzoBhUb.mjs.map → index-BzKOotZB.mjs.map} +1 -1
  101. package/{index-CdaTAyzs.mjs → index-CGcmZuao.mjs} +15 -15
  102. package/{index-CdaTAyzs.mjs.map → index-CGcmZuao.mjs.map} +1 -1
  103. package/{index-CHELe70a.mjs → index-CIi2Afdj.mjs} +8 -8
  104. package/{index-CHELe70a.mjs.map → index-CIi2Afdj.mjs.map} +1 -1
  105. package/{index-Cb3Fmo7E.mjs → index-dd1icY6k.mjs} +43 -43
  106. package/{index-Cb3Fmo7E.mjs.map → index-dd1icY6k.mjs.map} +1 -1
  107. package/{index-BcDX9w4T.mjs → index-omu1xByg.mjs} +8 -8
  108. package/{index-BcDX9w4T.mjs.map → index-omu1xByg.mjs.map} +1 -1
  109. package/index.mjs +37 -37
  110. package/{integer-BWdmDp7S.mjs → integer-DUt4-3uq.mjs} +3 -3
  111. package/{integer-BWdmDp7S.mjs.map → integer-DUt4-3uq.mjs.map} +1 -1
  112. package/{ioc-Q-KAX6x1.mjs → ioc-De3kv3aq.mjs} +2 -2
  113. package/{ioc-Q-KAX6x1.mjs.map → ioc-De3kv3aq.mjs.map} +1 -1
  114. package/ioc.mjs +1 -1
  115. package/{mdi-jw9Ee7p6.mjs → mdi-CicdOYKA.mjs} +15 -15
  116. package/{mdi-jw9Ee7p6.mjs.map → mdi-CicdOYKA.mjs.map} +1 -1
  117. package/{number-Chf-qQs7.mjs → number-UcQrSUBH.mjs} +8 -8
  118. package/{number-Chf-qQs7.mjs.map → number-UcQrSUBH.mjs.map} +1 -1
  119. package/package.json +26 -26
  120. package/{props-fFnbtBgH.mjs → props-DtG7gC-5.mjs} +6 -6
  121. package/{props-fFnbtBgH.mjs.map → props-DtG7gC-5.mjs.map} +1 -1
  122. package/{props-eYGYq1uo.mjs → props-KjN-Kdb9.mjs} +4 -4
  123. package/{props-eYGYq1uo.mjs.map → props-KjN-Kdb9.mjs.map} +1 -1
  124. package/{renderers-DLsO8zG-.mjs → renderers-B4GBzuIN.mjs} +14 -14
  125. package/{renderers-DLsO8zG-.mjs.map → renderers-B4GBzuIN.mjs.map} +1 -1
  126. package/{string-D-UsgMTx.mjs → string-C4_hGKOb.mjs} +13 -13
  127. package/{string-D-UsgMTx.mjs.map → string-C4_hGKOb.mjs.map} +1 -1
  128. package/{unsigned_integer-7R2vw_Qn.mjs → unsigned_integer-59LqwDCe.mjs} +4 -4
  129. package/{unsigned_integer-7R2vw_Qn.mjs.map → unsigned_integer-59LqwDCe.mjs.map} +1 -1
  130. package/{utils-DehfJ8pT.mjs → utils-C5k3feJf.mjs} +2 -2
  131. package/{utils-DehfJ8pT.mjs.map → utils-C5k3feJf.mjs.map} +1 -1
  132. package/{validation-41gHTtyY.mjs → validation-D4B5S8pa.mjs} +5 -5
  133. package/{validation-41gHTtyY.mjs.map → validation-D4B5S8pa.mjs.map} +1 -1
  134. package/{vendor-nhtio-vuetifiable-CS-KbH1h.mjs → vendor-nhtio-vuetifiable-D1pLdLSx.mjs} +16 -16
  135. package/{vendor-nhtio-vuetifiable-CS-KbH1h.mjs.map → vendor-nhtio-vuetifiable-D1pLdLSx.mjs.map} +1 -1
@@ -1,7 +1,7 @@
1
- import { k as useBrowser } from "./ioc-Q-KAX6x1.mjs";
1
+ import { k as useBrowser } from "./ioc-De3kv3aq.mjs";
2
2
  import { useDisplay } from "vuetify";
3
- import { t as toUnreactive, f as isHTMLElement } from "./utils-DehfJ8pT.mjs";
4
- import { l as getCurrentInstanceName, S as SUPPORTS_INTERSECTION, d as debounce, I as IN_BROWSER } from "./vendor-nhtio-vuetifiable-CS-KbH1h.mjs";
3
+ import { t as toUnreactive, f as isHTMLElement } from "./utils-C5k3feJf.mjs";
4
+ import { l as getCurrentInstanceName, S as SUPPORTS_INTERSECTION, d as debounce, I as IN_BROWSER } from "./vendor-nhtio-vuetifiable-D1pLdLSx.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-pfXaBUr6.mjs.map
264
+ //# sourceMappingURL=display-D5DX6q0x.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"display-pfXaBUr6.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-D5DX6q0x.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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"}
@@ -3826,21 +3826,21 @@ export {
3826
3826
  Intersect as I,
3827
3827
  getNextElement as J,
3828
3828
  focusableChildren as K,
3829
- VBtnGroup as L,
3830
- breakpoints as M,
3831
- VSlideYTransition as N,
3832
- filterInputAttrs as O,
3833
- useLocale as P,
3834
- clamp as Q,
3835
- extractNumber as R,
3836
- escapeForRegex as S,
3837
- getCurrentInstance as T,
3838
- useVariant as U,
3829
+ VSlideYTransition as L,
3830
+ filterInputAttrs as M,
3831
+ VBtnGroup as N,
3832
+ breakpoints as O,
3833
+ getCurrentInstance as P,
3834
+ useVariant as Q,
3835
+ useToggleScope as R,
3836
+ refElement as S,
3837
+ genOverlays as T,
3838
+ makeVariantProps as U,
3839
3839
  VProgressLinear as V,
3840
- useToggleScope as W,
3841
- refElement as X,
3842
- genOverlays as Y,
3843
- makeVariantProps as Z,
3840
+ useLocale as W,
3841
+ clamp as X,
3842
+ extractNumber as Y,
3843
+ escapeForRegex as Z,
3844
3844
  useLoader as _,
3845
3845
  VImg as a,
3846
3846
  makeLoaderProps as a$,
@@ -3934,21 +3934,21 @@ export {
3934
3934
  isEmpty as bn,
3935
3935
  VBtn as c,
3936
3936
  VIcon as d,
3937
- useRender as e,
3938
- VDefaultsProvider as f,
3937
+ provideTheme as e,
3938
+ useBackgroundColor as f,
3939
3939
  genericComponent as g,
3940
- provideTheme as h,
3941
- useBackgroundColor as i,
3942
- useDimension as j,
3943
- useDisplay as k,
3940
+ useDimension as h,
3941
+ useDisplay as i,
3942
+ useRender as j,
3943
+ VDefaultsProvider as k,
3944
3944
  convertToUnit as l,
3945
3945
  makeThemeProps as m,
3946
3946
  makeSizeProps as n,
3947
- omit as o,
3947
+ makeDimensionProps as o,
3948
3948
  propsFactory as p,
3949
- makeDimensionProps as q,
3950
- makeComponentProps as r,
3951
- IconValue as s,
3949
+ makeComponentProps as q,
3950
+ IconValue as r,
3951
+ omit as s,
3952
3952
  useBorder as t,
3953
3953
  useProxiedModel as u,
3954
3954
  useElevation as v,
@@ -3957,4 +3957,4 @@ export {
3957
3957
  useRounded as y,
3958
3958
  makeTagProps as z
3959
3959
  };
3960
- //# sourceMappingURL=display-CHspVOz6.mjs.map
3960
+ //# sourceMappingURL=display-XSB3T9Jj.mjs.map