@next-dll/editor-bricks-helper 0.23.0 → 0.23.4

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/CHANGELOG.md CHANGED
@@ -3,6 +3,38 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [0.23.4](https://github.com/easyops-cn/next-core/compare/@next-dll/editor-bricks-helper@0.23.3...@next-dll/editor-bricks-helper@0.23.4) (2021-10-09)
7
+
8
+ **Note:** Version bump only for package @next-dll/editor-bricks-helper
9
+
10
+
11
+
12
+
13
+
14
+ ## [0.23.3](https://github.com/easyops-cn/next-core/compare/@next-dll/editor-bricks-helper@0.23.2...@next-dll/editor-bricks-helper@0.23.3) (2021-10-08)
15
+
16
+ **Note:** Version bump only for package @next-dll/editor-bricks-helper
17
+
18
+
19
+
20
+
21
+
22
+ ## [0.23.2](https://github.com/easyops-cn/next-core/compare/@next-dll/editor-bricks-helper@0.23.1...@next-dll/editor-bricks-helper@0.23.2) (2021-09-30)
23
+
24
+ **Note:** Version bump only for package @next-dll/editor-bricks-helper
25
+
26
+
27
+
28
+
29
+
30
+ ## [0.23.1](https://github.com/easyops-cn/next-core/compare/@next-dll/editor-bricks-helper@0.23.0...@next-dll/editor-bricks-helper@0.23.1) (2021-09-30)
31
+
32
+ **Note:** Version bump only for package @next-dll/editor-bricks-helper
33
+
34
+
35
+
36
+
37
+
6
38
  # [0.23.0](https://github.com/easyops-cn/next-core/compare/@next-dll/editor-bricks-helper@0.22.3...@next-dll/editor-bricks-helper@0.23.0) (2021-09-27)
7
39
 
8
40
 
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://[name]/dll-of-editor-bricks-helper.239a72b9.js"],"names":["DllOfEditorBricksHelper","modules","installedModules","__webpack_require__","moduleId","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","/8r5","DllOfReactDnd","0","3tO9","A+yw","ACCw","IYwU","LvDl","QILm","WnDu","__webpack_exports__","BuilderDataTransferType","BuilderProvider","DropZone","DroppingStatusContext","EditorBrickType","EditorContainer","EditorElementFactory","EditorSelfLayout","EditorSlotContentLayout","SlotContainer","getSortedIdsAfterDropped","useBuilderContextMenuStatus","useBuilderData","useBuilderDataManager","useBuilderGroupedChildNodes","useBuilderNode","useBuilderNodeMountPoints","useBuilderParentNode","useCanDrop","useCanvasList","useHighlightNodes","useHoverNodeUid","useOutlineEnabled","useRouteList","useShowRelatedNodesBasedOnEvents","react__WEBPACK_IMPORTED_MODULE_0__","react__WEBPACK_IMPORTED_MODULE_0___default","_babel_runtime_helpers_objectSpread2__WEBPACK_IMPORTED_MODULE_1__","_babel_runtime_helpers_objectSpread2__WEBPACK_IMPORTED_MODULE_1___default","_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__","_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default","lodash__WEBPACK_IMPORTED_MODULE_3__","_next_core_brick_utils__WEBPACK_IMPORTED_MODULE_4__","_babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_5__","_babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_5___default","react_dnd__WEBPACK_IMPORTED_MODULE_6__","_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_7__","_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_7___default","_next_core_brick_kit__WEBPACK_IMPORTED_MODULE_8__","js_yaml__WEBPACK_IMPORTED_MODULE_9__","js_yaml__WEBPACK_IMPORTED_MODULE_9___default","_babel_runtime_helpers_decorate__WEBPACK_IMPORTED_MODULE_10__","_babel_runtime_helpers_decorate__WEBPACK_IMPORTED_MODULE_10___default","react_dom__WEBPACK_IMPORTED_MODULE_11__","react_dom__WEBPACK_IMPORTED_MODULE_11___default","react_dnd_html5_backend__WEBPACK_IMPORTED_MODULE_12__","classnames","hasOwn","classNames","classes","arguments","length","arg","argType","push","Array","isArray","inner","apply","toString","join","default","window","self","EventTarget","constructor","wm","proto","set","this","define","target","configurable","writable","dispatch","info","options","once","removeEventListener","type","listener","handleEvent","_stopImmediatePropagationFlag","secret","listeners","event","slice","some","currentTarget","splice","WeakMap","EventTarget$1","uniqueIdCursor","getUniqueNodeId","expandTemplateEdges","nodes","edges","rootId","newEdges","reorderedEdgesMap","walk","uid","callback","node","find","item","$$uid","childEdges","filter","edge","parent","sort","child","expandEdgesThroughTemplateChain","mountPoint","childUid","_node$$$templateProxy","proxySlotConf","delegateToParentUid","$$isExpandableTemplate","$$templateProxy","slots","$$templateRefToUid","ref","nextNode","nextMountPoint","refSlot","_proxySlotConf$refPos","expandedEdge","undefined","$$isTemplateExpanded","siblingEdges","_reorderedEdgesMap$ge","internalEdges","$$isTemplateInternal","refPosition","clampedRefPosition","findIndex","forEach","index","childEdge","map","reorderBuilderEdges","parentUid","nodeUids","indexOf","deleteNodeFromTree","nodeUid","idsToDelete","Set","collectIdsToDelete","add","ids","id","has","collectRelatedNodes","handlers","nodesMap","targetMap","targetRefMap","handler","targetNodeUid","downstreamNodes","upstreamNodes","targetRef","targetRefNodeUid","callbackHandlers","values","concat","BuilderInternalEventType","nodeIgnoreFields","getAppendingNodesAndEdges","nodeData","templateSourceMap","currentUid","processedTemplateSet","isTemplateInternalNode","inheritedTemplateRefToUid","_templateSource$child","templateSource","builderNode","_nodeData$alias","matchedSelectors","brick","replace","normalized","parsedFields","field","parsed","test","fromEntries","entries","entry","includes","alias","split","pop","getBuilderNode","startsWith","children","proxy","JSON","parse","templateRefToUid","Map","_item$sort","Infinity","$$isTemplateInternalNode","processDelegatingSlots","cursorNode","rootMountPoint","_cursorNode$$$templat","_cursorNode$$$templat2","slotEntries","_loop","slotName","slotConf","refUid","refNode","$$delegatedSlots","delegatedSlotsByRefSlot","templateUid","templateMountPoint","processDelegatingProperties","previousPropertyName","_cursorNode$$$templat3","propRef","properties","_cursorNode$$$templat4","propertyEntries","propertyName","propertyConf","$$parsedProperties","refProperty","propertyValue","overrideChildrenMountPoint","_item$sort2","_overrideChildrenMoun","$$isTemplateDelegated","isParentExpandableTemplate","BuilderDataManager","[object Object]","_this$localJsonStorag","active","localStorage","localJsonStorage","getItem","data","contextMenuStatus","relatedNodesBasedOnEventsMap","sharedEditorList","eventTarget","dispatchEvent","CustomEvent","SHARED_EDITOR_LIST_CHANGE","_this$sharedEditorLis","fn","addEventListener","routeList","ROUTE_LIST_CHANGE","_this$routeList","storyList","root","newData","triggerDataChange","rootNodeIsCustomTemplate","selector","$$matchedSelectors","$$parsedEvents","flat","$$parsedLifeCycle","flatMap","lifeCycleName","lifeCycleConf","messageConf","console","warn","getRelatedNodesBasedOnEvents","DATA_CHANGE","detail","appendingNodes","appendingEdges","NODE_ADD","instanceId","nodeDetails","newNodes","SNIPPET_APPLY","flattenNodeDetails","found","NODE_MOVE","context","NODE_REORDER","NODE_CLICK","CONTEXT_MENU_CHANGE","show","showRelatedNodesBasedOnEvents","SHOW_RELATED_NODES_BASED_ON_EVENTS","hoverNodeUid","HOVER_NODE_CHANGE","nodeInstanceId","outlineDisabledNodes","delete","setItem","from","OUTLINE_DISABLED_NODES_CHANGE","highlightNodes","HIGHLIGHT_NODES_CHANGE","isDraggingOver","nodeStatus","droppingStatus","DROPPING_STATUS_CHANGE","Boolean","setHoverNodeUid","BuilderContext","a","createContext","manager","useContext","Error","setData","getData","onDataChange","isRoot","status","setStatus","getContextMenuStatus","onContextMenuChange","getShowRelatedNodesBasedOnEvents","onShowRelatedNodesBasedOnEventsChange","styleInject","css","insertAt","document","head","getElementsByTagName","style","createElement","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","styles$3","editorContainer","nodeAlias","highlight","hover","dropping","editorBody","transparentContainer","isUpstreamNode","isDownstreamNode","arrow","isCurrentTargetByClassName","targetElement","currentElement","element","classList","contains","parentElement","getHoverNodeUid","onHoverNodeChange","getHighlightNodes","onHighlightNodesChange","useDroppingStatus","setDroppingStatus","getDroppingStatus","onDroppingStatusChange","isTransparentContainer","editorContainerStyle","editorBodyStyle","_droppingStatus$get$v","_droppingStatus$get","editorContainerRef","setIsUpstreamNode","setIsDownstreamNode","showRelatedEvents","setHover","editorType","DEFAULT","hoverNodeUidRef","current","handleMouseOver","stopPropagation","handleMouseOut","_relatedNodes$get","_relatedNodes$get2","relatedNodes","getRelatedNodesBasedOnEventsMap","_isUpstreamNode","_isDownstreamNode","isCurrentTarget","handleClick","nodeClick","handleContextMenu","preventDefault","contextMenuChange","x","clientX","y","clientY","className","onClick","onContextMenu","_getEditorBrick","editor","tryEditorBricks","editorBrick","loadEditorBricks","error","customElements","styles$2","EditorBrickAsComponent","slotContentLayout","initialized","setInitialized","useState","setEditorBrick","loadEditorError","setLoadEditorError","getStoryList","hasChildren","useMemo","installedBricksEnabled","getFeatureFlags","brickDoc","storyId","doc","getBrickDoc","editorMap","getSharedEditorMap","getSharedEditorList","conf","onSharedEditorListChange","useSharedEditorMap","editorConf","useEffect","editorName","editorError","_x","_x2","getEditorBrick","message","brickConf","editorProps","selfLayout","_layout","layout","CONTAINER","INLINE","isDragging","dragRef","NODE_TO_MOVE","nodeId","dropEffect","collect","monitor","BLOCK","__isTemplateInternalNode","draggable","useBrick","doNotExpandTemplates","getBuilderGroupedChildNodes","groups","relatedEdges","childNode","childNodes","draggingUid","traverse","parentId","getDropPosition","dropZone","dropZoneGrid","positions","zoneRect","getBoundingClientRect","gridItemList","currentRow","cells","rows","gridItem","_currentRow$top","_currentRow$bottom","rect","cell","top","bottom","left","right","prevCell","compareApproximately","Math","min","max","lastRectBottom","nextCursorTop","row","rowIndex","rectBottom","cursor","nextRow","_rectBottom","lastRectRight","nextCursorLeft","_rectBottom2","cursorDefault","isVertical","height","cellIndex","rectRight","getDropPositions","b","diff","abs","droppingInfo","draggingNodeUid","draggingNodeId","draggingIndex","droppingMountPoint","droppingSiblingGroups","droppingIndex","draggingNodeUids","fullChildNodes","group","uids","nodeIds","jsonFieldsInBrick","yamlFieldsInBrick","ignoredFieldsInBrick","reverseNormalize","ctx","stringify","safeDump","template","isPortalCanvas","portal","processDrop","droppingParentUid","droppingParentInstanceId","droppingChildNodes","NODE_TO_ADD","brickType","nodeAdd","bg","SNIPPET_TO_APPLY","bricks","snippetApply","getSnippetNodeDetail","childBrickConf","_draggingNodeUid","draggingNodeInstanceId","nodeReorder","nodeMove","rootChildNodes","mainCanvas","portalCanvasList","styles$1","isSlot","showOutlineIfEmpty","dropZoneBody","fullscreen","hasTabs","slotContentLayoutBlock","slotContentLayoutInline","slotContentLayoutGrid","mode-dialog","mode-large","mode-small","mode-drawer","dropCursor","dropCursorHorizontal","dropCursorVertical","_excluded","separateCanvas","independentPortalCanvas","canvasIndex","delegatedContext","dropZoneStyle","dropZoneBodyStyle","useRef","dropPositionCursor","setDropPositionCursor","dropPositionCursorRef","groupedChildNodes","isGeneralizedPortalCanvas","canDrop","refinedSlotContentLayout","selfChildNodes","_groupedChildNodes$fi","_groupedChildNodes$fi2","canvasList","selfChildNodesInCurrentCanvas","Number","canvasSettings","_selfChildNodesInCurr","_canvas_","getDroppingIndexInFullCanvas","useCallback","droppingIndexInCurrentCanvas","getDroppingContext","_siblingGroups$find$c","_siblingGroups$find","siblingGroups","isDraggingOverCurrent","dropRef","accept","isOver","shallow","getClientOffset","drop","didDrop","updateDroppingStatus","droppable","dropZoneRef","dropZoneRefCallback","String","GRID","styles","slotContainerStyle","_node$$$delegatedSlot","delegatedSlots","memo","LegacyBuilderProvider","instanceSymbol","for","createSingletonBuilderContext","refCount","Provider","EditorComponent","_initialize","_UpdatingElement","F","args","super","kind","static","decorators","attribute","display","brickStyle","_render","unmountComponentAtNode","isConnected","render","backend","mountPoints","getRouteList","onRouteListChange","inapplicable","enabled","setEnabled","isOutlineEnabled","onOutlineEnabledNodesChange","XuQu","dll","ZR4k","i8i4","lSNA","q1tI","qJlv","tYg3","yXPU"],"mappings":"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","file":"dll-of-editor-bricks-helper.55c56f9e.js","sourceRoot":""}
1
+ {"version":3,"sources":["webpack://[name]/webpack/bootstrap","webpack://[name]/external \"DllOfReactDnd\"","webpack://[name]/delegated ./node_modules/@babel/runtime/helpers/objectSpread2.js from dll-reference dll","webpack://[name]/delegated ./node_modules/@next-core/brick-utils/dist/index.esm.js from dll-reference dll","webpack://[name]/delegated ./node_modules/@babel/runtime/helpers/decorate.js from dll-reference dll","webpack://[name]/delegated ./node_modules/react-dnd/dist/esm/index.js from dll-reference DllOfReactDnd","webpack://[name]/delegated ./node_modules/lodash/lodash.js from dll-reference dll","webpack://[name]/delegated ./node_modules/@babel/runtime/helpers/objectWithoutProperties.js from dll-reference dll","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/interfaces.ts","webpack://[name]/./node_modules/node_modules/classnames/index.js","webpack://[name]/./node_modules/node_modules/@ungap/event-target/esm/index.js","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/internal/getUniqueNodeId.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/internal/expandTemplateEdges.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/internal/reorderBuilderEdges.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/internal/deleteNodeFromTree.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/processors/getRelatedNodesBasedOnEvents.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/internal/getBuilderNode.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/internal/BuilderDataManager.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/internal/getAppendingNodesAndEdges.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/internal/isParentExpandableTemplate.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/BuilderContext.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/hooks/useBuilderDataManager.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/hooks/useBuilderData.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/hooks/useBuilderNode.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/hooks/useBuilderContextMenuStatus.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/hooks/useShowRelatedNodesBasedOnEvents.ts","webpack://[name]/./node_modules/node_modules/style-inject/dist/style-inject.es.js","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/EditorContainer/isCurrentTargetByClassName.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/hooks/useHoverNodeUid.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/hooks/useHighlightNodes.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/hooks/useDroppingStatus.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/EditorContainer/EditorContainer.tsx","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/EditorBrickAsComponent/getEditorBrick.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/EditorBrickAsComponent/EditorBrickAsComponent.tsx","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/hooks/useStoryList.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/EditorBrickAsComponent/getBrickDoc.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/hooks/useSharedEditorMap.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/hooks/useBuilderGroupedChildNodes.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/hooks/useCanDrop.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/DropZone/getDropPosition.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/processors/getSortedIdsAfterDropped.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/DropZone/reverseNormalize.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/DropZone/processDrop.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/DropZone/getSnippetNodeDetail.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/hooks/useCanvasList.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/DropZone/DropZone.tsx","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/SlotContainer/SlotContainer.tsx","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/BuilderProvider.tsx","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/EditorElementFactory.tsx","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/DroppingStatusContext.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/hooks/useBuilderNodeMountPoints.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/hooks/useBuilderParentNode.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/hooks/useRouteList.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/hooks/useOutlineEnabled.ts","webpack://[name]/external \"dll\"","webpack://[name]/delegated ./node_modules/js-yaml/index.js from dll-reference dll","webpack://[name]/delegated ./node_modules/react-dom/index.js from dll-reference dll","webpack://[name]/delegated ./node_modules/@babel/runtime/helpers/defineProperty.js from dll-reference dll","webpack://[name]/delegated ./node_modules/react/index.js from dll-reference DllOfReactDnd","webpack://[name]/delegated ./node_modules/react-dnd-html5-backend/dist/esm/index.js from dll-reference DllOfReactDnd","webpack://[name]/delegated ./node_modules/@next-core/brick-kit/dist/index.esm.js from dll-reference dll","webpack://[name]/delegated ./node_modules/@babel/runtime/helpers/asyncToGenerator.js from dll-reference dll"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","DllOfReactDnd","BuilderDataTransferType","EditorBrickType","EditorSelfLayout","EditorSlotContentLayout","hasOwn","classNames","classes","arguments","length","arg","argType","push","Array","isArray","inner","apply","toString","join","default","window","self","EventTarget","constructor","wm","proto","set","this","define","target","configurable","writable","dispatch","info","options","once","removeEventListener","type","listener","handleEvent","_stopImmediatePropagationFlag","secret","listeners","event","slice","some","currentTarget","splice","WeakMap","uniqueIdCursor","getUniqueNodeId","expandTemplateEdges","nodes","edges","rootId","newEdges","reorderedEdgesMap","walk","uid","callback","node","find","item","$$uid","childEdges","sortBy","filter","edge","parent","sort","child","expandEdgesThroughTemplateChain","mountPoint","childUid","proxySlotConf","delegateToParentUid","$$isExpandableTemplate","$$templateProxy","slots","$$templateRefToUid","ref","nextNode","nextMountPoint","refSlot","expandedEdge","undefined","$$isTemplateExpanded","siblingEdges","internalEdges","$$isTemplateInternal","refPosition","clampedRefPosition","clamp","findIndex","forEach","index","childEdge","map","reorderBuilderEdges","parentUid","nodeUids","indexOf","deleteNodeFromTree","nodeUid","idsToDelete","Set","collectIdsToDelete","add","ids","id","has","collectRelatedNodes","handlers","nodesMap","targetMap","targetRefMap","handler","targetNodeUid","downstreamNodes","upstreamNodes","targetRef","targetRefNodeUid","callbackHandlers","values","concat","BuilderInternalEventType","nodeIgnoreFields","getAppendingNodesAndEdges","nodeData","templateSourceMap","currentUid","processedTemplateSet","isTemplateInternalNode","inheritedTemplateRefToUid","templateSource","builderNode","matchedSelectors","brick","replace","normalized","normalizeBuilderNode","parsedFields","field","parsed","cloneDeep","upperFirst","test","fromEntries","entries","entry","includes","alias","isBrickNode","split","pop","getBuilderNode","startsWith","children","proxy","JSON","parse","templateRefToUid","Map","Infinity","$$isTemplateInternalNode","processDelegatingSlots","cursorNode","rootMountPoint","slotEntries","slotName","slotConf","refUid","refNode","$$delegatedSlots","delegatedSlotsByRefSlot","templateUid","templateMountPoint","processDelegatingProperties","previousPropertyName","propRef","properties","propertyEntries","propertyName","propertyConf","$$parsedProperties","refProperty","propertyValue","overrideChildrenMountPoint","$$isTemplateDelegated","isParentExpandableTemplate","BuilderDataManager","active","JsonStorage","localStorage","localJsonStorage","getItem","getData","data","getContextMenuStatus","contextMenuStatus","getRelatedNodesBasedOnEventsMap","relatedNodesBasedOnEventsMap","sharedEditorListInit","sharedEditorList","eventTarget","dispatchEvent","CustomEvent","SHARED_EDITOR_LIST_CHANGE","getSharedEditorList","onSharedEditorListChange","fn","addEventListener","routeListInit","routeList","ROUTE_LIST_CHANGE","getRouteList","storyListInit","storyList","getStoryList","onRouteListChange","dataInit","root","newData","triggerDataChange","rootNodeIsCustomTemplate","selector","$$matchedSelectors","isEmpty","$$parsedEvents","flat","$$parsedLifeCycle","flatMap","lifeCycleName","lifeCycleConf","messageConf","console","warn","getRelatedNodesBasedOnEvents","DATA_CHANGE","nodeAdd","detail","appendingNodes","appendingEdges","omit","NODE_ADD","nodeAddStored","instanceId","snippetApply","nodeDetails","newNodes","SNIPPET_APPLY","snippetApplyStored","flattenNodeDetails","found","nodeMove","NODE_MOVE","contextUpdated","context","nodeReorder","NODE_REORDER","nodeDelete","nodeClick","NODE_CLICK","contextMenuChange","CONTEXT_MENU_CHANGE","onDataChange","onNodeAdd","onSnippetApply","onNodeReorder","onNodeMove","onNodeClick","onContextMenuChange","setShowRelatedNodesBasedOnEvents","show","showRelatedNodesBasedOnEvents","SHOW_RELATED_NODES_BASED_ON_EVENTS","getShowRelatedNodesBasedOnEvents","onShowRelatedNodesBasedOnEventsChange","setHoverNodeUid","hoverNodeUid","HOVER_NODE_CHANGE","getHoverNodeUid","onHoverNodeChange","toggleOutline","nodeInstanceId","outlineDisabledNodes","delete","setItem","from","OUTLINE_DISABLED_NODES_CHANGE","isOutlineEnabled","onOutlineEnabledNodesChange","setHighlightNodes","highlightNodes","HIGHLIGHT_NODES_CHANGE","getHighlightNodes","onHighlightNodesChange","updateDroppingStatus","isDraggingOver","nodeStatus","droppingStatus","DROPPING_STATUS_CHANGE","Boolean","getDroppingStatus","onDroppingStatusChange","BuilderContext","React","createContext","useBuilderDataManager","manager","useContext","Error","useBuilderData","setData","useState","useEffect","useBuilderNode","isRoot","useMemo","useBuilderContextMenuStatus","status","setStatus","useShowRelatedNodesBasedOnEvents","styleInject","css","insertAt","document","head","getElementsByTagName","style","createElement","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","isCurrentTargetByClassName","targetElement","currentElement","element","classList","contains","editorContainerStyles","editorContainer","parentElement","useHoverNodeUid","useHighlightNodes","useDroppingStatus","setDroppingStatus","EditorContainer","isTransparentContainer","editorContainerStyle","editorBodyStyle","editorContainerRef","useRef","isUpstreamNode","setIsUpstreamNode","isDownstreamNode","setIsDownstreamNode","showRelatedEvents","hover","setHover","editorType","DEFAULT","hoverNodeUidRef","current","handleMouseOver","useCallback","stopPropagation","handleMouseOut","relatedNodes","isCurrentTarget","handleClick","handleContextMenu","preventDefault","x","clientX","y","clientY","className","styles","transparentContainer","dropping","highlight","onClick","onContextMenu","nodeAlias","arrow","editorBody","editor","tryEditorBricks","isRouteNode","editorBrick","developHelper","loadEditorBricks","error","customElements","EditorBrickAsComponent","slotContentLayout","initialized","setInitialized","setEditorBrick","loadEditorError","setLoadEditorError","hasChildren","installedBricksEnabled","getRuntime","getFeatureFlags","brickDoc","storyId","doc","getBrickDoc","editorMap","getSharedEditorMap","conf","useSharedEditorMap","editorConf","editorName","editorError","getEditorBrick","message","brickConf","editorProps","selfLayout","layout","CONTAINER","INLINE","isDragging","dragRef","useDrag","NODE_TO_MOVE","nodeId","dropEffect","collect","monitor","BLOCK","__isTemplateInternalNode","draggable","useBrick","useBuilderGroupedChildNodes","doNotExpandTemplates","getBuilderGroupedChildNodes","groups","relatedEdges","childNode","childNodes","useCanDrop","draggingUid","traverse","parentId","getDropPosition","dropZone","dropZoneGrid","positions","zoneRect","getBoundingClientRect","gridItemList","currentRow","cells","rows","gridItem","rect","cell","top","bottom","left","right","prevCell","compareApproximately","Math","min","max","lastRectBottom","nextCursorTop","row","rowIndex","rectBottom","cursor","nextRow","lastRectRight","nextCursorLeft","cursorDefault","isVertical","height","cellIndex","rectRight","getDropPositions","a","b","diff","abs","getSortedIdsAfterDropped","droppingInfo","draggingNodeUid","draggingNodeId","draggingIndex","droppingMountPoint","droppingSiblingGroups","droppingIndex","draggingNodeUids","fullChildNodes","group","uids","nodeIds","jsonFieldsInBrick","yamlFieldsInBrick","ignoredFieldsInBrick","reverseNormalize","ctx","stringify","yaml","safeDump","template","isPortalCanvas","portal","processDrop","droppingParentUid","droppingParentInstanceId","droppingChildNodes","NODE_TO_ADD","brickType","bg","SNIPPET_TO_APPLY","bricks","getSnippetNodeDetail","childBrickConf","draggingNodeInstanceId","useCanvasList","rootChildNodes","mainCanvas","portalCanvasList","DropZone","separateCanvas","independentPortalCanvas","canvasIndex","fullscreen","delegatedContext","dropZoneStyle","dropZoneBodyStyle","showOutlineIfEmpty","dropZoneBody","dropPositionCursor","setDropPositionCursor","dropPositionCursorRef","groupedChildNodes","isGeneralizedPortalCanvas","hasTabs","canDrop","refinedSlotContentLayout","selfChildNodes","canvasList","selfChildNodesInCurrentCanvas","Number","canvasSettings","_canvas_","getDroppingIndexInFullCanvas","droppingIndexInCurrentCanvas","getDroppingContext","siblingGroups","isDraggingOverCurrent","dropRef","useDrop","accept","isOver","shallow","getClientOffset","drop","didDrop","droppable","dropZoneRef","dropZoneRefCallback","String","isSlot","slotContentLayoutBlock","slotContentLayoutInline","slotContentLayoutGrid","GRID","dropCursor","dropCursorVertical","dropCursorHorizontal","SlotContainer","slotContainerStyle","delegatedSlots","BuilderProvider","memo","LegacyBuilderProvider","instanceSymbol","for","createSingletonBuilderContext","refCount","Provider","EditorElementFactory","EditorComponent","attribute","display","brickStyle","_render","ReactDOM","unmountComponentAtNode","isConnected","render","backend","HTML5Backend","UpdatingElement","DroppingStatusContext","useBuilderNodeMountPoints","mountPoints","useBuilderParentNode","useRouteList","useOutlineEnabled","inapplicable","enabled","setEnabled","dll"],"mappings":"wCACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QA0Df,OArDAF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,GAIjBlC,EAAoBA,EAAoBmC,EAAI,G,uBClFrDhC,EAAOD,QAAUkC,e,sDCAjBjC,EAAOD,QAAWF,EAAoB,OAArB,CAA8B,S,uBCA/CG,EAAOD,QAAWF,EAAoB,OAArB,CAA8B,S,qBCA/CG,EAAOD,QAAWF,EAAoB,OAArB,CAA8B,S,qBCA/CG,EAAOD,QAAWF,EAAoB,OAArB,CAA8B,S,qBCA/CG,EAAOD,QAAWF,EAAoB,OAArB,CAA8B,S,qBCA/CG,EAAOD,QAAWF,EAAoB,OAArB,CAA8B,S,8oDCyInCqC,EAqBAC,EAMAC,EAMAC,E,uJAjCAH,2H,CAAAA,W,SAqBAC,sH,CAAAA,W,SAMAC,6D,CAAAA,W,SAMAC,mD,CAAAA,W;;;;;gBCnKX,WAGA,IAAIC,EAAS,GAAGR,eAEhB,SAASS,IAGR,IAFA,IAAIC,EAAU,GAELvC,EAAI,EAAGA,EAAIwC,UAAUC,OAAQzC,IAAK,CAC1C,IAAI0C,EAAMF,UAAUxC,GACpB,GAAK0C,EAAL,CAEA,IAAIC,SAAiBD,EAErB,GAAgB,WAAZC,GAAoC,WAAZA,EAC3BJ,EAAQK,KAAKF,QACP,GAAIG,MAAMC,QAAQJ,IACxB,GAAIA,EAAID,OAAQ,CACf,IAAIM,EAAQT,EAAWU,MAAM,KAAMN,GAC/BK,GACHR,EAAQK,KAAKG,SAGT,GAAgB,WAAZJ,EACV,GAAID,EAAIO,WAAavC,OAAOkB,UAAUqB,SACrC,IAAK,IAAI1B,KAAOmB,EACXL,EAAOlC,KAAKuC,EAAKnB,IAAQmB,EAAInB,IAChCgB,EAAQK,KAAKrB,QAIfgB,EAAQK,KAAKF,EAAIO,aAKpB,OAAOV,EAAQW,KAAK,KAGgBnD,EAAOD,SAC3CwC,EAAWa,QAAUb,EACrBvC,UAAiBuC,GAOjBc,OAAOd,WAAaA,EAhDrB,G,oBCNGe,EAAO;kCACX,IACEA,EAAKC,aAAe,IAAIA,aAAaC,YACrC,MAAMD,IACL,SAAU5C,EAAQ8C,GACjB,IAAIlC,EAASZ,EAAOY,OAChBX,EAAiBD,EAAOC,eACxB8C,EAAQH,EAAY1B,UAsCxB,SAAS0B,IACPE,EAAGE,IAAIC,KAAMrC,EAAO,OAEtB,SAASsC,EAAOC,EAAQtD,EAAMU,GAC5BN,EACEkD,EACAtD,EACA,CACEuD,cAAc,EACdC,UAAU,EACV9C,MAAOA,IAIb,SAAS+C,EAASC,GAChB,IAAIC,EAAUD,EAAKC,QAOnB,OANIA,GAAWA,EAAQC,MACrBF,EAAKJ,OAAOO,oBAAoBT,KAAKU,KAAMJ,EAAKK,UACrB,mBAAlBL,EAAKK,SACdL,EAAKK,SAASnE,KAAK8D,EAAKJ,OAAQF,MAEhCM,EAAKK,SAASC,YAAYZ,MACrBA,KAAKa,8BA3DdZ,EAAOH,EAAO,oBAAoB,SAAUY,EAAMC,EAAUJ,GAC1D,IAAK,IACHO,EAASjB,EAAG3C,IAAI8C,MAChBe,EAAYD,EAAOJ,KAAUI,EAAOJ,GAAQ,IAC5CrE,EAAI,EAAGyC,EAASiC,EAAUjC,OAAQzC,EAAIyC,EAAQzC,IAE9C,GAAI0E,EAAU1E,GAAGsE,WAAaA,EAC5B,OAEJI,EAAU9B,KAAK,CAACiB,OAAQF,KAAMW,SAAUA,EAAUJ,QAASA,OAE7DN,EAAOH,EAAO,iBAAiB,SAAUkB,GACvC,IACID,EADSlB,EAAG3C,IAAI8C,MACGgB,EAAMN,MAQ7B,OAPIK,IACFd,EAAOe,EAAO,SAAUhB,MACxBC,EAAOe,EAAO,gBAAiBhB,MAC/Be,EAAUE,MAAM,GAAGC,KAAKb,EAAUW,UAC3BA,EAAMG,qBACNH,EAAMd,SAER,KAETD,EAAOH,EAAO,uBAAuB,SAAUY,EAAMC,GACnD,IAAK,IACHG,EAASjB,EAAG3C,IAAI8C,MAEhBe,EAAYD,EAAOJ,KAAUI,EAAOJ,GAAQ,IAC5CrE,EAAI,EAAGyC,EAASiC,EAAUjC,OAAQzC,EAAIyC,EAAQzC,IAE9C,GAAI0E,EAAU1E,GAAGsE,WAAaA,EAE5B,YADAI,EAAUK,OAAO/E,EAAG,MAK1BqD,EAAKC,YAAcA,EAxCpB,CAiEC5C,OAAQ,IAAIsE,SAEhB,MAAe3B,EAAKC,YCxEhB2B,EAAiB,EAEd,SAASC,IACd,OAAQD,GAAkB,ECMrB,SAASE,GAAoB,MAClCC,EADkC,MAGlCC,EAHkC,OAIlCC,IAEA,IAAMC,EAAWF,EAAMT,QACjBY,EAAoB,IAAIR,QAExBS,EAAO,CACXC,EACAC,KAKA,IAAMC,EAAOR,EAAMS,KAAMC,GAASA,EAAKC,QAAUL,GAC3CM,EAAaC,iBACjBZ,EAAMa,OAAQC,GAASA,EAAKC,SAAWR,EAAKG,OAC3CI,GAASA,EAAKE,MAGjB,IAAK,IAAMF,KADXR,EAASC,EAAMI,GACIA,GACjBP,EAAKU,EAAKG,MAAOX,IAIfY,EAAkC,CACtCX,EACAY,EACAC,KACS,MACLC,EACAC,EACJ,GACEf,EAAKgB,wBAAL,UACAhB,EAAKiB,uBADL,OACA,EAAsBC,OACtBjF,yBAAe+D,EAAKiB,gBAAgBC,MAAON,KAC1CE,EAAgBd,EAAKiB,gBAAgBC,MAAMN,MAC3CG,EAAsBf,EAAKmB,mBAAmBlG,IAAI6F,EAAcM,MACjE,CACA,IAAMC,EAAW7B,EAAMS,KAAMpE,GAAMA,EAAEsE,QAAUY,GACzCO,EAAiBR,EAAcS,QACrC,GAAIF,EAASL,uBACXL,EAAgCU,EAAUC,EAAgBT,OACrD,OACCW,EAAmC,CACvCd,MAAOG,EACPL,OAAQO,EACRH,WAAYU,EACZb,UAAMgB,EACNC,sBAAsB,GAElBC,EAAetB,iBACnBV,EAASW,OAAQC,GAASA,EAAKC,SAAWO,GACzCR,IAAD,uBAAUX,EAAkB3E,IAAIsF,UAAhC,QAAyCA,EAAKE,OAE1CmB,EAAgBD,EAAarB,OAChCC,GAASA,EAAKsB,sBAIXC,EAAW,UAAGhB,EAAcgB,mBAAjB,SAAiC,EAC5CC,EAAqBC,gBACzBF,EAAc,EACVF,EAAc/E,OAAS,EAAIiF,EAC3BA,EACJ,EACAF,EAAc/E,QAEhB8E,EAAaxC,OACX4C,EAAqBH,EAAc/E,OAC/B8E,EAAaM,UACV1B,GAASA,IAASqB,EAAcG,IAEnCJ,EAAa9E,OACjB,EACA2E,GAEFG,EAAaO,QAAQ,CAAC3B,EAAM4B,KAC1BvC,EAAkB9B,IAAIyC,EAAM4B,KAE9BxC,EAAS3C,KAAKwE,MAmBpB,OAdA3B,EAAKH,EAAQ,CAACM,EAAMI,KAClB,GAAKJ,EAAKgB,uBAGV,IAAK,IAAMoB,KAAahC,EAEtBO,EACEX,EACAoC,EAAUxB,WACVwB,EAAU1B,SAKZf,EAAS9C,OAAS4C,EAAM5C,OACnB8C,EAAS0C,IAAK9B,IACnB,IAAME,EAAOb,EAAkB3E,IAAIsF,GACnC,YAAgBkB,IAAThB,EACHF,EADG,WAGEA,GAHF,IAIDE,WAKHhB,ECvHF,SAAS6C,GACd,OAAE5C,EAAF,MAAUF,EAAV,MAAiBC,IACjB,UACE8C,EADF,SAEEC,IAYF,OAAOjD,EAAoB,CACzBG,SACAF,QACAC,MAP2BA,EAAMa,OAChCC,IAAUA,EAAKmB,sBAMYW,IAAK9B,IAE/B,IAAM4B,EACJ5B,EAAKC,SAAW+B,EAAYC,EAASC,QAAQlC,EAAKG,QAAU,EAC9D,OAAOyB,GAAS,EAAT,WAEE5B,GAFF,IAGDE,KAAM0B,IAER5B,MC7BH,SAASmC,EACdC,GACA,OAAEjD,EAAF,MAAUF,EAAV,MAAiBC,IAEjB,IAAMmD,EAAc,IAAIC,IAExB,OASF,SAASC,EACPH,EACAlD,EACAmD,GAEAA,EAAYG,IAAIJ,GAChB,IAAMK,EAAM,IAAIH,IAChB,IAAK,IAAMtC,KAAQd,EACbc,EAAKC,SAAWmC,GAClBK,EAAID,IAAIxC,EAAKG,OAGjB,IAAK,IAAMuC,KAAMD,EACfF,EAAmBG,EAAIxD,EAAOmD,GAvBhCE,CAAmBH,EAASlD,EAAOmD,GAC5B,CACLlD,SACAF,MAAOA,EAAMc,OAAQN,IAAU4C,EAAYM,IAAIlD,EAAKG,QACpDV,MAAOA,EAAMa,OACVC,IAAUqC,EAAYM,IAAI3C,EAAKC,UAAYoC,EAAYM,IAAI3C,EAAKG,SCsEvE,SAASyC,EACPnD,EACAoD,EACAC,EACAC,EACAC,GAEA,IAAK,IAAMC,KAAWJ,EACpB,GAAII,EAAS,CACX,GAAIA,EAAQvF,OAAQ,CAClB,IAAMwF,EAAgBH,EAAUrI,IAAIuI,EAAQvF,QACxCwF,IACFJ,EAASpI,IAAI+E,EAAKG,OAAOuD,gBAAgBX,IAAIU,GAC7CJ,EAASpI,IAAIwI,GAAeE,cAAcZ,IAAI/C,EAAKG,aAEhD,GAAIqD,EAAQI,UAAW,CAC5B,IAAMC,EAAmBN,EAAatI,IAAIuI,EAAQI,WAC9CC,IACFR,EAASpI,IAAI+E,EAAKG,OAAOuD,gBAAgBX,IAAIc,GAC7CR,EAASpI,IAAI4I,GAAkBF,cAAcZ,IAAI/C,EAAKG,QAG1D,GAAIqD,EAAQzD,SACV,IAAK,IAAM+D,KAAoBhJ,OAAOiJ,OAAOP,EAAQzD,UACnDoD,EACEnD,EACA,GAAGgE,OAAOF,GACVT,EACAC,EACAC,ICzGZ,ICgCKU,EDhCCC,EAAmB,CAAC,SAAU,WAAY,YAAa,cEOtD,SAASC,EACdC,EACAzB,EACA0B,GAKA,IAAM7E,EAA8B,GAC9BC,EAA8B,GAC9BI,EAAO,CACXuE,EACAE,EACAC,EACAC,EACAC,KACS,MAYLC,EAXEC,EFtBH,SACLP,EACAzB,EACA6B,GACoB,MACdI,EAA6B,GAE/BR,EAASS,OACXD,EAAiB5H,KAAMoH,EAASS,MAAiBC,QAAQ,MAAO,QAGlE,IAAMC,EAAaC,+BAAqBZ,GAGlCa,EAAoC,GAE1C,IAAK,IAAMC,IAHe,CAAC,aAAc,SAAU,aAGZ,CACrC,IAAMC,EAASC,oBACZL,aADqB,EACrBA,EAAyCG,IAE5CD,EAAajI,KAAK,CAAC,WAAD,OAAYqI,qBAAWH,IAAUC,UAAU,KAGjD,eAAVD,SACAC,KAAQlC,IACa,iBAAdkC,EAAOlC,KAGb,OAAOqC,KAAKH,EAAOlC,KAEpB2B,EAAiB5H,KAAjB,WAA0BmI,EAAOlC,KAIrC,OAAOnI,OAAOyK,YACZzK,OAAO0K,QAAQpB,GACZ9D,OAAQmF,IAAWvB,EAAiBwB,SAASD,EAAM,KACnDzB,OAAO,CACN,CACE,QADF,UAEEI,EAASuB,aAFX,QAGKC,sBAAYxB,GACTA,EAASS,MAAMgB,MAAM,KAAKC,WAC1BrE,GAER,CAAC,QAASkB,GACV,CAAC,qBAAsBiC,GACvB,CAAC,2BAA4BJ,GAC7B,CAAC,eAAgBO,KAElBf,OAAOiB,IE5BUc,CAClB3B,EACAE,EACAE,GAUF,GARAhF,EAAMxC,KAAK2H,GAEPF,GAA6BE,EAAYvD,KAC3CqD,EAA0B3G,IAAI6G,EAAYvD,IAAekD,GAMzDsB,sBAAYjB,KACXA,EAAYE,MAAMa,SAAS,MAC5Bf,EAAYE,MAAMmB,WAAW,UAC5BzB,EAAqBrB,IAAIyB,EAAYE,SACrCH,EAAiBL,aAAH,EAAGA,EAAmBpJ,IAAI0J,EAAYE,UACrD,UAAAH,EAAeuB,gBAAf,eAAyBpJ,QAAS,EAClC,CAEA0H,EAAqBxB,IAAI4B,EAAYE,OACrCF,EAAY3D,wBAAyB,EACrC2D,EAAY1D,gBACVyD,EAAewB,OAASC,KAAKC,MAAM1B,EAAewB,OACpD,IAAMG,EAAmB,IAAIC,IAyB7B,GAxBA3B,EAAYxD,mBAAqBkF,EAEVhG,iBAAOqE,EAAeuB,SAAU,CACpD/F,IAAD,uBAAUA,EAAKO,YAAf,SAAwB8F,OAEXrE,QAAQ,CAACxB,EAAOyB,KAC7B,IAAMtB,EAAWvB,IACjBO,EACEa,EACAG,EAEA,IAAIgC,IAAI0B,IACR,EACA8B,GAEF5G,EAAMzC,KAAK,CACT0D,MAAOG,EACPL,OAAQ8D,EACR1D,WAAY,GACZH,KAAM0B,EACNN,sBAAsB,OAIrB8C,EAAY6B,yBAA0B,CAEzC,IAAMC,EAAyB,CAC7BC,EACA9F,EACA+F,KACS,MACT,aAAID,EAAWzF,uBAAf,OAAI,EAA4BC,MAAO,OAC/B0F,EAAc9L,OAAO0K,QAAP,UAClBkB,EAAWzF,uBADO,aAClB,EAA4BC,OAC5BZ,OACCmF,QAAyBhE,IAAfb,GAA4B6E,EAAM,KAAO7E,GAJjB,WAMzBiG,EAAUC,GACpB,IAAMC,EAASL,EAAWvF,mBAAmBlG,IAAI6L,EAAS1F,KAC1D,GAAI2F,EAAQ,CACV,IAAMC,EAAUxH,EAAMS,KAAMD,GAASA,EAAKG,QAAU4G,GACpD,GAAIC,EAAQhG,uBACVyF,EAAuBO,EAASF,EAASvF,QAASsF,OAC7C,CACAG,EAAQC,mBACXD,EAAQC,iBAAmB,IAAIX,KAEjC,IAAIY,EAA0BF,EAAQC,iBAAiBhM,IACrD6L,EAASvF,SAEN2F,IACHA,EAA0B,GAC1BF,EAAQC,iBAAiBnJ,IACvBgJ,EAASvF,QACT2F,IAGJA,EAAwBlK,KAAK,CAC3BmK,YAAaxC,EAAYxE,MACzBiH,mBAAoBT,GAAkBE,OAtB9C,IAAK,IAAOA,EAAUC,KAAaF,EAAa,EAApCC,EAAUC,KA6B1BL,EAAuB9B,GAEvB,IAAM0C,EAA8B,CAClCX,EACAY,KACS,MAoFjBC,EAnFQ,aAAIb,EAAWzF,uBAAf,OAAI,EAA4BuG,WAAY,OACpCC,EAAkB3M,OAAO0K,QAAP,UACtBkB,EAAWzF,uBADW,aACtB,EAA4BuG,YAC5BlH,OACCmF,QAC0BhE,IAAzB6F,GACA7B,EAAM,KAAO6B,GAEjB,IAAK,IAAOI,EAAcC,KAAiBF,EAEvCxL,yBAAeyK,EAAWkB,mBAAoBF,MAyE5DH,EAxEiCI,GA2EiBvG,KAC7CmG,EAA6CM,cA3EpC,WACA,IAAMd,EAASL,EAAWvF,mBAAmBlG,IAC3C0M,EAAavG,KAET0G,EACJpB,EAAWkB,mBAAmBF,GAChC,GAAIX,EAAQ,CACV,IAAMC,EAAUxH,EAAMS,KAAMD,GAASA,EAAKG,QAAU4G,GACpDC,EAAQY,mBAAmBD,EAAaE,aACtCC,EACEd,EAAQhG,wBACVqG,EACEL,EACAW,EAAaE,cAbnB,KAqBRR,EAA4B1C,IAIhC,GAAI1H,MAAMC,QAAQkH,EAAS6B,UAAW,CAIpC,IAAI8B,EACJ,OAAQpD,EAAYlG,MAClB,IAAK,SACL,IAAK,kBACHsJ,EAA6B,SAC7B,MACF,IAAK,SACHA,EAA6B,SAGV1H,iBAAO+D,EAAS6B,SAAU,CAC9C/F,IAAD,uBAAUA,EAAKO,YAAf,SAAwB8F,OAEXrE,QAAQ,CAACxB,EAAOyB,KAAU,MACjCtB,EAAWvB,IACjBO,EACEa,EACAG,EAEA,IAAIgC,IAAI0B,GACRC,EACAC,GAEFhF,EAAMzC,KAAK,CACT0D,MAAOG,EACPL,OAAQ8D,EACR1D,WAAU,UAAEmH,SAAF,QAAgCrH,EAAME,WAChDH,KAAM0B,EACNN,qBAAsB2C,EACtBwD,sBAAuBrD,EAAY3D,6BAM3C,OADAnB,EAAKuE,EAAUzB,EAAS,IAAIE,KACrB,CACLrD,QACAC,SC7MG,SAASwI,EACdzI,EACA+C,GAEA,OAAO/C,EAAMS,KAAMD,GAASA,EAAKG,QAAUoC,GAAWvB,wB,SFgCnDiD,grB,CAAAA,WAmBE,MAAMiE,EAAyD,oCAClC,CAChCxI,OAAQ,KACRF,MAAO,GACPC,MAAO,KAJ2D,qJAerC,IAAI/B,GAfiC,6BAiBd,CACpDyK,QAAQ,IAlB0D,2HAyB9B,IAAItF,KAzB0B,+DA6BpB,IAAIyD,KA7BgB,4BA+BhC,IAAI8B,cAErCC,eAjCiE,gCAmCf,IAAIxF,IAAJ,UACnD9E,KAAKuK,iBAAiBC,QAtCe,yCAqCc,QACgB,KAGrEC,UACE,OAAOzK,KAAK0K,KAGdC,uBACE,OAAO3K,KAAK4K,kBAGdC,kCACE,OAAO7K,KAAK8K,6BAGdC,qBAAqBL,GACnB1K,KAAKgL,iBAAmBN,EACxB1K,KAAKiL,YAAYC,cACf,IAAIC,YAAYjF,EAAyBkF,4BAI7CC,sBAA0C,MACxC,iBAAOrL,KAAKgL,wBAAZ,QAAgC,GAGlCM,yBAAyBC,GAKvB,OAJAvL,KAAKiL,YAAYO,iBACftF,EAAyBkF,0BACzBG,GAEK,KACLvL,KAAKiL,YAAYxK,oBACfyF,EAAyBkF,0BACzBG,IAKNE,cAAcf,GACZ1K,KAAK0L,UAAYhB,EACjB1K,KAAKiL,YAAYC,cACf,IAAIC,YAAYjF,EAAyByF,oBAI7CC,eAAmC,MACjC,iBAAO5L,KAAK0L,iBAAZ,QAAyB,GAG3BG,cAAcnB,GACZ1K,KAAK8L,UAAYpB,EAGnBqB,eACE,OAAO/L,KAAK8L,UAGdE,kBAAkBT,GAKhB,OAJAvL,KAAKiL,YAAYO,iBACftF,EAAyByF,kBACzBJ,GAEK,KACLvL,KAAKiL,YAAYxK,oBACfyF,EAAyByF,kBACzBJ,IAKNU,SACEC,EACA5F,GAEAtG,KAAKsG,kBAAoBA,EACzB,IAAM3E,EAASJ,IACT4K,EAAU,KACdxK,UACGyE,EAA0B8F,EAAMvK,EAAQ2E,IAE7CtG,KAAK0K,KAAL,WACKyB,GADL,IAEEzK,MAAOF,EAAoB2K,KAE7BnM,KAAKoM,oBAGCA,oBACN,IAAM,OAAEzK,EAAF,MAAUF,GAAUzB,KAAK0K,KAEzB2B,EAA6C,oBADlC5K,EAAMS,KAAMD,GAASA,EAAKG,QAAUT,GACXjB,KAC1CV,KAAK8K,6BFzKF,SACLrJ,EACA4K,GAEA,IAAM/G,EAAyC,IAAIiD,IAE7ChD,EAAY,IAAIgD,IAChB/C,EAAe,IAAI+C,IACzB,IAAK,IAAMzK,KAAK2D,EAAO,CAKrB,IAAK,IAAM6K,KAJXhH,EAASvF,IAAIjC,EAAEsE,MAAO,CACpBwD,cAAe,IAAId,IACnBa,gBAAiB,IAAIb,MAEAhH,EAAEyO,oBAClBhH,EAAUrI,IAAIoP,IACjB/G,EAAUxF,IAAIuM,EAAUxO,EAAEsE,OAG1BiK,GACEvO,EAAEuF,KACJmC,EAAazF,IAAIjC,EAAEuF,IAAevF,EAAEsE,OAK1C,IAAK,IAAMH,KAAQR,EAAO,CACxB,IAAI4D,EAAgC,GAC/BmH,kBAAQvK,EAAKwK,kBAChBpH,EAAWtI,OAAOiJ,OAAO/D,EAAKwK,gBAAgBC,QAE3CF,kBAAQvK,EAAK0K,qBAChBtH,EAAWA,EAASY,OAClBlJ,OAAO0K,QAAQxF,EAAK0K,mBAAmBC,QACrC,EAAEC,EAAeC,MACf,OAAQD,GACN,IAAK,mBACL,IAAK,aACL,IAAK,cACL,IAAK,oBACL,IAAK,eACL,IAAK,iBACL,IAAK,iBACH,OAAOC,EACT,IAAK,YACH,MAAQ,GACL7G,OAAO6G,GACPF,QAASG,GACP,GAA2B9G,OAAO8G,EAAY1H,WAErD,QAGE,OADA2H,QAAQC,KAAR,6BAAmCJ,IAC5B,QAMfxH,EAASvG,OAAS,GACpBsG,EAAoBnD,EAAMoD,EAAUC,EAAUC,EAAWC,GAI7D,OAAOF,EE0G+B4H,CAClCzL,EACA4K,GAEFrM,KAAKiL,YAAYC,cACf,IAAIC,YAAYjF,EAAyBiH,cAI7CC,QAAQC,GACN,IAAM,OAAE1L,EAAF,MAAUF,EAAV,MAAiBC,GAAU1B,KAAK0K,MAChC,QAAE9F,EAAF,UAAWJ,EAAX,SAAsBC,EAAtB,SAAgC4B,GAAagH,GAE3C5L,MAAO6L,EAAgB5L,MAAO6L,GACpCnH,EACEoH,eAAKnH,EAAU,CACb,WAEFzB,EACA5E,KAAKsG,mBAcH6F,EAAU,CACdxK,SACAF,MAbeA,EAAMwE,OAAOqH,GAc5B5L,MAbeA,EACduE,OAAO,CACNxD,OAAQ+B,EACR7B,MAAOiC,EACP/B,WAAYwD,EAASxD,WACrBH,UAAMgB,EACNuG,sBAAuBC,EAA2BzI,EAAO+C,KAE1DyB,OAAOsH,IAOVvN,KAAK0K,KAAL,WACKyB,GADL,IAEEzK,MAAO6C,EAAoB4H,EAAS,CAClC3H,YACAC,eAGJzE,KAAKoM,oBACLpM,KAAKiL,YAAYC,cACf,IAAIC,YAAYjF,EAAyBuH,SAAU,CAAEJ,YAIzDK,cAAcL,GACZ,IAAM,OAAE1L,EAAF,MAAUF,EAAV,MAAiBC,GAAU1B,KAAK0K,MAChC,QAAE9F,EAAF,SAAWyB,GAAagH,EAC9BrN,KAAK0K,KAAO,CACV/I,SACAF,MAAOA,EAAM6C,IAAKrC,GAChBA,EAAKG,QAAUwC,EAAf,WACS3C,GADT,IACeiD,GAAImB,EAASnB,GAAIyI,WAAYtH,EAASsH,aACjD1L,GAENP,SAEF1B,KAAKoM,oBAGPwB,aAAaP,GACX,IAAM,OAAE1L,EAAF,MAAUF,EAAV,MAAiBC,GAAU1B,KAAK0K,MAChC,YAAEmD,EAAF,UAAerJ,EAAf,SAA0BC,GAAa4I,EAEvCS,EAAiCrM,EAAMR,QACvCW,EAAiCF,EAAMT,QAEvCa,EAAO,EACX0C,YACAI,UACAyB,WACA6B,eAEA,IAAQzG,MAAO6L,EAAgB5L,MAAO6L,GACpCnH,EACEoH,eAAKnH,EAAU,CACb,WAEFzB,EACA5E,KAAKsG,mBAgBT,IAAK,IAAMnE,KAdX2L,EAAS7O,QAAQqO,GACjB1L,EAAS3C,KACP,CACEwD,OAAQ+B,EACR7B,MAAOiC,EACP/B,WAAYwD,EAASxD,WACrBH,KAAM2D,EAAS3D,KACfuH,sBAAuBC,EACrB4D,EACAtJ,OAGD+I,GAEcrF,GACjBpG,EAAKK,IAIT,IAAK,IAAMA,KAAQ0L,EACjB/L,EAAKK,GAGP,IAAMgK,EAAU,CACdxK,SACAF,MAAOqM,EACPpM,MAAOE,GAET5B,KAAK0K,KAAL,WACKyB,GADL,IAEEzK,MAAO6C,EAAoB4H,EAAS,CAClC3H,YACAC,eAGJzE,KAAKoM,oBACLpM,KAAKiL,YAAYC,cACf,IAAIC,YAAYjF,EAAyB6H,cAAe,CAAEV,YAI9DW,mBAAmBX,GACjB,IAAM,OAAE1L,EAAF,MAAUF,EAAV,MAAiBC,GAAU1B,KAAK0K,MAChC,mBAAEuD,GAAuBZ,EAC/BrN,KAAK0K,KAAO,CACV/I,SACAF,MAAOA,EAAM6C,IAAKrC,IAChB,IAAMiM,EAAQD,EAAmB/L,KAAMpE,GAAMA,EAAE8G,UAAY3C,EAAKG,OAChE,OAAO8L,EAAK,WAEHjM,GAFG,IAGNiD,GAAIgJ,EAAM7H,SAASnB,GACnByI,WAAYO,EAAM7H,SAASsH,aAE7B1L,IAENP,SAEF1B,KAAKoM,oBAGP+B,SAASd,GACP,IAAM,OAAE1L,EAAF,MAAUF,EAAV,MAAiBC,GAAU1B,KAAK0K,MAChC,QAAE9F,EAAF,UAAWJ,EAAX,SAAsBC,EAAtB,SAAgC4B,GAAagH,EAC7ClB,EAAU,CACdxK,SACAF,QACAC,MAAOA,EACJa,OAAQC,GAASA,EAAKG,QAAUiC,GAChCqB,OAAO,CACNxD,OAAQ+B,EACR7B,MAAOiC,EACP/B,WAAYwD,EAASxD,WACrBH,UAAMgB,EACNuG,sBAAuBC,EAA2BzI,EAAO+C,MAG/DxE,KAAK0K,KAAL,WACKyB,GADL,IAEEzK,MAAO6C,EAAoB4H,EAAS,CAClC3H,YACAC,eAGJzE,KAAKoM,oBACLpM,KAAKiL,YAAYC,cACf,IAAIC,YAAYjF,EAAyBkI,UAAW,CAAEf,YAI1DgB,eAAehB,GACb,IAAM,OAAE1L,EAAF,MAAUF,EAAV,MAAiBC,GAAU1B,KAAK0K,KACtC1K,KAAK0K,KAAO,CACV/I,SACAD,QACAD,MAAOA,EAAM6C,IAAKrC,GAChBA,EAAKG,QAAUT,EAAf,WAA6BM,GAA7B,IAAmCqM,QAASjB,EAAOiB,UAAYrM,IAGnEjC,KAAKoM,oBAGPmC,YAAYlB,GACV,IAAM,SAAE5I,EAAF,UAAYD,GAAc6I,EAChCrN,KAAK0K,KAAL,WACK1K,KAAK0K,MADV,IAEEhJ,MAAO6C,EAAoBvE,KAAK0K,KAAM,CAAElG,YAAWC,eAErDzE,KAAKoM,oBACLpM,KAAKiL,YAAYC,cACf,IAAIC,YAAYjF,EAAyBsI,aAAc,CAAEnB,YAI7DoB,WAAWpB,GACTrN,KAAK0K,KAAO/F,EAAmB0I,EAAOjL,MAAOpC,KAAK0K,MAClD1K,KAAKoM,oBAGPsC,UAAUrB,GACRrN,KAAKiL,YAAYC,cACf,IAAIC,YAAYjF,EAAyByI,WAAY,CAAEtB,YAI3DuB,kBAAkBvB,GAChBrN,KAAK4K,kBAAoByC,EACzBrN,KAAKiL,YAAYC,cACf,IAAIC,YAAYjF,EAAyB2I,sBAI7CC,aAAavD,GAEX,OADAvL,KAAKiL,YAAYO,iBAAiBtF,EAAyBiH,YAAa5B,GACjE,KACLvL,KAAKiL,YAAYxK,oBACfyF,EAAyBiH,YACzB5B,IAKNwD,UACExD,GAMA,OAJAvL,KAAKiL,YAAYO,iBACftF,EAAyBuH,SACzBlC,GAEK,KACLvL,KAAKiL,YAAYxK,oBACfyF,EAAyBuH,SACzBlC,IAKNyD,eACEzD,GAMA,OAJAvL,KAAKiL,YAAYO,iBACftF,EAAyB6H,cACzBxC,GAEK,KACLvL,KAAKiL,YAAYxK,oBACfyF,EAAyB6H,cACzBxC,IAKN0D,cACE1D,GAMA,OAJAvL,KAAKiL,YAAYO,iBACftF,EAAyBsI,aACzBjD,GAEK,KACLvL,KAAKiL,YAAYxK,oBACfyF,EAAyBsI,aACzBjD,IAKN2D,WACE3D,GAMA,OAJAvL,KAAKiL,YAAYO,iBACftF,EAAyBkI,UACzB7C,GAEK,KACLvL,KAAKiL,YAAYxK,oBACfyF,EAAyBkI,UACzB7C,IAKN4D,YACE5D,GAMA,OAJAvL,KAAKiL,YAAYO,iBACftF,EAAyByI,WACzBpD,GAEK,KACLvL,KAAKiL,YAAYxK,oBACfyF,EAAyByI,WACzBpD,IAKN6D,oBACE7D,GAMA,OAJAvL,KAAKiL,YAAYO,iBACftF,EAAyB2I,oBACzBtD,GAEK,KACLvL,KAAKiL,YAAYxK,oBACfyF,EAAyB2I,oBACzBtD,IAKN8D,iCAAiCC,GAC/BtP,KAAKuP,8BAAgCD,EACrCtP,KAAKiL,YAAYC,cACf,IAAIC,YACFjF,EAAyBsJ,qCAK/BC,mCACE,OAAOzP,KAAKuP,8BAGdG,sCAAsCnE,GAKpC,OAJAvL,KAAKiL,YAAYO,iBACftF,EAAyBsJ,mCACzBjE,GAEK,KACLvL,KAAKiL,YAAYxK,oBACfyF,EAAyBsJ,mCACzBjE,IAKNoE,gBAAgB5N,GACV/B,KAAK4P,eAAiB7N,IACxB/B,KAAK4P,aAAe7N,EACpB/B,KAAKiL,YAAYC,cACf,IAAIC,YAAYjF,EAAyB2J,qBAK/CC,kBACE,OAAO9P,KAAK4P,aAGdG,kBAAkBxE,GAKhB,OAJAvL,KAAKiL,YAAYO,iBACftF,EAAyB2J,kBACzBtE,GAEK,KACLvL,KAAKiL,YAAYxK,oBACfyF,EAAyB2J,kBACzBtE,IAKNyE,cAAcC,GACRjQ,KAAKkQ,qBAAqB/K,IAAI8K,GAChCjQ,KAAKkQ,qBAAqBC,OAAOF,GAEjCjQ,KAAKkQ,qBAAqBlL,IAAIiL,GAEhCjQ,KAAKuK,iBAAiB6F,QA3fe,iCA6fnClR,MAAMmR,KAAKrQ,KAAKkQ,uBAElBlQ,KAAKiL,YAAYC,cACf,IAAIC,YAAYjF,EAAyBoK,gCAI7CC,iBAAiBN,GACf,OAAQjQ,KAAKkQ,qBAAqB/K,IAAI8K,GAGxCO,4BAA4BjF,GAK1B,OAJAvL,KAAKiL,YAAYO,iBACftF,EAAyBoK,8BACzB/E,GAEK,KACLvL,KAAKiL,YAAYxK,oBACfyF,EAAyBoK,8BACzB/E,IAKNkF,kBAAkBhM,GAChBzE,KAAK0Q,eAAiBjM,EACtBzE,KAAKiL,YAAYC,cACf,IAAIC,YAAYjF,EAAyByK,yBAI7CC,oBACE,OAAO5Q,KAAK0Q,eAGdG,uBAAuBtF,GAKrB,OAJAvL,KAAKiL,YAAYO,iBACftF,EAAyByK,uBACzBpF,GAEK,KACLvL,KAAKiL,YAAYxK,oBACfyF,EAAyByK,uBACzBpF,IAKNuF,qBACElM,EACA/B,EACAkO,GAEA,IAAMC,EAAahR,KAAKiR,eAAe/T,IAAI0H,GAC3C5E,KAAKiR,eAAiB,IAAI1I,IACxBrJ,MAAMmR,KAAKrQ,KAAKiR,eAAexJ,WAAWxB,OAAO,CAC/C,CACErB,EACA,IAAI2D,KACDyI,EAAa9R,MAAMmR,KAAKW,GAAc,IAAI/K,OAAO,CAChD,CAACpD,EAAYkO,UAMvB/Q,KAAKiL,YAAYC,cACf,IAAIC,YAAYjF,EAAyBgL,yBAOzClR,KAAK4P,cACL1Q,MAAMmR,KAAKrQ,KAAKiR,eAAejL,UAC5B4G,QAASoE,GAAe9R,MAAMmR,KAAKW,EAAWhL,WAC9C9E,KAAKiQ,UAERnR,KAAK2P,qBAAgBjM,GAIzB0N,oBACE,OAAOpR,KAAKiR,eAGdI,uBAAuB9F,GAKrB,OAJAvL,KAAKiL,YAAYO,iBACftF,EAAyBgL,uBACzB3F,GAEK,KACLvL,KAAKiL,YAAYxK,oBACfyF,EAAyBgL,uBACzB3F,KG5oBD,IAAM+F,EAAiBC,IAAMC,cAAgC,ICH7D,SAASC,IACd,IAAM,QAAEC,GAAYH,IAAMI,WAAWL,GACrC,IAAKI,EACH,MAAM,IAAIE,MAAM,iCAElB,OAAOF,ECLF,SAASG,IACd,IAAMH,EAAUD,KACT/G,EAAMoH,GAAWC,mBAASL,EAAQjH,WAQzC,OAPAuH,oBACE,IACEN,EAAQ5C,aAAa,KACnBgD,EAAQJ,EAAQjH,aAEpB,CAACiH,IAEIhH,ECVF,SAASuH,GAA4C,QAC1DrN,EAD0D,OAE1DsN,IAKA,IAAM,OAAEvQ,EAAF,MAAUF,GAAUoQ,IACpBtL,EAAa2L,EAASvQ,EAASiD,EACrC,OAAOuN,kBACL,IACE1Q,EAAMS,KAAMD,GAASA,EAAKG,QAAUmE,GACtC,CAAC9E,EAAO8E,ICZL,SAAS6L,IACd,IAAMV,EAAUD,KACTY,EAAQC,GAAaP,mBAASL,EAAQ/G,wBAQ7C,OAPAqH,oBACE,IACEN,EAAQtC,oBAAoB,KAC1BkD,EAAUZ,EAAQ/G,0BAEtB,CAAC+G,IAEIW,ECXF,SAASE,IACd,IAAMb,EAAUD,KACT/G,EAAMoH,GAAWC,mBAASL,EAAQjC,oCAQzC,OAPAuC,oBACE,IACEN,EAAQhC,sCAAsC,KAC5CoC,EAAQJ,EAAQjC,sCAEpB,CAACiC,IAEIhH,ECbT,SAAS8H,EAAYC,EAAKpP,QACX,IAARA,IAAiBA,EAAM,IAC5B,IAAIqP,EAAWrP,EAAIqP,SAEnB,GAAKD,GAA2B,oBAAbE,SAAnB,CAEA,IAAIC,EAAOD,SAASC,MAAQD,SAASE,qBAAqB,QAAQ,GAC9DC,EAAQH,SAASI,cAAc,SACnCD,EAAMpS,KAAO,WAEI,QAAbgS,GACEE,EAAKI,WACPJ,EAAKK,aAAaH,EAAOF,EAAKI,YAKhCJ,EAAKM,YAAYJ,GAGfA,EAAMK,WACRL,EAAMK,WAAWC,QAAUX,EAE3BK,EAAMI,YAAYP,SAASU,eAAeZ,K,4jBCrBvC,SAASa,EACdC,EACAC,GAIA,IADA,IAAIC,EAAUF,EACPE,GAAS,CACd,GAAIA,IAAYD,EACd,OAAO,EAET,GACEC,EAAQC,UAAUC,SAASC,EAAsBC,mBAChDJ,EAAQC,UAAUC,SAASC,EAAsBnN,wBAIlD,OAAO,EAETgN,EAAUA,EAAQK,cAEpB,OAAO,ECnBF,SAASC,IACd,IAAMrC,EAAUD,KACT/G,EAAMoH,GAAWC,mBAASL,EAAQ5B,mBAQzC,OAPAkC,oBACE,IACEN,EAAQ3B,kBAAkB,KACxB+B,EAAQJ,EAAQ5B,qBAEpB,CAAC4B,IAEIhH,ECVF,SAASsJ,IACd,IAAMtC,EAAUD,KACT/G,EAAMoH,GAAWC,mBAASL,EAAQd,qBAQzC,OAPAoB,oBACE,IACEN,EAAQb,uBAAuB,KAC7BiB,EAAQJ,EAAQd,uBAEpB,CAACc,IAEIhH,ECTF,SAASuJ,KACd,IAAMvC,EAAUD,KACTR,EAAgBiD,GAAqBnC,mBAC1CL,EAAQN,qBASV,OAPAY,oBACE,IACEN,EAAQL,uBAAuB,KAC7B6C,EAAkBxC,EAAQN,uBAE9B,CAACM,IAEIT,ECMF,SAASkD,IAAgB,QAC9BvP,EAD8B,KAE9BlE,EAF8B,uBAG9B0T,EAH8B,qBAI9BC,EAJ8B,gBAK9BC,EAL8B,SAM9BpM,IACoE,QAC9DqM,EAAqBC,mBACrB9D,EAAiBsD,IACjB/R,EAAOgQ,EAAe,CAAErN,aACvB6P,EAAgBC,GAAqB3C,oBAAS,IAC9C4C,EAAkBC,GAAuB7C,oBAAS,GACnDnH,EAAoBwH,IACpBxC,EAAemE,IACfc,EAAoBtC,IACpBb,EAAUD,KACTqD,EAAOC,GAAYhD,mBAASnC,IAAiBhL,GAC9CoQ,EAAatU,UAAQnC,EAAgB0W,QACrCC,EAAkBV,iBAAO5E,GACzBqB,EAAiBgD,KAEvBjC,oBAAU,KACRkD,EAAgBC,QAAUvF,GACzB,CAACA,IAEJ,IAAMwF,EAAkBC,sBACrBrU,IACCA,EAAMsU,kBACNP,GAAS,GACLG,EAAgBC,UAAYvQ,GAC9B8M,EAAQ/B,gBAAgB/K,IAG5B,CAACA,EAAS8M,IAGN6D,EAAiBF,sBACpBrU,IACCA,EAAMsU,kBACNP,GAAS,GACLG,EAAgBC,UAAYvQ,GAC9B8M,EAAQ/B,qBAAgBjM,IAG5B,CAACkB,EAAS8M,IAGZM,oBAAU,KACR,IAAI/P,EAAKwG,yBAAT,CAKA,IAAMoL,EAAkBU,EAAmBY,QAG3C,OAFAtB,EAAgBrI,iBAAiB,YAAa4J,GAC9CvB,EAAgBrI,iBAAiB,WAAY+J,GACtC,KACL1B,EAAgBpT,oBAAoB,YAAa2U,GACjDvB,EAAgBpT,oBAAoB,WAAY8U,MAEjD,CAACH,EAAiBG,EAAgBtT,IAErC+P,oBAAU,KACR,IAAI/P,EAAKwG,2BAGTsM,EAASnF,IAAiBhL,GACtBiQ,GAAmB,SACfW,EAAe9D,EAAQ7G,kCACvB4J,EAAc,UAAGe,EACpBtY,IAAI0S,UADa,aAAG,EAEnBhK,cAAcT,IAAIP,GACtB8P,EAAkBD,GAClB,IAAME,EAAgB,UAAGa,EACtBtY,IAAI0S,UADe,aAAG,EAErBjK,gBAAgBR,IAAIP,GACxBgQ,EAAoBD,KAErB,CAAC/E,EAAc3N,EAAM2C,EAASiQ,EAAmBnD,IAEpD,IAAM+D,EAAkBJ,sBACrBrU,IACEiB,EAAKwG,0BACN6K,EACEtS,EAAMd,OACNqU,EAAmBY,SAEvB,CAAClT,IAGGyT,EAAcL,sBACjBrU,IAEKyU,EAAgBzU,IAClB0Q,EAAQhD,UAAUzM,IAGtB,CAACwT,EAAiB/D,EAASzP,IAGvB0T,EAAoBN,sBACvBrU,IAEKyU,EAAgBzU,KAClBA,EAAM4U,iBACNlE,EAAQ9C,kBAAkB,CACxBxE,QAAQ,EACRnI,OACA4T,EAAG7U,EAAM8U,QACTC,EAAG/U,EAAMgV,YAIf,CAACP,EAAiB/D,EAASzP,IAG7B,OACE,yBACEgU,UAAWtX,EAAWuX,EAAOrC,gBAAiBqC,EAAOlB,GAAa,CAChE,CAACkB,EAAOC,sBAAuB/B,EAC/B,CAAC8B,EAAOE,UAAWlX,MAAMmR,KAAN,oBACjBY,EAAe/T,IAAI0H,UADF,aACjB,EAA6BoB,gBADZ,QACwB,IACzC9E,KAAKiQ,SACP,CAAC+E,EAAOpB,OAAQA,EAChB,CAACoB,EAAO9L,QACNQ,EAAkBR,QAAUQ,EAAkB3I,KAAKG,QAAUwC,EAC/D,CAACsR,EAAOvB,mBAAoBG,GAASH,EACrC,CAACuB,EAAOzB,iBAAkBK,GAASL,EACnC,CAACyB,EAAOG,WAAY3F,EAAevL,IAAIP,GACvC,CAACsR,EAAOzP,wBAAyBxE,EAAKwG,2BAExCqK,MAAOuB,EACPhR,IAAKkR,EACL+B,QAASZ,EACTa,cAAeZ,GAEf,yBAAKM,UAAWC,EAAOM,YACnB1B,IACCH,EACC,0BAAMsB,UAAWC,EAAOO,OAAxB,KACEhC,EACF,0BAAMwB,UAAWC,EAAOO,OAAxB,KACE,MACLxU,EAAK2F,OAAS3F,EAAK6E,OAEtB,yBAAKmP,UAAWC,EAAOQ,WAAY5D,MAAOwB,GACvCpM,I,2kGCnJF,UACLjG,EACA0U,GAEA,IAAMC,EAA4B,GAClC,GAAIC,sBAAY5U,GACd2U,EAAgB3X,KAvBK,sCAwBhB,KAAI4I,sBAAY5F,GAYrB,MAAM,IAAI2P,MAAJ,iCAAoC3P,EAAKvB,OAX3CuB,EAAK6E,MAAMa,SAAS,MACtBiP,EAAgB3X,KAAhB,UAAwBgD,EAAK6E,MAA7B,aAGE6P,GACFC,EAAgB3X,KAAK0X,GAGvBC,EAAgB3X,KAlCK,kCAwCvB,IAAK,IAAM6X,KAAeF,EAAiB,CACzC,UACQG,gBAAcC,iBAAiB,CAACF,IACtC,MAAOG,GACP,MAAM,IAAIrF,MAAJ,6BAAgCkF,EAAhC,aAER,GAAII,eAAeha,IAAI4Z,GACrB,OAAOA,EAIX,MAAM,IAAIlF,MAAJ,wBAA2BgF,EAAgBrX,KAAK,MAAhD,oB,0ZC7BD,SAAS4X,IAAuB,KACrClV,EADqC,kBAErCmV,IAEA,ICzBM1F,GDyBC2F,EAAaC,GAAkB/F,IAAMQ,UAAS,IAC9C+E,EAAaS,GAAkBhG,IAAMQ,YACrCyF,EAAiBC,GAAsBlG,IAAMQ,YAC9C,MAAErQ,GAAUmQ,IACZ/F,GC7BA4F,EAAUD,IACHU,kBAAQ,IAAMT,EAAQ3F,eAAgB,CAAC2F,KD6B9CgG,EAAcnG,IAAMY,QACxB,IAAMzQ,EAAMR,KAAMsB,GAASA,EAAKC,SAAWR,EAAKG,OAChD,CAACH,EAAMP,IAGHiW,EAAyBxF,kBAC7B,IAAMyF,uBAAaC,kBAAkB,iCACrC,IAGIC,EAAW3F,kBACf,IAAOwF,EAAyB,KE3C7B,SACL1V,EACA6J,GAEA,IAAM5J,EAAO4J,aAAH,EAAGA,EAAW5J,KAAMC,GAASA,EAAK4V,UAAY9V,EAAK6E,OAE7D,OAAO5E,aAAP,EAAOA,EAAM8V,IFqC4BC,CAAYhW,EAAM6J,GACzD,CAAC6L,EAAwB1V,EAAM6J,IAG3BoM,EG9CD,WACL,IAAMxG,EAAUD,IAEV0G,EAAqB9C,sBACzB,IACE,IAAI9M,IAAImJ,EAAQrG,sBAAsB/G,IAAK8T,GAAS,CAACA,EAAKlT,GAAIkT,KAChE,CAAC1G,KAGIhH,EAAMoH,GAAWC,mBAASoG,KAUjC,OARAnG,oBACE,IACEN,EAAQpG,yBAAyB,KAC/BwG,EAAQqG,OAEZ,CAACA,EAAoBzG,IAGhBhH,EH2BW2N,GACZC,EAAanG,kBACjB,IACEwF,GAA0B9P,sBAAY5F,GAClCiW,EAAUhb,IAAI+E,EAAK6E,OACnB,KACN,CAACoR,EAAWP,EAAwB1V,IAGtCsP,IAAMS,UAAU,KACd,KAAC,YAEC,IAAIuG,EACAC,EAFJlB,GAAe,GAGf,IACEiB,Q,SD3CR,qCC2C2BE,CACjBxW,EACA0V,EAAyBW,aAAH,EAAGA,EAAY3B,OAASmB,aAAxB,EAAwBA,EAAUnB,QAE1D,MAAOM,GAEPjK,QAAQiK,MAAMA,GACduB,EAAevB,EAAgByB,QAEjCnB,EAAegB,GACfd,EAAmBe,GACnBlB,GAAe,KAhBjB,IAkBC,CAACQ,EAAUQ,EAAYX,EAAwB1V,IAElD,IAAM0W,EAAYpH,IAAMY,QACtB,KAAM,CACJrL,MAAOgQ,EACPrN,WAAY,CACV7E,QAAS3C,EAAKG,MACdwW,YAAajB,EACTW,aAD+B,EAC/BA,EAAYM,YACZd,aAF+B,EAE/BA,EAAUc,eAGlB,CAACd,EAAUhB,EAAawB,EAAYX,EAAwB1V,EAAKG,QAG7DyW,EAAatH,IAAMY,QAAQ,KAAM,MACjC2G,EACAzB,GAAeP,IAIjBgC,EAH0B5B,eAAeha,IACvC4Z,GAEyB+B,YAG7B,iBACEC,SADF,QAEGpB,EAAclZ,EAAiBua,UAAYva,EAAiBwa,QAE9D,CAAC3B,EAAaP,EAAaY,MAEvB,WAAEuB,GAAcC,GAAWC,kBAAQ,CACxChX,KAAM,CACJzB,KAAMpC,EAAwB8a,aAC9BxU,QAAS3C,EAAKG,MACd6N,eAAgBhO,EAAK0L,WACrB0L,OAAQpX,EAAKiD,IAEf3E,QAAS,CACP+Y,WAAY,QAEdC,QAAUC,IAAD,CACPP,WAAYO,EAAQP,iBAIxB,OAAO5B,EACLP,EACE,yBACEb,UAAWtX,EAAW,CACpB,CAACuX,IACCkB,IAAsB3Y,EAAwBgb,MAChD,CAACvD,IACCkB,IAAsB3Y,EAAwBua,OAEhD,CAAC9C,IAA0B2C,IAAera,EAAiBwa,OAC3D,CAAC9C,IAAyB2C,IAAera,EAAiBib,MAC1D,CAACvD,IACC2C,IAAera,EAAiBua,UAClC,CAAC7C,IAAkB+C,EACnBS,yBAA0BzX,EAAKwG,4BAGjC,yBACEpF,IAAKpB,EAAKwG,8BAA2B/E,EAAYwV,EACjDS,WAAY1X,EAAKwG,yBACjBwN,UAAWtX,EAAW,CACpB,CAACuX,IACgB,4BAAfjU,EAAK6E,OACU,2BAAf7E,EAAK6E,OACU,2BAAf7E,EAAK6E,SAGT,kBAAC,mBAAD,CAAkB8S,SAAUjB,MAIhC,8BAAOnB,GAGT,4CIpJG,SAASqC,IAA4B,QAC1CjV,EAD0C,OAE1CsN,EAF0C,qBAG1C4H,IAMA,IAAM,OAAEnY,EAAF,MAAUF,EAAV,MAAiBC,GAAUmQ,IACjC,OAAOM,kBACL,IACE4H,GAA4B,CAC1BtY,QACAC,QACAkD,QAASsN,EAASvQ,EAASiD,EAC3BkV,yBAEJ,CAACA,EAAsBpY,EAAOwQ,EAAQtN,EAASnD,EAAOE,IAInD,SAASoY,IAA4B,QAC1CnV,EAD0C,MAE1CnD,EAF0C,MAG1CC,EAH0C,qBAI1CoY,IAOA,IAAME,EAAS,IAAIzR,IACb0R,EAAe3X,iBACnBZ,EAAMa,OACHC,GACCA,EAAKC,SAAWmC,IACfkV,GACItX,EAAKsB,sBACLtB,EAAKyH,wBAEd,CAAEzH,GAASA,EAAKE,OAVU,WAYjBF,GACT,IAAM0X,EAAYzY,EAAMS,KAAMD,GAASA,EAAKG,QAAUI,EAAKG,OACvDqX,EAAO7U,IAAI3C,EAAKK,YAClBmX,EAAO9c,IAAIsF,EAAKK,YAAY5D,KAAKib,GAEjCF,EAAOja,IAAIyC,EAAKK,WAAY,CAACqX,KALjC,IAAK,IAAM1X,KAAQyX,EAAc,EAAtBzX,GAQX,OAAOtD,MAAMmR,KAAK2J,EAAOvS,WAAWnD,IAAI,EAAEzB,EAAYsX,MAAd,CACtCtX,aACAsX,gBCnDG,SAASC,KACd,IAAM,MAAE1Y,GAAUmQ,IAClB,OAAOwD,sBACL,CAACgF,EAAqBzV,KACpB,IAAM0V,EAAYC,GACZA,IAAa3V,IAGTlD,EAAMR,KAAMsB,GACdA,EAAKC,SAAW8X,IACVD,EAAS9X,EAAKG,QAK5B,OAAO2X,EAASD,IAElB,CAAC3Y,I,i4BC6LE,SAAS8Y,GACd3E,EACAE,EACA0E,EACAC,GAEA,IAAMC,EA7LD,SACLF,EACAC,GAEA,IAAME,EAAWH,EAASI,wBAEpBF,EAA4B,GAC5BG,EAAe5b,MAAMmR,KAAKqK,EAAaxS,UAAU3F,OACpDJ,IAAUA,EAAKuR,UAAUC,SAAS,6BAErC,GAAImH,EAAahc,OAAS,EAAG,CAC3B,IAAIic,EAA0B,CAC5BC,MAAO,IAEHC,EAAsB,CAACF,GAC7BD,EAAa3W,QAAQ,CAAC+W,EAAU9W,KAC9B,IAeE,IAfI+W,EAAOD,EAASL,wBAChBO,EAAqB,CACzBhX,QACAiX,IAAKF,EAAKE,IACVC,OAAQH,EAAKG,OACbC,KAAMJ,EAAKI,KACXC,MAAOL,EAAKK,OAERC,EACJV,EAAWC,MAAMlc,OAAS,GAC1Bic,EAAWC,MAAMD,EAAWC,MAAMlc,OAAS,IAE1C2c,GACAC,GAAqBP,EAAKI,KAAME,EAASD,OAAS,GACjDE,GAAqBP,EAAKE,IAAKI,EAASH,QAAU,GAEpDP,EAAWC,MAAM/b,KAAKmc,GACtBL,EAAWM,IAAMM,KAAKC,IAAL,UAASb,EAAWM,WAApB,QAA2B7S,IAAU2S,EAAKE,KAC3DN,EAAWO,OAASK,KAAKE,IAAL,UAClBd,EAAWO,cADO,SACI9S,IACtB2S,EAAKG,UAGPP,EAAa,CACXC,MAAO,CAACI,GACRC,IAAKF,EAAKE,IACVC,OAAQH,EAAKG,QAEfL,EAAKhc,KAAK8b,MAKd,IAAIe,EAAiBlB,EAASS,IAC1BU,EAAgBnB,EAASS,IAC7BJ,EAAK9W,QAAQ,CAAC6X,EAAKC,KACjB,GAAyB,IAArBD,EAAIhB,MAAMlc,OAAc,CAC1B,IAAMsc,EAAOY,EAAIhB,MAAM,GACjBkB,GAAcd,EAAKC,IAAMD,EAAKE,QAAU,EAiB9C,GAhBAX,EAAU1b,KAAK,CACbkc,KAAM,CACJE,IAAKS,EACLR,OAAQY,EACRX,KAAMX,EAASW,KACfC,MAAOZ,EAASY,OAElBW,OAAQ,CACN/X,MAAOgX,EAAKhX,MACZ2R,GAAIgG,EAAgBX,EAAKC,KAAO,EAAIT,EAASS,OAGjDS,EAAiBI,EACjBH,EAAgBX,EAAKE,OAGjBW,IAAahB,EAAKnc,OAAS,EAC7B6b,EAAU1b,KAAK,CACbkc,KAAM,CACJE,IAAKS,EACLR,OAAQV,EAASU,OACjBC,KAAMX,EAASW,KACfC,MAAOZ,EAASY,OAElBW,OAAQ,CACN/X,MAAOgX,EAAKhX,MAAQ,EACpB2R,EACE4F,KAAKC,IACHR,EAAKE,OArFA,GAsFJF,EAAKE,OAASV,EAASU,QAAU,GAChCV,EAASS,YAGd,GAAIJ,EAAKgB,EAAW,GAAGjB,MAAMlc,OAAS,EAAG,CAC9C,IAAMsd,EAAUnB,EAAKgB,EAAW,GAC1BC,GAAcd,EAAKE,OAASc,EAAQf,KAAO,EACjDV,EAAU1b,KAAK,CACbkc,KAAM,CACJE,IAAKS,EACLR,OAAQY,EACRX,KAAMX,EAASW,KACfC,MAAOZ,EAASY,OAElBW,OAAQ,CACN/X,MAAOgX,EAAKhX,MAAQ,EACpB2R,EAAGmG,EAAatB,EAASS,OAG7BS,EAAiBI,OAEd,CACL,IAAIG,EAAgBzB,EAASW,KACzBe,EAAiB1B,EAASW,KACxBW,EACJD,EAAWhB,EAAKnc,OAAS,GACpBmc,EAAKgB,EAAW,GAAGZ,IAAMW,EAAIV,QAAU,EACxCV,EAASU,OACTiB,EAGF,CACFC,YAAY,EACZzG,EAAGiG,EAAIX,IAAMT,EAASS,IACtBoB,OAAQT,EAAIV,OAASU,EAAIX,KAE3BW,EAAIhB,MAAM7W,QAAQ,CAACiX,EAAMsB,KACvB,IAAMC,GAAavB,EAAKG,KAAOH,EAAKI,OAAS,EAC7Cb,EAAU1b,KAAK,CACbkc,KAAM,CACJE,IAAKS,EACLR,OAAQY,EACRX,KAAMc,EACNb,MAAOmB,GAETR,OAAQ,WACHI,GADC,IAEJnY,MAAOgX,EAAKhX,MACZyR,GAAIyG,EAAiBlB,EAAKG,MAAQ,EAAIX,EAASW,SAGnDc,EAAgBM,EAChBL,EAAiBlB,EAAKI,MAGlBkB,IAAcV,EAAIhB,MAAMlc,OAAS,IAC/Bmd,IAAahB,EAAKnc,OAAS,EAC7B6b,EAAU1b,KAAK,CACbkc,KAAM,CACJE,IAAKS,EACLR,OAAQV,EAASU,OACjBC,KAAMc,EACNb,MAAOZ,EAASY,OAElBW,OAAQ,WACHI,GADC,IAEJnY,MAAOgX,EAAKhX,MAAQ,EACpByR,EACE8F,KAAKC,IAAIU,EA1JN,EA0JuC1B,EAASY,OACnDZ,EAASW,SAIfZ,EAAU1b,KAAK,CACbkc,KAAM,CACJE,IAAKS,EACLR,OAAQY,EACRX,KAAMc,EACNb,MAAOZ,EAASY,OAElBW,OAAQ,WACHI,GADC,IAEJnY,MAAOgX,EAAKhX,MAAQ,EACpByR,EACE8F,KAAKC,IAAIU,EA1KN,EA0KuC1B,EAASY,OACnDZ,EAASW,YAMrBO,EAAiBI,EACjBH,EAAgBC,EAAIV,UAI1B,OAAOX,EASWiC,CAAiBnC,EAAUC,GAC7C,IAAK,IAAM,KAAES,EAAF,OAAQgB,KAAYxB,EAC7B,GACE9E,GAAKsF,EAAKI,MACV1F,GAAKsF,EAAKK,OACVzF,GAAKoF,EAAKE,KACVtF,GAAKoF,EAAKG,OAGV,OAAOa,EAIX,MAAO,CACL/X,MAAO,EACP2R,EAAG,GAIP,SAAS2F,GAAqBmB,EAAWC,GACvC,IAAMC,EAAOF,EAAIC,EACjB,OAAOnB,KAAKqB,IAAID,GAAQ,EAAI,EAAIA,ECzL3B,SAASE,GACdC,GAEA,IAAM,gBACJC,EADI,eAEJC,EAFI,cAGJC,EAHI,mBAIJC,EAJI,sBAKJC,EALI,cAMJC,GACEN,EAEEO,EAAmBve,MAAMC,QAAQge,GACnCA,EACA,CAACA,GACCO,EAAiBH,EAAsB3Q,QAC1C+Q,GAAUA,EAAMxD,YAEb1V,EAAW8Y,EAAsB3Q,QAAS+Q,IAC9C,IAAMC,EAAOD,EAAMxD,WAChB7V,IAAKnC,GAASA,EAAKC,OACnBG,OAAQR,IAAS0b,EAAiB9V,SAAS5F,IAU9C,OATI4b,EAAM9a,aAAeya,GACvBM,EAAKxc,QACFic,WAAkB,IAAM,GAAKG,EAAgBH,EAC1CG,EAAgB,EAChBA,EACJ,KACGC,GAGAG,IAEHC,EAAUpZ,EAASH,IAAKvC,GAC5B0b,EAAiB9V,SAAS5F,GACtBqb,EACAM,EAAexb,KAAMC,GAASA,EAAKC,QAAUL,GAAKmD,IAExD,MAAO,CAAET,WAAUoZ,WC9FrB,IAAMC,GAAoB,CACxB,aACA,SACA,YACA,SACA,KACA,aAEIC,GAAoB,CAAC,sBAAuB,iBAC5CC,GAAuB,CAC3B,QACA,WACA,SACA,QACA,KACA,WACA,cAeK,SAASC,GACdtF,EACAuF,GAEA,OAAOnhB,OAAOyK,YACZzK,OAAO0K,QAAQkR,GACZrU,IAAuB,EAAE1G,EAAKN,UACnBoG,IAAVpG,GAAuB0gB,GAAqBrW,SAAS/J,QACjD8F,EACAoa,GAAkBnW,SAAS/J,GAC3B,CAACA,EAAKwK,KAAK+V,UAAU7gB,IACrBygB,GAAkBpW,SAAS/J,GAC3B,CAACA,EAAKwgB,IAAKC,SAAS/gB,IACpB,CAACM,EAAKN,IAEXiF,OAAO4O,SACPlL,OAAOlJ,OAAO0K,QAAQyW,EAAI7X,UAAW,CACpC,CACE,QACsB,aAAtB6X,EAAI7X,SAAS3F,KACTiY,EAAU2F,SACV3F,EAAU7R,OAEhB,CAAC,SAAUoX,EAAIK,gBAAkB5F,EAAU6F,WC7B5C,SAASC,IAAY,QAC1B/M,EAD0B,KAE1BhR,EAF0B,KAG1BgK,EAH0B,cAI1B8S,EAJ0B,kBAK1BkB,EAL0B,yBAM1BC,EAN0B,mBAO1BrB,EAP0B,mBAQ1BsB,EAR0B,sBAS1BrB,EAT0B,eAU1BgB,IAEA,GAAI7d,IAASpC,EAAwBugB,YAAa,CAEhD,IAAM,UAAEC,EAAY,QAAd,MAAuBhY,GAC3B4D,EACIyS,EAAkB5b,IACxBmQ,EAAQtE,QAAR,WACK6P,GAAyB,CAC1BE,kBACAC,eAAgB,KAChBI,gBACAF,qBACAC,2BANJ,IAQE3Y,QAASuY,EACT3Y,UAAWka,EACXrY,SAAU,CACR5D,OAAQkc,EACRje,KAAMoe,EACNhY,QACAjE,WAAYya,EACZyB,IAAKR,GAAgC,aAAdO,QAAkCpb,EACzD8a,OAAQD,WAGP,GAAI7d,IAASpC,EAAwB0gB,iBAAkB,CAC5D,IAAM,OAAEC,GAAWvU,EAEb+S,EAAmB,IAAI,IAAIve,MAAM+f,EAAOngB,SAASwF,IAAI,IACzD/C,KAEFmQ,EAAQ9D,aAAR,WACKqP,GAAyB,CAC1BE,gBAAiBM,EACjBL,eAAgB,KAChBI,gBACAF,qBACAC,2BANJ,IAQE/Y,UAAWka,EACX7Q,YAAaoR,EAAO3a,IAAI,CAACqU,EAAWvU,IC3EnC,SAAS8a,GAAqB,OACnCzc,EADmC,UAEnC+B,EAFmC,WAGnC3B,EAHmC,QAInC+B,EAJmC,UAKnC+T,EALmC,eAMnC4F,EANmC,KAOnC7b,IAUA,IAAMhC,EAAOiY,EAAU2F,SACnB,WACA3F,EAAUoG,GACV,WACA,QAEJ,MAAO,CACLna,UACAJ,YACA6B,SAAU4X,GAAiBtF,EAAW,CACpC4F,iBACAlY,SAAU,CACR3F,OACA+B,SACAI,aACAH,UAGJwF,SAAUyQ,EAAUxV,MAChBpG,OAAO0K,QAAQkR,EAAUxV,OACtByJ,QAAQ,EAAE/J,EAAYkG,KACpBA,EAA8BkW,OAAO3a,IAAK6a,IAAD,CACxCA,iBACAtc,iBAGHyB,IAAI,EAAG6a,iBAAgBtc,cAAcuB,IACpC8a,EAAqB,CACnB1a,UAAWI,EACX/B,aACA+B,QAASrD,IACToX,UAAWwG,EACXzc,KAAM0B,KAGZ,IDwBA8a,CAAqB,CACnBzc,OAAQkc,EACRna,UAAWka,EACX7b,WAAYya,EACZ1Y,QAAS6Y,EAAiBrZ,GAC1BuU,YACA4F,4BAID,GAAI7d,IAASpC,EAAwB8a,aAAc,CACxD,IACExU,QAASuY,EACT9D,OAAQ+D,EACRnN,eAAgBmP,GACd1U,EAEE2S,EAAgBuB,EAAmB1a,UACtC/B,GAASA,EAAKC,QAAU+a,GAIvBE,GAAiB,EAGjBG,IAAkBH,GAClBG,IAAkBH,EAAgB,GAElC3L,EAAQnD,YAAR,WACK0O,GAAyB,CAC1BE,kBACAC,iBACAC,gBACAG,gBACAF,qBACAC,2BAPJ,IASE/Y,UAAWka,KAIfhN,EAAQvD,SAAR,WACK8O,GAAyB,CAC1BE,kBACAC,iBACAI,gBACAF,qBACAC,2BANJ,IAQE3Y,QAASuY,EACT3Y,UAAWka,EACXzO,eAAgBmP,EAChB/Y,SAAU,CACR5D,OAAQkc,EACR9b,WAAYya,OEpIf,SAAS+B,GACdC,GAEA,OAAOnN,kBAAQ,KACb,IAAMoN,EAAmC,GACnCC,EAA2C,GACjD,IAAK,IAAM7c,KAAS2c,EACd3c,EAAM6b,OACRgB,EAAiBvgB,KAAK,CAAC0D,IAEvB4c,EAAWtgB,KAAK0D,GAGpB,MAAO,CAAC4c,KAAeC,EAAkB,KACxC,CAACF,I,syLCwCC,SAASG,IAAS,QACvB7a,EADuB,OAEvBsN,EAFuB,eAGvBwN,EAHuB,eAIvBnB,EAJuB,wBAKvBoB,EALuB,YAMvBC,EANuB,WAOvB/c,EAPuB,WAQvBgd,EARuB,iBASvBC,EATuB,cAUvBC,EAVuB,kBAWvBC,EAXuB,kBAYvB5I,EAZuB,mBAavB6I,IAEA,IAAMC,EAAe3O,IAAMiD,UACpB2L,EAAoBC,GACzB7O,IAAMQ,SAA6B,MAC/BsO,EAAwB9O,IAAMiD,SAC9B5J,EAAoBwH,IACpBV,EAAUD,IACVxP,EAAOgQ,EAAe,CAAErN,UAASsN,WACjCoO,EAAoBzG,GAA4B,CACpDjV,UACAsN,WAGIqO,EAA4BZ,EAC9BC,EAAc,EACdrB,EACEiC,EAAUd,GAAkBC,EAE5Bc,EAAUrG,KACVsG,EACJtJ,UAAqB3Y,EAAwBgb,MAEzCkH,EAAiBpP,IAAMY,QAC3B,wCACEmO,EAAkBpe,KAAMyb,GAAUA,EAAM9a,aAAeA,UADzD,aACE,EACIsX,kBAFN,QAEoB,IACpB,CAACmG,EAAmBzd,IAGhB+d,EAAavB,GAAcsB,GAE3BE,EAAgCtP,IAAMY,QAC1C,IACEuN,EACIiB,EAAepe,OAAQI,GACrBwO,QAAQ2P,OAAO3P,QAAQoN,IAAmBuC,QAAQne,EAAM6b,UAE1DmB,EACAiB,EAAW3c,gBAAM2b,UAAe,EAAG,EAAGgB,EAAW9hB,OAAS,IAC1D6hB,EACN,CACEf,EACAD,EACApB,EACAoC,EACAC,EACAlB,IAIEqB,EAAiBxP,IAAMY,QAC3B,4BACE0O,EAA8B,UADhC,aACE,EAAkChX,mBAC/BmX,UACL,CAACH,IAGGI,EAA+B1P,IAAM8D,YACxC6L,IACC,IAAKV,EACH,OAAOU,EAET,GAAIL,EAA8B/hB,OAAS,EAAG,CAC5C,IAAM6J,EACJkY,EACmC,IAAjCK,EACI,EACAA,EAA+B,GAEvC,OACEP,EAAezc,UAAWvB,GAAUA,IAAUgG,IACZ,IAAjCuY,EAAqC,EAAI,GAG9C,OAAOX,EAA4BI,EAAe7hB,OAAS,GAE7D,CACE0hB,EACAK,EACAN,EACAI,KAIE,MAAElf,EAAF,MAASC,GAAUmQ,IAEnBsP,EAAqB5P,IAAM8D,YAAY,KAC3C,GAAIyK,EAAkB,SACdsB,EAAgBrH,GAA4B,CAChDnV,QAASkb,EAAiB1W,YAC1B3H,QACAC,QACAoY,sBAAsB,IAExB,MAAO,CACL4E,kBAAmBoB,EAAiB1W,YACpCuV,yBAA0Bld,EAAMS,KAC7BC,GAASA,EAAKC,QAAU0d,EAAiB1W,aAC1CuE,WACF2P,mBAAoBwC,EAAiBzW,mBACrCuV,mBAAkB,oBAChBwC,EAAclf,KACXyb,GAAUA,EAAM9a,aAAeid,EAAiBzW,2BAFnC,aAChB,EAEG8Q,kBAHa,QAGC,GACnBoD,sBAAuB6D,GAG3B,MAAO,CACL1C,kBAAmBzc,EAAKG,MACxBuc,yBAA0B1c,EAAK0L,WAC/B2P,mBAAoBza,EACpB+b,mBAAoB+B,EACpBpD,sBAAuB+C,IAExB,CACDR,EACApe,EACA4e,EACAzd,EACAZ,EACAR,EACAkf,MAGK,sBAAEU,GAAyBC,GAAWC,kBAAQ,CACnDC,OAAQ,CACNljB,EAAwBugB,YACxBvgB,EAAwB8a,aACxB9a,EAAwB0gB,kBAE1ByB,QACEte,GAMAwd,GAA2BY,EACkB,IAAzCM,EAA8B/hB,OAC9BqD,EAAKzB,OAASpC,EAAwBugB,aACtC1c,EAAKzB,OAASpC,EAAwB0gB,kBACtC9M,GACAuO,EACGte,EAAgDyC,QACjDA,GAER2U,QAAUC,IAAD,CACP6H,sBACE7H,EAAQiI,OAAO,CAAEC,SAAS,KAAWlI,EAAQiH,YAEjD3L,MAAO,CAAC3S,EAAMqX,KACZ,GAAIA,EAAQiI,OAAO,CAAEC,SAAS,KAAWlI,EAAQiH,UAAW,CAC1D,IAAM,EAAE5K,EAAF,EAAKE,GAAMyD,EAAQmI,kBACzBtB,EAAsBlL,QAAUqF,GAC9B3E,EACAE,EACAmK,EAAa/K,QAAQrB,cACrBoM,EAAa/K,SAEfiL,EAAsBC,EAAsBlL,WAGhDyM,KAAM,CAACzf,EAAMqX,KACX,IAAKA,EAAQqI,UAAW,CACtB,IAAM,KAAEnhB,GAAkByB,EAATuI,EAAjB,IAA0BvI,EAA1B,IACAsc,GAAY,KACV/d,KAAMA,EACNgK,OACA8S,cAAeyD,EACbZ,EAAsBlL,QAAQ/Q,OAEhCma,eAAgBgC,EAChB7O,WACGyP,UAMX5P,IAAMS,UAAU,KACdN,EAAQZ,qBACNgP,EAAmBA,EAAiB1W,YAAcnH,EAAKG,MACvD0d,EAAmBA,EAAiBzW,mBAAqBxG,EACzDwe,IAED,CAACA,EAAuBxe,EAAY6O,EAASoO,EAAkB7d,IAElE,IAAM6f,IACFhC,KACA7d,EAAKgB,wBAA0BhB,EAAKwG,0BAElCsZ,EAAcxQ,IAAMiD,SAEpBwN,EAAsBzQ,IAAM8D,YAC/B5B,IACCsO,EAAY5M,QAAU1B,EAClBqO,GACFR,EAAQ7N,IAGZ,CAAC6N,EAASQ,IAGNnM,EAAoBpE,IAAM8D,YAC7BrU,KAGIuf,GACDjN,EACEtS,EAAMd,OACN6hB,EAAY5M,WAGdnU,EAAM4U,iBACNlE,EAAQ9C,kBAAkB,CACxBxE,QAAQ,EACRnI,OACA4T,EAAG7U,EAAM8U,QACTC,EAAG/U,EAAMgV,YAIf,CAACuK,EAA2B7O,EAASzP,IAGvC,OACE,yBACEoB,IAAK2e,EACL/L,UAAWtX,EACTuX,GAAOuE,SACPvI,EACIvT,EACEuX,GAAOhE,QACP6O,aAAA,EAAAA,EAAgBvjB,OACdykB,OAAOlB,EAAevjB,MACnBsK,MAAM,QACNxD,IAAK9G,GAAS0Y,GAAO,QAAD,OAAS1Y,KAClC,CACE,CAAC0Y,GAAO2J,YAAaA,EACrB,CAAC3J,GAAOsK,SAAUA,IAGtBtK,GAAOgM,OACX,CACE,CAAChM,GAAOqI,gBAAiBgC,EACzB,CAACrK,GAAOE,UAAWiL,EACnB,CAACnL,GAAO9L,QACN8H,GACAtH,EAAkBR,QAClBQ,EAAkB3I,KAAKG,QAAUH,EAAKG,MACxC,CAAC8T,GAAO+J,qBACL/N,GAAU+N,GAAgD,IAA1BU,EAAe7hB,OAClD,CAACoX,GAAOiM,wBACNzB,IAA6BjiB,EAAwBgb,MACvD,CAACvD,GAAOkM,yBACN1B,IAA6BjiB,EAAwBua,OACvD,CAAC9C,GAAOmM,uBACN3B,IAA6BjiB,EAAwB6jB,OAG3DxP,MAAOiN,EACPxJ,cAAerE,EAASyD,EAAoB,MAE5C,yBACEtS,IAAK6c,EACLjK,UAAWC,GAAOgK,aAClBpN,MAAOkN,GAENa,EAA8Bvc,IAAK3B,GAClC,kBAACwU,GAAD,CACEvZ,IAAK+E,EAAMP,MACXH,KAAMU,EACNyU,kBAAmBsJ,MAKvB,yBACEzK,UAAWtX,EACTuX,GAAOqM,WACPpC,WAAoB3D,WAChBtG,GAAOsM,mBACPtM,GAAOuM,sBAEb3P,MAAO,CACLuI,IAAK8E,aAAF,EAAEA,EAAoBpK,EACzBwF,KAAM4E,aAAF,EAAEA,EAAoBtK,EAC1B4G,OAAQ0D,aAAF,EAAEA,EAAoB1D,W,wHCjVjC,SAASiG,IAAc,QAC5B9d,EAD4B,SAE5BkE,EAF4B,mBAG5B6Z,EAH4B,cAI5B5C,EAJ4B,kBAK5BC,EAL4B,kBAM5B5I,EAN4B,mBAO5B6I,IACyC,MACnChe,EAAOgQ,EAAe,CAAErN,YACxBqM,EAAiBgD,KAEjB6L,EAAmB3N,kBAAQ,KAAM,MAC/ByQ,EAAc,UAAG3gB,EAAKiH,wBAAR,aAAG,EAAuBhM,IAAI4L,GAElD,OAAkC,KAA3B8Z,aAAA,EAAAA,EAAgB9jB,QAAe8jB,EAAe,GAAK,MACzD,CAAC3gB,EAAM6G,IAEV,OACE,yBACEmN,UAAWtX,EAAWuX,GAAsB,CAC1C,CAACA,IAAD,UAAmBjF,EAChB/T,IAAI4iB,EAAmBA,EAAiB1W,YAAcxE,UADzD,aAAmB,EAEf1H,IACA4iB,EAAmBA,EAAiBzW,mBAAqBP,KAG/DgK,MAAO6P,GAEP,yBAAK1M,UAAWC,IACb4J,EAAmBA,EAAiBzW,mBAAqBP,GAE5D,kBAAC2W,GAAD,CACE7a,QAASA,EACT/B,WAAYiG,EACZgX,iBAAkBA,EAClBC,cAAeA,EACfC,kBAAmBA,EACnB5I,kBAAmBA,EACnB6I,mBAAoBA,K,2oBCpDf4C,GAAkBtR,IAAMuR,KAAKC,IAEpCC,GAAiB5lB,OAAO6lB,IAAI,2CAClC,SAASC,KACP,IAAMhF,EAAMze,OAIZ,OAHKye,EAAI8E,MACP9E,EAAI8E,I3BJC,CACLtR,QAAS,IAAIvH,I2BKR+T,EAAI8E,IAGb,IAAIG,GAAW,EAEf,SAASJ,IAAsB,SAC7B7a,IAEA,IAAMoG,EAAU4U,KAmBhB,OAZA3R,IAAMS,UAAU,KACdmR,KAEO,KAGY,MAFjBA,KAGG1jB,OAAeujB,IAAkB,QAGrC,IAGD,kBAAC1R,EAAe8R,SAAhB,CAAyB9lB,MAAOgR,GAC7BpG,GCbA,SAASmb,GACdC,EACA/iB,GAkDA,OAjD+B,iCAC/B,gBAA+C,wCADhB,gDAE7B,WACE,OAAOA,aAAP,EAAOA,EAASsY,aAHW,0BAM5B7a,mBAAS,CAAE0C,KAAMogB,UANW,sDAS5B9iB,mBAAS,CAAEulB,WAAW,KATM,6EAY7B,WAME,GAHKvjB,KAAK8S,MAAM0Q,UACdxjB,KAAK8S,MAAM0Q,QAAU,SAEnBjjB,WAASkjB,WACX,IAAK,IAAO7lB,EAAKN,KAAUP,OAAO0K,QAAQlH,EAAQkjB,YAC/CzjB,KAAK8S,MAA4ClV,GAAON,EAG7D0C,KAAK0jB,YAvBsB,gDA0B7B,WACEC,IAASC,uBAAuB5jB,QA3BL,mCA8B7B,WAEMA,KAAK6jB,aAAe7jB,KAAK4E,SAC3B+e,IAASG,OACP,kBAAC,eAAD,KACE,kBAACjB,GAAD,KACE,kBAAC,cAAD,CAAakB,QAASC,gBACpB,kBAACV,EAAD,CACE1e,QAAS5E,KAAK4E,QACdgU,YAAa5Y,KAAK4Y,iBAK1B5Y,YA3CuBikB,mB,ICtBpBC,GAAwB1S,wBAAuC,ICVrE,SAAS2S,IAA0B,QACxCvf,EADwC,OAExCsN,EAFwC,qBAGxC4H,IAMA,IAAM,OAAEnY,EAAF,MAAUD,GAAUmQ,IACpBtL,EAAa2L,EAASvQ,EAASiD,EACrC,OAAOuN,kBAAQ,KACb,IAAMiS,EAAc,IAAItf,IAClBmV,EAAe3X,iBACnBZ,EAAMa,OACHC,GACCA,EAAKC,SAAW8D,IACfuT,GACItX,EAAKsB,sBACLtB,EAAKyH,wBAEd,CAAEzH,GAASA,EAAKE,OAElB,IAAK,IAAMF,KAAQyX,EACjBmK,EAAYpf,IAAIxC,EAAKK,YAEvB,OAAO3D,MAAMmR,KAAK+T,IACjB,CAAC7d,EAAY7E,EAAOoY,IC3BlB,SAASuK,GAAqBzf,GACnC,IAAM,MAAEnD,EAAF,MAASC,GAAUmQ,IACzB,OAAOM,kBAAQ,KACb,IAAM3N,EAAY9C,EAAMQ,KACrBM,GAASA,EAAKG,QAAUiC,IAAYpC,EAAKmB,sBAC1ClB,OACF,OAAOhB,EAAMS,KAAMD,GAASA,EAAKG,QAAUoC,IAC1C,CAAC9C,EAAOkD,EAASnD,ICPf,SAAS6iB,KACd,IAAM5S,EAAUD,KACT/G,EAAMoH,GAAWC,mBAASL,EAAQ9F,gBAQzC,OAPAoG,oBACE,IACEN,EAAQ1F,kBAAkB,KACxB8F,EAAQJ,EAAQ9F,kBAEpB,CAAC8F,IAEIhH,ECXF,SAAS6Z,GACdtU,EACAuU,GAEA,IAAM9S,EAAUD,KACTgT,EAASC,GAAc3S,oBAC5ByS,GAAuB9S,EAAQnB,iBAAiBN,IASlD,OAPA+B,oBAAU,KACR,IAAKwS,EACH,OAAO9S,EAAQlB,4BAA4B,KACzCkU,EAAWhT,EAAQnB,iBAAiBN,OAGvC,CAACuU,EAAc9S,EAASzB,IACpBwU,I,mBClBTroB,EAAOD,QAAUwoB,K,qBCAjBvoB,EAAOD,QAAWF,EAAoB,OAArB,CAA8B,S,qBCA/CG,EAAOD,QAAWF,EAAoB,OAArB,CAA8B,S,qBCA/CG,EAAOD,QAAWF,EAAoB,OAArB,CAA8B,S,qBCA/CG,EAAOD,QAAWF,EAAoB,OAArB,CAA8B,S,qBCA/CG,EAAOD,QAAWF,EAAoB,OAArB,CAA8B,S,qBCA/CG,EAAOD,QAAWF,EAAoB,OAArB,CAA8B,S,qBCA/CG,EAAOD,QAAWF,EAAoB,OAArB,CAA8B","file":"dll-of-editor-bricks-helper.55c56f9e.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","module.exports = DllOfReactDnd;","module.exports = (__webpack_require__(\"XuQu\"))(\"3tO9\");","module.exports = (__webpack_require__(\"XuQu\"))(\"A+yw\");","module.exports = (__webpack_require__(\"XuQu\"))(\"ACCw\");","module.exports = (__webpack_require__(\"/8r5\"))(\"IYwU\");","module.exports = (__webpack_require__(\"XuQu\"))(\"LvDl\");","module.exports = (__webpack_require__(\"XuQu\"))(\"QILm\");","import {\n BrickEventsMap,\n BuilderRouteOrBrickNode,\n CustomTemplateProxy,\n ContextConf,\n BuilderRouteNode,\n BrickLifeCycle,\n BrickConf,\n RouteConf,\n} from \"@next-core/brick-types\";\n\nexport interface BuilderCanvasData {\n rootId: number;\n nodes: BuilderRuntimeNode[];\n edges: BuilderRuntimeEdge[];\n}\n\nexport interface BuilderCanvasSettings {\n mode: \"page\" | \"dialog\";\n}\n\nexport type BuilderRuntimeNode<P = Record<string, unknown>> =\n BuilderRouteOrBrickNode & {\n $$uid?: number;\n $$parsedProperties?: P;\n $$parsedEvents?: BrickEventsMap;\n $$parsedLifeCycle?: BrickLifeCycle;\n $$matchedSelectors?: string[];\n $$isTemplateInternalNode?: boolean;\n $$isExpandableTemplate?: boolean;\n $$templateProxy?: CustomTemplateProxy;\n $$templateRefToUid?: Map<string, number>;\n $$delegatedSlots?: Map<string, TemplateDelegatedContext[]>;\n $$normalized?: BrickConf | RouteConf | null;\n };\n\nexport interface BuilderRuntimeEdge {\n child: number;\n parent: number;\n mountPoint: string;\n sort: number;\n $$isTemplateInternal?: boolean;\n $$isTemplateDelegated?: boolean;\n $$isTemplateExpanded?: boolean;\n}\n\nexport interface TemplateDelegatedContext {\n templateUid: number;\n templateMountPoint: string;\n}\n\nexport interface BuilderGroupedChildNode {\n mountPoint: string;\n childNodes: BuilderRuntimeNode[];\n}\n\nexport interface EventDetailOfNodeAdd {\n nodeUid: number;\n parentUid: number;\n nodeUids: number[];\n nodeIds: string[];\n nodeData: NodeInstance;\n}\n\nexport interface EventDetailOfContextUpdated {\n context: ContextConf[];\n}\n\nexport interface NodeInstance {\n parent: string;\n type: \"brick\" | \"provider\" | \"template\";\n brick: string;\n mountPoint: string;\n bg?: boolean;\n portal?: boolean;\n properties?: string;\n events?: string;\n lifeCycle?: string;\n sort?: number;\n}\n\nexport interface EventDetailOfNodeAddStored {\n nodeUid: number;\n nodeData: BuilderRouteOrBrickNode;\n}\n\nexport interface EventDetailOfSnippetApply {\n parentUid: number;\n /** First level node only. */\n nodeUids: number[];\n /** First level node only. */\n nodeIds: string[];\n nodeDetails: SnippetNodeDetail[];\n}\n\nexport interface SnippetNodeDetail {\n nodeUid: number;\n parentUid: number;\n nodeData: SnippetNodeInstance;\n children: SnippetNodeDetail[];\n}\n\nexport type SnippetNodeInstance = Omit<NodeInstance, \"parent\"> & {\n parent?: string;\n};\n\nexport interface EventDetailOfSnippetApplyStored {\n flattenNodeDetails: EventDetailOfNodeAddStored[];\n}\n\nexport type EventDetailOfNodeMove = Omit<EventDetailOfNodeAdd, \"nodeData\"> & {\n nodeInstanceId: string;\n nodeData: {\n parent: string;\n mountPoint: string;\n };\n};\n\nexport interface EventDetailOfNodeReorder {\n nodeUids: number[];\n parentUid: number;\n nodeIds: string[];\n}\n\nexport interface EventDetailOfNodeDragStart {\n nodeUid: number;\n}\n\nexport interface BuilderContextMenuStatus {\n active: boolean;\n node?: BuilderRuntimeNode;\n /** `x` is relative to the viewport. */\n x?: number;\n /** `y` is relative to the viewport. */\n y?: number;\n}\n\nexport enum BuilderDataTransferType {\n NODE_TO_ADD = \"builder/node-to-add\",\n NODE_TO_MOVE = \"builder/node-to-move\",\n SNIPPET_TO_APPLY = \"builder/snippet-to-apply\",\n}\n\nexport interface BuilderDataTransferPayloadOfNodeToAdd {\n brickType?: \"brick\" | \"provider\" | \"template\";\n brick: string;\n}\n\nexport interface BuilderDataTransferPayloadOfNodeToMove {\n nodeUid: number;\n nodeInstanceId: string;\n nodeId: string;\n}\n\nexport interface BuilderDataTransferPayloadOfSnippetToApply {\n bricks: BrickConf[];\n}\n\nexport enum EditorBrickType {\n DEFAULT = \"editorOfDefault\",\n CONTAINER = \"editorOfContainer\",\n TRANSPARENT_CONTAINER = \"editorOfTransparentContainer\",\n}\n\nexport enum EditorSelfLayout {\n BLOCK = \"block\",\n INLINE = \"inline\",\n CONTAINER = \"container\",\n}\n\nexport enum EditorSlotContentLayout {\n BLOCK = \"block\",\n INLINE = \"inline\",\n GRID = \"grid\",\n}\n\nexport interface SharedEditorConf {\n id: string;\n editor: string;\n editorProps?: Record<string, unknown>;\n}\n\nexport type BuilderDroppingStatus = Map<number, Map<string, boolean>>;\n\nexport interface AbstractBuilderDataManager {\n getData(): BuilderCanvasData;\n getRouteList(): BuilderRouteNode[];\n getContextMenuStatus(): BuilderContextMenuStatus;\n dataInit(root: BuilderRuntimeNode): void;\n sharedEditorListInit(data: SharedEditorConf[]): void;\n routeListInit(data: BuilderRouteNode[]): void;\n nodeAdd(detail: EventDetailOfNodeAdd): void;\n nodeAddStored(detail: EventDetailOfNodeAddStored): void;\n snippetApply(detail: EventDetailOfSnippetApply): void;\n snippetApplyStored(detail: EventDetailOfSnippetApplyStored): void;\n nodeMove(detail: EventDetailOfNodeMove): void;\n nodeReorder(detail: EventDetailOfNodeReorder): void;\n nodeDelete(detail: BuilderRuntimeNode): void;\n nodeClick(detail: BuilderRuntimeNode): void;\n contextUpdated(detail: EventDetailOfContextUpdated): void;\n onDataChange(fn: EventListener): () => void;\n onNodeAdd(fn: (event: CustomEvent<EventDetailOfNodeAdd>) => void): () => void;\n onNodeReorder(\n fn: (event: CustomEvent<EventDetailOfNodeReorder>) => void\n ): () => void;\n onNodeMove(\n fn: (event: CustomEvent<EventDetailOfNodeMove>) => void\n ): () => void;\n onNodeClick(fn: (event: CustomEvent<BuilderRuntimeNode>) => void): () => void;\n onContextMenuChange(\n fn: (event: CustomEvent<BuilderContextMenuStatus>) => void\n ): () => void;\n}\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/*! (c) Andrea Giammarchi - ISC */\nvar self = {};\ntry {\n self.EventTarget = (new EventTarget).constructor;\n} catch(EventTarget) {\n (function (Object, wm) {\n var create = Object.create;\n var defineProperty = Object.defineProperty;\n var proto = EventTarget.prototype;\n define(proto, 'addEventListener', function (type, listener, options) {\n for (var\n secret = wm.get(this),\n listeners = secret[type] || (secret[type] = []),\n i = 0, length = listeners.length; i < length; i++\n ) {\n if (listeners[i].listener === listener)\n return;\n }\n listeners.push({target: this, listener: listener, options: options});\n });\n define(proto, 'dispatchEvent', function (event) {\n var secret = wm.get(this);\n var listeners = secret[event.type];\n if (listeners) {\n define(event, 'target', this);\n define(event, 'currentTarget', this);\n listeners.slice(0).some(dispatch, event);\n delete event.currentTarget;\n delete event.target;\n }\n return true;\n });\n define(proto, 'removeEventListener', function (type, listener) {\n for (var\n secret = wm.get(this),\n /* istanbul ignore next */\n listeners = secret[type] || (secret[type] = []),\n i = 0, length = listeners.length; i < length; i++\n ) {\n if (listeners[i].listener === listener) {\n listeners.splice(i, 1);\n return;\n }\n }\n });\n self.EventTarget = EventTarget;\n function EventTarget() {'use strict';\n wm.set(this, create(null));\n }\n function define(target, name, value) {\n defineProperty(\n target,\n name,\n {\n configurable: true,\n writable: true,\n value: value\n }\n );\n }\n function dispatch(info) {\n var options = info.options;\n if (options && options.once)\n info.target.removeEventListener(this.type, info.listener);\n if (typeof info.listener === 'function')\n info.listener.call(info.target, this);\n else\n info.listener.handleEvent(this);\n return this._stopImmediatePropagationFlag;\n }\n }(Object, new WeakMap));\n}\nexport default self.EventTarget;\n","let uniqueIdCursor = 0;\n\nexport function getUniqueNodeId(): number {\n return (uniqueIdCursor += 1);\n}\n","import { clamp, sortBy } from \"lodash\";\nimport { CustomTemplateProxySlot } from \"@next-core/brick-types\";\nimport { hasOwnProperty } from \"@next-core/brick-utils\";\nimport {\n BuilderCanvasData,\n BuilderRuntimeEdge,\n BuilderRuntimeNode,\n} from \"../interfaces\";\n\nexport function expandTemplateEdges({\n nodes,\n // Here expanded edges should be excluded.\n edges,\n rootId,\n}: BuilderCanvasData): BuilderRuntimeEdge[] {\n const newEdges = edges.slice();\n const reorderedEdgesMap = new WeakMap<BuilderRuntimeEdge, number>();\n\n const walk = (\n uid: number,\n callback: (\n node: BuilderRuntimeNode,\n childEdges: BuilderRuntimeEdge[]\n ) => void\n ): void => {\n const node = nodes.find((item) => item.$$uid === uid);\n const childEdges = sortBy(\n edges.filter((edge) => edge.parent === node.$$uid),\n (edge) => edge.sort\n );\n callback(node, childEdges);\n for (const edge of childEdges) {\n walk(edge.child, callback);\n }\n };\n\n const expandEdgesThroughTemplateChain = (\n node: BuilderRuntimeNode,\n mountPoint: string,\n childUid: number\n ): void => {\n let proxySlotConf: CustomTemplateProxySlot;\n let delegateToParentUid: number;\n if (\n node.$$isExpandableTemplate &&\n node.$$templateProxy?.slots &&\n hasOwnProperty(node.$$templateProxy.slots, mountPoint) &&\n (proxySlotConf = node.$$templateProxy.slots[mountPoint]) &&\n (delegateToParentUid = node.$$templateRefToUid.get(proxySlotConf.ref))\n ) {\n const nextNode = nodes.find((n) => n.$$uid === delegateToParentUid);\n const nextMountPoint = proxySlotConf.refSlot;\n if (nextNode.$$isExpandableTemplate) {\n expandEdgesThroughTemplateChain(nextNode, nextMountPoint, childUid);\n } else {\n const expandedEdge: BuilderRuntimeEdge = {\n child: childUid,\n parent: delegateToParentUid,\n mountPoint: nextMountPoint,\n sort: undefined,\n $$isTemplateExpanded: true,\n };\n const siblingEdges = sortBy(\n newEdges.filter((edge) => edge.parent === delegateToParentUid),\n (edge) => reorderedEdgesMap.get(edge) ?? edge.sort\n );\n const internalEdges = siblingEdges.filter(\n (edge) => edge.$$isTemplateInternal\n );\n // For more details about refPosition implementation detail,\n // see `packages/brick-kit/src/core/CustomTemplates/expandCustomTemplate.ts`.\n const refPosition = proxySlotConf.refPosition ?? -1;\n const clampedRefPosition = clamp(\n refPosition < 0\n ? internalEdges.length + 1 + refPosition\n : refPosition,\n 0,\n internalEdges.length\n );\n siblingEdges.splice(\n clampedRefPosition < internalEdges.length\n ? siblingEdges.findIndex(\n (edge) => edge === internalEdges[clampedRefPosition]\n )\n : siblingEdges.length,\n 0,\n expandedEdge\n );\n siblingEdges.forEach((edge, index) => {\n reorderedEdgesMap.set(edge, index);\n });\n newEdges.push(expandedEdge);\n }\n }\n };\n\n walk(rootId, (node, childEdges) => {\n if (!node.$$isExpandableTemplate) {\n return;\n }\n for (const childEdge of childEdges) {\n // Recursively expand templates.\n expandEdgesThroughTemplateChain(\n node,\n childEdge.mountPoint,\n childEdge.child\n );\n }\n });\n\n if (newEdges.length > edges.length) {\n return newEdges.map((edge) => {\n const sort = reorderedEdgesMap.get(edge);\n return sort === undefined\n ? edge\n : {\n ...edge,\n sort,\n };\n });\n }\n\n return edges;\n}\n","import { BuilderCanvasData, BuilderRuntimeEdge } from \"../interfaces\";\nimport { expandTemplateEdges } from \"./expandTemplateEdges\";\n\nexport function reorderBuilderEdges(\n { rootId, nodes, edges }: BuilderCanvasData,\n {\n parentUid,\n nodeUids,\n }: {\n parentUid: number;\n nodeUids: number[];\n }\n): BuilderRuntimeEdge[] {\n // When we do edge-reordering, we simply remove existed\n // expanded edges and re-expand them.\n const edgesExcludeExpanded = edges.filter(\n (edge) => !edge.$$isTemplateExpanded\n );\n\n return expandTemplateEdges({\n rootId,\n nodes,\n edges: edgesExcludeExpanded.map((edge) => {\n // `nodeUids` are sorted, so reorder related edges based on it.\n const index =\n edge.parent === parentUid ? nodeUids.indexOf(edge.child) : -1;\n return index >= 0\n ? {\n ...edge,\n sort: index,\n }\n : edge;\n }),\n });\n}\n","import { BuilderCanvasData, BuilderRuntimeEdge } from \"../interfaces\";\n\nexport function deleteNodeFromTree(\n nodeUid: number,\n { rootId, nodes, edges }: BuilderCanvasData\n): BuilderCanvasData {\n const idsToDelete = new Set<number>();\n collectIdsToDelete(nodeUid, edges, idsToDelete);\n return {\n rootId,\n nodes: nodes.filter((node) => !idsToDelete.has(node.$$uid)),\n edges: edges.filter(\n (edge) => !idsToDelete.has(edge.parent) && !idsToDelete.has(edge.child)\n ),\n };\n}\n\nfunction collectIdsToDelete(\n nodeUid: number,\n edges: BuilderRuntimeEdge[],\n idsToDelete: Set<number>\n): void {\n idsToDelete.add(nodeUid);\n const ids = new Set<number>();\n for (const edge of edges) {\n if (edge.parent === nodeUid) {\n ids.add(edge.child);\n }\n }\n for (const id of ids) {\n collectIdsToDelete(id, edges, idsToDelete);\n }\n}\n","import { BuilderRuntimeNode } from \"../interfaces\";\nimport {\n BrickEventHandler,\n ExecuteCustomBrickEventHandler,\n MessageConf,\n} from \"@next-core/brick-types\";\nimport { isEmpty } from \"lodash\";\n\nexport type RelatedNodesBasedOnEventsMap = Map<\n number,\n {\n upstreamNodes: Set<number>;\n downstreamNodes: Set<number>;\n }\n>;\n\nexport function getRelatedNodesBasedOnEvents(\n nodes: BuilderRuntimeNode[],\n rootNodeIsCustomTemplate?: boolean\n): RelatedNodesBasedOnEventsMap {\n const nodesMap: RelatedNodesBasedOnEventsMap = new Map();\n\n const targetMap = new Map<string, number>();\n const targetRefMap = new Map<string, number>();\n for (const n of nodes) {\n nodesMap.set(n.$$uid, {\n upstreamNodes: new Set<number>(),\n downstreamNodes: new Set<number>(),\n });\n for (const selector of n.$$matchedSelectors) {\n if (!targetMap.get(selector)) {\n targetMap.set(selector, n.$$uid);\n }\n }\n if (rootNodeIsCustomTemplate) {\n if (n.ref) {\n targetRefMap.set(n.ref as string, n.$$uid);\n }\n }\n }\n\n for (const node of nodes) {\n let handlers: BrickEventHandler[] = [];\n if (!isEmpty(node.$$parsedEvents)) {\n handlers = Object.values(node.$$parsedEvents).flat();\n }\n if (!isEmpty(node.$$parsedLifeCycle)) {\n handlers = handlers.concat(\n Object.entries(node.$$parsedLifeCycle).flatMap(\n ([lifeCycleName, lifeCycleConf]) => {\n switch (lifeCycleName) {\n case \"onBeforePageLoad\":\n case \"onPageLoad\":\n case \"onPageLeave\":\n case \"onBeforePageLeave\":\n case \"onAnchorLoad\":\n case \"onAnchorUnload\":\n case \"onMessageClose\":\n return lifeCycleConf as BrickEventHandler[];\n case \"onMessage\":\n return ([] as MessageConf[])\n .concat(lifeCycleConf)\n .flatMap((messageConf) =>\n ([] as BrickEventHandler[]).concat(messageConf.handlers)\n );\n default:\n // eslint-disable-next-line no-console\n console.warn(`unknown lifeCycle: ${lifeCycleName}`);\n return [];\n }\n }\n )\n );\n }\n if (handlers.length > 0) {\n collectRelatedNodes(node, handlers, nodesMap, targetMap, targetRefMap);\n }\n }\n\n return nodesMap;\n}\n\nfunction collectRelatedNodes(\n node: BuilderRuntimeNode,\n handlers: BrickEventHandler[],\n nodesMap: RelatedNodesBasedOnEventsMap,\n targetMap: Map<string, number>,\n targetRefMap: Map<string, number>\n): void {\n for (const handler of handlers as ExecuteCustomBrickEventHandler[]) {\n if (handler) {\n if (handler.target) {\n const targetNodeUid = targetMap.get(handler.target as string);\n if (targetNodeUid) {\n nodesMap.get(node.$$uid).downstreamNodes.add(targetNodeUid);\n nodesMap.get(targetNodeUid).upstreamNodes.add(node.$$uid);\n }\n } else if (handler.targetRef) {\n const targetRefNodeUid = targetRefMap.get(handler.targetRef);\n if (targetRefNodeUid) {\n nodesMap.get(node.$$uid).downstreamNodes.add(targetRefNodeUid);\n nodesMap.get(targetRefNodeUid).upstreamNodes.add(node.$$uid);\n }\n }\n if (handler.callback) {\n for (const callbackHandlers of Object.values(handler.callback)) {\n collectRelatedNodes(\n node,\n [].concat(callbackHandlers),\n nodesMap,\n targetMap,\n targetRefMap\n );\n }\n }\n }\n }\n}\n","import { cloneDeep, upperFirst } from \"lodash\";\nimport { normalizeBuilderNode } from \"@next-core/brick-utils\";\nimport { BuilderRouteOrBrickNode } from \"@next-core/brick-types\";\nimport { BuilderRuntimeNode } from \"../interfaces\";\nimport { isBrickNode } from \"../assertions\";\n\nconst nodeIgnoreFields = [\"parent\", \"children\", \"graphInfo\", \"mountPoint\"];\n\nexport function getBuilderNode(\n nodeData: BuilderRouteOrBrickNode,\n nodeUid: number,\n isTemplateInternalNode?: boolean\n): BuilderRuntimeNode {\n const matchedSelectors: string[] = [];\n\n if (nodeData.brick) {\n matchedSelectors.push((nodeData.brick as string).replace(/\\./g, \"\\\\.\"));\n }\n\n const normalized = normalizeBuilderNode(nodeData);\n\n const jsonFieldsInBrick = [\"properties\", \"events\", \"lifeCycle\"];\n const parsedFields: [string, unknown][] = [];\n\n for (const field of jsonFieldsInBrick) {\n const parsed = cloneDeep(\n (normalized as Record<string, unknown>)?.[field]\n ) as Record<string, unknown>;\n parsedFields.push([`$$parsed${upperFirst(field)}`, parsed ?? {}]);\n\n if (\n field === \"properties\" &&\n parsed?.id &&\n typeof parsed.id === \"string\" &&\n // Ignore evaluations and placeholders,\n // E.g.: `<% QUERY.x %>` or `${QUERY.x}`.\n !/[<{]/.test(parsed.id)\n ) {\n matchedSelectors.push(`#${parsed.id}`);\n }\n }\n\n return Object.fromEntries(\n Object.entries(nodeData)\n .filter((entry) => !nodeIgnoreFields.includes(entry[0]))\n .concat([\n [\n \"alias\",\n nodeData.alias ??\n (isBrickNode(nodeData)\n ? nodeData.brick.split(\".\").pop()\n : undefined),\n ],\n [\"$$uid\", nodeUid],\n [\"$$matchedSelectors\", matchedSelectors],\n [\"$$isTemplateInternalNode\", isTemplateInternalNode],\n [\"$$normalized\", normalized],\n ])\n .concat(parsedFields)\n ) as BuilderRuntimeNode;\n}\n","import { omit } from \"lodash\";\nimport EventTarget from \"@ungap/event-target\";\nimport {\n BuilderRouteOrBrickNode,\n BuilderRouteNode,\n Story,\n BuilderCustomTemplateNode,\n} from \"@next-core/brick-types\";\nimport { JsonStorage } from \"@next-core/brick-utils\";\nimport {\n AbstractBuilderDataManager,\n BuilderCanvasData,\n BuilderContextMenuStatus,\n BuilderRuntimeEdge,\n BuilderRuntimeNode,\n EventDetailOfNodeAdd,\n EventDetailOfNodeAddStored,\n EventDetailOfNodeMove,\n EventDetailOfNodeReorder,\n EventDetailOfContextUpdated,\n SnippetNodeDetail,\n EventDetailOfSnippetApply,\n EventDetailOfSnippetApplyStored,\n SharedEditorConf,\n BuilderDroppingStatus,\n} from \"../interfaces\";\nimport { getBuilderNode } from \"./getBuilderNode\";\nimport { getUniqueNodeId } from \"./getUniqueNodeId\";\nimport { reorderBuilderEdges } from \"./reorderBuilderEdges\";\nimport { deleteNodeFromTree } from \"./deleteNodeFromTree\";\nimport {\n getRelatedNodesBasedOnEvents,\n RelatedNodesBasedOnEventsMap,\n} from \"../processors/getRelatedNodesBasedOnEvents\";\nimport { expandTemplateEdges } from \"./expandTemplateEdges\";\nimport { getAppendingNodesAndEdges } from \"./getAppendingNodesAndEdges\";\nimport { isParentExpandableTemplate } from \"./isParentExpandableTemplate\";\n\nenum BuilderInternalEventType {\n NODE_ADD = \"builder.node.add\",\n NODE_MOVE = \"builder.node.move\",\n NODE_REORDER = \"builder.node.reorder\",\n NODE_CLICK = \"builder.node.click\",\n SNIPPET_APPLY = \"builder.snippet.apply\",\n CONTEXT_MENU_CHANGE = \"builder.contextMenu.change\",\n DATA_CHANGE = \"builder.data.change\",\n SHARED_EDITOR_LIST_CHANGE = \"builder.sharedEditorList.change\",\n ROUTE_LIST_CHANGE = \"builder.routeList.change\",\n HOVER_NODE_CHANGE = \"builder.hoverNode.change\",\n SHOW_RELATED_NODES_BASED_ON_EVENTS = \"builder.showRelatedNodesBasedOnEvents.change\",\n HIGHLIGHT_NODES_CHANGE = \"builder.highlightNodes.change\",\n OUTLINE_DISABLED_NODES_CHANGE = \"builder.outlineDisabledNodes.change\",\n DROPPING_STATUS_CHANGE = \"builder.droppingStatus.change\",\n}\n\nconst storageKeyOfOutlineDisabledNodes = \"builder-outline-disabled-nodes\";\n\nexport class BuilderDataManager implements AbstractBuilderDataManager {\n private data: BuilderCanvasData = {\n rootId: null,\n nodes: [],\n edges: [],\n };\n\n private hoverNodeUid: number;\n\n private sharedEditorList: SharedEditorConf[];\n\n private routeList: BuilderRouteNode[];\n\n private storyList: Story[];\n\n private readonly eventTarget = new EventTarget();\n\n private contextMenuStatus: BuilderContextMenuStatus = {\n active: false,\n };\n\n private showRelatedNodesBasedOnEvents: boolean;\n\n private relatedNodesBasedOnEventsMap: RelatedNodesBasedOnEventsMap;\n\n private highlightNodes: Set<number> = new Set();\n\n private templateSourceMap: Map<string, BuilderCustomTemplateNode>;\n\n private droppingStatus: BuilderDroppingStatus = new Map();\n\n private readonly localJsonStorage = new JsonStorage<{\n [storageKeyOfOutlineDisabledNodes]: string[];\n }>(localStorage);\n\n private readonly outlineDisabledNodes: Set<string> = new Set(\n this.localJsonStorage.getItem(storageKeyOfOutlineDisabledNodes) ?? []\n );\n\n getData(): BuilderCanvasData {\n return this.data;\n }\n\n getContextMenuStatus(): BuilderContextMenuStatus {\n return this.contextMenuStatus;\n }\n\n getRelatedNodesBasedOnEventsMap(): RelatedNodesBasedOnEventsMap {\n return this.relatedNodesBasedOnEventsMap;\n }\n\n sharedEditorListInit(data: SharedEditorConf[]): void {\n this.sharedEditorList = data;\n this.eventTarget.dispatchEvent(\n new CustomEvent(BuilderInternalEventType.SHARED_EDITOR_LIST_CHANGE)\n );\n }\n\n getSharedEditorList(): SharedEditorConf[] {\n return this.sharedEditorList ?? [];\n }\n\n onSharedEditorListChange(fn: EventListener): () => void {\n this.eventTarget.addEventListener(\n BuilderInternalEventType.SHARED_EDITOR_LIST_CHANGE,\n fn\n );\n return (): void => {\n this.eventTarget.removeEventListener(\n BuilderInternalEventType.SHARED_EDITOR_LIST_CHANGE,\n fn\n );\n };\n }\n\n routeListInit(data: BuilderRouteNode[]): void {\n this.routeList = data;\n this.eventTarget.dispatchEvent(\n new CustomEvent(BuilderInternalEventType.ROUTE_LIST_CHANGE)\n );\n }\n\n getRouteList(): BuilderRouteNode[] {\n return this.routeList ?? [];\n }\n\n storyListInit(data: Story[]): void {\n this.storyList = data;\n }\n\n getStoryList(): Story[] {\n return this.storyList;\n }\n\n onRouteListChange(fn: EventListener): () => void {\n this.eventTarget.addEventListener(\n BuilderInternalEventType.ROUTE_LIST_CHANGE,\n fn\n );\n return (): void => {\n this.eventTarget.removeEventListener(\n BuilderInternalEventType.ROUTE_LIST_CHANGE,\n fn\n );\n };\n }\n\n dataInit(\n root: BuilderRuntimeNode,\n templateSourceMap?: Map<string, BuilderCustomTemplateNode>\n ): void {\n this.templateSourceMap = templateSourceMap;\n const rootId = getUniqueNodeId();\n const newData = {\n rootId,\n ...getAppendingNodesAndEdges(root, rootId, templateSourceMap),\n };\n this.data = {\n ...newData,\n edges: expandTemplateEdges(newData),\n };\n this.triggerDataChange();\n }\n\n private triggerDataChange(): void {\n const { rootId, nodes } = this.data;\n const rootNode = nodes.find((node) => node.$$uid === rootId);\n const rootNodeIsCustomTemplate = rootNode.type === \"custom-template\";\n this.relatedNodesBasedOnEventsMap = getRelatedNodesBasedOnEvents(\n nodes,\n rootNodeIsCustomTemplate\n );\n this.eventTarget.dispatchEvent(\n new CustomEvent(BuilderInternalEventType.DATA_CHANGE)\n );\n }\n\n nodeAdd(detail: EventDetailOfNodeAdd): void {\n const { rootId, nodes, edges } = this.data;\n const { nodeUid, parentUid, nodeUids, nodeData } = detail;\n\n const { nodes: appendingNodes, edges: appendingEdges } =\n getAppendingNodesAndEdges(\n omit(nodeData, [\n \"parent\",\n ]) as Partial<BuilderRouteOrBrickNode> as BuilderRouteOrBrickNode,\n nodeUid,\n this.templateSourceMap\n );\n\n const newNodes = nodes.concat(appendingNodes);\n const newEdges = edges\n .concat({\n parent: parentUid,\n child: nodeUid,\n mountPoint: nodeData.mountPoint,\n sort: undefined,\n $$isTemplateDelegated: isParentExpandableTemplate(nodes, parentUid),\n })\n .concat(appendingEdges);\n\n const newData = {\n rootId,\n nodes: newNodes,\n edges: newEdges,\n };\n this.data = {\n ...newData,\n edges: reorderBuilderEdges(newData, {\n parentUid,\n nodeUids,\n }),\n };\n this.triggerDataChange();\n this.eventTarget.dispatchEvent(\n new CustomEvent(BuilderInternalEventType.NODE_ADD, { detail })\n );\n }\n\n nodeAddStored(detail: EventDetailOfNodeAddStored): void {\n const { rootId, nodes, edges } = this.data;\n const { nodeUid, nodeData } = detail;\n this.data = {\n rootId,\n nodes: nodes.map((node) =>\n node.$$uid === nodeUid\n ? { ...node, id: nodeData.id, instanceId: nodeData.instanceId }\n : node\n ),\n edges,\n };\n this.triggerDataChange();\n }\n\n snippetApply(detail: EventDetailOfSnippetApply): void {\n const { rootId, nodes, edges } = this.data;\n const { nodeDetails, parentUid, nodeUids } = detail;\n\n const newNodes: BuilderRuntimeNode[] = nodes.slice();\n const newEdges: BuilderRuntimeEdge[] = edges.slice();\n\n const walk = ({\n parentUid,\n nodeUid,\n nodeData,\n children,\n }: SnippetNodeDetail): void => {\n const { nodes: appendingNodes, edges: appendingEdges } =\n getAppendingNodesAndEdges(\n omit(nodeData, [\n \"parent\",\n ]) as Partial<BuilderRouteOrBrickNode> as BuilderRouteOrBrickNode,\n nodeUid,\n this.templateSourceMap\n );\n newNodes.push(...appendingNodes);\n newEdges.push(\n {\n parent: parentUid,\n child: nodeUid,\n mountPoint: nodeData.mountPoint,\n sort: nodeData.sort,\n $$isTemplateDelegated: isParentExpandableTemplate(\n newNodes,\n parentUid\n ),\n },\n ...appendingEdges\n );\n for (const item of children) {\n walk(item);\n }\n };\n\n for (const item of nodeDetails) {\n walk(item);\n }\n\n const newData = {\n rootId,\n nodes: newNodes,\n edges: newEdges,\n };\n this.data = {\n ...newData,\n edges: reorderBuilderEdges(newData, {\n parentUid,\n nodeUids,\n }),\n };\n this.triggerDataChange();\n this.eventTarget.dispatchEvent(\n new CustomEvent(BuilderInternalEventType.SNIPPET_APPLY, { detail })\n );\n }\n\n snippetApplyStored(detail: EventDetailOfSnippetApplyStored): void {\n const { rootId, nodes, edges } = this.data;\n const { flattenNodeDetails } = detail;\n this.data = {\n rootId,\n nodes: nodes.map((node) => {\n const found = flattenNodeDetails.find((n) => n.nodeUid === node.$$uid);\n return found\n ? {\n ...node,\n id: found.nodeData.id,\n instanceId: found.nodeData.instanceId,\n }\n : node;\n }),\n edges,\n };\n this.triggerDataChange();\n }\n\n nodeMove(detail: EventDetailOfNodeMove): void {\n const { rootId, nodes, edges } = this.data;\n const { nodeUid, parentUid, nodeUids, nodeData } = detail;\n const newData = {\n rootId,\n nodes,\n edges: edges\n .filter((edge) => edge.child !== nodeUid)\n .concat({\n parent: parentUid,\n child: nodeUid,\n mountPoint: nodeData.mountPoint,\n sort: undefined,\n $$isTemplateDelegated: isParentExpandableTemplate(nodes, parentUid),\n }),\n };\n this.data = {\n ...newData,\n edges: reorderBuilderEdges(newData, {\n parentUid,\n nodeUids,\n }),\n };\n this.triggerDataChange();\n this.eventTarget.dispatchEvent(\n new CustomEvent(BuilderInternalEventType.NODE_MOVE, { detail })\n );\n }\n\n contextUpdated(detail: EventDetailOfContextUpdated): void {\n const { rootId, nodes, edges } = this.data;\n this.data = {\n rootId,\n edges,\n nodes: nodes.map((node) =>\n node.$$uid === rootId ? { ...node, context: detail.context } : node\n ),\n };\n this.triggerDataChange();\n }\n\n nodeReorder(detail: EventDetailOfNodeReorder): void {\n const { nodeUids, parentUid } = detail;\n this.data = {\n ...this.data,\n edges: reorderBuilderEdges(this.data, { parentUid, nodeUids }),\n };\n this.triggerDataChange();\n this.eventTarget.dispatchEvent(\n new CustomEvent(BuilderInternalEventType.NODE_REORDER, { detail })\n );\n }\n\n nodeDelete(detail: BuilderRuntimeNode): void {\n this.data = deleteNodeFromTree(detail.$$uid, this.data);\n this.triggerDataChange();\n }\n\n nodeClick(detail: BuilderRuntimeNode): void {\n this.eventTarget.dispatchEvent(\n new CustomEvent(BuilderInternalEventType.NODE_CLICK, { detail })\n );\n }\n\n contextMenuChange(detail: BuilderContextMenuStatus): void {\n this.contextMenuStatus = detail;\n this.eventTarget.dispatchEvent(\n new CustomEvent(BuilderInternalEventType.CONTEXT_MENU_CHANGE)\n );\n }\n\n onDataChange(fn: EventListener): () => void {\n this.eventTarget.addEventListener(BuilderInternalEventType.DATA_CHANGE, fn);\n return (): void => {\n this.eventTarget.removeEventListener(\n BuilderInternalEventType.DATA_CHANGE,\n fn\n );\n };\n }\n\n onNodeAdd(\n fn: (event: CustomEvent<EventDetailOfNodeAdd>) => void\n ): () => void {\n this.eventTarget.addEventListener(\n BuilderInternalEventType.NODE_ADD,\n fn as EventListener\n );\n return (): void => {\n this.eventTarget.removeEventListener(\n BuilderInternalEventType.NODE_ADD,\n fn as EventListener\n );\n };\n }\n\n onSnippetApply(\n fn: (event: CustomEvent<EventDetailOfSnippetApply>) => void\n ): () => void {\n this.eventTarget.addEventListener(\n BuilderInternalEventType.SNIPPET_APPLY,\n fn as EventListener\n );\n return (): void => {\n this.eventTarget.removeEventListener(\n BuilderInternalEventType.SNIPPET_APPLY,\n fn as EventListener\n );\n };\n }\n\n onNodeReorder(\n fn: (event: CustomEvent<EventDetailOfNodeReorder>) => void\n ): () => void {\n this.eventTarget.addEventListener(\n BuilderInternalEventType.NODE_REORDER,\n fn as EventListener\n );\n return () => {\n this.eventTarget.removeEventListener(\n BuilderInternalEventType.NODE_REORDER,\n fn as EventListener\n );\n };\n }\n\n onNodeMove(\n fn: (event: CustomEvent<EventDetailOfNodeMove>) => void\n ): () => void {\n this.eventTarget.addEventListener(\n BuilderInternalEventType.NODE_MOVE,\n fn as EventListener\n );\n return () => {\n this.eventTarget.removeEventListener(\n BuilderInternalEventType.NODE_MOVE,\n fn as EventListener\n );\n };\n }\n\n onNodeClick(\n fn: (event: CustomEvent<BuilderRuntimeNode>) => void\n ): () => void {\n this.eventTarget.addEventListener(\n BuilderInternalEventType.NODE_CLICK,\n fn as EventListener\n );\n return () => {\n this.eventTarget.removeEventListener(\n BuilderInternalEventType.NODE_CLICK,\n fn as EventListener\n );\n };\n }\n\n onContextMenuChange(\n fn: (event: CustomEvent<BuilderContextMenuStatus>) => void\n ): () => void {\n this.eventTarget.addEventListener(\n BuilderInternalEventType.CONTEXT_MENU_CHANGE,\n fn as EventListener\n );\n return () => {\n this.eventTarget.removeEventListener(\n BuilderInternalEventType.CONTEXT_MENU_CHANGE,\n fn as EventListener\n );\n };\n }\n\n setShowRelatedNodesBasedOnEvents(show: boolean): void {\n this.showRelatedNodesBasedOnEvents = show;\n this.eventTarget.dispatchEvent(\n new CustomEvent(\n BuilderInternalEventType.SHOW_RELATED_NODES_BASED_ON_EVENTS\n )\n );\n }\n\n getShowRelatedNodesBasedOnEvents(): boolean {\n return this.showRelatedNodesBasedOnEvents;\n }\n\n onShowRelatedNodesBasedOnEventsChange(fn: EventListener): () => void {\n this.eventTarget.addEventListener(\n BuilderInternalEventType.SHOW_RELATED_NODES_BASED_ON_EVENTS,\n fn\n );\n return (): void => {\n this.eventTarget.removeEventListener(\n BuilderInternalEventType.SHOW_RELATED_NODES_BASED_ON_EVENTS,\n fn\n );\n };\n }\n\n setHoverNodeUid(uid: number): void {\n if (this.hoverNodeUid !== uid) {\n this.hoverNodeUid = uid;\n this.eventTarget.dispatchEvent(\n new CustomEvent(BuilderInternalEventType.HOVER_NODE_CHANGE)\n );\n }\n }\n\n getHoverNodeUid(): number {\n return this.hoverNodeUid;\n }\n\n onHoverNodeChange(fn: EventListener): () => void {\n this.eventTarget.addEventListener(\n BuilderInternalEventType.HOVER_NODE_CHANGE,\n fn\n );\n return (): void => {\n this.eventTarget.removeEventListener(\n BuilderInternalEventType.HOVER_NODE_CHANGE,\n fn\n );\n };\n }\n\n toggleOutline(nodeInstanceId: string): void {\n if (this.outlineDisabledNodes.has(nodeInstanceId)) {\n this.outlineDisabledNodes.delete(nodeInstanceId);\n } else {\n this.outlineDisabledNodes.add(nodeInstanceId);\n }\n this.localJsonStorage.setItem(\n storageKeyOfOutlineDisabledNodes,\n Array.from(this.outlineDisabledNodes)\n );\n this.eventTarget.dispatchEvent(\n new CustomEvent(BuilderInternalEventType.OUTLINE_DISABLED_NODES_CHANGE)\n );\n }\n\n isOutlineEnabled(nodeInstanceId: string): boolean {\n return !this.outlineDisabledNodes.has(nodeInstanceId);\n }\n\n onOutlineEnabledNodesChange(fn: EventListener): () => void {\n this.eventTarget.addEventListener(\n BuilderInternalEventType.OUTLINE_DISABLED_NODES_CHANGE,\n fn\n );\n return (): void => {\n this.eventTarget.removeEventListener(\n BuilderInternalEventType.OUTLINE_DISABLED_NODES_CHANGE,\n fn\n );\n };\n }\n\n setHighlightNodes(nodeUids: Set<number>): void {\n this.highlightNodes = nodeUids;\n this.eventTarget.dispatchEvent(\n new CustomEvent(BuilderInternalEventType.HIGHLIGHT_NODES_CHANGE)\n );\n }\n\n getHighlightNodes(): Set<number> {\n return this.highlightNodes;\n }\n\n onHighlightNodesChange(fn: EventListener): () => void {\n this.eventTarget.addEventListener(\n BuilderInternalEventType.HIGHLIGHT_NODES_CHANGE,\n fn\n );\n return (): void => {\n this.eventTarget.removeEventListener(\n BuilderInternalEventType.HIGHLIGHT_NODES_CHANGE,\n fn\n );\n };\n }\n\n updateDroppingStatus(\n nodeUid: number,\n mountPoint: string,\n isDraggingOver: boolean\n ): void {\n const nodeStatus = this.droppingStatus.get(nodeUid);\n this.droppingStatus = new Map(\n Array.from(this.droppingStatus.entries()).concat([\n [\n nodeUid,\n new Map(\n (nodeStatus ? Array.from(nodeStatus) : []).concat([\n [mountPoint, isDraggingOver],\n ])\n ),\n ],\n ])\n );\n this.eventTarget.dispatchEvent(\n new CustomEvent(BuilderInternalEventType.DROPPING_STATUS_CHANGE)\n );\n\n // When dragging nodes over `EditorContainer`, the `mouseout` events\n // are not triggered, which causes hover status does not get cleared.\n // So we manually reset hover status once dragging starts.\n if (\n this.hoverNodeUid &&\n Array.from(this.droppingStatus.values())\n .flatMap((nodeStatus) => Array.from(nodeStatus.values()))\n .some(Boolean)\n ) {\n this.setHoverNodeUid(undefined);\n }\n }\n\n getDroppingStatus(): BuilderDroppingStatus {\n return this.droppingStatus;\n }\n\n onDroppingStatusChange(fn: EventListener): () => void {\n this.eventTarget.addEventListener(\n BuilderInternalEventType.DROPPING_STATUS_CHANGE,\n fn\n );\n return (): void => {\n this.eventTarget.removeEventListener(\n BuilderInternalEventType.DROPPING_STATUS_CHANGE,\n fn\n );\n };\n }\n}\n","import { sortBy } from \"lodash\";\nimport { hasOwnProperty } from \"@next-core/brick-utils\";\nimport {\n BuilderRouteOrBrickNode,\n BuilderCustomTemplateNode,\n CustomTemplateProxyProperty,\n CustomTemplateProxyBasicProperty,\n} from \"@next-core/brick-types\";\nimport { BuilderRuntimeEdge, BuilderRuntimeNode } from \"../interfaces\";\nimport { getBuilderNode } from \"./getBuilderNode\";\nimport { getUniqueNodeId } from \"./getUniqueNodeId\";\nimport { isBrickNode } from \"../assertions\";\n\nexport function getAppendingNodesAndEdges(\n nodeData: BuilderRouteOrBrickNode,\n nodeUid: number,\n templateSourceMap: Map<string, BuilderCustomTemplateNode>\n): {\n nodes: BuilderRuntimeNode[];\n edges: BuilderRuntimeEdge[];\n} {\n const nodes: BuilderRuntimeNode[] = [];\n const edges: BuilderRuntimeEdge[] = [];\n const walk = (\n nodeData: BuilderRouteOrBrickNode,\n currentUid: number,\n processedTemplateSet: Set<string>,\n isTemplateInternalNode?: boolean,\n inheritedTemplateRefToUid?: Map<string, number>\n ): void => {\n const builderNode = getBuilderNode(\n nodeData,\n currentUid,\n isTemplateInternalNode\n );\n nodes.push(builderNode);\n\n if (inheritedTemplateRefToUid && builderNode.ref) {\n inheritedTemplateRefToUid.set(builderNode.ref as string, currentUid);\n }\n\n let templateSource: BuilderCustomTemplateNode;\n\n if (\n isBrickNode(builderNode) &&\n !builderNode.brick.includes(\".\") &&\n builderNode.brick.startsWith(\"tpl-\") &&\n !processedTemplateSet.has(builderNode.brick) &&\n (templateSource = templateSourceMap?.get(builderNode.brick)) &&\n templateSource.children?.length > 0\n ) {\n // Avoid nesting the same templates.\n processedTemplateSet.add(builderNode.brick);\n builderNode.$$isExpandableTemplate = true;\n builderNode.$$templateProxy =\n templateSource.proxy && JSON.parse(templateSource.proxy);\n const templateRefToUid = new Map<string, number>();\n builderNode.$$templateRefToUid = templateRefToUid;\n\n const sortedChildren = sortBy(templateSource.children, [\n (item) => item.sort ?? -Infinity,\n ]);\n sortedChildren.forEach((child, index) => {\n const childUid = getUniqueNodeId();\n walk(\n child,\n childUid,\n // Each child should be a branch.\n new Set(processedTemplateSet),\n true,\n templateRefToUid\n );\n edges.push({\n child: childUid,\n parent: currentUid,\n mountPoint: \"\",\n sort: index,\n $$isTemplateInternal: true,\n });\n });\n\n if (!builderNode.$$isTemplateInternalNode) {\n // Here all internal nodes of the template including nested templates are ready.\n const processDelegatingSlots = (\n cursorNode: BuilderRuntimeNode,\n mountPoint?: string,\n rootMountPoint?: string\n ): void => {\n if (cursorNode.$$templateProxy?.slots) {\n const slotEntries = Object.entries(\n cursorNode.$$templateProxy?.slots\n ).filter(\n (entry) => mountPoint === undefined || entry[0] === mountPoint\n );\n for (const [slotName, slotConf] of slotEntries) {\n const refUid = cursorNode.$$templateRefToUid.get(slotConf.ref);\n if (refUid) {\n const refNode = nodes.find((node) => node.$$uid === refUid);\n if (refNode.$$isExpandableTemplate) {\n processDelegatingSlots(refNode, slotConf.refSlot, slotName);\n } else {\n if (!refNode.$$delegatedSlots) {\n refNode.$$delegatedSlots = new Map();\n }\n let delegatedSlotsByRefSlot = refNode.$$delegatedSlots.get(\n slotConf.refSlot\n );\n if (!delegatedSlotsByRefSlot) {\n delegatedSlotsByRefSlot = [];\n refNode.$$delegatedSlots.set(\n slotConf.refSlot,\n delegatedSlotsByRefSlot\n );\n }\n delegatedSlotsByRefSlot.push({\n templateUid: builderNode.$$uid,\n templateMountPoint: rootMountPoint || slotName,\n });\n }\n }\n }\n }\n };\n processDelegatingSlots(builderNode);\n\n const processDelegatingProperties = (\n cursorNode: BuilderRuntimeNode,\n previousPropertyName?: string\n ): void => {\n if (cursorNode.$$templateProxy?.properties) {\n const propertyEntries = Object.entries(\n cursorNode.$$templateProxy?.properties\n ).filter(\n (entry) =>\n previousPropertyName === undefined ||\n entry[0] === previousPropertyName\n );\n for (const [propertyName, propertyConf] of propertyEntries) {\n if (\n hasOwnProperty(cursorNode.$$parsedProperties, propertyName) &&\n isBasicRefProperty(propertyConf)\n ) {\n const refUid = cursorNode.$$templateRefToUid.get(\n propertyConf.ref\n );\n const propertyValue =\n cursorNode.$$parsedProperties[propertyName];\n if (refUid) {\n const refNode = nodes.find((node) => node.$$uid === refUid);\n refNode.$$parsedProperties[propertyConf.refProperty] =\n propertyValue;\n if (refNode.$$isExpandableTemplate) {\n processDelegatingProperties(\n refNode,\n propertyConf.refProperty\n );\n }\n }\n }\n }\n }\n };\n processDelegatingProperties(builderNode);\n }\n }\n\n if (Array.isArray(nodeData.children)) {\n // For routes and custom-templates, their children are fixed\n // and mount points should be ignored. To unify tree edge\n // data structure, just override their mount points.\n let overrideChildrenMountPoint: string;\n switch (builderNode.type) {\n case \"bricks\":\n case \"custom-template\":\n overrideChildrenMountPoint = \"bricks\";\n break;\n case \"routes\":\n overrideChildrenMountPoint = \"routes\";\n break;\n }\n const sortedChildren = sortBy(nodeData.children, [\n (item) => item.sort ?? -Infinity,\n ]);\n sortedChildren.forEach((child, index) => {\n const childUid = getUniqueNodeId();\n walk(\n child,\n childUid,\n // Each child should be a branch.\n new Set(processedTemplateSet),\n isTemplateInternalNode,\n inheritedTemplateRefToUid\n );\n edges.push({\n child: childUid,\n parent: currentUid,\n mountPoint: overrideChildrenMountPoint ?? child.mountPoint,\n sort: index,\n $$isTemplateInternal: isTemplateInternalNode,\n $$isTemplateDelegated: builderNode.$$isExpandableTemplate,\n });\n });\n }\n };\n walk(nodeData, nodeUid, new Set());\n return {\n nodes,\n edges,\n };\n}\n\nexport function isBasicRefProperty(\n propRef: CustomTemplateProxyProperty\n): propRef is CustomTemplateProxyBasicProperty {\n return (\n !!(propRef as CustomTemplateProxyBasicProperty).ref &&\n !!(propRef as CustomTemplateProxyBasicProperty).refProperty\n );\n}\n","import { BuilderRuntimeNode } from \"../interfaces\";\n\nexport function isParentExpandableTemplate(\n nodes: BuilderRuntimeNode[],\n parentUid: number\n): boolean {\n return nodes.find((node) => node.$$uid === parentUid).$$isExpandableTemplate;\n}\n","import React from \"react\";\nimport { BuilderDataManager } from \"./internal/BuilderDataManager\";\n\nexport interface ContextOfBuilder {\n manager?: BuilderDataManager;\n}\n\nexport const BuilderContext = React.createContext<ContextOfBuilder>({});\n\nexport function createBuilderContext(): ContextOfBuilder {\n return {\n manager: new BuilderDataManager(),\n };\n}\n","import React from \"react\";\nimport { BuilderContext } from \"../BuilderContext\";\nimport { BuilderDataManager } from \"../internal/BuilderDataManager\";\n\nexport function useBuilderDataManager(): BuilderDataManager {\n const { manager } = React.useContext(BuilderContext);\n if (!manager) {\n throw new Error(\"Expected builder data context\");\n }\n return manager;\n}\n","import { useEffect, useState } from \"react\";\nimport { BuilderCanvasData } from \"../interfaces\";\nimport { useBuilderDataManager } from \"./useBuilderDataManager\";\n\nexport function useBuilderData(): BuilderCanvasData {\n const manager = useBuilderDataManager();\n const [data, setData] = useState(manager.getData());\n useEffect(\n () =>\n manager.onDataChange(() => {\n setData(manager.getData());\n }),\n [manager]\n );\n return data;\n}\n","import { useMemo } from \"react\";\nimport { BuilderRuntimeNode } from \"../interfaces\";\nimport { useBuilderData } from \"./useBuilderData\";\n\nexport function useBuilderNode<P = Record<string, unknown>>({\n nodeUid,\n isRoot,\n}: {\n nodeUid?: number;\n isRoot?: boolean;\n}): BuilderRuntimeNode<P> {\n const { rootId, nodes } = useBuilderData();\n const currentUid = isRoot ? rootId : nodeUid;\n return useMemo(\n () =>\n nodes.find((node) => node.$$uid === currentUid) as BuilderRuntimeNode<P>,\n [nodes, currentUid]\n );\n}\n","import { useEffect, useState } from \"react\";\nimport { BuilderContextMenuStatus } from \"../interfaces\";\nimport { useBuilderDataManager } from \"./useBuilderDataManager\";\n\nexport function useBuilderContextMenuStatus(): BuilderContextMenuStatus {\n const manager = useBuilderDataManager();\n const [status, setStatus] = useState(manager.getContextMenuStatus());\n useEffect(\n () =>\n manager.onContextMenuChange(() => {\n setStatus(manager.getContextMenuStatus());\n }),\n [manager]\n );\n return status;\n}\n","import { useEffect, useState } from \"react\";\nimport { useBuilderDataManager } from \"./useBuilderDataManager\";\n\nexport function useShowRelatedNodesBasedOnEvents(): boolean {\n const manager = useBuilderDataManager();\n const [data, setData] = useState(manager.getShowRelatedNodesBasedOnEvents());\n useEffect(\n () =>\n manager.onShowRelatedNodesBasedOnEventsChange(() => {\n setData(manager.getShowRelatedNodesBasedOnEvents());\n }),\n [manager]\n );\n return data;\n}\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import editorContainerStyles from \"./EditorContainer.module.css\";\n\nexport function isCurrentTargetByClassName(\n targetElement: HTMLElement,\n currentElement: HTMLElement\n): boolean {\n // Traverse DOM from bottom to top.\n let element = targetElement;\n while (element) {\n if (element === currentElement) {\n return true;\n }\n if (\n element.classList.contains(editorContainerStyles.editorContainer) &&\n !element.classList.contains(editorContainerStyles.isTemplateInternalNode)\n ) {\n // It's not the current target if\n // matches another editor container first.\n return false;\n }\n element = element.parentElement;\n }\n return false;\n}\n","import { useEffect, useState } from \"react\";\nimport { useBuilderDataManager } from \"./useBuilderDataManager\";\n\nexport function useHoverNodeUid(): number {\n const manager = useBuilderDataManager();\n const [data, setData] = useState(manager.getHoverNodeUid());\n useEffect(\n () =>\n manager.onHoverNodeChange(() => {\n setData(manager.getHoverNodeUid());\n }),\n [manager]\n );\n return data;\n}\n","import { useEffect, useState } from \"react\";\nimport { useBuilderDataManager } from \"./useBuilderDataManager\";\n\nexport function useHighlightNodes(): Set<number> {\n const manager = useBuilderDataManager();\n const [data, setData] = useState(manager.getHighlightNodes());\n useEffect(\n () =>\n manager.onHighlightNodesChange(() => {\n setData(manager.getHighlightNodes());\n }),\n [manager]\n );\n return data;\n}\n","import { useEffect, useState } from \"react\";\nimport { BuilderDroppingStatus } from \"../interfaces\";\nimport { useBuilderDataManager } from \"./useBuilderDataManager\";\n\nexport function useDroppingStatus(): BuilderDroppingStatus {\n const manager = useBuilderDataManager();\n const [droppingStatus, setDroppingStatus] = useState(\n manager.getDroppingStatus()\n );\n useEffect(\n () =>\n manager.onDroppingStatusChange(() => {\n setDroppingStatus(manager.getDroppingStatus());\n }),\n [manager]\n );\n return droppingStatus;\n}\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport classNames from \"classnames\";\nimport { EditorBrickType } from \"../interfaces\";\nimport { useBuilderNode } from \"../hooks/useBuilderNode\";\nimport { useBuilderDataManager } from \"../hooks/useBuilderDataManager\";\nimport { useBuilderContextMenuStatus } from \"../hooks/useBuilderContextMenuStatus\";\nimport { useShowRelatedNodesBasedOnEvents } from \"../hooks/useShowRelatedNodesBasedOnEvents\";\nimport { isCurrentTargetByClassName } from \"./isCurrentTargetByClassName\";\nimport { useHoverNodeUid } from \"../hooks/useHoverNodeUid\";\nimport { useHighlightNodes } from \"../hooks/useHighlightNodes\";\nimport { useDroppingStatus } from \"../hooks/useDroppingStatus\";\n\nimport styles from \"./EditorContainer.module.css\";\n\ninterface EditorContainerProps {\n nodeUid: number;\n type?: EditorBrickType;\n isTransparentContainer?: boolean;\n editorContainerStyle?: React.CSSProperties;\n editorBodyStyle?: React.CSSProperties;\n}\n\nexport function EditorContainer({\n nodeUid,\n type,\n isTransparentContainer,\n editorContainerStyle,\n editorBodyStyle,\n children,\n}: React.PropsWithChildren<EditorContainerProps>): React.ReactElement {\n const editorContainerRef = useRef<HTMLDivElement>();\n const highlightNodes = useHighlightNodes();\n const node = useBuilderNode({ nodeUid });\n const [isUpstreamNode, setIsUpstreamNode] = useState(false);\n const [isDownstreamNode, setIsDownstreamNode] = useState(false);\n const contextMenuStatus = useBuilderContextMenuStatus();\n const hoverNodeUid = useHoverNodeUid();\n const showRelatedEvents = useShowRelatedNodesBasedOnEvents();\n const manager = useBuilderDataManager();\n const [hover, setHover] = useState(hoverNodeUid === nodeUid);\n const editorType = type ?? EditorBrickType.DEFAULT;\n const hoverNodeUidRef = useRef(hoverNodeUid);\n const droppingStatus = useDroppingStatus();\n\n useEffect(() => {\n hoverNodeUidRef.current = hoverNodeUid;\n }, [hoverNodeUid]);\n\n const handleMouseOver = useCallback(\n (event: MouseEvent) => {\n event.stopPropagation();\n setHover(true);\n if (hoverNodeUidRef.current !== nodeUid) {\n manager.setHoverNodeUid(nodeUid);\n }\n },\n [nodeUid, manager]\n );\n\n const handleMouseOut = useCallback(\n (event: MouseEvent) => {\n event.stopPropagation();\n setHover(false);\n if (hoverNodeUidRef.current === nodeUid) {\n manager.setHoverNodeUid(undefined);\n }\n },\n [nodeUid, manager]\n );\n\n useEffect(() => {\n if (node.$$isTemplateInternalNode) {\n return;\n }\n // Manually bind listeners since events which cross custom-elements\n // seem not working in React v16.\n const editorContainer = editorContainerRef.current;\n editorContainer.addEventListener(\"mouseover\", handleMouseOver);\n editorContainer.addEventListener(\"mouseout\", handleMouseOut);\n return () => {\n editorContainer.removeEventListener(\"mouseover\", handleMouseOver);\n editorContainer.removeEventListener(\"mouseout\", handleMouseOut);\n };\n }, [handleMouseOver, handleMouseOut, node]);\n\n useEffect(() => {\n if (node.$$isTemplateInternalNode) {\n return;\n }\n setHover(hoverNodeUid === nodeUid);\n if (showRelatedEvents) {\n const relatedNodes = manager.getRelatedNodesBasedOnEventsMap();\n const isUpstreamNode = relatedNodes\n .get(hoverNodeUid)\n ?.upstreamNodes.has(nodeUid);\n setIsUpstreamNode(isUpstreamNode);\n const isDownstreamNode = relatedNodes\n .get(hoverNodeUid)\n ?.downstreamNodes.has(nodeUid);\n setIsDownstreamNode(isDownstreamNode);\n }\n }, [hoverNodeUid, node, nodeUid, showRelatedEvents, manager]);\n\n const isCurrentTarget = useCallback(\n (event: React.MouseEvent) =>\n !node.$$isTemplateInternalNode &&\n isCurrentTargetByClassName(\n event.target as HTMLElement,\n editorContainerRef.current\n ),\n [node]\n );\n\n const handleClick = useCallback(\n (event: React.MouseEvent) => {\n // `event.stopPropagation()` not working across bricks.\n if (isCurrentTarget(event)) {\n manager.nodeClick(node);\n }\n },\n [isCurrentTarget, manager, node]\n );\n\n const handleContextMenu = useCallback(\n (event: React.MouseEvent) => {\n // `event.stopPropagation()` not working across bricks.\n if (isCurrentTarget(event)) {\n event.preventDefault();\n manager.contextMenuChange({\n active: true,\n node,\n x: event.clientX,\n y: event.clientY,\n });\n }\n },\n [isCurrentTarget, manager, node]\n );\n\n return (\n <div\n className={classNames(styles.editorContainer, styles[editorType], {\n [styles.transparentContainer]: isTransparentContainer,\n [styles.dropping]: Array.from(\n droppingStatus.get(nodeUid)?.values() ?? []\n ).some(Boolean),\n [styles.hover]: hover,\n [styles.active]:\n contextMenuStatus.active && contextMenuStatus.node.$$uid === nodeUid,\n [styles.isDownstreamNode]: !hover && isDownstreamNode,\n [styles.isUpstreamNode]: !hover && isUpstreamNode,\n [styles.highlight]: highlightNodes.has(nodeUid),\n [styles.isTemplateInternalNode]: node.$$isTemplateInternalNode,\n })}\n style={editorContainerStyle}\n ref={editorContainerRef}\n onClick={handleClick}\n onContextMenu={handleContextMenu}\n >\n <div className={styles.nodeAlias}>\n {!hover &&\n (isDownstreamNode ? (\n <span className={styles.arrow}>↓</span>\n ) : isUpstreamNode ? (\n <span className={styles.arrow}>↑</span>\n ) : null)}\n {node.alias || node.brick}\n </div>\n <div className={styles.editorBody} style={editorBodyStyle}>\n {children}\n </div>\n </div>\n );\n}\n","import { developHelper } from \"@next-core/brick-kit\";\nimport { isBrickNode, isRouteNode } from \"../assertions\";\nimport { BuilderRuntimeNode } from \"../interfaces\";\n\nconst ANY_BRICK_EDITOR = \"basic-bricks.any-brick--editor\";\nconst ANY_ROUTE_EDITOR = \"basic-bricks.any-route--editor\";\n\n/**\n * Get editor brick name by node.\n *\n * @param node - Builder node.\n * @param editor - Using shared editor.\n *\n * @returns\n *\n * Returns editor brick name if the node is a brick, will fallback to `basic-bricks.any-brick--editor`\n * if the relevant editor brick is not found.\n *\n * Or returns `basic-bricks.any-route--editor` if the node is a route.\n *\n * And returns undefined if load failed.\n */\nexport async function getEditorBrick(\n node: BuilderRuntimeNode,\n editor?: string\n): Promise<string> {\n const tryEditorBricks: string[] = [];\n if (isRouteNode(node)) {\n tryEditorBricks.push(ANY_ROUTE_EDITOR);\n } else if (isBrickNode(node)) {\n if (node.brick.includes(\"-\")) {\n tryEditorBricks.push(`${node.brick}--editor`);\n }\n\n if (editor) {\n tryEditorBricks.push(editor);\n }\n\n tryEditorBricks.push(ANY_BRICK_EDITOR);\n } else {\n // Currently there should be no custom-template nodes to be rendered as editor.\n throw new Error(`Unsupported node type: ${node.type}`);\n }\n\n for (const editorBrick of tryEditorBricks) {\n try {\n await developHelper.loadEditorBricks([editorBrick]);\n } catch (error) {\n throw new Error(`Load editor brick \"${editorBrick}\" failed`);\n }\n if (customElements.get(editorBrick)) {\n return editorBrick;\n }\n }\n\n throw new Error(`Editor brick \"${tryEditorBricks.join(\", \")}\" not found`);\n}\n","import React, { useMemo } from \"react\";\nimport classNames from \"classnames\";\nimport { useDrag } from \"react-dnd\";\nimport { BrickAsComponent, getRuntime } from \"@next-core/brick-kit\";\nimport { UseBrickConf } from \"@next-core/brick-types\";\nimport { getEditorBrick } from \"./getEditorBrick\";\nimport {\n BuilderDataTransferType,\n BuilderRuntimeNode,\n EditorSelfLayout,\n EditorSlotContentLayout,\n} from \"../interfaces\";\nimport { EditorBrickElementConstructor } from \"../EditorElementFactory\";\nimport { useBuilderData } from \"../hooks/useBuilderData\";\nimport { useStoryList } from \"../hooks/useStoryList\";\nimport { getBrickDoc } from \"./getBrickDoc\";\nimport { useSharedEditorMap } from \"../hooks/useSharedEditorMap\";\nimport { isBrickNode } from \"../assertions\";\n\nimport styles from \"./EditorBrickAsComponent.module.css\";\n\ninterface EditorBrickAsComponentProps {\n node: BuilderRuntimeNode;\n slotContentLayout?: EditorSlotContentLayout;\n}\n\nexport function EditorBrickAsComponent({\n node,\n slotContentLayout,\n}: EditorBrickAsComponentProps): React.ReactElement {\n const [initialized, setInitialized] = React.useState(false);\n const [editorBrick, setEditorBrick] = React.useState<string>();\n const [loadEditorError, setLoadEditorError] = React.useState<string>();\n const { edges } = useBuilderData();\n const storyList = useStoryList();\n const hasChildren = React.useMemo(\n () => edges.some((edge) => edge.parent === node.$$uid),\n [node, edges]\n );\n\n const installedBricksEnabled = useMemo(\n () => getRuntime().getFeatureFlags()[\"next-builder-installed-bricks\"],\n []\n );\n\n const brickDoc = useMemo(\n () => (installedBricksEnabled ? null : getBrickDoc(node, storyList)),\n [installedBricksEnabled, node, storyList]\n );\n\n const editorMap = useSharedEditorMap();\n const editorConf = useMemo(\n () =>\n installedBricksEnabled && isBrickNode(node)\n ? editorMap.get(node.brick)\n : null,\n [editorMap, installedBricksEnabled, node]\n );\n\n React.useEffect(() => {\n (async () => {\n setInitialized(false);\n let editorName: string;\n let editorError: string;\n try {\n editorName = await getEditorBrick(\n node,\n installedBricksEnabled ? editorConf?.editor : brickDoc?.editor\n );\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n editorError = (error as Error).message;\n }\n setEditorBrick(editorName);\n setLoadEditorError(editorError);\n setInitialized(true);\n })();\n }, [brickDoc, editorConf, installedBricksEnabled, node]);\n\n const brickConf = React.useMemo<UseBrickConf>(\n () => ({\n brick: editorBrick,\n properties: {\n nodeUid: node.$$uid,\n editorProps: installedBricksEnabled\n ? editorConf?.editorProps\n : brickDoc?.editorProps,\n },\n }),\n [brickDoc, editorBrick, editorConf, installedBricksEnabled, node.$$uid]\n );\n\n const selfLayout = React.useMemo(() => {\n let layout: EditorSelfLayout;\n if (initialized && editorBrick) {\n const editorConstructor = customElements.get(\n editorBrick\n ) as EditorBrickElementConstructor;\n layout = editorConstructor.selfLayout;\n }\n // For bricks with no editors, display as a container if it has children.\n return (\n layout ??\n (hasChildren ? EditorSelfLayout.CONTAINER : EditorSelfLayout.INLINE)\n );\n }, [initialized, editorBrick, hasChildren]);\n\n const [{ isDragging }, dragRef] = useDrag({\n item: {\n type: BuilderDataTransferType.NODE_TO_MOVE,\n nodeUid: node.$$uid,\n nodeInstanceId: node.instanceId,\n nodeId: node.id,\n },\n options: {\n dropEffect: \"move\",\n },\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n }),\n });\n\n return initialized ? (\n editorBrick ? (\n <div\n className={classNames({\n [styles.slotContentLayoutBlock]:\n slotContentLayout === EditorSlotContentLayout.BLOCK,\n [styles.slotContentLayoutInline]:\n slotContentLayout === EditorSlotContentLayout.INLINE,\n // [styles.slotContentLayoutGrid]: slotContentLayout === EditorSlotContentLayout.GRID,\n [styles.selfLayoutInline]: selfLayout === EditorSelfLayout.INLINE,\n [styles.selfLayoutBlock]: selfLayout === EditorSelfLayout.BLOCK,\n [styles.selfLayoutContainer]:\n selfLayout === EditorSelfLayout.CONTAINER,\n [styles.dragging]: isDragging,\n __isTemplateInternalNode: node.$$isTemplateInternalNode,\n })}\n >\n <div\n ref={node.$$isTemplateInternalNode ? undefined : dragRef}\n draggable={!node.$$isTemplateInternalNode}\n className={classNames({\n [styles.baseView]:\n node.brick === \"basic-bricks.micro-view\" ||\n node.brick === \"basic-bricks.micro-app\" ||\n node.brick === \"basic-bricks.easy-view\",\n })}\n >\n <BrickAsComponent useBrick={brickConf} />\n </div>\n </div>\n ) : (\n <span>{loadEditorError}</span>\n )\n ) : (\n <span>Loading...</span>\n );\n}\n","import { useMemo } from \"react\";\nimport { useBuilderDataManager } from \"./useBuilderDataManager\";\nimport { Story } from \"@next-core/brick-types\";\n\nexport function useStoryList(): Story[] {\n const manager = useBuilderDataManager();\n const data = useMemo(() => manager.getStoryList(), [manager]);\n\n return data;\n}\n","import { BuilderRuntimeNode } from \"../interfaces\";\nimport { Story, StoryDoc } from \"@next-core/brick-types\";\n\nexport function getBrickDoc(\n node: BuilderRuntimeNode,\n storyList: Story[]\n): StoryDoc {\n const find = storyList?.find((item) => item.storyId === node.brick);\n\n return find?.doc as StoryDoc;\n}\n","import { useCallback, useEffect, useState } from \"react\";\nimport { useBuilderDataManager } from \"./useBuilderDataManager\";\nimport { SharedEditorConf } from \"../interfaces\";\n\nexport function useSharedEditorMap(): Map<string, SharedEditorConf> {\n const manager = useBuilderDataManager();\n\n const getSharedEditorMap = useCallback(\n (): Map<string, SharedEditorConf> =>\n new Map(manager.getSharedEditorList().map((conf) => [conf.id, conf])),\n [manager]\n );\n\n const [data, setData] = useState(getSharedEditorMap());\n\n useEffect(\n () =>\n manager.onSharedEditorListChange(() => {\n setData(getSharedEditorMap());\n }),\n [getSharedEditorMap, manager]\n );\n\n return data;\n}\n","import { useMemo } from \"react\";\nimport { sortBy } from \"lodash\";\nimport {\n BuilderGroupedChildNode,\n BuilderRuntimeEdge,\n BuilderRuntimeNode,\n} from \"../interfaces\";\nimport { useBuilderData } from \"./useBuilderData\";\n\nexport function useBuilderGroupedChildNodes({\n nodeUid,\n isRoot,\n doNotExpandTemplates,\n}: {\n nodeUid?: number;\n isRoot?: boolean;\n doNotExpandTemplates?: boolean;\n}): BuilderGroupedChildNode[] {\n const { rootId, nodes, edges } = useBuilderData();\n return useMemo(\n () =>\n getBuilderGroupedChildNodes({\n nodes,\n edges,\n nodeUid: isRoot ? rootId : nodeUid,\n doNotExpandTemplates,\n }),\n [doNotExpandTemplates, edges, isRoot, nodeUid, nodes, rootId]\n );\n}\n\nexport function getBuilderGroupedChildNodes({\n nodeUid,\n nodes,\n edges,\n doNotExpandTemplates,\n}: {\n nodeUid: number;\n nodes: BuilderRuntimeNode[];\n edges: BuilderRuntimeEdge[];\n doNotExpandTemplates?: boolean;\n}): BuilderGroupedChildNode[] {\n const groups = new Map<string, BuilderRuntimeNode[]>();\n const relatedEdges = sortBy(\n edges.filter(\n (edge) =>\n edge.parent === nodeUid &&\n (doNotExpandTemplates\n ? !edge.$$isTemplateInternal\n : !edge.$$isTemplateDelegated)\n ),\n [(edge) => edge.sort]\n );\n for (const edge of relatedEdges) {\n const childNode = nodes.find((node) => node.$$uid === edge.child);\n if (groups.has(edge.mountPoint)) {\n groups.get(edge.mountPoint).push(childNode);\n } else {\n groups.set(edge.mountPoint, [childNode]);\n }\n }\n return Array.from(groups.entries()).map(([mountPoint, childNodes]) => ({\n mountPoint,\n childNodes,\n }));\n}\n","import { useCallback } from \"react\";\nimport { useBuilderData } from \"./useBuilderData\";\n\nexport type CanDrop = (draggingUid: number, nodeUid: number) => boolean;\n\n/**\n * Returns whether the current dragging node can be dropped\n * in specific node.\n *\n * This is useful for checking available drop zone and preventing\n * dragging a node into its internal mount points.\n */\nexport function useCanDrop(): CanDrop {\n const { edges } = useBuilderData();\n return useCallback(\n (draggingUid: number, nodeUid: number) => {\n const traverse = (parentId: number): boolean => {\n if (parentId === nodeUid) {\n return false;\n }\n return !edges.some((edge) => {\n if (edge.parent === parentId) {\n return !traverse(edge.child);\n }\n return false;\n });\n };\n return traverse(draggingUid);\n },\n [edges]\n );\n}\n","/* istanbul-ignore-file */\n// Todo(steve): Ignore tests temporarily for potential breaking change in the future.\nexport interface DropPosition {\n rect: DropPositionRect;\n cursor: DropPositionCursor;\n}\n\nexport interface DropPositionRect {\n top: number;\n bottom: number;\n left: number;\n right: number;\n}\n\nexport interface DropPositionCursor {\n index: number;\n y: number;\n isVertical?: boolean;\n x?: number;\n height?: number;\n}\n\nexport interface DropGridRow {\n cells: DropGridCell[];\n top?: number;\n bottom?: number;\n // isInline?: boolean;\n}\n\nexport interface DropGridCell extends DropPositionRect {\n index: number;\n}\n\nconst defaultGapHalf = 6;\n\nexport function getDropPositions(\n dropZone: HTMLElement,\n dropZoneGrid: HTMLElement\n): DropPosition[] {\n const zoneRect = dropZone.getBoundingClientRect();\n // const gridRect = dropZoneGrid.getBoundingClientRect();\n const positions: DropPosition[] = [];\n const gridItemList = Array.from(dropZoneGrid.children).filter(\n (item) => !item.classList.contains(\"__isTemplateInternalNode\")\n );\n if (gridItemList.length > 0) {\n let currentRow: DropGridRow = {\n cells: [],\n };\n const rows: DropGridRow[] = [currentRow];\n gridItemList.forEach((gridItem, index) => {\n const rect = gridItem.getBoundingClientRect();\n const cell: DropGridCell = {\n index,\n top: rect.top,\n bottom: rect.bottom,\n left: rect.left,\n right: rect.right,\n };\n const prevCell =\n currentRow.cells.length > 0 &&\n currentRow.cells[currentRow.cells.length - 1];\n if (\n !prevCell ||\n (compareApproximately(rect.left, prevCell.right) > 0 &&\n compareApproximately(rect.top, prevCell.bottom) < 0)\n ) {\n currentRow.cells.push(cell);\n currentRow.top = Math.min(currentRow.top ?? Infinity, rect.top);\n currentRow.bottom = Math.max(\n currentRow.bottom ?? -Infinity,\n rect.bottom\n );\n } else {\n currentRow = {\n cells: [cell],\n top: rect.top,\n bottom: rect.bottom,\n };\n rows.push(currentRow);\n }\n });\n // console.log(rows);\n\n let lastRectBottom = zoneRect.top;\n let nextCursorTop = zoneRect.top;\n rows.forEach((row, rowIndex) => {\n if (row.cells.length === 1) {\n const cell = row.cells[0];\n const rectBottom = (cell.top + cell.bottom) / 2;\n positions.push({\n rect: {\n top: lastRectBottom,\n bottom: rectBottom,\n left: zoneRect.left,\n right: zoneRect.right,\n },\n cursor: {\n index: cell.index,\n y: (nextCursorTop + cell.top) / 2 - zoneRect.top,\n },\n });\n lastRectBottom = rectBottom;\n nextCursorTop = cell.bottom;\n\n // Append one more insert position after reached the end.\n if (rowIndex === rows.length - 1) {\n positions.push({\n rect: {\n top: lastRectBottom,\n bottom: zoneRect.bottom,\n left: zoneRect.left,\n right: zoneRect.right,\n },\n cursor: {\n index: cell.index + 1,\n y:\n Math.min(\n cell.bottom + defaultGapHalf,\n (cell.bottom + zoneRect.bottom) / 2\n ) - zoneRect.top,\n },\n });\n } else if (rows[rowIndex + 1].cells.length > 1) {\n const nextRow = rows[rowIndex + 1];\n const rectBottom = (cell.bottom + nextRow.top) / 2;\n positions.push({\n rect: {\n top: lastRectBottom,\n bottom: rectBottom,\n left: zoneRect.left,\n right: zoneRect.right,\n },\n cursor: {\n index: cell.index + 1,\n y: rectBottom - zoneRect.top,\n },\n });\n lastRectBottom = rectBottom;\n }\n } else {\n let lastRectRight = zoneRect.left;\n let nextCursorLeft = zoneRect.left;\n const rectBottom =\n rowIndex < rows.length - 1\n ? (rows[rowIndex + 1].top + row.bottom) / 2\n : zoneRect.bottom;\n const cursorDefault: Pick<\n DropPositionCursor,\n \"isVertical\" | \"y\" | \"height\"\n > = {\n isVertical: true,\n y: row.top - zoneRect.top,\n height: row.bottom - row.top,\n };\n row.cells.forEach((cell, cellIndex) => {\n const rectRight = (cell.left + cell.right) / 2;\n positions.push({\n rect: {\n top: lastRectBottom,\n bottom: rectBottom,\n left: lastRectRight,\n right: rectRight,\n },\n cursor: {\n ...cursorDefault,\n index: cell.index,\n x: (nextCursorLeft + cell.left) / 2 - zoneRect.left,\n },\n });\n lastRectRight = rectRight;\n nextCursorLeft = cell.right;\n\n // Append one more insert position after reached the row end.\n if (cellIndex === row.cells.length - 1) {\n if (rowIndex === rows.length - 1) {\n positions.push({\n rect: {\n top: lastRectBottom,\n bottom: zoneRect.bottom,\n left: lastRectRight,\n right: zoneRect.right,\n },\n cursor: {\n ...cursorDefault,\n index: cell.index + 1,\n x:\n Math.min(nextCursorLeft + defaultGapHalf, zoneRect.right) -\n zoneRect.left,\n },\n });\n } else {\n positions.push({\n rect: {\n top: lastRectBottom,\n bottom: rectBottom,\n left: lastRectRight,\n right: zoneRect.right,\n },\n cursor: {\n ...cursorDefault,\n index: cell.index + 1,\n x:\n Math.min(nextCursorLeft + defaultGapHalf, zoneRect.right) -\n zoneRect.left,\n },\n });\n }\n }\n });\n lastRectBottom = rectBottom;\n nextCursorTop = row.bottom;\n }\n });\n }\n return positions;\n}\n\nexport function getDropPosition(\n x: number,\n y: number,\n dropZone: HTMLElement,\n dropZoneGrid: HTMLElement\n): DropPositionCursor {\n const positions = getDropPositions(dropZone, dropZoneGrid);\n for (const { rect, cursor } of positions) {\n if (\n x >= rect.left &&\n x <= rect.right &&\n y >= rect.top &&\n y <= rect.bottom\n ) {\n // console.log((event.target as HTMLElement).tagName, cursor.isVertical, cursor.index);\n return cursor;\n }\n }\n\n return {\n index: 0,\n y: 5,\n };\n}\n\nfunction compareApproximately(a: number, b: number): number {\n const diff = a - b;\n return Math.abs(diff) < 1 ? 0 : diff;\n}\n","import { BuilderGroupedChildNode } from \"../interfaces\";\n\nexport interface SortedIdsAfterDropped {\n nodeUids: number[];\n nodeIds: string[];\n}\n\nexport interface DroppingInfo {\n draggingNodeUid: number | number[];\n draggingNodeId: string | null;\n draggingIndex?: number;\n droppingMountPoint: string;\n droppingSiblingGroups: BuilderGroupedChildNode[];\n droppingIndex: number;\n}\n\n/**\n * Get sorted uids and ids of all children of the dropping parent node.\n *\n * @remark\n *\n * When dropping a node from library (add a node) or from a position\n * to a new position (move a node), we only reorder the children of\n * the dropping mount point. But the reorder API requires to reorder\n * all the children of the dropping parent, which maybe across multiple\n * mount points. So we also keep the original order among sibling mount\n * points at the same time.\n *\n * `draggingNodeId` will be `null` when adding a node.\n *\n * Params `droppingInfo.droppingIndex` and `droppingInfo.draggingIndex`\n * is relative to the belonged mount point.\n *\n * And `droppingInfo.draggingIndex` is required when moving a node\n * inside a mount point.\n *\n * ```\n * ▸ micro-view\n * ├ toolbar\n * │ │ ←─ [0]\n * │ ├ button-a <0>\n * │ │ ←─ [1]\n * │ └ input-b <1>\n * │ ←─ [2]\n * └ content\n * │ ←─ [0]\n * ├ table-a <0>\n * │ ←─ [1]\n * ├ grid-b <1>\n * │ ←─ [2]\n * └ tabs-c <2>\n * ←─ [3]\n * <m>: draggingIndex\n * [n]: droppingIndex\n * ```\n *\n * @param droppingInfo - Dropping info.\n *\n * @returns Both sorted uids and ids.\n */\nexport function getSortedIdsAfterDropped(\n droppingInfo: DroppingInfo\n): SortedIdsAfterDropped {\n const {\n draggingNodeUid,\n draggingNodeId,\n draggingIndex,\n droppingMountPoint,\n droppingSiblingGroups,\n droppingIndex,\n } = droppingInfo;\n // When applying a snippet, the dragging nodes will be an array.\n const draggingNodeUids = Array.isArray(draggingNodeUid)\n ? draggingNodeUid\n : [draggingNodeUid];\n const fullChildNodes = droppingSiblingGroups.flatMap(\n (group) => group.childNodes\n );\n const nodeUids = droppingSiblingGroups.flatMap((group) => {\n const uids = group.childNodes\n .map((item) => item.$$uid)\n .filter((uid) => !draggingNodeUids.includes(uid));\n if (group.mountPoint === droppingMountPoint) {\n uids.splice(\n (draggingIndex ?? -1) >= 0 && droppingIndex > draggingIndex\n ? droppingIndex - 1\n : droppingIndex,\n 0,\n ...draggingNodeUids\n );\n }\n return uids;\n });\n const nodeIds = nodeUids.map((uid) =>\n draggingNodeUids.includes(uid)\n ? draggingNodeId\n : fullChildNodes.find((item) => item.$$uid === uid).id\n );\n return { nodeUids, nodeIds };\n}\n","import yaml from \"js-yaml\";\nimport { BrickConf } from \"@next-core/brick-types\";\nimport { SnippetNodeInstance } from \"../interfaces\";\n\nconst jsonFieldsInBrick = [\n \"properties\",\n \"events\",\n \"lifeCycle\",\n \"params\",\n \"if\",\n \"transform\",\n];\nconst yamlFieldsInBrick = [\"permissionsPreCheck\", \"transformFrom\"];\nconst ignoredFieldsInBrick = [\n \"brick\",\n \"template\",\n \"portal\",\n \"slots\",\n \"id\",\n \"children\",\n \"instanceId\",\n];\n\nexport interface ReverseNormalizeContext {\n isPortalCanvas: boolean;\n nodeData: {\n type: \"brick\" | \"template\" | \"provider\";\n parent: string;\n mountPoint: string;\n sort: number;\n };\n}\n\n// The reverse operation of *normalize*.\n// https://github.com/easyops-cn/next-basics/blob/5a6710d567821bcb4a0c71e22d55212193d8b0cb/bricks/next-builder/src/shared/storyboard/buildStoryboard.ts#L394\nexport function reverseNormalize(\n brickConf: BrickConf,\n ctx: ReverseNormalizeContext\n): SnippetNodeInstance {\n return Object.fromEntries(\n Object.entries(brickConf)\n .map<[string, unknown]>(([key, value]) =>\n value === undefined || ignoredFieldsInBrick.includes(key)\n ? undefined\n : jsonFieldsInBrick.includes(key)\n ? [key, JSON.stringify(value)]\n : yamlFieldsInBrick.includes(key)\n ? [key, yaml.safeDump(value)]\n : [key, value]\n )\n .filter(Boolean)\n .concat(Object.entries(ctx.nodeData), [\n [\n \"brick\",\n ctx.nodeData.type === \"template\"\n ? brickConf.template\n : brickConf.brick,\n ],\n [\"portal\", ctx.isPortalCanvas || brickConf.portal],\n ])\n ) as SnippetNodeInstance;\n}\n","import {\n BuilderDataTransferPayloadOfNodeToAdd,\n BuilderDataTransferPayloadOfNodeToMove,\n BuilderDataTransferPayloadOfSnippetToApply,\n BuilderDataTransferType,\n BuilderGroupedChildNode,\n BuilderRuntimeNode,\n} from \"../interfaces\";\nimport { BuilderDataManager } from \"../internal/BuilderDataManager\";\nimport { getUniqueNodeId } from \"../internal/getUniqueNodeId\";\nimport { getSortedIdsAfterDropped } from \"../processors/getSortedIdsAfterDropped\";\nimport { getSnippetNodeDetail } from \"./getSnippetNodeDetail\";\n\nexport interface HandleDropParams {\n manager: BuilderDataManager;\n type: BuilderDataTransferType;\n data:\n | BuilderDataTransferPayloadOfNodeToAdd\n | BuilderDataTransferPayloadOfNodeToMove\n | BuilderDataTransferPayloadOfSnippetToApply;\n droppingIndex: number;\n droppingParentUid: number;\n droppingParentInstanceId: string;\n droppingMountPoint: string;\n droppingChildNodes: BuilderRuntimeNode[];\n droppingSiblingGroups: BuilderGroupedChildNode[];\n isPortalCanvas?: boolean;\n}\n\nexport function processDrop({\n manager,\n type,\n data,\n droppingIndex,\n droppingParentUid,\n droppingParentInstanceId,\n droppingMountPoint,\n droppingChildNodes,\n droppingSiblingGroups,\n isPortalCanvas,\n}: HandleDropParams): void {\n if (type === BuilderDataTransferType.NODE_TO_ADD) {\n // Drag a new node into canvas.\n const { brickType = \"brick\", brick } =\n data as BuilderDataTransferPayloadOfNodeToAdd;\n const draggingNodeUid = getUniqueNodeId();\n manager.nodeAdd({\n ...getSortedIdsAfterDropped({\n draggingNodeUid,\n draggingNodeId: null,\n droppingIndex,\n droppingMountPoint,\n droppingSiblingGroups,\n }),\n nodeUid: draggingNodeUid,\n parentUid: droppingParentUid,\n nodeData: {\n parent: droppingParentInstanceId,\n type: brickType,\n brick,\n mountPoint: droppingMountPoint,\n bg: !isPortalCanvas && brickType === \"provider\" ? true : undefined,\n portal: isPortalCanvas,\n },\n });\n } else if (type === BuilderDataTransferType.SNIPPET_TO_APPLY) {\n const { bricks } = data as BuilderDataTransferPayloadOfSnippetToApply;\n // https://stackoverflow.com/questions/5501581/javascript-new-arrayn-and-array-prototype-map-weirdness\n const draggingNodeUids = [...new Array(bricks.length)].map(() =>\n getUniqueNodeId()\n );\n manager.snippetApply({\n ...getSortedIdsAfterDropped({\n draggingNodeUid: draggingNodeUids,\n draggingNodeId: null,\n droppingIndex,\n droppingMountPoint,\n droppingSiblingGroups,\n }),\n parentUid: droppingParentUid,\n nodeDetails: bricks.map((brickConf, index) =>\n getSnippetNodeDetail({\n parent: droppingParentInstanceId,\n parentUid: droppingParentUid,\n mountPoint: droppingMountPoint,\n nodeUid: draggingNodeUids[index],\n brickConf,\n isPortalCanvas,\n })\n ),\n });\n } else if (type === BuilderDataTransferType.NODE_TO_MOVE) {\n const {\n nodeUid: draggingNodeUid,\n nodeId: draggingNodeId,\n nodeInstanceId: draggingNodeInstanceId,\n } = data as BuilderDataTransferPayloadOfNodeToMove;\n\n const draggingIndex = droppingChildNodes.findIndex(\n (item) => item.$$uid === draggingNodeUid\n );\n // If found dragging node in the same drop zone,\n // then apply a node reorder, otherwise apply a node move.\n if (draggingIndex >= 0) {\n // If the index is not changed, then there is nothing to do.\n if (\n droppingIndex !== draggingIndex &&\n droppingIndex !== draggingIndex + 1\n ) {\n manager.nodeReorder({\n ...getSortedIdsAfterDropped({\n draggingNodeUid,\n draggingNodeId,\n draggingIndex,\n droppingIndex,\n droppingMountPoint,\n droppingSiblingGroups,\n }),\n parentUid: droppingParentUid,\n });\n }\n } else {\n manager.nodeMove({\n ...getSortedIdsAfterDropped({\n draggingNodeUid,\n draggingNodeId,\n droppingIndex,\n droppingMountPoint,\n droppingSiblingGroups,\n }),\n nodeUid: draggingNodeUid,\n parentUid: droppingParentUid,\n nodeInstanceId: draggingNodeInstanceId,\n nodeData: {\n parent: droppingParentInstanceId,\n mountPoint: droppingMountPoint,\n },\n });\n }\n }\n}\n","import { BrickConf, SlotConfOfBricks } from \"@next-core/brick-types\";\nimport { SnippetNodeDetail } from \"../interfaces\";\nimport { getUniqueNodeId } from \"../internal/getUniqueNodeId\";\nimport { reverseNormalize } from \"./reverseNormalize\";\n\nexport function getSnippetNodeDetail({\n parent,\n parentUid,\n mountPoint,\n nodeUid,\n brickConf,\n isPortalCanvas,\n sort,\n}: {\n parent?: string;\n parentUid: number;\n mountPoint: string;\n nodeUid: number;\n brickConf: BrickConf;\n isPortalCanvas?: boolean;\n sort?: number;\n}): SnippetNodeDetail {\n const type = brickConf.template\n ? \"template\"\n : brickConf.bg\n ? \"provider\"\n : \"brick\";\n\n return {\n nodeUid,\n parentUid,\n nodeData: reverseNormalize(brickConf, {\n isPortalCanvas,\n nodeData: {\n type,\n parent,\n mountPoint,\n sort,\n },\n }),\n children: brickConf.slots\n ? Object.entries(brickConf.slots)\n .flatMap(([mountPoint, slotConf]) =>\n (slotConf as SlotConfOfBricks).bricks.map((childBrickConf) => ({\n childBrickConf,\n mountPoint,\n }))\n )\n .map(({ childBrickConf, mountPoint }, index) =>\n getSnippetNodeDetail({\n parentUid: nodeUid,\n mountPoint,\n nodeUid: getUniqueNodeId(),\n brickConf: childBrickConf,\n sort: index,\n })\n )\n : [],\n };\n}\n","import { useMemo } from \"react\";\nimport { BuilderRuntimeNode } from \"../interfaces\";\n\nexport function useCanvasList(\n rootChildNodes: BuilderRuntimeNode[]\n): BuilderRuntimeNode[][] {\n return useMemo(() => {\n const mainCanvas: BuilderRuntimeNode[] = [];\n const portalCanvasList: BuilderRuntimeNode[][] = [];\n for (const child of rootChildNodes) {\n if (child.portal) {\n portalCanvasList.push([child]);\n } else {\n mainCanvas.push(child);\n }\n }\n return [mainCanvas, ...portalCanvasList, []];\n }, [rootChildNodes]);\n}\n","/* istanbul-ignore-file */\n// Todo(steve): Ignore tests temporarily for potential breaking change in the future.\nimport React from \"react\";\nimport { clamp } from \"lodash\";\nimport classNames from \"classnames\";\nimport { DragObjectWithType, useDrop } from \"react-dnd\";\nimport { EditorBrickAsComponent } from \"../EditorBrickAsComponent/EditorBrickAsComponent\";\nimport {\n BuilderCanvasSettings,\n BuilderDataTransferPayloadOfNodeToAdd,\n BuilderDataTransferPayloadOfNodeToMove,\n BuilderDataTransferType,\n BuilderGroupedChildNode,\n BuilderRuntimeNode,\n EditorSlotContentLayout,\n TemplateDelegatedContext,\n} from \"../interfaces\";\nimport { useBuilderNode } from \"../hooks/useBuilderNode\";\nimport {\n getBuilderGroupedChildNodes,\n useBuilderGroupedChildNodes,\n} from \"../hooks/useBuilderGroupedChildNodes\";\nimport { useCanDrop } from \"../hooks/useCanDrop\";\nimport { DropPositionCursor, getDropPosition } from \"./getDropPosition\";\nimport { processDrop } from \"./processDrop\";\nimport { useBuilderDataManager } from \"../hooks/useBuilderDataManager\";\nimport { useCanvasList } from \"../hooks/useCanvasList\";\nimport { useBuilderData } from \"../hooks/useBuilderData\";\nimport { useBuilderContextMenuStatus } from \"../hooks/useBuilderContextMenuStatus\";\nimport { isCurrentTargetByClassName } from \"../EditorContainer/isCurrentTargetByClassName\";\n\nimport styles from \"./DropZone.module.css\";\n\nexport interface DropZoneProps {\n nodeUid?: number;\n isRoot?: boolean;\n separateCanvas?: boolean;\n isPortalCanvas?: boolean;\n independentPortalCanvas?: boolean;\n canvasIndex?: number;\n mountPoint: string;\n fullscreen?: boolean;\n delegatedContext?: TemplateDelegatedContext;\n dropZoneStyle?: React.CSSProperties;\n dropZoneBodyStyle?: React.CSSProperties;\n slotContentLayout?: EditorSlotContentLayout;\n showOutlineIfEmpty?: boolean;\n}\n\nexport interface DroppingContext {\n droppingParentUid: number;\n droppingParentInstanceId: string;\n droppingMountPoint: string;\n droppingChildNodes: BuilderRuntimeNode[];\n droppingSiblingGroups: BuilderGroupedChildNode[];\n}\n\nexport function DropZone({\n nodeUid,\n isRoot,\n separateCanvas,\n isPortalCanvas,\n independentPortalCanvas,\n canvasIndex,\n mountPoint,\n fullscreen,\n delegatedContext,\n dropZoneStyle,\n dropZoneBodyStyle,\n slotContentLayout,\n showOutlineIfEmpty,\n}: DropZoneProps): React.ReactElement {\n const dropZoneBody = React.useRef<HTMLDivElement>();\n const [dropPositionCursor, setDropPositionCursor] =\n React.useState<DropPositionCursor>(null);\n const dropPositionCursorRef = React.useRef<DropPositionCursor>();\n const contextMenuStatus = useBuilderContextMenuStatus();\n const manager = useBuilderDataManager();\n const node = useBuilderNode({ nodeUid, isRoot });\n const groupedChildNodes = useBuilderGroupedChildNodes({\n nodeUid,\n isRoot,\n });\n\n const isGeneralizedPortalCanvas = independentPortalCanvas\n ? canvasIndex > 0\n : isPortalCanvas;\n const hasTabs = separateCanvas || independentPortalCanvas;\n\n const canDrop = useCanDrop();\n const refinedSlotContentLayout =\n slotContentLayout ?? EditorSlotContentLayout.BLOCK;\n\n const selfChildNodes = React.useMemo(\n () =>\n groupedChildNodes.find((group) => group.mountPoint === mountPoint)\n ?.childNodes ?? [],\n [groupedChildNodes, mountPoint]\n );\n\n const canvasList = useCanvasList(selfChildNodes);\n\n const selfChildNodesInCurrentCanvas = React.useMemo(\n () =>\n separateCanvas\n ? selfChildNodes.filter((child) =>\n Boolean(Number(Boolean(isPortalCanvas)) ^ Number(!child.portal))\n )\n : independentPortalCanvas\n ? canvasList[clamp(canvasIndex ?? 0, 0, canvasList.length - 1)]\n : selfChildNodes,\n [\n canvasIndex,\n independentPortalCanvas,\n isPortalCanvas,\n selfChildNodes,\n canvasList,\n separateCanvas,\n ]\n );\n\n const canvasSettings = React.useMemo(\n () =>\n selfChildNodesInCurrentCanvas[0]?.$$parsedProperties\n ._canvas_ as BuilderCanvasSettings,\n [selfChildNodesInCurrentCanvas]\n );\n\n const getDroppingIndexInFullCanvas = React.useCallback(\n (droppingIndexInCurrentCanvas: number) => {\n if (!hasTabs) {\n return droppingIndexInCurrentCanvas;\n }\n if (selfChildNodesInCurrentCanvas.length > 0) {\n const cursorNode =\n selfChildNodesInCurrentCanvas[\n droppingIndexInCurrentCanvas === 0\n ? 0\n : droppingIndexInCurrentCanvas - 1\n ];\n return (\n selfChildNodes.findIndex((child) => child === cursorNode) +\n (droppingIndexInCurrentCanvas === 0 ? 0 : 1)\n );\n }\n return isGeneralizedPortalCanvas ? selfChildNodes.length : 0;\n },\n [\n hasTabs,\n selfChildNodesInCurrentCanvas,\n isGeneralizedPortalCanvas,\n selfChildNodes,\n ]\n );\n\n const { nodes, edges } = useBuilderData();\n\n const getDroppingContext = React.useCallback(() => {\n if (delegatedContext) {\n const siblingGroups = getBuilderGroupedChildNodes({\n nodeUid: delegatedContext.templateUid,\n nodes,\n edges,\n doNotExpandTemplates: true,\n });\n return {\n droppingParentUid: delegatedContext.templateUid,\n droppingParentInstanceId: nodes.find(\n (item) => item.$$uid === delegatedContext.templateUid\n ).instanceId,\n droppingMountPoint: delegatedContext.templateMountPoint,\n droppingChildNodes:\n siblingGroups.find(\n (group) => group.mountPoint === delegatedContext.templateMountPoint\n )?.childNodes ?? [],\n droppingSiblingGroups: siblingGroups,\n };\n }\n return {\n droppingParentUid: node.$$uid,\n droppingParentInstanceId: node.instanceId,\n droppingMountPoint: mountPoint,\n droppingChildNodes: selfChildNodes,\n droppingSiblingGroups: groupedChildNodes,\n };\n }, [\n delegatedContext,\n edges,\n groupedChildNodes,\n mountPoint,\n node,\n nodes,\n selfChildNodes,\n ]);\n\n const [{ isDraggingOverCurrent }, dropRef] = useDrop({\n accept: [\n BuilderDataTransferType.NODE_TO_ADD,\n BuilderDataTransferType.NODE_TO_MOVE,\n BuilderDataTransferType.SNIPPET_TO_APPLY,\n ],\n canDrop: (\n item: DragObjectWithType &\n (\n | BuilderDataTransferPayloadOfNodeToAdd\n | BuilderDataTransferPayloadOfNodeToMove\n )\n ) =>\n independentPortalCanvas && isGeneralizedPortalCanvas\n ? selfChildNodesInCurrentCanvas.length === 0\n : item.type === BuilderDataTransferType.NODE_TO_ADD ||\n item.type === BuilderDataTransferType.SNIPPET_TO_APPLY ||\n isRoot ||\n canDrop(\n (item as BuilderDataTransferPayloadOfNodeToMove).nodeUid,\n nodeUid\n ),\n collect: (monitor) => ({\n isDraggingOverCurrent:\n monitor.isOver({ shallow: true }) && monitor.canDrop(),\n }),\n hover: (item, monitor) => {\n if (monitor.isOver({ shallow: true }) && monitor.canDrop()) {\n const { x, y } = monitor.getClientOffset();\n dropPositionCursorRef.current = getDropPosition(\n x,\n y,\n dropZoneBody.current.parentElement,\n dropZoneBody.current\n );\n setDropPositionCursor(dropPositionCursorRef.current);\n }\n },\n drop: (item, monitor) => {\n if (!monitor.didDrop()) {\n const { type, ...data } = item;\n processDrop({\n type: type as BuilderDataTransferType,\n data,\n droppingIndex: getDroppingIndexInFullCanvas(\n dropPositionCursorRef.current.index\n ),\n isPortalCanvas: isGeneralizedPortalCanvas,\n manager,\n ...getDroppingContext(),\n });\n }\n },\n });\n\n React.useEffect(() => {\n manager.updateDroppingStatus(\n delegatedContext ? delegatedContext.templateUid : node.$$uid,\n delegatedContext ? delegatedContext.templateMountPoint : mountPoint,\n isDraggingOverCurrent\n );\n }, [isDraggingOverCurrent, mountPoint, manager, delegatedContext, node]);\n\n const droppable =\n !!delegatedContext ||\n !(node.$$isExpandableTemplate || node.$$isTemplateInternalNode);\n\n const dropZoneRef = React.useRef<HTMLElement>();\n\n const dropZoneRefCallback = React.useCallback(\n (element: HTMLElement) => {\n dropZoneRef.current = element;\n if (droppable) {\n dropRef(element);\n }\n },\n [dropRef, droppable]\n );\n\n const handleContextMenu = React.useCallback(\n (event: React.MouseEvent) => {\n // `event.stopPropagation()` not working across bricks.\n if (\n !isGeneralizedPortalCanvas &&\n isCurrentTargetByClassName(\n event.target as HTMLElement,\n dropZoneRef.current\n )\n ) {\n event.preventDefault();\n manager.contextMenuChange({\n active: true,\n node,\n x: event.clientX,\n y: event.clientY,\n });\n }\n },\n [isGeneralizedPortalCanvas, manager, node]\n );\n\n return (\n <div\n ref={dropZoneRefCallback}\n className={classNames(\n styles.dropZone,\n isRoot\n ? classNames(\n styles.isRoot,\n canvasSettings?.mode &&\n String(canvasSettings.mode)\n .split(/\\s+/g)\n .map((mode) => styles[`mode-${mode}`]),\n {\n [styles.fullscreen]: fullscreen,\n [styles.hasTabs]: hasTabs,\n }\n )\n : styles.isSlot,\n {\n [styles.isPortalCanvas]: isGeneralizedPortalCanvas,\n [styles.dropping]: isDraggingOverCurrent,\n [styles.active]:\n isRoot &&\n contextMenuStatus.active &&\n contextMenuStatus.node.$$uid === node.$$uid,\n [styles.showOutlineIfEmpty]:\n !isRoot && showOutlineIfEmpty && selfChildNodes.length === 0,\n [styles.slotContentLayoutBlock]:\n refinedSlotContentLayout === EditorSlotContentLayout.BLOCK,\n [styles.slotContentLayoutInline]:\n refinedSlotContentLayout === EditorSlotContentLayout.INLINE,\n [styles.slotContentLayoutGrid]:\n refinedSlotContentLayout === EditorSlotContentLayout.GRID,\n }\n )}\n style={dropZoneStyle}\n onContextMenu={isRoot ? handleContextMenu : null}\n >\n <div\n ref={dropZoneBody}\n className={styles.dropZoneBody}\n style={dropZoneBodyStyle}\n >\n {selfChildNodesInCurrentCanvas.map((child) => (\n <EditorBrickAsComponent\n key={child.$$uid}\n node={child}\n slotContentLayout={refinedSlotContentLayout}\n />\n ))}\n </div>\n {\n <div\n className={classNames(\n styles.dropCursor,\n dropPositionCursor?.isVertical\n ? styles.dropCursorVertical\n : styles.dropCursorHorizontal\n )}\n style={{\n top: dropPositionCursor?.y,\n left: dropPositionCursor?.x,\n height: dropPositionCursor?.height,\n }}\n ></div>\n }\n </div>\n );\n}\n","/* istanbul-ignore-file */\n// Todo(steve): Ignore tests temporarily for potential breaking change in the future.\nimport React, { useMemo } from \"react\";\nimport classNames from \"classnames\";\nimport { DropZone } from \"../DropZone/DropZone\";\nimport { EditorSlotContentLayout } from \"../interfaces\";\nimport { useBuilderNode } from \"../hooks/useBuilderNode\";\nimport { useDroppingStatus } from \"../hooks/useDroppingStatus\";\n\nimport styles from \"./SlotContainer.module.css\";\n\nexport interface SlotContainerProps {\n nodeUid: number;\n slotName: string;\n slotContainerStyle?: React.CSSProperties;\n dropZoneStyle?: React.CSSProperties;\n dropZoneBodyStyle?: React.CSSProperties;\n slotContentLayout?: EditorSlotContentLayout;\n showOutlineIfEmpty?: boolean;\n}\n\nexport function SlotContainer({\n nodeUid,\n slotName,\n slotContainerStyle,\n dropZoneStyle,\n dropZoneBodyStyle,\n slotContentLayout,\n showOutlineIfEmpty,\n}: SlotContainerProps): React.ReactElement {\n const node = useBuilderNode({ nodeUid });\n const droppingStatus = useDroppingStatus();\n\n const delegatedContext = useMemo(() => {\n const delegatedSlots = node.$$delegatedSlots?.get(slotName);\n // Ignore when there are more than one delegated slots on a single slot.\n return delegatedSlots?.length === 1 ? delegatedSlots[0] : null;\n }, [node, slotName]);\n\n return (\n <div\n className={classNames(styles.slotContainer, {\n [styles.dropping]: droppingStatus\n .get(delegatedContext ? delegatedContext.templateUid : nodeUid)\n ?.get(\n delegatedContext ? delegatedContext.templateMountPoint : slotName\n ),\n })}\n style={slotContainerStyle}\n >\n <div className={styles.slotName}>\n {delegatedContext ? delegatedContext.templateMountPoint : slotName}\n </div>\n <DropZone\n nodeUid={nodeUid}\n mountPoint={slotName}\n delegatedContext={delegatedContext}\n dropZoneStyle={dropZoneStyle}\n dropZoneBodyStyle={dropZoneBodyStyle}\n slotContentLayout={slotContentLayout}\n showOutlineIfEmpty={showOutlineIfEmpty}\n />\n </div>\n );\n}\n","// See https://github.com/react-dnd/react-dnd/blob/main/packages/react-dnd/src/common/DndProvider.tsx\nimport React from \"react\";\nimport {\n BuilderContext,\n ContextOfBuilder,\n createBuilderContext,\n} from \"./BuilderContext\";\n\nexport const BuilderProvider = React.memo(LegacyBuilderProvider);\n\nconst instanceSymbol = Symbol.for(\"__BRICK_NEXT_BUILDER_CONTEXT_INSTANCE__\");\nfunction createSingletonBuilderContext(): ContextOfBuilder {\n const ctx = window as any;\n if (!ctx[instanceSymbol]) {\n ctx[instanceSymbol] = createBuilderContext();\n }\n return ctx[instanceSymbol];\n}\n\nlet refCount = 0;\n\nfunction LegacyBuilderProvider({\n children,\n}: React.PropsWithChildren<any>): React.ReactElement {\n const context = createSingletonBuilderContext();\n\n /**\n * If the global context was used to store the DND context\n * then where theres no more references to it we should\n * clean it up to avoid memory leaks\n */\n React.useEffect(() => {\n refCount++;\n\n return () => {\n refCount--;\n\n if (refCount === 0) {\n (window as any)[instanceSymbol] = null;\n }\n };\n }, []);\n\n return (\n <BuilderContext.Provider value={context}>\n {children}\n </BuilderContext.Provider>\n );\n}\n","/* istanbul-ignore-file */\n// Todo(steve): Ignore tests temporarily for potential breaking change in the future.\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { DndProvider } from \"react-dnd\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\nimport { UpdatingElement, property, BrickWrapper } from \"@next-core/brick-kit\";\nimport { StoryDoc } from \"@next-core/brick-types\";\nimport { EditorSelfLayout } from \"./interfaces\";\nimport { BuilderProvider } from \"./BuilderProvider\";\n\nexport interface EditorComponentProps {\n nodeUid: number;\n editorProps?: StoryDoc[\"editorProps\"];\n}\n\nexport type EditorComponentType = React.FunctionComponent<EditorComponentProps>;\n\nexport interface EditorBrickElement extends HTMLElement {\n nodeUid: number;\n}\n\nexport interface EditorBrickElementConstructor {\n new (): EditorBrickElement;\n readonly selfLayout: EditorSelfLayout;\n}\n\nexport interface EditorElementOptions {\n brickStyle?: Record<string, string>;\n selfLayout?: EditorSelfLayout;\n}\n\nexport function EditorElementFactory(\n EditorComponent: EditorComponentType,\n options?: EditorElementOptions\n): EditorBrickElementConstructor {\n class NewEditorElement extends UpdatingElement {\n static get selfLayout(): EditorSelfLayout {\n return options?.selfLayout;\n }\n\n @property({ type: Number })\n nodeUid: number;\n\n @property({ attribute: false })\n editorProps: StoryDoc[\"editorProps\"];\n\n connectedCallback(): void {\n // Don't override user's style settings.\n // istanbul ignore else\n if (!this.style.display) {\n this.style.display = \"block\";\n }\n if (options?.brickStyle) {\n for (const [key, value] of Object.entries(options.brickStyle)) {\n (this.style as unknown as Record<string, string>)[key] = value;\n }\n }\n this._render();\n }\n\n disconnectedCallback(): void {\n ReactDOM.unmountComponentAtNode(this);\n }\n\n protected _render(): void {\n // istanbul ignore else\n if (this.isConnected && this.nodeUid) {\n ReactDOM.render(\n <BrickWrapper>\n <BuilderProvider>\n <DndProvider backend={HTML5Backend}>\n <EditorComponent\n nodeUid={this.nodeUid}\n editorProps={this.editorProps}\n />\n </DndProvider>\n </BuilderProvider>\n </BrickWrapper>,\n this\n );\n }\n }\n }\n return NewEditorElement;\n}\n","import { createContext, Dispatch, SetStateAction } from \"react\";\n\n// It indicates which mount point of a container is active dropping zone.\ntype DroppingStatus = {\n [mountPoint: string]: boolean;\n};\n\ninterface ContextOfDroppingStatus {\n droppingStatus?: DroppingStatus;\n setDroppingStatus?: Dispatch<SetStateAction<DroppingStatus>>;\n}\n\n// Todo(steve): remove this file.\n/** @deprecated no more usage but for compatibility only. */\nexport const DroppingStatusContext = createContext<ContextOfDroppingStatus>({});\n","import { useMemo } from \"react\";\nimport { sortBy } from \"lodash\";\nimport { useBuilderData } from \"./useBuilderData\";\n\nexport function useBuilderNodeMountPoints({\n nodeUid,\n isRoot,\n doNotExpandTemplates,\n}: {\n nodeUid?: number;\n isRoot?: boolean;\n doNotExpandTemplates?: boolean;\n}): string[] {\n const { rootId, edges } = useBuilderData();\n const currentUid = isRoot ? rootId : nodeUid;\n return useMemo(() => {\n const mountPoints = new Set<string>();\n const relatedEdges = sortBy(\n edges.filter(\n (edge) =>\n edge.parent === currentUid &&\n (doNotExpandTemplates\n ? !edge.$$isTemplateInternal\n : !edge.$$isTemplateDelegated)\n ),\n [(edge) => edge.sort]\n );\n for (const edge of relatedEdges) {\n mountPoints.add(edge.mountPoint);\n }\n return Array.from(mountPoints);\n }, [currentUid, edges, doNotExpandTemplates]);\n}\n","import { useMemo } from \"react\";\nimport { BuilderRuntimeNode } from \"../interfaces\";\nimport { useBuilderData } from \"./useBuilderData\";\n\nexport function useBuilderParentNode(nodeUid: number): BuilderRuntimeNode {\n const { nodes, edges } = useBuilderData();\n return useMemo(() => {\n const parentUid = edges.find(\n (edge) => edge.child === nodeUid && !edge.$$isTemplateExpanded\n ).parent;\n return nodes.find((node) => node.$$uid === parentUid);\n }, [edges, nodeUid, nodes]);\n}\n","import { useEffect, useState } from \"react\";\nimport { useBuilderDataManager } from \"./useBuilderDataManager\";\nimport { BuilderRouteNode } from \"@next-core/brick-types\";\n\nexport function useRouteList(): BuilderRouteNode[] {\n const manager = useBuilderDataManager();\n const [data, setData] = useState(manager.getRouteList());\n useEffect(\n () =>\n manager.onRouteListChange(() => {\n setData(manager.getRouteList());\n }),\n [manager]\n );\n return data;\n}\n","import { useEffect, useState } from \"react\";\nimport { useBuilderDataManager } from \"./useBuilderDataManager\";\n\nexport function useOutlineEnabled(\n nodeInstanceId: string,\n inapplicable?: boolean\n): boolean {\n const manager = useBuilderDataManager();\n const [enabled, setEnabled] = useState(\n inapplicable ? false : manager.isOutlineEnabled(nodeInstanceId)\n );\n useEffect(() => {\n if (!inapplicable) {\n return manager.onOutlineEnabledNodesChange(() => {\n setEnabled(manager.isOutlineEnabled(nodeInstanceId));\n });\n }\n }, [inapplicable, manager, nodeInstanceId]);\n return enabled;\n}\n","module.exports = dll;","module.exports = (__webpack_require__(\"XuQu\"))(\"ZR4k\");","module.exports = (__webpack_require__(\"XuQu\"))(\"i8i4\");","module.exports = (__webpack_require__(\"XuQu\"))(\"lSNA\");","module.exports = (__webpack_require__(\"/8r5\"))(\"q1tI\");","module.exports = (__webpack_require__(\"/8r5\"))(\"qJlv\");","module.exports = (__webpack_require__(\"XuQu\"))(\"tYg3\");","module.exports = (__webpack_require__(\"XuQu\"))(\"yXPU\");"],"sourceRoot":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-dll/editor-bricks-helper",
3
- "version": "0.23.0",
3
+ "version": "0.23.4",
4
4
  "description": "> TODO: description",
5
5
  "homepage": "https://github.com/easyops-cn/next-core/tree/master/dll/editor-bricks-helper",
6
6
  "license": "GPL-3.0",
@@ -15,12 +15,12 @@
15
15
  "postbuild": "dll-differ"
16
16
  },
17
17
  "dependencies": {
18
- "@next-core/editor-bricks-helper": "^0.30.49"
18
+ "@next-core/editor-bricks-helper": "^0.30.52"
19
19
  },
20
20
  "devDependencies": {
21
- "@next-core/brick-dll": "^2.24.0",
21
+ "@next-core/brick-dll": "^2.24.4",
22
22
  "@next-core/webpack-config-factory": "^2.12.2",
23
- "@next-dll/react-dnd": "^0.1.168"
23
+ "@next-dll/react-dnd": "^0.1.172"
24
24
  },
25
- "gitHead": "8aa92961d3f1864ff0a85f1a28876a90711739dd"
25
+ "gitHead": "f406ea0790e86d85cd91bdc4af54274a5759a685"
26
26
  }