@flowgram.ai/free-stack-plugin 0.1.0-alpha.3 → 0.1.0-alpha.31

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.
package/dist/index.d.ts CHANGED
@@ -1,38 +1,32 @@
1
1
  import * as _flowgram_ai_core from '@flowgram.ai/core';
2
- import { Entity } from '@flowgram.ai/core';
3
- import { WorkfloEntityHoverable, WorkflowNodeEntity, WorkflowLineEntity } from '@flowgram.ai/free-layout-core';
2
+ import { WorkflowNodeEntity } from '@flowgram.ai/free-layout-core';
4
3
 
5
- declare enum StackingItem {
6
- Line = "line",
7
- Node = "node"
8
- }
9
- declare enum StackingType {
10
- Line = "line",
11
- Node = "node"
4
+ /**
5
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
6
+ * SPDX-License-Identifier: MIT
7
+ */
8
+
9
+ interface StackingContext {
10
+ hoveredEntityID?: string;
11
+ selectedNodes: WorkflowNodeEntity[];
12
+ selectedIDs: Set<string>;
13
+ sortNodes: (nodes: WorkflowNodeEntity[]) => WorkflowNodeEntity[];
12
14
  }
13
- declare const StackingBaseIndex: Record<StackingType, number>;
14
- declare const StackingConfig: {
15
- /** index 起始值 */
16
- startIndex: number;
17
- /** 允许存在的层级 */
18
- allowLevel: number;
19
- /** 每层 index 跨度 */
20
- levelIndexStep: number;
21
- /** 叠加计算后出现的最深层级 */
22
- maxLevel: number;
23
- /** 最大 index */
24
- maxIndex: number;
25
- };
26
- declare enum StackingComputeMode {
27
- /** 层叠计算模式 */
28
- Stacking = "stacking",
29
- /** 层级计算模式 */
30
- Layers = "layers"
15
+ interface StackContextManagerOptions {
16
+ sortNodes: (nodes: WorkflowNodeEntity[]) => WorkflowNodeEntity[];
31
17
  }
18
+ type FreeStackPluginOptions = Partial<StackContextManagerOptions>;
32
19
 
33
- declare const createFreeStackPlugin: _flowgram_ai_core.PluginCreator<{
34
- mode?: StackingComputeMode | undefined;
35
- }>;
20
+ /**
21
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
22
+ * SPDX-License-Identifier: MIT
23
+ */
24
+ declare const createFreeStackPlugin: _flowgram_ai_core.PluginCreator<Partial<StackContextManagerOptions>>;
25
+
26
+ /**
27
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
28
+ * SPDX-License-Identifier: MIT
29
+ */
36
30
 
37
31
  declare class StackingContextManager {
38
32
  private readonly document;
@@ -42,10 +36,10 @@ declare class StackingContextManager {
42
36
  private readonly hoverService;
43
37
  private readonly selectService;
44
38
  readonly node: HTMLDivElement;
39
+ private options;
45
40
  private disposers;
46
- private mode;
47
41
  constructor();
48
- init(mode?: StackingComputeMode): void;
42
+ init(options?: Partial<StackContextManagerOptions>): void;
49
43
  ready(): void;
50
44
  dispose(): void;
51
45
  /**
@@ -54,7 +48,6 @@ declare class StackingContextManager {
54
48
  */
55
49
  private compute;
56
50
  private _compute;
57
- private stackingCompute;
58
51
  private get nodes();
59
52
  private get lines();
60
53
  private get context();
@@ -65,18 +58,16 @@ declare class StackingContextManager {
65
58
  private onSelect;
66
59
  }
67
60
 
68
- type StackingContext = {
69
- hoveredEntity?: WorkfloEntityHoverable;
70
- hoveredEntityID?: string;
71
- selectedEntities: Entity[];
72
- selectedIDs: string[];
73
- };
61
+ /**
62
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
63
+ * SPDX-License-Identifier: MIT
64
+ */
65
+ declare const BASE_Z_INDEX = 8;
74
66
 
75
- declare const layersComputing: (params: {
76
- nodes: WorkflowNodeEntity[];
77
- lines: WorkflowLineEntity[];
78
- context: StackingContext;
79
- }) => void;
67
+ /**
68
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
69
+ * SPDX-License-Identifier: MIT
70
+ */
80
71
 
81
72
  declare class StackingComputing {
82
73
  private currentLevel;
@@ -85,6 +76,7 @@ declare class StackingComputing {
85
76
  private nodeIndexes;
86
77
  private nodeLevel;
87
78
  private lineLevel;
79
+ private selectedNodeParentSet;
88
80
  private context;
89
81
  compute(params: {
90
82
  root: WorkflowNodeEntity;
@@ -102,10 +94,15 @@ declare class StackingComputing {
102
94
  };
103
95
  private clearCache;
104
96
  private computeNodeIndexesMap;
97
+ private computeSelectedNodeParentSet;
98
+ private getNodeParents;
105
99
  private computeTopLevel;
106
100
  private layerHandler;
101
+ private sortNodes;
102
+ private getNodesAllLines;
103
+ private isHigherFirstLine;
107
104
  private getLevel;
108
105
  private levelIncrease;
109
106
  }
110
107
 
111
- export { StackingBaseIndex, StackingComputeMode, StackingComputing, StackingConfig, type StackingContext, StackingContextManager, StackingItem, StackingType, createFreeStackPlugin, layersComputing };
108
+ export { BASE_Z_INDEX, type FreeStackPluginOptions, type StackContextManagerOptions, StackingComputing, type StackingContext, StackingContextManager, createFreeStackPlugin };
package/dist/index.js CHANGED
@@ -26,45 +26,41 @@ var __decorateClass = (decorators, target, key, kind) => {
26
26
  };
27
27
 
28
28
  // src/index.ts
29
- var src_exports = {};
30
- __export(src_exports, {
31
- StackingBaseIndex: () => StackingBaseIndex,
32
- StackingComputeMode: () => StackingComputeMode,
29
+ var index_exports = {};
30
+ __export(index_exports, {
31
+ BASE_Z_INDEX: () => BASE_Z_INDEX,
33
32
  StackingComputing: () => StackingComputing,
34
- StackingConfig: () => StackingConfig,
35
33
  StackingContextManager: () => StackingContextManager,
36
- StackingItem: () => StackingItem,
37
- StackingType: () => StackingType,
38
- createFreeStackPlugin: () => createFreeStackPlugin,
39
- layersComputing: () => layersComputing
34
+ createFreeStackPlugin: () => createFreeStackPlugin
40
35
  });
41
- module.exports = __toCommonJS(src_exports);
36
+ module.exports = __toCommonJS(index_exports);
42
37
 
43
38
  // src/create-free-stack-plugin.ts
44
39
  var import_core2 = require("@flowgram.ai/core");
45
40
 
46
41
  // src/manager.ts
47
- var import_lodash = require("lodash");
42
+ var import_lodash_es = require("lodash-es");
48
43
  var import_inversify = require("inversify");
49
- var import_document3 = require("@flowgram.ai/document");
50
- var import_core = require("@flowgram.ai/core");
44
+ var import_utils = require("@flowgram.ai/utils");
51
45
  var import_free_layout_core2 = require("@flowgram.ai/free-layout-core");
52
46
  var import_free_layout_core3 = require("@flowgram.ai/free-layout-core");
53
47
  var import_free_layout_core4 = require("@flowgram.ai/free-layout-core");
54
- var import_utils = require("@flowgram.ai/utils");
48
+ var import_document2 = require("@flowgram.ai/document");
49
+ var import_core = require("@flowgram.ai/core");
55
50
 
56
51
  // src/stacking-computing.ts
57
- var import_document = require("@flowgram.ai/document");
58
52
  var import_free_layout_core = require("@flowgram.ai/free-layout-core");
53
+ var import_document = require("@flowgram.ai/document");
59
54
  var StackingComputing = class {
60
55
  compute(params) {
61
56
  this.clearCache();
62
57
  const { root, nodes, context } = params;
63
58
  this.context = context;
64
59
  this.nodeIndexes = this.computeNodeIndexesMap(nodes);
60
+ this.selectedNodeParentSet = this.computeSelectedNodeParentSet(nodes);
65
61
  this.topLevel = this.computeTopLevel(nodes);
66
62
  this.maxLevel = this.topLevel * 2;
67
- this.layerHandler(root.collapsedChildren);
63
+ this.layerHandler(root.blocks);
68
64
  return {
69
65
  nodeLevel: this.nodeLevel,
70
66
  lineLevel: this.lineLevel,
@@ -87,10 +83,25 @@ var StackingComputing = class {
87
83
  });
88
84
  return nodeIndexMap;
89
85
  }
86
+ computeSelectedNodeParentSet(nodes) {
87
+ const selectedNodeParents = this.context.selectedNodes.flatMap(
88
+ (node) => this.getNodeParents(node)
89
+ );
90
+ return new Set(selectedNodeParents.map((node) => node.id));
91
+ }
92
+ getNodeParents(node) {
93
+ const nodes = [];
94
+ let currentNode = node;
95
+ while (currentNode && currentNode.flowNodeType !== import_document.FlowNodeBaseType.ROOT) {
96
+ nodes.unshift(currentNode);
97
+ currentNode = currentNode.parent;
98
+ }
99
+ return nodes;
100
+ }
90
101
  computeTopLevel(nodes) {
91
102
  const nodesWithoutRoot = nodes.filter((node) => node.id !== import_document.FlowNodeBaseType.ROOT);
92
103
  const nodeHasChildren = nodesWithoutRoot.reduce((count, node) => {
93
- if (node.collapsedChildren.length > 0) {
104
+ if (node.blocks.length > 0) {
94
105
  return count + 1;
95
106
  } else {
96
107
  return count;
@@ -98,44 +109,69 @@ var StackingComputing = class {
98
109
  }, 0);
99
110
  return nodesWithoutRoot.length + nodeHasChildren + 1;
100
111
  }
101
- layerHandler(nodes, pinTop = false) {
102
- const sortedNodes = nodes.sort((a, b) => {
103
- const aIndex = this.nodeIndexes.get(a.id);
104
- const bIndex = this.nodeIndexes.get(b.id);
105
- if (aIndex === void 0 || bIndex === void 0) {
106
- return 0;
107
- }
108
- return aIndex - bIndex;
109
- });
110
- const lines = nodes.map((node) => {
111
- const linesData = node.getData(import_free_layout_core.WorkflowNodeLinesData);
112
- const outputLines = linesData.outputLines.filter(Boolean);
113
- const inputLines = linesData.inputLines.filter(Boolean);
114
- return [...outputLines, ...inputLines];
115
- }).flat();
112
+ layerHandler(layerNodes, pinTop = false) {
113
+ const nodes = this.sortNodes(layerNodes);
114
+ const lines = this.getNodesAllLines(nodes);
116
115
  lines.forEach((line) => {
117
116
  if (line.isDrawing || // 正在绘制
118
117
  this.context.hoveredEntityID === line.id || // hover
119
- this.context.selectedIDs.includes(line.id)) {
118
+ this.context.selectedIDs.has(line.id)) {
120
119
  this.lineLevel.set(line.id, this.maxLevel);
121
120
  } else {
122
121
  this.lineLevel.set(line.id, this.getLevel(pinTop));
123
122
  }
124
123
  });
125
124
  this.levelIncrease();
126
- sortedNodes.forEach((node) => {
127
- const selected = this.context.selectedIDs.includes(node.id);
125
+ nodes.forEach((node) => {
126
+ const selected = this.context.selectedIDs.has(node.id);
128
127
  if (selected) {
129
128
  this.nodeLevel.set(node.id, this.topLevel);
130
129
  } else {
131
130
  this.nodeLevel.set(node.id, this.getLevel(pinTop));
132
131
  }
133
132
  this.levelIncrease();
134
- if (node.collapsedChildren.length > 0) {
135
- this.layerHandler(node.collapsedChildren, pinTop || selected);
133
+ if (node.blocks.length > 0) {
134
+ this.layerHandler(node.blocks, pinTop || selected);
135
+ }
136
+ });
137
+ }
138
+ sortNodes(nodes) {
139
+ const baseSortNodes = nodes.sort((a, b) => {
140
+ const aIndex = this.nodeIndexes.get(a.id);
141
+ const bIndex = this.nodeIndexes.get(b.id);
142
+ if (aIndex === void 0 || bIndex === void 0) {
143
+ return 0;
144
+ }
145
+ return aIndex - bIndex;
146
+ });
147
+ const contextSortNodes = this.context.sortNodes(baseSortNodes);
148
+ return contextSortNodes.sort((a, b) => {
149
+ const aIsSelectedParent = this.selectedNodeParentSet.has(a.id);
150
+ const bIsSelectedParent = this.selectedNodeParentSet.has(b.id);
151
+ if (aIsSelectedParent && !bIsSelectedParent) {
152
+ return 1;
153
+ } else if (!aIsSelectedParent && bIsSelectedParent) {
154
+ return -1;
155
+ } else {
156
+ return 0;
136
157
  }
137
158
  });
138
159
  }
160
+ getNodesAllLines(nodes) {
161
+ const lines = nodes.map((node) => {
162
+ const linesData = node.getData(import_free_layout_core.WorkflowNodeLinesData);
163
+ const outputLines = linesData.outputLines.filter(Boolean);
164
+ const inputLines = linesData.inputLines.filter(Boolean);
165
+ return [...outputLines, ...inputLines];
166
+ }).flat();
167
+ const filteredLines = lines.filter(
168
+ (line) => this.lineLevel.get(line.id) === void 0 || this.isHigherFirstLine(line)
169
+ );
170
+ return filteredLines;
171
+ }
172
+ isHigherFirstLine(line) {
173
+ return line.to?.parent === line.from || line.from?.parent === line.to;
174
+ }
139
175
  getLevel(pinTop) {
140
176
  if (pinTop) {
141
177
  return this.topLevel + this.currentLevel;
@@ -147,138 +183,8 @@ var StackingComputing = class {
147
183
  }
148
184
  };
149
185
 
150
- // src/layers-computing.ts
151
- var import_document2 = require("@flowgram.ai/document");
152
-
153
186
  // src/constant.ts
154
- var StackingItem = /* @__PURE__ */ ((StackingItem2) => {
155
- StackingItem2["Line"] = "line";
156
- StackingItem2["Node"] = "node";
157
- return StackingItem2;
158
- })(StackingItem || {});
159
- var StackingType = /* @__PURE__ */ ((StackingType2) => {
160
- StackingType2["Line"] = "line" /* Line */;
161
- StackingType2["Node"] = "node" /* Node */;
162
- return StackingType2;
163
- })(StackingType || {});
164
- var StackingBaseIndex = {
165
- ["line" /* Line */]: 0,
166
- ["node" /* Node */]: 1
167
- };
168
- var startIndex = 8;
169
- var allowLevel = 2;
170
- var levelIndexStep = Object.keys(StackingType).length;
171
- var maxLevel = allowLevel * 2;
172
- var maxIndex = startIndex + maxLevel * levelIndexStep;
173
- var StackingConfig = {
174
- /** index 起始值 */
175
- startIndex,
176
- /** 允许存在的层级 */
177
- allowLevel,
178
- /** 每层 index 跨度 */
179
- levelIndexStep,
180
- /** 叠加计算后出现的最深层级 */
181
- maxLevel,
182
- /** 最大 index */
183
- maxIndex
184
- };
185
- var StackingComputeMode = /* @__PURE__ */ ((StackingComputeMode2) => {
186
- StackingComputeMode2["Stacking"] = "stacking";
187
- StackingComputeMode2["Layers"] = "layers";
188
- return StackingComputeMode2;
189
- })(StackingComputeMode || {});
190
-
191
- // src/layers-computing.ts
192
- var NodeComputing;
193
- ((NodeComputing2) => {
194
- NodeComputing2.compute = (node, context) => {
195
- const zIndex = nodeZIndex(node, context);
196
- const element = nodeElement(node);
197
- element.style.position = "absolute";
198
- element.style.zIndex = (0, NodeComputing2.zIndexStringify)(zIndex);
199
- };
200
- NodeComputing2.stackingIndex = (stackingType, level) => {
201
- if (level < 1) {
202
- return void 0;
203
- }
204
- const baseZIndex = StackingBaseIndex[stackingType];
205
- const zIndex = StackingConfig.startIndex + StackingConfig.levelIndexStep * (level - 1) + baseZIndex;
206
- return zIndex;
207
- };
208
- NodeComputing2.nodeStackingLevel = (node, context, disableTopLevel = false) => {
209
- const unReversedLinage = [];
210
- let currentNode = node;
211
- while (currentNode) {
212
- unReversedLinage.push(currentNode);
213
- currentNode = currentNode.parent;
214
- }
215
- const linage = unReversedLinage.reverse();
216
- const nodeLevel = linage.length - 1;
217
- const topLevelIndex = linage.findIndex((node2) => {
218
- if (context.selectedIDs.includes(node2.id)) {
219
- return true;
220
- }
221
- return false;
222
- });
223
- const topLevel = StackingConfig.allowLevel + (linage.length - topLevelIndex);
224
- if (!disableTopLevel && topLevelIndex !== -1) {
225
- return topLevel;
226
- }
227
- return nodeLevel;
228
- };
229
- NodeComputing2.zIndexStringify = (zIndex) => {
230
- if (zIndex === void 0) {
231
- return "auto";
232
- }
233
- return zIndex.toString();
234
- };
235
- const nodeZIndex = (node, context) => {
236
- const level = (0, NodeComputing2.nodeStackingLevel)(node, context);
237
- const zIndex = (0, NodeComputing2.stackingIndex)("node" /* Node */, level);
238
- return zIndex;
239
- };
240
- const nodeElement = (node) => {
241
- const nodeRenderData = node.getData(import_document2.FlowNodeRenderData);
242
- return nodeRenderData.node;
243
- };
244
- })(NodeComputing || (NodeComputing = {}));
245
- var LineComputing;
246
- ((LineComputing2) => {
247
- LineComputing2.compute = (line, context) => {
248
- const zIndex = lineZIndex(line, context);
249
- const element = line.node;
250
- element.style.position = "absolute";
251
- element.style.zIndex = NodeComputing.zIndexStringify(zIndex);
252
- };
253
- const lineStackingLevel = (line, context) => {
254
- if (line.isDrawing || // 正在绘制
255
- context.hoveredEntityID === line.id || // hover
256
- context.selectedIDs.includes(line.id)) {
257
- return StackingConfig.maxLevel + 1;
258
- }
259
- const fromLevel = NodeComputing.nodeStackingLevel(line.from, context, true);
260
- if (!line.to) {
261
- return fromLevel;
262
- }
263
- const toLevel = NodeComputing.nodeStackingLevel(line.to, context, true);
264
- const level = Math.min(fromLevel, toLevel);
265
- return level;
266
- };
267
- const lineZIndex = (line, context) => {
268
- const level = lineStackingLevel(line, context);
269
- const zIndex = NodeComputing.stackingIndex("line" /* Line */, level);
270
- return zIndex;
271
- };
272
- })(LineComputing || (LineComputing = {}));
273
- var layersComputing = (params) => {
274
- const { nodes, lines, context } = params;
275
- nodes.forEach((node) => {
276
- NodeComputing.compute(node, context);
277
- });
278
- lines.forEach((line) => {
279
- LineComputing.compute(line, context);
280
- });
281
- };
187
+ var BASE_Z_INDEX = 8;
282
188
 
283
189
  // src/manager.ts
284
190
  var StackingContextManager = class {
@@ -286,16 +192,18 @@ var StackingContextManager = class {
286
192
  this.node = import_utils.domUtils.createDivWithClass(
287
193
  "gedit-playground-layer gedit-flow-render-layer"
288
194
  );
195
+ this.options = {
196
+ sortNodes: (nodes) => nodes
197
+ };
289
198
  this.disposers = [];
290
- this.mode = "stacking" /* Stacking */;
291
199
  /**
292
200
  * 触发计算
293
201
  * 10ms内仅计算一次
294
202
  */
295
- this.compute = (0, import_lodash.debounce)(this._compute, 10);
203
+ this.compute = (0, import_lodash_es.debounce)(this._compute, 10);
296
204
  }
297
- init(mode) {
298
- if (mode) this.mode = mode;
205
+ init(options = {}) {
206
+ this.options = { ...this.options, ...options };
299
207
  this.pipelineRenderer.node.appendChild(this.node);
300
208
  this.mountListener();
301
209
  }
@@ -306,17 +214,6 @@ var StackingContextManager = class {
306
214
  this.disposers.forEach((disposer) => disposer.dispose());
307
215
  }
308
216
  _compute() {
309
- if (this.mode === "stacking" /* Stacking */) {
310
- return this.stackingCompute();
311
- } else {
312
- return layersComputing({
313
- nodes: this.nodes,
314
- lines: this.lines,
315
- context: this.context
316
- });
317
- }
318
- }
319
- stackingCompute() {
320
217
  const context = this.context;
321
218
  const stackingComputing = new StackingComputing();
322
219
  const { nodeLevel, lineLevel } = stackingComputing.compute({
@@ -326,24 +223,30 @@ var StackingContextManager = class {
326
223
  });
327
224
  this.nodes.forEach((node) => {
328
225
  const level = nodeLevel.get(node.id);
329
- const nodeRenderData = node.getData(import_document3.FlowNodeRenderData);
226
+ const nodeRenderData = node.getData(import_document2.FlowNodeRenderData);
330
227
  const element = nodeRenderData.node;
331
228
  element.style.position = "absolute";
332
- if (!level) {
229
+ if (level === void 0) {
230
+ nodeRenderData.stackIndex = 0;
333
231
  element.style.zIndex = "auto";
334
232
  return;
335
233
  }
336
- element.style.zIndex = String(StackingConfig.startIndex + level);
234
+ nodeRenderData.stackIndex = level;
235
+ const zIndex = BASE_Z_INDEX + level;
236
+ element.style.zIndex = String(zIndex);
337
237
  });
338
238
  this.lines.forEach((line) => {
339
239
  const level = lineLevel.get(line.id);
340
240
  const element = line.node;
341
241
  element.style.position = "absolute";
342
- if (!level) {
242
+ if (level === void 0) {
243
+ line.stackIndex = 0;
343
244
  element.style.zIndex = "auto";
344
245
  return;
345
246
  }
346
- element.style.zIndex = String(StackingConfig.startIndex + level);
247
+ line.stackIndex = level;
248
+ const zIndex = BASE_Z_INDEX + level;
249
+ element.style.zIndex = String(zIndex);
347
250
  });
348
251
  }
349
252
  get nodes() {
@@ -354,10 +257,10 @@ var StackingContextManager = class {
354
257
  }
355
258
  get context() {
356
259
  return {
357
- hoveredEntity: this.hoverService.hoveredNode,
358
- hoveredEntityID: this.hoverService.hoveredNode?.id,
359
- selectedEntities: this.selectService.selection,
360
- selectedIDs: this.selectService.selection.map((entity) => entity.id)
260
+ hoveredEntityID: this.hoverService.someHovered?.id,
261
+ selectedNodes: this.selectService.selectedNodes,
262
+ selectedIDs: new Set(this.selectService.selection.map((entity) => entity.id)),
263
+ sortNodes: this.options.sortNodes
361
264
  };
362
265
  }
363
266
  mountListener() {
@@ -412,12 +315,13 @@ StackingContextManager = __decorateClass([
412
315
 
413
316
  // src/create-free-stack-plugin.ts
414
317
  var createFreeStackPlugin = (0, import_core2.definePluginCreator)({
318
+ singleton: true,
415
319
  onBind({ bind }) {
416
320
  bind(StackingContextManager).toSelf().inSingletonScope();
417
321
  },
418
- onInit(ctx, opts) {
322
+ onInit(ctx, options) {
419
323
  const stackingContextManager = ctx.get(StackingContextManager);
420
- stackingContextManager.init(opts?.mode);
324
+ stackingContextManager.init(options);
421
325
  },
422
326
  onReady(ctx) {
423
327
  const stackingContextManager = ctx.get(StackingContextManager);
@@ -430,14 +334,9 @@ var createFreeStackPlugin = (0, import_core2.definePluginCreator)({
430
334
  });
431
335
  // Annotate the CommonJS export names for ESM import in node:
432
336
  0 && (module.exports = {
433
- StackingBaseIndex,
434
- StackingComputeMode,
337
+ BASE_Z_INDEX,
435
338
  StackingComputing,
436
- StackingConfig,
437
339
  StackingContextManager,
438
- StackingItem,
439
- StackingType,
440
- createFreeStackPlugin,
441
- layersComputing
340
+ createFreeStackPlugin
442
341
  });
443
342
  //# sourceMappingURL=index.js.map