@byeolnaerim/flex-layout 0.0.8 → 0.0.10

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 (125) hide show
  1. package/dist/flex-layout/components/FlexLayout.cjs +1 -76
  2. package/dist/flex-layout/components/FlexLayout.js +1 -70
  3. package/dist/flex-layout/components/FlexLayoutContainer.cjs +1 -196
  4. package/dist/flex-layout/components/FlexLayoutContainer.js +1 -189
  5. package/dist/flex-layout/components/FlexLayoutIFramePane.cjs +1 -0
  6. package/dist/flex-layout/components/FlexLayoutIFramePane.d.ts +4 -0
  7. package/dist/flex-layout/components/FlexLayoutIFramePane.js +1 -0
  8. package/dist/flex-layout/components/FlexLayoutResizePanel.cjs +1 -192
  9. package/dist/flex-layout/components/FlexLayoutResizePanel.d.ts +1 -1
  10. package/dist/flex-layout/components/FlexLayoutResizePanel.js +1 -186
  11. package/dist/flex-layout/components/FlexLayoutSplitScreen.cjs +1 -1211
  12. package/dist/flex-layout/components/FlexLayoutSplitScreen.js +1 -1197
  13. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBox.cjs +1 -339
  14. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBox.d.ts +1 -1
  15. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBox.js +1 -333
  16. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBoxContainer.cjs +1 -32
  17. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBoxContainer.js +1 -25
  18. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBoxItem.cjs +1 -40
  19. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBoxItem.js +1 -34
  20. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBoxTitleMore.cjs +1 -30
  21. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBoxTitleMore.js +1 -24
  22. package/dist/flex-layout/components/FlexLayoutSplitScreenScrollBox.cjs +1 -109
  23. package/dist/flex-layout/components/FlexLayoutSplitScreenScrollBox.js +1 -103
  24. package/dist/flex-layout/components/FlexLayoutStickyBox.cjs +1 -226
  25. package/dist/flex-layout/components/FlexLayoutStickyBox.d.ts +1 -0
  26. package/dist/flex-layout/components/FlexLayoutStickyBox.js +1 -224
  27. package/dist/flex-layout/components/index.cjs +1 -52
  28. package/dist/flex-layout/components/index.js +1 -9
  29. package/dist/flex-layout/hooks/index.cjs +1 -21
  30. package/dist/flex-layout/hooks/index.js +1 -4
  31. package/dist/flex-layout/hooks/useDrag.cjs +1 -232
  32. package/dist/flex-layout/hooks/useDrag.d.ts +20 -0
  33. package/dist/flex-layout/hooks/useDrag.js +1 -219
  34. package/dist/flex-layout/hooks/useFlexLayoutSplitScreen.cjs +1 -118
  35. package/dist/flex-layout/hooks/useFlexLayoutSplitScreen.js +1 -116
  36. package/dist/flex-layout/hooks/useListPaging.cjs +1 -179
  37. package/dist/flex-layout/hooks/useListPaging.js +1 -175
  38. package/dist/flex-layout/hooks/useSizes.cjs +1 -104
  39. package/dist/flex-layout/hooks/useSizes.js +1 -101
  40. package/dist/flex-layout/index.cjs +1 -42
  41. package/dist/flex-layout/index.js +1 -7
  42. package/dist/flex-layout/providers/FlexLayoutContext.cjs +1 -26
  43. package/dist/flex-layout/providers/FlexLayoutContext.js +1 -23
  44. package/dist/flex-layout/providers/FlexLayoutHooks.cjs +1 -247
  45. package/dist/flex-layout/providers/FlexLayoutHooks.d.ts +5 -1
  46. package/dist/flex-layout/providers/FlexLayoutHooks.js +1 -238
  47. package/dist/flex-layout/providers/index.cjs +1 -14
  48. package/dist/flex-layout/providers/index.js +1 -3
  49. package/dist/flex-layout/store/FlexLayoutContainerStore.cjs +1 -203
  50. package/dist/flex-layout/store/FlexLayoutContainerStore.d.ts +1 -0
  51. package/dist/flex-layout/store/FlexLayoutContainerStore.js +1 -181
  52. package/dist/flex-layout/store/index.cjs +1 -14
  53. package/dist/flex-layout/store/index.js +1 -3
  54. package/dist/flex-layout/styles/FlexLayout.module.css +473 -416
  55. package/dist/flex-layout/types/FlexDirectionTypes.cjs +1 -4
  56. package/dist/flex-layout/types/FlexDirectionTypes.js +0 -3
  57. package/dist/flex-layout/types/FlexLayoutTypes.cjs +1 -4
  58. package/dist/flex-layout/types/FlexLayoutTypes.d.ts +1 -3
  59. package/dist/flex-layout/types/FlexLayoutTypes.js +0 -3
  60. package/dist/flex-layout/utils/FlexLayoutUtils.cjs +1 -208
  61. package/dist/flex-layout/utils/FlexLayoutUtils.d.ts +4 -4
  62. package/dist/flex-layout/utils/FlexLayoutUtils.js +1 -196
  63. package/dist/flex-layout/utils/index.cjs +1 -14
  64. package/dist/flex-layout/utils/index.js +1 -3
  65. package/dist/index.cjs +1 -14
  66. package/dist/index.js +1 -3
  67. package/dist/types/css.d.cjs +1 -4
  68. package/dist/types/css.d.js +0 -3
  69. package/package.json +116 -109
  70. package/dist/flex-layout/components/FlexLayout.cjs.map +0 -1
  71. package/dist/flex-layout/components/FlexLayout.js.map +0 -1
  72. package/dist/flex-layout/components/FlexLayoutContainer.cjs.map +0 -1
  73. package/dist/flex-layout/components/FlexLayoutContainer.js.map +0 -1
  74. package/dist/flex-layout/components/FlexLayoutResizePanel.cjs.map +0 -1
  75. package/dist/flex-layout/components/FlexLayoutResizePanel.js.map +0 -1
  76. package/dist/flex-layout/components/FlexLayoutSplitScreen.cjs.map +0 -1
  77. package/dist/flex-layout/components/FlexLayoutSplitScreen.js.map +0 -1
  78. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBox.cjs.map +0 -1
  79. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBox.js.map +0 -1
  80. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBoxContainer.cjs.map +0 -1
  81. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBoxContainer.js.map +0 -1
  82. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBoxItem.cjs.map +0 -1
  83. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBoxItem.js.map +0 -1
  84. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBoxTitleMore.cjs.map +0 -1
  85. package/dist/flex-layout/components/FlexLayoutSplitScreenDragBoxTitleMore.js.map +0 -1
  86. package/dist/flex-layout/components/FlexLayoutSplitScreenScrollBox.cjs.map +0 -1
  87. package/dist/flex-layout/components/FlexLayoutSplitScreenScrollBox.js.map +0 -1
  88. package/dist/flex-layout/components/FlexLayoutStickyBox.cjs.map +0 -1
  89. package/dist/flex-layout/components/FlexLayoutStickyBox.js.map +0 -1
  90. package/dist/flex-layout/components/index.cjs.map +0 -1
  91. package/dist/flex-layout/components/index.js.map +0 -1
  92. package/dist/flex-layout/hooks/index.cjs.map +0 -1
  93. package/dist/flex-layout/hooks/index.js.map +0 -1
  94. package/dist/flex-layout/hooks/useDrag.cjs.map +0 -1
  95. package/dist/flex-layout/hooks/useDrag.js.map +0 -1
  96. package/dist/flex-layout/hooks/useFlexLayoutSplitScreen.cjs.map +0 -1
  97. package/dist/flex-layout/hooks/useFlexLayoutSplitScreen.js.map +0 -1
  98. package/dist/flex-layout/hooks/useListPaging.cjs.map +0 -1
  99. package/dist/flex-layout/hooks/useListPaging.js.map +0 -1
  100. package/dist/flex-layout/hooks/useSizes.cjs.map +0 -1
  101. package/dist/flex-layout/hooks/useSizes.js.map +0 -1
  102. package/dist/flex-layout/index.cjs.map +0 -1
  103. package/dist/flex-layout/index.js.map +0 -1
  104. package/dist/flex-layout/providers/FlexLayoutContext.cjs.map +0 -1
  105. package/dist/flex-layout/providers/FlexLayoutContext.js.map +0 -1
  106. package/dist/flex-layout/providers/FlexLayoutHooks.cjs.map +0 -1
  107. package/dist/flex-layout/providers/FlexLayoutHooks.js.map +0 -1
  108. package/dist/flex-layout/providers/index.cjs.map +0 -1
  109. package/dist/flex-layout/providers/index.js.map +0 -1
  110. package/dist/flex-layout/store/FlexLayoutContainerStore.cjs.map +0 -1
  111. package/dist/flex-layout/store/FlexLayoutContainerStore.js.map +0 -1
  112. package/dist/flex-layout/store/index.cjs.map +0 -1
  113. package/dist/flex-layout/store/index.js.map +0 -1
  114. package/dist/flex-layout/types/FlexDirectionTypes.cjs.map +0 -1
  115. package/dist/flex-layout/types/FlexDirectionTypes.js.map +0 -1
  116. package/dist/flex-layout/types/FlexLayoutTypes.cjs.map +0 -1
  117. package/dist/flex-layout/types/FlexLayoutTypes.js.map +0 -1
  118. package/dist/flex-layout/utils/FlexLayoutUtils.cjs.map +0 -1
  119. package/dist/flex-layout/utils/FlexLayoutUtils.js.map +0 -1
  120. package/dist/flex-layout/utils/index.cjs.map +0 -1
  121. package/dist/flex-layout/utils/index.js.map +0 -1
  122. package/dist/index.cjs.map +0 -1
  123. package/dist/index.js.map +0 -1
  124. package/dist/types/css.d.cjs.map +0 -1
  125. package/dist/types/css.d.js.map +0 -1
@@ -1,1197 +1 @@
1
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
- import { useEffect, useState, useRef, cloneElement } from 'react';
3
- import { dropMovementEventSubject } from '../hooks/useDrag';
4
- import { useFlexLayoutSplitScreen } from '../hooks/useFlexLayoutSplitScreen';
5
- import { resetRootSplitScreen, getSplitScreen, setSplitScreen, getCurrentSplitScreenComponents, removeSplitScreenChild } from '../store/FlexLayoutContainerStore';
6
- import styles from '../styles/FlexLayout.module.css';
7
- import FlexLayout from './FlexLayout';
8
- import FlexLayoutContainer from './FlexLayoutContainer';
9
- import FlexLayoutSplitScreenDragBox from './FlexLayoutSplitScreenDragBox';
10
- import equal from 'fast-deep-equal';
11
- import { distinctUntilChanged, take } from 'rxjs';
12
- import FlexLayoutSplitScreenDragBoxContainer from './FlexLayoutSplitScreenDragBoxContainer';
13
- import FlexLayoutSplitScreenDragBoxItem from './FlexLayoutSplitScreenDragBoxItem';
14
- import FlexLayoutSplitScreenDragBoxTitleMore from './FlexLayoutSplitScreenDragBoxTitleMore';
15
- import FlexLayoutSplitScreenScrollBox from './FlexLayoutSplitScreenScrollBox';
16
-
17
- function isOverDrop({
18
- x,
19
- y,
20
- element
21
- }) {
22
- const {
23
- x: elementX,
24
- y: elementY,
25
- right: elementRight,
26
- bottom: elementBottom
27
- } = element.getBoundingClientRect();
28
- const isElementOver = x < elementX || x > elementRight || y < elementY || y > elementBottom;
29
- return isElementOver;
30
- }
31
- function isInnerDrop({
32
- x,
33
- y,
34
- element
35
- }) {
36
- const {
37
- x: elementX,
38
- y: elementY,
39
- right: elementRight,
40
- bottom: elementBottom
41
- } = element.getBoundingClientRect();
42
- const isElementInner = x >= elementX && x <= elementRight && y >= elementY && y <= elementBottom;
43
- return isElementInner;
44
- }
45
- const handleUpdateDropTargetComponents = ({
46
- orderName,
47
- parentOrderName,
48
- containerName,
49
- parentLayoutName,
50
- layoutName,
51
- dropComponent,
52
- navigationTitle,
53
- nextContainerName,
54
- isUsePrefix = true,
55
- beforeDropTargetComponent,
56
- afterDropTargetComponent,
57
- centerDropTargetComponent,
58
- dropDocumentOutsideOption,
59
- screenKey = Array.from(
60
- window.crypto.getRandomValues(new Uint32Array(16)),
61
- (e) => e.toString(32).padStart(2, "0")
62
- ).join("")
63
- }) => {
64
- const nextContainerNameOrderName = parentOrderName ? parentOrderName : orderName;
65
- let listMap;
66
- let list;
67
- let key;
68
- if (nextContainerNameOrderName === orderName || nextContainerNameOrderName === "center") {
69
- listMap = orderName === "before" ? { beforeDropTargetComponent } : orderName === "after" ? { afterDropTargetComponent } : {
70
- centerDropTargetComponent: centerDropTargetComponent.filter(
71
- (e) => !e.containerName.split("_").at(0).startsWith(
72
- containerName.split("_").at(0)
73
- )
74
- )
75
- };
76
- } else {
77
- listMap = nextContainerNameOrderName === "before" ? { beforeDropTargetComponent } : { afterDropTargetComponent };
78
- }
79
- const entries = Object.entries(listMap)[0];
80
- key = entries[0];
81
- list = entries[1];
82
- const newComponent = {
83
- containerName: `${containerName + "_" + layoutName}${isUsePrefix ? "_" + orderName + "-" + list.length : ""}`,
84
- component: cloneElement(
85
- dropComponent,
86
- { key: screenKey, screenKey }
87
- ),
88
- navigationTitle,
89
- dropDocumentOutsideOption,
90
- screenKey: screenKey || Array.from(
91
- window.crypto.getRandomValues(new Uint32Array(16)),
92
- (e) => e.toString(32).padStart(2, "0")
93
- ).join("")
94
- };
95
- let allComponents;
96
- if (nextContainerName) {
97
- const index = list.findIndex(
98
- (item) => item.containerName === nextContainerName
99
- );
100
- if (index !== -1) {
101
- if (nextContainerNameOrderName === orderName) {
102
- if (orderName === "before") {
103
- allComponents = [
104
- ...list.slice(0, index),
105
- newComponent,
106
- ...list.slice(index)
107
- ];
108
- } else {
109
- allComponents = [
110
- ...list.slice(0, index + 1),
111
- newComponent,
112
- ...list.slice(index + 1)
113
- ];
114
- }
115
- } else {
116
- if (nextContainerNameOrderName === "after" && orderName === "before") {
117
- allComponents = [
118
- ...list.slice(0, index),
119
- newComponent,
120
- ...list.slice(index)
121
- ];
122
- } else if (nextContainerNameOrderName === "before" && orderName === "after") {
123
- allComponents = [
124
- ...list.slice(0, index + 1),
125
- newComponent,
126
- ...list.slice(index + 1)
127
- ];
128
- } else {
129
- if (orderName === "before") {
130
- allComponents = [
131
- ...list.slice(0, index),
132
- newComponent,
133
- ...list.slice(index)
134
- ];
135
- } else {
136
- allComponents = [
137
- ...list.slice(0, index + 1),
138
- newComponent,
139
- ...list.slice(index + 1)
140
- ];
141
- }
142
- }
143
- }
144
- } else {
145
- if (nextContainerNameOrderName === "center" && orderName === "after") {
146
- allComponents = [newComponent, ...list];
147
- } else if (nextContainerNameOrderName === "center" && orderName === "before") {
148
- allComponents = [...list, newComponent];
149
- } else {
150
- allComponents = orderName === "before" ? [newComponent, ...list] : [...list, newComponent];
151
- }
152
- }
153
- } else {
154
- allComponents = orderName === "before" ? [newComponent, ...list] : [...list, newComponent];
155
- }
156
- const seen = /* @__PURE__ */ new Set();
157
- const result = allComponents.filter((item) => {
158
- if (seen.has(item.containerName)) {
159
- return false;
160
- }
161
- seen.add(item.containerName);
162
- return true;
163
- });
164
- dropMovementEventSubject.next({
165
- state: "append",
166
- targetParentLayoutName: parentLayoutName,
167
- targetLayoutName: layoutName,
168
- targetContainerName: containerName,
169
- orderName
170
- });
171
- return { [key]: result };
172
- };
173
- const handleRemove = (list, targetContainerName, orderNameSetter) => {
174
- const result = list.filter((e) => e.containerName !== targetContainerName);
175
- if (result.length != list.length)
176
- orderNameSetter(list.length - result.length);
177
- return result;
178
- };
179
- function getAdjacentItem(items, currentIndex) {
180
- if (currentIndex + 1 < items.length) {
181
- return {
182
- adjacentItem: items[currentIndex + 1],
183
- adjacentIndex: currentIndex + 1
184
- };
185
- } else if (currentIndex - 1 >= 0) {
186
- return {
187
- adjacentItem: items[currentIndex - 1],
188
- adjacentIndex: currentIndex - 1
189
- };
190
- }
191
- return { adjacentItem: null, adjacentIndex: currentIndex };
192
- }
193
- const getSelfOrderName = (containerName) => {
194
- const result = containerName.split("_").at(-1)?.split("-").at(0)?.split("=").at(0);
195
- if (["before", "center", "after"].some((e) => e === result)) {
196
- return result;
197
- } else {
198
- return;
199
- }
200
- };
201
- function FlexLayoutSplitScreen({
202
- children,
203
- containerName,
204
- layoutName,
205
- navigationTitle,
206
- dropDocumentOutsideOption,
207
- screenKey
208
- }) {
209
- const {
210
- direction,
211
- isSplit,
212
- boundaryContainerSize,
213
- afterDropTargetComponent,
214
- beforeDropTargetComponent,
215
- centerDropTargetComponent,
216
- setAfterDropTargetComponent,
217
- setBeforeDropTargetComponent,
218
- setCenterDropTargetComponent,
219
- layoutRef,
220
- setIsSplit,
221
- setDirection
222
- } = useFlexLayoutSplitScreen({
223
- isSplitInitial: false,
224
- directionInitial: "row",
225
- selfContainerName: containerName,
226
- parentLayoutName: "",
227
- layoutName
228
- });
229
- useEffect(() => {
230
- resetRootSplitScreen(layoutName);
231
- const subscribe = getSplitScreen(layoutName, layoutName).subscribe((layoutInfo) => {
232
- if (layoutInfo) {
233
- setBeforeDropTargetComponent([
234
- ...layoutInfo.beforeDropTargetComponent
235
- ]);
236
- setAfterDropTargetComponent([
237
- ...layoutInfo.afterDropTargetComponent
238
- ]);
239
- setCenterDropTargetComponent([
240
- ...layoutInfo.centerDropTargetComponent
241
- ]);
242
- setDirection(layoutInfo.direction);
243
- if (layoutInfo.beforeDropTargetComponent.length !== 0 || layoutInfo.afterDropTargetComponent.length !== 0) {
244
- setIsSplit(true);
245
- }
246
- } else {
247
- setSplitScreen(layoutName, layoutName, {
248
- afterDropTargetComponent: [],
249
- beforeDropTargetComponent: [],
250
- centerDropTargetComponent: [
251
- {
252
- containerName,
253
- component: children,
254
- navigationTitle,
255
- dropDocumentOutsideOption,
256
- screenKey: screenKey ? screenKey : Array.from(
257
- window.crypto.getRandomValues(
258
- new Uint32Array(16)
259
- ),
260
- (e) => e.toString(32).padStart(2, "0")
261
- ).join("")
262
- }
263
- ],
264
- direction
265
- });
266
- }
267
- });
268
- return () => {
269
- subscribe.unsubscribe();
270
- resetRootSplitScreen(layoutName);
271
- };
272
- }, [layoutName]);
273
- useEffect(() => {
274
- const subscribe = dropMovementEventSubject.pipe(
275
- distinctUntilChanged((prev, curr) => {
276
- const filterChildren = (obj) => {
277
- const {
278
- children: children2,
279
- component,
280
- targetComponent,
281
- x,
282
- y,
283
- ...rest
284
- } = obj || {};
285
- return rest;
286
- };
287
- return equal(filterChildren(prev), filterChildren(curr));
288
- })
289
- ).subscribe((event) => {
290
- if (event.state === "remove") {
291
- if (event.targetParentLayoutName === layoutName || event.targetParentLayoutName === "" && event.targetLayoutName === layoutName) {
292
- requestAnimationFrame(() => {
293
- let removeCallback = (removeOrderName) => {
294
- if (event.nextContainerName && event.dropTargetComponentEvent && event.targetComponent) {
295
- const targetComponentsMap = handleUpdateDropTargetComponents({
296
- orderName: removeOrderName,
297
- containerName: event.nextContainerName,
298
- parentLayoutName: "",
299
- layoutName,
300
- dropComponent: event.targetComponent,
301
- navigationTitle: event.dropTargetComponentEvent.navigationTitle,
302
- isUsePrefix: true,
303
- afterDropTargetComponent,
304
- beforeDropTargetComponent,
305
- centerDropTargetComponent,
306
- dropDocumentOutsideOption,
307
- screenKey: event.dropTargetComponentEvent.screenKey
308
- });
309
- setSplitScreen(layoutName, layoutName, {
310
- ...getCurrentSplitScreenComponents(
311
- layoutName,
312
- layoutName
313
- ) || {
314
- afterDropTargetComponent,
315
- beforeDropTargetComponent,
316
- centerDropTargetComponent,
317
- direction
318
- },
319
- ...targetComponentsMap
320
- });
321
- Promise.resolve().then(
322
- () => event.dropEndCallback && event.dropEndCallback({
323
- x: event.x,
324
- y: event.y,
325
- containerName
326
- })
327
- );
328
- }
329
- };
330
- const currentComponents = getCurrentSplitScreenComponents(
331
- layoutName,
332
- layoutName
333
- );
334
- const afterList = handleRemove(
335
- currentComponents?.afterDropTargetComponent || afterDropTargetComponent,
336
- event.targetContainerName,
337
- () => removeCallback("after")
338
- );
339
- const beforList = handleRemove(
340
- currentComponents?.beforeDropTargetComponent || beforeDropTargetComponent,
341
- event.targetContainerName,
342
- () => removeCallback("before")
343
- );
344
- const centerList = handleRemove(
345
- currentComponents?.centerDropTargetComponent || centerDropTargetComponent,
346
- event.targetContainerName,
347
- () => removeCallback("center")
348
- );
349
- setSplitScreen(layoutName, layoutName, {
350
- afterDropTargetComponent: afterList,
351
- beforeDropTargetComponent: beforList,
352
- centerDropTargetComponent: centerList,
353
- direction
354
- });
355
- });
356
- }
357
- } else if (event.state === "append") {
358
- const {
359
- x,
360
- y,
361
- dropEndCallback,
362
- dropTargetComponentEvent,
363
- orderName,
364
- parentOrderName,
365
- targetLayoutName,
366
- targetParentLayoutName,
367
- targetContainerName,
368
- targetComponent,
369
- nextContainerName
370
- } = event;
371
- if (layoutRef.current && orderName && x && y && targetComponent && dropTargetComponentEvent && targetLayoutName === layoutName && isInnerDrop({ x, y, element: layoutRef.current })) {
372
- const {
373
- direction: dropDirection,
374
- navigationTitle: navigationTitle2,
375
- dropDocumentOutsideOption: dropDocumentOutsideOption2
376
- } = dropTargetComponentEvent;
377
- const isOrderNameNotCenter = orderName !== "center";
378
- const isOrderNameCenterAndFirstScreen = orderName === "center" && centerDropTargetComponent.length <= 1;
379
- if (isOrderNameNotCenter || isOrderNameCenterAndFirstScreen) {
380
- setIsSplit(true);
381
- if (isOrderNameNotCenter) {
382
- setDirection(dropDirection);
383
- const targetComponentsMap = handleUpdateDropTargetComponents({
384
- orderName,
385
- parentOrderName,
386
- containerName: targetContainerName,
387
- nextContainerName,
388
- dropComponent: targetComponent,
389
- parentLayoutName: "",
390
- layoutName,
391
- navigationTitle: navigationTitle2,
392
- isUsePrefix: true,
393
- afterDropTargetComponent,
394
- beforeDropTargetComponent,
395
- centerDropTargetComponent,
396
- dropDocumentOutsideOption: dropDocumentOutsideOption2
397
- });
398
- setSplitScreen(layoutName, layoutName, {
399
- ...{
400
- afterDropTargetComponent,
401
- beforeDropTargetComponent,
402
- centerDropTargetComponent,
403
- direction: dropDirection
404
- },
405
- ...targetComponentsMap,
406
- ...{ direction: dropDirection }
407
- });
408
- Promise.resolve().then(
409
- () => dropEndCallback && dropEndCallback({
410
- x: event.x,
411
- y: event.y,
412
- containerName
413
- })
414
- );
415
- } else {
416
- const childScreenInfo = getCurrentSplitScreenComponents(
417
- layoutName,
418
- `${layoutName}_center=${centerDropTargetComponent[0].screenKey}`
419
- ) || {
420
- afterDropTargetComponent: [],
421
- beforeDropTargetComponent: [],
422
- centerDropTargetComponent: [],
423
- direction
424
- };
425
- setSplitScreen(
426
- layoutName,
427
- `${layoutName}_center=${centerDropTargetComponent[0].screenKey}`,
428
- {
429
- ...childScreenInfo,
430
- ...{
431
- centerDropTargetComponent: [
432
- centerDropTargetComponent[0],
433
- {
434
- containerName: `${targetContainerName}_${layoutName}_${orderName}`,
435
- component: targetComponent,
436
- dropDocumentOutsideOption: dropDocumentOutsideOption2,
437
- screenKey: centerDropTargetComponent[0].screenKey,
438
- navigationTitle: navigationTitle2
439
- }
440
- ]
441
- }
442
- }
443
- );
444
- }
445
- }
446
- }
447
- }
448
- });
449
- return () => {
450
- subscribe.unsubscribe();
451
- };
452
- }, [
453
- direction,
454
- layoutName,
455
- isSplit,
456
- beforeDropTargetComponent,
457
- afterDropTargetComponent,
458
- centerDropTargetComponent
459
- ]);
460
- return /* @__PURE__ */ jsxs("div", { className: `${styles["flex-split-screen"]}`, ref: layoutRef, children: [
461
- /* @__PURE__ */ jsxs(
462
- FlexLayout,
463
- {
464
- direction,
465
- layoutName,
466
- "data-is_split": isSplit,
467
- panelMovementMode: "bulldozer",
468
- children: [
469
- beforeDropTargetComponent.length != 0 ? /* @__PURE__ */ jsx(Fragment, { children: beforeDropTargetComponent.map(
470
- ({
471
- containerName: cName,
472
- component,
473
- navigationTitle: navigationTitle2,
474
- dropDocumentOutsideOption: dropDocumentOutsideOption2,
475
- screenKey: screenKey2
476
- }, i) => /* @__PURE__ */ jsx(
477
- FlexLayoutContainer,
478
- {
479
- containerName: cName,
480
- isInitialResizable: true,
481
- isResizePanel: true,
482
- children: /* @__PURE__ */ jsx(
483
- FlexLayoutSplitScreenChild,
484
- {
485
- parentDirection: direction,
486
- layoutName: `${layoutName}_before`,
487
- parentLayoutName: layoutName,
488
- containerName: cName,
489
- depth: 1,
490
- rootRef: layoutRef,
491
- screenKey: screenKey2,
492
- initialCenterComponents: [
493
- {
494
- navigationTitle: navigationTitle2,
495
- component,
496
- containerName: cName,
497
- dropDocumentOutsideOption: dropDocumentOutsideOption2,
498
- screenKey: screenKey2
499
- }
500
- ],
501
- rootName: layoutName
502
- }
503
- )
504
- },
505
- cName
506
- )
507
- ) }) : /* @__PURE__ */ jsx("div", {}),
508
- centerDropTargetComponent.length === 0 ? /* @__PURE__ */ jsx("div", {}) : /* @__PURE__ */ jsx(
509
- FlexLayoutContainer,
510
- {
511
- containerName: `${centerDropTargetComponent[0].containerName}`,
512
- isInitialResizable: true,
513
- isResizePanel: isSplit,
514
- children: isSplit ? /* @__PURE__ */ jsx(
515
- FlexLayoutSplitScreenChild,
516
- {
517
- parentDirection: direction,
518
- layoutName: `${layoutName}_center`,
519
- parentLayoutName: layoutName,
520
- containerName: `${centerDropTargetComponent[0].containerName}`,
521
- depth: 0,
522
- rootRef: layoutRef,
523
- screenKey: centerDropTargetComponent[0].screenKey,
524
- initialCenterComponents: [
525
- {
526
- navigationTitle: centerDropTargetComponent[0].navigationTitle,
527
- component: centerDropTargetComponent[0].component,
528
- containerName: centerDropTargetComponent[0].containerName,
529
- dropDocumentOutsideOption: centerDropTargetComponent[0].dropDocumentOutsideOption,
530
- screenKey: centerDropTargetComponent[0].screenKey
531
- }
532
- ],
533
- rootName: layoutName
534
- }
535
- ) : /* @__PURE__ */ jsx(
536
- FlexLayoutSplitScreenScrollBox,
537
- {
538
- keyName: centerDropTargetComponent[0].containerName,
539
- isDefaultScrollStyle: true,
540
- children: centerDropTargetComponent[0].component
541
- }
542
- )
543
- }
544
- ),
545
- afterDropTargetComponent.length != 0 ? /* @__PURE__ */ jsx(Fragment, { children: afterDropTargetComponent.map(
546
- ({
547
- containerName: cName,
548
- component,
549
- navigationTitle: navigationTitle2,
550
- dropDocumentOutsideOption: dropDocumentOutsideOption2,
551
- screenKey: screenKey2
552
- }, i) => /* @__PURE__ */ jsx(
553
- FlexLayoutContainer,
554
- {
555
- containerName: cName,
556
- isInitialResizable: true,
557
- isResizePanel: afterDropTargetComponent.length - 1 !== i,
558
- children: /* @__PURE__ */ jsx(
559
- FlexLayoutSplitScreenChild,
560
- {
561
- parentDirection: direction,
562
- layoutName: `${layoutName}_after`,
563
- parentLayoutName: layoutName,
564
- containerName: cName,
565
- depth: 1,
566
- rootRef: layoutRef,
567
- screenKey: screenKey2,
568
- initialCenterComponents: [
569
- {
570
- navigationTitle: navigationTitle2,
571
- component,
572
- containerName: cName,
573
- dropDocumentOutsideOption: dropDocumentOutsideOption2,
574
- screenKey: screenKey2
575
- }
576
- ],
577
- rootName: layoutName
578
- }
579
- )
580
- },
581
- cName
582
- )
583
- ) }) : /* @__PURE__ */ jsx("div", {})
584
- ]
585
- }
586
- ),
587
- boundaryContainerSize && /* @__PURE__ */ jsx(
588
- "div",
589
- {
590
- className: `${styles["flex-split-screen-boundary-container"]}`,
591
- style: { ...boundaryContainerSize },
592
- children: "\u2B07\uFE0F\uB4DC\uB86D\uD558\uBA74 \uD654\uBA74\uC774 \uBD84\uD560\uB429\uB2C8\uB2E4."
593
- }
594
- )
595
- ] });
596
- }
597
- function FlexLayoutSplitScreenChild({
598
- containerName,
599
- layoutName,
600
- parentLayoutName,
601
- parentDirection,
602
- depth,
603
- //isSplit: isSplitInitial,
604
- rootRef,
605
- rootName,
606
- initialCenterComponents,
607
- screenKey
608
- }) {
609
- const {
610
- direction,
611
- isSplit,
612
- boundaryContainerSize,
613
- afterDropTargetComponent,
614
- beforeDropTargetComponent,
615
- centerDropTargetComponent,
616
- setAfterDropTargetComponent,
617
- setBeforeDropTargetComponent,
618
- setCenterDropTargetComponent,
619
- layoutRef,
620
- setIsSplit,
621
- setDirection
622
- } = useFlexLayoutSplitScreen({
623
- isSplitInitial: false,
624
- directionInitial: "row",
625
- parentDirection,
626
- selfContainerName: containerName,
627
- parentLayoutName,
628
- layoutName
629
- });
630
- const [isEmptyContent, setIsEmptyContent] = useState(false);
631
- const [activeIndex, setActiveIndex] = useState(0);
632
- const centerDropTargetComponentRef = useRef(centerDropTargetComponent);
633
- const activeIndexRef = useRef(activeIndex);
634
- useEffect(() => {
635
- const subscribe = getSplitScreen(rootName, `${layoutName}=${screenKey}`).pipe(take(1)).subscribe((layoutInfo) => {
636
- setSplitScreen(rootName, `${layoutName}=${screenKey}`, {
637
- afterDropTargetComponent: layoutInfo?.afterDropTargetComponent || [],
638
- beforeDropTargetComponent: layoutInfo?.beforeDropTargetComponent || [],
639
- centerDropTargetComponent: layoutInfo?.centerDropTargetComponent || initialCenterComponents || [],
640
- direction: layoutInfo?.direction || direction
641
- });
642
- });
643
- return () => {
644
- removeSplitScreenChild(rootName, layoutName);
645
- subscribe.unsubscribe();
646
- };
647
- }, [rootName, layoutName, initialCenterComponents]);
648
- useEffect(() => {
649
- const subscribe = getSplitScreen(rootName, `${layoutName}=${screenKey}`).subscribe((layoutInfo) => {
650
- if (layoutInfo) {
651
- setBeforeDropTargetComponent([
652
- ...layoutInfo.beforeDropTargetComponent
653
- ]);
654
- setAfterDropTargetComponent([
655
- ...layoutInfo.afterDropTargetComponent
656
- ]);
657
- setCenterDropTargetComponent([
658
- ...layoutInfo.centerDropTargetComponent
659
- ]);
660
- setDirection(layoutInfo.direction);
661
- if (layoutInfo.beforeDropTargetComponent.length !== 0 || layoutInfo.afterDropTargetComponent.length !== 0) {
662
- setIsSplit(true);
663
- } else if (layoutInfo.beforeDropTargetComponent.length === 0 && layoutInfo.centerDropTargetComponent.length === 0 && layoutInfo.afterDropTargetComponent.length === 0) {
664
- dropMovementEventSubject.next({
665
- state: "remove",
666
- targetContainerName: containerName,
667
- targetParentLayoutName: "",
668
- targetLayoutName: parentLayoutName
669
- });
670
- setIsEmptyContent(true);
671
- }
672
- }
673
- });
674
- return () => {
675
- subscribe.unsubscribe();
676
- };
677
- }, [rootName, layoutName]);
678
- useEffect(() => {
679
- const subscribe = dropMovementEventSubject.pipe(
680
- distinctUntilChanged((prev, curr) => {
681
- const filterChildren = (obj) => {
682
- const {
683
- children,
684
- component,
685
- targetComponent,
686
- x,
687
- y,
688
- ...rest
689
- } = obj || {};
690
- return rest;
691
- };
692
- return equal(filterChildren(prev), filterChildren(curr));
693
- })
694
- ).subscribe((event) => {
695
- if (event.state === "remove") {
696
- if (event.targetParentLayoutName === layoutName || event.targetParentLayoutName === "" && event.targetLayoutName === layoutName) {
697
- requestAnimationFrame(() => {
698
- let removeCallback = (removeOrderName) => {
699
- if (event.nextContainerName && event.dropTargetComponentEvent && event.targetComponent) {
700
- const targetComponentsMap = handleUpdateDropTargetComponents({
701
- orderName: removeOrderName,
702
- containerName: event.nextContainerName,
703
- parentLayoutName,
704
- layoutName,
705
- dropComponent: event.targetComponent,
706
- navigationTitle: event.dropTargetComponentEvent.navigationTitle,
707
- isUsePrefix: true,
708
- afterDropTargetComponent,
709
- beforeDropTargetComponent,
710
- centerDropTargetComponent,
711
- dropDocumentOutsideOption: event.dropTargetComponentEvent?.dropDocumentOutsideOption,
712
- screenKey: event.dropTargetComponentEvent.screenKey
713
- });
714
- setSplitScreen(
715
- rootName,
716
- `${layoutName}=${screenKey}`,
717
- {
718
- ...getCurrentSplitScreenComponents(
719
- rootName,
720
- `${layoutName}=${screenKey}`
721
- ) || {
722
- afterDropTargetComponent,
723
- beforeDropTargetComponent,
724
- centerDropTargetComponent,
725
- direction
726
- },
727
- ...targetComponentsMap
728
- }
729
- );
730
- Promise.resolve().then(
731
- () => event.dropEndCallback && event.dropEndCallback({
732
- x: event.x,
733
- y: event.y,
734
- containerName
735
- })
736
- );
737
- }
738
- };
739
- const currentComponents = getCurrentSplitScreenComponents(
740
- rootName,
741
- `${layoutName}=${screenKey}`
742
- );
743
- const afterList = handleRemove(
744
- currentComponents?.afterDropTargetComponent || afterDropTargetComponent,
745
- event.targetContainerName,
746
- () => removeCallback("after")
747
- );
748
- const beforList = handleRemove(
749
- currentComponents?.beforeDropTargetComponent || beforeDropTargetComponent,
750
- event.targetContainerName,
751
- () => removeCallback("before")
752
- );
753
- const centerList = handleRemove(
754
- currentComponents?.centerDropTargetComponent || centerDropTargetComponent,
755
- event.targetContainerName,
756
- () => removeCallback("center")
757
- );
758
- setSplitScreen(
759
- rootName,
760
- `${layoutName}=${screenKey}`,
761
- {
762
- afterDropTargetComponent: afterList,
763
- beforeDropTargetComponent: beforList,
764
- centerDropTargetComponent: centerList,
765
- direction
766
- }
767
- );
768
- });
769
- }
770
- } else if (event.state === "append") {
771
- const {
772
- x,
773
- y,
774
- dropEndCallback,
775
- dropTargetComponentEvent,
776
- orderName,
777
- targetLayoutName,
778
- targetParentLayoutName,
779
- targetContainerName,
780
- targetComponent,
781
- nextContainerName,
782
- parentOrderName
783
- } = event;
784
- if (layoutRef.current && orderName && x && y && dropTargetComponentEvent && isInnerDrop({ x, y, element: layoutRef.current })) {
785
- const {
786
- direction: dropDirection,
787
- navigationTitle,
788
- dropDocumentOutsideOption,
789
- screenKey: containerScreenKey
790
- } = dropTargetComponentEvent;
791
- if (
792
- //orderName !== 'center' &&
793
- targetLayoutName === layoutName && targetComponent
794
- ) {
795
- if (dropDirection === parentDirection && orderName !== "center") {
796
- dropMovementEventSubject.next({
797
- state: "append",
798
- targetContainerName,
799
- targetParentLayoutName: "",
800
- targetLayoutName: parentLayoutName,
801
- targetComponent,
802
- nextContainerName: containerName,
803
- parentOrderName: getSelfOrderName(layoutName) || orderName,
804
- orderName,
805
- x,
806
- y,
807
- dropEndCallback,
808
- dropTargetComponentEvent: {
809
- navigationTitle,
810
- dropDocumentOutsideOption,
811
- direction: parentDirection,
812
- screenKey
813
- }
814
- });
815
- } else {
816
- if (orderName !== "center") {
817
- setDirection(dropDirection);
818
- setIsSplit(true);
819
- }
820
- const targetComponentsMap = handleUpdateDropTargetComponents({
821
- orderName,
822
- parentOrderName,
823
- containerName: targetContainerName,
824
- nextContainerName,
825
- parentLayoutName,
826
- layoutName,
827
- dropComponent: targetComponent,
828
- navigationTitle,
829
- isUsePrefix: orderName !== "center",
830
- afterDropTargetComponent,
831
- beforeDropTargetComponent,
832
- centerDropTargetComponent,
833
- dropDocumentOutsideOption
834
- });
835
- setSplitScreen(
836
- rootName,
837
- `${layoutName}=${screenKey}`,
838
- {
839
- ...getCurrentSplitScreenComponents(
840
- rootName,
841
- `${layoutName}=${screenKey}`
842
- ) || {
843
- afterDropTargetComponent,
844
- beforeDropTargetComponent,
845
- centerDropTargetComponent,
846
- direction
847
- },
848
- ...targetComponentsMap,
849
- ...{ direction: dropDirection }
850
- }
851
- );
852
- Promise.resolve().then(
853
- () => event.dropEndCallback && event.dropEndCallback({
854
- x: event.x,
855
- y: event.y,
856
- containerName
857
- })
858
- );
859
- }
860
- }
861
- }
862
- }
863
- });
864
- return () => {
865
- subscribe.unsubscribe();
866
- };
867
- }, [
868
- direction,
869
- parentDirection,
870
- parentLayoutName,
871
- layoutName,
872
- beforeDropTargetComponent,
873
- afterDropTargetComponent,
874
- centerDropTargetComponent
875
- ]);
876
- useEffect(() => {
877
- centerDropTargetComponentRef.current = centerDropTargetComponent;
878
- }, [centerDropTargetComponent]);
879
- useEffect(() => {
880
- activeIndexRef.current = activeIndex;
881
- }, [activeIndex]);
882
- const [isOnlyOneScreen, setIsOnlyOneScreen] = useState(false);
883
- return /* @__PURE__ */ jsx(Fragment, { children: !isEmptyContent && /* @__PURE__ */ jsxs(
884
- "div",
885
- {
886
- className: `${styles["flex-split-screen"]}`,
887
- ref: layoutRef,
888
- children: [
889
- /* @__PURE__ */ jsxs(
890
- FlexLayout,
891
- {
892
- direction,
893
- layoutName: `${layoutName}`,
894
- panelMovementMode: "bulldozer",
895
- children: [
896
- beforeDropTargetComponent.length != 0 ? /* @__PURE__ */ jsx(Fragment, { children: beforeDropTargetComponent.map(
897
- ({
898
- containerName: cName,
899
- component,
900
- navigationTitle,
901
- dropDocumentOutsideOption,
902
- screenKey: screenKey2
903
- }, i) => /* @__PURE__ */ jsx(
904
- FlexLayoutContainer,
905
- {
906
- containerName: cName,
907
- isInitialResizable: true,
908
- isResizePanel: true,
909
- children: /* @__PURE__ */ jsx(
910
- FlexLayoutSplitScreenChild,
911
- {
912
- parentDirection: direction,
913
- layoutName: `${layoutName}_before-${depth}`,
914
- parentLayoutName: layoutName,
915
- containerName: cName,
916
- depth: depth + 1,
917
- rootRef,
918
- screenKey: screenKey2,
919
- initialCenterComponents: [
920
- {
921
- navigationTitle,
922
- component,
923
- containerName: cName,
924
- dropDocumentOutsideOption,
925
- screenKey: screenKey2
926
- }
927
- ],
928
- rootName
929
- }
930
- )
931
- },
932
- cName
933
- )
934
- ) }) : /* @__PURE__ */ jsx("div", {}),
935
- centerDropTargetComponent.length != 0 ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
936
- FlexLayoutContainer,
937
- {
938
- containerName: `${(centerDropTargetComponent[activeIndex] || centerDropTargetComponent[0]).containerName}`,
939
- isInitialResizable: true,
940
- isResizePanel: isSplit,
941
- children: isSplit ? /* @__PURE__ */ jsx("div", { "data-key": screenKey, children: /* @__PURE__ */ jsx(
942
- FlexLayoutSplitScreenChild,
943
- {
944
- parentDirection: direction,
945
- layoutName: `${layoutName}_center-${depth}`,
946
- parentLayoutName: layoutName,
947
- containerName: `${(centerDropTargetComponent[activeIndex] || centerDropTargetComponent[0]).containerName}`,
948
- depth: depth + 1,
949
- rootRef,
950
- initialCenterComponents: centerDropTargetComponent.map(
951
- ({
952
- navigationTitle,
953
- component,
954
- containerName: cName,
955
- dropDocumentOutsideOption,
956
- screenKey: centerScreenKey
957
- }) => ({
958
- navigationTitle,
959
- component,
960
- containerName: cName,
961
- dropDocumentOutsideOption,
962
- screenKey: centerScreenKey
963
- })
964
- ),
965
- screenKey,
966
- rootName
967
- }
968
- ) }) : /* @__PURE__ */ jsxs(
969
- FlexLayoutSplitScreenScrollBox,
970
- {
971
- keyName: (centerDropTargetComponent[activeIndex] || centerDropTargetComponent[0]).containerName,
972
- isDefaultScrollStyle: true,
973
- children: [
974
- !isOnlyOneScreen && /* @__PURE__ */ jsx(
975
- "div",
976
- {
977
- className: `${styles["flex-split-screen-drag-box-title-wrapper-sticky"]}`,
978
- children: /* @__PURE__ */ jsxs(
979
- "div",
980
- {
981
- "data-is_split": isSplit,
982
- "data-layout_name": layoutName,
983
- "data-parent_layout_name": parentLayoutName,
984
- "data-container_name": `${(centerDropTargetComponent[activeIndex] || centerDropTargetComponent[0]).containerName}`,
985
- className: `${styles["flex-split-screen-drag-box-title-wrapper"]}`,
986
- children: [
987
- /* @__PURE__ */ jsx(
988
- FlexLayoutSplitScreenDragBoxContainer,
989
- {
990
- "data-layout_name": layoutName,
991
- layoutName,
992
- children: centerDropTargetComponent.map(
993
- (item, index) => /* @__PURE__ */ jsx(
994
- FlexLayoutSplitScreenDragBoxItem,
995
- {
996
- onClose: (ev) => {
997
- if (activeIndexRef.current === index && centerDropTargetComponent.length === 1) {
998
- dropMovementEventSubject.next(
999
- {
1000
- state: "remove",
1001
- targetContainerName: containerName,
1002
- targetParentLayoutName: parentLayoutName,
1003
- targetLayoutName: layoutName
1004
- }
1005
- );
1006
- } else {
1007
- if (centerDropTargetComponent.length === activeIndexRef.current + 1) {
1008
- setActiveIndex(
1009
- activeIndexRef.current - 1
1010
- );
1011
- }
1012
- setCenterDropTargetComponent(
1013
- (prev) => {
1014
- const result = handleRemove(
1015
- prev,
1016
- item.containerName,
1017
- () => {
1018
- }
1019
- );
1020
- return result;
1021
- }
1022
- );
1023
- }
1024
- },
1025
- isActive: activeIndex === index,
1026
- children: /* @__PURE__ */ jsx(
1027
- FlexLayoutSplitScreenDragBox,
1028
- {
1029
- onClick: () => {
1030
- setActiveIndex(
1031
- index
1032
- );
1033
- },
1034
- containerName: item.containerName,
1035
- dropDocumentOutsideOption: item.dropDocumentOutsideOption,
1036
- targetComponent: item.component,
1037
- navigationTitle: item.navigationTitle,
1038
- "data-container-name": item.containerName,
1039
- "data-layout-name": layoutName,
1040
- "data-parent-layout-name": parentLayoutName,
1041
- dropEndCallback: ({
1042
- x,
1043
- y,
1044
- containerName: appendContainerName
1045
- }) => {
1046
- if (!rootRef.current || !layoutRef.current)
1047
- return;
1048
- const isRootOver = isOverDrop(
1049
- {
1050
- x,
1051
- y,
1052
- element: rootRef.current
1053
- }
1054
- );
1055
- const isLayoutInner = isInnerDrop(
1056
- {
1057
- x,
1058
- y,
1059
- element: layoutRef.current
1060
- }
1061
- );
1062
- if (!isRootOver && !isLayoutInner || !isRootOver && isLayoutInner && centerDropTargetComponentRef.current.length > 1) {
1063
- const option = {};
1064
- if (centerDropTargetComponentRef.current.length > 1) {
1065
- const {
1066
- adjacentItem,
1067
- adjacentIndex
1068
- } = getAdjacentItem(
1069
- centerDropTargetComponentRef.current,
1070
- activeIndexRef.current
1071
- );
1072
- if (adjacentItem && activeIndexRef.current === index) {
1073
- Object.assign(
1074
- option,
1075
- {
1076
- x,
1077
- y,
1078
- targetComponent: adjacentItem.component,
1079
- nextContainerName: adjacentItem.containerName,
1080
- orderName: "center",
1081
- dropTargetComponentEvent: {
1082
- navigationTitle: adjacentItem.navigationTitle,
1083
- dropDocumentOutsideOption: adjacentItem.dropDocumentOutsideOption,
1084
- direction,
1085
- screenKey
1086
- }
1087
- }
1088
- );
1089
- }
1090
- }
1091
- if (index === 0) {
1092
- dropMovementEventSubject.next(
1093
- {
1094
- state: "remove",
1095
- targetContainerName: item.containerName,
1096
- targetParentLayoutName: parentLayoutName,
1097
- targetLayoutName: layoutName,
1098
- ...option
1099
- }
1100
- );
1101
- } else {
1102
- dropMovementEventSubject.next(
1103
- {
1104
- state: "remove",
1105
- targetContainerName: item.containerName,
1106
- targetParentLayoutName: "",
1107
- targetLayoutName: layoutName,
1108
- ...option
1109
- }
1110
- );
1111
- }
1112
- }
1113
- },
1114
- children: item.navigationTitle
1115
- }
1116
- )
1117
- },
1118
- item.navigationTitle + layoutName + item.containerName
1119
- )
1120
- )
1121
- },
1122
- layoutName
1123
- ),
1124
- /* @__PURE__ */ jsx(FlexLayoutSplitScreenDragBoxTitleMore, {})
1125
- ]
1126
- }
1127
- )
1128
- }
1129
- ),
1130
- (() => {
1131
- const target = centerDropTargetComponent[activeIndex] || centerDropTargetComponent[0];
1132
- return target.component;
1133
- })()
1134
- ]
1135
- }
1136
- )
1137
- },
1138
- (centerDropTargetComponent[activeIndex] || centerDropTargetComponent[0]).containerName
1139
- ) }) : /* @__PURE__ */ jsx("div", {}),
1140
- afterDropTargetComponent.length != 0 ? /* @__PURE__ */ jsx(Fragment, { children: afterDropTargetComponent.map(
1141
- ({
1142
- containerName: cName,
1143
- component,
1144
- navigationTitle,
1145
- dropDocumentOutsideOption,
1146
- screenKey: screenKey2
1147
- }, i) => /* @__PURE__ */ jsx(
1148
- FlexLayoutContainer,
1149
- {
1150
- containerName: cName,
1151
- isInitialResizable: true,
1152
- isResizePanel: i !== afterDropTargetComponent.length - 1,
1153
- children: /* @__PURE__ */ jsx(
1154
- FlexLayoutSplitScreenChild,
1155
- {
1156
- parentDirection: direction,
1157
- layoutName: `${layoutName}_after-${depth}`,
1158
- parentLayoutName: layoutName,
1159
- containerName: cName,
1160
- depth: depth + 1,
1161
- rootRef,
1162
- screenKey: screenKey2,
1163
- initialCenterComponents: [
1164
- {
1165
- navigationTitle,
1166
- component,
1167
- containerName: cName,
1168
- dropDocumentOutsideOption,
1169
- screenKey: screenKey2
1170
- }
1171
- ],
1172
- rootName
1173
- }
1174
- )
1175
- },
1176
- cName
1177
- )
1178
- ) }) : /* @__PURE__ */ jsx("div", {})
1179
- ]
1180
- }
1181
- ),
1182
- boundaryContainerSize && /* @__PURE__ */ jsx(
1183
- "div",
1184
- {
1185
- className: `${styles["flex-split-screen-boundary-container"]}`,
1186
- style: { ...boundaryContainerSize },
1187
- children: "\u2B07\uFE0F\uB4DC\uB86D\uD558\uBA74 \uD654\uBA74\uC774 \uBD84\uD560\uB429\uB2C8\uB2E4."
1188
- }
1189
- )
1190
- ]
1191
- }
1192
- ) });
1193
- }
1194
-
1195
- export { FlexLayoutSplitScreen as default };
1196
- //# sourceMappingURL=FlexLayoutSplitScreen.js.map
1197
- //# sourceMappingURL=FlexLayoutSplitScreen.js.map
1
+ "use client";import{Fragment as X,jsx as c,jsxs as Y}from"react/jsx-runtime";import{cloneElement as fe,useEffect as M,useRef as ee,useState as te}from"react";import{dropMovementEventSubject as z}from"../hooks/useDrag";import{useFlexLayoutSplitScreen as ae}from"../hooks/useFlexLayoutSplitScreen";import{getCurrentSplitScreenComponents as A,getSplitScreen as ne,removeRootSplitScreen as pe,removeSplitScreenChild as ue,resetRootSplitScreen as De,setSplitScreen as F}from"../store/FlexLayoutContainerStore";import q from"../styles/FlexLayout.module.css";import se from"./FlexLayout";import H from"./FlexLayoutContainer";import be from"./FlexLayoutSplitScreenDragBox";import ce from"fast-deep-equal";import{distinctUntilChanged as le,take as Te}from"rxjs";import Se from"./FlexLayoutSplitScreenDragBoxContainer";import xe from"./FlexLayoutSplitScreenDragBoxItem";import Le from"./FlexLayoutSplitScreenDragBoxTitleMore";import me from"./FlexLayoutSplitScreenScrollBox";function he({x:o,y:e,element:t}){const{x:L,y:S,right:$,bottom:p}=t.getBoundingClientRect();return o<L||o>$||e<S||e>p}function re({x:o,y:e,element:t}){const{x:L,y:S,right:$,bottom:p}=t.getBoundingClientRect();return o>=L&&o<=$&&e>=S&&e<=p}const Q=({orderName:o,parentOrderName:e,containerName:t,parentLayoutName:L,layoutName:S,dropComponent:$,navigationTitle:p,nextContainerName:P,isUsePrefix:D=!0,beforeDropTargetComponent:f,afterDropTargetComponent:y,centerDropTargetComponent:m,dropDocumentOutsideOption:R,screenKey:v=Array.from(window.crypto.getRandomValues(new Uint32Array(16)),a=>a.toString(32).padStart(2,"0")).join("")})=>{const a=e||o;let N,g,B;a===o||a==="center"?N=o==="before"?{beforeDropTargetComponent:f}:o==="after"?{afterDropTargetComponent:y}:{centerDropTargetComponent:m.filter(i=>!i.containerName.split("_").at(0).startsWith(t.split("_").at(0)))}:N=a==="before"?{beforeDropTargetComponent:f}:{afterDropTargetComponent:y};const u=Object.entries(N)[0];B=u[0],g=u[1];const r={containerName:`${t+"_"+S}${D?"_"+o+"-"+g.length:""}`,component:fe($,{key:v,screenKey:v}),navigationTitle:p,dropDocumentOutsideOption:R,screenKey:v||Array.from(window.crypto.getRandomValues(new Uint32Array(16)),i=>i.toString(32).padStart(2,"0")).join("")};let l;if(P){const i=g.findIndex(E=>E.containerName===P);i!==-1?a===o?o==="before"?l=[...g.slice(0,i),r,...g.slice(i)]:l=[...g.slice(0,i+1),r,...g.slice(i+1)]:a==="after"&&o==="before"?l=[...g.slice(0,i),r,...g.slice(i)]:a==="before"&&o==="after"?l=[...g.slice(0,i+1),r,...g.slice(i+1)]:o==="before"?l=[...g.slice(0,i),r,...g.slice(i)]:l=[...g.slice(0,i+1),r,...g.slice(i+1)]:a==="center"&&o==="after"?l=[r,...g]:a==="center"&&o==="before"?l=[...g,r]:l=o==="before"?[r,...g]:[...g,r]}else l=o==="before"?[r,...g]:[...g,r];const x=new Set,h=l.filter(i=>x.has(i.containerName)?!1:(x.add(i.containerName),!0));return z.next({state:"append",targetParentLayoutName:L,targetLayoutName:S,targetContainerName:t,orderName:o}),{[B]:h}},I=(o,e,t)=>{const L=o.filter(S=>S.containerName!==e);return L.length!=o.length&&t(o.length-L.length),L};function Oe(o,e){return e+1<o.length?{adjacentItem:o[e+1],adjacentIndex:e+1}:e-1>=0?{adjacentItem:o[e-1],adjacentIndex:e-1}:{adjacentItem:null,adjacentIndex:e}}const $e=o=>{const e=o.split("_").at(-1)?.split("-").at(0)?.split("=").at(0);if(["before","center","after"].some(t=>t===e))return e};function ye({children:o,containerName:e,layoutName:t,navigationTitle:L,dropDocumentOutsideOption:S,screenKey:$}){const{direction:p,isSplit:P,boundaryContainerSize:D,afterDropTargetComponent:f,beforeDropTargetComponent:y,centerDropTargetComponent:m,setAfterDropTargetComponent:R,setBeforeDropTargetComponent:v,setCenterDropTargetComponent:a,layoutRef:N,setIsSplit:g,setDirection:B}=ae({isSplitInitial:!1,directionInitial:"row",selfContainerName:e,parentLayoutName:"",layoutName:t});return M(()=>{De(t);const u=ne(t,t).subscribe(r=>{r?(v([...r.beforeDropTargetComponent]),R([...r.afterDropTargetComponent]),a([...r.centerDropTargetComponent]),B(r.direction),(r.beforeDropTargetComponent.length!==0||r.afterDropTargetComponent.length!==0)&&g(!0)):F(t,t,{afterDropTargetComponent:[],beforeDropTargetComponent:[],centerDropTargetComponent:[{containerName:e,component:o,navigationTitle:L,dropDocumentOutsideOption:S,screenKey:$||Array.from(window.crypto.getRandomValues(new Uint32Array(16)),l=>l.toString(32).padStart(2,"0")).join("")}],direction:p})});return()=>{u.unsubscribe(),pe(t)}},[t,$,L,o,p]),M(()=>{const u=z.pipe(le((r,l)=>{const x=h=>{const{children:i,component:E,targetComponent:k,x:U,y:j,...K}=h||{};return K};return ce(x(r),x(l))})).subscribe(r=>{if(r.state==="remove")(r.targetParentLayoutName===t||r.targetParentLayoutName===""&&r.targetLayoutName===t)&&requestAnimationFrame(()=>{let l=k=>{if(r.nextContainerName&&r.dropTargetComponentEvent&&r.targetComponent){const U=Q({orderName:k,containerName:r.nextContainerName,parentLayoutName:"",layoutName:t,dropComponent:r.targetComponent,navigationTitle:r.dropTargetComponentEvent.navigationTitle,isUsePrefix:!0,afterDropTargetComponent:f,beforeDropTargetComponent:y,centerDropTargetComponent:m,dropDocumentOutsideOption:S,screenKey:r.dropTargetComponentEvent.screenKey});F(t,t,{...A(t,t)||{afterDropTargetComponent:f,beforeDropTargetComponent:y,centerDropTargetComponent:m,direction:p},...U}),Promise.resolve().then(()=>r.dropEndCallback&&r.dropEndCallback({x:r.x,y:r.y,containerName:e}))}};const x=A(t,t),h=I(x?.afterDropTargetComponent||f,r.targetContainerName,()=>l("after")),i=I(x?.beforeDropTargetComponent||y,r.targetContainerName,()=>l("before")),E=I(x?.centerDropTargetComponent||m,r.targetContainerName,()=>l("center"));F(t,t,{afterDropTargetComponent:h,beforeDropTargetComponent:i,centerDropTargetComponent:E,direction:p})});else if(r.state==="append"){const{x:l,y:x,dropEndCallback:h,dropTargetComponentEvent:i,orderName:E,parentOrderName:k,targetLayoutName:U,targetParentLayoutName:j,targetContainerName:K,targetComponent:G,nextContainerName:s}=r;if(N.current&&E&&l&&x&&G&&i&&U===t&&re({x:l,y:x,element:N.current})){const{direction:n,navigationTitle:d,dropDocumentOutsideOption:C}=i,b=E!=="center",O=E==="center"&&m.length<=1;if(b||O)if(g(!0),b){B(n);const T=Q({orderName:E,parentOrderName:k,containerName:K,nextContainerName:s,dropComponent:G,parentLayoutName:"",layoutName:t,navigationTitle:d,isUsePrefix:!0,afterDropTargetComponent:f,beforeDropTargetComponent:y,centerDropTargetComponent:m,dropDocumentOutsideOption:C});F(t,t,{afterDropTargetComponent:f,beforeDropTargetComponent:y,centerDropTargetComponent:m,direction:n,...T,direction:n}),Promise.resolve().then(()=>h&&h({x:r.x,y:r.y,containerName:e}))}else{const T=A(t,`${t}_center=${m[0].screenKey}`)||{afterDropTargetComponent:[],beforeDropTargetComponent:[],centerDropTargetComponent:[],direction:p};F(t,`${t}_center=${m[0].screenKey}`,{...T,centerDropTargetComponent:[m[0],{containerName:`${K}_${t}_${E}`,component:G,dropDocumentOutsideOption:C,screenKey:i.screenKey,navigationTitle:d}]})}}}});return()=>{u.unsubscribe()}},[p,t,P,y,f,m]),Y("div",{className:`${q["flex-split-screen"]}`,ref:N,children:[Y(se,{direction:p,layoutName:t,"data-is_split":P,panelMovementMode:"bulldozer",children:[y.length!=0?c(X,{children:y.map(({containerName:u,component:r,navigationTitle:l,dropDocumentOutsideOption:x,screenKey:h},i)=>c(H,{containerName:u,isInitialResizable:!0,isResizePanel:!0,children:c(V,{parentDirection:p,layoutName:`${t}_before`,parentLayoutName:t,containerName:u,depth:1,rootRef:N,screenKey:h,initialCenterComponents:[{navigationTitle:l,component:r,containerName:u,dropDocumentOutsideOption:x,screenKey:h}],rootName:t})},u))}):c("div",{}),m.length===0?c("div",{}):c(H,{containerName:`${m[0].containerName}`,isInitialResizable:!0,isResizePanel:P,children:P?c(V,{parentDirection:p,layoutName:`${t}_center`,parentLayoutName:t,containerName:`${m[0].containerName}`,depth:0,rootRef:N,screenKey:m[0].screenKey,initialCenterComponents:[{navigationTitle:m[0].navigationTitle,component:m[0].component,containerName:m[0].containerName,dropDocumentOutsideOption:m[0].dropDocumentOutsideOption,screenKey:m[0].screenKey}],rootName:t}):c(me,{keyName:m[0].containerName,isDefaultScrollStyle:!0,children:m[0].component})}),f.length!=0?c(X,{children:f.map(({containerName:u,component:r,navigationTitle:l,dropDocumentOutsideOption:x,screenKey:h},i)=>c(H,{containerName:u,isInitialResizable:!0,isResizePanel:f.length-1!==i,children:c(V,{parentDirection:p,layoutName:`${t}_after`,parentLayoutName:t,containerName:u,depth:1,rootRef:N,screenKey:h,initialCenterComponents:[{navigationTitle:l,component:r,containerName:u,dropDocumentOutsideOption:x,screenKey:h}],rootName:t})},u))}):c("div",{})]}),D&&c("div",{className:`${q["flex-split-screen-boundary-container"]}`,style:{...D},children:"\u2B07\uFE0F\uB4DC\uB86D\uD558\uBA74 \uD654\uBA74\uC774 \uBD84\uD560\uB429\uB2C8\uB2E4."})]})}function V({containerName:o,layoutName:e,parentLayoutName:t,parentDirection:L,depth:S,rootRef:$,rootName:p,initialCenterComponents:P,screenKey:D}){const{direction:f,isSplit:y,boundaryContainerSize:m,afterDropTargetComponent:R,beforeDropTargetComponent:v,centerDropTargetComponent:a,setAfterDropTargetComponent:N,setBeforeDropTargetComponent:g,setCenterDropTargetComponent:B,layoutRef:u,setIsSplit:r,setDirection:l}=ae({isSplitInitial:!1,directionInitial:"row",parentDirection:L,selfContainerName:o,parentLayoutName:t,layoutName:e}),[x,h]=te(!1),[i,E]=te(0),k=ee(a),U=ee(P??[]),j=ee(i);M(()=>{const s=`${e}=${D}`,n=ne(p,s).pipe(Te(1)).subscribe(d=>{d||F(p,s,{afterDropTargetComponent:[],beforeDropTargetComponent:[],centerDropTargetComponent:U.current,direction:f})});return()=>{ue(p,`${e}=${D}`),n.unsubscribe()}},[p,e,D]),M(()=>{const s=ne(p,`${e}=${D}`).subscribe(n=>{n&&(g([...n.beforeDropTargetComponent]),N([...n.afterDropTargetComponent]),B([...n.centerDropTargetComponent]),l(n.direction),n.beforeDropTargetComponent.length!==0||n.afterDropTargetComponent.length!==0?r(!0):n.beforeDropTargetComponent.length===0&&n.centerDropTargetComponent.length===0&&n.afterDropTargetComponent.length===0&&(z.next({state:"remove",targetContainerName:o,targetParentLayoutName:"",targetLayoutName:t}),h(!0)))});return()=>{s.unsubscribe(),pe(e)}},[p,e]),M(()=>{const s=z.pipe(le((n,d)=>{const C=b=>{const{children:O,component:T,targetComponent:w,x:_,y:J,...W}=b||{};return W};return ce(C(n),C(d))})).subscribe(n=>{if(n.state==="remove")(n.targetParentLayoutName===e||n.targetParentLayoutName===""&&n.targetLayoutName===e)&&requestAnimationFrame(()=>{let d=w=>{if(n.nextContainerName&&n.dropTargetComponentEvent&&n.targetComponent){const _=Q({orderName:w,containerName:n.nextContainerName,parentLayoutName:t,layoutName:e,dropComponent:n.targetComponent,navigationTitle:n.dropTargetComponentEvent.navigationTitle,isUsePrefix:!0,afterDropTargetComponent:R,beforeDropTargetComponent:v,centerDropTargetComponent:a,dropDocumentOutsideOption:n.dropTargetComponentEvent?.dropDocumentOutsideOption,screenKey:n.dropTargetComponentEvent.screenKey});F(p,`${e}=${D}`,{...A(p,`${e}=${D}`)||{afterDropTargetComponent:R,beforeDropTargetComponent:v,centerDropTargetComponent:a,direction:f},..._}),Promise.resolve().then(()=>n.dropEndCallback&&n.dropEndCallback({x:n.x,y:n.y,containerName:o}))}};const C=A(p,`${e}=${D}`),b=I(C?.afterDropTargetComponent||R,n.targetContainerName,()=>d("after")),O=I(C?.beforeDropTargetComponent||v,n.targetContainerName,()=>d("before")),T=I(C?.centerDropTargetComponent||a,n.targetContainerName,()=>d("center"));F(p,`${e}=${D}`,{afterDropTargetComponent:b,beforeDropTargetComponent:O,centerDropTargetComponent:T,direction:f})});else if(n.state==="append"){const{x:d,y:C,dropEndCallback:b,dropTargetComponentEvent:O,orderName:T,targetLayoutName:w,targetParentLayoutName:_,targetContainerName:J,targetComponent:W,nextContainerName:ge,parentOrderName:Ce}=n;if(u.current&&T&&d&&C&&O&&re({x:d,y:C,element:u.current})){const{direction:Z,navigationTitle:oe,dropDocumentOutsideOption:ie,screenKey:ve}=O;if(w===e&&W)if(Z===L&&T!=="center")z.next({state:"append",targetContainerName:J,targetParentLayoutName:"",targetLayoutName:t,targetComponent:W,nextContainerName:o,parentOrderName:$e(e)||T,orderName:T,x:d,y:C,dropEndCallback:b,dropTargetComponentEvent:{navigationTitle:oe,dropDocumentOutsideOption:ie,direction:L,screenKey:D}});else{T!=="center"&&(l(Z),r(!0));const de=Q({orderName:T,parentOrderName:Ce,containerName:J,nextContainerName:ge,parentLayoutName:t,layoutName:e,dropComponent:W,navigationTitle:oe,isUsePrefix:T!=="center",afterDropTargetComponent:R,beforeDropTargetComponent:v,centerDropTargetComponent:a,dropDocumentOutsideOption:ie});F(p,`${e}=${D}`,{...A(p,`${e}=${D}`)||{afterDropTargetComponent:R,beforeDropTargetComponent:v,centerDropTargetComponent:a,direction:f},...de,direction:Z}),Promise.resolve().then(()=>n.dropEndCallback&&n.dropEndCallback({x:n.x,y:n.y,containerName:o}))}}}});return()=>{s.unsubscribe()}},[f,L,t,e,v,R,a]),M(()=>{k.current=a},[a]),M(()=>{j.current=i},[i]);const[K,G]=te(!1);return c(X,{children:!x&&Y("div",{className:`${q["flex-split-screen"]}`,ref:u,children:[Y(se,{direction:f,layoutName:`${e}`,panelMovementMode:"bulldozer",children:[v.length!=0?c(X,{children:v.map(({containerName:s,component:n,navigationTitle:d,dropDocumentOutsideOption:C,screenKey:b},O)=>c(H,{containerName:s,isInitialResizable:!0,isResizePanel:!0,children:c(V,{parentDirection:f,layoutName:`${e}_before-${S}`,parentLayoutName:e,containerName:s,depth:S+1,rootRef:$,screenKey:b,initialCenterComponents:[{navigationTitle:d,component:n,containerName:s,dropDocumentOutsideOption:C,screenKey:b}],rootName:p})},s))}):c("div",{}),a.length!=0?c(X,{children:c(H,{containerName:`${(a[i]||a[0]).containerName}`,isInitialResizable:!0,isResizePanel:y,children:y?c("div",{"data-key":D,children:c(V,{parentDirection:f,layoutName:`${e}_center-${S}`,parentLayoutName:e,containerName:`${(a[i]||a[0]).containerName}`,depth:S+1,rootRef:$,initialCenterComponents:a.map(({navigationTitle:s,component:n,containerName:d,dropDocumentOutsideOption:C,screenKey:b})=>({navigationTitle:s,component:n,containerName:d,dropDocumentOutsideOption:C,screenKey:b})),screenKey:D,rootName:p})}):Y(me,{keyName:(a[i]||a[0]).containerName,isDefaultScrollStyle:!0,children:[!K&&c("div",{className:`${q["flex-split-screen-drag-box-title-wrapper-sticky"]}`,children:Y("div",{"data-is_split":y,"data-layout_name":e,"data-parent_layout_name":t,"data-container_name":`${(a[i]||a[0]).containerName}`,className:`${q["flex-split-screen-drag-box-title-wrapper"]}`,children:[c(Se,{"data-layout_name":e,layoutName:e,children:a.map((s,n)=>c(xe,{onClose:d=>{j.current===n&&a.length===1?z.next({state:"remove",targetContainerName:o,targetParentLayoutName:t,targetLayoutName:e}):(a.length===j.current+1&&E(j.current-1),B(C=>{const b=I(C,s.containerName,()=>{}),O=`${e}=${D}`,T=A(p,O)||{afterDropTargetComponent:R,beforeDropTargetComponent:v,centerDropTargetComponent:C,direction:f};return F(p,O,{...T,centerDropTargetComponent:b}),b}))},isActive:i===n,children:c(be,{screenKey:s.screenKey,onClick:()=>{E(n)},containerName:s.containerName,dropDocumentOutsideOption:s.dropDocumentOutsideOption,targetComponent:s.component,navigationTitle:s.navigationTitle,"data-container-name":s.containerName,"data-layout-name":e,"data-parent-layout-name":t,dropEndCallback:({x:d,y:C,containerName:b})=>{if(!$.current||!u.current)return;const O=he({x:d,y:C,element:$.current}),T=re({x:d,y:C,element:u.current});if(!O&&!T||!O&&T&&k.current.length>1){const w={};if(k.current.length>1){const{adjacentItem:_,adjacentIndex:J}=Oe(k.current,j.current);_&&j.current===n&&Object.assign(w,{x:d,y:C,targetComponent:_.component,nextContainerName:_.containerName,orderName:"center",dropTargetComponentEvent:{navigationTitle:_.navigationTitle,dropDocumentOutsideOption:_.dropDocumentOutsideOption,direction:f,screenKey:D}})}n===0?z.next({state:"remove",targetContainerName:s.containerName,targetParentLayoutName:t,targetLayoutName:e,...w}):z.next({state:"remove",targetContainerName:s.containerName,targetParentLayoutName:"",targetLayoutName:e,...w})}},children:s.navigationTitle})},s.navigationTitle+e+s.containerName))},e),c(Le,{})]})}),(a[i]||a[0]).component]})},(a[i]||a[0]).containerName)}):c("div",{}),R.length!=0?c(X,{children:R.map(({containerName:s,component:n,navigationTitle:d,dropDocumentOutsideOption:C,screenKey:b},O)=>c(H,{containerName:s,isInitialResizable:!0,isResizePanel:O!==R.length-1,children:c(V,{parentDirection:f,layoutName:`${e}_after-${S}`,parentLayoutName:e,containerName:s,depth:S+1,rootRef:$,screenKey:b,initialCenterComponents:[{navigationTitle:d,component:n,containerName:s,dropDocumentOutsideOption:C,screenKey:b}],rootName:p})},s))}):c("div",{})]}),m&&c("div",{className:`${q["flex-split-screen-boundary-container"]}`,style:{...m},children:"\u2B07\uFE0F\uB4DC\uB86D\uD558\uBA74 \uD654\uBA74\uC774 \uBD84\uD560\uB429\uB2C8\uB2E4."})]})})}export{ye as default};