@byeolnaerim/flex-layout 0.0.8 → 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 +96 -42
  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 +44 -14
  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,10 +1,38 @@
1
- 'use strict';
2
-
3
- var react = require('react');
4
- var FlexLayoutContainerStore = require('../store/FlexLayoutContainerStore');
5
- var FlexLayoutUtils = require('../utils/FlexLayoutUtils');
6
- var rxjs = require('rxjs');
7
-
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 FlexLayoutHooks_exports = {};
21
+ __export(FlexLayoutHooks_exports, {
22
+ ContainerOpenCloseProvider: () => ContainerOpenCloseProvider,
23
+ containerOpenCloseSubjectMap: () => containerOpenCloseSubjectMap,
24
+ containerSpreadSubjectMap: () => containerSpreadSubjectMap,
25
+ useContainerSize: () => useContainerSize,
26
+ useContainers: () => useContainers,
27
+ useDecompositionLayout: () => useDecompositionLayout,
28
+ useDoubleClick: () => useDoubleClick,
29
+ useLayoutName: () => useLayoutName
30
+ });
31
+ module.exports = __toCommonJS(FlexLayoutHooks_exports);
32
+ var import_react = require("react");
33
+ var import_FlexLayoutContainerStore = require("../store/FlexLayoutContainerStore");
34
+ var import_FlexLayoutUtils = require("../utils/FlexLayoutUtils");
35
+ var import_rxjs = require("rxjs");
8
36
  const g = globalThis;
9
37
  g.__FLEX_SUBJECTS__ ?? (g.__FLEX_SUBJECTS__ = { openClose: {}, spread: {} });
10
38
  const containerOpenCloseSubjectMap = g.__FLEX_SUBJECTS__.openClose;
@@ -15,15 +43,15 @@ const ContainerOpenCloseProvider = ({
15
43
  sizeName
16
44
  }) => {
17
45
  if (!containerOpenCloseSubjectMap[containerName]) {
18
- containerOpenCloseSubjectMap[containerName] = new rxjs.Subject();
46
+ containerOpenCloseSubjectMap[containerName] = new import_rxjs.Subject();
19
47
  }
20
48
  if (!containerSpreadSubjectMap[containerName]) {
21
- containerSpreadSubjectMap[containerName] = new rxjs.Subject();
49
+ containerSpreadSubjectMap[containerName] = new import_rxjs.Subject();
22
50
  }
23
- const [containers, setContainers] = react.useState([]);
24
- const [container, setContainer] = react.useState();
25
- react.useEffect(() => {
26
- const subscription = FlexLayoutContainerStore.getLayoutInfos(layoutName).subscribe(
51
+ const [containers, setContainers] = (0, import_react.useState)([]);
52
+ const [container, setContainer] = (0, import_react.useState)();
53
+ (0, import_react.useEffect)(() => {
54
+ const subscription = (0, import_FlexLayoutContainerStore.getLayoutInfos)(layoutName).subscribe(
27
55
  (layout) => {
28
56
  if (!layout || !layout.container[containerName] || !layout.container[containerName].current)
29
57
  return;
@@ -37,7 +65,7 @@ const ContainerOpenCloseProvider = ({
37
65
  );
38
66
  return () => subscription.unsubscribe();
39
67
  }, [containerName, layoutName]);
40
- react.useEffect(() => {
68
+ (0, import_react.useEffect)(() => {
41
69
  const styleName = `${sizeName.charAt(0).toUpperCase() + sizeName.substring(1)}`;
42
70
  const clientSize = "client" + styleName;
43
71
  const outerSize = "outer" + styleName;
@@ -52,14 +80,14 @@ const ContainerOpenCloseProvider = ({
52
80
  closeOption = {}
53
81
  }) => {
54
82
  if (!container || containers.length === 0) return;
55
- const currentGrow = FlexLayoutUtils.getGrow(container);
83
+ const currentGrow = (0, import_FlexLayoutUtils.getGrow)(container);
56
84
  const styleMap = window.getComputedStyle(container);
57
- const maxSizeGrow = FlexLayoutUtils.mathGrow(
85
+ const maxSizeGrow = (0, import_FlexLayoutUtils.mathGrow)(
58
86
  parseInt(styleMap[maxSize]),
59
87
  container.parentElement && container.parentElement[clientSize] || window[outerSize],
60
88
  containers.length
61
89
  );
62
- const open = () => FlexLayoutUtils.openFlex(container, containers, {
90
+ const open = () => (0, import_FlexLayoutUtils.openFlex)(container, containers, {
63
91
  sizeName,
64
92
  ...isNaN(maxSizeGrow) ? {} : {
65
93
  openGrowImportant: maxSizeGrow
@@ -73,7 +101,7 @@ const ContainerOpenCloseProvider = ({
73
101
  targetContainer: container
74
102
  });
75
103
  });
76
- const close = () => FlexLayoutUtils.closeFlex(container, containers, {
104
+ const close = () => (0, import_FlexLayoutUtils.closeFlex)(container, containers, {
77
105
  sizeName,
78
106
  ...closeOption
79
107
  }).then(() => {
@@ -108,9 +136,9 @@ const ContainerOpenCloseProvider = ({
108
136
  return null;
109
137
  };
110
138
  const useContainers = (layoutName) => {
111
- const [containers, setContainers] = react.useState([]);
112
- react.useEffect(() => {
113
- const subscription = FlexLayoutContainerStore.getLayoutInfos(layoutName).subscribe(
139
+ const [containers, setContainers] = (0, import_react.useState)([]);
140
+ (0, import_react.useEffect)(() => {
141
+ const subscription = (0, import_FlexLayoutContainerStore.getLayoutInfos)(layoutName).subscribe(
114
142
  (layout) => {
115
143
  setContainers(
116
144
  Object.values(layout.container).filter(
@@ -124,10 +152,10 @@ const useContainers = (layoutName) => {
124
152
  return containers;
125
153
  };
126
154
  const useLayoutName = (containerName) => {
127
- const [layoutName, setLayoutName] = react.useState();
128
- react.useEffect(() => {
129
- const subscribe = FlexLayoutContainerStore.flexContainerStore.pipe(
130
- rxjs.map(
155
+ const [layoutName, setLayoutName] = (0, import_react.useState)();
156
+ (0, import_react.useEffect)(() => {
157
+ const subscribe = import_FlexLayoutContainerStore.flexContainerStore.pipe(
158
+ (0, import_rxjs.map)(
131
159
  (layouts) => Object.entries(layouts).filter(([_, v]) => v[containerName]).map(([k]) => k)[0]
132
160
  // 첫 번째 결과 가져오기
133
161
  )
@@ -142,12 +170,12 @@ const useDecompositionLayout = ({
142
170
  }) => {
143
171
  const derivedLayoutName = useLayoutName(containerName);
144
172
  const finalLayoutName = initialLayoutName || derivedLayoutName;
145
- const [containers, setContainers] = react.useState([]);
146
- const [container, setContainer] = react.useState();
147
- const [resizePanel, setResizePanel] = react.useState();
148
- react.useEffect(() => {
173
+ const [containers, setContainers] = (0, import_react.useState)([]);
174
+ const [container, setContainer] = (0, import_react.useState)();
175
+ const [resizePanel, setResizePanel] = (0, import_react.useState)();
176
+ (0, import_react.useEffect)(() => {
149
177
  if (!finalLayoutName) return;
150
- const subscription = FlexLayoutContainerStore.getLayoutInfos(finalLayoutName).subscribe(
178
+ const subscription = (0, import_FlexLayoutContainerStore.getLayoutInfos)(finalLayoutName).subscribe(
151
179
  (layout) => {
152
180
  if (!layout) return;
153
181
  setContainers(
@@ -173,8 +201,8 @@ const useContainerSize = (containerName) => {
173
201
  const { layout, container, resizePanel } = useDecompositionLayout({
174
202
  containerName
175
203
  });
176
- const [size, setSize] = react.useState();
177
- react.useEffect(() => {
204
+ const [size, setSize] = (0, import_react.useState)();
205
+ (0, import_react.useEffect)(() => {
178
206
  if (!container) return;
179
207
  const observer = new ResizeObserver((entries) => {
180
208
  for (const entry of entries) {
@@ -190,25 +218,25 @@ const useContainerSize = (containerName) => {
190
218
  return { size };
191
219
  };
192
220
  const useDoubleClick = (containerName, opt) => {
193
- const [isOpen, setIsOpen] = react.useState();
194
- const [isDoubleClick, setIsDoubleClick] = react.useState();
195
- react.useEffect(() => {
196
- const resizePanelClickEvent = FlexLayoutContainerStore.getResizePanelRef({
221
+ const [isOpen, setIsOpen] = (0, import_react.useState)();
222
+ const [isDoubleClick, setIsDoubleClick] = (0, import_react.useState)();
223
+ (0, import_react.useEffect)(() => {
224
+ const resizePanelClickEvent = (0, import_FlexLayoutContainerStore.getResizePanelRef)({
197
225
  containerName
198
226
  }).pipe(
199
- rxjs.filter(
227
+ (0, import_rxjs.filter)(
200
228
  (resizePanelref) => resizePanelref != void 0 && resizePanelref.current != void 0
201
229
  ),
202
230
  //take(1),
203
- rxjs.switchMap((resizePanelref) => {
204
- if (!resizePanelref || !resizePanelref.current) return rxjs.EMPTY;
205
- return rxjs.fromEvent(resizePanelref.current, "click");
231
+ (0, import_rxjs.switchMap)((resizePanelref) => {
232
+ if (!resizePanelref || !resizePanelref.current) return import_rxjs.EMPTY;
233
+ return (0, import_rxjs.fromEvent)(resizePanelref.current, "click");
206
234
  })
207
235
  );
208
236
  const subscribe = resizePanelClickEvent.pipe(
209
- rxjs.buffer(resizePanelClickEvent.pipe(rxjs.debounceTime(500))),
210
- rxjs.filter((clickEventArray) => clickEventArray.length >= 2),
211
- rxjs.map((events) => {
237
+ (0, import_rxjs.buffer)(resizePanelClickEvent.pipe((0, import_rxjs.debounceTime)(500))),
238
+ (0, import_rxjs.filter)((clickEventArray) => clickEventArray.length >= 2),
239
+ (0, import_rxjs.map)((events) => {
212
240
  containerOpenCloseSubjectMap[containerName].next({
213
241
  ...opt,
214
242
  openOption: {
@@ -234,14 +262,15 @@ const useDoubleClick = (containerName, opt) => {
234
262
  }, [containerName]);
235
263
  return { isOpen, isDoubleClick, setIsDoubleClick };
236
264
  };
237
-
238
- exports.ContainerOpenCloseProvider = ContainerOpenCloseProvider;
239
- exports.containerOpenCloseSubjectMap = containerOpenCloseSubjectMap;
240
- exports.containerSpreadSubjectMap = containerSpreadSubjectMap;
241
- exports.useContainerSize = useContainerSize;
242
- exports.useContainers = useContainers;
243
- exports.useDecompositionLayout = useDecompositionLayout;
244
- exports.useDoubleClick = useDoubleClick;
245
- exports.useLayoutName = useLayoutName;
246
- //# sourceMappingURL=FlexLayoutHooks.cjs.map
265
+ // Annotate the CommonJS export names for ESM import in node:
266
+ 0 && (module.exports = {
267
+ ContainerOpenCloseProvider,
268
+ containerOpenCloseSubjectMap,
269
+ containerSpreadSubjectMap,
270
+ useContainerSize,
271
+ useContainers,
272
+ useDecompositionLayout,
273
+ useDoubleClick,
274
+ useLayoutName
275
+ });
247
276
  //# sourceMappingURL=FlexLayoutHooks.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/flex-layout/providers/FlexLayoutHooks.tsx"],"names":["Subject","useState","useEffect","getLayoutInfos","getGrow","mathGrow","openFlex","closeFlex","flexContainerStore","map","getResizePanelRef","filter","switchMap","EMPTY","fromEvent","buffer","debounceTime"],"mappings":"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","file":"FlexLayoutHooks.cjs","sourcesContent":["\"use client\";\r\n\r\nimport { useEffect, useState } from \"react\";\r\nimport {\r\n\tflexContainerStore,\r\n\tgetLayoutInfos,\r\n\tgetResizePanelRef,\r\n} from \"../store/FlexLayoutContainerStore\";\r\nimport {\r\n\tcloseFlex,\r\n\tgetGrow,\r\n\tmathGrow,\r\n\topenFlex,\r\n} from \"../utils/FlexLayoutUtils\";\r\n\r\nimport {\r\n\tbuffer,\r\n\tdebounceTime,\r\n\tEMPTY,\r\n\tfilter,\r\n\tfromEvent,\r\n\tmap,\r\n\tSubject,\r\n\tswitchMap,\r\n} from \"rxjs\";\r\nconst g = globalThis as any;\r\ng.__FLEX_SUBJECTS__ ??= { openClose: {}, spread: {} };\r\n\r\nexport type SubjectMap<T> = Record<string, Subject<T>>;\r\n\r\n// 컨테이너 상태 타입 정의\r\ninterface ContainerStateRequest {\r\n\tmode: \"toggle\" | \"open\" | \"close\";\r\n\tinitOpenState?: boolean;\r\n\tonOpen?: () => void;\r\n\tonClose?: () => void;\r\n\topenOption?: {\r\n\t\tisPrevSizeOpen?: boolean;\r\n\t\tisResize?: boolean;\r\n\t\topenGrowImportant?: number;\r\n\t};\r\n\tcloseOption?: { isResize?: boolean; isDsiabledResizePanel?: boolean };\r\n}\r\n\r\ninterface ContainerState {\r\n\tisOpen: boolean;\r\n\ttargetContainer: HTMLElement;\r\n\tgrow: number;\r\n}\r\nexport const containerOpenCloseSubjectMap: SubjectMap<ContainerStateRequest> =\r\n\tg.__FLEX_SUBJECTS__.openClose;\r\nexport const containerSpreadSubjectMap: SubjectMap<ContainerState> =\r\n\tg.__FLEX_SUBJECTS__.spread;\r\n\r\n// export const containerOpenCloseSubjectMap: SubjectMap<ContainerStateRequest> = (\r\n// Object.keys({}) as Array<string>\r\n// ).reduce((total, key) => {\r\n// total[key] = new Subject<ContainerStateRequest>();\r\n// return total;\r\n// }, {} as SubjectMap<ContainerStateRequest>);\r\n\r\n// export const containerSpreadSubjectMap: SubjectMap<ContainerState> = (\r\n// Object.keys({}) as Array<string>\r\n// ).reduce((total, key) => {\r\n// total[key] = new Subject<ContainerState>();\r\n// return total;\r\n// }, {} as SubjectMap<ContainerState>);\r\n\r\nexport const ContainerOpenCloseProvider = ({\r\n\tlayoutName,\r\n\tcontainerName,\r\n\tsizeName,\r\n}: {\r\n\tlayoutName: string;\r\n\tcontainerName: string;\r\n\tsizeName: \"width\" | \"height\";\r\n}) => {\r\n\t// SubjectMap에 중복 체크 후 Subject 추가\r\n\tif (!containerOpenCloseSubjectMap[containerName]) {\r\n\t\tcontainerOpenCloseSubjectMap[containerName] =\r\n\t\t\tnew Subject<ContainerStateRequest>();\r\n\t}\r\n\tif (!containerSpreadSubjectMap[containerName]) {\r\n\t\tcontainerSpreadSubjectMap[containerName] =\r\n\t\t\tnew Subject<ContainerState>();\r\n\t}\r\n\r\n\tconst [containers, setContainers] = useState<HTMLElement[]>([]);\r\n\tconst [container, setContainer] = useState<HTMLElement>();\r\n\r\n\tuseEffect(() => {\r\n\t\t// 특정 layoutName과 containerName을 통해 ref를 구독\r\n\t\tconst subscription = getLayoutInfos(layoutName as string).subscribe(\r\n\t\t\t(layout) => {\r\n\t\t\t\tif (\r\n\t\t\t\t\t!layout ||\r\n\t\t\t\t\t!layout.container[containerName] ||\r\n\t\t\t\t\t!layout.container[containerName].current\r\n\t\t\t\t)\r\n\t\t\t\t\treturn;\r\n\t\t\t\tsetContainers(\r\n\t\t\t\t\tObject.values(layout.container)\r\n\t\t\t\t\t\t.filter(\r\n\t\t\t\t\t\t\t(e): e is { current: HTMLElement } =>\r\n\t\t\t\t\t\t\t\te.current !== null,\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t\t.map((e) => e.current),\r\n\t\t\t\t);\r\n\t\t\t\tsetContainer(layout.container[containerName].current);\r\n\t\t\t},\r\n\t\t);\r\n\r\n\t\t// 구독 해제\r\n\t\treturn () => subscription.unsubscribe();\r\n\t}, [containerName, layoutName]);\r\n\tuseEffect(() => {\r\n\t\tconst styleName = `${sizeName.charAt(0).toUpperCase() + sizeName.substring(1)}`;\r\n\t\tconst clientSize = (\"client\" + styleName) as\r\n\t\t\t| \"clientWidth\"\r\n\t\t\t| \"clientHeight\";\r\n\t\tconst outerSize = (\"outer\" + styleName) as \"outerWidth\" | \"outerHeight\";\r\n\t\tconst maxSize = (\"max\" + styleName) as \"maxWidth\" | \"maxHeight\";\r\n\t\tconst subscribe = containerOpenCloseSubjectMap[containerName].subscribe(\r\n\t\t\t({\r\n\t\t\t\tmode,\r\n\t\t\t\tinitOpenState: isOpenState,\r\n\t\t\t\tonClose,\r\n\t\t\t\tonOpen,\r\n\t\t\t\topenOption = {},\r\n\t\t\t\tcloseOption = {},\r\n\t\t\t}) => {\r\n\t\t\t\tif (!container || containers.length === 0) return;\r\n\t\t\t\tconst currentGrow = getGrow(container);\r\n\t\t\t\tconst styleMap = window.getComputedStyle(container);\r\n\t\t\t\tconst maxSizeGrow = mathGrow(\r\n\t\t\t\t\tparseInt(styleMap[maxSize]),\r\n\t\t\t\t\t(container.parentElement &&\r\n\t\t\t\t\t\tcontainer.parentElement[clientSize]) ||\r\n\t\t\t\t\t\twindow[outerSize],\r\n\t\t\t\t\tcontainers.length,\r\n\t\t\t\t);\r\n\t\t\t\tconst open = () =>\r\n\t\t\t\t\topenFlex(container, containers, {\r\n\t\t\t\t\t\tsizeName,\r\n\t\t\t\t\t\t...(isNaN(maxSizeGrow)\r\n\t\t\t\t\t\t\t? {}\r\n\t\t\t\t\t\t\t: {\r\n\t\t\t\t\t\t\t\t\topenGrowImportant: maxSizeGrow,\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t...openOption,\r\n\t\t\t\t\t}).then((openTargetGrow) => {\r\n\t\t\t\t\t\tif (onOpen) onOpen();\r\n\t\t\t\t\t\tcontainerSpreadSubjectMap[containerName].next({\r\n\t\t\t\t\t\t\tisOpen: true,\r\n\t\t\t\t\t\t\tgrow: openTargetGrow as any,\r\n\t\t\t\t\t\t\ttargetContainer: container,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\tconst close = () =>\r\n\t\t\t\t\tcloseFlex(container, containers, {\r\n\t\t\t\t\t\tsizeName,\r\n\t\t\t\t\t\t...closeOption,\r\n\t\t\t\t\t}).then(() => {\r\n\t\t\t\t\t\tif (onClose) onClose();\r\n\t\t\t\t\t\tcontainerSpreadSubjectMap[containerName].next({\r\n\t\t\t\t\t\t\tisOpen: false,\r\n\t\t\t\t\t\t\tgrow: 0,\r\n\t\t\t\t\t\t\ttargetContainer: container,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\tif (mode === \"toggle\") {\r\n\t\t\t\t\tif (currentGrow === 0) {\r\n\t\t\t\t\t\topen();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tclose();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (mode === \"open\") {\r\n\t\t\t\t\tif (currentGrow === 0) {\r\n\t\t\t\t\t\topen();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (mode === \"close\") {\r\n\t\t\t\t\tif (currentGrow !== 0) {\r\n\t\t\t\t\t\tclose();\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\treturn () => {\r\n\t\t\tsubscribe.unsubscribe();\r\n\t\t};\r\n\t}, [containerName, container, containers, sizeName]);\r\n\r\n\treturn null;\r\n};\r\n\r\nexport const useContainers = (layoutName: string) => {\r\n\tconst [containers, setContainers] = useState<HTMLElement[]>([]);\r\n\r\n\tuseEffect(() => {\r\n\t\t// 특정 layoutName과 containerName을 통해 ref를 구독\r\n\t\tconst subscription = getLayoutInfos(layoutName as string).subscribe(\r\n\t\t\t(layout) => {\r\n\t\t\t\tsetContainers(\r\n\t\t\t\t\tObject.values(layout.container)\r\n\t\t\t\t\t\t.filter(\r\n\t\t\t\t\t\t\t(e): e is { current: HTMLElement } =>\r\n\t\t\t\t\t\t\t\te.current !== null,\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t\t.map((e) => e.current),\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t);\r\n\r\n\t\t// 구독 해제\r\n\t\treturn () => subscription.unsubscribe();\r\n\t}, [layoutName]);\r\n\treturn containers;\r\n};\r\n\r\nexport const useLayoutName = (containerName: string) => {\r\n\tconst [layoutName, setLayoutName] = useState<string>();\r\n\tuseEffect(() => {\r\n\t\tconst subscribe = flexContainerStore\r\n\t\t\t.pipe(\r\n\t\t\t\tmap(\r\n\t\t\t\t\t(layouts) =>\r\n\t\t\t\t\t\tObject.entries(layouts)\r\n\t\t\t\t\t\t\t.filter(([_, v]) => v[containerName])\r\n\t\t\t\t\t\t\t.map(([k]) => k)[0] as string, // 첫 번째 결과 가져오기\r\n\t\t\t\t),\r\n\t\t\t)\r\n\t\t\t.subscribe(setLayoutName);\r\n\r\n\t\t// 컴포넌트 언마운트 시 구독 해제\r\n\t\treturn () => subscribe.unsubscribe();\r\n\t}, [containerName]);\r\n\r\n\treturn layoutName;\r\n};\r\n\r\nexport const useDecompositionLayout = ({\r\n\tlayoutName: initialLayoutName,\r\n\tcontainerName,\r\n}: {\r\n\tlayoutName?: string;\r\n\tcontainerName: string;\r\n}) => {\r\n\tconst derivedLayoutName = useLayoutName(containerName);\r\n\tconst finalLayoutName = initialLayoutName || derivedLayoutName;\r\n\r\n\tconst [containers, setContainers] = useState<HTMLElement[]>([]);\r\n\tconst [container, setContainer] = useState<HTMLElement>();\r\n\tconst [resizePanel, setResizePanel] = useState<HTMLElement>();\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!finalLayoutName) return; // layoutName이 준비될 때까지 대기\r\n\t\t// 특정 layoutName과 containerName을 통해 ref를 구독\r\n\t\tconst subscription = getLayoutInfos(finalLayoutName).subscribe(\r\n\t\t\t(layout) => {\r\n\t\t\t\tif (!layout) return;\r\n\t\t\t\tsetContainers(\r\n\t\t\t\t\tObject.values(layout.container)\r\n\t\t\t\t\t\t.filter(\r\n\t\t\t\t\t\t\t(e): e is { current: HTMLElement } =>\r\n\t\t\t\t\t\t\t\te.current !== null,\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t\t.map((e) => e.current),\r\n\t\t\t\t);\r\n\t\t\t\tif (\r\n\t\t\t\t\tcontainerName &&\r\n\t\t\t\t\tlayout.container[containerName] &&\r\n\t\t\t\t\tlayout.container[containerName].current\r\n\t\t\t\t) {\r\n\t\t\t\t\tsetContainer(layout.container[containerName].current);\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tlayout.resizePanel[containerName] &&\r\n\t\t\t\t\t\tlayout.resizePanel[containerName].current\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tsetResizePanel(\r\n\t\t\t\t\t\t\tlayout.resizePanel[containerName].current,\r\n\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\t// 구독 해제\r\n\t\treturn () => subscription.unsubscribe();\r\n\t}, [containerName, finalLayoutName]);\r\n\r\n\treturn { layout: containers, container, resizePanel };\r\n};\r\n\r\nexport const useContainerSize = (containerName: string) => {\r\n\tconst { layout, container, resizePanel } = useDecompositionLayout({\r\n\t\tcontainerName,\r\n\t});\r\n\tconst [size, setSize] = useState<{ width: number; height: number }>();\r\n\tuseEffect(() => {\r\n\t\tif (!container) return;\r\n\t\tconst observer = new ResizeObserver((entries) => {\r\n\t\t\tfor (const entry of entries) {\r\n\t\t\t\tsetSize({\r\n\t\t\t\t\twidth: entry.contentRect.width,\r\n\t\t\t\t\theight: entry.contentRect.height,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t\tobserver.observe(container);\r\n\t\treturn () => observer.disconnect();\r\n\t}, [container]);\r\n\treturn { size };\r\n};\r\n\r\nexport const useDoubleClick = (\r\n\tcontainerName: string,\r\n\topt: ContainerStateRequest,\r\n) => {\r\n\tconst [isOpen, setIsOpen] = useState<boolean>();\r\n\tconst [isDoubleClick, setIsDoubleClick] = useState<boolean>();\r\n\tuseEffect(() => {\r\n\t\tconst resizePanelClickEvent = getResizePanelRef({\r\n\t\t\tcontainerName,\r\n\t\t}).pipe(\r\n\t\t\tfilter(\r\n\t\t\t\t(resizePanelref) =>\r\n\t\t\t\t\tresizePanelref != undefined &&\r\n\t\t\t\t\tresizePanelref.current != undefined,\r\n\t\t\t),\r\n\t\t\t//take(1),\r\n\t\t\tswitchMap((resizePanelref) => {\r\n\t\t\t\tif (!resizePanelref || !resizePanelref.current) return EMPTY;\r\n\t\t\t\treturn fromEvent(resizePanelref.current, \"click\");\r\n\t\t\t}),\r\n\t\t);\r\n\t\tconst subscribe = resizePanelClickEvent\r\n\t\t\t.pipe(\r\n\t\t\t\tbuffer(resizePanelClickEvent.pipe(debounceTime(500))),\r\n\t\t\t\tfilter((clickEventArray) => clickEventArray.length >= 2),\r\n\t\t\t\tmap((events) => {\r\n\t\t\t\t\tcontainerOpenCloseSubjectMap[containerName].next({\r\n\t\t\t\t\t\t...opt,\r\n\t\t\t\t\t\topenOption: {\r\n\t\t\t\t\t\t\t...opt.openOption,\r\n\t\t\t\t\t\t\tisPrevSizeOpen: false,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tonClose: () => {\r\n\t\t\t\t\t\t\tif (opt.onClose) opt.onClose();\r\n\t\t\t\t\t\t\tsetIsOpen(false);\r\n\t\t\t\t\t\t\tsetIsDoubleClick(true);\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tonOpen: () => {\r\n\t\t\t\t\t\t\tif (opt.onOpen) opt.onOpen();\r\n\t\t\t\t\t\t\tsetIsOpen(true);\r\n\t\t\t\t\t\t\tsetIsDoubleClick(true);\r\n\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\t.subscribe();\r\n\t\treturn () => {\r\n\t\t\tsubscribe.unsubscribe();\r\n\t\t};\r\n\t}, [containerName]);\r\n\treturn { isOpen, isDoubleClick, setIsDoubleClick };\r\n};\r\n"]}
1
+ {"version":3,"sources":["../../../src/flex-layout/providers/FlexLayoutHooks.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { useEffect, useState } from \"react\";\r\nimport {\r\n\tflexContainerStore,\r\n\tgetLayoutInfos,\r\n\tgetResizePanelRef,\r\n} from \"../store/FlexLayoutContainerStore\";\r\nimport {\r\n\tcloseFlex,\r\n\tgetGrow,\r\n\tmathGrow,\r\n\topenFlex,\r\n} from \"../utils/FlexLayoutUtils\";\r\n\r\nimport {\r\n\tbuffer,\r\n\tdebounceTime,\r\n\tEMPTY,\r\n\tfilter,\r\n\tfromEvent,\r\n\tmap,\r\n\tSubject,\r\n\tswitchMap,\r\n} from \"rxjs\";\r\nconst g = globalThis as any;\r\ng.__FLEX_SUBJECTS__ ??= { openClose: {}, spread: {} };\r\n\r\nexport type SubjectMap<T> = Record<string, Subject<T>>;\r\n\r\n// 컨테이너 상태 타입 정의\r\ninterface ContainerStateRequest {\r\n\tmode: \"toggle\" | \"open\" | \"close\";\r\n\tinitOpenState?: boolean;\r\n\tonOpen?: () => void;\r\n\tonClose?: () => void;\r\n\topenOption?: {\r\n\t\tisPrevSizeOpen?: boolean;\r\n\t\tisResize?: boolean;\r\n\t\topenGrowImportant?: number;\r\n\t};\r\n\tcloseOption?: { isResize?: boolean; isDsiabledResizePanel?: boolean };\r\n}\r\n\r\ninterface ContainerState {\r\n\tisOpen: boolean;\r\n\ttargetContainer: HTMLElement;\r\n\tgrow: number;\r\n}\r\nexport const containerOpenCloseSubjectMap: SubjectMap<ContainerStateRequest> =\r\n\tg.__FLEX_SUBJECTS__.openClose;\r\nexport const containerSpreadSubjectMap: SubjectMap<ContainerState> =\r\n\tg.__FLEX_SUBJECTS__.spread;\r\n\r\n// export const containerOpenCloseSubjectMap: SubjectMap<ContainerStateRequest> = (\r\n// Object.keys({}) as Array<string>\r\n// ).reduce((total, key) => {\r\n// total[key] = new Subject<ContainerStateRequest>();\r\n// return total;\r\n// }, {} as SubjectMap<ContainerStateRequest>);\r\n\r\n// export const containerSpreadSubjectMap: SubjectMap<ContainerState> = (\r\n// Object.keys({}) as Array<string>\r\n// ).reduce((total, key) => {\r\n// total[key] = new Subject<ContainerState>();\r\n// return total;\r\n// }, {} as SubjectMap<ContainerState>);\r\n\r\nexport const ContainerOpenCloseProvider = ({\r\n\tlayoutName,\r\n\tcontainerName,\r\n\tsizeName,\r\n}: {\r\n\tlayoutName: string;\r\n\tcontainerName: string;\r\n\tsizeName: \"width\" | \"height\";\r\n}) => {\r\n\t// SubjectMap에 중복 체크 후 Subject 추가\r\n\tif (!containerOpenCloseSubjectMap[containerName]) {\r\n\t\tcontainerOpenCloseSubjectMap[containerName] =\r\n\t\t\tnew Subject<ContainerStateRequest>();\r\n\t}\r\n\tif (!containerSpreadSubjectMap[containerName]) {\r\n\t\tcontainerSpreadSubjectMap[containerName] =\r\n\t\t\tnew Subject<ContainerState>();\r\n\t}\r\n\r\n\tconst [containers, setContainers] = useState<HTMLElement[]>([]);\r\n\tconst [container, setContainer] = useState<HTMLElement>();\r\n\r\n\tuseEffect(() => {\r\n\t\t// 특정 layoutName과 containerName을 통해 ref를 구독\r\n\t\tconst subscription = getLayoutInfos(layoutName as string).subscribe(\r\n\t\t\t(layout) => {\r\n\t\t\t\tif (\r\n\t\t\t\t\t!layout ||\r\n\t\t\t\t\t!layout.container[containerName] ||\r\n\t\t\t\t\t!layout.container[containerName].current\r\n\t\t\t\t)\r\n\t\t\t\t\treturn;\r\n\t\t\t\tsetContainers(\r\n\t\t\t\t\tObject.values(layout.container)\r\n\t\t\t\t\t\t.filter(\r\n\t\t\t\t\t\t\t(e): e is { current: HTMLElement } =>\r\n\t\t\t\t\t\t\t\te.current !== null,\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t\t.map((e) => e.current),\r\n\t\t\t\t);\r\n\t\t\t\tsetContainer(layout.container[containerName].current);\r\n\t\t\t},\r\n\t\t);\r\n\r\n\t\t// 구독 해제\r\n\t\treturn () => subscription.unsubscribe();\r\n\t}, [containerName, layoutName]);\r\n\tuseEffect(() => {\r\n\t\tconst styleName = `${sizeName.charAt(0).toUpperCase() + sizeName.substring(1)}`;\r\n\t\tconst clientSize = (\"client\" + styleName) as\r\n\t\t\t| \"clientWidth\"\r\n\t\t\t| \"clientHeight\";\r\n\t\tconst outerSize = (\"outer\" + styleName) as \"outerWidth\" | \"outerHeight\";\r\n\t\tconst maxSize = (\"max\" + styleName) as \"maxWidth\" | \"maxHeight\";\r\n\t\tconst subscribe = containerOpenCloseSubjectMap[containerName].subscribe(\r\n\t\t\t({\r\n\t\t\t\tmode,\r\n\t\t\t\tinitOpenState: isOpenState,\r\n\t\t\t\tonClose,\r\n\t\t\t\tonOpen,\r\n\t\t\t\topenOption = {},\r\n\t\t\t\tcloseOption = {},\r\n\t\t\t}) => {\r\n\t\t\t\tif (!container || containers.length === 0) return;\r\n\t\t\t\tconst currentGrow = getGrow(container);\r\n\t\t\t\tconst styleMap = window.getComputedStyle(container);\r\n\t\t\t\tconst maxSizeGrow = mathGrow(\r\n\t\t\t\t\tparseInt(styleMap[maxSize]),\r\n\t\t\t\t\t(container.parentElement &&\r\n\t\t\t\t\t\tcontainer.parentElement[clientSize]) ||\r\n\t\t\t\t\t\twindow[outerSize],\r\n\t\t\t\t\tcontainers.length,\r\n\t\t\t\t);\r\n\t\t\t\tconst open = () =>\r\n\t\t\t\t\topenFlex(container, containers, {\r\n\t\t\t\t\t\tsizeName,\r\n\t\t\t\t\t\t...(isNaN(maxSizeGrow)\r\n\t\t\t\t\t\t\t? {}\r\n\t\t\t\t\t\t\t: {\r\n\t\t\t\t\t\t\t\t\topenGrowImportant: maxSizeGrow,\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t...openOption,\r\n\t\t\t\t\t}).then((openTargetGrow) => {\r\n\t\t\t\t\t\tif (onOpen) onOpen();\r\n\t\t\t\t\t\tcontainerSpreadSubjectMap[containerName].next({\r\n\t\t\t\t\t\t\tisOpen: true,\r\n\t\t\t\t\t\t\tgrow: openTargetGrow as any,\r\n\t\t\t\t\t\t\ttargetContainer: container,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\tconst close = () =>\r\n\t\t\t\t\tcloseFlex(container, containers, {\r\n\t\t\t\t\t\tsizeName,\r\n\t\t\t\t\t\t...closeOption,\r\n\t\t\t\t\t}).then(() => {\r\n\t\t\t\t\t\tif (onClose) onClose();\r\n\t\t\t\t\t\tcontainerSpreadSubjectMap[containerName].next({\r\n\t\t\t\t\t\t\tisOpen: false,\r\n\t\t\t\t\t\t\tgrow: 0,\r\n\t\t\t\t\t\t\ttargetContainer: container,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\tif (mode === \"toggle\") {\r\n\t\t\t\t\tif (currentGrow === 0) {\r\n\t\t\t\t\t\topen();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tclose();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (mode === \"open\") {\r\n\t\t\t\t\tif (currentGrow === 0) {\r\n\t\t\t\t\t\topen();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (mode === \"close\") {\r\n\t\t\t\t\tif (currentGrow !== 0) {\r\n\t\t\t\t\t\tclose();\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\treturn () => {\r\n\t\t\tsubscribe.unsubscribe();\r\n\t\t};\r\n\t}, [containerName, container, containers, sizeName]);\r\n\r\n\treturn null;\r\n};\r\n\r\nexport const useContainers = (layoutName: string) => {\r\n\tconst [containers, setContainers] = useState<HTMLElement[]>([]);\r\n\r\n\tuseEffect(() => {\r\n\t\t// 특정 layoutName과 containerName을 통해 ref를 구독\r\n\t\tconst subscription = getLayoutInfos(layoutName as string).subscribe(\r\n\t\t\t(layout) => {\r\n\t\t\t\tsetContainers(\r\n\t\t\t\t\tObject.values(layout.container)\r\n\t\t\t\t\t\t.filter(\r\n\t\t\t\t\t\t\t(e): e is { current: HTMLElement } =>\r\n\t\t\t\t\t\t\t\te.current !== null,\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t\t.map((e) => e.current),\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t);\r\n\r\n\t\t// 구독 해제\r\n\t\treturn () => subscription.unsubscribe();\r\n\t}, [layoutName]);\r\n\treturn containers;\r\n};\r\n\r\nexport const useLayoutName = (containerName: string) => {\r\n\tconst [layoutName, setLayoutName] = useState<string>();\r\n\tuseEffect(() => {\r\n\t\tconst subscribe = flexContainerStore\r\n\t\t\t.pipe(\r\n\t\t\t\tmap(\r\n\t\t\t\t\t(layouts) =>\r\n\t\t\t\t\t\tObject.entries(layouts)\r\n\t\t\t\t\t\t\t.filter(([_, v]) => v[containerName])\r\n\t\t\t\t\t\t\t.map(([k]) => k)[0] as string, // 첫 번째 결과 가져오기\r\n\t\t\t\t),\r\n\t\t\t)\r\n\t\t\t.subscribe(setLayoutName);\r\n\r\n\t\t// 컴포넌트 언마운트 시 구독 해제\r\n\t\treturn () => subscribe.unsubscribe();\r\n\t}, [containerName]);\r\n\r\n\treturn layoutName;\r\n};\r\n\r\nexport const useDecompositionLayout = ({\r\n\tlayoutName: initialLayoutName,\r\n\tcontainerName,\r\n}: {\r\n\tlayoutName?: string;\r\n\tcontainerName: string;\r\n}) => {\r\n\tconst derivedLayoutName = useLayoutName(containerName);\r\n\tconst finalLayoutName = initialLayoutName || derivedLayoutName;\r\n\r\n\tconst [containers, setContainers] = useState<HTMLElement[]>([]);\r\n\tconst [container, setContainer] = useState<HTMLElement>();\r\n\tconst [resizePanel, setResizePanel] = useState<HTMLElement>();\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!finalLayoutName) return; // layoutName이 준비될 때까지 대기\r\n\t\t// 특정 layoutName과 containerName을 통해 ref를 구독\r\n\t\tconst subscription = getLayoutInfos(finalLayoutName).subscribe(\r\n\t\t\t(layout) => {\r\n\t\t\t\tif (!layout) return;\r\n\t\t\t\tsetContainers(\r\n\t\t\t\t\tObject.values(layout.container)\r\n\t\t\t\t\t\t.filter(\r\n\t\t\t\t\t\t\t(e): e is { current: HTMLElement } =>\r\n\t\t\t\t\t\t\t\te.current !== null,\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t\t.map((e) => e.current),\r\n\t\t\t\t);\r\n\t\t\t\tif (\r\n\t\t\t\t\tcontainerName &&\r\n\t\t\t\t\tlayout.container[containerName] &&\r\n\t\t\t\t\tlayout.container[containerName].current\r\n\t\t\t\t) {\r\n\t\t\t\t\tsetContainer(layout.container[containerName].current);\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tlayout.resizePanel[containerName] &&\r\n\t\t\t\t\t\tlayout.resizePanel[containerName].current\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tsetResizePanel(\r\n\t\t\t\t\t\t\tlayout.resizePanel[containerName].current,\r\n\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\t// 구독 해제\r\n\t\treturn () => subscription.unsubscribe();\r\n\t}, [containerName, finalLayoutName]);\r\n\r\n\treturn { layout: containers, container, resizePanel };\r\n};\r\n\r\nexport const useContainerSize = (containerName: string) => {\r\n\tconst { layout, container, resizePanel } = useDecompositionLayout({\r\n\t\tcontainerName,\r\n\t});\r\n\tconst [size, setSize] = useState<{ width: number; height: number }>();\r\n\tuseEffect(() => {\r\n\t\tif (!container) return;\r\n\t\tconst observer = new ResizeObserver((entries) => {\r\n\t\t\tfor (const entry of entries) {\r\n\t\t\t\tsetSize({\r\n\t\t\t\t\twidth: entry.contentRect.width,\r\n\t\t\t\t\theight: entry.contentRect.height,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t\tobserver.observe(container);\r\n\t\treturn () => observer.disconnect();\r\n\t}, [container]);\r\n\treturn { size };\r\n};\r\n\r\nexport const useDoubleClick = (\r\n\tcontainerName: string,\r\n\topt: ContainerStateRequest,\r\n) => {\r\n\tconst [isOpen, setIsOpen] = useState<boolean>();\r\n\tconst [isDoubleClick, setIsDoubleClick] = useState<boolean>();\r\n\tuseEffect(() => {\r\n\t\tconst resizePanelClickEvent = getResizePanelRef({\r\n\t\t\tcontainerName,\r\n\t\t}).pipe(\r\n\t\t\tfilter(\r\n\t\t\t\t(resizePanelref) =>\r\n\t\t\t\t\tresizePanelref != undefined &&\r\n\t\t\t\t\tresizePanelref.current != undefined,\r\n\t\t\t),\r\n\t\t\t//take(1),\r\n\t\t\tswitchMap((resizePanelref) => {\r\n\t\t\t\tif (!resizePanelref || !resizePanelref.current) return EMPTY;\r\n\t\t\t\treturn fromEvent(resizePanelref.current, \"click\");\r\n\t\t\t}),\r\n\t\t);\r\n\t\tconst subscribe = resizePanelClickEvent\r\n\t\t\t.pipe(\r\n\t\t\t\tbuffer(resizePanelClickEvent.pipe(debounceTime(500))),\r\n\t\t\t\tfilter((clickEventArray) => clickEventArray.length >= 2),\r\n\t\t\t\tmap((events) => {\r\n\t\t\t\t\tcontainerOpenCloseSubjectMap[containerName].next({\r\n\t\t\t\t\t\t...opt,\r\n\t\t\t\t\t\topenOption: {\r\n\t\t\t\t\t\t\t...opt.openOption,\r\n\t\t\t\t\t\t\tisPrevSizeOpen: false,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tonClose: () => {\r\n\t\t\t\t\t\t\tif (opt.onClose) opt.onClose();\r\n\t\t\t\t\t\t\tsetIsOpen(false);\r\n\t\t\t\t\t\t\tsetIsDoubleClick(true);\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tonOpen: () => {\r\n\t\t\t\t\t\t\tif (opt.onOpen) opt.onOpen();\r\n\t\t\t\t\t\t\tsetIsOpen(true);\r\n\t\t\t\t\t\t\tsetIsDoubleClick(true);\r\n\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\t.subscribe();\r\n\t\treturn () => {\r\n\t\t\tsubscribe.unsubscribe();\r\n\t\t};\r\n\t}, [containerName]);\r\n\treturn { isOpen, isDoubleClick, setIsDoubleClick };\r\n};\r\n"],"mappings":"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","names":[]}
@@ -1,8 +1,26 @@
1
- import { useState, useEffect } from 'react';
2
- import { getLayoutInfos, flexContainerStore, getResizePanelRef } from '../store/FlexLayoutContainerStore';
3
- import { getGrow, mathGrow, openFlex, closeFlex } from '../utils/FlexLayoutUtils';
4
- import { Subject, map, filter, switchMap, EMPTY, fromEvent, buffer, debounceTime } from 'rxjs';
5
-
1
+ "use client";
2
+ import { useEffect, useState } from "react";
3
+ import {
4
+ flexContainerStore,
5
+ getLayoutInfos,
6
+ getResizePanelRef
7
+ } from "../store/FlexLayoutContainerStore";
8
+ import {
9
+ closeFlex,
10
+ getGrow,
11
+ mathGrow,
12
+ openFlex
13
+ } from "../utils/FlexLayoutUtils";
14
+ import {
15
+ buffer,
16
+ debounceTime,
17
+ EMPTY,
18
+ filter,
19
+ fromEvent,
20
+ map,
21
+ Subject,
22
+ switchMap
23
+ } from "rxjs";
6
24
  const g = globalThis;
7
25
  g.__FLEX_SUBJECTS__ ?? (g.__FLEX_SUBJECTS__ = { openClose: {}, spread: {} });
8
26
  const containerOpenCloseSubjectMap = g.__FLEX_SUBJECTS__.openClose;
@@ -232,7 +250,14 @@ const useDoubleClick = (containerName, opt) => {
232
250
  }, [containerName]);
233
251
  return { isOpen, isDoubleClick, setIsDoubleClick };
234
252
  };
235
-
236
- export { ContainerOpenCloseProvider, containerOpenCloseSubjectMap, containerSpreadSubjectMap, useContainerSize, useContainers, useDecompositionLayout, useDoubleClick, useLayoutName };
237
- //# sourceMappingURL=FlexLayoutHooks.js.map
253
+ export {
254
+ ContainerOpenCloseProvider,
255
+ containerOpenCloseSubjectMap,
256
+ containerSpreadSubjectMap,
257
+ useContainerSize,
258
+ useContainers,
259
+ useDecompositionLayout,
260
+ useDoubleClick,
261
+ useLayoutName
262
+ };
238
263
  //# sourceMappingURL=FlexLayoutHooks.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/flex-layout/providers/FlexLayoutHooks.tsx"],"names":[],"mappings":"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","file":"FlexLayoutHooks.js","sourcesContent":["\"use client\";\r\n\r\nimport { useEffect, useState } from \"react\";\r\nimport {\r\n\tflexContainerStore,\r\n\tgetLayoutInfos,\r\n\tgetResizePanelRef,\r\n} from \"../store/FlexLayoutContainerStore\";\r\nimport {\r\n\tcloseFlex,\r\n\tgetGrow,\r\n\tmathGrow,\r\n\topenFlex,\r\n} from \"../utils/FlexLayoutUtils\";\r\n\r\nimport {\r\n\tbuffer,\r\n\tdebounceTime,\r\n\tEMPTY,\r\n\tfilter,\r\n\tfromEvent,\r\n\tmap,\r\n\tSubject,\r\n\tswitchMap,\r\n} from \"rxjs\";\r\nconst g = globalThis as any;\r\ng.__FLEX_SUBJECTS__ ??= { openClose: {}, spread: {} };\r\n\r\nexport type SubjectMap<T> = Record<string, Subject<T>>;\r\n\r\n// 컨테이너 상태 타입 정의\r\ninterface ContainerStateRequest {\r\n\tmode: \"toggle\" | \"open\" | \"close\";\r\n\tinitOpenState?: boolean;\r\n\tonOpen?: () => void;\r\n\tonClose?: () => void;\r\n\topenOption?: {\r\n\t\tisPrevSizeOpen?: boolean;\r\n\t\tisResize?: boolean;\r\n\t\topenGrowImportant?: number;\r\n\t};\r\n\tcloseOption?: { isResize?: boolean; isDsiabledResizePanel?: boolean };\r\n}\r\n\r\ninterface ContainerState {\r\n\tisOpen: boolean;\r\n\ttargetContainer: HTMLElement;\r\n\tgrow: number;\r\n}\r\nexport const containerOpenCloseSubjectMap: SubjectMap<ContainerStateRequest> =\r\n\tg.__FLEX_SUBJECTS__.openClose;\r\nexport const containerSpreadSubjectMap: SubjectMap<ContainerState> =\r\n\tg.__FLEX_SUBJECTS__.spread;\r\n\r\n// export const containerOpenCloseSubjectMap: SubjectMap<ContainerStateRequest> = (\r\n// Object.keys({}) as Array<string>\r\n// ).reduce((total, key) => {\r\n// total[key] = new Subject<ContainerStateRequest>();\r\n// return total;\r\n// }, {} as SubjectMap<ContainerStateRequest>);\r\n\r\n// export const containerSpreadSubjectMap: SubjectMap<ContainerState> = (\r\n// Object.keys({}) as Array<string>\r\n// ).reduce((total, key) => {\r\n// total[key] = new Subject<ContainerState>();\r\n// return total;\r\n// }, {} as SubjectMap<ContainerState>);\r\n\r\nexport const ContainerOpenCloseProvider = ({\r\n\tlayoutName,\r\n\tcontainerName,\r\n\tsizeName,\r\n}: {\r\n\tlayoutName: string;\r\n\tcontainerName: string;\r\n\tsizeName: \"width\" | \"height\";\r\n}) => {\r\n\t// SubjectMap에 중복 체크 후 Subject 추가\r\n\tif (!containerOpenCloseSubjectMap[containerName]) {\r\n\t\tcontainerOpenCloseSubjectMap[containerName] =\r\n\t\t\tnew Subject<ContainerStateRequest>();\r\n\t}\r\n\tif (!containerSpreadSubjectMap[containerName]) {\r\n\t\tcontainerSpreadSubjectMap[containerName] =\r\n\t\t\tnew Subject<ContainerState>();\r\n\t}\r\n\r\n\tconst [containers, setContainers] = useState<HTMLElement[]>([]);\r\n\tconst [container, setContainer] = useState<HTMLElement>();\r\n\r\n\tuseEffect(() => {\r\n\t\t// 특정 layoutName과 containerName을 통해 ref를 구독\r\n\t\tconst subscription = getLayoutInfos(layoutName as string).subscribe(\r\n\t\t\t(layout) => {\r\n\t\t\t\tif (\r\n\t\t\t\t\t!layout ||\r\n\t\t\t\t\t!layout.container[containerName] ||\r\n\t\t\t\t\t!layout.container[containerName].current\r\n\t\t\t\t)\r\n\t\t\t\t\treturn;\r\n\t\t\t\tsetContainers(\r\n\t\t\t\t\tObject.values(layout.container)\r\n\t\t\t\t\t\t.filter(\r\n\t\t\t\t\t\t\t(e): e is { current: HTMLElement } =>\r\n\t\t\t\t\t\t\t\te.current !== null,\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t\t.map((e) => e.current),\r\n\t\t\t\t);\r\n\t\t\t\tsetContainer(layout.container[containerName].current);\r\n\t\t\t},\r\n\t\t);\r\n\r\n\t\t// 구독 해제\r\n\t\treturn () => subscription.unsubscribe();\r\n\t}, [containerName, layoutName]);\r\n\tuseEffect(() => {\r\n\t\tconst styleName = `${sizeName.charAt(0).toUpperCase() + sizeName.substring(1)}`;\r\n\t\tconst clientSize = (\"client\" + styleName) as\r\n\t\t\t| \"clientWidth\"\r\n\t\t\t| \"clientHeight\";\r\n\t\tconst outerSize = (\"outer\" + styleName) as \"outerWidth\" | \"outerHeight\";\r\n\t\tconst maxSize = (\"max\" + styleName) as \"maxWidth\" | \"maxHeight\";\r\n\t\tconst subscribe = containerOpenCloseSubjectMap[containerName].subscribe(\r\n\t\t\t({\r\n\t\t\t\tmode,\r\n\t\t\t\tinitOpenState: isOpenState,\r\n\t\t\t\tonClose,\r\n\t\t\t\tonOpen,\r\n\t\t\t\topenOption = {},\r\n\t\t\t\tcloseOption = {},\r\n\t\t\t}) => {\r\n\t\t\t\tif (!container || containers.length === 0) return;\r\n\t\t\t\tconst currentGrow = getGrow(container);\r\n\t\t\t\tconst styleMap = window.getComputedStyle(container);\r\n\t\t\t\tconst maxSizeGrow = mathGrow(\r\n\t\t\t\t\tparseInt(styleMap[maxSize]),\r\n\t\t\t\t\t(container.parentElement &&\r\n\t\t\t\t\t\tcontainer.parentElement[clientSize]) ||\r\n\t\t\t\t\t\twindow[outerSize],\r\n\t\t\t\t\tcontainers.length,\r\n\t\t\t\t);\r\n\t\t\t\tconst open = () =>\r\n\t\t\t\t\topenFlex(container, containers, {\r\n\t\t\t\t\t\tsizeName,\r\n\t\t\t\t\t\t...(isNaN(maxSizeGrow)\r\n\t\t\t\t\t\t\t? {}\r\n\t\t\t\t\t\t\t: {\r\n\t\t\t\t\t\t\t\t\topenGrowImportant: maxSizeGrow,\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t...openOption,\r\n\t\t\t\t\t}).then((openTargetGrow) => {\r\n\t\t\t\t\t\tif (onOpen) onOpen();\r\n\t\t\t\t\t\tcontainerSpreadSubjectMap[containerName].next({\r\n\t\t\t\t\t\t\tisOpen: true,\r\n\t\t\t\t\t\t\tgrow: openTargetGrow as any,\r\n\t\t\t\t\t\t\ttargetContainer: container,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\tconst close = () =>\r\n\t\t\t\t\tcloseFlex(container, containers, {\r\n\t\t\t\t\t\tsizeName,\r\n\t\t\t\t\t\t...closeOption,\r\n\t\t\t\t\t}).then(() => {\r\n\t\t\t\t\t\tif (onClose) onClose();\r\n\t\t\t\t\t\tcontainerSpreadSubjectMap[containerName].next({\r\n\t\t\t\t\t\t\tisOpen: false,\r\n\t\t\t\t\t\t\tgrow: 0,\r\n\t\t\t\t\t\t\ttargetContainer: container,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\tif (mode === \"toggle\") {\r\n\t\t\t\t\tif (currentGrow === 0) {\r\n\t\t\t\t\t\topen();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tclose();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (mode === \"open\") {\r\n\t\t\t\t\tif (currentGrow === 0) {\r\n\t\t\t\t\t\topen();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (mode === \"close\") {\r\n\t\t\t\t\tif (currentGrow !== 0) {\r\n\t\t\t\t\t\tclose();\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\treturn () => {\r\n\t\t\tsubscribe.unsubscribe();\r\n\t\t};\r\n\t}, [containerName, container, containers, sizeName]);\r\n\r\n\treturn null;\r\n};\r\n\r\nexport const useContainers = (layoutName: string) => {\r\n\tconst [containers, setContainers] = useState<HTMLElement[]>([]);\r\n\r\n\tuseEffect(() => {\r\n\t\t// 특정 layoutName과 containerName을 통해 ref를 구독\r\n\t\tconst subscription = getLayoutInfos(layoutName as string).subscribe(\r\n\t\t\t(layout) => {\r\n\t\t\t\tsetContainers(\r\n\t\t\t\t\tObject.values(layout.container)\r\n\t\t\t\t\t\t.filter(\r\n\t\t\t\t\t\t\t(e): e is { current: HTMLElement } =>\r\n\t\t\t\t\t\t\t\te.current !== null,\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t\t.map((e) => e.current),\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t);\r\n\r\n\t\t// 구독 해제\r\n\t\treturn () => subscription.unsubscribe();\r\n\t}, [layoutName]);\r\n\treturn containers;\r\n};\r\n\r\nexport const useLayoutName = (containerName: string) => {\r\n\tconst [layoutName, setLayoutName] = useState<string>();\r\n\tuseEffect(() => {\r\n\t\tconst subscribe = flexContainerStore\r\n\t\t\t.pipe(\r\n\t\t\t\tmap(\r\n\t\t\t\t\t(layouts) =>\r\n\t\t\t\t\t\tObject.entries(layouts)\r\n\t\t\t\t\t\t\t.filter(([_, v]) => v[containerName])\r\n\t\t\t\t\t\t\t.map(([k]) => k)[0] as string, // 첫 번째 결과 가져오기\r\n\t\t\t\t),\r\n\t\t\t)\r\n\t\t\t.subscribe(setLayoutName);\r\n\r\n\t\t// 컴포넌트 언마운트 시 구독 해제\r\n\t\treturn () => subscribe.unsubscribe();\r\n\t}, [containerName]);\r\n\r\n\treturn layoutName;\r\n};\r\n\r\nexport const useDecompositionLayout = ({\r\n\tlayoutName: initialLayoutName,\r\n\tcontainerName,\r\n}: {\r\n\tlayoutName?: string;\r\n\tcontainerName: string;\r\n}) => {\r\n\tconst derivedLayoutName = useLayoutName(containerName);\r\n\tconst finalLayoutName = initialLayoutName || derivedLayoutName;\r\n\r\n\tconst [containers, setContainers] = useState<HTMLElement[]>([]);\r\n\tconst [container, setContainer] = useState<HTMLElement>();\r\n\tconst [resizePanel, setResizePanel] = useState<HTMLElement>();\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!finalLayoutName) return; // layoutName이 준비될 때까지 대기\r\n\t\t// 특정 layoutName과 containerName을 통해 ref를 구독\r\n\t\tconst subscription = getLayoutInfos(finalLayoutName).subscribe(\r\n\t\t\t(layout) => {\r\n\t\t\t\tif (!layout) return;\r\n\t\t\t\tsetContainers(\r\n\t\t\t\t\tObject.values(layout.container)\r\n\t\t\t\t\t\t.filter(\r\n\t\t\t\t\t\t\t(e): e is { current: HTMLElement } =>\r\n\t\t\t\t\t\t\t\te.current !== null,\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t\t.map((e) => e.current),\r\n\t\t\t\t);\r\n\t\t\t\tif (\r\n\t\t\t\t\tcontainerName &&\r\n\t\t\t\t\tlayout.container[containerName] &&\r\n\t\t\t\t\tlayout.container[containerName].current\r\n\t\t\t\t) {\r\n\t\t\t\t\tsetContainer(layout.container[containerName].current);\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tlayout.resizePanel[containerName] &&\r\n\t\t\t\t\t\tlayout.resizePanel[containerName].current\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tsetResizePanel(\r\n\t\t\t\t\t\t\tlayout.resizePanel[containerName].current,\r\n\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\t// 구독 해제\r\n\t\treturn () => subscription.unsubscribe();\r\n\t}, [containerName, finalLayoutName]);\r\n\r\n\treturn { layout: containers, container, resizePanel };\r\n};\r\n\r\nexport const useContainerSize = (containerName: string) => {\r\n\tconst { layout, container, resizePanel } = useDecompositionLayout({\r\n\t\tcontainerName,\r\n\t});\r\n\tconst [size, setSize] = useState<{ width: number; height: number }>();\r\n\tuseEffect(() => {\r\n\t\tif (!container) return;\r\n\t\tconst observer = new ResizeObserver((entries) => {\r\n\t\t\tfor (const entry of entries) {\r\n\t\t\t\tsetSize({\r\n\t\t\t\t\twidth: entry.contentRect.width,\r\n\t\t\t\t\theight: entry.contentRect.height,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t\tobserver.observe(container);\r\n\t\treturn () => observer.disconnect();\r\n\t}, [container]);\r\n\treturn { size };\r\n};\r\n\r\nexport const useDoubleClick = (\r\n\tcontainerName: string,\r\n\topt: ContainerStateRequest,\r\n) => {\r\n\tconst [isOpen, setIsOpen] = useState<boolean>();\r\n\tconst [isDoubleClick, setIsDoubleClick] = useState<boolean>();\r\n\tuseEffect(() => {\r\n\t\tconst resizePanelClickEvent = getResizePanelRef({\r\n\t\t\tcontainerName,\r\n\t\t}).pipe(\r\n\t\t\tfilter(\r\n\t\t\t\t(resizePanelref) =>\r\n\t\t\t\t\tresizePanelref != undefined &&\r\n\t\t\t\t\tresizePanelref.current != undefined,\r\n\t\t\t),\r\n\t\t\t//take(1),\r\n\t\t\tswitchMap((resizePanelref) => {\r\n\t\t\t\tif (!resizePanelref || !resizePanelref.current) return EMPTY;\r\n\t\t\t\treturn fromEvent(resizePanelref.current, \"click\");\r\n\t\t\t}),\r\n\t\t);\r\n\t\tconst subscribe = resizePanelClickEvent\r\n\t\t\t.pipe(\r\n\t\t\t\tbuffer(resizePanelClickEvent.pipe(debounceTime(500))),\r\n\t\t\t\tfilter((clickEventArray) => clickEventArray.length >= 2),\r\n\t\t\t\tmap((events) => {\r\n\t\t\t\t\tcontainerOpenCloseSubjectMap[containerName].next({\r\n\t\t\t\t\t\t...opt,\r\n\t\t\t\t\t\topenOption: {\r\n\t\t\t\t\t\t\t...opt.openOption,\r\n\t\t\t\t\t\t\tisPrevSizeOpen: false,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tonClose: () => {\r\n\t\t\t\t\t\t\tif (opt.onClose) opt.onClose();\r\n\t\t\t\t\t\t\tsetIsOpen(false);\r\n\t\t\t\t\t\t\tsetIsDoubleClick(true);\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tonOpen: () => {\r\n\t\t\t\t\t\t\tif (opt.onOpen) opt.onOpen();\r\n\t\t\t\t\t\t\tsetIsOpen(true);\r\n\t\t\t\t\t\t\tsetIsDoubleClick(true);\r\n\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\t.subscribe();\r\n\t\treturn () => {\r\n\t\t\tsubscribe.unsubscribe();\r\n\t\t};\r\n\t}, [containerName]);\r\n\treturn { isOpen, isDoubleClick, setIsDoubleClick };\r\n};\r\n"]}
1
+ {"version":3,"sources":["../../../src/flex-layout/providers/FlexLayoutHooks.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { useEffect, useState } from \"react\";\r\nimport {\r\n\tflexContainerStore,\r\n\tgetLayoutInfos,\r\n\tgetResizePanelRef,\r\n} from \"../store/FlexLayoutContainerStore\";\r\nimport {\r\n\tcloseFlex,\r\n\tgetGrow,\r\n\tmathGrow,\r\n\topenFlex,\r\n} from \"../utils/FlexLayoutUtils\";\r\n\r\nimport {\r\n\tbuffer,\r\n\tdebounceTime,\r\n\tEMPTY,\r\n\tfilter,\r\n\tfromEvent,\r\n\tmap,\r\n\tSubject,\r\n\tswitchMap,\r\n} from \"rxjs\";\r\nconst g = globalThis as any;\r\ng.__FLEX_SUBJECTS__ ??= { openClose: {}, spread: {} };\r\n\r\nexport type SubjectMap<T> = Record<string, Subject<T>>;\r\n\r\n// 컨테이너 상태 타입 정의\r\ninterface ContainerStateRequest {\r\n\tmode: \"toggle\" | \"open\" | \"close\";\r\n\tinitOpenState?: boolean;\r\n\tonOpen?: () => void;\r\n\tonClose?: () => void;\r\n\topenOption?: {\r\n\t\tisPrevSizeOpen?: boolean;\r\n\t\tisResize?: boolean;\r\n\t\topenGrowImportant?: number;\r\n\t};\r\n\tcloseOption?: { isResize?: boolean; isDsiabledResizePanel?: boolean };\r\n}\r\n\r\ninterface ContainerState {\r\n\tisOpen: boolean;\r\n\ttargetContainer: HTMLElement;\r\n\tgrow: number;\r\n}\r\nexport const containerOpenCloseSubjectMap: SubjectMap<ContainerStateRequest> =\r\n\tg.__FLEX_SUBJECTS__.openClose;\r\nexport const containerSpreadSubjectMap: SubjectMap<ContainerState> =\r\n\tg.__FLEX_SUBJECTS__.spread;\r\n\r\n// export const containerOpenCloseSubjectMap: SubjectMap<ContainerStateRequest> = (\r\n// Object.keys({}) as Array<string>\r\n// ).reduce((total, key) => {\r\n// total[key] = new Subject<ContainerStateRequest>();\r\n// return total;\r\n// }, {} as SubjectMap<ContainerStateRequest>);\r\n\r\n// export const containerSpreadSubjectMap: SubjectMap<ContainerState> = (\r\n// Object.keys({}) as Array<string>\r\n// ).reduce((total, key) => {\r\n// total[key] = new Subject<ContainerState>();\r\n// return total;\r\n// }, {} as SubjectMap<ContainerState>);\r\n\r\nexport const ContainerOpenCloseProvider = ({\r\n\tlayoutName,\r\n\tcontainerName,\r\n\tsizeName,\r\n}: {\r\n\tlayoutName: string;\r\n\tcontainerName: string;\r\n\tsizeName: \"width\" | \"height\";\r\n}) => {\r\n\t// SubjectMap에 중복 체크 후 Subject 추가\r\n\tif (!containerOpenCloseSubjectMap[containerName]) {\r\n\t\tcontainerOpenCloseSubjectMap[containerName] =\r\n\t\t\tnew Subject<ContainerStateRequest>();\r\n\t}\r\n\tif (!containerSpreadSubjectMap[containerName]) {\r\n\t\tcontainerSpreadSubjectMap[containerName] =\r\n\t\t\tnew Subject<ContainerState>();\r\n\t}\r\n\r\n\tconst [containers, setContainers] = useState<HTMLElement[]>([]);\r\n\tconst [container, setContainer] = useState<HTMLElement>();\r\n\r\n\tuseEffect(() => {\r\n\t\t// 특정 layoutName과 containerName을 통해 ref를 구독\r\n\t\tconst subscription = getLayoutInfos(layoutName as string).subscribe(\r\n\t\t\t(layout) => {\r\n\t\t\t\tif (\r\n\t\t\t\t\t!layout ||\r\n\t\t\t\t\t!layout.container[containerName] ||\r\n\t\t\t\t\t!layout.container[containerName].current\r\n\t\t\t\t)\r\n\t\t\t\t\treturn;\r\n\t\t\t\tsetContainers(\r\n\t\t\t\t\tObject.values(layout.container)\r\n\t\t\t\t\t\t.filter(\r\n\t\t\t\t\t\t\t(e): e is { current: HTMLElement } =>\r\n\t\t\t\t\t\t\t\te.current !== null,\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t\t.map((e) => e.current),\r\n\t\t\t\t);\r\n\t\t\t\tsetContainer(layout.container[containerName].current);\r\n\t\t\t},\r\n\t\t);\r\n\r\n\t\t// 구독 해제\r\n\t\treturn () => subscription.unsubscribe();\r\n\t}, [containerName, layoutName]);\r\n\tuseEffect(() => {\r\n\t\tconst styleName = `${sizeName.charAt(0).toUpperCase() + sizeName.substring(1)}`;\r\n\t\tconst clientSize = (\"client\" + styleName) as\r\n\t\t\t| \"clientWidth\"\r\n\t\t\t| \"clientHeight\";\r\n\t\tconst outerSize = (\"outer\" + styleName) as \"outerWidth\" | \"outerHeight\";\r\n\t\tconst maxSize = (\"max\" + styleName) as \"maxWidth\" | \"maxHeight\";\r\n\t\tconst subscribe = containerOpenCloseSubjectMap[containerName].subscribe(\r\n\t\t\t({\r\n\t\t\t\tmode,\r\n\t\t\t\tinitOpenState: isOpenState,\r\n\t\t\t\tonClose,\r\n\t\t\t\tonOpen,\r\n\t\t\t\topenOption = {},\r\n\t\t\t\tcloseOption = {},\r\n\t\t\t}) => {\r\n\t\t\t\tif (!container || containers.length === 0) return;\r\n\t\t\t\tconst currentGrow = getGrow(container);\r\n\t\t\t\tconst styleMap = window.getComputedStyle(container);\r\n\t\t\t\tconst maxSizeGrow = mathGrow(\r\n\t\t\t\t\tparseInt(styleMap[maxSize]),\r\n\t\t\t\t\t(container.parentElement &&\r\n\t\t\t\t\t\tcontainer.parentElement[clientSize]) ||\r\n\t\t\t\t\t\twindow[outerSize],\r\n\t\t\t\t\tcontainers.length,\r\n\t\t\t\t);\r\n\t\t\t\tconst open = () =>\r\n\t\t\t\t\topenFlex(container, containers, {\r\n\t\t\t\t\t\tsizeName,\r\n\t\t\t\t\t\t...(isNaN(maxSizeGrow)\r\n\t\t\t\t\t\t\t? {}\r\n\t\t\t\t\t\t\t: {\r\n\t\t\t\t\t\t\t\t\topenGrowImportant: maxSizeGrow,\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t...openOption,\r\n\t\t\t\t\t}).then((openTargetGrow) => {\r\n\t\t\t\t\t\tif (onOpen) onOpen();\r\n\t\t\t\t\t\tcontainerSpreadSubjectMap[containerName].next({\r\n\t\t\t\t\t\t\tisOpen: true,\r\n\t\t\t\t\t\t\tgrow: openTargetGrow as any,\r\n\t\t\t\t\t\t\ttargetContainer: container,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\tconst close = () =>\r\n\t\t\t\t\tcloseFlex(container, containers, {\r\n\t\t\t\t\t\tsizeName,\r\n\t\t\t\t\t\t...closeOption,\r\n\t\t\t\t\t}).then(() => {\r\n\t\t\t\t\t\tif (onClose) onClose();\r\n\t\t\t\t\t\tcontainerSpreadSubjectMap[containerName].next({\r\n\t\t\t\t\t\t\tisOpen: false,\r\n\t\t\t\t\t\t\tgrow: 0,\r\n\t\t\t\t\t\t\ttargetContainer: container,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\tif (mode === \"toggle\") {\r\n\t\t\t\t\tif (currentGrow === 0) {\r\n\t\t\t\t\t\topen();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tclose();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (mode === \"open\") {\r\n\t\t\t\t\tif (currentGrow === 0) {\r\n\t\t\t\t\t\topen();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (mode === \"close\") {\r\n\t\t\t\t\tif (currentGrow !== 0) {\r\n\t\t\t\t\t\tclose();\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\treturn () => {\r\n\t\t\tsubscribe.unsubscribe();\r\n\t\t};\r\n\t}, [containerName, container, containers, sizeName]);\r\n\r\n\treturn null;\r\n};\r\n\r\nexport const useContainers = (layoutName: string) => {\r\n\tconst [containers, setContainers] = useState<HTMLElement[]>([]);\r\n\r\n\tuseEffect(() => {\r\n\t\t// 특정 layoutName과 containerName을 통해 ref를 구독\r\n\t\tconst subscription = getLayoutInfos(layoutName as string).subscribe(\r\n\t\t\t(layout) => {\r\n\t\t\t\tsetContainers(\r\n\t\t\t\t\tObject.values(layout.container)\r\n\t\t\t\t\t\t.filter(\r\n\t\t\t\t\t\t\t(e): e is { current: HTMLElement } =>\r\n\t\t\t\t\t\t\t\te.current !== null,\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t\t.map((e) => e.current),\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t);\r\n\r\n\t\t// 구독 해제\r\n\t\treturn () => subscription.unsubscribe();\r\n\t}, [layoutName]);\r\n\treturn containers;\r\n};\r\n\r\nexport const useLayoutName = (containerName: string) => {\r\n\tconst [layoutName, setLayoutName] = useState<string>();\r\n\tuseEffect(() => {\r\n\t\tconst subscribe = flexContainerStore\r\n\t\t\t.pipe(\r\n\t\t\t\tmap(\r\n\t\t\t\t\t(layouts) =>\r\n\t\t\t\t\t\tObject.entries(layouts)\r\n\t\t\t\t\t\t\t.filter(([_, v]) => v[containerName])\r\n\t\t\t\t\t\t\t.map(([k]) => k)[0] as string, // 첫 번째 결과 가져오기\r\n\t\t\t\t),\r\n\t\t\t)\r\n\t\t\t.subscribe(setLayoutName);\r\n\r\n\t\t// 컴포넌트 언마운트 시 구독 해제\r\n\t\treturn () => subscribe.unsubscribe();\r\n\t}, [containerName]);\r\n\r\n\treturn layoutName;\r\n};\r\n\r\nexport const useDecompositionLayout = ({\r\n\tlayoutName: initialLayoutName,\r\n\tcontainerName,\r\n}: {\r\n\tlayoutName?: string;\r\n\tcontainerName: string;\r\n}) => {\r\n\tconst derivedLayoutName = useLayoutName(containerName);\r\n\tconst finalLayoutName = initialLayoutName || derivedLayoutName;\r\n\r\n\tconst [containers, setContainers] = useState<HTMLElement[]>([]);\r\n\tconst [container, setContainer] = useState<HTMLElement>();\r\n\tconst [resizePanel, setResizePanel] = useState<HTMLElement>();\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!finalLayoutName) return; // layoutName이 준비될 때까지 대기\r\n\t\t// 특정 layoutName과 containerName을 통해 ref를 구독\r\n\t\tconst subscription = getLayoutInfos(finalLayoutName).subscribe(\r\n\t\t\t(layout) => {\r\n\t\t\t\tif (!layout) return;\r\n\t\t\t\tsetContainers(\r\n\t\t\t\t\tObject.values(layout.container)\r\n\t\t\t\t\t\t.filter(\r\n\t\t\t\t\t\t\t(e): e is { current: HTMLElement } =>\r\n\t\t\t\t\t\t\t\te.current !== null,\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t\t.map((e) => e.current),\r\n\t\t\t\t);\r\n\t\t\t\tif (\r\n\t\t\t\t\tcontainerName &&\r\n\t\t\t\t\tlayout.container[containerName] &&\r\n\t\t\t\t\tlayout.container[containerName].current\r\n\t\t\t\t) {\r\n\t\t\t\t\tsetContainer(layout.container[containerName].current);\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tlayout.resizePanel[containerName] &&\r\n\t\t\t\t\t\tlayout.resizePanel[containerName].current\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tsetResizePanel(\r\n\t\t\t\t\t\t\tlayout.resizePanel[containerName].current,\r\n\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\t// 구독 해제\r\n\t\treturn () => subscription.unsubscribe();\r\n\t}, [containerName, finalLayoutName]);\r\n\r\n\treturn { layout: containers, container, resizePanel };\r\n};\r\n\r\nexport const useContainerSize = (containerName: string) => {\r\n\tconst { layout, container, resizePanel } = useDecompositionLayout({\r\n\t\tcontainerName,\r\n\t});\r\n\tconst [size, setSize] = useState<{ width: number; height: number }>();\r\n\tuseEffect(() => {\r\n\t\tif (!container) return;\r\n\t\tconst observer = new ResizeObserver((entries) => {\r\n\t\t\tfor (const entry of entries) {\r\n\t\t\t\tsetSize({\r\n\t\t\t\t\twidth: entry.contentRect.width,\r\n\t\t\t\t\theight: entry.contentRect.height,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t\tobserver.observe(container);\r\n\t\treturn () => observer.disconnect();\r\n\t}, [container]);\r\n\treturn { size };\r\n};\r\n\r\nexport const useDoubleClick = (\r\n\tcontainerName: string,\r\n\topt: ContainerStateRequest,\r\n) => {\r\n\tconst [isOpen, setIsOpen] = useState<boolean>();\r\n\tconst [isDoubleClick, setIsDoubleClick] = useState<boolean>();\r\n\tuseEffect(() => {\r\n\t\tconst resizePanelClickEvent = getResizePanelRef({\r\n\t\t\tcontainerName,\r\n\t\t}).pipe(\r\n\t\t\tfilter(\r\n\t\t\t\t(resizePanelref) =>\r\n\t\t\t\t\tresizePanelref != undefined &&\r\n\t\t\t\t\tresizePanelref.current != undefined,\r\n\t\t\t),\r\n\t\t\t//take(1),\r\n\t\t\tswitchMap((resizePanelref) => {\r\n\t\t\t\tif (!resizePanelref || !resizePanelref.current) return EMPTY;\r\n\t\t\t\treturn fromEvent(resizePanelref.current, \"click\");\r\n\t\t\t}),\r\n\t\t);\r\n\t\tconst subscribe = resizePanelClickEvent\r\n\t\t\t.pipe(\r\n\t\t\t\tbuffer(resizePanelClickEvent.pipe(debounceTime(500))),\r\n\t\t\t\tfilter((clickEventArray) => clickEventArray.length >= 2),\r\n\t\t\t\tmap((events) => {\r\n\t\t\t\t\tcontainerOpenCloseSubjectMap[containerName].next({\r\n\t\t\t\t\t\t...opt,\r\n\t\t\t\t\t\topenOption: {\r\n\t\t\t\t\t\t\t...opt.openOption,\r\n\t\t\t\t\t\t\tisPrevSizeOpen: false,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tonClose: () => {\r\n\t\t\t\t\t\t\tif (opt.onClose) opt.onClose();\r\n\t\t\t\t\t\t\tsetIsOpen(false);\r\n\t\t\t\t\t\t\tsetIsDoubleClick(true);\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tonOpen: () => {\r\n\t\t\t\t\t\t\tif (opt.onOpen) opt.onOpen();\r\n\t\t\t\t\t\t\tsetIsOpen(true);\r\n\t\t\t\t\t\t\tsetIsDoubleClick(true);\r\n\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\t.subscribe();\r\n\t\treturn () => {\r\n\t\t\tsubscribe.unsubscribe();\r\n\t\t};\r\n\t}, [containerName]);\r\n\treturn { isOpen, isDoubleClick, setIsDoubleClick };\r\n};\r\n"],"mappings":"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","names":[]}
@@ -1,14 +1,23 @@
1
- 'use strict';
2
-
3
- var FlexLayoutHooks = require('./FlexLayoutHooks');
4
-
5
-
6
-
7
- Object.keys(FlexLayoutHooks).forEach(function (k) {
8
- if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
9
- enumerable: true,
10
- get: function () { return FlexLayoutHooks[k]; }
11
- });
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 providers_exports = {};
17
+ module.exports = __toCommonJS(providers_exports);
18
+ __reExport(providers_exports, require("./FlexLayoutHooks"), module.exports);
19
+ // Annotate the CommonJS export names for ESM import in node:
20
+ 0 && (module.exports = {
21
+ ...require("./FlexLayoutHooks")
12
22
  });
13
- //# sourceMappingURL=index.cjs.map
14
23
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs","sourcesContent":[]}
1
+ {"version":3,"sources":["../../../src/flex-layout/providers/index.ts"],"sourcesContent":["export * from \"./FlexLayoutHooks\";\r\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,8BAAc,8BAAd;","names":[]}
@@ -1,3 +1,2 @@
1
- export * from './FlexLayoutHooks';
2
- //# sourceMappingURL=index.js.map
1
+ export * from "./FlexLayoutHooks";
3
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js","sourcesContent":[]}
1
+ {"version":3,"sources":["../../../src/flex-layout/providers/index.ts"],"sourcesContent":["export * from \"./FlexLayoutHooks\";\r\n"],"mappings":"AAAA,cAAc;","names":[]}