@byeolnaerim/flex-layout 0.0.7 → 0.0.9

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 (127) hide show
  1. package/dist/flex-layout/components/FlexLayout.cjs +62 -28
  2. package/dist/flex-layout/components/FlexLayout.cjs.map +1 -1
  3. package/dist/flex-layout/components/FlexLayout.js +26 -11
  4. package/dist/flex-layout/components/FlexLayout.js.map +1 -1
  5. package/dist/flex-layout/components/FlexLayoutContainer.cjs +121 -55
  6. package/dist/flex-layout/components/FlexLayoutContainer.cjs.map +1 -1
  7. package/dist/flex-layout/components/FlexLayoutContainer.js +68 -25
  8. package/dist/flex-layout/components/FlexLayoutContainer.js.map +1 -1
  9. package/dist/flex-layout/components/FlexLayoutIFramePane.cjs +68 -0
  10. package/dist/flex-layout/components/FlexLayoutIFramePane.cjs.map +1 -0
  11. package/dist/flex-layout/components/FlexLayoutIFramePane.d.ts +4 -0
  12. package/dist/flex-layout/components/FlexLayoutIFramePane.js +44 -0
  13. package/dist/flex-layout/components/FlexLayoutIFramePane.js.map +1 -0
  14. package/dist/flex-layout/components/FlexLayoutResizePanel.cjs +111 -46
  15. package/dist/flex-layout/components/FlexLayoutResizePanel.cjs.map +1 -1
  16. package/dist/flex-layout/components/FlexLayoutResizePanel.d.ts +1 -1
  17. package/dist/flex-layout/components/FlexLayoutResizePanel.js +68 -27
  18. package/dist/flex-layout/components/FlexLayoutResizePanel.js.map +1 -1
  19. package/dist/flex-layout/components/FlexLayoutSplitScreen.cjs +184 -143
  20. package/dist/flex-layout/components/FlexLayoutSplitScreen.cjs.map +1 -1
  21. package/dist/flex-layout/components/FlexLayoutSplitScreen.js +71 -32
  22. package/dist/flex-layout/components/FlexLayoutSplitScreen.js.map +1 -1
  23. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBox.cjs +253 -60
  24. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBox.cjs.map +1 -1
  25. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBox.d.ts +1 -1
  26. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBox.js +215 -39
  27. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBox.js.map +1 -1
  28. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBoxContainer.cjs +40 -17
  29. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBoxContainer.cjs.map +1 -1
  30. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBoxContainer.js +7 -7
  31. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBoxContainer.js.map +1 -1
  32. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBoxItem.cjs +44 -21
  33. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBoxItem.cjs.map +1 -1
  34. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBoxItem.js +7 -8
  35. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBoxItem.js.map +1 -1
  36. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBoxTitleMore.cjs +40 -17
  37. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBoxTitleMore.cjs.map +1 -1
  38. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBoxTitleMore.js +5 -6
  39. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBoxTitleMore.js.map +1 -1
  40. package/dist/flex-layout/components/FlexLayoutSplitScreenScrollBox.cjs +53 -29
  41. package/dist/flex-layout/components/FlexLayoutSplitScreenScrollBox.cjs.map +1 -1
  42. package/dist/flex-layout/components/FlexLayoutSplitScreenScrollBox.js +14 -10
  43. package/dist/flex-layout/components/FlexLayoutSplitScreenScrollBox.js.map +1 -1
  44. package/dist/flex-layout/components/FlexLayoutStickyBox.cjs +46 -27
  45. package/dist/flex-layout/components/FlexLayoutStickyBox.cjs.map +1 -1
  46. package/dist/flex-layout/components/FlexLayoutStickyBox.d.ts +1 -0
  47. package/dist/flex-layout/components/FlexLayoutStickyBox.js +13 -8
  48. package/dist/flex-layout/components/FlexLayoutStickyBox.js.map +1 -1
  49. package/dist/flex-layout/components/index.cjs +54 -49
  50. package/dist/flex-layout/components/index.cjs.map +1 -1
  51. package/dist/flex-layout/components/index.js +16 -8
  52. package/dist/flex-layout/components/index.js.map +1 -1
  53. package/dist/flex-layout/hooks/index.cjs +23 -19
  54. package/dist/flex-layout/hooks/index.cjs.map +1 -1
  55. package/dist/flex-layout/hooks/index.js +2 -3
  56. package/dist/flex-layout/hooks/index.js.map +1 -1
  57. package/dist/flex-layout/hooks/useDrag.cjs +136 -79
  58. package/dist/flex-layout/hooks/useDrag.cjs.map +1 -1
  59. package/dist/flex-layout/hooks/useDrag.d.ts +5 -0
  60. package/dist/flex-layout/hooks/useDrag.js +86 -47
  61. package/dist/flex-layout/hooks/useDrag.js.map +1 -1
  62. package/dist/flex-layout/hooks/useFlexLayoutSplitScreen.cjs +40 -19
  63. package/dist/flex-layout/hooks/useFlexLayoutSplitScreen.cjs.map +1 -1
  64. package/dist/flex-layout/hooks/useFlexLayoutSplitScreen.js +9 -7
  65. package/dist/flex-layout/hooks/useFlexLayoutSplitScreen.js.map +1 -1
  66. package/dist/flex-layout/hooks/useListPaging.cjs +68 -35
  67. package/dist/flex-layout/hooks/useListPaging.cjs.map +1 -1
  68. package/dist/flex-layout/hooks/useListPaging.js +34 -18
  69. package/dist/flex-layout/hooks/useListPaging.js.map +1 -1
  70. package/dist/flex-layout/hooks/useSizes.cjs +45 -23
  71. package/dist/flex-layout/hooks/useSizes.cjs.map +1 -1
  72. package/dist/flex-layout/hooks/useSizes.js +6 -6
  73. package/dist/flex-layout/hooks/useSizes.js.map +1 -1
  74. package/dist/flex-layout/index.cjs +29 -40
  75. package/dist/flex-layout/index.cjs.map +1 -1
  76. package/dist/flex-layout/index.js +5 -6
  77. package/dist/flex-layout/index.js.map +1 -1
  78. package/dist/flex-layout/providers/FlexLayoutContext.cjs +35 -12
  79. package/dist/flex-layout/providers/FlexLayoutContext.cjs.map +1 -1
  80. package/dist/flex-layout/providers/FlexLayoutContext.js +7 -6
  81. package/dist/flex-layout/providers/FlexLayoutContext.js.map +1 -1
  82. package/dist/flex-layout/providers/FlexLayoutHooks.cjs +82 -53
  83. package/dist/flex-layout/providers/FlexLayoutHooks.cjs.map +1 -1
  84. package/dist/flex-layout/providers/FlexLayoutHooks.js +33 -8
  85. package/dist/flex-layout/providers/FlexLayoutHooks.js.map +1 -1
  86. package/dist/flex-layout/providers/index.cjs +21 -12
  87. package/dist/flex-layout/providers/index.cjs.map +1 -1
  88. package/dist/flex-layout/providers/index.js +1 -2
  89. package/dist/flex-layout/providers/index.js.map +1 -1
  90. package/dist/flex-layout/store/FlexLayoutContainerStore.cjs +130 -76
  91. package/dist/flex-layout/store/FlexLayoutContainerStore.cjs.map +1 -1
  92. package/dist/flex-layout/store/FlexLayoutContainerStore.d.ts +1 -0
  93. package/dist/flex-layout/store/FlexLayoutContainerStore.js +63 -38
  94. package/dist/flex-layout/store/FlexLayoutContainerStore.js.map +1 -1
  95. package/dist/flex-layout/store/index.cjs +21 -12
  96. package/dist/flex-layout/store/index.cjs.map +1 -1
  97. package/dist/flex-layout/store/index.js +1 -2
  98. package/dist/flex-layout/store/index.js.map +1 -1
  99. package/dist/flex-layout/types/FlexDirectionTypes.cjs +16 -3
  100. package/dist/flex-layout/types/FlexDirectionTypes.cjs.map +1 -1
  101. package/dist/flex-layout/types/FlexDirectionTypes.js +0 -2
  102. package/dist/flex-layout/types/FlexDirectionTypes.js.map +1 -1
  103. package/dist/flex-layout/types/FlexLayoutTypes.cjs +16 -3
  104. package/dist/flex-layout/types/FlexLayoutTypes.cjs.map +1 -1
  105. package/dist/flex-layout/types/FlexLayoutTypes.d.ts +1 -3
  106. package/dist/flex-layout/types/FlexLayoutTypes.js +0 -2
  107. package/dist/flex-layout/types/FlexLayoutTypes.js.map +1 -1
  108. package/dist/flex-layout/utils/FlexLayoutUtils.cjs +57 -20
  109. package/dist/flex-layout/utils/FlexLayoutUtils.cjs.map +1 -1
  110. package/dist/flex-layout/utils/FlexLayoutUtils.d.ts +4 -4
  111. package/dist/flex-layout/utils/FlexLayoutUtils.js +23 -8
  112. package/dist/flex-layout/utils/FlexLayoutUtils.js.map +1 -1
  113. package/dist/flex-layout/utils/index.cjs +21 -12
  114. package/dist/flex-layout/utils/index.cjs.map +1 -1
  115. package/dist/flex-layout/utils/index.js +1 -2
  116. package/dist/flex-layout/utils/index.js.map +1 -1
  117. package/dist/index.cjs +21 -12
  118. package/dist/index.cjs.map +1 -1
  119. package/dist/index.js +1 -2
  120. package/dist/index.js.map +1 -1
  121. package/dist/metafile-cjs.json +1 -0
  122. package/dist/metafile-esm.json +1 -0
  123. package/dist/types/css.d.cjs +1 -3
  124. package/dist/types/css.d.cjs.map +1 -1
  125. package/dist/types/css.d.js +0 -2
  126. package/dist/types/css.d.js.map +1 -1
  127. package/package.json +5 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/flex-layout/hooks/useListPaging.ts"],"names":["observer"],"mappings":"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","file":"useListPaging.js","sourcesContent":["import {\r\n\tMutableRefObject,\r\n\tuseCallback,\r\n\tuseEffect,\r\n\tuseRef,\r\n\tuseState,\r\n} from \"react\";\r\n\r\nexport type OnReachTerminalType = {\r\n\tisFirst: boolean;\r\n\tisLast: boolean;\r\n\tobserver: IntersectionObserver;\r\n};\r\ninterface UseListPagingForInfinityProps {\r\n\tonReachTerminal?: (onReachTerminalData: OnReachTerminalType) => void;\r\n}\r\nexport const useListPagingForSentinel = <E extends HTMLElement>({\r\n\t//initPageNumber,\r\n\t//initPageSize,\r\n\tonReachTerminal,\r\n}: UseListPagingForInfinityProps): {\r\n\tfirstChildRef: (node: E | null) => void;\r\n\tlastChildRef: (node: E | null) => void;\r\n\t//pageNumber: number;\r\n\t//pageSize: number;\r\n\t//setPageNumber: Dispatch<SetStateAction<number>>;\r\n\t//setPageSize: Dispatch<SetStateAction<number>>;\r\n} => {\r\n\tconst [firstChildNode, setFirstChildNode] = useState<E | null>(null);\r\n\tconst [lastChildNode, setLastChildNode] = useState<E | null>(null);\r\n\tconst observerRef = useRef<IntersectionObserver | null>(null);\r\n\r\n\tconst firstChildRef = useCallback((node: E | null) => {\r\n\t\tsetFirstChildNode(node);\r\n\t}, []);\r\n\r\n\tconst lastChildRef = useCallback((node: E | null) => {\r\n\t\tsetLastChildNode(node);\r\n\t}, []);\r\n\t// 페이지 번호가 변경될 때마다 데이터 로드를 위한 콜백 호출\r\n\r\n\tuseEffect(() => {\r\n\t\tif (firstChildNode && observerRef.current)\r\n\t\t\tobserverRef.current.unobserve(firstChildNode);\r\n\t\tif (lastChildNode && observerRef.current)\r\n\t\t\tobserverRef.current.unobserve(lastChildNode);\r\n\t\tconst handleIntersect: IntersectionObserverCallback = (\r\n\t\t\tentries,\r\n\t\t\tobserver,\r\n\t\t) => {\r\n\t\t\tentries.forEach((entry) => {\r\n\t\t\t\tif (entry.isIntersecting) {\r\n\t\t\t\t\tif (entry.target === firstChildNode) {\r\n\t\t\t\t\t\tif (onReachTerminal)\r\n\t\t\t\t\t\t\tonReachTerminal({\r\n\t\t\t\t\t\t\t\tisFirst: true,\r\n\t\t\t\t\t\t\t\tisLast: false,\r\n\t\t\t\t\t\t\t\tobserver,\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (entry.target === lastChildNode) {\r\n\t\t\t\t\t\tif (onReachTerminal)\r\n\t\t\t\t\t\t\tonReachTerminal({\r\n\t\t\t\t\t\t\t\tisFirst: false,\r\n\t\t\t\t\t\t\t\tisLast: true,\r\n\t\t\t\t\t\t\t\tobserver,\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tconst observer = new IntersectionObserver(handleIntersect, {\r\n\t\t\tthreshold: 0.1,\r\n\t\t});\r\n\r\n\t\tobserverRef.current = observer;\r\n\r\n\t\tif (firstChildNode) observer.observe(firstChildNode);\r\n\t\tif (lastChildNode) observer.observe(lastChildNode);\r\n\r\n\t\treturn () => {\r\n\t\t\tif (observerRef.current) {\r\n\t\t\t\t// if (firstChildNode)\r\n\t\t\t\t// observerRef.current.unobserve(firstChildNode);\r\n\t\t\t\t// if (lastChildNode) observerRef.current.unobserve(lastChildNode);\r\n\t\t\t\tobserverRef.current.disconnect();\r\n\t\t\t}\r\n\t\t};\r\n\t}, [firstChildNode, lastChildNode]);\r\n\r\n\treturn {\r\n\t\tfirstChildRef,\r\n\t\tlastChildRef,\r\n\t};\r\n};\r\n\r\nexport const usePaginationViewNumber = ({\r\n\tinitPageNumber,\r\n}: {\r\n\tinitPageNumber: number;\r\n}) => {\r\n\tconst [showCurrentPageNumber, setShowCurrentPageNumber] =\r\n\t\tuseState<number>(initPageNumber);\r\n\r\n\tconst observerRef = useRef<IntersectionObserver | null>(null);\r\n\tconst showCurrentPageObserveTarget = useCallback(\r\n\t\t(node: HTMLElement | null) => {\r\n\t\t\tif (!node) return;\r\n\r\n\t\t\t// 아직 observer가 없으면 새로 생성\r\n\t\t\tif (!observerRef.current) {\r\n\t\t\t\tobserverRef.current = new IntersectionObserver(\r\n\t\t\t\t\t(entries) => {\r\n\t\t\t\t\t\tentries.forEach((entry) => {\r\n\t\t\t\t\t\t\tif (entry.isIntersecting) {\r\n\t\t\t\t\t\t\t\tconst pageIndexAttr =\r\n\t\t\t\t\t\t\t\t\tentry.target.getAttribute(\r\n\t\t\t\t\t\t\t\t\t\t\"data-page-index\",\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\tif (!pageIndexAttr) return;\r\n\t\t\t\t\t\t\t\t// if (!entry.target.hasAttribute('data-is-first'))\r\n\t\t\t\t\t\t\t\t// return;\r\n\t\t\t\t\t\t\t\tconst pageIndex = parseInt(pageIndexAttr, 10);\r\n\t\t\t\t\t\t\t\tsetShowCurrentPageNumber(pageIndex);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthreshold: 0.1, // 예: 10% 이상 보여야 intersect로 판단\r\n\t\t\t\t\t},\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\t// 해당 노드를 관찰\r\n\t\t\tobserverRef.current.observe(node);\r\n\t\t},\r\n\t\t[],\r\n\t);\r\n\tuseEffect(() => {\r\n\t\tconst currentObserver = observerRef.current;\r\n\t\treturn () => {\r\n\t\t\tif (currentObserver) {\r\n\t\t\t\tcurrentObserver.disconnect();\r\n\t\t\t}\r\n\t\t};\r\n\t}, []);\r\n\treturn {\r\n\t\tshowCurrentPageNumber,\r\n\t\tshowCurrentPageObserveTarget,\r\n\t};\r\n};\r\n\r\nexport const usePagingHandler = <T>({\r\n\tlastCallPageNumber,\r\n\tdataListRef,\r\n}: {\r\n\tlastCallPageNumber: number;\r\n\tdataListRef: MutableRefObject<Array<T[] | null>>;\r\n}) => {\r\n\tconst jumpingPageNumberRef = useRef<number | null>(lastCallPageNumber);\r\n\tuseEffect(() => {\r\n\t\tif (jumpingPageNumberRef.current) {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tjumpingPageNumberRef.current = null;\r\n\t\t\t}, 1000);\r\n\t\t}\r\n\t}, [jumpingPageNumberRef]);\r\n\tconst paginationScrollIntoViewTarget = useRef<\r\n\t\tRecord<number, HTMLDivElement | null>\r\n\t>({});\r\n\tconst pageNumberRef = useRef<number>(lastCallPageNumber);\r\n\r\n\tconst setPaginationRef = useCallback(\r\n\t\t(i: number) => (node: HTMLDivElement | null) => {\r\n\t\t\tif (!node) return;\r\n\r\n\t\t\tpaginationScrollIntoViewTarget.current[i] = node;\r\n\r\n\t\t\t// jumpingPageNumberRef에 값이 있고, 그 값이 현재 i와 같으면 스크롤\r\n\t\t\tif (\r\n\t\t\t\tjumpingPageNumberRef.current !== null &&\r\n\t\t\t\ti === jumpingPageNumberRef.current\r\n\t\t\t) {\r\n\t\t\t\tnode.scrollIntoView({\r\n\t\t\t\t\tbehavior: \"instant\", // 필요한 경우 'smooth' 등으로 수정 가능\r\n\t\t\t\t\tblock: \"start\",\r\n\t\t\t\t});\r\n\t\t\t\tjumpingPageNumberRef.current = null;\r\n\t\t\t}\r\n\t\t},\r\n\t\t[],\r\n\t);\r\n\r\n\t//스크롤이 “첫 아이템” 혹은 “마지막 아이템”에 닿을 때 호출\r\n\tconst handleReachTerminal = (\r\n\t\t{ isFirst, isLast, observer }: OnReachTerminalType,\r\n\t\tdataCallFetch: (callPageNumber: number) => void,\r\n\t) => {\r\n\t\t// 이미 다른 페이지로 점프 중이면, 중복 호출 방지\r\n\t\tif (dataListRef.current.length === 0) return;\r\n\t\tif (jumpingPageNumberRef.current != null) return;\r\n\t\tif (!isFirst && !isLast) return;\r\n\r\n\t\tconst callPageNumber = isFirst\r\n\t\t\t? Math.max(pageNumberRef.current - 1, 0)\r\n\t\t\t: pageNumberRef.current + 1;\r\n\r\n\t\tif (\r\n\t\t\tdataListRef.current[callPageNumber] != null &&\r\n\t\t\t(dataListRef.current[callPageNumber]?.length || 0) > 0\r\n\t\t)\r\n\t\t\treturn;\r\n\t\tjumpingPageNumberRef.current = callPageNumber;\r\n\t\tsetTimeout(() => {\r\n\t\t\tjumpingPageNumberRef.current = null;\r\n\t\t}, 1000);\r\n\t\tdataCallFetch(callPageNumber);\r\n\t};\r\n\r\n\t//페이지네이션에서 페이지 번호를 직접 클릭했을 시\r\n\tconst handleClickPageChange = (\r\n\t\tpage: number,\r\n\t\tdataCallFetch: (callPageNumber: number) => void,\r\n\t) => {\r\n\t\t// PaginationLayer는 1-based, 내부 로직은 0-based\r\n\t\t// 이미 캐싱된 페이지가 있다면, 스크롤만 이동\r\n\t\tconst pageData = dataListRef.current[page];\r\n\r\n\t\t// 이미 캐싱된 페이지가 있다면, 스크롤만 이동\r\n\t\tif (\r\n\t\t\tpageData != null &&\r\n\t\t\tArray.isArray(pageData) &&\r\n\t\t\tpageData.length > 0\r\n\t\t) {\r\n\t\t\tpaginationScrollIntoViewTarget.current[page]?.scrollIntoView({\r\n\t\t\t\tbehavior: \"smooth\",\r\n\t\t\t\tblock: \"start\",\r\n\t\t\t});\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tjumpingPageNumberRef.current = page;\r\n\t\tsetTimeout(() => {\r\n\t\t\tjumpingPageNumberRef.current = null;\r\n\t\t}, 1000);\r\n\t\tdataCallFetch(page);\r\n\t};\r\n\treturn {\r\n\t\tjumpingPageNumberRef,\r\n\t\tpaginationScrollIntoViewTarget,\r\n\t\tpageNumberRef,\r\n\t\tsetPaginationRef,\r\n\t\thandleReachTerminal,\r\n\t\thandleClickPageChange,\r\n\t};\r\n};\r\n"]}
1
+ {"version":3,"sources":["../../../src/flex-layout/hooks/useListPaging.ts"],"sourcesContent":["import {\r\n\tMutableRefObject,\r\n\tuseCallback,\r\n\tuseEffect,\r\n\tuseRef,\r\n\tuseState,\r\n} from \"react\";\r\n\r\nexport type OnReachTerminalType = {\r\n\tisFirst: boolean;\r\n\tisLast: boolean;\r\n\tobserver: IntersectionObserver;\r\n};\r\ninterface UseListPagingForInfinityProps {\r\n\tonReachTerminal?: (onReachTerminalData: OnReachTerminalType) => void;\r\n}\r\nexport const useListPagingForSentinel = <E extends HTMLElement>({\r\n\t//initPageNumber,\r\n\t//initPageSize,\r\n\tonReachTerminal,\r\n}: UseListPagingForInfinityProps): {\r\n\tfirstChildRef: (node: E | null) => void;\r\n\tlastChildRef: (node: E | null) => void;\r\n\t//pageNumber: number;\r\n\t//pageSize: number;\r\n\t//setPageNumber: Dispatch<SetStateAction<number>>;\r\n\t//setPageSize: Dispatch<SetStateAction<number>>;\r\n} => {\r\n\tconst [firstChildNode, setFirstChildNode] = useState<E | null>(null);\r\n\tconst [lastChildNode, setLastChildNode] = useState<E | null>(null);\r\n\tconst observerRef = useRef<IntersectionObserver | null>(null);\r\n\r\n\tconst firstChildRef = useCallback((node: E | null) => {\r\n\t\tsetFirstChildNode(node);\r\n\t}, []);\r\n\r\n\tconst lastChildRef = useCallback((node: E | null) => {\r\n\t\tsetLastChildNode(node);\r\n\t}, []);\r\n\t// 페이지 번호가 변경될 때마다 데이터 로드를 위한 콜백 호출\r\n\r\n\tuseEffect(() => {\r\n\t\tif (firstChildNode && observerRef.current)\r\n\t\t\tobserverRef.current.unobserve(firstChildNode);\r\n\t\tif (lastChildNode && observerRef.current)\r\n\t\t\tobserverRef.current.unobserve(lastChildNode);\r\n\t\tconst handleIntersect: IntersectionObserverCallback = (\r\n\t\t\tentries,\r\n\t\t\tobserver,\r\n\t\t) => {\r\n\t\t\tentries.forEach((entry) => {\r\n\t\t\t\tif (entry.isIntersecting) {\r\n\t\t\t\t\tif (entry.target === firstChildNode) {\r\n\t\t\t\t\t\tif (onReachTerminal)\r\n\t\t\t\t\t\t\tonReachTerminal({\r\n\t\t\t\t\t\t\t\tisFirst: true,\r\n\t\t\t\t\t\t\t\tisLast: false,\r\n\t\t\t\t\t\t\t\tobserver,\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (entry.target === lastChildNode) {\r\n\t\t\t\t\t\tif (onReachTerminal)\r\n\t\t\t\t\t\t\tonReachTerminal({\r\n\t\t\t\t\t\t\t\tisFirst: false,\r\n\t\t\t\t\t\t\t\tisLast: true,\r\n\t\t\t\t\t\t\t\tobserver,\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tconst observer = new IntersectionObserver(handleIntersect, {\r\n\t\t\tthreshold: 0.1,\r\n\t\t});\r\n\r\n\t\tobserverRef.current = observer;\r\n\r\n\t\tif (firstChildNode) observer.observe(firstChildNode);\r\n\t\tif (lastChildNode) observer.observe(lastChildNode);\r\n\r\n\t\treturn () => {\r\n\t\t\tif (observerRef.current) {\r\n\t\t\t\t// if (firstChildNode)\r\n\t\t\t\t// observerRef.current.unobserve(firstChildNode);\r\n\t\t\t\t// if (lastChildNode) observerRef.current.unobserve(lastChildNode);\r\n\t\t\t\tobserverRef.current.disconnect();\r\n\t\t\t}\r\n\t\t};\r\n\t}, [firstChildNode, lastChildNode]);\r\n\r\n\treturn {\r\n\t\tfirstChildRef,\r\n\t\tlastChildRef,\r\n\t};\r\n};\r\n\r\nexport const usePaginationViewNumber = ({\r\n\tinitPageNumber,\r\n}: {\r\n\tinitPageNumber: number;\r\n}) => {\r\n\tconst [showCurrentPageNumber, setShowCurrentPageNumber] =\r\n\t\tuseState<number>(initPageNumber);\r\n\r\n\tconst observerRef = useRef<IntersectionObserver | null>(null);\r\n\tconst showCurrentPageObserveTarget = useCallback(\r\n\t\t(node: HTMLElement | null) => {\r\n\t\t\tif (!node) return;\r\n\r\n\t\t\t// 아직 observer가 없으면 새로 생성\r\n\t\t\tif (!observerRef.current) {\r\n\t\t\t\tobserverRef.current = new IntersectionObserver(\r\n\t\t\t\t\t(entries) => {\r\n\t\t\t\t\t\tentries.forEach((entry) => {\r\n\t\t\t\t\t\t\tif (entry.isIntersecting) {\r\n\t\t\t\t\t\t\t\tconst pageIndexAttr =\r\n\t\t\t\t\t\t\t\t\tentry.target.getAttribute(\r\n\t\t\t\t\t\t\t\t\t\t\"data-page-index\",\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\tif (!pageIndexAttr) return;\r\n\t\t\t\t\t\t\t\t// if (!entry.target.hasAttribute('data-is-first'))\r\n\t\t\t\t\t\t\t\t// return;\r\n\t\t\t\t\t\t\t\tconst pageIndex = parseInt(pageIndexAttr, 10);\r\n\t\t\t\t\t\t\t\tsetShowCurrentPageNumber(pageIndex);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthreshold: 0.1, // 예: 10% 이상 보여야 intersect로 판단\r\n\t\t\t\t\t},\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\t// 해당 노드를 관찰\r\n\t\t\tobserverRef.current.observe(node);\r\n\t\t},\r\n\t\t[],\r\n\t);\r\n\tuseEffect(() => {\r\n\t\tconst currentObserver = observerRef.current;\r\n\t\treturn () => {\r\n\t\t\tif (currentObserver) {\r\n\t\t\t\tcurrentObserver.disconnect();\r\n\t\t\t}\r\n\t\t};\r\n\t}, []);\r\n\treturn {\r\n\t\tshowCurrentPageNumber,\r\n\t\tshowCurrentPageObserveTarget,\r\n\t};\r\n};\r\n\r\nexport const usePagingHandler = <T>({\r\n\tlastCallPageNumber,\r\n\tdataListRef,\r\n}: {\r\n\tlastCallPageNumber: number;\r\n\tdataListRef: MutableRefObject<Array<T[] | null>>;\r\n}) => {\r\n\tconst jumpingPageNumberRef = useRef<number | null>(lastCallPageNumber);\r\n\r\n\tconst paginationScrollIntoViewTarget = useRef<\r\n\t\tRecord<number, HTMLDivElement | null>\r\n\t>({});\r\n\tconst pageNumberRef = useRef<number>(lastCallPageNumber);\r\n\r\n\tconst resetJumpTimerIdRef = useRef<ReturnType<typeof setTimeout> | null>(\r\n\t\tnull,\r\n\t);\r\n\r\n\tconst clearResetTimer = useCallback(() => {\r\n\t\tif (resetJumpTimerIdRef.current !== null) {\r\n\t\t\twindow.clearTimeout(resetJumpTimerIdRef.current);\r\n\t\t\tresetJumpTimerIdRef.current = null;\r\n\t\t}\r\n\t}, []);\r\n\r\n\tconst armResetTimer = useCallback(() => {\r\n\t\tclearResetTimer();\r\n\t\tresetJumpTimerIdRef.current = window.setTimeout(() => {\r\n\t\t\tjumpingPageNumberRef.current = null;\r\n\t\t\tresetJumpTimerIdRef.current = null;\r\n\t\t}, 1000);\r\n\t}, [clearResetTimer]);\r\n\r\n\tuseEffect(() => {\r\n\t\treturn () => {\r\n\t\t\tclearResetTimer();\r\n\t\t};\r\n\t}, [clearResetTimer]);\r\n\r\n\tconst setPaginationRef = useCallback(\r\n\t\t(i: number) => (node: HTMLDivElement | null) => {\r\n\t\t\tif (!node) return;\r\n\r\n\t\t\tpaginationScrollIntoViewTarget.current[i] = node;\r\n\r\n\t\t\t// jumpingPageNumberRef에 값이 있고, 그 값이 현재 i와 같으면 스크롤\r\n\t\t\tif (\r\n\t\t\t\tjumpingPageNumberRef.current !== null &&\r\n\t\t\t\ti === jumpingPageNumberRef.current\r\n\t\t\t) {\r\n\t\t\t\tnode.scrollIntoView({\r\n\t\t\t\t\tbehavior: \"instant\", // 필요한 경우 'smooth' 등으로 수정 가능\r\n\t\t\t\t\tblock: \"start\",\r\n\t\t\t\t});\r\n\t\t\t\tjumpingPageNumberRef.current = null;\r\n\t\t\t}\r\n\t\t},\r\n\t\t[],\r\n\t);\r\n\r\n\t//스크롤이 “첫 아이템” 혹은 “마지막 아이템”에 닿을 때 호출\r\n\tconst handleReachTerminal = (\r\n\t\t{ isFirst, isLast, observer }: OnReachTerminalType,\r\n\t\tdataCallFetch: (callPageNumber: number) => void,\r\n\t) => {\r\n\t\t// 이미 다른 페이지로 점프 중이면, 중복 호출 방지\r\n\t\tif (dataListRef.current.length === 0) return;\r\n\t\tif (jumpingPageNumberRef.current != null) return;\r\n\t\tif (!isFirst && !isLast) return;\r\n\r\n\t\tconst callPageNumber = isFirst\r\n\t\t\t? Math.max(pageNumberRef.current - 1, 0)\r\n\t\t\t: pageNumberRef.current + 1;\r\n\r\n\t\tif (\r\n\t\t\tdataListRef.current[callPageNumber] != null &&\r\n\t\t\t(dataListRef.current[callPageNumber]?.length || 0) > 0\r\n\t\t)\r\n\t\t\treturn;\r\n\t\tjumpingPageNumberRef.current = callPageNumber;\r\n\t\tarmResetTimer();\r\n\t\tdataCallFetch(callPageNumber);\r\n\t};\r\n\r\n\t//페이지네이션에서 페이지 번호를 직접 클릭했을 시\r\n\tconst handleClickPageChange = (\r\n\t\tpage: number,\r\n\t\tdataCallFetch: (callPageNumber: number) => void,\r\n\t) => {\r\n\t\t// PaginationLayer는 1-based, 내부 로직은 0-based\r\n\t\t// 이미 캐싱된 페이지가 있다면, 스크롤만 이동\r\n\t\tconst pageData = dataListRef.current[page];\r\n\r\n\t\t// 이미 캐싱된 페이지가 있다면, 스크롤만 이동\r\n\t\tif (\r\n\t\t\tpageData != null &&\r\n\t\t\tArray.isArray(pageData) &&\r\n\t\t\tpageData.length > 0\r\n\t\t) {\r\n\t\t\tpaginationScrollIntoViewTarget.current[page]?.scrollIntoView({\r\n\t\t\t\tbehavior: \"smooth\",\r\n\t\t\t\tblock: \"start\",\r\n\t\t\t});\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tjumpingPageNumberRef.current = page;\r\n\t\tarmResetTimer();\r\n\t\tdataCallFetch(page);\r\n\t};\r\n\treturn {\r\n\t\tjumpingPageNumberRef,\r\n\t\tpaginationScrollIntoViewTarget,\r\n\t\tpageNumberRef,\r\n\t\tsetPaginationRef,\r\n\t\thandleReachTerminal,\r\n\t\thandleClickPageChange,\r\n\t};\r\n};\r\n"],"mappings":"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","names":["observer"]}
@@ -1,12 +1,33 @@
1
- 'use strict';
2
-
3
- var react = require('react');
4
- var rxjs = require('rxjs');
5
-
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var useSizes_exports = {};
20
+ __export(useSizes_exports, {
21
+ useFirstChildSize: () => useFirstChildSize,
22
+ useSize: () => useSize
23
+ });
24
+ module.exports = __toCommonJS(useSizes_exports);
25
+ var import_react = require("react");
26
+ var import_rxjs = require("rxjs");
6
27
  const useSize = (sizeName) => {
7
- const ref = react.useRef(null);
8
- const [size, setSize] = react.useState(void 0);
9
- react.useLayoutEffect(() => {
28
+ const ref = (0, import_react.useRef)(null);
29
+ const [size, setSize] = (0, import_react.useState)(void 0);
30
+ (0, import_react.useLayoutEffect)(() => {
10
31
  if (!ref.current) return;
11
32
  const handleResize = () => {
12
33
  if (ref.current) {
@@ -28,9 +49,9 @@ const useSize = (sizeName) => {
28
49
  return { ref, size };
29
50
  };
30
51
  const useFirstChildSize = (sizeName) => {
31
- const ref = react.useRef(null);
32
- const [sizes, setSizes] = react.useState();
33
- react.useEffect(() => {
52
+ const ref = (0, import_react.useRef)(null);
53
+ const [sizes, setSizes] = (0, import_react.useState)();
54
+ (0, import_react.useEffect)(() => {
34
55
  if (!ref.current || !ref.current.children[0]) return;
35
56
  if (!sizes || sizes.length === 0) {
36
57
  setSizes([
@@ -39,7 +60,7 @@ const useFirstChildSize = (sizeName) => {
39
60
  ]);
40
61
  }
41
62
  }, []);
42
- react.useEffect(() => {
63
+ (0, import_react.useEffect)(() => {
43
64
  if (!ref.current || !ref.current.children[0]) return;
44
65
  const childrenChangeObserver = new MutationObserver(
45
66
  (mutationList, observer) => {
@@ -59,9 +80,9 @@ const useFirstChildSize = (sizeName) => {
59
80
  subtree: true
60
81
  });
61
82
  let isFocus = false;
62
- const windowResizeSubscribe = rxjs.fromEvent(window, "resize").pipe(
63
- rxjs.distinctUntilChanged(),
64
- rxjs.filter(
83
+ const windowResizeSubscribe = (0, import_rxjs.fromEvent)(window, "resize").pipe(
84
+ (0, import_rxjs.distinctUntilChanged)(),
85
+ (0, import_rxjs.filter)(
65
86
  () => document.activeElement?.tagName !== "INPUT" && !isFocus
66
87
  )
67
88
  ).subscribe((ev) => {
@@ -71,18 +92,18 @@ const useFirstChildSize = (sizeName) => {
71
92
  ref.current.children[0].getBoundingClientRect()[sizeName]
72
93
  ]);
73
94
  });
74
- const documentFocusoutSubscribe = rxjs.fromEvent(
95
+ const documentFocusoutSubscribe = (0, import_rxjs.fromEvent)(
75
96
  document,
76
97
  "focusout"
77
98
  ).pipe(
78
- rxjs.auditTime(1e3),
79
- rxjs.filter((ev) => document.activeElement?.tagName !== "INPUT")
99
+ (0, import_rxjs.auditTime)(1e3),
100
+ (0, import_rxjs.filter)((ev) => document.activeElement?.tagName !== "INPUT")
80
101
  ).subscribe({
81
102
  next: () => {
82
103
  if (isFocus) isFocus = false;
83
104
  }
84
105
  });
85
- const documentFocusinSubscribe = rxjs.fromEvent(
106
+ const documentFocusinSubscribe = (0, import_rxjs.fromEvent)(
86
107
  document,
87
108
  "focusin"
88
109
  ).subscribe({
@@ -97,8 +118,9 @@ const useFirstChildSize = (sizeName) => {
97
118
  }, [sizeName, sizes]);
98
119
  return { ref, sizes };
99
120
  };
100
-
101
- exports.useFirstChildSize = useFirstChildSize;
102
- exports.useSize = useSize;
103
- //# sourceMappingURL=useSizes.cjs.map
121
+ // Annotate the CommonJS export names for ESM import in node:
122
+ 0 && (module.exports = {
123
+ useFirstChildSize,
124
+ useSize
125
+ });
104
126
  //# sourceMappingURL=useSizes.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/flex-layout/hooks/useSizes.ts"],"names":["useRef","useState","useLayoutEffect","useEffect","fromEvent","distinctUntilChanged","filter","auditTime"],"mappings":"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","file":"useSizes.cjs","sourcesContent":["import { useEffect, useLayoutEffect, useRef, useState } from \"react\";\r\nimport { auditTime, distinctUntilChanged, filter, fromEvent } from \"rxjs\";\r\n\r\nexport const useSize = (sizeName: \"height\" | \"width\") => {\r\n\tconst ref = useRef<HTMLDivElement>(null);\r\n\tconst [size, setSize] = useState<number | undefined>(undefined);\r\n\r\n\tuseLayoutEffect(() => {\r\n\t\tif (!ref.current) return;\r\n\r\n\t\tconst handleResize = () => {\r\n\t\t\tif (ref.current) {\r\n\t\t\t\tconst newSize = ref.current.getBoundingClientRect()[\r\n\t\t\t\t\tsizeName as keyof DOMRect\r\n\t\t\t\t] as number;\r\n\t\t\t\tsetSize(newSize);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// 초기 측정\r\n\t\thandleResize();\r\n\r\n\t\t// ResizeObserver 설정\r\n\t\tconst resizeObserver = new ResizeObserver(() => {\r\n\t\t\thandleResize();\r\n\t\t});\r\n\t\tresizeObserver.observe(ref.current);\r\n\r\n\t\t// 윈도우 리사이즈 이벤트도 청취\r\n\t\twindow.addEventListener(\"resize\", handleResize);\r\n\r\n\t\t// 클린업\r\n\t\treturn () => {\r\n\t\t\tresizeObserver.disconnect();\r\n\t\t\twindow.removeEventListener(\"resize\", handleResize);\r\n\t\t};\r\n\t}, [sizeName]);\r\n\r\n\treturn { ref, size };\r\n};\r\nexport const useFirstChildSize = (sizeName: string) => {\r\n\tconst ref = useRef<HTMLDivElement>(null);\r\n\tconst [sizes, setSizes] = useState<Array<number>>();\r\n\tuseEffect(() => {\r\n\t\tif (!ref.current || !ref.current.children[0]) return;\r\n\t\tif (!sizes || sizes.length === 0) {\r\n\t\t\tsetSizes([\r\n\t\t\t\tref.current.getBoundingClientRect()[\r\n\t\t\t\t\tsizeName as keyof DOMRect\r\n\t\t\t\t] as number,\r\n\t\t\t\tref.current.children[0].getBoundingClientRect()[\r\n\t\t\t\t\tsizeName as keyof DOMRect\r\n\t\t\t\t] as number,\r\n\t\t\t]);\r\n\t\t}\r\n\t}, []);\r\n\tuseEffect(() => {\r\n\t\tif (!ref.current || !ref.current.children[0]) return;\r\n\t\tconst childrenChangeObserver = new MutationObserver(\r\n\t\t\t(mutationList, observer) => {\r\n\t\t\t\tmutationList.forEach((mutation) => {\r\n\t\t\t\t\tif (!ref.current || !sizes || !ref.current.children[0])\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\tconst newSize = ref.current.getBoundingClientRect()[\r\n\t\t\t\t\t\tsizeName as keyof DOMRect\r\n\t\t\t\t\t] as number;\r\n\t\t\t\t\t//if (newSize === sizes[0]) return;\r\n\t\t\t\t\tsetSizes([\r\n\t\t\t\t\t\tnewSize,\r\n\t\t\t\t\t\tref.current.children[0].getBoundingClientRect()[\r\n\t\t\t\t\t\t\tsizeName as keyof DOMRect\r\n\t\t\t\t\t\t] as number,\r\n\t\t\t\t\t]);\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t);\r\n\t\tchildrenChangeObserver.observe(ref.current, {\r\n\t\t\tchildList: true,\r\n\t\t\tsubtree: true,\r\n\t\t});\r\n\t\tlet isFocus = false;\r\n\r\n\t\tconst windowResizeSubscribe = fromEvent<UIEvent>(window, \"resize\")\r\n\t\t\t.pipe(\r\n\t\t\t\tdistinctUntilChanged(),\r\n\t\t\t\tfilter(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t\tdocument.activeElement?.tagName !== \"INPUT\" && !isFocus,\r\n\t\t\t\t),\r\n\t\t\t)\r\n\t\t\t.subscribe((ev) => {\r\n\t\t\t\tif (!ref.current || !ref.current.children[0]) return;\r\n\t\t\t\tsetSizes([\r\n\t\t\t\t\tref.current.getBoundingClientRect()[\r\n\t\t\t\t\t\tsizeName as keyof DOMRect\r\n\t\t\t\t\t] as number,\r\n\t\t\t\t\tref.current.children[0].getBoundingClientRect()[\r\n\t\t\t\t\t\tsizeName as keyof DOMRect\r\n\t\t\t\t\t] as number,\r\n\t\t\t\t]);\r\n\t\t\t});\r\n\r\n\t\tconst documentFocusoutSubscribe = fromEvent<FocusEvent>(\r\n\t\t\tdocument,\r\n\t\t\t\"focusout\",\r\n\t\t)\r\n\t\t\t.pipe(\r\n\t\t\t\tauditTime(1000),\r\n\t\t\t\tfilter((ev) => document.activeElement?.tagName !== \"INPUT\"),\r\n\t\t\t)\r\n\t\t\t.subscribe({\r\n\t\t\t\tnext: () => {\r\n\t\t\t\t\tif (isFocus) isFocus = false;\r\n\t\t\t\t},\r\n\t\t\t});\r\n\r\n\t\tconst documentFocusinSubscribe = fromEvent<FocusEvent>(\r\n\t\t\tdocument,\r\n\t\t\t\"focusin\",\r\n\t\t).subscribe({\r\n\t\t\tnext: (ev) =>\r\n\t\t\t\t(isFocus = (ev.target as Element).tagName === \"INPUT\"),\r\n\t\t});\r\n\r\n\t\treturn () => {\r\n\t\t\twindowResizeSubscribe.unsubscribe();\r\n\t\t\tdocumentFocusoutSubscribe.unsubscribe();\r\n\t\t\tdocumentFocusinSubscribe.unsubscribe();\r\n\t\t\tchildrenChangeObserver.disconnect();\r\n\t\t};\r\n\t}, [sizeName, sizes]);\r\n\treturn { ref, sizes };\r\n};\r\n"]}
1
+ {"version":3,"sources":["../../../src/flex-layout/hooks/useSizes.ts"],"sourcesContent":["import { useEffect, useLayoutEffect, useRef, useState } from \"react\";\r\nimport { auditTime, distinctUntilChanged, filter, fromEvent } from \"rxjs\";\r\n\r\nexport const useSize = (sizeName: \"height\" | \"width\") => {\r\n\tconst ref = useRef<HTMLDivElement>(null);\r\n\tconst [size, setSize] = useState<number | undefined>(undefined);\r\n\r\n\tuseLayoutEffect(() => {\r\n\t\tif (!ref.current) return;\r\n\r\n\t\tconst handleResize = () => {\r\n\t\t\tif (ref.current) {\r\n\t\t\t\tconst newSize = ref.current.getBoundingClientRect()[\r\n\t\t\t\t\tsizeName as keyof DOMRect\r\n\t\t\t\t] as number;\r\n\t\t\t\tsetSize(newSize);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// 초기 측정\r\n\t\thandleResize();\r\n\r\n\t\t// ResizeObserver 설정\r\n\t\tconst resizeObserver = new ResizeObserver(() => {\r\n\t\t\thandleResize();\r\n\t\t});\r\n\t\tresizeObserver.observe(ref.current);\r\n\r\n\t\t// 윈도우 리사이즈 이벤트도 청취\r\n\t\twindow.addEventListener(\"resize\", handleResize);\r\n\r\n\t\t// 클린업\r\n\t\treturn () => {\r\n\t\t\tresizeObserver.disconnect();\r\n\t\t\twindow.removeEventListener(\"resize\", handleResize);\r\n\t\t};\r\n\t}, [sizeName]);\r\n\r\n\treturn { ref, size };\r\n};\r\nexport const useFirstChildSize = (sizeName: string) => {\r\n\tconst ref = useRef<HTMLDivElement>(null);\r\n\tconst [sizes, setSizes] = useState<Array<number>>();\r\n\tuseEffect(() => {\r\n\t\tif (!ref.current || !ref.current.children[0]) return;\r\n\t\tif (!sizes || sizes.length === 0) {\r\n\t\t\tsetSizes([\r\n\t\t\t\tref.current.getBoundingClientRect()[\r\n\t\t\t\t\tsizeName as keyof DOMRect\r\n\t\t\t\t] as number,\r\n\t\t\t\tref.current.children[0].getBoundingClientRect()[\r\n\t\t\t\t\tsizeName as keyof DOMRect\r\n\t\t\t\t] as number,\r\n\t\t\t]);\r\n\t\t}\r\n\t}, []);\r\n\tuseEffect(() => {\r\n\t\tif (!ref.current || !ref.current.children[0]) return;\r\n\t\tconst childrenChangeObserver = new MutationObserver(\r\n\t\t\t(mutationList, observer) => {\r\n\t\t\t\tmutationList.forEach((mutation) => {\r\n\t\t\t\t\tif (!ref.current || !sizes || !ref.current.children[0])\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\tconst newSize = ref.current.getBoundingClientRect()[\r\n\t\t\t\t\t\tsizeName as keyof DOMRect\r\n\t\t\t\t\t] as number;\r\n\t\t\t\t\t//if (newSize === sizes[0]) return;\r\n\t\t\t\t\tsetSizes([\r\n\t\t\t\t\t\tnewSize,\r\n\t\t\t\t\t\tref.current.children[0].getBoundingClientRect()[\r\n\t\t\t\t\t\t\tsizeName as keyof DOMRect\r\n\t\t\t\t\t\t] as number,\r\n\t\t\t\t\t]);\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t);\r\n\t\tchildrenChangeObserver.observe(ref.current, {\r\n\t\t\tchildList: true,\r\n\t\t\tsubtree: true,\r\n\t\t});\r\n\t\tlet isFocus = false;\r\n\r\n\t\tconst windowResizeSubscribe = fromEvent<UIEvent>(window, \"resize\")\r\n\t\t\t.pipe(\r\n\t\t\t\tdistinctUntilChanged(),\r\n\t\t\t\tfilter(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t\tdocument.activeElement?.tagName !== \"INPUT\" && !isFocus,\r\n\t\t\t\t),\r\n\t\t\t)\r\n\t\t\t.subscribe((ev) => {\r\n\t\t\t\tif (!ref.current || !ref.current.children[0]) return;\r\n\t\t\t\tsetSizes([\r\n\t\t\t\t\tref.current.getBoundingClientRect()[\r\n\t\t\t\t\t\tsizeName as keyof DOMRect\r\n\t\t\t\t\t] as number,\r\n\t\t\t\t\tref.current.children[0].getBoundingClientRect()[\r\n\t\t\t\t\t\tsizeName as keyof DOMRect\r\n\t\t\t\t\t] as number,\r\n\t\t\t\t]);\r\n\t\t\t});\r\n\r\n\t\tconst documentFocusoutSubscribe = fromEvent<FocusEvent>(\r\n\t\t\tdocument,\r\n\t\t\t\"focusout\",\r\n\t\t)\r\n\t\t\t.pipe(\r\n\t\t\t\tauditTime(1000),\r\n\t\t\t\tfilter((ev) => document.activeElement?.tagName !== \"INPUT\"),\r\n\t\t\t)\r\n\t\t\t.subscribe({\r\n\t\t\t\tnext: () => {\r\n\t\t\t\t\tif (isFocus) isFocus = false;\r\n\t\t\t\t},\r\n\t\t\t});\r\n\r\n\t\tconst documentFocusinSubscribe = fromEvent<FocusEvent>(\r\n\t\t\tdocument,\r\n\t\t\t\"focusin\",\r\n\t\t).subscribe({\r\n\t\t\tnext: (ev) =>\r\n\t\t\t\t(isFocus = (ev.target as Element).tagName === \"INPUT\"),\r\n\t\t});\r\n\r\n\t\treturn () => {\r\n\t\t\twindowResizeSubscribe.unsubscribe();\r\n\t\t\tdocumentFocusoutSubscribe.unsubscribe();\r\n\t\t\tdocumentFocusinSubscribe.unsubscribe();\r\n\t\t\tchildrenChangeObserver.disconnect();\r\n\t\t};\r\n\t}, [sizeName, sizes]);\r\n\treturn { ref, sizes };\r\n};\r\n"],"mappings":"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","names":[]}
@@ -1,6 +1,5 @@
1
- import { useRef, useState, useLayoutEffect, useEffect } from 'react';
2
- import { fromEvent, distinctUntilChanged, filter, auditTime } from 'rxjs';
3
-
1
+ import { useEffect, useLayoutEffect, useRef, useState } from "react";
2
+ import { auditTime, distinctUntilChanged, filter, fromEvent } from "rxjs";
4
3
  const useSize = (sizeName) => {
5
4
  const ref = useRef(null);
6
5
  const [size, setSize] = useState(void 0);
@@ -95,7 +94,8 @@ const useFirstChildSize = (sizeName) => {
95
94
  }, [sizeName, sizes]);
96
95
  return { ref, sizes };
97
96
  };
98
-
99
- export { useFirstChildSize, useSize };
100
- //# sourceMappingURL=useSizes.js.map
97
+ export {
98
+ useFirstChildSize,
99
+ useSize
100
+ };
101
101
  //# sourceMappingURL=useSizes.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/flex-layout/hooks/useSizes.ts"],"names":[],"mappings":"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","file":"useSizes.js","sourcesContent":["import { useEffect, useLayoutEffect, useRef, useState } from \"react\";\r\nimport { auditTime, distinctUntilChanged, filter, fromEvent } from \"rxjs\";\r\n\r\nexport const useSize = (sizeName: \"height\" | \"width\") => {\r\n\tconst ref = useRef<HTMLDivElement>(null);\r\n\tconst [size, setSize] = useState<number | undefined>(undefined);\r\n\r\n\tuseLayoutEffect(() => {\r\n\t\tif (!ref.current) return;\r\n\r\n\t\tconst handleResize = () => {\r\n\t\t\tif (ref.current) {\r\n\t\t\t\tconst newSize = ref.current.getBoundingClientRect()[\r\n\t\t\t\t\tsizeName as keyof DOMRect\r\n\t\t\t\t] as number;\r\n\t\t\t\tsetSize(newSize);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// 초기 측정\r\n\t\thandleResize();\r\n\r\n\t\t// ResizeObserver 설정\r\n\t\tconst resizeObserver = new ResizeObserver(() => {\r\n\t\t\thandleResize();\r\n\t\t});\r\n\t\tresizeObserver.observe(ref.current);\r\n\r\n\t\t// 윈도우 리사이즈 이벤트도 청취\r\n\t\twindow.addEventListener(\"resize\", handleResize);\r\n\r\n\t\t// 클린업\r\n\t\treturn () => {\r\n\t\t\tresizeObserver.disconnect();\r\n\t\t\twindow.removeEventListener(\"resize\", handleResize);\r\n\t\t};\r\n\t}, [sizeName]);\r\n\r\n\treturn { ref, size };\r\n};\r\nexport const useFirstChildSize = (sizeName: string) => {\r\n\tconst ref = useRef<HTMLDivElement>(null);\r\n\tconst [sizes, setSizes] = useState<Array<number>>();\r\n\tuseEffect(() => {\r\n\t\tif (!ref.current || !ref.current.children[0]) return;\r\n\t\tif (!sizes || sizes.length === 0) {\r\n\t\t\tsetSizes([\r\n\t\t\t\tref.current.getBoundingClientRect()[\r\n\t\t\t\t\tsizeName as keyof DOMRect\r\n\t\t\t\t] as number,\r\n\t\t\t\tref.current.children[0].getBoundingClientRect()[\r\n\t\t\t\t\tsizeName as keyof DOMRect\r\n\t\t\t\t] as number,\r\n\t\t\t]);\r\n\t\t}\r\n\t}, []);\r\n\tuseEffect(() => {\r\n\t\tif (!ref.current || !ref.current.children[0]) return;\r\n\t\tconst childrenChangeObserver = new MutationObserver(\r\n\t\t\t(mutationList, observer) => {\r\n\t\t\t\tmutationList.forEach((mutation) => {\r\n\t\t\t\t\tif (!ref.current || !sizes || !ref.current.children[0])\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\tconst newSize = ref.current.getBoundingClientRect()[\r\n\t\t\t\t\t\tsizeName as keyof DOMRect\r\n\t\t\t\t\t] as number;\r\n\t\t\t\t\t//if (newSize === sizes[0]) return;\r\n\t\t\t\t\tsetSizes([\r\n\t\t\t\t\t\tnewSize,\r\n\t\t\t\t\t\tref.current.children[0].getBoundingClientRect()[\r\n\t\t\t\t\t\t\tsizeName as keyof DOMRect\r\n\t\t\t\t\t\t] as number,\r\n\t\t\t\t\t]);\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t);\r\n\t\tchildrenChangeObserver.observe(ref.current, {\r\n\t\t\tchildList: true,\r\n\t\t\tsubtree: true,\r\n\t\t});\r\n\t\tlet isFocus = false;\r\n\r\n\t\tconst windowResizeSubscribe = fromEvent<UIEvent>(window, \"resize\")\r\n\t\t\t.pipe(\r\n\t\t\t\tdistinctUntilChanged(),\r\n\t\t\t\tfilter(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t\tdocument.activeElement?.tagName !== \"INPUT\" && !isFocus,\r\n\t\t\t\t),\r\n\t\t\t)\r\n\t\t\t.subscribe((ev) => {\r\n\t\t\t\tif (!ref.current || !ref.current.children[0]) return;\r\n\t\t\t\tsetSizes([\r\n\t\t\t\t\tref.current.getBoundingClientRect()[\r\n\t\t\t\t\t\tsizeName as keyof DOMRect\r\n\t\t\t\t\t] as number,\r\n\t\t\t\t\tref.current.children[0].getBoundingClientRect()[\r\n\t\t\t\t\t\tsizeName as keyof DOMRect\r\n\t\t\t\t\t] as number,\r\n\t\t\t\t]);\r\n\t\t\t});\r\n\r\n\t\tconst documentFocusoutSubscribe = fromEvent<FocusEvent>(\r\n\t\t\tdocument,\r\n\t\t\t\"focusout\",\r\n\t\t)\r\n\t\t\t.pipe(\r\n\t\t\t\tauditTime(1000),\r\n\t\t\t\tfilter((ev) => document.activeElement?.tagName !== \"INPUT\"),\r\n\t\t\t)\r\n\t\t\t.subscribe({\r\n\t\t\t\tnext: () => {\r\n\t\t\t\t\tif (isFocus) isFocus = false;\r\n\t\t\t\t},\r\n\t\t\t});\r\n\r\n\t\tconst documentFocusinSubscribe = fromEvent<FocusEvent>(\r\n\t\t\tdocument,\r\n\t\t\t\"focusin\",\r\n\t\t).subscribe({\r\n\t\t\tnext: (ev) =>\r\n\t\t\t\t(isFocus = (ev.target as Element).tagName === \"INPUT\"),\r\n\t\t});\r\n\r\n\t\treturn () => {\r\n\t\t\twindowResizeSubscribe.unsubscribe();\r\n\t\t\tdocumentFocusoutSubscribe.unsubscribe();\r\n\t\t\tdocumentFocusinSubscribe.unsubscribe();\r\n\t\t\tchildrenChangeObserver.disconnect();\r\n\t\t};\r\n\t}, [sizeName, sizes]);\r\n\treturn { ref, sizes };\r\n};\r\n"]}
1
+ {"version":3,"sources":["../../../src/flex-layout/hooks/useSizes.ts"],"sourcesContent":["import { useEffect, useLayoutEffect, useRef, useState } from \"react\";\r\nimport { auditTime, distinctUntilChanged, filter, fromEvent } from \"rxjs\";\r\n\r\nexport const useSize = (sizeName: \"height\" | \"width\") => {\r\n\tconst ref = useRef<HTMLDivElement>(null);\r\n\tconst [size, setSize] = useState<number | undefined>(undefined);\r\n\r\n\tuseLayoutEffect(() => {\r\n\t\tif (!ref.current) return;\r\n\r\n\t\tconst handleResize = () => {\r\n\t\t\tif (ref.current) {\r\n\t\t\t\tconst newSize = ref.current.getBoundingClientRect()[\r\n\t\t\t\t\tsizeName as keyof DOMRect\r\n\t\t\t\t] as number;\r\n\t\t\t\tsetSize(newSize);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// 초기 측정\r\n\t\thandleResize();\r\n\r\n\t\t// ResizeObserver 설정\r\n\t\tconst resizeObserver = new ResizeObserver(() => {\r\n\t\t\thandleResize();\r\n\t\t});\r\n\t\tresizeObserver.observe(ref.current);\r\n\r\n\t\t// 윈도우 리사이즈 이벤트도 청취\r\n\t\twindow.addEventListener(\"resize\", handleResize);\r\n\r\n\t\t// 클린업\r\n\t\treturn () => {\r\n\t\t\tresizeObserver.disconnect();\r\n\t\t\twindow.removeEventListener(\"resize\", handleResize);\r\n\t\t};\r\n\t}, [sizeName]);\r\n\r\n\treturn { ref, size };\r\n};\r\nexport const useFirstChildSize = (sizeName: string) => {\r\n\tconst ref = useRef<HTMLDivElement>(null);\r\n\tconst [sizes, setSizes] = useState<Array<number>>();\r\n\tuseEffect(() => {\r\n\t\tif (!ref.current || !ref.current.children[0]) return;\r\n\t\tif (!sizes || sizes.length === 0) {\r\n\t\t\tsetSizes([\r\n\t\t\t\tref.current.getBoundingClientRect()[\r\n\t\t\t\t\tsizeName as keyof DOMRect\r\n\t\t\t\t] as number,\r\n\t\t\t\tref.current.children[0].getBoundingClientRect()[\r\n\t\t\t\t\tsizeName as keyof DOMRect\r\n\t\t\t\t] as number,\r\n\t\t\t]);\r\n\t\t}\r\n\t}, []);\r\n\tuseEffect(() => {\r\n\t\tif (!ref.current || !ref.current.children[0]) return;\r\n\t\tconst childrenChangeObserver = new MutationObserver(\r\n\t\t\t(mutationList, observer) => {\r\n\t\t\t\tmutationList.forEach((mutation) => {\r\n\t\t\t\t\tif (!ref.current || !sizes || !ref.current.children[0])\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\tconst newSize = ref.current.getBoundingClientRect()[\r\n\t\t\t\t\t\tsizeName as keyof DOMRect\r\n\t\t\t\t\t] as number;\r\n\t\t\t\t\t//if (newSize === sizes[0]) return;\r\n\t\t\t\t\tsetSizes([\r\n\t\t\t\t\t\tnewSize,\r\n\t\t\t\t\t\tref.current.children[0].getBoundingClientRect()[\r\n\t\t\t\t\t\t\tsizeName as keyof DOMRect\r\n\t\t\t\t\t\t] as number,\r\n\t\t\t\t\t]);\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t);\r\n\t\tchildrenChangeObserver.observe(ref.current, {\r\n\t\t\tchildList: true,\r\n\t\t\tsubtree: true,\r\n\t\t});\r\n\t\tlet isFocus = false;\r\n\r\n\t\tconst windowResizeSubscribe = fromEvent<UIEvent>(window, \"resize\")\r\n\t\t\t.pipe(\r\n\t\t\t\tdistinctUntilChanged(),\r\n\t\t\t\tfilter(\r\n\t\t\t\t\t() =>\r\n\t\t\t\t\t\tdocument.activeElement?.tagName !== \"INPUT\" && !isFocus,\r\n\t\t\t\t),\r\n\t\t\t)\r\n\t\t\t.subscribe((ev) => {\r\n\t\t\t\tif (!ref.current || !ref.current.children[0]) return;\r\n\t\t\t\tsetSizes([\r\n\t\t\t\t\tref.current.getBoundingClientRect()[\r\n\t\t\t\t\t\tsizeName as keyof DOMRect\r\n\t\t\t\t\t] as number,\r\n\t\t\t\t\tref.current.children[0].getBoundingClientRect()[\r\n\t\t\t\t\t\tsizeName as keyof DOMRect\r\n\t\t\t\t\t] as number,\r\n\t\t\t\t]);\r\n\t\t\t});\r\n\r\n\t\tconst documentFocusoutSubscribe = fromEvent<FocusEvent>(\r\n\t\t\tdocument,\r\n\t\t\t\"focusout\",\r\n\t\t)\r\n\t\t\t.pipe(\r\n\t\t\t\tauditTime(1000),\r\n\t\t\t\tfilter((ev) => document.activeElement?.tagName !== \"INPUT\"),\r\n\t\t\t)\r\n\t\t\t.subscribe({\r\n\t\t\t\tnext: () => {\r\n\t\t\t\t\tif (isFocus) isFocus = false;\r\n\t\t\t\t},\r\n\t\t\t});\r\n\r\n\t\tconst documentFocusinSubscribe = fromEvent<FocusEvent>(\r\n\t\t\tdocument,\r\n\t\t\t\"focusin\",\r\n\t\t).subscribe({\r\n\t\t\tnext: (ev) =>\r\n\t\t\t\t(isFocus = (ev.target as Element).tagName === \"INPUT\"),\r\n\t\t});\r\n\r\n\t\treturn () => {\r\n\t\t\twindowResizeSubscribe.unsubscribe();\r\n\t\t\tdocumentFocusoutSubscribe.unsubscribe();\r\n\t\t\tdocumentFocusinSubscribe.unsubscribe();\r\n\t\t\tchildrenChangeObserver.disconnect();\r\n\t\t};\r\n\t}, [sizeName, sizes]);\r\n\treturn { ref, sizes };\r\n};\r\n"],"mappings":"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","names":[]}
@@ -1,42 +1,31 @@
1
- 'use strict';
2
-
3
- var components = require('./components');
4
- var hooks = require('./hooks');
5
- var providers = require('./providers');
6
- var utils = require('./utils');
7
- var store = require('./store');
8
-
9
-
10
-
11
- Object.keys(components).forEach(function (k) {
12
- if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
13
- enumerable: true,
14
- get: function () { return components[k]; }
15
- });
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
+ var flex_layout_exports = {};
17
+ module.exports = __toCommonJS(flex_layout_exports);
18
+ __reExport(flex_layout_exports, require("./components"), module.exports);
19
+ __reExport(flex_layout_exports, require("./hooks"), module.exports);
20
+ __reExport(flex_layout_exports, require("./providers"), module.exports);
21
+ __reExport(flex_layout_exports, require("./utils"), module.exports);
22
+ __reExport(flex_layout_exports, require("./store"), module.exports);
23
+ // Annotate the CommonJS export names for ESM import in node:
24
+ 0 && (module.exports = {
25
+ ...require("./components"),
26
+ ...require("./hooks"),
27
+ ...require("./providers"),
28
+ ...require("./utils"),
29
+ ...require("./store")
16
30
  });
17
- Object.keys(hooks).forEach(function (k) {
18
- if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
19
- enumerable: true,
20
- get: function () { return hooks[k]; }
21
- });
22
- });
23
- Object.keys(providers).forEach(function (k) {
24
- if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
25
- enumerable: true,
26
- get: function () { return providers[k]; }
27
- });
28
- });
29
- Object.keys(utils).forEach(function (k) {
30
- if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
31
- enumerable: true,
32
- get: function () { return utils[k]; }
33
- });
34
- });
35
- Object.keys(store).forEach(function (k) {
36
- if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
37
- enumerable: true,
38
- get: function () { return store[k]; }
39
- });
40
- });
41
- //# sourceMappingURL=index.cjs.map
42
31
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs","sourcesContent":[]}
1
+ {"version":3,"sources":["../../src/flex-layout/index.ts"],"sourcesContent":["//src/index.ts\r\n\r\nexport * from \"./components\";\r\n\r\nexport * from \"./hooks\";\r\n\r\nexport * from \"./providers\";\r\n\r\nexport * from \"./utils\";\r\n\r\nexport * from \"./store\";\r\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAEA,gCAAc,yBAFd;AAIA,gCAAc,oBAJd;AAMA,gCAAc,wBANd;AAQA,gCAAc,oBARd;AAUA,gCAAc,oBAVd;","names":[]}
@@ -1,7 +1,6 @@
1
- export * from './components';
2
- export * from './hooks';
3
- export * from './providers';
4
- export * from './utils';
5
- export * from './store';
6
- //# sourceMappingURL=index.js.map
1
+ export * from "./components";
2
+ export * from "./hooks";
3
+ export * from "./providers";
4
+ export * from "./utils";
5
+ export * from "./store";
7
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js","sourcesContent":[]}
1
+ {"version":3,"sources":["../../src/flex-layout/index.ts"],"sourcesContent":["//src/index.ts\r\n\r\nexport * from \"./components\";\r\n\r\nexport * from \"./hooks\";\r\n\r\nexport * from \"./providers\";\r\n\r\nexport * from \"./utils\";\r\n\r\nexport * from \"./store\";\r\n"],"mappings":"AAEA,cAAc;AAEd,cAAc;AAEd,cAAc;AAEd,cAAc;AAEd,cAAc;","names":[]}
@@ -1,11 +1,33 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var react = require('react');
5
-
6
- const FlexLayoutContext = react.createContext(null);
1
+ "use strict";
2
+ "use client";
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var FlexLayoutContext_exports = {};
21
+ __export(FlexLayoutContext_exports, {
22
+ FlexLayoutProvider: () => FlexLayoutProvider,
23
+ useFlexLayoutContext: () => useFlexLayoutContext
24
+ });
25
+ module.exports = __toCommonJS(FlexLayoutContext_exports);
26
+ var import_jsx_runtime = require("react/jsx-runtime");
27
+ var import_react = require("react");
28
+ const FlexLayoutContext = (0, import_react.createContext)(null);
7
29
  function useFlexLayoutContext() {
8
- const context = react.useContext(FlexLayoutContext);
30
+ const context = (0, import_react.useContext)(FlexLayoutContext);
9
31
  if (!context) {
10
32
  throw new Error(
11
33
  "useFlexLayoutContext must be used within FlexLayoutContext.Provider"
@@ -17,10 +39,11 @@ function FlexLayoutProvider({
17
39
  value,
18
40
  children
19
41
  }) {
20
- return /* @__PURE__ */ jsxRuntime.jsx(FlexLayoutContext.Provider, { value, children });
42
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FlexLayoutContext.Provider, { value, children });
21
43
  }
22
-
23
- exports.FlexLayoutProvider = FlexLayoutProvider;
24
- exports.useFlexLayoutContext = useFlexLayoutContext;
25
- //# sourceMappingURL=FlexLayoutContext.cjs.map
44
+ // Annotate the CommonJS export names for ESM import in node:
45
+ 0 && (module.exports = {
46
+ FlexLayoutProvider,
47
+ useFlexLayoutContext
48
+ });
26
49
  //# sourceMappingURL=FlexLayoutContext.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/flex-layout/providers/FlexLayoutContext.tsx"],"names":["createContext","useContext","jsx"],"mappings":";;;;;AAKA,MAAM,iBAAA,GAAoBA,oBAA6C,IAAI,CAAA;AAGpE,SAAS,oBAAA,GAAuB;AACtC,EAAA,MAAM,OAAA,GAAUC,iBAAW,iBAAiB,CAAA;AAC5C,EAAA,IAAI,CAAC,OAAA,EAAS;AACb,IAAA,MAAM,IAAI,KAAA;AAAA,MACT;AAAA,KACD;AAAA,EACD;AACA,EAAA,OAAO,OAAA;AACR;AAQO,SAAS,kBAAA,CAAmB;AAAA,EAClC,KAAA;AAAA,EACA;AACD,CAAA,EAA4B;AAC3B,EAAA,uBACCC,cAAA,CAAC,iBAAA,CAAkB,QAAA,EAAlB,EAA2B,OAC1B,QAAA,EACF,CAAA;AAEF","file":"FlexLayoutContext.cjs","sourcesContent":["\"use client\";\r\nimport { createContext, ReactNode, useContext } from \"react\";\r\nimport { FlexLayoutContextValue } from \"../types/FlexLayoutTypes\";\r\n\r\n// Context 생성\r\nconst FlexLayoutContext = createContext<FlexLayoutContextValue | null>(null);\r\n\r\n// Context를 사용하기 위한 Custom Hook\r\nexport function useFlexLayoutContext() {\r\n\tconst context = useContext(FlexLayoutContext);\r\n\tif (!context) {\r\n\t\tthrow new Error(\r\n\t\t\t\"useFlexLayoutContext must be used within FlexLayoutContext.Provider\",\r\n\t\t);\r\n\t}\r\n\treturn context;\r\n}\r\n\r\n// Provider 컴포넌트\r\ninterface FlexLayoutProviderProps {\r\n\tvalue: FlexLayoutContextValue;\r\n\tchildren: ReactNode;\r\n}\r\n\r\nexport function FlexLayoutProvider({\r\n\tvalue,\r\n\tchildren,\r\n}: FlexLayoutProviderProps) {\r\n\treturn (\r\n\t\t<FlexLayoutContext.Provider value={value}>\r\n\t\t\t{children}\r\n\t\t</FlexLayoutContext.Provider>\r\n\t);\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../../src/flex-layout/providers/FlexLayoutContext.tsx"],"sourcesContent":["\"use client\";\r\nimport { createContext, ReactNode, useContext } from \"react\";\r\nimport { FlexLayoutContextValue } from \"../types/FlexLayoutTypes\";\r\n\r\n// Context 생성\r\nconst FlexLayoutContext = createContext<FlexLayoutContextValue | null>(null);\r\n\r\n// Context를 사용하기 위한 Custom Hook\r\nexport function useFlexLayoutContext() {\r\n\tconst context = useContext(FlexLayoutContext);\r\n\tif (!context) {\r\n\t\tthrow new Error(\r\n\t\t\t\"useFlexLayoutContext must be used within FlexLayoutContext.Provider\",\r\n\t\t);\r\n\t}\r\n\treturn context;\r\n}\r\n\r\n// Provider 컴포넌트\r\ninterface FlexLayoutProviderProps {\r\n\tvalue: FlexLayoutContextValue;\r\n\tchildren: ReactNode;\r\n}\r\n\r\nexport function FlexLayoutProvider({\r\n\tvalue,\r\n\tchildren,\r\n}: FlexLayoutProviderProps) {\r\n\treturn (\r\n\t\t<FlexLayoutContext.Provider value={value}>\r\n\t\t\t{children}\r\n\t\t</FlexLayoutContext.Provider>\r\n\t);\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6BE;AA5BF,mBAAqD;AAIrD,MAAM,wBAAoB,4BAA6C,IAAI;AAGpE,SAAS,uBAAuB;AACtC,QAAM,cAAU,yBAAW,iBAAiB;AAC5C,MAAI,CAAC,SAAS;AACb,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AACA,SAAO;AACR;AAQO,SAAS,mBAAmB;AAAA,EAClC;AAAA,EACA;AACD,GAA4B;AAC3B,SACC,4CAAC,kBAAkB,UAAlB,EAA2B,OAC1B,UACF;AAEF;","names":[]}
@@ -1,6 +1,6 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { createContext, useContext } from 'react';
3
-
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { createContext, useContext } from "react";
4
4
  const FlexLayoutContext = createContext(null);
5
5
  function useFlexLayoutContext() {
6
6
  const context = useContext(FlexLayoutContext);
@@ -17,7 +17,8 @@ function FlexLayoutProvider({
17
17
  }) {
18
18
  return /* @__PURE__ */ jsx(FlexLayoutContext.Provider, { value, children });
19
19
  }
20
-
21
- export { FlexLayoutProvider, useFlexLayoutContext };
22
- //# sourceMappingURL=FlexLayoutContext.js.map
20
+ export {
21
+ FlexLayoutProvider,
22
+ useFlexLayoutContext
23
+ };
23
24
  //# sourceMappingURL=FlexLayoutContext.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/flex-layout/providers/FlexLayoutContext.tsx"],"names":[],"mappings":";;;AAKA,MAAM,iBAAA,GAAoB,cAA6C,IAAI,CAAA;AAGpE,SAAS,oBAAA,GAAuB;AACtC,EAAA,MAAM,OAAA,GAAU,WAAW,iBAAiB,CAAA;AAC5C,EAAA,IAAI,CAAC,OAAA,EAAS;AACb,IAAA,MAAM,IAAI,KAAA;AAAA,MACT;AAAA,KACD;AAAA,EACD;AACA,EAAA,OAAO,OAAA;AACR;AAQO,SAAS,kBAAA,CAAmB;AAAA,EAClC,KAAA;AAAA,EACA;AACD,CAAA,EAA4B;AAC3B,EAAA,uBACC,GAAA,CAAC,iBAAA,CAAkB,QAAA,EAAlB,EAA2B,OAC1B,QAAA,EACF,CAAA;AAEF","file":"FlexLayoutContext.js","sourcesContent":["\"use client\";\r\nimport { createContext, ReactNode, useContext } from \"react\";\r\nimport { FlexLayoutContextValue } from \"../types/FlexLayoutTypes\";\r\n\r\n// Context 생성\r\nconst FlexLayoutContext = createContext<FlexLayoutContextValue | null>(null);\r\n\r\n// Context를 사용하기 위한 Custom Hook\r\nexport function useFlexLayoutContext() {\r\n\tconst context = useContext(FlexLayoutContext);\r\n\tif (!context) {\r\n\t\tthrow new Error(\r\n\t\t\t\"useFlexLayoutContext must be used within FlexLayoutContext.Provider\",\r\n\t\t);\r\n\t}\r\n\treturn context;\r\n}\r\n\r\n// Provider 컴포넌트\r\ninterface FlexLayoutProviderProps {\r\n\tvalue: FlexLayoutContextValue;\r\n\tchildren: ReactNode;\r\n}\r\n\r\nexport function FlexLayoutProvider({\r\n\tvalue,\r\n\tchildren,\r\n}: FlexLayoutProviderProps) {\r\n\treturn (\r\n\t\t<FlexLayoutContext.Provider value={value}>\r\n\t\t\t{children}\r\n\t\t</FlexLayoutContext.Provider>\r\n\t);\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../../src/flex-layout/providers/FlexLayoutContext.tsx"],"sourcesContent":["\"use client\";\r\nimport { createContext, ReactNode, useContext } from \"react\";\r\nimport { FlexLayoutContextValue } from \"../types/FlexLayoutTypes\";\r\n\r\n// Context 생성\r\nconst FlexLayoutContext = createContext<FlexLayoutContextValue | null>(null);\r\n\r\n// Context를 사용하기 위한 Custom Hook\r\nexport function useFlexLayoutContext() {\r\n\tconst context = useContext(FlexLayoutContext);\r\n\tif (!context) {\r\n\t\tthrow new Error(\r\n\t\t\t\"useFlexLayoutContext must be used within FlexLayoutContext.Provider\",\r\n\t\t);\r\n\t}\r\n\treturn context;\r\n}\r\n\r\n// Provider 컴포넌트\r\ninterface FlexLayoutProviderProps {\r\n\tvalue: FlexLayoutContextValue;\r\n\tchildren: ReactNode;\r\n}\r\n\r\nexport function FlexLayoutProvider({\r\n\tvalue,\r\n\tchildren,\r\n}: FlexLayoutProviderProps) {\r\n\treturn (\r\n\t\t<FlexLayoutContext.Provider value={value}>\r\n\t\t\t{children}\r\n\t\t</FlexLayoutContext.Provider>\r\n\t);\r\n}\r\n"],"mappings":";AA6BE;AA5BF,SAAS,eAA0B,kBAAkB;AAIrD,MAAM,oBAAoB,cAA6C,IAAI;AAGpE,SAAS,uBAAuB;AACtC,QAAM,UAAU,WAAW,iBAAiB;AAC5C,MAAI,CAAC,SAAS;AACb,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AACA,SAAO;AACR;AAQO,SAAS,mBAAmB;AAAA,EAClC;AAAA,EACA;AACD,GAA4B;AAC3B,SACC,oBAAC,kBAAkB,UAAlB,EAA2B,OAC1B,UACF;AAEF;","names":[]}