@next-dll/editor-bricks-helper 0.32.8 → 0.32.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,4 +5,4 @@ var DllOfEditorBricksHelper=function(e){var t={};function n(o){if(t[o])return t[
5
5
  http://jedwatson.github.io/classnames
6
6
  */!function(e){!function(){var t={}.hasOwnProperty;function n(){for(var e=[],o=0;o<arguments.length;o++){var r=arguments[o];if(r){var i=typeof r;if("string"===i||"number"===i)e.push(r);else if(Array.isArray(r)){if(r.length){var a=n.apply(null,r);a&&e.push(a)}}else if("object"===i)if(r.toString===Object.prototype.toString)for(var d in r)t.call(r,d)&&r[d]&&e.push(d);else e.push(r.toString())}}return e.join(" ")}e.exports?(n.default=n,e.exports=n):window.classNames=n}()}($);var S=$.exports,A={};
7
7
  /*! (c) Andrea Giammarchi - ISC */try{A.EventTarget=(new EventTarget).constructor}catch(e){!function(e,t){var n=e.create,o=e.defineProperty,r=i.prototype;function i(){t.set(this,n(null))}function a(e,t,n){o(e,t,{configurable:!0,writable:!0,value:n})}function d(e){var t=e.options;return t&&t.once&&e.target.removeEventListener(this.type,e.listener),"function"==typeof e.listener?e.listener.call(e.target,this):e.listener.handleEvent(this),this._stopImmediatePropagationFlag}a(r,"addEventListener",(function(e,n,o){for(var r=t.get(this),i=r[e]||(r[e]=[]),a=0,d=i.length;a<d;a++)if(i[a].listener===n)return;i.push({target:this,listener:n,options:o})})),a(r,"dispatchEvent",(function(e){var n=t.get(this)[e.type];return n&&(a(e,"target",this),a(e,"currentTarget",this),n.slice(0).some(d,e),delete e.currentTarget,delete e.target),!0})),a(r,"removeEventListener",(function(e,n){for(var o=t.get(this),r=o[e]||(o[e]=[]),i=0,a=r.length;i<a;i++)if(r[i].listener===n)return void r.splice(i,1)})),A.EventTarget=i}(Object,new WeakMap)}var P=A.EventTarget,k=0;function _(){return k+=1}function w(e){var{nodes:t,edges:n,rootId:o}=e,r=n.slice(),i=new WeakMap,d=(e,o)=>{var r=t.find(t=>t.$$uid===e),i=Object(l.sortBy)(n.filter(e=>e.parent===r.$$uid),e=>e.sort);for(var a of(o(r,i),i))d(a.child,o)},s=(e,n,o)=>{var a,d,u;if(e.$$isExpandableTemplate&&null!==(a=e.$$templateProxy)&&void 0!==a&&a.slots&&Object(p.hasOwnProperty)(e.$$templateProxy.slots,n)&&(d=e.$$templateProxy.slots[n])&&(u=e.$$templateRefToUid.get(d.ref))){var c=t.find(e=>e.$$uid===u),v=d.refSlot;if(c.$$isExpandableTemplate)s(c,v,o);else{var g,h={child:o,parent:u,mountPoint:v,sort:void 0,$$isTemplateExpanded:!0},f=Object(l.sortBy)(r.filter(e=>e.parent===u),e=>{var t;return null!==(t=i.get(e))&&void 0!==t?t:e.sort}),E=f.filter(e=>e.$$isTemplateInternal),m=null!==(g=d.refPosition)&&void 0!==g?g:-1,C=Object(l.clamp)(m<0?E.length+1+m:m,0,E.length);f.splice(C<E.length?f.findIndex(e=>e===E[C]):f.length,0,h),f.forEach((e,t)=>{i.set(e,t)}),r.push(h)}}};return d(o,(e,t)=>{if(e.$$isExpandableTemplate)for(var n of t)s(e,n.mountPoint,n.child)}),r.length>n.length?r.map(e=>{var t=i.get(e);return void 0===t?e:a()(a()({},e),{},{sort:t})}):n}function L(e,t){var{rootId:n,nodes:o,edges:r}=e,{parentUid:i,nodeUids:d}=t;return w({rootId:n,nodes:o,edges:r.filter(e=>!e.$$isTemplateExpanded).map(e=>{var t=e.parent===i?d.indexOf(e.child):-1;return t>=0?a()(a()({},e),{},{sort:t}):e})})}function U(e,t){var{rootId:n,nodes:o,edges:r,wrapperNode:i}=t,a=new Set;return function e(t,n,o){o.add(t);var r=new Set;for(var i of n)i.parent===t&&r.add(i.child);for(var a of r)e(a,n,o)}(e,r,a),{rootId:n,nodes:o.filter(e=>!a.has(e.$$uid)),edges:r.filter(e=>!a.has(e.parent)&&!a.has(e.child)),wrapperNode:(null==i?void 0:i.$$uid)===e?null:i}}function j(e,t,n,o,r){for(var i of t)if(i){if(i.target){var a=o.get(i.target);a&&(n.get(e.$$uid).downstreamNodes.add(a),n.get(a).upstreamNodes.add(e.$$uid))}else if(i.targetRef)for(var d of[].concat(i.targetRef)){var s=r.get(d);s&&(n.get(e.$$uid).downstreamNodes.add(s),n.get(s).upstreamNodes.add(e.$$uid))}if(i.callback)for(var l of Object.values(i.callback))j(e,[].concat(l),n,o,r)}}var B=["parent","children","graphInfo","mountPoint"],R=/[<{]/;function Z(e,t,n){var o=[];e.brick&&o.push(e.brick.replace(/\./g,"\\."));var r,i,a=Object(p.normalizeBuilderNode)(e),d=[];for(var s of["properties","events","lifeCycle"]){var u=Object(l.cloneDeep)(null==a?void 0:a[s]);if(d.push(["$$parsed".concat(Object(l.upperFirst)(s)),null!=u?u:{}]),"properties"===s){var c,v,g=void 0;"string"!=typeof(v=null==u||null===(c=u.dataset)||void 0===c?void 0:c.testid)||R.test(v)?"string"!=typeof(g=null==u?void 0:u.id)||R.test(g)||(r=g,o.push("#".concat(r))):i=v}}var h=Object(p.isBrickNode)(e),f=h?e.brick.split(".").pop():null;return Object.fromEntries(Object.entries(e).filter(e=>!B.includes(e[0])).concat([["alias",!(h&&e.alias===f)&&e.alias||(h?e.ref||i||r||f:void 0)],["$$uid",t],["$$matchedSelectors",o],["$$isTemplateInternalNode",n],["$$normalized",a]]).concat(d))}function M(e,t,n){var o,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],i=arguments.length>4?arguments[4]:void 0,a=[],d=[],s=(e,t,o,i,u,c)=>{var v,g,h,f,E=Z(e,t,i);if(a.push(E),u&&E.ref&&u.set(E.ref,t),Object(p.isBrickNode)(E)&&(!E.brick.includes(".")&&E.brick.startsWith("tpl-")&&!o.has(E.brick)&&(f=null==n?void 0:n.get(E.brick))&&(null===(v=f.children)||void 0===v?void 0:v.length)>0||E.brick.includes(".tpl-")&&(f=null==r||null===(g=r.find(e=>e.storyId===E.brick))||void 0===g?void 0:g.originData)&&(null===(h=f.children)||void 0===h?void 0:h.length)>0)){"wrapper"===f.layoutType&&(E.layoutType="wrapper"),o.add(E.brick),E.$$isExpandableTemplate=!0,E.$$templateProxy=f.proxy&&JSON.parse(f.proxy);var m=new Map;if(E.$$templateRefToUid=m,Object(l.sortBy)(f.children,[e=>{var t;return null!==(t=e.sort)&&void 0!==t?t:-1/0}]).forEach((e,n)=>{var r=_();s(e,r,new Set(o),!0,m),d.push({child:r,parent:t,mountPoint:"",sort:n,$$isTemplateInternal:!0})}),!E.$$isTemplateInternalNode){var C=(e,t,n)=>{var o;if(null!==(o=e.$$templateProxy)&&void 0!==o&&o.slots){var r,i=Object.entries(null===(r=e.$$templateProxy)||void 0===r?void 0:r.slots).filter(e=>void 0===t||e[0]===t),d=function(t,o){var r=e.$$templateRefToUid.get(o.ref);if(r){var i=a.find(e=>e.$$uid===r);if(i.$$isExpandableTemplate)C(i,o.refSlot,t);else{i.$$delegatedSlots||(i.$$delegatedSlots=new Map);var d=i.$$delegatedSlots.get(o.refSlot);d||(d=[],i.$$delegatedSlots.set(o.refSlot,d)),d.push({templateUid:E.$$uid,templateMountPoint:n||t})}}};for(var[s,l]of i)d(s,l)}};C(E);var b=(e,t)=>{var n;if(null!==(n=e.$$templateProxy)&&void 0!==n&&n.properties){var o,r=Object.entries(null===(o=e.$$templateProxy)||void 0===o?void 0:o.properties).filter(e=>void 0===t||e[0]===t);for(var[i,d]of r)Object(p.hasOwnProperty)(e.$$parsedProperties,i)&&H(d)&&function(){var t=e.$$templateRefToUid.get(d.ref),n=e.$$parsedProperties[i];if(t){var o=a.find(e=>e.$$uid===t);o.$$parsedProperties[d.refProperty]=n,o.$$isExpandableTemplate&&b(o,d.refProperty)}}()}};b(E)}}if(Array.isArray(e.children)){var N;switch(E.type){case"bricks":case"custom-template":case"snippet":N="bricks";break;case"routes":N="routes"}Object(l.sortBy)(e.children,[e=>{var t;return null!==(t=e.sort)&&void 0!==t?t:-1/0}]).forEach((e,n)=>{var r,a=_();s(e,a,new Set(o),i,u),d.push({child:a,parent:t,mountPoint:null!==(r=N)&&void 0!==r?r:e.mountPoint,sort:n,$$isTemplateInternal:i,$$isTemplateDelegated:E.$$isExpandableTemplate})})}};s(e,t,new Set);for(var u=function(e){var n=a[e];if("wrapper"===n.layoutType&&i&&d.find(e=>e.child===n.$$uid).parent===t)return o||(o=n),"break"},c=0;c<a.length;c++){var v=u(c);if("break"===v)break}return{nodes:a,edges:d,wrapperNode:o}}function H(e){return!!e.ref&&!!e.refProperty}function q(e,t){return e.find(e=>e.$$uid===t).$$isExpandableTemplate}var G=["properties","events","lifeCycle","params","if","transform"],V=["permissionsPreCheck","transformFrom"],W=["brick","template","portal","slots","id","children","instanceId"];function X(e,t){return Object.fromEntries(Object.entries(e).map(e=>{var[t,n]=e;return void 0===n||W.includes(t)?void 0:G.includes(t)?[t,JSON.stringify(n)]:V.includes(t)?[t,f.a.safeDump(n)]:[t,n]}).filter(Boolean).concat(Object.entries(t.nodeData),[["brick","template"===t.nodeData.type?e.template:e.brick],["portal",t.isPortalCanvas||e.portal]]))}function z(e){var{parent:t,parentUid:n,mountPoint:o,nodeUid:r,brickConf:i,isPortalCanvas:a,sort:d}=e,s=i.template?"template":i.bg?"provider":"brick";return{nodeUid:r,parentUid:n,nodeData:X(i,{isPortalCanvas:a,nodeData:{type:s,parent:t,mountPoint:o,sort:d}}),children:i.slots?Object.entries(i.slots).flatMap(e=>{var[t,n]=e;return n.bricks.map(e=>({childBrickConf:e,mountPoint:t}))}).map((e,t)=>{var{childBrickConf:n,mountPoint:o}=e;return z({parentUid:r,mountPoint:o,nodeUid:_(),brickConf:n,sort:t})}):[]}}var Y,K=e=>Object(p.isRouteNode)(e)?"STORYBOARD_ROUTE":Object(p.isBrickNode)(e)?"STORYBOARD_BRICK":Object(p.isCustomTemplateNode)(e)?"STORYBOARD_TEMPLATE":Object(p.isSnippetNode)(e)?"STORYBOARD_SNIPPET":void 0;!function(e){e.NODE_ADD="builder.node.add",e.NODE_MOVE="builder.node.move",e.NODE_REORDER="builder.node.reorder",e.NODE_CLICK="builder.node.click",e.NODE_UPDATE="builder.node.update",e.SNIPPET_APPLY="builder.snippet.apply",e.CONTEXT_MENU_CHANGE="builder.contextMenu.change",e.DATA_CHANGE="builder.data.change",e.SHARED_EDITOR_LIST_CHANGE="builder.sharedEditorList.change",e.ROUTE_LIST_CHANGE="builder.routeList.change",e.HOVER_NODE_CHANGE="builder.hoverNode.change",e.ACTIVE_NODE_CHANGE="builder.activeNode.change",e.SHOW_RELATED_NODES_BASED_ON_EVENTS="builder.showRelatedNodesBasedOnEvents.change",e.HIGHLIGHT_NODES_CHANGE="builder.highlightNodes.change",e.OUTLINE_DISABLED_NODES_CHANGE="builder.outlineDisabledNodes.change",e.DROPPING_STATUS_CHANGE="builder.droppingStatus.change",e.WORKBENCH_TREE_NODE_MOVE="workbench.tree.node.move"}(Y||(Y={}));class Q{constructor(){var e;s()(this,"data",{rootId:null,nodes:[],edges:[],wrapperNode:null}),s()(this,"hoverNodeUid",void 0),s()(this,"activeNodeUid",void 0),s()(this,"sharedEditorList",void 0),s()(this,"routeList",void 0),s()(this,"storyList",void 0),s()(this,"eventTarget",new P),s()(this,"contextMenuStatus",{active:!1}),s()(this,"showRelatedNodesBasedOnEvents",void 0),s()(this,"relatedNodesBasedOnEventsMap",void 0),s()(this,"highlightNodes",new Set),s()(this,"templateSourceMap",void 0),s()(this,"droppingStatus",new Map),s()(this,"localJsonStorage",new p.JsonStorage(localStorage)),s()(this,"outlineDisabledNodes",new Set(null!==(e=this.localJsonStorage.getItem("builder-outline-disabled-nodes"))&&void 0!==e?e:[]))}getData(){return this.data}getContextMenuStatus(){return this.contextMenuStatus}getRelatedNodesBasedOnEventsMap(){return this.relatedNodesBasedOnEventsMap}sharedEditorListInit(e){this.sharedEditorList=e,this.eventTarget.dispatchEvent(new CustomEvent(Y.SHARED_EDITOR_LIST_CHANGE))}getSharedEditorList(){var e;return null!==(e=this.sharedEditorList)&&void 0!==e?e:[]}onSharedEditorListChange(e){return this.eventTarget.addEventListener(Y.SHARED_EDITOR_LIST_CHANGE,e),()=>{this.eventTarget.removeEventListener(Y.SHARED_EDITOR_LIST_CHANGE,e)}}routeListInit(e){this.routeList=e,this.eventTarget.dispatchEvent(new CustomEvent(Y.ROUTE_LIST_CHANGE))}getRouteList(){var e;return null!==(e=this.routeList)&&void 0!==e?e:[]}storyListInit(e){this.storyList=e}getStoryList(){return this.storyList}onRouteListChange(e){return this.eventTarget.addEventListener(Y.ROUTE_LIST_CHANGE,e),()=>{this.eventTarget.removeEventListener(Y.ROUTE_LIST_CHANGE,e)}}dataInit(e,t){this.templateSourceMap=t;var n=_(),o=a()({rootId:n},M(e,n,t,this.storyList,!0));this.data=a()(a()({},o),{},{edges:w(o)}),this.triggerDataChange()}triggerDataChange(){var{rootId:e,nodes:t}=this.data,n="custom-template"===t.find(t=>t.$$uid===e).type;this.relatedNodesBasedOnEventsMap=function(e,t){var n=new Map,o=new Map,r=new Map;for(var i of e){for(var a of(n.set(i.$$uid,{upstreamNodes:new Set,downstreamNodes:new Set}),i.$$matchedSelectors))o.get(a)||o.set(a,i.$$uid);t&&i.ref&&r.set(i.ref,i.$$uid)}for(var d of e){var s=[];Object(l.isEmpty)(d.$$parsedEvents)||(s=Object.values(d.$$parsedEvents).flat()),Object(l.isEmpty)(d.$$parsedLifeCycle)||(s=s.concat(Object.entries(d.$$parsedLifeCycle).flatMap(e=>{var[t,n]=e;switch(t){case"onBeforePageLoad":case"onPageLoad":case"onPageLeave":case"onBeforePageLeave":case"onAnchorLoad":case"onAnchorUnload":case"onMessageClose":return n;case"onMessage":return[].concat(n).flatMap(e=>[].concat(e.handlers));default:return console.warn("unknown lifeCycle: ".concat(t)),[]}}))),s.length>0&&j(d,s,n,o,r)}return n}(t,n),this.eventTarget.dispatchEvent(new CustomEvent(Y.DATA_CHANGE,{detail:this.data}))}runAddNodeAction(e){var{rootId:t,nodes:n,edges:o,wrapperNode:r}=this.data,{nodeUid:i,parentUid:d,nodeUids:s,nodeData:p,sort:u}=e,{nodes:c,edges:v}=M(Object(l.omit)(p,["parent"]),i,this.templateSourceMap,this.getStoryList()),g={rootId:t,nodes:n.concat(c),edges:o.concat({parent:d,child:i,mountPoint:p.mountPoint,sort:null!=u?u:void 0,$$isTemplateDelegated:q(n,d)}).concat(v),wrapperNode:r};this.data=a()(a()({},g),{},{edges:L(g,{parentUid:d,nodeUids:s})}),this.triggerDataChange()}updateBrick(e){this.data=U(e.nodeUid,this.data),this.runAddNodeAction(e)}updateNode(e,t){var{rootId:n,nodes:o,edges:r,wrapperNode:i}=this.data,d=o.find(t=>t.instanceId===e),s=o.map(n=>n.instanceId===e?a()(a()({},n),t):n),l=void 0===t.mountPoint||null===t.mountPoint?r:r.map(e=>e.child===d.$$uid?a()(a()({},e),{},{mountPoint:t.mountPoint}):e);this.data={rootId:n,nodes:s,edges:l,wrapperNode:i},this.eventTarget.dispatchEvent(new CustomEvent(Y.NODE_UPDATE,{detail:this.data}))}redirectMountPoint(e){var{rootId:t,wrapperNode:n}=this.data;e.parentUid===t&&(e.nodeData.mountPoint="bricks"),n&&n.instanceId===e.nodeData.parent&&(e.nodeData.mountPoint="content")}redirectSnippetMountPoint(e){var t;null===(t=e.nodeDetails)||void 0===t||t.forEach(e=>{this.redirectMountPoint(e)})}nodeAdd(e){this.redirectMountPoint(e),this.runAddNodeAction(e),this.eventTarget.dispatchEvent(new CustomEvent(Y.NODE_ADD,{detail:e}))}nodeAddStored(e){var{rootId:t,nodes:n,edges:o,wrapperNode:r}=this.data,{nodeUid:i,nodeData:d}=e;this.data={rootId:t,nodes:n.map(e=>e.$$uid===i?a()(a()({},e),{},{id:d.id,instanceId:d.instanceId}):e),edges:o,wrapperNode:r},this.triggerDataChange()}snippetApply(e){this.redirectSnippetMountPoint(e);var{rootId:t,nodes:n,edges:o,wrapperNode:r}=this.data,{nodeDetails:i,parentUid:d,nodeUids:s}=e,p=n.slice(),u=o.slice(),c=e=>{var{parentUid:t,nodeUid:n,nodeData:o,children:r}=e,{nodes:i,edges:a}=M(Object(l.omit)(o,["parent"]),n,this.templateSourceMap,this.storyList);for(var d of(p.push(...i),u.push({parent:t,child:n,mountPoint:o.mountPoint,sort:o.sort,$$isTemplateDelegated:q(p,t)},...a),r))c(d)};for(var v of i)c(v);var g={rootId:t,nodes:p,edges:u,wrapperNode:r};this.data=a()(a()({},g),{},{edges:L(g,{parentUid:d,nodeUids:s})}),this.triggerDataChange(),this.eventTarget.dispatchEvent(new CustomEvent(Y.SNIPPET_APPLY,{detail:e}))}snippetApplyStored(e){var{rootId:t,nodes:n,edges:o,wrapperNode:r}=this.data,{flattenNodeDetails:i}=e;this.data={rootId:t,nodes:n.map(e=>{var t=i.find(t=>t.nodeUid===e.$$uid);return t?a()(a()({},e),{},{id:t.nodeData.id,instanceId:t.nodeData.instanceId}):e}),edges:o,wrapperNode:r},this.triggerDataChange()}nodeMove(e){var{rootId:t,nodes:n,edges:o,wrapperNode:r}=this.data;this.redirectMountPoint(e);var{nodeUid:i,parentUid:d,nodeUids:s,nodeData:l}=e,p={rootId:t,nodes:n,edges:o.filter(e=>e.child!==i).concat({parent:d,child:i,mountPoint:l.mountPoint,sort:void 0,$$isTemplateDelegated:q(n,d)}),wrapperNode:r};this.data=a()(a()({},p),{},{edges:L(p,{parentUid:d,nodeUids:s})}),this.triggerDataChange(),this.eventTarget.dispatchEvent(new CustomEvent(Y.NODE_MOVE,{detail:e}))}moveNode(e,t){var{$$uid:n}=e,{parent:o,mountPoint:r}=this.data.edges.find(e=>e.child===n),{relatedEdges:i,mountPoints:a}=F(this.data.edges,o),d=i.filter(e=>e.mountPoint===r),s=d.findIndex(e=>e.child===n),p=J(d,s,t);if(p){var u=Object(l.sortBy)(i,e=>a.indexOf(e.mountPoint),e=>p.indexOf(e));this.reorder(o,u),this.eventTarget.dispatchEvent(new CustomEvent(Y.NODE_UPDATE,{detail:this.data}))}}getDragInfo(e){var t,{nodeData:n,dragNodeUid:o,dragOverNodeUid:r,dragStatus:i}=e,{rootId:a,nodes:d,edges:s}=this.data,p=r===a,u=s.find(e=>e.child===o),c=s.find(e=>e.child===r),v=p?"bricks":"inside"===i?"content":c.mountPoint,g=s.find(e=>e.child===r),h=p?a:"inside"===i?g.child:g.parent,f=d.find(e=>e.$$uid===h),E=s.filter(e=>e.child!==o&&e.parent===h),m=Object(l.sortBy)(E,"sort").map(e=>e.child),C=[],b=[];if(m.forEach(e=>{var t=d.find(t=>t.$$uid===e);C.push(t.id),b.push(t.instanceId)}),"inside"===i)t=E.length?Math.max(...E.map(e=>e.sort))+1:0,C.push(n.id),b.push(n.instanceId);else if("top"===i||"bottom"===i){var N,D=m.findIndex(e=>e===r);t="top"===i?D:D+1,C.splice(t,0,n.id),m.splice(t,0,null!==(N=null==u?void 0:u.child)&&void 0!==N?N:o),b.splice(t,0,n.instanceId)}return{parentUid:h,mountPoint:v,sortIndex:t,parnetNodeData:f,sortUids:m,sortNodeIds:C,sortNodeInstanceIds:b}}workbenchNodeAdd(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],{nodes:n,edges:o,rootId:r}=this.data,{nodeData:i,dragOverInstanceId:a,dragStatus:d,mountPoint:s}=e;if(i.instanceId&&!i.instanceId.startsWith("mock"));else{var l,p,u=e.parent||e.parentInstanceId,c=i.$$uid||_(),v=n.find(e=>e.instanceId===a).$$uid,g=d;if(v===r)g="inside";else{var h=o.find(e=>e.child===v);n.find(e=>"inside"===d?e.$$uid===h.child:e.$$uid===h.parent).instanceId!==u&&(g="inside",v=n.find(e=>e.instanceId===u).$$uid)}var{parentUid:f,sortIndex:E,sortUids:m,sortNodeIds:C,sortNodeInstanceIds:b}=this.getDragInfo({nodeData:{id:null!==(l=i.id)&&void 0!==l?l:null,instanceId:null!==(p=i.instanceId)&&void 0!==p?p:null},dragNodeUid:c,dragOverNodeUid:v,dragStatus:g});if(i.parent=u,i.mountPoint=s,i.sort=E,i.bricks){var N={parentUid:f,nodeDetails:i.bricks.map(e=>z({parent:u,parentUid:f,mountPoint:s,nodeUid:c,brickConf:e,isPortalCanvas:!1})),nodeIds:C,nodeUids:m};if(!t)return N;this.snippetApply(N)}this.runAddNodeAction({nodeUid:c,parentUid:f,nodeUids:m,nodeIds:C,nodeData:i,sort:E});var D={nodeUids:m,nodeInstanceIds:b,nodeIds:C};e.sortData=D,this.eventTarget.dispatchEvent(new CustomEvent(Y.NODE_ADD,{detail:{nodeUid:c,parentUid:f,nodeUids:m,nodeInstanceIds:b,nodeIds:C,nodeData:i}}))}}workbenchTreeNodeMove(e){var{rootId:t,nodes:n,edges:o,wrapperNode:r}=this.data,{dragNodeUid:i,dragOverNodeUid:d,dragStatus:s}=e,l=n.find(e=>e.$$uid===i),p=o.find(e=>e.child===l.$$uid),u=p.parent,c=n.find(e=>e.$$uid===u),{parentUid:v,parnetNodeData:g,mountPoint:h,sortIndex:f,sortUids:E,sortNodeIds:m}=this.getDragInfo({nodeData:l,dragNodeUid:i,dragOverNodeUid:d,dragStatus:s}),C={rootId:t,nodes:n,edges:o.filter(e=>e.child!==i).concat({parent:v,child:i,mountPoint:h,sort:f,$$isTemplateDelegated:q(n,v)}),wrapperNode:r};this.data=a()(a()({},C),{},{edges:L(C,{parentUid:v,nodeUids:E})}),this.triggerDataChange(),this.eventTarget.dispatchEvent(new CustomEvent(Y.WORKBENCH_TREE_NODE_MOVE,{detail:a()(a()({nodeUid:i,nodeInstanceId:l.instanceId,nodeIds:m},c.instanceId!==g.instanceId||p.mountPoint!==h?{nodeData:{parent:g.instanceId,mountPoint:h}}:{}),{},{objectId:K(l)})})),this.eventTarget.dispatchEvent(new CustomEvent(Y.NODE_UPDATE,{detail:this.data}))}moveMountPoint(e,t,n){var{$$uid:o}=e,{relatedEdges:r,mountPoints:i}=F(this.data.edges,o),a=i.indexOf(t),d=J(i,a,n);if(d){var s=Object(l.sortBy)(r,e=>d.indexOf(e.mountPoint),"sort");this.reorder(o,s)}}reorder(e,t){var{nodes:n}=this.data,o=t.map(e=>e.child);this.data=a()(a()({},this.data),{},{edges:L(this.data,{parentUid:e,nodeUids:o})}),this.triggerDataChange();var r=o.map(e=>n.find(t=>t.$$uid===e)).map(e=>e.id);this.eventTarget.dispatchEvent(new CustomEvent(Y.NODE_REORDER,{detail:{nodeUids:o,parentUid:e,nodeIds:r,objectId:K(n.find(t=>t.$$uid===e))}}))}contextUpdated(e){var{rootId:t,nodes:n,edges:o,wrapperNode:r}=this.data;this.data={rootId:t,edges:o,nodes:n.map(n=>n.$$uid===t?a()(a()({},n),{},{context:e.context}):n),wrapperNode:r},this.triggerDataChange()}nodeReorder(e){var{nodeUids:t,parentUid:n}=e;this.data=a()(a()({},this.data),{},{edges:L(this.data,{parentUid:n,nodeUids:t})}),this.triggerDataChange(),this.eventTarget.dispatchEvent(new CustomEvent(Y.NODE_REORDER,{detail:e}))}nodeDelete(e){this.data=U(e.$$uid,this.data),this.triggerDataChange()}nodeClick(e){this.setActiveNodeUid(e.$$uid),this.eventTarget.dispatchEvent(new CustomEvent(Y.NODE_CLICK,{detail:e}))}contextMenuChange(e){this.contextMenuStatus=e,this.eventTarget.dispatchEvent(new CustomEvent(Y.CONTEXT_MENU_CHANGE))}onDataChange(e){return this.eventTarget.addEventListener(Y.DATA_CHANGE,e),()=>{this.eventTarget.removeEventListener(Y.DATA_CHANGE,e)}}onNodeAdd(e){return this.eventTarget.addEventListener(Y.NODE_ADD,e),()=>{this.eventTarget.removeEventListener(Y.NODE_ADD,e)}}onSnippetApply(e){return this.eventTarget.addEventListener(Y.SNIPPET_APPLY,e),()=>{this.eventTarget.removeEventListener(Y.SNIPPET_APPLY,e)}}onNodeReorder(e){return this.eventTarget.addEventListener(Y.NODE_REORDER,e),()=>{this.eventTarget.removeEventListener(Y.NODE_REORDER,e)}}onNodeMove(e){return this.eventTarget.addEventListener(Y.NODE_MOVE,e),()=>{this.eventTarget.removeEventListener(Y.NODE_MOVE,e)}}onWorkbenchTreeNodeMove(e){return this.eventTarget.addEventListener(Y.WORKBENCH_TREE_NODE_MOVE,e),()=>{this.eventTarget.removeEventListener(Y.WORKBENCH_TREE_NODE_MOVE,e)}}onNodeClick(e){return this.eventTarget.addEventListener(Y.NODE_CLICK,e),()=>{this.eventTarget.removeEventListener(Y.NODE_CLICK,e)}}onNodeUpdate(e){return this.eventTarget.addEventListener(Y.NODE_UPDATE,e),()=>{this.eventTarget.removeEventListener(Y.NODE_UPDATE,e)}}onContextMenuChange(e){return this.eventTarget.addEventListener(Y.CONTEXT_MENU_CHANGE,e),()=>{this.eventTarget.removeEventListener(Y.CONTEXT_MENU_CHANGE,e)}}setShowRelatedNodesBasedOnEvents(e){this.showRelatedNodesBasedOnEvents=e,this.eventTarget.dispatchEvent(new CustomEvent(Y.SHOW_RELATED_NODES_BASED_ON_EVENTS))}getShowRelatedNodesBasedOnEvents(){return this.showRelatedNodesBasedOnEvents}onShowRelatedNodesBasedOnEventsChange(e){return this.eventTarget.addEventListener(Y.SHOW_RELATED_NODES_BASED_ON_EVENTS,e),()=>{this.eventTarget.removeEventListener(Y.SHOW_RELATED_NODES_BASED_ON_EVENTS,e)}}setHoverNodeUid(e){this.hoverNodeUid!==e&&(this.hoverNodeUid=e,this.eventTarget.dispatchEvent(new CustomEvent(Y.HOVER_NODE_CHANGE)))}getHoverNodeUid(){return this.hoverNodeUid}onHoverNodeChange(e){return this.eventTarget.addEventListener(Y.HOVER_NODE_CHANGE,e),()=>{this.eventTarget.removeEventListener(Y.HOVER_NODE_CHANGE,e)}}setActiveNodeUid(e){this.activeNodeUid!==e&&(this.activeNodeUid=e,this.eventTarget.dispatchEvent(new CustomEvent(Y.ACTIVE_NODE_CHANGE)))}getActiveNodeUid(){return this.activeNodeUid}onActiveNodeChange(e){return this.eventTarget.addEventListener(Y.ACTIVE_NODE_CHANGE,e),()=>{this.eventTarget.removeEventListener(Y.ACTIVE_NODE_CHANGE,e)}}toggleOutline(e){this.outlineDisabledNodes.has(e)?this.outlineDisabledNodes.delete(e):this.outlineDisabledNodes.add(e),this.localJsonStorage.setItem("builder-outline-disabled-nodes",Array.from(this.outlineDisabledNodes)),this.eventTarget.dispatchEvent(new CustomEvent(Y.OUTLINE_DISABLED_NODES_CHANGE))}isOutlineEnabled(e){return!this.outlineDisabledNodes.has(e)}onOutlineEnabledNodesChange(e){return this.eventTarget.addEventListener(Y.OUTLINE_DISABLED_NODES_CHANGE,e),()=>{this.eventTarget.removeEventListener(Y.OUTLINE_DISABLED_NODES_CHANGE,e)}}setHighlightNodes(e){this.highlightNodes=e,this.eventTarget.dispatchEvent(new CustomEvent(Y.HIGHLIGHT_NODES_CHANGE))}getHighlightNodes(){return this.highlightNodes}onHighlightNodesChange(e){return this.eventTarget.addEventListener(Y.HIGHLIGHT_NODES_CHANGE,e),()=>{this.eventTarget.removeEventListener(Y.HIGHLIGHT_NODES_CHANGE,e)}}updateDroppingStatus(e,t,n){var o=this.droppingStatus.get(e);this.droppingStatus=new Map(Array.from(this.droppingStatus.entries()).concat([[e,new Map((o?Array.from(o):[]).concat([[t,n]]))]])),this.eventTarget.dispatchEvent(new CustomEvent(Y.DROPPING_STATUS_CHANGE)),this.hoverNodeUid&&Array.from(this.droppingStatus.values()).flatMap(e=>Array.from(e.values())).some(Boolean)&&this.setHoverNodeUid(void 0)}getDroppingStatus(){return this.droppingStatus}onDroppingStatusChange(e){return this.eventTarget.addEventListener(Y.DROPPING_STATUS_CHANGE,e),()=>{this.eventTarget.removeEventListener(Y.DROPPING_STATUS_CHANGE,e)}}}function F(e,t){var n=Object(l.sortBy)(e.filter(e=>e.parent===t&&!e.$$isTemplateExpanded),"sort"),o=new Set;for(var r of n)o.add(r.mountPoint);return{relatedEdges:n,mountPoints:Array.from(o)}}function J(e,t,n){var o;if("up"===n){if(t<=0)return;o=t-1}else{if(-1===t||t>=e.length-1)return;o=t}return[...e.slice(0,o),e[o+1],e[o],...e.slice(o+2)]}var ee=r.a.createContext({});function te(){var{manager:e}=r.a.useContext(ee);if(!e)throw new Error("Expected builder data context");return e}function ne(){var e=te(),[t,n]=Object(o.useState)(e.getData());return Object(o.useEffect)(()=>e.onDataChange(()=>{n(e.getData())}),[e]),t}function oe(e){var{nodeUid:t,isRoot:n,isWrapper:r}=e,{rootId:i,nodes:a,wrapperNode:d}=ne(),s=n?i:t;return Object(o.useMemo)(()=>r?d:a.find(e=>e.$$uid===s),[a,s,r,d])}function re(){var e=te(),[t,n]=Object(o.useState)(e.getContextMenuStatus());return Object(o.useEffect)(()=>e.onContextMenuChange(()=>{n(e.getContextMenuStatus())}),[e]),t}function ie(){var e=te(),[t,n]=Object(o.useState)(e.getShowRelatedNodesBasedOnEvents());return Object(o.useEffect)(()=>e.onShowRelatedNodesBasedOnEventsChange(()=>{n(e.getShowRelatedNodesBasedOnEvents())}),[e]),t}function ae(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css","top"===n&&o.firstChild?o.insertBefore(r,o.firstChild):o.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}}var de={editorContainer:"EditorContainer--editorContainer--1j8iqnx",nodeAlias:"EditorContainer--nodeAlias--1j8iqnx",highlight:"EditorContainer--highlight--1j8iqnx",hover:"EditorContainer--hover--1j8iqnx",active:"EditorContainer--active--1j8iqnx",dropping:"EditorContainer--dropping--1j8iqnx",editorBody:"EditorContainer--editorBody--1j8iqnx",transparentContainer:"EditorContainer--transparentContainer--1j8iqnx",isUpstreamNode:"EditorContainer--isUpstreamNode--1j8iqnx",isDownstreamNode:"EditorContainer--isDownstreamNode--1j8iqnx",arrow:"EditorContainer--arrow--1j8iqnx"};function se(e,t){for(var n=e;n;){if(n===t)return!0;if(n.classList.contains(de.editorContainer)&&!n.classList.contains(de.isTemplateInternalNode))return!1;n=n.parentElement}return!1}function le(){var e=te(),[t,n]=Object(o.useState)(e.getHoverNodeUid());return Object(o.useEffect)(()=>e.onHoverNodeChange(()=>{n(e.getHoverNodeUid())}),[e]),t}function pe(){var e=te(),[t,n]=Object(o.useState)(e.getHighlightNodes());return Object(o.useEffect)(()=>e.onHighlightNodesChange(()=>{n(e.getHighlightNodes())}),[e]),t}function ue(){var e=te(),[t,n]=Object(o.useState)(e.getDroppingStatus());return Object(o.useEffect)(()=>e.onDroppingStatusChange(()=>{n(e.getDroppingStatus())}),[e]),t}function ce(e){var t,n,{nodeUid:i,type:a,isTransparentContainer:d,editorContainerStyle:s,editorBodyStyle:l,children:p}=e,u=Object(o.useRef)(),v=pe(),g=oe({nodeUid:i}),[h,f]=Object(o.useState)(!1),[E,m]=Object(o.useState)(!1),C=re(),b=le(),N=ie(),D=te(),[O,y]=Object(o.useState)(b===i),x=null!=a?a:c.DEFAULT,I=Object(o.useRef)(b),T=ue();Object(o.useEffect)(()=>{I.current=b},[b]);var $=Object(o.useCallback)(e=>{e.stopPropagation(),y(!0),I.current!==i&&D.setHoverNodeUid(i)},[i,D]),A=Object(o.useCallback)(e=>{e.stopPropagation(),y(!1),I.current===i&&D.setHoverNodeUid(void 0)},[i,D]);Object(o.useEffect)(()=>{if(!g.$$isTemplateInternalNode){var e=u.current;return e.addEventListener("mouseover",$),e.addEventListener("mouseout",A),()=>{e.removeEventListener("mouseover",$),e.removeEventListener("mouseout",A)}}},[$,A,g]),Object(o.useEffect)(()=>{if(!g.$$isTemplateInternalNode&&(y(b===i),N)){var e,t,n=D.getRelatedNodesBasedOnEventsMap(),o=null===(e=n.get(b))||void 0===e?void 0:e.upstreamNodes.has(i);f(o);var r=null===(t=n.get(b))||void 0===t?void 0:t.downstreamNodes.has(i);m(r)}},[b,g,i,N,D]);var P=Object(o.useCallback)(e=>!g.$$isTemplateInternalNode&&se(e.target,u.current),[g]),k=Object(o.useCallback)(e=>{P(e)&&D.nodeClick(g)},[P,D,g]),_=Object(o.useCallback)(e=>{P(e)&&(e.preventDefault(),D.contextMenuChange({active:!0,node:g,x:e.clientX,y:e.clientY}))},[P,D,g]);return r.a.createElement("div",{className:S(de.editorContainer,de[x],{[de.transparentContainer]:d,[de.dropping]:Array.from(null!==(t=null===(n=T.get(i))||void 0===n?void 0:n.values())&&void 0!==t?t:[]).some(Boolean),[de.hover]:O,[de.active]:C.active&&C.node.$$uid===i,[de.isDownstreamNode]:!O&&E,[de.isUpstreamNode]:!O&&h,[de.highlight]:v.has(i),[de.isTemplateInternalNode]:g.$$isTemplateInternalNode}),style:s,ref:u,onClick:k,onContextMenu:_},r.a.createElement("div",{className:de.nodeAlias},!O&&(E?r.a.createElement("span",{className:de.arrow},"↓"):h?r.a.createElement("span",{className:de.arrow},"↑"):null),g.alias||g.brick),r.a.createElement("div",{className:de.editorBody,style:l},p))}ae(".EditorContainer--editorContainer--1j8iqnx {\n position: relative;\n}\n\n.EditorContainer--nodeAlias--1j8iqnx {\n position: absolute;\n top: -25px;\n height: calc(25px + var(--editor-brick-border-radius));\n background-color: #d6d6d6;\n border: 1px solid var(--editor-brick-stroke-color);\n padding: 0 5px;\n border-radius: 2px;\n color: #737373;\n white-space: nowrap;\n visibility: hidden;\n pointer-events: none;\n}\n\n.EditorContainer--editorContainer--1j8iqnx.EditorContainer--highlight--1j8iqnx > .EditorContainer--nodeAlias--1j8iqnx,\n.EditorContainer--editorContainer--1j8iqnx.EditorContainer--hover--1j8iqnx > .EditorContainer--nodeAlias--1j8iqnx,\n.EditorContainer--editorContainer--1j8iqnx.EditorContainer--active--1j8iqnx > .EditorContainer--nodeAlias--1j8iqnx,\n.EditorContainer--editorContainer--1j8iqnx.EditorContainer--dropping--1j8iqnx > .EditorContainer--nodeAlias--1j8iqnx {\n visibility: visible;\n}\n\n.EditorContainer--editorBody--1j8iqnx {\n position: relative;\n border-radius: var(--editor-brick-border-radius);\n background: #fff;\n}\n\n.EditorContainer--transparentContainer--1j8iqnx > .EditorContainer--editorBody--1j8iqnx {\n margin: -1px;\n}\n\n.EditorContainer--transparentContainer--1j8iqnx > .EditorContainer--nodeAlias--1j8iqnx {\n left: -1px;\n}\n\n.EditorContainer--nodeAlias--1j8iqnx,\n.EditorContainer--editorContainer--1j8iqnx.EditorContainer--hover--1j8iqnx > .EditorContainer--editorBody--1j8iqnx,\n.EditorContainer--editorContainer--1j8iqnx.EditorContainer--active--1j8iqnx > .EditorContainer--editorBody--1j8iqnx,\n.EditorContainer--editorContainer--1j8iqnx.EditorContainer--dropping--1j8iqnx > .EditorContainer--editorBody--1j8iqnx {\n box-shadow: 0 0 0 1px var(--editor-brick-stroke-color-active);\n}\n\n.EditorContainer--editorContainer--1j8iqnx.EditorContainer--isUpstreamNode--1j8iqnx > .EditorContainer--nodeAlias--1j8iqnx,\n.EditorContainer--editorContainer--1j8iqnx.EditorContainer--isDownstreamNode--1j8iqnx > .EditorContainer--nodeAlias--1j8iqnx {\n visibility: visible;\n background-color: #f7f7f7;\n}\n\n.EditorContainer--editorContainer--1j8iqnx.EditorContainer--isDownstreamNode--1j8iqnx > .EditorContainer--editorBody--1j8iqnx,\n.EditorContainer--editorContainer--1j8iqnx.EditorContainer--isDownstreamNode--1j8iqnx > .EditorContainer--nodeAlias--1j8iqnx {\n box-shadow: 0 0 0 1px rgba(22, 224, 57, 0.3);\n}\n\n.EditorContainer--editorContainer--1j8iqnx.EditorContainer--isUpstreamNode--1j8iqnx > .EditorContainer--editorBody--1j8iqnx,\n.EditorContainer--editorContainer--1j8iqnx.EditorContainer--isUpstreamNode--1j8iqnx > .EditorContainer--nodeAlias--1j8iqnx {\n box-shadow: 0 0 0 1px rgba(224, 88, 22, 0.3);\n}\n\n.EditorContainer--editorContainer--1j8iqnx.EditorContainer--highlight--1j8iqnx > .EditorContainer--editorBody--1j8iqnx,\n.EditorContainer--editorContainer--1j8iqnx.EditorContainer--highlight--1j8iqnx > .EditorContainer--nodeAlias--1j8iqnx {\n box-shadow: 0 0 0 1px var(--theme-orange-color);\n}\n\n.EditorContainer--arrow--1j8iqnx {\n font-size: 10px;\n padding: 0 4px;\n position: relative;\n bottom: 1px;\n}\n");function ve(){return(ve=N()((function*(e,t){var n=[];if(Object(p.isRouteNode)(e))n.push("basic-bricks.any-route--editor");else{if(!Object(p.isBrickNode)(e))throw new Error("Unsupported node type: ".concat(e.type));if(e.brick.includes("-")){var o,r=null===(o=e.brick.split(".")[1])||void 0===o?void 0:o.startsWith("tpl-");n.push("".concat(e.brick,"--editor")),r&&n.push("editors-of-".concat(e.brick,"--editor"))}t&&n.push(t),n.push("basic-bricks.any-brick--editor")}for(var i of n){try{yield D.developHelper.loadEditorBricks([i])}catch(e){throw new Error('Load editor brick "'.concat(i,'" failed'))}if(customElements.get(i))return i}throw new Error('Editor brick "'.concat(n.join(", "),'" not found'))}))).apply(this,arguments)}var ge="EditorBrickAsComponent--slotContentLayoutBlock--1aed4lu",he="EditorBrickAsComponent--selfLayoutBlock--1aed4lu",fe="EditorBrickAsComponent--selfLayoutContainer--1aed4lu",Ee="EditorBrickAsComponent--slotContentLayoutInline--1aed4lu",me="EditorBrickAsComponent--selfLayoutInline--1aed4lu",Ce="EditorBrickAsComponent--dragging--1aed4lu",be="EditorBrickAsComponent--baseView--1aed4lu";function Ne(e){var t,{node:n,slotContentLayout:i}=e,[a,d]=r.a.useState(!1),[s,l]=r.a.useState(),[c,h]=r.a.useState(),{edges:f}=ne(),E=(t=te(),Object(o.useMemo)(()=>t.getStoryList(),[t])),m=r.a.useMemo(()=>f.some(e=>e.parent===n.$$uid),[n,f]),b=Object(o.useMemo)(()=>Object(D.getRuntime)().getFeatureFlags()["next-builder-installed-bricks"],[]),O=Object(o.useMemo)(()=>b?null:function(e,t){var n=null==t?void 0:t.find(t=>t.storyId===e.brick);return null==n?void 0:n.doc}(n,E),[b,n,E]),y=function(){var e=te(),t=Object(o.useCallback)(()=>new Map(e.getSharedEditorList().map(e=>[e.id,e])),[e]),[n,r]=Object(o.useState)(t());return Object(o.useEffect)(()=>e.onSharedEditorListChange(()=>{r(t())}),[t,e]),n}(),x=Object(o.useMemo)(()=>b&&Object(p.isBrickNode)(n)?y.get(n.brick):null,[y,b,n]);r.a.useEffect(()=>{N()((function*(){var e,t;d(!1);try{e=yield function(e,t){return ve.apply(this,arguments)}(n,b?null==x?void 0:x.editor:null==O?void 0:O.editor)}catch(e){console.error(e),t=e.message}l(e),h(t),d(!0)}))()},[O,x,b,n]);var I=r.a.useMemo(()=>({brick:s,properties:{nodeUid:n.$$uid,editorProps:b?null==x?void 0:x.editorProps:null==O?void 0:O.editorProps}}),[O,s,x,b,n.$$uid]),T=r.a.useMemo(()=>{var e,t;a&&s&&(t=customElements.get(s).selfLayout);return null!==(e=t)&&void 0!==e?e:m?v.CONTAINER:v.INLINE},[a,s,m]),[{isDragging:$},A]=Object(C.useDrag)({item:{type:u.NODE_TO_MOVE,nodeUid:n.$$uid,nodeInstanceId:n.instanceId,nodeId:n.id},options:{dropEffect:"move"},collect:e=>({isDragging:e.isDragging()})});return a?s?r.a.createElement("div",{className:S({[ge]:i===g.BLOCK,[Ee]:i===g.INLINE,[me]:T===v.INLINE,[he]:T===v.BLOCK,[fe]:T===v.CONTAINER,[Ce]:$,__isTemplateInternalNode:n.$$isTemplateInternalNode})},r.a.createElement("div",{ref:n.$$isTemplateInternalNode?void 0:A,draggable:!n.$$isTemplateInternalNode,className:S({[be]:"basic-bricks.micro-view"===n.brick||"basic-bricks.micro-app"===n.brick||"basic-bricks.easy-view"===n.brick||"frame-bricks.side-bar"===n.brick})},r.a.createElement(D.BrickAsComponent,{useBrick:I}))):r.a.createElement("span",null,c):r.a.createElement("span",null,"Loading...")}function De(e){var{nodeUid:t,isRoot:n,doNotExpandTemplates:r,isWrapper:i}=e,{rootId:a,nodes:d,edges:s,wrapperNode:l}=ne();return Object(o.useMemo)(()=>Oe({nodes:d,edges:s,nodeUid:n?i?l.$$uid:a:t,doNotExpandTemplates:r,isWrapper:i}),[r,s,n,t,d,a,i,l])}function Oe(e){var{nodeUid:t,nodes:n,edges:o,doNotExpandTemplates:r,isWrapper:i}=e,a=new Map,d=Object(l.sortBy)(o.filter(e=>e.parent===t&&(r?!e.$$isTemplateInternal:!e.$$isTemplateDelegated)),[e=>e.sort]),s=function(e){var t=n.find(t=>t.$$uid===e.child);a.has(e.mountPoint)?a.get(e.mountPoint).push(t):a.set(e.mountPoint,[t])};for(var p of d)s(p);return Array.from(a.entries()).map(e=>{var[t,n]=e;return{mountPoint:i?"bricks":t,childNodes:n}})}function ye(){var{edges:e}=ne();return Object(o.useCallback)((t,n)=>{var o=t=>t!==n&&!e.some(e=>e.parent===t&&!o(e.child));return o(t)},[e])}ae(".EditorBrickAsComponent--slotContentLayoutBlock--1aed4lu.EditorBrickAsComponent--selfLayoutBlock--1aed4lu,\n.EditorBrickAsComponent--slotContentLayoutBlock--1aed4lu.EditorBrickAsComponent--selfLayoutContainer--1aed4lu {\n grid-column: 1 / -1;\n}\n\n.EditorBrickAsComponent--slotContentLayoutInline--1aed4lu {\n margin: 0 var(--editor-brick-gap-half);\n}\n\n.EditorBrickAsComponent--slotContentLayoutInline--1aed4lu.EditorBrickAsComponent--selfLayoutInline--1aed4lu,\n.EditorBrickAsComponent--slotContentLayoutInline--1aed4lu.EditorBrickAsComponent--selfLayoutBlock--1aed4lu {\n width: 150px;\n}\n\n.EditorBrickAsComponent--slotContentLayoutInline--1aed4lu.EditorBrickAsComponent--selfLayoutContainer--1aed4lu {\n width: 100%;\n}\n\n.EditorBrickAsComponent--dragging--1aed4lu {\n opacity: 0.3;\n}\n\n.EditorBrickAsComponent--baseView--1aed4lu {\n height: 100%;\n min-height: 100%;\n}\n");function xe(e,t,n,o){var r=function(e,t){var n=e.getBoundingClientRect(),o=[],r=Array.from(t.children).filter(e=>!e.classList.contains("__isTemplateInternalNode"));if(r.length>0){var i={cells:[]},d=[i];r.forEach((e,t)=>{var n,o,r=e.getBoundingClientRect(),a={index:t,top:r.top,bottom:r.bottom,left:r.left,right:r.right},s=i.cells.length>0&&i.cells[i.cells.length-1];!s||Ie(r.left,s.right)>0&&Ie(r.top,s.bottom)<0?(i.cells.push(a),i.top=Math.min(null!==(n=i.top)&&void 0!==n?n:1/0,r.top),i.bottom=Math.max(null!==(o=i.bottom)&&void 0!==o?o:-1/0,r.bottom)):(i={cells:[a],top:r.top,bottom:r.bottom},d.push(i))});var s=n.top,l=n.top;d.forEach((e,t)=>{if(1===e.cells.length){var r=e.cells[0],i=(r.top+r.bottom)/2;if(o.push({rect:{top:s,bottom:i,left:n.left,right:n.right},cursor:{index:r.index,y:(l+r.top)/2-n.top}}),s=i,l=r.bottom,t===d.length-1)o.push({rect:{top:s,bottom:n.bottom,left:n.left,right:n.right},cursor:{index:r.index+1,y:Math.min(r.bottom+6,(r.bottom+n.bottom)/2)-n.top}});else if(d[t+1].cells.length>1){var p=d[t+1],u=(r.bottom+p.top)/2;o.push({rect:{top:s,bottom:u,left:n.left,right:n.right},cursor:{index:r.index+1,y:u-n.top}}),s=u}}else{var c=n.left,v=n.left,g=t<d.length-1?(d[t+1].top+e.bottom)/2:n.bottom,h={isVertical:!0,y:e.top-n.top,height:e.bottom-e.top};e.cells.forEach((r,i)=>{var l=(r.left+r.right)/2;o.push({rect:{top:s,bottom:g,left:c,right:l},cursor:a()(a()({},h),{},{index:r.index,x:(v+r.left)/2-n.left})}),c=l,v=r.right,i===e.cells.length-1&&(t===d.length-1?o.push({rect:{top:s,bottom:n.bottom,left:c,right:n.right},cursor:a()(a()({},h),{},{index:r.index+1,x:Math.min(v+6,n.right)-n.left})}):o.push({rect:{top:s,bottom:g,left:c,right:n.right},cursor:a()(a()({},h),{},{index:r.index+1,x:Math.min(v+6,n.right)-n.left})}))}),s=g,l=e.bottom}})}return o}(n,o);for(var{rect:i,cursor:d}of r)if(e>=i.left&&e<=i.right&&t>=i.top&&t<=i.bottom)return d;return{index:0,y:5}}function Ie(e,t){var n=e-t;return Math.abs(n)<1?0:n}function Te(e){var{draggingNodeUid:t,draggingNodeId:n,draggingIndex:o,droppingMountPoint:r,droppingSiblingGroups:i,droppingIndex:a}=e,d=Array.isArray(t)?t:[t],s=i.flatMap(e=>e.childNodes),l=i.flatMap(e=>{var t=e.childNodes.map(e=>e.$$uid).filter(e=>!d.includes(e));return e.mountPoint===r&&t.splice((null!=o?o:-1)>=0&&a>o?a-1:a,0,...d),t}),p=l.map(e=>d.includes(e)?n:s.find(t=>t.$$uid===e).id);return{nodeUids:l,nodeIds:p}}function $e(e){return Object(o.useMemo)(()=>{var t=[],n=[];for(var o of e)o.portal?n.push([o]):t.push(o);return[t,...n,[]]},[e])}var Se={dropZone:"DropZone--dropZone--189f8p9",isSlot:"DropZone--isSlot--189f8p9",dropping:"DropZone--dropping--189f8p9",showOutlineIfEmpty:"DropZone--showOutlineIfEmpty--189f8p9",isRoot:"DropZone--isRoot--189f8p9",dropZoneBody:"DropZone--dropZoneBody--189f8p9",active:"DropZone--active--189f8p9",isPortalCanvas:"DropZone--isPortalCanvas--189f8p9",fullscreen:"DropZone--fullscreen--189f8p9",hasTabs:"DropZone--hasTabs--189f8p9",slotContentLayoutBlock:"DropZone--slotContentLayoutBlock--189f8p9",slotContentLayoutInline:"DropZone--slotContentLayoutInline--189f8p9",slotContentLayoutGrid:"DropZone--slotContentLayoutGrid--189f8p9","mode-dialog":"DropZone--mode-dialog--189f8p9","mode-large":"DropZone--mode-large--189f8p9","mode-small":"DropZone--mode-small--189f8p9","mode-drawer":"DropZone--mode-drawer--189f8p9",dropCursor:"DropZone--dropCursor--189f8p9",dropCursorHorizontal:"DropZone--dropCursorHorizontal--189f8p9",dropCursorVertical:"DropZone--dropCursorVertical--189f8p9"};ae('.DropZone--dropZone--189f8p9 {\n position: relative;\n min-height: calc(var(--editor-brick-base-height) + 2px);\n border-radius: var(--editor-brick-border-radius);\n\n --drop-zone-padding: 20px;\n}\n\n.DropZone--isSlot--189f8p9 {\n border: 1px dashed transparent;\n}\n\n.DropZone--isSlot--189f8p9.DropZone--dropping--189f8p9 {\n background: var(--editor-brick-slot-bg);\n border-color: var(--editor-brick-slot-stroke-color);\n}\n\n.DropZone--showOutlineIfEmpty--189f8p9:not(.DropZone--dropping--189f8p9) {\n background: var(--editor-brick-skeleton-bg-light);\n}\n\n.DropZone--isRoot--189f8p9 > .DropZone--dropZoneBody--189f8p9 {\n padding: calc(var(--drop-zone-padding) + 7px) var(--drop-zone-padding)\n var(--drop-zone-padding);\n}\n\n.DropZone--isRoot--189f8p9.DropZone--active--189f8p9,\n.DropZone--isRoot--189f8p9.DropZone--dropping--189f8p9 {\n box-shadow: 0 0 0 1px var(--editor-brick-stroke-color-active);\n}\n\n.DropZone--isPortalCanvas--189f8p9,\n.DropZone--isRoot--189f8p9:not(.DropZone--isPortalCanvas--189f8p9) > .DropZone--dropZoneBody--189f8p9 {\n height: calc(\n 100vh - 148px - var(--editor-brick-toolbar-height) - var(--page-card-gap)\n );\n overflow-y: auto;\n}\n\n.DropZone--fullscreen--189f8p9.DropZone--isPortalCanvas--189f8p9,\n.DropZone--fullscreen--189f8p9:not(.DropZone--isPortalCanvas--189f8p9) > .DropZone--dropZoneBody--189f8p9 {\n height: calc(\n 100vh - var(--editor-brick-overlay-padding) * 2 - var(--page-card-gap) * 2 -\n var(--editor-brick-toolbar-height)\n );\n}\n\n.DropZone--hasTabs--189f8p9.DropZone--isPortalCanvas--189f8p9,\n.DropZone--hasTabs--189f8p9.DropZone--isRoot--189f8p9:not(.DropZone--isPortalCanvas--189f8p9) > .DropZone--dropZoneBody--189f8p9 {\n height: calc(\n 100vh - 158px - var(--editor-brick-toolbar-height) - var(--page-card-gap)\n );\n overflow-y: auto;\n}\n\n.DropZone--hasTabs--189f8p9.DropZone--fullscreen--189f8p9.DropZone--isPortalCanvas--189f8p9,\n.DropZone--hasTabs--189f8p9.DropZone--fullscreen--189f8p9:not(.DropZone--isPortalCanvas--189f8p9) > .DropZone--dropZoneBody--189f8p9 {\n height: calc(\n 100vh - var(--editor-brick-overlay-padding) * 2 - var(--page-card-gap) * 2 -\n 10px - var(--editor-brick-toolbar-height)\n );\n}\n\n.DropZone--slotContentLayoutBlock--189f8p9 > .DropZone--dropZoneBody--189f8p9 {\n display: grid;\n grid-gap: var(--editor-brick-gap);\n grid-template-columns: repeat(\n auto-fill,\n minmax(var(--editor-brick-inline-width), 1fr)\n );\n}\n\n.DropZone--slotContentLayoutInline--189f8p9 > .DropZone--dropZoneBody--189f8p9 {\n display: flex;\n flex-wrap: wrap;\n margin: 0 calc(var(--editor-brick-gap-half) * -1);\n}\n\n.DropZone--slotContentLayoutGrid--189f8p9 > .DropZone--dropZoneBody--189f8p9 {\n display: grid;\n grid-gap: var(--editor-brick-gap);\n grid-template-columns: repeat(\n auto-fill,\n minmax(var(--editor-brick-grid-width), 1fr)\n );\n height: 100%;\n}\n\n.DropZone--mode-dialog--189f8p9 > .DropZone--dropZoneBody--189f8p9 {\n margin: 0 auto;\n max-width: calc(600px + var(--drop-zone-padding) * 2);\n}\n\n.DropZone--mode-dialog--189f8p9.DropZone--mode-large--189f8p9 > .DropZone--dropZoneBody--189f8p9 {\n max-width: calc(800px + var(--drop-zone-padding) * 2);\n}\n\n.DropZone--mode-dialog--189f8p9.DropZone--mode-small--189f8p9 > .DropZone--dropZoneBody--189f8p9 {\n max-width: calc(400px + var(--drop-zone-padding) * 2);\n}\n\n.DropZone--mode-drawer--189f8p9 > .DropZone--dropZoneBody--189f8p9 {\n margin: 0 auto;\n max-width: calc(900px + var(--drop-zone-padding) * 2);\n}\n\n.DropZone--mode-drawer--189f8p9.DropZone--mode-large--189f8p9 > .DropZone--dropZoneBody--189f8p9 {\n max-width: calc(1200px + var(--drop-zone-padding) * 2);\n}\n\n.DropZone--mode-drawer--189f8p9.DropZone--mode-small--189f8p9 > .DropZone--dropZoneBody--189f8p9 {\n max-width: calc(600px + var(--drop-zone-padding) * 2);\n}\n\n.DropZone--dropCursor--189f8p9 {\n position: absolute;\n background: #bb79bb;\n display: none;\n pointer-events: none;\n}\n\n.DropZone--dropping--189f8p9 > .DropZone--dropCursor--189f8p9 {\n display: block;\n}\n\n.DropZone--dropCursorHorizontal--189f8p9 {\n height: 2px;\n left: 10px;\n right: 10px;\n margin-top: -1px;\n}\n\n.DropZone--dropCursorVertical--189f8p9 {\n width: 2px;\n margin-left: -1px;\n}\n\n.DropZone--dropCursor--189f8p9::before,\n.DropZone--dropCursor--189f8p9::after {\n position: absolute;\n content: "";\n background: #bb79bb;\n}\n\n.DropZone--dropCursorHorizontal--189f8p9::before,\n.DropZone--dropCursorHorizontal--189f8p9::after {\n top: -4px;\n height: 10px;\n width: 2px;\n}\n\n.DropZone--dropCursorHorizontal--189f8p9::before {\n left: 0;\n}\n\n.DropZone--dropCursorHorizontal--189f8p9::after {\n right: 0;\n}\n\n.DropZone--dropCursorVertical--189f8p9::before,\n.DropZone--dropCursorVertical--189f8p9::after {\n left: -4px;\n width: 10px;\n height: 2px;\n}\n\n.DropZone--dropCursorVertical--189f8p9::before {\n top: 0;\n}\n\n.DropZone--dropCursorVertical--189f8p9::after {\n bottom: 0;\n}\n');var Ae=["type"];function Pe(e){var{nodeUid:t,isRoot:n,separateCanvas:o,isPortalCanvas:i,independentPortalCanvas:d,canvasIndex:s,mountPoint:p,fullscreen:c,delegatedContext:v,dropZoneStyle:h,dropZoneBodyStyle:f,slotContentLayout:E,showOutlineIfEmpty:b,hiddenWrapper:N=!0,emptyClassName:D}=e,O=r.a.useRef(),[y,x]=r.a.useState(null),I=r.a.useRef(),T=re(),$=te(),{nodes:A,edges:P,wrapperNode:k}=ne(),w=N&&n&&!Object(l.isEmpty)(k),L=oe({nodeUid:t,isRoot:n,isWrapper:w}),U=De({nodeUid:t,isRoot:n,doNotExpandTemplates:w,isWrapper:w}),j=d?s>0:i,B=o||d,R=ye(),Z=null!=E?E:g.BLOCK,M=r.a.useMemo(()=>{var e,t;return null!==(e=null===(t=U.find(e=>e.mountPoint===p))||void 0===t?void 0:t.childNodes)&&void 0!==e?e:[]},[U,p]),H=$e(M),q=r.a.useMemo(()=>o?M.filter(e=>Boolean(Number(Boolean(i))^Number(!e.portal))):d?H[Object(l.clamp)(null!=s?s:0,0,H.length-1)]:M,[s,d,i,M,H,o]),G=r.a.useMemo(()=>{var e;return null===(e=q[0])||void 0===e?void 0:e.$$parsedProperties._canvas_},[q]),V=r.a.useCallback(e=>{if(!B)return e;if(q.length>0){var t=q[0===e?0:e-1];return M.findIndex(e=>e===t)+(0===e?0:1)}return j?M.length:0},[B,q,j,M]),W=r.a.useCallback(()=>{if(v){var e,t,n=Oe({nodeUid:v.templateUid,nodes:A,edges:P,doNotExpandTemplates:!0});return{droppingParentUid:v.templateUid,droppingParentInstanceId:A.find(e=>e.$$uid===v.templateUid).instanceId,droppingMountPoint:v.templateMountPoint,droppingChildNodes:null!==(e=null===(t=n.find(e=>e.mountPoint===v.templateMountPoint))||void 0===t?void 0:t.childNodes)&&void 0!==e?e:[],droppingSiblingGroups:n}}return{droppingParentUid:L.$$uid,droppingParentInstanceId:w?k.instanceId:L.instanceId,droppingMountPoint:p,droppingChildNodes:M,droppingSiblingGroups:U}},[v,P,U,p,L,A,M,w,k]),[{isDraggingOverCurrent:X},Y]=Object(C.useDrop)({accept:[u.NODE_TO_ADD,u.NODE_TO_MOVE,u.SNIPPET_TO_APPLY],canDrop:e=>d&&j?0===q.length:e.type===u.NODE_TO_ADD||e.type===u.SNIPPET_TO_APPLY||n||R(e.nodeUid,t),collect:e=>({isDraggingOverCurrent:e.isOver({shallow:!0})&&e.canDrop()}),hover:(e,t)=>{if(t.isOver({shallow:!0})&&t.canDrop()){var{x:n,y:o}=t.getClientOffset();I.current=xe(n,o,O.current.parentElement,O.current),x(I.current)}},drop:(e,t)=>{if(!t.didDrop()){var{type:n}=e,o=m()(e,Ae);!function(e){var{manager:t,type:n,data:o,droppingIndex:r,droppingParentUid:i,droppingParentInstanceId:d,droppingMountPoint:s,droppingChildNodes:l,droppingSiblingGroups:p,isPortalCanvas:c}=e;if(n===u.NODE_TO_ADD){var{brickType:v="brick",brick:g}=o,h=_();t.nodeAdd(a()(a()({},Te({draggingNodeUid:h,draggingNodeId:null,droppingIndex:r,droppingMountPoint:s,droppingSiblingGroups:p})),{},{nodeUid:h,parentUid:i,nodeData:{parent:d,type:v,brick:g,mountPoint:s,bg:!c&&"provider"===v||void 0,portal:c}}))}else if(n===u.SNIPPET_TO_APPLY){var{bricks:f}=o,E=[...new Array(f.length)].map(()=>_());t.snippetApply(a()(a()({},Te({draggingNodeUid:E,draggingNodeId:null,droppingIndex:r,droppingMountPoint:s,droppingSiblingGroups:p})),{},{parentUid:i,nodeDetails:f.map((e,t)=>z({parent:d,parentUid:i,mountPoint:s,nodeUid:E[t],brickConf:e,isPortalCanvas:c}))}))}else if(n===u.NODE_TO_MOVE){var{nodeUid:m,nodeId:C,nodeInstanceId:b}=o,N=l.findIndex(e=>e.$$uid===m);N>=0?r!==N&&r!==N+1&&t.nodeReorder(a()(a()({},Te({draggingNodeUid:m,draggingNodeId:C,draggingIndex:N,droppingIndex:r,droppingMountPoint:s,droppingSiblingGroups:p})),{},{parentUid:i})):t.nodeMove(a()(a()({},Te({draggingNodeUid:m,draggingNodeId:C,droppingIndex:r,droppingMountPoint:s,droppingSiblingGroups:p})),{},{nodeUid:m,parentUid:i,nodeInstanceId:b,nodeData:{parent:d,mountPoint:s}}))}}(a()({type:n,data:o,droppingIndex:V(I.current.index),isPortalCanvas:j,manager:$},W()))}}});r.a.useEffect(()=>{$.updateDroppingStatus(v?v.templateUid:L.$$uid,v?v.templateMountPoint:p,X)},[X,p,$,v,L]);var K=!!v||w||!(L.$$isExpandableTemplate||L.$$isTemplateInternalNode),Q=r.a.useRef(),F=r.a.useCallback(e=>{Q.current=e,K&&Y(e)},[Y,K]),J=r.a.useCallback(e=>{!j&&se(e.target,Q.current)&&(e.preventDefault(),$.contextMenuChange({active:!0,node:L,x:e.clientX,y:e.clientY}))},[j,$,L]);return r.a.createElement("div",{ref:F,className:S(Se.dropZone,n?S(Se.isRoot,(null==G?void 0:G.mode)&&String(G.mode).split(/\s+/g).map(e=>Se["mode-".concat(e)]),{[Se.fullscreen]:c,[Se.hasTabs]:B}):Se.isSlot,{[Se.isPortalCanvas]:j,[Se.dropping]:X,[Se.active]:n&&T.active&&T.node.$$uid===L.$$uid,[Se.showOutlineIfEmpty]:!n&&b&&0===M.length,[Se.slotContentLayoutBlock]:Z===g.BLOCK,[Se.slotContentLayoutInline]:Z===g.INLINE,[Se.slotContentLayoutGrid]:Z===g.GRID}),style:h,onContextMenu:n?J:null},r.a.createElement("div",{ref:O,className:S(Se.dropZoneBody,0===q.length&&D),"data-slot-id":p,style:f},q.map(e=>r.a.createElement(Ne,{key:e.$$uid,node:e,slotContentLayout:Z}))),r.a.createElement("div",{className:S(Se.dropCursor,null!=y&&y.isVertical?Se.dropCursorVertical:Se.dropCursorHorizontal),style:{top:null==y?void 0:y.y,left:null==y?void 0:y.x,height:null==y?void 0:y.height}}))}var ke="SlotContainer--slotContainer--ya4ml4",_e="SlotContainer--slotName--ya4ml4",we="SlotContainer--dropping--ya4ml4";function Le(e){var t,{nodeUid:n,slotName:i,slotContainerStyle:a,dropZoneStyle:d,dropZoneBodyStyle:s,slotContentLayout:l,showOutlineIfEmpty:p,emptyClassName:u}=e,c=oe({nodeUid:n}),v=ue(),g=Object(o.useMemo)(()=>{var e,t=null===(e=c.$$delegatedSlots)||void 0===e?void 0:e.get(i);return 1===(null==t?void 0:t.length)?t[0]:null},[c,i]);return r.a.createElement("div",{className:S(ke,{[we]:null===(t=v.get(g?g.templateUid:n))||void 0===t?void 0:t.get(g?g.templateMountPoint:i)}),style:a},r.a.createElement("div",{className:_e},g?g.templateMountPoint:i),r.a.createElement(Pe,{nodeUid:n,mountPoint:i,delegatedContext:g,dropZoneStyle:d,dropZoneBodyStyle:s,slotContentLayout:l,showOutlineIfEmpty:p,emptyClassName:u}))}ae(".SlotContainer--slotContainer--ya4ml4 {\n position: relative;\n}\n\n.SlotContainer--slotName--ya4ml4 {\n position: absolute;\n top: -23px;\n height: calc(23px + var(--editor-brick-border-radius));\n line-height: 20px;\n color: var(--text-color-secondary);\n padding: 0 5px;\n border-radius: 2px;\n color: #737373;\n white-space: nowrap;\n visibility: hidden;\n pointer-events: none;\n border: 1px dashed var(--editor-brick-slot-stroke-color);\n background: var(--editor-brick-slot-bg);\n}\n\n.SlotContainer--slotContainer--ya4ml4.SlotContainer--dropping--ya4ml4 > .SlotContainer--slotName--ya4ml4 {\n visibility: visible;\n}\n");var Ue=r.a.memo(Ze),je=Symbol.for("__BRICK_NEXT_BUILDER_CONTEXT_INSTANCE__");function Be(){var e=window;return e[je]||(e[je]={manager:new Q}),e[je]}var Re=0;function Ze(e){var{children:t}=e,n=Be();return r.a.useEffect(()=>(Re++,()=>{0===--Re&&(window[je]=null)}),[]),r.a.createElement(ee.Provider,{value:n},t)}function Me(e,t){return y()(null,(function(n,o){return{F:class extends o{constructor(){super(...arguments),n(this)}},d:[{kind:"get",static:!0,key:"selfLayout",value:function(){return null==t?void 0:t.selfLayout}},{kind:"field",decorators:[Object(D.property)({type:Number})],key:"nodeUid",value:void 0},{kind:"field",decorators:[Object(D.property)({attribute:!1})],key:"editorProps",value:void 0},{kind:"method",key:"connectedCallback",value:function(){if(this.style.display||(this.style.display="block"),null!=t&&t.brickStyle)for(var[e,n]of Object.entries(t.brickStyle))this.style[e]=n;this._render()}},{kind:"method",key:"disconnectedCallback",value:function(){I.a.unmountComponentAtNode(this)}},{kind:"method",key:"_render",value:function(){this.isConnected&&this.nodeUid&&I.a.render(r.a.createElement(D.BrickWrapper,null,r.a.createElement(Ue,null,r.a.createElement(C.DndProvider,{backend:T.HTML5Backend},r.a.createElement(e,{nodeUid:this.nodeUid,editorProps:this.editorProps})))),this)}}]}}),D.UpdatingElement)}var He=Object(o.createContext)({});function qe(e){var{nodeUid:t,isRoot:n,doNotExpandTemplates:r}=e,{rootId:i,edges:a}=ne(),d=n?i:t;return Object(o.useMemo)(()=>{var e=new Set,t=Object(l.sortBy)(a.filter(e=>e.parent===d&&(r?!e.$$isTemplateInternal:!e.$$isTemplateDelegated)),[e=>e.sort]);for(var n of t)e.add(n.mountPoint);return Array.from(e)},[d,a,r])}function Ge(e){var{nodes:t,edges:n}=ne();return Object(o.useMemo)(()=>{var o=n.find(t=>t.child===e&&!t.$$isTemplateExpanded).parent;return t.find(e=>e.$$uid===o)},[n,e,t])}function Ve(){var e=te(),[t,n]=Object(o.useState)(e.getRouteList());return Object(o.useEffect)(()=>e.onRouteListChange(()=>{n(e.getRouteList())}),[e]),t}function We(){var e=te(),[t,n]=Object(o.useState)(e.getActiveNodeUid());return Object(o.useEffect)(()=>e.onActiveNodeChange(()=>{n(e.getActiveNodeUid())}),[e]),t}function Xe(e,t){var n=te(),[r,i]=Object(o.useState)(!t&&n.isOutlineEnabled(e));return Object(o.useEffect)(()=>{if(!t)return n.onOutlineEnabledNodesChange(()=>{i(n.isOutlineEnabled(e))})},[t,n,e]),r}},XuQu:function(e,t){e.exports=dll},ZR4k:function(e,t,n){e.exports=n("XuQu")("ZR4k")},i8i4:function(e,t,n){e.exports=n("XuQu")("i8i4")},lSNA:function(e,t,n){e.exports=n("XuQu")("lSNA")},q1tI:function(e,t,n){e.exports=n("/8r5")("q1tI")},qJlv:function(e,t,n){e.exports=n("/8r5")("qJlv")},tYg3:function(e,t,n){e.exports=n("XuQu")("tYg3")},yXPU:function(e,t,n){e.exports=n("XuQu")("yXPU")}});
8
- //# sourceMappingURL=dll-of-editor-bricks-helper.e2913395.js.map
8
+ //# sourceMappingURL=dll-of-editor-bricks-helper.c4bb70ae.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["webpack://[name]/dll-of-editor-bricks-helper.e2913395.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","useActiveNodeUid","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__","js_yaml__WEBPACK_IMPORTED_MODULE_5__","js_yaml__WEBPACK_IMPORTED_MODULE_5___default","_babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_6__","_babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_6___default","react_dnd__WEBPACK_IMPORTED_MODULE_7__","_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_8__","_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_8___default","_next_core_brick_kit__WEBPACK_IMPORTED_MODULE_9__","_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","_ref","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","_ref2","parentUid","nodeUids","indexOf","deleteNodeFromTree","nodeUid","wrapperNode","idsToDelete","Set","collectIdsToDelete","add","ids","id","has","collectRelatedNodes","handlers","nodesMap","targetMap","targetRefMap","handler","targetNodeUid","downstreamNodes","upstreamNodes","targetRef","concat","targetRefNodeUid","callbackHandlers","values","nodeIgnoreFields","computationRegExp","getBuilderNode","nodeData","isTemplateInternalNode","matchedSelectors","brick","replace","parsedId","parsedTestId","normalized","parsedFields","field","parsed","_parsed$dataset","tempParsedTestId","tempParsedId","dataset","testid","test","isBrick","brickName","split","pop","fromEntries","entries","entry","includes","alias","getAppendingNodesAndEdges","templateSourceMap","storyList","isRoot","currentUid","processedTemplateSet","inheritedTemplateRefToUid","layoutType","_templateSource$child","_storyList$find","_templateSource$child2","templateSource","builderNode","startsWith","children","storyId","originData","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","properties","_cursorNode$$$templat4","propertyEntries","propertyName","propertyConf","$$parsedProperties","isBasicRefProperty","propertyValue","refProperty","overrideChildrenMountPoint","_item$sort2","_overrideChildrenMoun","$$isTemplateDelegated","_loop2","_ret","propRef","isParentExpandableTemplate","jsonFieldsInBrick","yamlFieldsInBrick","ignoredFieldsInBrick","reverseNormalize","brickConf","ctx","stringify","a","safeDump","Boolean","template","isPortalCanvas","portal","getSnippetNodeDetail","bg","flatMap","bricks","childBrickConf","_ref3","BuilderInternalEventType","getObjectIdByNode","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","root","newData","triggerDataChange","rootNodeIsCustomTemplate","selector","$$matchedSelectors","$$parsedEvents","flat","$$parsedLifeCycle","lifeCycleName","lifeCycleConf","messageConf","console","warn","getRelatedNodesBasedOnEvents","DATA_CHANGE","detail","addNodes","addEdges","getStoryList","runAddNodeAction","instanceId","updateNode","newNodes","NODE_UPDATE","_detail$nodeDetails","nodeDetails","redirectMountPoint","NODE_ADD","redirectSnippetMountPoint","appendingNodes","appendingEdges","SNIPPET_APPLY","flattenNodeDetails","found","NODE_MOVE","direction","relatedEdges","mountPoints","getRelatedEdgesAndMountPoint","orderedSiblingEdges","moveItemInList","orderedEdges","reorder","sortIndex","dragNodeUid","dragOverNodeUid","dragStatus","isDragRoot","dragEdge","dragOverEdge","parentEdge","parnetNodeData","siblingEdge","sortUids","sortNodeIds","sortNodeInstanceIds","Math","max","_dragEdge$child","overIndex","isNeedUpdateSnippet","dragOverInstanceId","_nodeData$id","_nodeData$instanceId","parentInstanceId","newNodeUid","realDragStatus","overEdge","nodeIds","nodeInstanceIds","getDragInfo","snippetData","snippetApply","sortData","originEdge","originParentUid","originParentNode","WORKBENCH_TREE_NODE_MOVE","nodeInstanceId","objectId","_ref4","orderedMountPoints","childUids","childIds","NODE_REORDER","context","setActiveNodeUid","NODE_CLICK","CONTEXT_MENU_CHANGE","show","showRelatedNodesBasedOnEvents","SHOW_RELATED_NODES_BASED_ON_EVENTS","hoverNodeUid","HOVER_NODE_CHANGE","activeNodeUid","ACTIVE_NODE_CHANGE","outlineDisabledNodes","delete","setItem","from","OUTLINE_DISABLED_NODES_CHANGE","highlightNodes","HIGHLIGHT_NODES_CHANGE","isDraggingOver","nodeStatus","droppingStatus","DROPPING_STATUS_CHANGE","setHoverNodeUid","mountPointSet","list","upperIndex","BuilderContext","createContext","manager","useContext","Error","setData","getData","onDataChange","isWrapper","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","_droppingStatus$get$v","_droppingStatus$get","isTransparentContainer","editorContainerStyle","editorBodyStyle","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","_node$brick$split$","isWidget","editorBrick","loadEditorBricks","error","customElements","styles$2","EditorBrickAsComponent","slotContentLayout","initialized","setInitialized","useState","setEditorBrick","loadEditorError","setLoadEditorError","hasChildren","useMemo","installedBricksEnabled","getFeatureFlags","brickDoc","doc","getBrickDoc","editorMap","getSharedEditorMap","getSharedEditorList","conf","onSharedEditorListChange","useSharedEditorMap","editorConf","useEffect","editorName","editorError","_x","_x2","getEditorBrick","message","editorProps","selfLayout","_layout","layout","CONTAINER","INLINE","isDragging","dragRef","NODE_TO_MOVE","nodeId","dropEffect","collect","monitor","BLOCK","__isTemplateInternalNode","draggable","useBrick","doNotExpandTemplates","getBuilderGroupedChildNodes","groups","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","min","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","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","hiddenWrapper","emptyClassName","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","droppingParentUid","droppingParentInstanceId","droppingChildNodes","isDraggingOverCurrent","dropRef","accept","NODE_TO_ADD","SNIPPET_TO_APPLY","isOver","shallow","getClientOffset","drop","didDrop","brickType","nodeAdd","_draggingNodeUid","draggingNodeInstanceId","nodeReorder","nodeMove","processDrop","updateDroppingStatus","droppable","dropZoneRef","dropZoneRefCallback","String","GRID","data-slot-id","styles","slotContainerStyle","_node$$$delegatedSlot","delegatedSlots","memo","LegacyBuilderProvider","instanceSymbol","for","createSingletonBuilderContext","refCount","Provider","EditorComponent","_initialize","_UpdatingElement","F","super","kind","static","decorators","attribute","display","brickStyle","_render","unmountComponentAtNode","isConnected","render","backend","getRouteList","onRouteListChange","getActiveNodeUid","onActiveNodeChange","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.c4bb70ae.js","sourceRoot":""}
@@ -1 +1 @@
1
- {"name":"DllOfEditorBricksHelper","content":{"dll-reference DllOfReactDnd":{"id":"/8r5","buildMeta":{"providedExports":true}},"./node_modules/@babel/runtime/helpers/objectSpread2.js":{"id":"3tO9","buildMeta":{"providedExports":true}},"./node_modules/@easyops/brick-utils/dist/index.esm.js":{"id":"A+yw","buildMeta":{"exportsType":"namespace","providedExports":["pipes","JsonStorage","PrecookFunctionVisitor","PrecookVisitor","asyncProcessBrick","asyncProcessStoryboard","collectBricksByCustomTemplates","computeRealRoutePath","convertValueByPrecision","cook","createProviderClass","debounceByAnimationFrame","deepFreeze","formatValue","getDependencyMapOfContext","getDepsOfTemplates","getDllAndDepsByResource","getDllAndDepsOfBricks","getDllAndDepsOfStoryboard","getTemplateDepsOfStoryboard","hasOwnProperty","inject","isBrickNode","isCustomTemplateNode","isEvaluable","isObject","isRouteNode","isSnippetNode","lint","loadScript","makeThrottledAggregation","mapCustomApisToNameAndNamespace","matchPath","normalizeBuilderNode","normalizeMenu","parseForAnalysis","precook","precookFunction","preevaluate","prefetchScript","resolveContextConcurrently","restoreDynamicTemplates","scanAppGetMenuInAny","scanAppGetMenuInStoryboard","scanBricksInBrickConf","scanBricksInStoryboard","scanCustomApisInStoryboard","scanI18NInAny","scanI18NInStoryboard","scanInstalledAppsInStoryboard","scanPermissionActionsInAny","scanPermissionActionsInStoryboard","scanProcessorsInAny","scanProcessorsInStoryboard","scanRouteAliasInStoryboard","scanStoryboard","scanTemplatesInBrick","scanTemplatesInStoryboard","shouldAllowRecursiveEvaluations","smartDisplayForEvaluableString","syncResolveContextConcurrently","toPath","tokTypes","trackContext","trackState","trackUsedContext","trackUsedState","transform","transformAndInject","visitStoryboardExpressions","visitStoryboardFunctions"]}},"./node_modules/@babel/runtime/helpers/decorate.js":{"id":"ACCw","buildMeta":{"providedExports":true}},"./node_modules/react-dnd/dist/esm/index.js":{"id":"IYwU","buildMeta":{"exportsType":"namespace","providedExports":true}},"./node_modules/lodash/lodash.js":{"id":"LvDl","buildMeta":{"providedExports":true}},"./node_modules/@babel/runtime/helpers/objectWithoutProperties.js":{"id":"QILm","buildMeta":{"providedExports":true}},"./node_modules/@easyops/editor-bricks-helper/dist/index.esm.js":{"id":"WnDu","buildMeta":{"exportsType":"namespace","providedExports":["isBrickNode","isCustomTemplateNode","isRouteNode","isSnippetNode","BuilderDataTransferType","BuilderProvider","DropZone","DroppingStatusContext","EditorBrickType","EditorContainer","EditorElementFactory","EditorSelfLayout","EditorSlotContentLayout","SlotContainer","getSortedIdsAfterDropped","useActiveNodeUid","useBuilderContextMenuStatus","useBuilderData","useBuilderDataManager","useBuilderGroupedChildNodes","useBuilderNode","useBuilderNodeMountPoints","useBuilderParentNode","useCanDrop","useCanvasList","useHighlightNodes","useHoverNodeUid","useOutlineEnabled","useRouteList","useShowRelatedNodesBasedOnEvents"]}},"dll-reference dll":{"id":"XuQu","buildMeta":{"providedExports":true}},"./node_modules/js-yaml/index.js":{"id":"ZR4k","buildMeta":{"providedExports":true}},"./node_modules/react-dom/index.js":{"id":"i8i4","buildMeta":{"providedExports":true}},"./node_modules/@babel/runtime/helpers/defineProperty.js":{"id":"lSNA","buildMeta":{"providedExports":true}},"./node_modules/react/index.js":{"id":"q1tI","buildMeta":{"providedExports":true}},"./node_modules/react-dnd-html5-backend/dist/esm/index.js":{"id":"qJlv","buildMeta":{"exportsType":"namespace","providedExports":["getEmptyImage","NativeTypes","HTML5Backend"]}},"./node_modules/@easyops/brick-kit/dist/index.esm.js":{"id":"tYg3","buildMeta":{"exportsType":"namespace","providedExports":["BrickAsComponent","BrickWrapper","DisplayByFeatureFlags","EasyopsEmpty","ErrorBoundary","FeatureFlagsProvider","ForwardRefSingleBrickAsComponent","ModalElement","SingleBrickAsComponent","StoryboardFunctionRegistryFactory","UpdatingElement","abortController","authenticate","batchSetAppsLocalTheme","checkIf","checkIfByTransform","createHistory","createRuntime","developHelper","doTransform","event","getAuth","getCssPropertyValue","getCurrentTheme","getHistory","getMockInfo","getRealValue","getRuntime","getRuntimeMisc","handleHttpError","httpErrorToString","i18nText","initI18n","isLoggedIn","logout","looseCheckIf","looseCheckIfByTransform","looseCheckIfOfComputed","method","preprocessTransformProperties","property","reTransformForDevtools","renderEasyopsEmpty","transformElementProperties","transformIntermediateData","transformProperties","useApplyPageTitle","useCurrentApp","useCurrentMode","useCurrentTheme","useFeatureFlags","useLocation","useProvider","useRecentApps"]}},"./node_modules/@babel/runtime/helpers/asyncToGenerator.js":{"id":"yXPU","buildMeta":{"providedExports":true}}}}
1
+ {"name":"DllOfEditorBricksHelper","content":{"dll-reference DllOfReactDnd":{"id":"/8r5","buildMeta":{"providedExports":true}},"./node_modules/@babel/runtime/helpers/objectSpread2.js":{"id":"3tO9","buildMeta":{"providedExports":true}},"./node_modules/@easyops/brick-utils/dist/index.esm.js":{"id":"A+yw","buildMeta":{"exportsType":"namespace","providedExports":["pipes","JsonStorage","PrecookFunctionVisitor","PrecookVisitor","asyncProcessBrick","asyncProcessStoryboard","collectBricksByCustomTemplates","computeConstantCondition","computeRealRoutePath","convertValueByPrecision","cook","createProviderClass","debounceByAnimationFrame","deepFreeze","formatValue","getDependencyMapOfContext","getDepsOfTemplates","getDllAndDepsByResource","getDllAndDepsOfBricks","getDllAndDepsOfStoryboard","getTemplateDepsOfStoryboard","hasOwnProperty","inject","isBrickNode","isCustomTemplateNode","isEvaluable","isObject","isRouteNode","isSnippetNode","lint","loadScript","makeThrottledAggregation","mapCustomApisToNameAndNamespace","matchPath","normalizeBuilderNode","normalizeMenu","parseForAnalysis","precook","precookFunction","preevaluate","prefetchScript","removeDeadConditions","removeDeadConditionsInTpl","resolveContextConcurrently","restoreDynamicTemplates","scanAppGetMenuInAny","scanAppGetMenuInStoryboard","scanBricksInBrickConf","scanBricksInStoryboard","scanCustomApisInStoryboard","scanI18NInAny","scanI18NInStoryboard","scanInstalledAppsInStoryboard","scanPermissionActionsInAny","scanPermissionActionsInStoryboard","scanProcessorsInAny","scanProcessorsInStoryboard","scanRouteAliasInStoryboard","scanStoryboard","scanTemplatesInBrick","scanTemplatesInStoryboard","shouldAllowRecursiveEvaluations","smartDisplayForEvaluableString","syncResolveContextConcurrently","toPath","tokTypes","trackContext","trackState","trackUsedContext","trackUsedState","transform","transformAndInject","visitStoryboardExpressions","visitStoryboardFunctions"]}},"./node_modules/@babel/runtime/helpers/decorate.js":{"id":"ACCw","buildMeta":{"providedExports":true}},"./node_modules/react-dnd/dist/esm/index.js":{"id":"IYwU","buildMeta":{"exportsType":"namespace","providedExports":true}},"./node_modules/lodash/lodash.js":{"id":"LvDl","buildMeta":{"providedExports":true}},"./node_modules/@babel/runtime/helpers/objectWithoutProperties.js":{"id":"QILm","buildMeta":{"providedExports":true}},"./node_modules/@easyops/editor-bricks-helper/dist/index.esm.js":{"id":"WnDu","buildMeta":{"exportsType":"namespace","providedExports":["isBrickNode","isCustomTemplateNode","isRouteNode","isSnippetNode","BuilderDataTransferType","BuilderProvider","DropZone","DroppingStatusContext","EditorBrickType","EditorContainer","EditorElementFactory","EditorSelfLayout","EditorSlotContentLayout","SlotContainer","getSortedIdsAfterDropped","useActiveNodeUid","useBuilderContextMenuStatus","useBuilderData","useBuilderDataManager","useBuilderGroupedChildNodes","useBuilderNode","useBuilderNodeMountPoints","useBuilderParentNode","useCanDrop","useCanvasList","useHighlightNodes","useHoverNodeUid","useOutlineEnabled","useRouteList","useShowRelatedNodesBasedOnEvents"]}},"dll-reference dll":{"id":"XuQu","buildMeta":{"providedExports":true}},"./node_modules/js-yaml/index.js":{"id":"ZR4k","buildMeta":{"providedExports":true}},"./node_modules/react-dom/index.js":{"id":"i8i4","buildMeta":{"providedExports":true}},"./node_modules/@babel/runtime/helpers/defineProperty.js":{"id":"lSNA","buildMeta":{"providedExports":true}},"./node_modules/react/index.js":{"id":"q1tI","buildMeta":{"providedExports":true}},"./node_modules/react-dnd-html5-backend/dist/esm/index.js":{"id":"qJlv","buildMeta":{"exportsType":"namespace","providedExports":["getEmptyImage","NativeTypes","HTML5Backend"]}},"./node_modules/@easyops/brick-kit/dist/index.esm.js":{"id":"tYg3","buildMeta":{"exportsType":"namespace","providedExports":["BrickAsComponent","BrickWrapper","DisplayByFeatureFlags","EasyopsEmpty","ErrorBoundary","FeatureFlagsProvider","ForwardRefSingleBrickAsComponent","ModalElement","SingleBrickAsComponent","StoryboardFunctionRegistryFactory","UpdatingElement","abortController","authenticate","batchSetAppsLocalTheme","checkIf","checkIfByTransform","createHistory","createRuntime","developHelper","doTransform","event","getAuth","getCssPropertyValue","getCurrentTheme","getHistory","getMockInfo","getRealValue","getRuntime","getRuntimeMisc","handleHttpError","httpErrorToString","i18nText","initI18n","isLoggedIn","logout","looseCheckIf","looseCheckIfByTransform","looseCheckIfOfComputed","method","preprocessTransformProperties","property","reTransformForDevtools","renderEasyopsEmpty","transformElementProperties","transformIntermediateData","transformProperties","useApplyPageTitle","useCurrentApp","useCurrentMode","useCurrentTheme","useFeatureFlags","useLocation","useProvider","useRecentApps"]}},"./node_modules/@babel/runtime/helpers/asyncToGenerator.js":{"id":"yXPU","buildMeta":{"providedExports":true}}}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-dll/editor-bricks-helper",
3
- "version": "0.32.8",
3
+ "version": "0.32.10",
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.47.34"
18
+ "@next-core/editor-bricks-helper": "^0.47.36"
19
19
  },
20
20
  "devDependencies": {
21
- "@next-core/brick-dll": "^2.38.8",
21
+ "@next-core/brick-dll": "^2.38.10",
22
22
  "@next-core/webpack-config-factory": "^2.19.0",
23
- "@next-dll/react-dnd": "^0.1.436"
23
+ "@next-dll/react-dnd": "^0.1.438"
24
24
  },
25
- "gitHead": "a323b3a4f189ed42e83e39bc7c626ec68b0b5aac"
25
+ "gitHead": "97c35b79ecb40f532d44f47dc438fd0f02caa05b"
26
26
  }
@@ -1 +0,0 @@
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/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/DropZone/reverseNormalize.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/DropZone/getSnippetNodeDetail.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/internal/getObjectIdByNode.ts","webpack://[name]/./node_modules/@next-core/editor-bricks-helper/src/internal/BuilderDataManager.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/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/DropZone/processDrop.ts","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/useActiveNodeUid.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","wrapperNode","idsToDelete","Set","collectIdsToDelete","add","ids","id","has","collectRelatedNodes","handlers","nodesMap","targetMap","targetRefMap","handler","targetNodeUid","downstreamNodes","upstreamNodes","targetRef","concat","targetRefNodeUid","callbackHandlers","values","nodeIgnoreFields","computationRegExp","getBuilderNode","nodeData","isTemplateInternalNode","matchedSelectors","brick","replace","parsedId","parsedTestId","normalized","normalizeBuilderNode","parsedFields","field","parsed","cloneDeep","upperFirst","tempParsedTestId","tempParsedId","dataset","testid","test","isBrick","isBrickNode","brickName","split","pop","fromEntries","entries","entry","includes","alias","getAppendingNodesAndEdges","templateSourceMap","storyList","isRoot","currentUid","processedTemplateSet","inheritedTemplateRefToUid","layoutType","templateSource","builderNode","startsWith","children","storyId","originData","proxy","JSON","parse","templateRefToUid","Map","Infinity","$$isTemplateInternalNode","processDelegatingSlots","cursorNode","rootMountPoint","slotEntries","slotName","slotConf","refUid","refNode","$$delegatedSlots","delegatedSlotsByRefSlot","templateUid","templateMountPoint","processDelegatingProperties","previousPropertyName","properties","propertyEntries","propertyName","propertyConf","$$parsedProperties","isBasicRefProperty","propertyValue","refProperty","overrideChildrenMountPoint","$$isTemplateDelegated","propRef","isParentExpandableTemplate","jsonFieldsInBrick","yamlFieldsInBrick","ignoredFieldsInBrick","reverseNormalize","brickConf","ctx","stringify","yaml","safeDump","Boolean","template","isPortalCanvas","portal","getSnippetNodeDetail","bg","flatMap","bricks","childBrickConf","BuilderInternalEventType","getObjectIdByNode","isRouteNode","isCustomTemplateNode","isSnippetNode","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","getStoryList","onRouteListChange","dataInit","root","newData","triggerDataChange","rootNodeIsCustomTemplate","selector","$$matchedSelectors","isEmpty","$$parsedEvents","flat","$$parsedLifeCycle","lifeCycleName","lifeCycleConf","messageConf","console","warn","getRelatedNodesBasedOnEvents","DATA_CHANGE","detail","runAddNodeAction","addNodes","addEdges","omit","updateBrick","updateNode","instanceId","newNodes","NODE_UPDATE","redirectMountPoint","redirectSnippetMountPoint","nodeDetails","nodeAdd","NODE_ADD","nodeAddStored","snippetApply","appendingNodes","appendingEdges","SNIPPET_APPLY","snippetApplyStored","flattenNodeDetails","found","nodeMove","NODE_MOVE","moveNode","direction","relatedEdges","mountPoints","getRelatedEdgesAndMountPoint","orderedSiblingEdges","moveItemInList","orderedEdges","reorder","getDragInfo","sortIndex","dragNodeUid","dragOverNodeUid","dragStatus","isDragRoot","dragEdge","dragOverEdge","parentEdge","parnetNodeData","siblingEdge","sortUids","sortNodeIds","sortNodeInstanceIds","Math","max","overIndex","workbenchNodeAdd","isNeedUpdateSnippet","dragOverInstanceId","parentInstanceId","newNodeUid","realDragStatus","overEdge","nodeIds","nodeInstanceIds","snippetData","sortData","workbenchTreeNodeMove","originEdge","originParentUid","originParentNode","WORKBENCH_TREE_NODE_MOVE","nodeInstanceId","objectId","moveMountPoint","orderedMountPoints","childUids","childIds","NODE_REORDER","contextUpdated","context","nodeReorder","nodeDelete","nodeClick","setActiveNodeUid","NODE_CLICK","contextMenuChange","CONTEXT_MENU_CHANGE","onDataChange","onNodeAdd","onSnippetApply","onNodeReorder","onNodeMove","onWorkbenchTreeNodeMove","onNodeClick","onNodeUpdate","onContextMenuChange","setShowRelatedNodesBasedOnEvents","show","showRelatedNodesBasedOnEvents","SHOW_RELATED_NODES_BASED_ON_EVENTS","getShowRelatedNodesBasedOnEvents","onShowRelatedNodesBasedOnEventsChange","setHoverNodeUid","hoverNodeUid","HOVER_NODE_CHANGE","getHoverNodeUid","onHoverNodeChange","activeNodeUid","ACTIVE_NODE_CHANGE","getActiveNodeUid","onActiveNodeChange","toggleOutline","outlineDisabledNodes","delete","setItem","from","OUTLINE_DISABLED_NODES_CHANGE","isOutlineEnabled","onOutlineEnabledNodesChange","setHighlightNodes","highlightNodes","HIGHLIGHT_NODES_CHANGE","getHighlightNodes","onHighlightNodesChange","updateDroppingStatus","isDraggingOver","nodeStatus","droppingStatus","DROPPING_STATUS_CHANGE","getDroppingStatus","onDroppingStatusChange","mountPointSet","list","upperIndex","BuilderContext","React","createContext","useBuilderDataManager","manager","useContext","Error","useBuilderData","setData","useState","useEffect","useBuilderNode","isWrapper","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","isWidget","editorBrick","developHelper","loadEditorBricks","error","customElements","EditorBrickAsComponent","slotContentLayout","initialized","setInitialized","setEditorBrick","loadEditorError","setLoadEditorError","hasChildren","installedBricksEnabled","getRuntime","getFeatureFlags","brickDoc","doc","getBrickDoc","editorMap","getSharedEditorMap","conf","useSharedEditorMap","editorConf","editorName","editorError","getEditorBrick","message","editorProps","selfLayout","layout","CONTAINER","INLINE","isDragging","dragRef","useDrag","NODE_TO_MOVE","nodeId","dropEffect","collect","monitor","BLOCK","__isTemplateInternalNode","draggable","useBrick","useBuilderGroupedChildNodes","doNotExpandTemplates","getBuilderGroupedChildNodes","groups","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","min","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","useCanvasList","rootChildNodes","mainCanvas","portalCanvasList","DropZone","separateCanvas","independentPortalCanvas","canvasIndex","fullscreen","delegatedContext","dropZoneStyle","dropZoneBodyStyle","showOutlineIfEmpty","hiddenWrapper","emptyClassName","dropZoneBody","dropPositionCursor","setDropPositionCursor","dropPositionCursorRef","groupedChildNodes","isGeneralizedPortalCanvas","hasTabs","canDrop","refinedSlotContentLayout","selfChildNodes","canvasList","selfChildNodesInCurrentCanvas","Number","canvasSettings","_canvas_","getDroppingIndexInFullCanvas","droppingIndexInCurrentCanvas","getDroppingContext","siblingGroups","droppingParentUid","droppingParentInstanceId","droppingChildNodes","isDraggingOverCurrent","dropRef","useDrop","accept","NODE_TO_ADD","SNIPPET_TO_APPLY","isOver","shallow","getClientOffset","drop","didDrop","brickType","draggingNodeInstanceId","processDrop","droppable","dropZoneRef","dropZoneRefCallback","String","isSlot","slotContentLayoutBlock","slotContentLayoutInline","slotContentLayoutGrid","GRID","data-slot-id","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","useBuilderParentNode","useRouteList","useActiveNodeUid","useOutlineEnabled","inapplicable","enabled","setEnabled","dll"],"mappings":"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","file":"dll-of-editor-bricks-helper.e2913395.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 wrapperNode?: BuilderRuntimeNode;\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 sort?: number;\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 type EventDetailOfWorkbenchTreeNodeMove = {\n nodeUid: number;\n nodeInstanceId: string;\n nodeIds: string[];\n objectId: string;\n nodeData?: {\n parent: string;\n mountPoint: string;\n };\n};\n\nexport type dragStatus = \"inside\" | \"top\" | \"bottom\";\n\nexport interface WorkbenchNodeData extends NodeInstance {\n instanceId: string;\n id: string;\n}\nexport interface WorkbenchNodeAdd {\n nodeData: WorkbenchNodeData & {\n bricks: BrickConf[];\n $$uid?: number;\n };\n mountPoint: string;\n dragOverInstanceId: string;\n /**\n * @deprecated 请使用 parent。\n * @internal\n */\n parentInstanceId?: string;\n parent: string;\n dragStatus: dragStatus;\n sortData?: {\n nodeUids: number[];\n nodeIds: string[];\n nodeInstanceIds: string[];\n };\n}\nexport interface WorkbenchTreeNodeMoveProps {\n dragNodeUid: number;\n dragOverNodeUid: number;\n dragParentNodeUid: number;\n dragStatus: \"inside\" | \"top\" | \"bottom\";\n}\n\nexport interface EventDetailOfNodeReorder {\n nodeUids: number[];\n parentUid: number;\n nodeIds: string[];\n objectId?: 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","/*!\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, wrapperNode }: 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 wrapperNode: wrapperNode?.$$uid === nodeUid ? null : wrapperNode,\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 for (const ref of [].concat(handler.targetRef)) {\n const targetRefNodeUid = targetRefMap.get(ref);\n if (targetRefNodeUid) {\n nodesMap.get(node.$$uid).downstreamNodes.add(targetRefNodeUid);\n nodesMap.get(targetRefNodeUid).upstreamNodes.add(node.$$uid);\n }\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\n// Match evaluations and placeholders,\n// E.g.: `<% QUERY.x %>` or `${QUERY.x}`.\nconst computationRegExp = /[<{]/;\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 let parsedId: string;\n let parsedTestId: string;\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 (field === \"properties\") {\n let tempParsedId: string;\n let tempParsedTestId: string;\n if (\n ((tempParsedTestId = (parsed?.dataset as Record<string, string>)\n ?.testid),\n typeof tempParsedTestId === \"string\") &&\n !computationRegExp.test(tempParsedTestId)\n ) {\n parsedTestId = tempParsedTestId;\n } else if (\n ((tempParsedId = parsed?.id as string),\n typeof tempParsedId === \"string\") &&\n !computationRegExp.test(tempParsedId)\n ) {\n parsedId = tempParsedId;\n matchedSelectors.push(`#${parsedId}`);\n }\n }\n }\n\n const isBrick = isBrickNode(nodeData);\n const brickName = isBrick ? nodeData.brick.split(\".\").pop() : null;\n\n return Object.fromEntries(\n Object.entries(nodeData)\n .filter((entry) => !nodeIgnoreFields.includes(entry[0]))\n .concat([\n [\n \"alias\",\n // Ignore alias which equals to brick name.\n (!(isBrick && nodeData.alias === brickName) && nodeData.alias) ||\n (isBrick\n ? nodeData.ref || parsedTestId || parsedId || brickName\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 { sortBy } from \"lodash\";\nimport { hasOwnProperty } from \"@next-core/brick-utils\";\nimport {\n BuilderRouteOrBrickNode,\n BuilderCustomTemplateNode,\n CustomTemplateProxyProperty,\n CustomTemplateProxyBasicProperty,\n Story,\n TemplateLayoutType,\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 storyList: Story[] = [],\n isRoot?: boolean\n): {\n nodes: BuilderRuntimeNode[];\n edges: BuilderRuntimeEdge[];\n wrapperNode?: BuilderRuntimeNode;\n} {\n const nodes: BuilderRuntimeNode[] = [];\n const edges: BuilderRuntimeEdge[] = [];\n let wrapperNode: BuilderRuntimeNode;\n\n const walk = (\n nodeData: BuilderRouteOrBrickNode,\n currentUid: number,\n processedTemplateSet: Set<string>,\n isTemplateInternalNode?: boolean,\n inheritedTemplateRefToUid?: Map<string, number>,\n layoutType?: TemplateLayoutType\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 (builderNode.brick.includes(\".tpl-\") &&\n (templateSource = storyList?.find(\n (item) => item.storyId === builderNode.brick\n )?.originData) &&\n templateSource.children?.length > 0))\n ) {\n if (templateSource.layoutType === \"wrapper\") {\n builderNode.layoutType = \"wrapper\";\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 layoutType\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 case \"snippet\":\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 for (let i = 0; i < nodes.length; i++) {\n // 布局模板属于第一层\n const item = nodes[i];\n if (\n item.layoutType === \"wrapper\" &&\n isRoot &&\n edges.find((edge) => edge.child === item.$$uid).parent === nodeUid\n ) {\n if (!wrapperNode) {\n wrapperNode = item;\n }\n break;\n }\n }\n return {\n nodes,\n edges,\n wrapperNode,\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 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 { 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 { BuilderRuntimeNode } from \"../interfaces\";\nimport {\n isRouteNode,\n isBrickNode,\n isCustomTemplateNode,\n isSnippetNode,\n} from \"@next-core/brick-utils\";\n\nexport const getObjectIdByNode = (node: BuilderRuntimeNode): string => {\n if (isRouteNode(node)) return \"STORYBOARD_ROUTE\";\n if (isBrickNode(node)) return \"STORYBOARD_BRICK\";\n if (isCustomTemplateNode(node)) return \"STORYBOARD_TEMPLATE\";\n if (isSnippetNode(node)) return \"STORYBOARD_SNIPPET\";\n};\n","import { omit, sortBy } 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 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 WorkbenchTreeNodeMoveProps,\n EventDetailOfWorkbenchTreeNodeMove,\n WorkbenchNodeAdd,\n} from \"../interfaces\";\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\";\nimport { getSnippetNodeDetail } from \"../DropZone/getSnippetNodeDetail\";\nimport { getObjectIdByNode } from \"./getObjectIdByNode\";\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 NODE_UPDATE = \"builder.node.update\",\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 ACTIVE_NODE_CHANGE = \"builder.activeNode.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 WORKBENCH_TREE_NODE_MOVE = \"workbench.tree.node.move\",\n}\n\nconst storageKeyOfOutlineDisabledNodes = \"builder-outline-disabled-nodes\";\n\nexport class BuilderDataManager {\n private data: BuilderCanvasData = {\n rootId: null,\n nodes: [],\n edges: [],\n wrapperNode: null,\n };\n\n private hoverNodeUid: number;\n private activeNodeUid: 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(\n root,\n rootId,\n templateSourceMap,\n this.storyList,\n true\n ),\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 detail: this.data,\n })\n );\n }\n\n private runAddNodeAction(detail: EventDetailOfNodeAdd): void {\n const { rootId, nodes, edges, wrapperNode } = this.data;\n const { nodeUid, parentUid, nodeUids, nodeData, sort } = detail;\n\n const { nodes: addNodes, edges: addEdges } = getAppendingNodesAndEdges(\n omit(nodeData, [\n \"parent\",\n ]) as Partial<BuilderRouteOrBrickNode> as BuilderRouteOrBrickNode,\n nodeUid,\n this.templateSourceMap,\n this.getStoryList()\n );\n const newNodes = nodes.concat(addNodes);\n const newEdges = edges\n .concat({\n parent: parentUid,\n child: nodeUid,\n mountPoint: nodeData.mountPoint,\n sort: sort ?? undefined,\n $$isTemplateDelegated: isParentExpandableTemplate(nodes, parentUid),\n })\n .concat(addEdges);\n\n const newData = {\n rootId,\n nodes: newNodes,\n edges: newEdges,\n wrapperNode,\n };\n this.data = {\n ...newData,\n edges: reorderBuilderEdges(newData, {\n parentUid,\n nodeUids,\n }),\n };\n this.triggerDataChange();\n }\n\n updateBrick(detail: EventDetailOfNodeAdd): void {\n this.data = deleteNodeFromTree(detail.nodeUid, this.data);\n\n this.runAddNodeAction(detail);\n }\n\n updateNode(instanceId: string, detail: BuilderRuntimeNode): void {\n const { rootId, nodes, edges, wrapperNode } = this.data;\n const updateNode = nodes.find((item) => item.instanceId === instanceId);\n const newNodes = nodes.map((item) => {\n if (item.instanceId === instanceId) {\n return {\n ...item,\n ...detail,\n };\n }\n return item;\n });\n const newEdges =\n detail.mountPoint === undefined || detail.mountPoint === null\n ? edges\n : edges.map((item) => {\n if (item.child === updateNode.$$uid) {\n return {\n ...item,\n mountPoint: detail.mountPoint,\n };\n }\n return item;\n });\n this.data = {\n rootId,\n nodes: newNodes,\n edges: newEdges,\n wrapperNode,\n };\n this.eventTarget.dispatchEvent(\n new CustomEvent(BuilderInternalEventType.NODE_UPDATE, {\n detail: this.data,\n })\n );\n }\n\n private redirectMountPoint(\n detail: EventDetailOfNodeAdd | EventDetailOfNodeMove | SnippetNodeDetail\n ): void {\n const { rootId, wrapperNode } = this.data;\n if (detail.parentUid === rootId) {\n detail.nodeData.mountPoint = \"bricks\";\n }\n if (wrapperNode && wrapperNode.instanceId === detail.nodeData.parent) {\n detail.nodeData.mountPoint = \"content\";\n }\n }\n\n private redirectSnippetMountPoint(detail: EventDetailOfSnippetApply): void {\n detail.nodeDetails?.forEach((item) => {\n this.redirectMountPoint(item);\n });\n }\n\n nodeAdd(detail: EventDetailOfNodeAdd): void {\n this.redirectMountPoint(detail);\n this.runAddNodeAction(detail);\n\n this.eventTarget.dispatchEvent(\n new CustomEvent(BuilderInternalEventType.NODE_ADD, { detail })\n );\n }\n\n nodeAddStored(detail: EventDetailOfNodeAddStored): void {\n const { rootId, nodes, edges, wrapperNode } = 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 wrapperNode,\n };\n this.triggerDataChange();\n }\n\n snippetApply(detail: EventDetailOfSnippetApply): void {\n this.redirectSnippetMountPoint(detail);\n const { rootId, nodes, edges, wrapperNode } = 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 this.storyList\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 wrapperNode,\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, wrapperNode } = 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 wrapperNode,\n };\n this.triggerDataChange();\n }\n\n /**\n * Move node anywhere by drag-n-drop.\n * @deprecated use `moveNode` instead.\n */\n nodeMove(detail: EventDetailOfNodeMove): void {\n const { rootId, nodes, edges, wrapperNode } = this.data;\n this.redirectMountPoint(detail);\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 wrapperNode,\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 /**\n * Move node up or down.\n */\n moveNode(\n { $$uid: nodeUid }: BuilderRuntimeNode,\n direction: \"up\" | \"down\"\n ): void {\n const { parent: parentUid, mountPoint } = this.data.edges.find(\n (edge) => edge.child === nodeUid\n );\n const { relatedEdges, mountPoints } = getRelatedEdgesAndMountPoint(\n this.data.edges,\n parentUid\n );\n /** Edges of the same mount-point */\n const siblingEdges = relatedEdges.filter(\n (edge) => edge.mountPoint === mountPoint\n );\n const index = siblingEdges.findIndex((edge) => edge.child === nodeUid);\n const orderedSiblingEdges = moveItemInList(siblingEdges, index, direction);\n if (!orderedSiblingEdges) {\n return;\n }\n const orderedEdges = sortBy(\n relatedEdges,\n (edge) => mountPoints.indexOf(edge.mountPoint),\n (edge) => orderedSiblingEdges.indexOf(edge)\n );\n this.reorder(parentUid, orderedEdges);\n this.eventTarget.dispatchEvent(\n new CustomEvent(BuilderInternalEventType.NODE_UPDATE, {\n detail: this.data,\n })\n );\n }\n\n private getDragInfo({\n nodeData,\n dragNodeUid,\n dragOverNodeUid,\n dragStatus,\n }: {\n nodeData: BuilderRuntimeNode;\n dragNodeUid: number;\n dragOverNodeUid: number;\n dragStatus: string;\n }) {\n const { rootId, nodes, edges } = this.data;\n const isDragRoot = dragOverNodeUid === rootId;\n /*\n * 如果找不到edge, 则为新增状态, 否则为移动状态\n */\n const dragEdge = edges.find((item) => item.child === dragNodeUid);\n const dragOverEdge = edges.find((item) => item.child === dragOverNodeUid);\n /**\n * 如果是根节点, 则mountPoint强制等于 bricks\n * 如果是属于拖动进某个节点中, 默认使用 content\n * 其他情况, 使用被拖拽节点的mountPoint\n */\n const mountPoint = isDragRoot\n ? \"bricks\"\n : dragStatus === \"inside\"\n ? \"content\"\n : dragOverEdge.mountPoint;\n\n const parentEdge = edges.find((item) => item.child === dragOverNodeUid);\n /**\n * 如果是根节点, parentUid强制等于rootId\n * 如果是拖动进某个节点, 则当前节点为该节点parent\n * 否则, 等于该节点的父节点\n */\n const parentUid = isDragRoot\n ? rootId\n : dragStatus === \"inside\"\n ? parentEdge.child\n : parentEdge.parent;\n const parnetNodeData = nodes.find((item) => item.$$uid === parentUid);\n // 找到节点父亲等于拖动节点的父节点(寻找兄弟节点)\n const siblingEdge = edges.filter(\n (edge) => edge.child !== dragNodeUid && edge.parent === parentUid\n );\n const sortUids = sortBy(siblingEdge, \"sort\").map((item) => item.child);\n const sortNodeIds: string[] = [];\n const sortNodeInstanceIds: string[] = [];\n sortUids.forEach((item) => {\n const node = nodes.find((node) => node.$$uid === item);\n sortNodeIds.push(node.id);\n sortNodeInstanceIds.push(node.instanceId);\n });\n let sortIndex: number;\n if (dragStatus === \"inside\") {\n sortIndex = siblingEdge.length\n ? Math.max(...siblingEdge.map((item) => item.sort)) + 1\n : 0;\n // 插入默认插最后\n sortNodeIds.push(nodeData.id);\n sortNodeInstanceIds.push(nodeData.instanceId);\n } else if (dragStatus === \"top\" || dragStatus === \"bottom\") {\n const overIndex = sortUids.findIndex((item) => item === dragOverNodeUid);\n sortIndex = dragStatus === \"top\" ? overIndex : overIndex + 1;\n // 排序修正\n sortNodeIds.splice(sortIndex, 0, nodeData.id);\n // 如果是新增的情况下, 没有edge, 则取dragNodeUid(新创建的uid)\n sortUids.splice(sortIndex, 0, dragEdge?.child ?? dragNodeUid);\n sortNodeInstanceIds.splice(sortIndex, 0, nodeData.instanceId);\n }\n\n return {\n parentUid,\n mountPoint,\n sortIndex,\n parnetNodeData,\n sortUids,\n sortNodeIds,\n sortNodeInstanceIds,\n };\n }\n\n workbenchNodeAdd(\n detail: WorkbenchNodeAdd,\n isNeedUpdateSnippet = true\n ): void | EventDetailOfSnippetApply {\n const { nodes, edges, rootId } = this.data;\n const { nodeData, dragOverInstanceId, dragStatus, mountPoint } = detail;\n if (nodeData.instanceId && !nodeData.instanceId.startsWith(\"mock\")) {\n // move\n } else {\n // insert\n const parentInstanceId = detail.parent || detail.parentInstanceId;\n const newNodeUid = nodeData.$$uid || getUniqueNodeId();\n const overNode = nodes.find(\n (item) => item.instanceId === dragOverInstanceId\n );\n let dragOverNodeUid = overNode.$$uid;\n let realDragStatus = dragStatus;\n if (dragOverNodeUid === rootId) {\n realDragStatus = \"inside\";\n } else {\n const overEdge = edges.find((item) => item.child === dragOverNodeUid);\n const overParentNode = nodes.find((item) =>\n dragStatus === \"inside\"\n ? item.$$uid === overEdge.child\n : item.$$uid === overEdge.parent\n );\n\n if (overParentNode.instanceId !== parentInstanceId) {\n // 如果instanceId不相同, 说明父元素被修改, dragStatus强制等于inside, uid也需要切换成实际父元素的uid\n realDragStatus = \"inside\";\n dragOverNodeUid = nodes.find(\n (item) => item.instanceId === parentInstanceId\n ).$$uid;\n }\n }\n\n const {\n parentUid,\n sortIndex,\n sortUids: nodeUids,\n sortNodeIds: nodeIds,\n sortNodeInstanceIds: nodeInstanceIds,\n } = this.getDragInfo({\n nodeData: {\n id: nodeData.id ?? null,\n instanceId: nodeData.instanceId ?? null,\n } as BuilderRuntimeNode,\n dragNodeUid: newNodeUid,\n dragOverNodeUid,\n dragStatus: realDragStatus,\n });\n\n nodeData.parent = parentInstanceId;\n nodeData.mountPoint = mountPoint;\n nodeData.sort = sortIndex;\n\n if (nodeData.bricks) {\n // snippet\n const snippetData = {\n parentUid,\n nodeDetails: nodeData.bricks.map((brickConf) =>\n getSnippetNodeDetail({\n parent: parentInstanceId,\n parentUid: parentUid,\n mountPoint: mountPoint,\n nodeUid: newNodeUid,\n brickConf: brickConf,\n isPortalCanvas: false,\n })\n ),\n nodeIds,\n nodeUids,\n };\n if (isNeedUpdateSnippet) {\n this.snippetApply(snippetData);\n } else {\n return snippetData;\n }\n }\n\n this.runAddNodeAction({\n nodeUid: newNodeUid,\n parentUid,\n nodeUids,\n nodeIds,\n nodeData,\n sort: sortIndex,\n });\n const sortData = {\n nodeUids,\n nodeInstanceIds,\n nodeIds,\n };\n detail.sortData = sortData;\n this.eventTarget.dispatchEvent(\n new CustomEvent(BuilderInternalEventType.NODE_ADD, {\n detail: {\n nodeUid: newNodeUid,\n parentUid,\n nodeUids,\n nodeInstanceIds,\n nodeIds,\n nodeData,\n },\n })\n );\n }\n }\n\n workbenchTreeNodeMove(detail: WorkbenchTreeNodeMoveProps): void {\n const { rootId, nodes, edges, wrapperNode } = this.data;\n const { dragNodeUid, dragOverNodeUid, dragStatus } = detail;\n const nodeData = nodes.find((item) => item.$$uid === dragNodeUid);\n const originEdge = edges.find((edge) => edge.child === nodeData.$$uid);\n const originParentUid = originEdge.parent;\n const originParentNode = nodes.find(\n (node) => node.$$uid === originParentUid\n );\n const {\n parentUid,\n parnetNodeData,\n mountPoint,\n sortIndex,\n sortUids: nodeUids,\n sortNodeIds: nodeIds,\n } = this.getDragInfo({\n nodeData,\n dragNodeUid,\n dragOverNodeUid,\n dragStatus,\n });\n\n const newData = {\n rootId,\n nodes,\n edges: edges\n .filter((edge) => edge.child !== dragNodeUid)\n .concat({\n parent: parentUid,\n child: dragNodeUid,\n mountPoint: mountPoint,\n sort: sortIndex,\n $$isTemplateDelegated: isParentExpandableTemplate(nodes, parentUid),\n }),\n wrapperNode,\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<EventDetailOfWorkbenchTreeNodeMove>(\n BuilderInternalEventType.WORKBENCH_TREE_NODE_MOVE,\n {\n detail: {\n nodeUid: dragNodeUid,\n nodeInstanceId: nodeData.instanceId,\n nodeIds,\n ...(originParentNode.instanceId !== parnetNodeData.instanceId ||\n originEdge.mountPoint !== mountPoint\n ? {\n nodeData: {\n parent: parnetNodeData.instanceId,\n mountPoint: mountPoint,\n },\n }\n : {}),\n objectId: getObjectIdByNode(nodeData),\n },\n }\n )\n );\n this.eventTarget.dispatchEvent(\n new CustomEvent(BuilderInternalEventType.NODE_UPDATE, {\n detail: this.data,\n })\n );\n }\n\n /**\n * Move mount-point up or down.\n */\n moveMountPoint(\n { $$uid: parentUid }: BuilderRuntimeNode,\n mountPoint: string,\n direction: \"up\" | \"down\"\n ): void {\n const { relatedEdges, mountPoints } = getRelatedEdgesAndMountPoint(\n this.data.edges,\n parentUid\n );\n const index = mountPoints.indexOf(mountPoint);\n const orderedMountPoints = moveItemInList(mountPoints, index, direction);\n if (!orderedMountPoints) {\n return;\n }\n const orderedEdges = sortBy(\n relatedEdges,\n (edge) => orderedMountPoints.indexOf(edge.mountPoint),\n \"sort\"\n );\n this.reorder(parentUid, orderedEdges);\n }\n\n private reorder(parentUid: number, orderedEdges: BuilderRuntimeEdge[]): void {\n const { nodes } = this.data;\n const childUids = orderedEdges.map((edge) => edge.child);\n this.data = {\n ...this.data,\n edges: reorderBuilderEdges(this.data, { parentUid, nodeUids: childUids }),\n };\n this.triggerDataChange();\n const childIds = childUids\n .map((uid) => nodes.find((node) => node.$$uid === uid))\n .map((node) => node.id);\n this.eventTarget.dispatchEvent(\n new CustomEvent<EventDetailOfNodeReorder>(\n BuilderInternalEventType.NODE_REORDER,\n {\n detail: {\n nodeUids: childUids,\n parentUid,\n nodeIds: childIds,\n objectId: getObjectIdByNode(\n nodes.find((node) => node.$$uid === parentUid)\n ),\n },\n }\n )\n );\n }\n\n contextUpdated(detail: EventDetailOfContextUpdated): void {\n const { rootId, nodes, edges, wrapperNode } = 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 wrapperNode,\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.setActiveNodeUid(detail.$$uid);\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 onWorkbenchTreeNodeMove(\n fn: (event: CustomEvent<EventDetailOfNodeMove>) => void\n ): () => void {\n this.eventTarget.addEventListener(\n BuilderInternalEventType.WORKBENCH_TREE_NODE_MOVE,\n fn as EventListener\n );\n return () => {\n this.eventTarget.removeEventListener(\n BuilderInternalEventType.WORKBENCH_TREE_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 onNodeUpdate(\n fn: (event: CustomEvent<BuilderCanvasData>) => void\n ): () => void {\n this.eventTarget.addEventListener(\n BuilderInternalEventType.NODE_UPDATE,\n fn as EventListener\n );\n return () => {\n this.eventTarget.removeEventListener(\n BuilderInternalEventType.NODE_UPDATE,\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 setActiveNodeUid(uid: number): void {\n if (this.activeNodeUid !== uid) {\n this.activeNodeUid = uid;\n this.eventTarget.dispatchEvent(\n new CustomEvent(BuilderInternalEventType.ACTIVE_NODE_CHANGE)\n );\n }\n }\n\n getActiveNodeUid(): number {\n return this.activeNodeUid;\n }\n\n onActiveNodeChange(fn: EventListener): () => void {\n this.eventTarget.addEventListener(\n BuilderInternalEventType.ACTIVE_NODE_CHANGE,\n fn\n );\n return (): void => {\n this.eventTarget.removeEventListener(\n BuilderInternalEventType.ACTIVE_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\nfunction getRelatedEdgesAndMountPoint(\n edges: BuilderRuntimeEdge[],\n parentUid: number\n): {\n /** Edges of the same parent */\n relatedEdges: BuilderRuntimeEdge[];\n /** Mount-point of the same parent */\n mountPoints: string[];\n} {\n const relatedEdges = sortBy(\n edges.filter(\n (edge) => edge.parent === parentUid && !edge.$$isTemplateExpanded\n ),\n \"sort\"\n );\n const mountPointSet = new Set<string>();\n for (const edge of relatedEdges) {\n mountPointSet.add(edge.mountPoint);\n }\n const mountPoints = Array.from(mountPointSet);\n return { relatedEdges, mountPoints };\n}\n\nfunction moveItemInList<T>(\n list: T[],\n index: number,\n direction: \"up\" | \"down\"\n): T[] | undefined {\n let upperIndex: number;\n if (direction === \"up\") {\n if (index <= 0) {\n return;\n }\n upperIndex = index - 1;\n } else {\n if (index === -1 || index >= list.length - 1) {\n return;\n }\n upperIndex = index;\n }\n return [\n ...list.slice(0, upperIndex),\n list[upperIndex + 1],\n list[upperIndex],\n ...list.slice(upperIndex + 2),\n ];\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 isWrapper,\n}: {\n nodeUid?: number;\n isRoot?: boolean;\n isWrapper?: boolean;\n}): BuilderRuntimeNode<P> {\n const { rootId, nodes, wrapperNode } = useBuilderData();\n const currentUid = isRoot ? rootId : nodeUid;\n return useMemo(() => {\n if (isWrapper) {\n return wrapperNode as BuilderRuntimeNode<P>;\n }\n return nodes.find(\n (node) => node.$$uid === currentUid\n ) as BuilderRuntimeNode<P>;\n }, [nodes, currentUid, isWrapper, wrapperNode]);\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 const isWidget = node.brick.split(\".\")[1]?.startsWith(\"tpl-\");\n tryEditorBricks.push(`${node.brick}--editor`);\n isWidget && tryEditorBricks.push(`editors-of-${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 node.brick === \"frame-bricks.side-bar\",\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 isWrapper,\n}: {\n nodeUid?: number;\n isRoot?: boolean;\n doNotExpandTemplates?: boolean;\n isWrapper?: boolean;\n}): BuilderGroupedChildNode[] {\n const { rootId, nodes, edges, wrapperNode } = useBuilderData();\n return useMemo(\n () =>\n getBuilderGroupedChildNodes({\n nodes,\n edges,\n nodeUid: isRoot ? (isWrapper ? wrapperNode.$$uid : rootId) : nodeUid,\n doNotExpandTemplates,\n isWrapper: isWrapper,\n }),\n [\n doNotExpandTemplates,\n edges,\n isRoot,\n nodeUid,\n nodes,\n rootId,\n isWrapper,\n wrapperNode,\n ]\n );\n}\n\nexport function getBuilderGroupedChildNodes({\n nodeUid,\n nodes,\n edges,\n doNotExpandTemplates,\n isWrapper,\n}: {\n nodeUid: number;\n nodes: BuilderRuntimeNode[];\n edges: BuilderRuntimeEdge[];\n doNotExpandTemplates?: boolean;\n isWrapper?: 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: isWrapper ? \"bricks\" : 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 { 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, isEmpty } 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 hiddenWrapper?: boolean;\n emptyClassName?: string;\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 hiddenWrapper = true,\n emptyClassName,\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 { nodes, edges, wrapperNode } = useBuilderData();\n const isWrapper = hiddenWrapper && isRoot && !isEmpty(wrapperNode);\n const node = useBuilderNode({ nodeUid, isRoot, isWrapper });\n const groupedChildNodes = useBuilderGroupedChildNodes({\n nodeUid,\n isRoot,\n doNotExpandTemplates: isWrapper,\n isWrapper,\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 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: isWrapper\n ? wrapperNode.instanceId\n : 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 isWrapper,\n wrapperNode,\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 isWrapper ||\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={classNames(\n styles.dropZoneBody,\n selfChildNodesInCurrentCanvas.length === 0 && emptyClassName\n )}\n data-slot-id={mountPoint}\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","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","/* 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 emptyClassName?: string;\n}\n\nexport function SlotContainer({\n nodeUid,\n slotName,\n slotContainerStyle,\n dropZoneStyle,\n dropZoneBodyStyle,\n slotContentLayout,\n showOutlineIfEmpty,\n emptyClassName,\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 emptyClassName={emptyClassName}\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 useActiveNodeUid(): number {\n const manager = useBuilderDataManager();\n const [data, setData] = useState(manager.getActiveNodeUid());\n useEffect(\n () =>\n manager.onActiveNodeChange(() => {\n setData(manager.getActiveNodeUid());\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":""}