@node-projects/web-component-designer 0.1.297 → 0.1.298
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elements/item/DesignItem.d.ts +2 -1
- package/dist/elements/item/DesignItem.js +35 -20
- package/dist/elements/item/DesignItem.js.map +1 -1
- package/dist/elements/item/IDesignItem.d.ts +1 -0
- package/dist/elements/services/propertiesService/IPropertiesService.d.ts +2 -0
- package/dist/elements/services/propertiesService/propertyEditors/BasePropertyEditor.js +4 -6
- package/dist/elements/services/propertiesService/propertyEditors/BasePropertyEditor.js.map +1 -1
- package/dist/elements/services/propertiesService/propertyEditors/ColorPropertyEditor.js +6 -1
- package/dist/elements/services/propertiesService/propertyEditors/ColorPropertyEditor.js.map +1 -1
- package/dist/elements/services/propertiesService/services/AbstractCssPropertiesService.d.ts +3 -0
- package/dist/elements/services/propertiesService/services/AbstractCssPropertiesService.js +20 -0
- package/dist/elements/services/propertiesService/services/AbstractCssPropertiesService.js.map +1 -1
- package/dist/elements/services/propertiesService/services/AbstractPropertiesService.js +1 -1
- package/dist/elements/services/propertiesService/services/AbstractPropertiesService.js.map +1 -1
- package/dist/elements/widgets/designerView/DomConverter.d.ts +1 -1
- package/dist/elements/widgets/designerView/designerCanvas.js +1 -3
- package/dist/elements/widgets/designerView/designerCanvas.js.map +1 -1
- package/dist/elements/widgets/designerView/designerView.js.map +1 -1
- package/dist/index-min.js +48 -48
- package/package.json +1 -1
package/dist/index-min.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var vd=Object.defineProperty;var u=(s,e)=>()=>(s&&(e=s(s=0)),e);var xd=(s,e)=>{for(var t in e)vd(s,t,{get:e[t],enumerable:!0})};import{TypedEvent as
|
|
1
|
+
var vd=Object.defineProperty;var u=(s,e)=>()=>(s&&(e=s(s=0)),e);var xd=(s,e)=>{for(var t in e)vd(s,t,{get:e[t],enumerable:!0})};import{TypedEvent as Id}from"@node-projects/base-custom-webcomponent";var Ot,$i=u(()=>{"use strict";Ot=class{_services=new Map;servicesChanged=new Id;getLastService(e){let t=this._services.get(e);return t&&t.length?t[t.length-1]:null}getServices(e){return this._services.get(e)}register(e,t){this._services.has(e)||this._services.set(e,[]),this._services.get(e).push(t),this.servicesChanged.emit({serviceName:e})}registerLast(e,t){this._services.has(e)||this._services.set(e,[]),this._services.get(e).unshift(t),this.servicesChanged.emit({serviceName:e})}registerMultiple(e,t){for(let i of e)this._services.has(i)||this._services.set(i,[]),this._services.get(i).push(t),this.servicesChanged.emit({serviceName:i})}forSomeServicesTillResult(e,t){let i=this.getServices(e);if(i==null)return null;for(let r=i.length-1;r>=0;r--){let n=i[r],o=t(n);if(o!=null)return o}return null}getLastServiceWhere(e,t){let i=this.getServices(e);if(i==null)return null;for(let r=i.length-1;r>=0;r--){let n=i[r];if(t(n))return n}return null}getLastServiceResult(e,t){let i=this.getServices(e);if(i==null)return null;for(let r=i.length-1;r>=0;r--){let n=i[r],o=t(n);if(o)return o}return null}async getLastServiceWhereAsync(e,t){let i=this.getServices(e);if(i==null)return null;for(let r=i.length-1;r>=0;r--){let n=i[r];if(await t(n))return n}return null}}});import{BaseCustomWebComponentLazyAppend as kd,css as Dd}from"@node-projects/base-custom-webcomponent";var di,wo=u(()=>{"use strict";di=class extends kd{_placeholder;_loading;static style=Dd`
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
4
|
overflow: hidden;
|
|
@@ -38,7 +38,7 @@ var vd=Object.defineProperty;var u=(s,e)=>()=>(s&&(e=s(s=0)),e);var xd=(s,e)=>{f
|
|
|
38
38
|
font-weight: 600;
|
|
39
39
|
font-family: monospace;
|
|
40
40
|
font-size: 24px;
|
|
41
|
-
}`;constructor(){super(),this._placeholder=document.createElement("div"),this._placeholder.id="placeholder",this._placeholder.style.transform="scale(1)",this.shadowRoot.appendChild(this._placeholder),this._loading=document.createElement("div"),this._loading.id="loading",this._loading.textContent="\u{1F6C0} Hold on, loading...",this.shadowRoot.appendChild(this._loading);let e=document.createElement("div");e.id="left";let t=document.createElement("span");t.innerText="PREVIEW",e.appendChild(t),this.shadowRoot.appendChild(e)}dispose(){}executeCommand;canExecuteCommand;async display(e,t,i,r){this._loading.hidden=!1,await e.demoProviderService.provideDemo(this._placeholder,e,t,i,r),this._loading.hidden=!0}};customElements.define("node-projects-demo-view",
|
|
41
|
+
}`;constructor(){super(),this._placeholder=document.createElement("div"),this._placeholder.id="placeholder",this._placeholder.style.transform="scale(1)",this.shadowRoot.appendChild(this._placeholder),this._loading=document.createElement("div"),this._loading.id="loading",this._loading.textContent="\u{1F6C0} Hold on, loading...",this.shadowRoot.appendChild(this._loading);let e=document.createElement("div");e.id="left";let t=document.createElement("span");t.innerText="PREVIEW",e.appendChild(t),this.shadowRoot.appendChild(e)}dispose(){}executeCommand;canExecuteCommand;async display(e,t,i,r){this._loading.hidden=!1,await e.demoProviderService.provideDemo(this._placeholder,e,t,i,r),this._loading.hidden=!0}};customElements.define("node-projects-demo-view",di)});import{PropertyChangedArgs as qi,TypedEvent as pi}from"@node-projects/base-custom-webcomponent";var Qi,ih=u(()=>{"use strict";Qi=class{_serviceContainer;_tool;_strokeColor="black";_strokeThickness="3";_fillBrush="transparent";constructor(e){this._serviceContainer=e}set tool(e){if(this._tool!==e){let t=this._tool;t&&t.dispose(),this._tool=e;let i=null;for(let r of this._serviceContainer.designerTools)r[1]==e&&(i=r[0]);this.onToolChanged.emit(new qi({name:i,tool:e},{name:null,tool:t})),this._tool&&this._tool.activated(this._serviceContainer)}}get tool(){return this._tool}onToolChanged=new pi;finishedWithTool=()=>this.tool=null;set strokeColor(e){if(this._strokeColor!==e){let t=this._strokeColor;this._strokeColor=e,this.onStrokeColorChanged.emit(new qi(e,t))}}get strokeColor(){return this._strokeColor}onStrokeColorChanged=new pi;set strokeThickness(e){if(this._strokeThickness!==e){let t=this._strokeThickness;this._strokeThickness=e,this.onStrokeThicknessChanged.emit(new qi(e,t))}}get strokeThickness(){return this._strokeThickness}onStrokeThicknessChanged=new pi;set fillBrush(e){if(this._fillBrush=e,this._fillBrush!==e){let t=this._fillBrush;this._fillBrush=e,this.onFillBrushChanged.emit(new qi(e,t))}}get fillBrush(){return this._fillBrush}onFillBrushChanged=new pi;showConfigClicked=new pi}});import{BaseCustomWebComponentConstructorAppend as Td,css as Md,html as Od,TypedEvent as Nd}from"@node-projects/base-custom-webcomponent";var mi,So=u(()=>{"use strict";mi=class extends Td{dispose(){}canvasElement;elementsToPackages;onTextChanged=new Nd;_text;static style=Md`
|
|
42
42
|
:host {
|
|
43
43
|
display: block;
|
|
44
44
|
height: 100%;
|
|
@@ -56,7 +56,7 @@ var vd=Object.defineProperty;var u=(s,e)=>()=>(s&&(e=s(s=0)),e);var xd=(s,e)=>{f
|
|
|
56
56
|
<div id="container" style="width: 100%; height: 100%; position: absolute;">
|
|
57
57
|
<textarea id="text"></textarea>
|
|
58
58
|
</div>
|
|
59
|
-
`;executeCommand(e){}canExecuteCommand(e){return!1}async ready(){this._text=this._getDomElement("text")}focusEditor(){requestAnimationFrame(()=>{this.focus(),this._text.focus()})}activated(){}update(e){this._text.value=e}getText(){return this._text.value}setSelection(e){this._text.setSelectionRange(e.start,e.start+e.length)}};customElements.define("node-projects-code-view-simple",pi)});var Ld,Ji,Co=u(()=>{"use strict";$i();wo();ih();So();Ld=!!(navigator.maxTouchPoints&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")),Ji=class extends Ot{config={codeViewWidget:pi,demoViewWidget:hi};designerExtensions=new Map;removeDesignerExtensionOfType(e,t){let i=this.designerExtensions.get(e);for(let r=0;r<i.length;r++)i[r].constructor===t&&i.splice(r,1)}instanceServiceContainerCreatedCallbacks=[];designViewConfigButtons=[];designViewToolbarButtons=[];designerPointerExtensions=[];designerContextMenuExtensions;overlayLayerViewAdditionalStyles=[];globalContext=new Qi(this);options={zoomDesignerBackground:!0,roundPixelsToDecimalPlaces:0,resizerPixelSize:Ld?8:3};designerTools=new Map;get bindingService(){return this.getLastService("bindingService")}get bindableObjectsServices(){return this.getServices("bindableObjectsService")}get bindableObjectDragDropService(){return this.getLastService("bindableObjectDragDropService")}get propertyGridDragDropService(){return this.getLastService("propertyGridDragDropService")}get dragDropService(){return this.getLastService("dragDropService")}get elementInteractionServices(){return this.getServices("elementInteractionService")}get propertiesServices(){return this.getServices("propertyService")}get attachedPropertyServices(){return this.getServices("attachedPropertyService")}get propertyGroupService(){return this.getLastService("propertyGroupsService")}get containerServices(){return this.getServices("containerService")}get snaplinesProviderService(){return this.getLastService("snaplinesProviderService")}get elementsServices(){return this.getServices("elementsService")}get eventsService(){return this.getServices("eventsService")}get instanceServices(){return this.getServices("instanceService")}get editorTypesServices(){return this.getServices("editorTypesService")}get htmlWriterService(){return this.getLastService("htmlWriterService")}get htmlParserService(){return this.getLastService("htmlParserService")}get intializationService(){return this.getLastService("intializationService")}get elementAtPointService(){return this.getLastService("elementAtPointService")}get externalDragDropService(){return this.getLastService("externalDragDropService")}get copyPasteService(){return this.getLastService("copyPasteService")}get modelCommandService(){return this.getLastService("modelCommandService")}get demoProviderService(){return this.getLastService("demoProviderService")}get designItemService(){return this.getLastService("designItemService")}get configUiServices(){return this.getServices("configUiService")}get refactorServices(){return this.getServices("refactorService")}get deletionService(){return this.getLastService("deletionService")}}});var R,ge=u(()=>{"use strict";R=class{static isTypescriptEnum(e){if(e&&typeof e=="object"&&e.constructor==Object){for(let t in e){let i=typeof e[t];if(i!=="string"&&i!=="number")return!1}return!0}return!1}static getTypescriptEnumEntries(e){let t=[];for(let i in e)isNaN(i)&&t.push([i,e[i]]);return t}static camelToDashCase(e){return e.replace(/([A-Z])/g,t=>`-${t[0].toLowerCase()}`)}static dashToCamelCase(e){return e.replace(/-([a-z])/g,t=>t[1].toUpperCase())}}});var V,Xe=u(()=>{"use strict";(function(s){s.none="none",s.all="all",s.some="some",s.bound="bound",s.fromStylesheet="fromStylesheet"})(V||(V={}))});var M,ke=u(()=>{"use strict";(function(s){s.explicitProperty="explicitProperty",s.property="property",s.attribute="attribute",s.class="class",s.css="css",s.cssvar="cssvar",s.event="event",s.content="content",s.visible="visible"})(M||(M={}))});var y,ie=u(()=>{"use strict";(function(s){s.property="property",s.attribute="attribute",s.propertyAndAttribute="propertyAndAttribute",s.cssValue="cssvalue",s.complex="complex",s.add="add"})(y||(y={}))});var E,Z=u(()=>{"use strict";(function(s){s[s.Element=1]="Element",s[s.Attribute=2]="Attribute",s[s.TextNode=3]="TextNode",s[s.Comment=8]="Comment",s[s.Document=9]="Document",s[s.DocumentFragment=11]="DocumentFragment"})(E||(E={}))});function wu(s){return s.getRootNode()?.host?.localName=="node-projects-designer-canvas"}function er(s,e){return e.createRange().createContextualFragment(s,{includeShadowRoots:!0}).firstChild}function st(s,e){return s instanceof e||s instanceof(s.ownerDocument.defaultView??window)[e.name]}function mi(s,...e){for(let t of e)if(s instanceof t||s instanceof(s.ownerDocument.defaultView??window)[t.name])return!0;return!1}function xt(s){return s==null||mi(s,SVGElement,HTMLHtmlElement,HTMLHeadElement,HTMLBodyElement)?!1:(s.ownerDocument.defaultView??window).getComputedStyle(s).display.startsWith("inline")}function _t(s){return s==null||mi(s,SVGElement,HTMLHtmlElement,HTMLHeadElement,HTMLBodyElement)?!1:(s.ownerDocument.defaultView??window).getComputedStyle(s).display.startsWith("inline")}function nh(s){if(mi(s,SVGElement,HTMLHtmlElement,HTMLHeadElement,HTMLBodyElement)||st(s,MathMLElement))return _e.block;let e=(s.ownerDocument.defaultView??window).getComputedStyle(s).display;return e=="none"?_e.none:e.startsWith("inline")?_e.inline:_e.block}function tr(s){return s.textContent.trim()==""&&s.textContent.indexOf("\xA0")<0}function Su(){let s=document.activeElement,e=null;for(;s!=e;)e=s,s.shadowRoot!=null&&s.shadowRoot.activeElement&&(s=s.shadowRoot.activeElement);return s}function rh(s){return s.assignedSlot?s.assignedSlot:s.parentElement==null&&st(s.parentNode,ShadowRoot)?s.parentNode.host:s.parentElement}function Cu(s){let e=rh(s);for(;e;){let t=(s.ownerDocument.defaultView??window).getComputedStyle(s);if(t.position==="absolute"||t.position==="relative"||t.position==="fixed")return e;e=rh(e)}return document.body}function Eu(s){if(st(s,HTMLElement))return{x:s.offsetLeft,y:s.offsetTop};{let e=W(s),t=W(s.parentElement);return{x:e.x-t.x,y:e.y-t.y}}}function W(s){let e=s.getBoundingClientRect();if(e.width==0&&e.height==0&&(s.ownerDocument.defaultView??window).getComputedStyle(s).display=="contents")if(s.shadowRoot)for(let i of s.shadowRoot.children){let r=W(i);e=new DOMRect(Math.min(e.x,r.x),Math.min(e.y,r.y),Math.max(e.width,r.width),Math.max(e.height,r.height))}else for(let i of s.children){let r=W(i);e=new DOMRect(Math.min(e.x,r.x),Math.min(e.y,r.y),Math.max(e.width,r.width),Math.max(e.height,r.height))}return e}function Au(s,e,t={}){let i=0,r=0,n;t?n=t[Rd]??=new Map:n=new Map;let o=[],a=s;for(;a;){let l=n.get(a);if(l){i+=l.offsetLeft,r+=l.offsetTop,o.forEach(f=>{f.offsetLeft+=l.offsetLeft,f.offsetTop+=l.offsetTop});break}let c=a.offsetParent?a.offsetParent:a.getRootNode().host;mi(a,SVGSVGElement,HTMLBodyElement,HTMLHtmlElement)?c=a.parentElement?a.parentElement:a.getRootNode().host:st(a,SVGGraphicsElement)?c=a.ownerSVGElement:st(a,MathMLElement)&&(c=a.parentElement??c);let h=0,d=0;if(st(a,HTMLElement)){let f=a.parentElement;for(;f!==null&&f!==c;)h+=f.scrollLeft,d+=f.scrollTop,f=f.parentElement}c&&(h+=c.scrollLeft,d+=c.scrollTop);let p=0,g=0;if(mi(a,SVGSVGElement,MathMLElement)){let f=a.style.transform;a.style.transform="";let b=a.getBoundingClientRect(),_=a.parentElement?a.parentElement.getBoundingClientRect():a.getRootNode().host.getBoundingClientRect();a.style.transform=f,p=(b.left-_.left)/e,g=(b.top-_.top)/e}else if(st(a,SVGGraphicsElement)){let f=a.getBBox();p=f.x,g=f.y}else if(s==a&&(s===s.ownerDocument.body||st(s,HTMLHtmlElement))){let f=(s.ownerDocument.defaultView??window).getComputedStyle(s);p=s.offsetLeft-h+parseInt(f.marginLeft),g=s.offsetTop-d+parseInt(f.marginTop)}else p=a.offsetLeft-h,g=a.offsetTop-d;o.forEach(f=>{f.offsetLeft+=p,f.offsetTop+=g});let m={offsetLeft:p,offsetTop:g};o.push(m),n.set(a,m),i+=p,r+=g,a=c}return{offsetLeft:i,offsetTop:r}}function sh(s){let e=parseInt(getComputedStyle(s).paddingLeft.replace("px",""))+parseInt(getComputedStyle(s).marginLeft.replace("px",""))+parseInt(getComputedStyle(s).borderLeft.replace("px",""))+parseInt(getComputedStyle(s).paddingRight.replace("px",""))+parseInt(getComputedStyle(s).marginRight.replace("px",""))+parseInt(getComputedStyle(s).borderRight.replace("px","")),t=parseInt(getComputedStyle(s).paddingTop.replace("px",""))+parseInt(getComputedStyle(s).marginTop.replace("px",""))+parseInt(getComputedStyle(s).borderTop.replace("px",""))+parseInt(getComputedStyle(s).paddingBottom.replace("px",""))+parseInt(getComputedStyle(s).marginBottom.replace("px",""))+parseInt(getComputedStyle(s).borderBottom.replace("px",""));return{x:e,y:t}}function ir(s,e){let t={x:Number.MAX_VALUE,y:Number.MAX_VALUE},i={x:Number.MIN_VALUE,y:Number.MIN_VALUE},r;for(let n of s)n.nodeType==E.TextNode||n.nodeType==E.Comment||(r={x:e.getNormalizedElementCoordinates(n.element).x,y:e.getNormalizedElementCoordinates(n.element).y,width:e.getNormalizedElementCoordinates(n.element).width,height:e.getNormalizedElementCoordinates(n.element).height},r.x<t.x&&(t.x=r.x),r.y<t.y&&(t.y=r.y),r.x+r.width>i.x&&(i.x=r.x+r.width),r.y+r.height>i.y&&(i.y=r.y+r.height));return{x:t.x,y:t.y,width:i.x-t.x,height:i.y-t.y}}var _e,Rd,te=u(()=>{"use strict";Z();(function(s){s[s.none=0]="none",s[s.inline=1]="inline",s[s.block=2]="block"})(_e||(_e={}));Rd=Symbol("windowOffsetsCacheKey")});var Y,ye=u(()=>{"use strict";Xe();ge();ke();ie();Z();te();Y=class s{constructor(e){this._recreateElementsOnPropertyChange=e}_recreateElementsOnPropertyChange=!1;static _stylesCache=new Map;_cssCacheClearTimer;static _bindingsCache=new Map;static _bindingsCacheClearTimer;_notifyChangedProperty(e,t,i){}async getProperty(e,t){let i=await this.getProperties(e);return"properties"in i[0]?i.flatMap(r=>r.properties).find(r=>r.name==t):i.find(r=>r.name==t)}async setValue(e,t,i){let r=e[0].openGroup("property changed: "+t.name+" to "+i);for(let n of e)if(this.isHandledElement(n)&&this.getProperty(n,t.name)){if(t.propertyType==y.cssValue)await n.updateStyleInSheetOrLocalAsync(t.name,i),n.element.setAttribute("style",n.element.getAttribute("style"));else{let o=t.attributeName;if(o||(o=R.camelToDashCase(t.name)),t.type==="object"){let a=JSON.stringify(i);(t.propertyType==y.attribute||t.propertyType==y.propertyAndAttribute)&&n.setAttribute(o,a),(t.propertyType==y.property||t.propertyType==y.propertyAndAttribute)&&(n.element[t.name]=i)}else t.type=="boolean"&&(i===!1||i==null)?((t.propertyType==y.attribute||t.propertyType==y.propertyAndAttribute)&&n.removeAttribute(o),(t.propertyType==y.property||t.propertyType==y.propertyAndAttribute)&&(n.element[t.name]=!1)):t.type=="boolean"&&i===!0?((t.propertyType==y.attribute||t.propertyType==y.propertyAndAttribute)&&n.setAttribute(o,""),(t.propertyType==y.property||t.propertyType==y.propertyAndAttribute)&&(n.element[t.name]=!0)):((t.propertyType==y.attribute||t.propertyType==y.propertyAndAttribute)&&n.setAttribute(o,i.toString()),(t.propertyType==y.property||t.propertyType==y.propertyAndAttribute)&&(n.element[t.name]=i))}this._notifyChangedProperty(n,t,i)}r.commit(),this._recreateElementsOnPropertyChange&&s.recreateElements(this,e)}getPropertyTarget(e,t){return t.propertyType==y.attribute?M.attribute:t.propertyType==y.cssValue?M.css:M.property}clearValue(e,t,i){let r=e[0].openGroup("property cleared: "+t.name);for(let n of e){if(i!="binding"){if(t.propertyType==y.cssValue)n.removeStyle(t.name);else if((t.propertyType==y.property||t.propertyType==y.propertyAndAttribute)&&(n.element[t.name]=null),t.propertyType==y.attribute||t.propertyType==y.propertyAndAttribute){let o=t.attributeName;o||(o=R.camelToDashCase(t.name)),n.removeAttribute(o)}}i!="value"&&n.serviceContainer.forSomeServicesTillResult("bindingService",o=>o.clearBinding(n,t.name,this.getPropertyTarget(n,t))),this._notifyChangedProperty(n,t,void 0)}r.commit(),this._recreateElementsOnPropertyChange&&s.recreateElements(this,e)}isSet(e,t){let i=!0,r=!1;if(e!=null&&e.length!==0){let n=t.attributeName;n||(n=R.camelToDashCase(t.name));for(let a of e){let l=!1;if(t.propertyType==y.cssValue?l=a.hasStyle(t.name):l=a.hasAttribute(n),i=i&&l,r=r||l,!i&&r)break}let o=s.getOrBuildCachedBindings(e[0]);if(t.propertyType==y.cssValue){if(o&&o.find(a=>(a.target==M.css||a.target==M.cssvar)&&a.targetName==t.name))return V.bound}else if(t.propertyType==y.attribute){if(o&&o.find(a=>a.target==M.attribute&&a.targetName==t.name))return V.bound}else if(t.propertyType==y.property){if(o&&o.find(a=>(a.target==M.property||a.target==M.explicitProperty)&&a.targetName==t.name))return V.bound}else if(o&&o.find(a=>(a.target==M.property||a.target==M.explicitProperty||a.target==M.attribute)&&a.targetName==t.name))return V.bound;if(!i&&t.propertyType==y.cssValue){let a=s._stylesCache.get(e[0]);if(a||(a=new Set(e[0].getAllStyles().filter(c=>c.selector!=null).flatMap(c=>c.declarations).map(c=>c.name)),s._stylesCache.set(e[0],a),clearTimeout(this._cssCacheClearTimer),this._cssCacheClearTimer=setTimeout(()=>s._stylesCache.clear(),30)),a.has(t.name))return V.fromStylesheet}}else return V.none;return i?V.all:r?V.some:V.none}static getOrBuildCachedBindings(e){let t=s._bindingsCache.get(e);if(!t){let i=e.serviceContainer.getServices("bindingService");if(t=[],i)for(let r of i){let n=r.getBindings(e);n&&n.length>0&&t.push(...n)}s._bindingsCache.set(e,t),clearTimeout(this._bindingsCacheClearTimer),this._bindingsCacheClearTimer=setTimeout(()=>s._bindingsCache.clear(),30)}return t}getValue(e,t){if(e!=null&&e.length!==0)if(t.propertyType==y.cssValue){let i=e[0].getStyle(t.name);for(let r of e)if(r.getStyle(t.name)!=i){i=null;break}return i}else if(t.propertyType==y.property){let i=t.propertyName;return i||(i=R.dashToCamelCase(t.name)),e[0].element[i]}else{let i=t.attributeName;if(i||(i=R.camelToDashCase(t.name)),t.type=="boolean"){if(e[0].hasAttribute(i)){let n=e[0].getAttribute(i);return n==""?!0:n}return!1}return e[0].getAttribute(i)}return null}getBinding(e,t){let i=s.getOrBuildCachedBindings(e[0]);return i!=null?t.propertyType==y.cssValue?i.find(r=>(r.target==M.css||r.target==M.cssvar)&&r.targetName==t.name):t.propertyType==y.attribute?i.find(r=>r.target==M.attribute&&r.targetName==t.name):t.propertyType==y.property?i.find(r=>(r.target==M.property||r.target==M.explicitProperty)&&r.targetName==t.name):i.find(r=>(r.target==M.property||r.target==M.explicitProperty||r.target==M.attribute)&&r.targetName==t.name):null}getUnsetValue(e,t){return t.propertyType==y.cssValue?e!=null&&e.length!==0&&e[0].nodeType==E.Element?window.getComputedStyle(e[0].element)[t.name]:null:t.defaultValue}static recreateElements(e,t){for(let i of t){if(!e.isHandledElement(i))continue;let r="<"+i.name+" ";for(let o of i.element.attributes)r+=o.name+'="'+o.value.replaceAll('"',""")+'" ';r+="></"+i.name+">";let n=er(r,t[0].document);for(let o of[...i.element.childNodes])n.appendChild(o);n.style.pointerEvents="auto",i.node.insertAdjacentElement("beforebegin",n),i.node.parentNode&&i.node.parentNode.removeChild(i.node),i.replaceNode(n)}}getContextMenu(e,t){let i=[{title:"clear",action:r=>{t.service.clearValue(e,t,"value"),e[0].instanceServiceContainer.designerCanvas.extensionManager.refreshAllExtensions(e)}},{title:"edit as text",action:(r,n,o,a)=>{a.close(),setTimeout(async()=>{let l=t.service.getValue(e,t),c=prompt(`edit value of '${t.name}' as string:`,l);c&&c!=l&&await t.service.setValue(e,t,c),e[0].instanceServiceContainer.designerCanvas.extensionManager.refreshAllExtensions(e)},10)}}];return e[0].serviceContainer.config.openBindingsEditor&&(i.push({title:"-"},{title:"edit binding",action:()=>{let r=t.service.getPropertyTarget(e[0],t),n=t.service.getBinding(e,t);e[0].serviceContainer.config.openBindingsEditor(t,e,n,r)}}),t.service.isSet(e,t)==V.bound&&i.push({title:"clear binding",action:()=>{t.service.clearValue(e,t,"binding"),e[0].instanceServiceContainer.designerCanvas.extensionManager.refreshAllExtensions(e)}})),i}}});var G,re=u(()=>{"use strict";(function(s){s[s.none=0]="none",s[s.full=1]="full",s[s.fullOnValueChange=2]="fullOnValueChange",s[s.fullOnClassChange=3]="fullOnClassChange"})(G||(G={}))});var Fe,Nt=u(()=>{"use strict";ge();ye();ie();re();Fe=class extends Y{getRefreshMode(e){return G.fullOnClassChange}async getProperties(e){return this.isHandledElement(e)?this.parseProperties(e.element.constructor.properties):null}parseProperties(e){let t=[];for(let i in e){let r=e[i],n=r,o=null,a=null,l=!1,c=y.propertyAndAttribute;if(r.type&&(n=r.type,o=r.description,a=r.example,l=r.readonly,c=r.readonly?y.property:y.propertyAndAttribute),n===String){let h={name:i,type:"string",service:this,propertyType:c,description:o,example:a,readonly:l};t.push(h)}else if(n===Object){let h={name:i,type:"object",service:this,propertyType:c,description:o,example:a,readonly:l};t.push(h)}else if(n===Number){let h={name:i,type:"number",service:this,propertyType:c,description:o,example:a,readonly:l};t.push(h)}else if(n===Date){let h={name:i,type:"date",service:this,propertyType:c,description:o,example:a,readonly:l};t.push(h)}else if(n===Boolean){let h={name:i,type:"boolean",service:this,propertyType:c,description:o,example:a,readonly:l};t.push(h)}else if(R.isTypescriptEnum(n)){let h={name:i,type:"enum",enumValues:R.getTypescriptEnumEntries(n),service:this,propertyType:c,description:o,example:a,readonly:l};t.push(h)}else{let h={name:i,type:"string",service:this,propertyType:c,description:o,example:a,readonly:l};t.push(h)}}return t}getUnsetValue(e,t){return e[0].element[t.propertyName??t.name]}}});var rr,Eo=u(()=>{"use strict";Nt();rr=class extends Fe{name="polymer";isHandledElement(e){return e.element.constructor.polymerElementVersion!=null}_notifyChangedProperty(e,t,i){e.element.set(t.name,i)}}});var nr,Ao=u(()=>{"use strict";Nt();nr=class extends Fe{name="lit";isHandledElement(e){let t=e.element.constructor.__proto__;for(;t!=null;){if(t.name=="LitElement")return!0;if(t.name==null||t.name=="HTMLElement"||t.name=="Element"||t.name=="Node"||t.name=="HTMLElement")return!1;t=t.__proto__}return!1}_notifyChangedProperty(e,t,i){}}});var sr,Po=u(()=>{"use strict";ie();re();ye();sr=class extends Y{inputProperties=[{name:"type",type:"list",values:["text","number","button","checkbox","color","date","datetime-local","email","file","hidden","image","month","password","radio","range","reset","search","submit","tel","time","url","week"],service:this,defaultValue:"text",propertyType:y.propertyAndAttribute},{name:"value",type:"string",service:this,propertyType:y.propertyAndAttribute},{name:"placeholder",type:"string",service:this,propertyType:y.propertyAndAttribute},{name:"checked",type:"boolean",service:this,propertyType:y.propertyAndAttribute},{name:"min",type:"number",service:this,propertyType:y.propertyAndAttribute},{name:"max",type:"number",service:this,propertyType:y.propertyAndAttribute},{name:"readonly",type:"boolean",service:this,propertyType:y.propertyAndAttribute},{name:"valueAsDate",type:"string",service:this,propertyType:y.property},{name:"valueAsNumber",type:"string",service:this,propertyType:y.property}];textareaProperties=[{name:"value",type:"string",service:this,propertyType:y.property},{name:"placeholder",type:"string",service:this,propertyType:y.propertyAndAttribute},{name:"maxlength",type:"number",service:this,propertyType:y.propertyAndAttribute},{name:"cols",type:"number",service:this,propertyType:y.propertyAndAttribute},{name:"rows",type:"number",service:this,propertyType:y.propertyAndAttribute},{name:"readonly",type:"boolean",service:this,propertyType:y.propertyAndAttribute},{name:"resize",type:"list",values:["both","none","horizontal","vertical"],service:this,propertyType:y.cssValue}];selectProperties=[{name:"value",type:"string",service:this,propertyType:y.property},{name:"size",type:"number",service:this,propertyType:y.propertyAndAttribute},{name:"multiple",type:"boolean",service:this,propertyType:y.propertyAndAttribute}];buttonProperties=[{name:"type",type:"list",values:["button","submit","reset"],service:this,defaultValue:"button",propertyType:y.propertyAndAttribute},{name:"value",type:"string",service:this,propertyType:y.propertyAndAttribute}];anchorProperties=[{name:"href",type:"string",service:this,propertyType:y.propertyAndAttribute}];divProperties=[{name:"title",type:"string",service:this,propertyType:y.propertyAndAttribute}];imgProperties=[{name:"src",type:"string",service:this,propertyType:y.propertyAndAttribute},{name:"alt",type:"string",service:this,propertyType:y.propertyAndAttribute}];iframeProperties=[{name:"src",type:"string",service:this,propertyType:y.propertyAndAttribute}];formElementProperties=[{name:"autofocus",type:"boolean",service:this,propertyType:y.propertyAndAttribute},{name:"disabled",type:"boolean",service:this,propertyType:y.propertyAndAttribute},{name:"required",type:"boolean",service:this,propertyType:y.propertyAndAttribute}];meterProperties=[{name:"value",type:"number",service:this,propertyType:y.propertyAndAttribute},{name:"min",type:"number",service:this,propertyType:y.propertyAndAttribute},{name:"max",type:"number",service:this,propertyType:y.propertyAndAttribute},{name:"low",type:"number",service:this,propertyType:y.propertyAndAttribute},{name:"high",type:"number",service:this,propertyType:y.propertyAndAttribute},{name:"optimum",type:"number",service:this,propertyType:y.propertyAndAttribute}];name="native";getRefreshMode(e){return G.full}isHandledElement(e){switch(e.element.localName){case"input":case"textarea":case"select":case"button":case"a":case"div":case"span":case"br":case"img":case"iframe":case"meter":case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":case"p":return!0}return!1}async getProperty(e,t){return(await this.getProperties(e)).find(i=>i.name==t)}async getProperties(e){if(!this.isHandledElement(e))return null;switch(e.element.localName){case"input":return[...this.inputProperties,...this.formElementProperties];case"textarea":return[...this.textareaProperties,...this.formElementProperties];case"select":return[...this.selectProperties,...this.formElementProperties];case"button":return[...this.buttonProperties,...this.formElementProperties];case"a":return this.anchorProperties;case"div":return this.divProperties;case"img":return this.imgProperties;case"iframe":return this.iframeProperties;case"meter":return this.meterProperties;case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":case"p":return[]}return null}}});var Ie,Lt=u(()=>{"use strict";ie();ye();re();Ie=class extends Y{getRefreshMode(e){return G.none}commonProperties=[{name:"class",type:"string",service:this,attributeName:"class",propertyName:"className",propertyType:y.attribute},{name:"title",type:"string",service:this,propertyType:y.propertyAndAttribute},{name:"part",type:"string",service:this,propertyType:y.propertyAndAttribute},{name:"tabindex",type:"number",service:this,propertyType:y.propertyAndAttribute}];name="common";isHandledElement(e){return!e.isRootItem}async getProperty(e,t){return this.commonProperties.find(i=>i.name==t)}async getProperties(e){return this.commonProperties}}});var or,ko=u(()=>{"use strict";Lt();ie();or=class extends Ie{rectProperties=[{name:"x",type:"number",defaultValue:"0",service:this,propertyType:y.propertyAndAttribute},{name:"y",type:"number",defaultValue:"0",service:this,propertyType:y.propertyAndAttribute},{name:"width",type:"number",defaultValue:"auto",service:this,propertyType:y.propertyAndAttribute},{name:"height",type:"number",defaultValue:"auto",service:this,propertyType:y.propertyAndAttribute},{name:"rx",type:"number",defaultValue:"auto",service:this,propertyType:y.propertyAndAttribute},{name:"ry",type:"number",defaultValue:"auto",service:this,propertyType:y.propertyAndAttribute},{name:"pathLength",type:"number",service:this,propertyType:y.propertyAndAttribute},{name:"fill",type:"list",values:["transparent","black","white","blue","green","red","yellow","orange","brown","grey"],defaultValue:"transparent",service:this,propertyType:y.propertyAndAttribute},{name:"fill-opacity",type:"list",values:["0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"],defaultValue:"1",service:this,propertyType:y.propertyAndAttribute}];lineProperties=[{name:"x1",type:"number",defaultValue:"0",service:this,propertyType:y.propertyAndAttribute},{name:"y1",type:"number",defaultValue:"0",service:this,propertyType:y.propertyAndAttribute},{name:"x2",type:"number",defaultValue:"0",service:this,propertyType:y.propertyAndAttribute},{name:"y2",type:"number",defaultValue:"0",service:this,propertyType:y.propertyAndAttribute},{name:"pathLength",type:"number",service:this,propertyType:y.propertyAndAttribute}];ellipseProperties=[{name:"cx",type:"number",defaultValue:"0",service:this,propertyType:y.propertyAndAttribute},{name:"cy",type:"number",defaultValue:"0",service:this,propertyType:y.propertyAndAttribute},{name:"rx",type:"number",defaultValue:"auto",service:this,propertyType:y.propertyAndAttribute},{name:"ry",type:"number",defaultValue:"auto",service:this,propertyType:y.propertyAndAttribute},{name:"pathLength",type:"number",service:this,propertyType:y.propertyAndAttribute},{name:"fill",type:"list",values:["transparent","black","white","blue","green","red","yellow","orange","brown","grey"],defaultValue:"transparent",service:this,propertyType:y.propertyAndAttribute},{name:"fill-opacity",type:"list",values:["0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"],defaultValue:"1",service:this,propertyType:y.propertyAndAttribute}];pathProperties=[{name:"d",type:"string",defaultValue:"",service:this,propertyType:y.propertyAndAttribute},{name:"pathLength",type:"number",service:this,propertyType:y.propertyAndAttribute}];svgProperties=[{name:"width",type:"number",defaultValue:"auto",service:this,propertyType:y.cssValue},{name:"height",type:"number",defaultValue:"auto",service:this,propertyType:y.cssValue},{name:"viewBox",type:"number",service:this,propertyType:y.cssValue}];defaultProperties=[{name:"stroke",type:"list",values:["black","white","blue","green","red","yellow","orange","brown","grey"],defaultValue:"currentcolor",service:this,propertyType:y.propertyAndAttribute},{name:"stroke-width",type:"number",service:this,propertyType:y.propertyAndAttribute},{name:"stroke-opacity",type:"list",values:["0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"],defaultValue:"1",service:this,propertyType:y.propertyAndAttribute},{name:"visibility",type:"list",values:["visible","hidden"],defaultValue:"visible",service:this,propertyType:y.propertyAndAttribute}];name="svg";isHandledElement(e){switch(e.element.localName){case"rect":case"line":case"ellipse":case"path":case"svg":return!0}return!1}async getProperty(e,t){return(await this.getProperties(e)).find(i=>i.name==t)}async getProperties(e){if(!this.isHandledElement(e))return null;switch(e.element.localName){case"rect":return[...this.rectProperties,...this.defaultProperties];case"line":return[...this.lineProperties,...this.defaultProperties];case"ellipse":return[...this.ellipseProperties,...this.defaultProperties];case"path":return[...this.pathProperties,...this.defaultProperties];case"svg":return this.svgProperties}return null}}});var Rt,Io=u(()=>{"use strict";Rt=class{constructor(e,t,i,r){this.title="Change Css Style "+t+" of <"+e.name+">",this.designItem=e,this.name=t,this.newValue=i,this.oldValue=r}title;get affectedItems(){return[this.designItem]}undo(){this.oldValue===""||this.oldValue==null?(this.designItem._withoutUndoRemoveStyle(this.name),this.name.startsWith("--")?this.designItem.element.style.removeProperty(this.name):this.designItem.element.style[this.name]=""):(this.designItem._withoutUndoSetStyle(this.name,this.oldValue),this.name.startsWith("--")?this.designItem.element.style.setProperty(this.name,this.oldValue):this.designItem.element.style[this.name]=this.oldValue)}do(){this.newValue===""||this.newValue==null?(this.designItem._withoutUndoRemoveStyle(this.name),this.name.startsWith("--")?this.designItem.element.style.removeProperty(this.name):this.designItem.element.style[this.name]=""):(this.designItem._withoutUndoSetStyle(this.name,this.newValue),this.name.startsWith("--")?this.designItem.element.style.setProperty(this.name,this.newValue):this.designItem.element.style[this.name]=this.newValue)}designItem;name;newValue;oldValue;mergeWith(e){return!1}}});var ui,Do=u(()=>{"use strict";ui=class s{constructor(e,t,i,r){this.title="Change Attribute "+t+" of <"+e.name+">",this.designItem=e,this.name=t,this.newValue=i,this.oldValue=r}title;get affectedItems(){return[this.designItem]}undo(){if(this.oldValue==null){this.designItem._withoutUndoRemoveAttribute(this.name);try{this.designItem.element.removeAttribute(this.name)}catch(e){e?.code!==5&&console.warn(e)}}else if(this.designItem._withoutUndoSetAttribute(this.name,this.oldValue),this.name!="draggable")try{typeof this.oldValue=="string"&&this.designItem.element.setAttribute(this.name,this.oldValue)}catch(e){e?.code!==5&&console.warn(e)}}do(){if(this.newValue==null){this.designItem._withoutUndoRemoveAttribute(this.name);try{this.designItem.element.removeAttribute(this.name)}catch(e){e?.code!==5&&console.warn(e)}}else if(this.designItem._withoutUndoSetAttribute(this.name,this.newValue),this.name!="draggable")try{typeof this.newValue=="string"&&this.designItem.element.setAttribute(this.name,this.newValue)}catch(e){e?.code!==5&&console.warn(e)}}designItem;name;newValue;oldValue;mergeWith(e){return e instanceof s&&this.designItem===e.designItem&&this.name===e.name?(this.newValue=e.newValue,!0):!1}}});var w,De=u(()=>{"use strict";(function(s){s[s.Directly=0]="Directly",s[s.Permanent=1]="Permanent",s[s.Selection=2]="Selection",s[s.PrimarySelection=3]="PrimarySelection",s[s.PrimarySelectionContainer=4]="PrimarySelectionContainer",s[s.MouseOver=5]="MouseOver",s[s.OnlyOneItemSelected=6]="OnlyOneItemSelected",s[s.MultipleItemsSelected=7]="MultipleItemsSelected",s[s.ContainerDragOverAndCanBeEntered=8]="ContainerDragOverAndCanBeEntered",s[s.ContainerExternalDragOverAndCanBeEntered=9]="ContainerExternalDragOverAndCanBeEntered",s[s.ContainerDrag=10]="ContainerDrag",s[s.Doubleclick=11]="Doubleclick",s[s.Placement=12]="Placement",s[s.PrimarySelectionAndCanBeEntered=13]="PrimarySelectionAndCanBeEntered",s[s.PrimarySelectionContainerAndCanBeEntered=14]="PrimarySelectionContainerAndCanBeEntered",s[s.PrimarySelectionRefreshed=15]="PrimarySelectionRefreshed"})(w||(w={}))});var ze,ar,lr,To=u(()=>{"use strict";(function(s){s[s.Name=0]="Name",s[s.Value=1]="Value",s[s.InQuote=2]="InQuote"})(ze||(ze={}));ar=class{constructor(e,t){this.name=e.trim(),this.value=t.trim()}name;value},lr=class{entries=[];parse(e,t="'"){this.entries=[];let i="",r="",n=ze.Name;for(let o=0;o<e.length;o++){let a=e[o];n===ze.Name?a===":"?n=ze.Value:a===";"?i="":i+=a:n===ze.Value?a===";"?(this.entries.push(new ar(i,r)),i="",r="",n=ze.Name):(a===t&&(n=ze.InQuote),r+=a):n===ze.InQuote&&(a==="\\"?(r+=a,o++,a=e[o],r+=a):a===t?(r+=a,n=ze.Value):r+=a)}i.trim()!==""&&this.entries.push(new ar(i,r))}}});var ot,Mo=u(()=>{"use strict";ot=class{constructor(e,t,i){this.title="Move or Insert Item",this.designItem=e,this.newParent=t,this.newIndex=i}title;get affectedItems(){return this.oldParent?[this.designItem,this.newParent,this.oldParent]:[this.designItem,this.newParent]}undo(){this.oldParent?(this.oldParent._insertChildInternal(this.designItem,this.oldIndex),this.affectedItems[0].instanceServiceContainer.contentService.onContentChanged.emit({changeType:"moved",designItems:[this.designItem]})):(this.designItem.parent._removeChildInternal(this.designItem),this.affectedItems[0].instanceServiceContainer.contentService.onContentChanged.emit({changeType:"removed",designItems:[this.designItem]}))}do(){this.oldParent=this.designItem.parent,this.oldParent&&(this.oldIndex=this.designItem.parent.indexOf(this.designItem)),this.newParent._insertChildInternal(this.designItem,this.newIndex),this.affectedItems[0].instanceServiceContainer.contentService.onContentChanged.emit({changeType:this.oldParent?"moved":"added",designItems:[this.designItem]})}designItem;newParent;newIndex;oldParent;oldIndex;newItem;mergeWith(e){return!1}}});var cr,Oo=u(()=>{"use strict";cr=class{_textHolder="";indent=4;level=0;get position(){return this._textHolder.length}isLastCharNewline(){return this._textHolder[this._textHolder.length-1]===`
|
|
59
|
+
`;executeCommand(e){}canExecuteCommand(e){return!1}async ready(){this._text=this._getDomElement("text")}focusEditor(){requestAnimationFrame(()=>{this.focus(),this._text.focus()})}activated(){}update(e){this._text.value=e}getText(){return this._text.value}setSelection(e){this._text.setSelectionRange(e.start,e.start+e.length)}};customElements.define("node-projects-code-view-simple",mi)});var Ld,Ji,Co=u(()=>{"use strict";$i();wo();ih();So();Ld=!!(navigator.maxTouchPoints&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")),Ji=class extends Ot{config={codeViewWidget:mi,demoViewWidget:di};designerExtensions=new Map;removeDesignerExtensionOfType(e,t){let i=this.designerExtensions.get(e);for(let r=0;r<i.length;r++)i[r].constructor===t&&i.splice(r,1)}instanceServiceContainerCreatedCallbacks=[];designViewConfigButtons=[];designViewToolbarButtons=[];designerPointerExtensions=[];designerContextMenuExtensions;overlayLayerViewAdditionalStyles=[];globalContext=new Qi(this);options={zoomDesignerBackground:!0,roundPixelsToDecimalPlaces:0,resizerPixelSize:Ld?8:3};designerTools=new Map;get bindingService(){return this.getLastService("bindingService")}get bindableObjectsServices(){return this.getServices("bindableObjectsService")}get bindableObjectDragDropService(){return this.getLastService("bindableObjectDragDropService")}get propertyGridDragDropService(){return this.getLastService("propertyGridDragDropService")}get dragDropService(){return this.getLastService("dragDropService")}get elementInteractionServices(){return this.getServices("elementInteractionService")}get propertiesServices(){return this.getServices("propertyService")}get attachedPropertyServices(){return this.getServices("attachedPropertyService")}get propertyGroupService(){return this.getLastService("propertyGroupsService")}get containerServices(){return this.getServices("containerService")}get snaplinesProviderService(){return this.getLastService("snaplinesProviderService")}get elementsServices(){return this.getServices("elementsService")}get eventsService(){return this.getServices("eventsService")}get instanceServices(){return this.getServices("instanceService")}get editorTypesServices(){return this.getServices("editorTypesService")}get htmlWriterService(){return this.getLastService("htmlWriterService")}get htmlParserService(){return this.getLastService("htmlParserService")}get intializationService(){return this.getLastService("intializationService")}get elementAtPointService(){return this.getLastService("elementAtPointService")}get externalDragDropService(){return this.getLastService("externalDragDropService")}get copyPasteService(){return this.getLastService("copyPasteService")}get modelCommandService(){return this.getLastService("modelCommandService")}get demoProviderService(){return this.getLastService("demoProviderService")}get designItemService(){return this.getLastService("designItemService")}get configUiServices(){return this.getServices("configUiService")}get refactorServices(){return this.getServices("refactorService")}get deletionService(){return this.getLastService("deletionService")}}});var L,ue=u(()=>{"use strict";L=class{static isTypescriptEnum(e){if(e&&typeof e=="object"&&e.constructor==Object){for(let t in e){let i=typeof e[t];if(i!=="string"&&i!=="number")return!1}return!0}return!1}static getTypescriptEnumEntries(e){let t=[];for(let i in e)isNaN(i)&&t.push([i,e[i]]);return t}static camelToDashCase(e){return e.replace(/([A-Z])/g,t=>`-${t[0].toLowerCase()}`)}static dashToCamelCase(e){return e.replace(/-([a-z])/g,t=>t[1].toUpperCase())}}});var V,Xe=u(()=>{"use strict";(function(s){s.none="none",s.all="all",s.some="some",s.bound="bound",s.fromStylesheet="fromStylesheet"})(V||(V={}))});var M,Ie=u(()=>{"use strict";(function(s){s.explicitProperty="explicitProperty",s.property="property",s.attribute="attribute",s.class="class",s.css="css",s.cssvar="cssvar",s.event="event",s.content="content",s.visible="visible"})(M||(M={}))});var y,ie=u(()=>{"use strict";(function(s){s.property="property",s.attribute="attribute",s.propertyAndAttribute="propertyAndAttribute",s.cssValue="cssvalue",s.complex="complex",s.add="add"})(y||(y={}))});var E,Z=u(()=>{"use strict";(function(s){s[s.Element=1]="Element",s[s.Attribute=2]="Attribute",s[s.TextNode=3]="TextNode",s[s.Comment=8]="Comment",s[s.Document=9]="Document",s[s.DocumentFragment=11]="DocumentFragment"})(E||(E={}))});function wu(s){return s.getRootNode()?.host?.localName=="node-projects-designer-canvas"}function er(s,e){return e.createRange().createContextualFragment(s,{includeShadowRoots:!0}).firstChild}function st(s,e){return s instanceof e||s instanceof(s.ownerDocument.defaultView??window)[e.name]}function ui(s,...e){for(let t of e)if(s instanceof t||s instanceof(s.ownerDocument.defaultView??window)[t.name])return!0;return!1}function xt(s){return s==null||ui(s,SVGElement,HTMLHtmlElement,HTMLHeadElement,HTMLBodyElement)?!1:(s.ownerDocument.defaultView??window).getComputedStyle(s).display.startsWith("inline")}function _t(s){return s==null||ui(s,SVGElement,HTMLHtmlElement,HTMLHeadElement,HTMLBodyElement)?!1:(s.ownerDocument.defaultView??window).getComputedStyle(s).display.startsWith("inline")}function nh(s){if(ui(s,SVGElement,HTMLHtmlElement,HTMLHeadElement,HTMLBodyElement)||st(s,MathMLElement))return _e.block;let e=(s.ownerDocument.defaultView??window).getComputedStyle(s).display;return e=="none"?_e.none:e.startsWith("inline")?_e.inline:_e.block}function tr(s){return s.textContent.trim()==""&&s.textContent.indexOf("\xA0")<0}function Su(){let s=document.activeElement,e=null;for(;s!=e;)e=s,s.shadowRoot!=null&&s.shadowRoot.activeElement&&(s=s.shadowRoot.activeElement);return s}function rh(s){return s.assignedSlot?s.assignedSlot:s.parentElement==null&&st(s.parentNode,ShadowRoot)?s.parentNode.host:s.parentElement}function Cu(s){let e=rh(s);for(;e;){let t=(s.ownerDocument.defaultView??window).getComputedStyle(s);if(t.position==="absolute"||t.position==="relative"||t.position==="fixed")return e;e=rh(e)}return document.body}function Eu(s){if(st(s,HTMLElement))return{x:s.offsetLeft,y:s.offsetTop};{let e=W(s),t=W(s.parentElement);return{x:e.x-t.x,y:e.y-t.y}}}function W(s){let e=s.getBoundingClientRect();if(e.width==0&&e.height==0&&(s.ownerDocument.defaultView??window).getComputedStyle(s).display=="contents")if(s.shadowRoot)for(let i of s.shadowRoot.children){let r=W(i);e=new DOMRect(Math.min(e.x,r.x),Math.min(e.y,r.y),Math.max(e.width,r.width),Math.max(e.height,r.height))}else for(let i of s.children){let r=W(i);e=new DOMRect(Math.min(e.x,r.x),Math.min(e.y,r.y),Math.max(e.width,r.width),Math.max(e.height,r.height))}return e}function Au(s,e,t={}){let i=0,r=0,n;t?n=t[Rd]??=new Map:n=new Map;let o=[],a=s;for(;a;){let l=n.get(a);if(l){i+=l.offsetLeft,r+=l.offsetTop,o.forEach(f=>{f.offsetLeft+=l.offsetLeft,f.offsetTop+=l.offsetTop});break}let c=a.offsetParent?a.offsetParent:a.getRootNode().host;ui(a,SVGSVGElement,HTMLBodyElement,HTMLHtmlElement)?c=a.parentElement?a.parentElement:a.getRootNode().host:st(a,SVGGraphicsElement)?c=a.ownerSVGElement:st(a,MathMLElement)&&(c=a.parentElement??c);let h=0,d=0;if(st(a,HTMLElement)){let f=a.parentElement;for(;f!==null&&f!==c;)h+=f.scrollLeft,d+=f.scrollTop,f=f.parentElement}c&&(h+=c.scrollLeft,d+=c.scrollTop);let p=0,g=0;if(ui(a,SVGSVGElement,MathMLElement)){let f=a.style.transform;a.style.transform="";let b=a.getBoundingClientRect(),_=a.parentElement?a.parentElement.getBoundingClientRect():a.getRootNode().host.getBoundingClientRect();a.style.transform=f,p=(b.left-_.left)/e,g=(b.top-_.top)/e}else if(st(a,SVGGraphicsElement)){let f=a.getBBox();p=f.x,g=f.y}else if(s==a&&(s===s.ownerDocument.body||st(s,HTMLHtmlElement))){let f=(s.ownerDocument.defaultView??window).getComputedStyle(s);p=s.offsetLeft-h+parseInt(f.marginLeft),g=s.offsetTop-d+parseInt(f.marginTop)}else p=a.offsetLeft-h,g=a.offsetTop-d;o.forEach(f=>{f.offsetLeft+=p,f.offsetTop+=g});let m={offsetLeft:p,offsetTop:g};o.push(m),n.set(a,m),i+=p,r+=g,a=c}return{offsetLeft:i,offsetTop:r}}function sh(s){let e=parseInt(getComputedStyle(s).paddingLeft.replace("px",""))+parseInt(getComputedStyle(s).marginLeft.replace("px",""))+parseInt(getComputedStyle(s).borderLeft.replace("px",""))+parseInt(getComputedStyle(s).paddingRight.replace("px",""))+parseInt(getComputedStyle(s).marginRight.replace("px",""))+parseInt(getComputedStyle(s).borderRight.replace("px","")),t=parseInt(getComputedStyle(s).paddingTop.replace("px",""))+parseInt(getComputedStyle(s).marginTop.replace("px",""))+parseInt(getComputedStyle(s).borderTop.replace("px",""))+parseInt(getComputedStyle(s).paddingBottom.replace("px",""))+parseInt(getComputedStyle(s).marginBottom.replace("px",""))+parseInt(getComputedStyle(s).borderBottom.replace("px",""));return{x:e,y:t}}function ir(s,e){let t={x:Number.MAX_VALUE,y:Number.MAX_VALUE},i={x:Number.MIN_VALUE,y:Number.MIN_VALUE},r;for(let n of s)n.nodeType==E.TextNode||n.nodeType==E.Comment||(r={x:e.getNormalizedElementCoordinates(n.element).x,y:e.getNormalizedElementCoordinates(n.element).y,width:e.getNormalizedElementCoordinates(n.element).width,height:e.getNormalizedElementCoordinates(n.element).height},r.x<t.x&&(t.x=r.x),r.y<t.y&&(t.y=r.y),r.x+r.width>i.x&&(i.x=r.x+r.width),r.y+r.height>i.y&&(i.y=r.y+r.height));return{x:t.x,y:t.y,width:i.x-t.x,height:i.y-t.y}}var _e,Rd,te=u(()=>{"use strict";Z();(function(s){s[s.none=0]="none",s[s.inline=1]="inline",s[s.block=2]="block"})(_e||(_e={}));Rd=Symbol("windowOffsetsCacheKey")});var Y,ye=u(()=>{"use strict";Xe();ue();Ie();ie();Z();te();Y=class s{constructor(e){this._recreateElementsOnPropertyChange=e}_recreateElementsOnPropertyChange=!1;static _stylesCache=new Map;_cssCacheClearTimer;static _bindingsCache=new Map;static _bindingsCacheClearTimer;_notifyChangedProperty(e,t,i){}async getProperty(e,t){let i=await this.getProperties(e);return"properties"in i[0]?i.flatMap(r=>r.properties).find(r=>r.name==t):i.find(r=>r.name==t)}async setValue(e,t,i){let r=e[0].openGroup("property changed: "+t.name+" to "+i);for(let n of e)if(this.isHandledElement(n)&&this.getProperty(n,t.name)){if(t.propertyType==y.cssValue)await n.updateStyleInSheetOrLocalAsync(t.name,i),n.element.setAttribute("style",n.element.getAttribute("style"));else{let o=t.attributeName;if(o||(o=L.camelToDashCase(t.name)),t.type==="object"){let a=JSON.stringify(i);(t.propertyType==y.attribute||t.propertyType==y.propertyAndAttribute)&&n.setAttribute(o,a),(t.propertyType==y.property||t.propertyType==y.propertyAndAttribute)&&(n.element[t.name]=i)}else t.type=="boolean"&&(i===!1||i==null)?((t.propertyType==y.attribute||t.propertyType==y.propertyAndAttribute)&&n.removeAttribute(o),(t.propertyType==y.property||t.propertyType==y.propertyAndAttribute)&&(n.element[t.name]=!1)):t.type=="boolean"&&i===!0?((t.propertyType==y.attribute||t.propertyType==y.propertyAndAttribute)&&n.setAttribute(o,""),(t.propertyType==y.property||t.propertyType==y.propertyAndAttribute)&&(n.element[t.name]=!0)):((t.propertyType==y.attribute||t.propertyType==y.propertyAndAttribute)&&n.setAttribute(o,i.toString()),(t.propertyType==y.property||t.propertyType==y.propertyAndAttribute)&&(n.element[t.name]=i))}this._notifyChangedProperty(n,t,i)}r.commit(),this._recreateElementsOnPropertyChange&&s.recreateElements(this,e)}getPropertyTarget(e,t){return t.propertyType==y.attribute?M.attribute:t.propertyType==y.cssValue?M.css:M.property}clearValue(e,t,i){let r=e[0].openGroup("property cleared: "+t.name);for(let n of e){if(i!="binding"){if(t.propertyType==y.cssValue)n.removeStyle(t.name);else if((t.propertyType==y.property||t.propertyType==y.propertyAndAttribute)&&(n.element[t.name]=null),t.propertyType==y.attribute||t.propertyType==y.propertyAndAttribute){let o=t.attributeName;o||(o=L.camelToDashCase(t.name)),n.removeAttribute(o)}}i!="value"&&n.serviceContainer.forSomeServicesTillResult("bindingService",o=>o.clearBinding(n,t.name,this.getPropertyTarget(n,t))),this._notifyChangedProperty(n,t,void 0)}r.commit(),this._recreateElementsOnPropertyChange&&s.recreateElements(this,e)}isSet(e,t){let i=!0,r=!1;if(e!=null&&e.length!==0){let n=t.attributeName;n||(n=L.camelToDashCase(t.name));for(let a of e){let l=!1;if(t.propertyType==y.cssValue?l=a.hasStyle(t.name):l=a.hasAttribute(n),i=i&&l,r=r||l,!i&&r)break}let o=s.getOrBuildCachedBindings(e[0]);if(t.propertyType==y.cssValue){if(o&&o.find(a=>(a.target==M.css||a.target==M.cssvar)&&a.targetName==t.name))return V.bound}else if(t.propertyType==y.attribute){if(o&&o.find(a=>a.target==M.attribute&&a.targetName==t.name))return V.bound}else if(t.propertyType==y.property){if(o&&o.find(a=>(a.target==M.property||a.target==M.explicitProperty)&&a.targetName==t.name))return V.bound}else if(o&&o.find(a=>(a.target==M.property||a.target==M.explicitProperty||a.target==M.attribute)&&a.targetName==t.name))return V.bound;if(!i&&t.propertyType==y.cssValue){let a=s._stylesCache.get(e[0]);if(a||(a=new Set(e[0].getAllStyles().filter(c=>c.selector!=null).flatMap(c=>c.declarations).map(c=>c.name)),s._stylesCache.set(e[0],a),clearTimeout(this._cssCacheClearTimer),this._cssCacheClearTimer=setTimeout(()=>s._stylesCache.clear(),30)),a.has(t.name))return V.fromStylesheet}}else return V.none;return i?V.all:r?V.some:V.none}static getOrBuildCachedBindings(e){let t=s._bindingsCache.get(e);if(!t){let i=e.serviceContainer.getServices("bindingService");if(t=[],i)for(let r of i){let n=r.getBindings(e);n&&n.length>0&&t.push(...n)}s._bindingsCache.set(e,t),clearTimeout(this._bindingsCacheClearTimer),this._bindingsCacheClearTimer=setTimeout(()=>s._bindingsCache.clear(),30)}return t}getValue(e,t){if(e!=null&&e.length!==0)if(t.propertyType==y.cssValue){let i=e[0].getStyle(t.name);for(let r of e)if(r.getStyle(t.name)!=i){i=null;break}return i}else if(t.propertyType==y.property){let i=t.propertyName;return i||(i=L.dashToCamelCase(t.name)),e[0].element[i]}else{let i=t.attributeName;if(i||(i=L.camelToDashCase(t.name)),t.type=="boolean"){if(e[0].hasAttribute(i)){let n=e[0].getAttribute(i);return n==""?!0:n}return!1}return e[0].getAttribute(i)}return null}getBinding(e,t){let i=s.getOrBuildCachedBindings(e[0]);return i!=null?t.propertyType==y.cssValue?i.find(r=>(r.target==M.css||r.target==M.cssvar)&&r.targetName==t.name):t.propertyType==y.attribute?i.find(r=>r.target==M.attribute&&r.targetName==t.name):t.propertyType==y.property?i.find(r=>(r.target==M.property||r.target==M.explicitProperty)&&r.targetName==t.name):i.find(r=>(r.target==M.property||r.target==M.explicitProperty||r.target==M.attribute)&&r.targetName==t.name):null}getUnsetValue(e,t){return t.propertyType==y.cssValue?e!=null&&e.length!==0&&e[0].nodeType==E.Element?window.getComputedStyle(e[0].element)[t.name]:null:t.defaultValue}static recreateElements(e,t){for(let i of t){if(!e.isHandledElement(i))continue;let r="<"+i.name+" ";for(let o of i.element.attributes)r+=o.name+'="'+o.value.replaceAll('"',""")+'" ';r+="></"+i.name+">";let n=er(r,t[0].document);for(let o of[...i.element.childNodes])n.appendChild(o);n.style.pointerEvents="auto",i.node.insertAdjacentElement("beforebegin",n),i.node.parentNode&&i.node.parentNode.removeChild(i.node),i.replaceNode(n)}}getContextMenu(e,t){let i=[{title:"clear",action:r=>{t.service.clearValue(e,t,"value"),e[0].instanceServiceContainer.designerCanvas.extensionManager.refreshAllExtensions(e)}},{title:"edit as text",action:(r,n,o,a)=>{a.close(),setTimeout(async()=>{let l=t.service.getValue(e,t),c=prompt(`edit value of '${t.name}' as string:`,l);c&&c!=l&&await t.service.setValue(e,t,c),e[0].instanceServiceContainer.designerCanvas.extensionManager.refreshAllExtensions(e)},10)}}];return e[0].serviceContainer.config.openBindingsEditor&&(i.push({title:"-"},{title:"edit binding",action:()=>{let r=t.service.getPropertyTarget(e[0],t),n=t.service.getBinding(e,t);e[0].serviceContainer.config.openBindingsEditor(t,e,n,r)}}),t.service.isSet(e,t)==V.bound&&i.push({title:"clear binding",action:()=>{t.service.clearValue(e,t,"binding"),e[0].instanceServiceContainer.designerCanvas.extensionManager.refreshAllExtensions(e)}})),i}}});var G,re=u(()=>{"use strict";(function(s){s[s.none=0]="none",s[s.full=1]="full",s[s.fullOnValueChange=2]="fullOnValueChange",s[s.fullOnClassChange=3]="fullOnClassChange"})(G||(G={}))});var Fe,Nt=u(()=>{"use strict";ue();ye();ie();re();Fe=class extends Y{getRefreshMode(e){return G.fullOnClassChange}async getProperties(e){return this.isHandledElement(e)?this.parseProperties(e.element.constructor.properties):null}parseProperties(e){let t=[];for(let i in e){let r=e[i],n=r,o=null,a=null,l=!1,c=y.propertyAndAttribute;if(r.type&&(n=r.type,o=r.description,a=r.example,l=r.readonly,c=r.readonly?y.property:y.propertyAndAttribute),n===String){let h={name:i,type:"string",service:this,propertyType:c,description:o,example:a,readonly:l};t.push(h)}else if(n===Object){let h={name:i,type:"object",service:this,propertyType:c,description:o,example:a,readonly:l};t.push(h)}else if(n===Number){let h={name:i,type:"number",service:this,propertyType:c,description:o,example:a,readonly:l};t.push(h)}else if(n===Date){let h={name:i,type:"date",service:this,propertyType:c,description:o,example:a,readonly:l};t.push(h)}else if(n===Boolean){let h={name:i,type:"boolean",service:this,propertyType:c,description:o,example:a,readonly:l};t.push(h)}else if(L.isTypescriptEnum(n)){let h={name:i,type:"enum",enumValues:L.getTypescriptEnumEntries(n),service:this,propertyType:c,description:o,example:a,readonly:l};t.push(h)}else{let h={name:i,type:"string",service:this,propertyType:c,description:o,example:a,readonly:l};t.push(h)}}return t}getUnsetValue(e,t){return e[0].element[t.propertyName??t.name]}}});var rr,Eo=u(()=>{"use strict";Nt();rr=class extends Fe{name="polymer";isHandledElement(e){return e.element.constructor.polymerElementVersion!=null}_notifyChangedProperty(e,t,i){e.element.set(t.name,i)}}});var nr,Ao=u(()=>{"use strict";Nt();nr=class extends Fe{name="lit";isHandledElement(e){let t=e.element.constructor.__proto__;for(;t!=null;){if(t.name=="LitElement")return!0;if(t.name==null||t.name=="HTMLElement"||t.name=="Element"||t.name=="Node"||t.name=="HTMLElement")return!1;t=t.__proto__}return!1}_notifyChangedProperty(e,t,i){}}});var sr,Po=u(()=>{"use strict";ie();re();ye();sr=class extends Y{inputProperties=[{name:"type",type:"list",values:["text","number","button","checkbox","color","date","datetime-local","email","file","hidden","image","month","password","radio","range","reset","search","submit","tel","time","url","week"],service:this,defaultValue:"text",propertyType:y.propertyAndAttribute},{name:"value",type:"string",service:this,propertyType:y.propertyAndAttribute},{name:"placeholder",type:"string",service:this,propertyType:y.propertyAndAttribute},{name:"checked",type:"boolean",service:this,propertyType:y.propertyAndAttribute},{name:"min",type:"number",service:this,propertyType:y.propertyAndAttribute},{name:"max",type:"number",service:this,propertyType:y.propertyAndAttribute},{name:"readonly",type:"boolean",service:this,propertyType:y.propertyAndAttribute},{name:"valueAsDate",type:"string",service:this,propertyType:y.property},{name:"valueAsNumber",type:"string",service:this,propertyType:y.property}];textareaProperties=[{name:"value",type:"string",service:this,propertyType:y.property},{name:"placeholder",type:"string",service:this,propertyType:y.propertyAndAttribute},{name:"maxlength",type:"number",service:this,propertyType:y.propertyAndAttribute},{name:"cols",type:"number",service:this,propertyType:y.propertyAndAttribute},{name:"rows",type:"number",service:this,propertyType:y.propertyAndAttribute},{name:"readonly",type:"boolean",service:this,propertyType:y.propertyAndAttribute},{name:"resize",type:"list",values:["both","none","horizontal","vertical"],service:this,propertyType:y.cssValue}];selectProperties=[{name:"value",type:"string",service:this,propertyType:y.property},{name:"size",type:"number",service:this,propertyType:y.propertyAndAttribute},{name:"multiple",type:"boolean",service:this,propertyType:y.propertyAndAttribute}];buttonProperties=[{name:"type",type:"list",values:["button","submit","reset"],service:this,defaultValue:"button",propertyType:y.propertyAndAttribute},{name:"value",type:"string",service:this,propertyType:y.propertyAndAttribute}];anchorProperties=[{name:"href",type:"string",service:this,propertyType:y.propertyAndAttribute}];divProperties=[{name:"title",type:"string",service:this,propertyType:y.propertyAndAttribute}];imgProperties=[{name:"src",type:"string",service:this,propertyType:y.propertyAndAttribute},{name:"alt",type:"string",service:this,propertyType:y.propertyAndAttribute}];iframeProperties=[{name:"src",type:"string",service:this,propertyType:y.propertyAndAttribute}];formElementProperties=[{name:"autofocus",type:"boolean",service:this,propertyType:y.propertyAndAttribute},{name:"disabled",type:"boolean",service:this,propertyType:y.propertyAndAttribute},{name:"required",type:"boolean",service:this,propertyType:y.propertyAndAttribute}];meterProperties=[{name:"value",type:"number",service:this,propertyType:y.propertyAndAttribute},{name:"min",type:"number",service:this,propertyType:y.propertyAndAttribute},{name:"max",type:"number",service:this,propertyType:y.propertyAndAttribute},{name:"low",type:"number",service:this,propertyType:y.propertyAndAttribute},{name:"high",type:"number",service:this,propertyType:y.propertyAndAttribute},{name:"optimum",type:"number",service:this,propertyType:y.propertyAndAttribute}];name="native";getRefreshMode(e){return G.full}isHandledElement(e){switch(e.element.localName){case"input":case"textarea":case"select":case"button":case"a":case"div":case"span":case"br":case"img":case"iframe":case"meter":case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":case"p":return!0}return!1}async getProperty(e,t){return(await this.getProperties(e)).find(i=>i.name==t)}async getProperties(e){if(!this.isHandledElement(e))return null;switch(e.element.localName){case"input":return[...this.inputProperties,...this.formElementProperties];case"textarea":return[...this.textareaProperties,...this.formElementProperties];case"select":return[...this.selectProperties,...this.formElementProperties];case"button":return[...this.buttonProperties,...this.formElementProperties];case"a":return this.anchorProperties;case"div":return this.divProperties;case"img":return this.imgProperties;case"iframe":return this.iframeProperties;case"meter":return this.meterProperties;case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":case"p":return[]}return null}}});var ke,Lt=u(()=>{"use strict";ie();ye();re();ke=class extends Y{getRefreshMode(e){return G.none}commonProperties=[{name:"class",type:"string",service:this,attributeName:"class",propertyName:"className",propertyType:y.attribute},{name:"title",type:"string",service:this,propertyType:y.propertyAndAttribute},{name:"part",type:"string",service:this,propertyType:y.propertyAndAttribute},{name:"tabindex",type:"number",service:this,propertyType:y.propertyAndAttribute}];name="common";isHandledElement(e){return!e.isRootItem}async getProperty(e,t){return this.commonProperties.find(i=>i.name==t)}async getProperties(e){return this.commonProperties}}});var or,Io=u(()=>{"use strict";Lt();ie();or=class extends ke{rectProperties=[{name:"x",type:"number",defaultValue:"0",service:this,propertyType:y.propertyAndAttribute},{name:"y",type:"number",defaultValue:"0",service:this,propertyType:y.propertyAndAttribute},{name:"width",type:"number",defaultValue:"auto",service:this,propertyType:y.propertyAndAttribute},{name:"height",type:"number",defaultValue:"auto",service:this,propertyType:y.propertyAndAttribute},{name:"rx",type:"number",defaultValue:"auto",service:this,propertyType:y.propertyAndAttribute},{name:"ry",type:"number",defaultValue:"auto",service:this,propertyType:y.propertyAndAttribute},{name:"pathLength",type:"number",service:this,propertyType:y.propertyAndAttribute},{name:"fill",type:"list",values:["transparent","black","white","blue","green","red","yellow","orange","brown","grey"],defaultValue:"transparent",service:this,propertyType:y.propertyAndAttribute},{name:"fill-opacity",type:"list",values:["0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"],defaultValue:"1",service:this,propertyType:y.propertyAndAttribute}];lineProperties=[{name:"x1",type:"number",defaultValue:"0",service:this,propertyType:y.propertyAndAttribute},{name:"y1",type:"number",defaultValue:"0",service:this,propertyType:y.propertyAndAttribute},{name:"x2",type:"number",defaultValue:"0",service:this,propertyType:y.propertyAndAttribute},{name:"y2",type:"number",defaultValue:"0",service:this,propertyType:y.propertyAndAttribute},{name:"pathLength",type:"number",service:this,propertyType:y.propertyAndAttribute}];ellipseProperties=[{name:"cx",type:"number",defaultValue:"0",service:this,propertyType:y.propertyAndAttribute},{name:"cy",type:"number",defaultValue:"0",service:this,propertyType:y.propertyAndAttribute},{name:"rx",type:"number",defaultValue:"auto",service:this,propertyType:y.propertyAndAttribute},{name:"ry",type:"number",defaultValue:"auto",service:this,propertyType:y.propertyAndAttribute},{name:"pathLength",type:"number",service:this,propertyType:y.propertyAndAttribute},{name:"fill",type:"list",values:["transparent","black","white","blue","green","red","yellow","orange","brown","grey"],defaultValue:"transparent",service:this,propertyType:y.propertyAndAttribute},{name:"fill-opacity",type:"list",values:["0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"],defaultValue:"1",service:this,propertyType:y.propertyAndAttribute}];pathProperties=[{name:"d",type:"string",defaultValue:"",service:this,propertyType:y.propertyAndAttribute},{name:"pathLength",type:"number",service:this,propertyType:y.propertyAndAttribute}];svgProperties=[{name:"width",type:"number",defaultValue:"auto",service:this,propertyType:y.cssValue},{name:"height",type:"number",defaultValue:"auto",service:this,propertyType:y.cssValue},{name:"viewBox",type:"number",service:this,propertyType:y.cssValue}];defaultProperties=[{name:"stroke",type:"list",values:["black","white","blue","green","red","yellow","orange","brown","grey"],defaultValue:"currentcolor",service:this,propertyType:y.propertyAndAttribute},{name:"stroke-width",type:"number",service:this,propertyType:y.propertyAndAttribute},{name:"stroke-opacity",type:"list",values:["0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"],defaultValue:"1",service:this,propertyType:y.propertyAndAttribute},{name:"visibility",type:"list",values:["visible","hidden"],defaultValue:"visible",service:this,propertyType:y.propertyAndAttribute}];name="svg";isHandledElement(e){switch(e.element.localName){case"rect":case"line":case"ellipse":case"path":case"svg":return!0}return!1}async getProperty(e,t){return(await this.getProperties(e)).find(i=>i.name==t)}async getProperties(e){if(!this.isHandledElement(e))return null;switch(e.element.localName){case"rect":return[...this.rectProperties,...this.defaultProperties];case"line":return[...this.lineProperties,...this.defaultProperties];case"ellipse":return[...this.ellipseProperties,...this.defaultProperties];case"path":return[...this.pathProperties,...this.defaultProperties];case"svg":return this.svgProperties}return null}}});var Rt,ko=u(()=>{"use strict";Rt=class{constructor(e,t,i,r){this.title="Change Css Style "+t+" of <"+e.name+">",this.designItem=e,this.name=t,this.newValue=i,this.oldValue=r}title;get affectedItems(){return[this.designItem]}undo(){this.oldValue===""||this.oldValue==null?(this.designItem._withoutUndoRemoveStyle(this.name),this.name.startsWith("--")?this.designItem.element.style.removeProperty(this.name):this.designItem.element.style[this.name]=""):(this.designItem._withoutUndoSetStyle(this.name,this.oldValue),this.name.startsWith("--")?this.designItem.element.style.setProperty(this.name,this.oldValue):this.designItem.element.style[this.name]=this.oldValue)}do(){this.newValue===""||this.newValue==null?(this.designItem._withoutUndoRemoveStyle(this.name),this.name.startsWith("--")?this.designItem.element.style.removeProperty(this.name):this.designItem.element.style[this.name]=""):(this.designItem._withoutUndoSetStyle(this.name,this.newValue),this.name.startsWith("--")?this.designItem.element.style.setProperty(this.name,this.newValue):this.designItem.element.style[this.name]=this.newValue)}designItem;name;newValue;oldValue;mergeWith(e){return!1}}});var fi,Do=u(()=>{"use strict";fi=class s{constructor(e,t,i,r){this.title="Change Attribute "+t+" of <"+e.name+">",this.designItem=e,this.name=t,this.newValue=i,this.oldValue=r}title;get affectedItems(){return[this.designItem]}undo(){if(this.oldValue==null){this.designItem._withoutUndoRemoveAttribute(this.name);try{this.designItem.element.removeAttribute(this.name)}catch(e){e?.code!==5&&console.warn(e)}}else if(this.designItem._withoutUndoSetAttribute(this.name,this.oldValue),this.name!="draggable")try{typeof this.oldValue=="string"&&this.designItem.element.setAttribute(this.name,this.oldValue)}catch(e){e?.code!==5&&console.warn(e)}}do(){if(this.newValue==null){this.designItem._withoutUndoRemoveAttribute(this.name);try{this.designItem.element.removeAttribute(this.name)}catch(e){e?.code!==5&&console.warn(e)}}else if(this.designItem._withoutUndoSetAttribute(this.name,this.newValue),this.name!="draggable")try{typeof this.newValue=="string"&&this.designItem.element.setAttribute(this.name,this.newValue)}catch(e){e?.code!==5&&console.warn(e)}}designItem;name;newValue;oldValue;mergeWith(e){return e instanceof s&&this.designItem===e.designItem&&this.name===e.name?(this.newValue=e.newValue,!0):!1}}});var w,De=u(()=>{"use strict";(function(s){s[s.Directly=0]="Directly",s[s.Permanent=1]="Permanent",s[s.Selection=2]="Selection",s[s.PrimarySelection=3]="PrimarySelection",s[s.PrimarySelectionContainer=4]="PrimarySelectionContainer",s[s.MouseOver=5]="MouseOver",s[s.OnlyOneItemSelected=6]="OnlyOneItemSelected",s[s.MultipleItemsSelected=7]="MultipleItemsSelected",s[s.ContainerDragOverAndCanBeEntered=8]="ContainerDragOverAndCanBeEntered",s[s.ContainerExternalDragOverAndCanBeEntered=9]="ContainerExternalDragOverAndCanBeEntered",s[s.ContainerDrag=10]="ContainerDrag",s[s.Doubleclick=11]="Doubleclick",s[s.Placement=12]="Placement",s[s.PrimarySelectionAndCanBeEntered=13]="PrimarySelectionAndCanBeEntered",s[s.PrimarySelectionContainerAndCanBeEntered=14]="PrimarySelectionContainerAndCanBeEntered",s[s.PrimarySelectionRefreshed=15]="PrimarySelectionRefreshed"})(w||(w={}))});var ze,ar,lr,To=u(()=>{"use strict";(function(s){s[s.Name=0]="Name",s[s.Value=1]="Value",s[s.InQuote=2]="InQuote"})(ze||(ze={}));ar=class{constructor(e,t){this.name=e.trim(),this.value=t.trim()}name;value},lr=class{entries=[];parse(e,t="'"){this.entries=[];let i="",r="",n=ze.Name;for(let o=0;o<e.length;o++){let a=e[o];n===ze.Name?a===":"?n=ze.Value:a===";"?i="":i+=a:n===ze.Value?a===";"?(this.entries.push(new ar(i,r)),i="",r="",n=ze.Name):(a===t&&(n=ze.InQuote),r+=a):n===ze.InQuote&&(a==="\\"?(r+=a,o++,a=e[o],r+=a):a===t?(r+=a,n=ze.Value):r+=a)}i.trim()!==""&&this.entries.push(new ar(i,r))}}});var ot,Mo=u(()=>{"use strict";ot=class{constructor(e,t,i){this.title="Move or Insert Item",this.designItem=e,this.newParent=t,this.newIndex=i}title;get affectedItems(){return this.oldParent?[this.designItem,this.newParent,this.oldParent]:[this.designItem,this.newParent]}undo(){this.oldParent?(this.oldParent._insertChildInternal(this.designItem,this.oldIndex),this.affectedItems[0].instanceServiceContainer.contentService.onContentChanged.emit({changeType:"moved",designItems:[this.designItem]})):(this.designItem.parent._removeChildInternal(this.designItem),this.affectedItems[0].instanceServiceContainer.contentService.onContentChanged.emit({changeType:"removed",designItems:[this.designItem]}))}do(){this.oldParent=this.designItem.parent,this.oldParent&&(this.oldIndex=this.designItem.parent.indexOf(this.designItem)),this.newParent._insertChildInternal(this.designItem,this.newIndex),this.affectedItems[0].instanceServiceContainer.contentService.onContentChanged.emit({changeType:this.oldParent?"moved":"added",designItems:[this.designItem]})}designItem;newParent;newIndex;oldParent;oldIndex;newItem;mergeWith(e){return!1}}});var cr,Oo=u(()=>{"use strict";cr=class{_textHolder="";indent=4;level=0;get position(){return this._textHolder.length}isLastCharNewline(){return this._textHolder[this._textHolder.length-1]===`
|
|
60
60
|
`}levelRaise(){this.level++}levelShrink(){this.level--}write(e){this._textHolder+=e}writeLine(e){this.writeIndent(),this._textHolder+=e,this.writeNewline()}writeIndent(){this._textHolder+="".padEnd(this.level*this.indent," ")}writeNewline(){this._textHolder+=`
|
|
61
61
|
`}getString(){return this._textHolder}}});var hr,oh=u(()=>{"use strict";hr=class{_textHolder="";get position(){return this._textHolder.length}isLastCharNewline(){return this._textHolder[this._textHolder.length-1]===`
|
|
62
62
|
`}levelRaise(){}levelShrink(){}write(e){this._textHolder+=e}writeLine(e){this._textHolder+=e}writeIndent(){}writeNewline(){}getString(){return this._textHolder}}});var K,Te=u(()=>{"use strict";Oo();oh();K=class{static normalizeAttributeValue(e,t=!1){return typeof e=="number"&&(e=e.toString()),e?t?e.replaceAll("&","&").replaceAll("'","'").replaceAll("<","<").replaceAll(">",">"):e.replaceAll("&","&").replaceAll('"',""").replaceAll("<","<").replaceAll(">",">"):e.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">")}static normalizeContentValue(e){return e&&e.replaceAll("&","&").replaceAll("<","<").replaceAll("\xA0"," ")}static IsSelfClosingElement(e){return e==="area"||e==="base"||e==="br"||e==="col"||e==="embed"||e==="hr"||e==="img"||e==="input"||e==="keygen"||e==="link"||e==="meta"||e==="param"||e==="source"||e==="track"||e==="wbr"}static ConvertToString(e,t,i=!1){let r=t!==!1?new cr:new hr;return e[0].serviceContainer.htmlWriterService.write(r,e,!0,i),r.getString()}}});import{css as Fd}from"@node-projects/base-custom-webcomponent";var he,No,at=u(()=>{"use strict";he=class s{static _contextMenuCss=Fd`
|
|
@@ -178,7 +178,7 @@ var vd=Object.defineProperty;var u=(s,e)=>()=>(s&&(e=s(s=0)),e);var xd=(s,e)=>{f
|
|
|
178
178
|
|
|
179
179
|
.context_menu li.context_menu_marked {
|
|
180
180
|
background-color: #5ebdec;
|
|
181
|
-
}`;static count=0;static _openedContextMenus=new Set;menu;options;context;num;_menuElement;constructor(e,t,i){this.num=s.count++,this.menu=e,this.options=t,this.context=i,this.reload(),this._windowDown=this._windowDown.bind(this),this._windowKeyUp=this._windowKeyUp.bind(this),this._windowResize=this._windowResize.bind(this)}reload(){let e=this.options?.shadowRoot??document;this._menuElement==null&&(this._menuElement=document.createElement("div"),this._menuElement.className="context_menu",this._menuElement.id="context_menu_"+this.num,e===document?document.body.appendChild(this._menuElement):e.appendChild(this._menuElement)),this._menuElement.innerHTML="",e.adoptedStyleSheets.indexOf(s._contextMenuCss)<0&&(e.adoptedStyleSheets=[...e.adoptedStyleSheets,s._contextMenuCss]),this._menuElement.appendChild(this.renderLevel(this.menu))}renderLevel(e){let t=document.createElement("ul"),i=!1;return e.forEach(r=>{if(r.title!=="-"){if(i){let c=document.createElement("li");c.className="context_menu_divider",i=!1,t.appendChild(c)}let n=document.createElement("li"),o=document.createElement("span");o.className="context_menu_icon_span",r.checked===!0?o.innerHTML="\u2714":(r.icon??"")!=""?o.innerHTML=r.icon:o.innerHTML=this.options?.defaultIcon??"";let a=document.createElement("span");a.className="context_menu_text",a.innerHTML=r.title;let l=document.createElement("span");if(l.className="context_menu_sub_span",r.children!=null&&(l.innerHTML=this.options?.subIcon??"›"),n.appendChild(o),n.appendChild(a),n.appendChild(l),r.disabled)n.setAttribute("disabled","");else if(r.action&&n.addEventListener("click",c=>{c.stopPropagation(),c.preventDefault(),r.action(c,r,this.context,this),this.close()}),this.options?.mode=="undo"&&n.addEventListener("mouseup",c=>{c.stopPropagation(),r.action(c,r,this.context,this),this.close()}),r.children!=null){let c=this.renderLevel(r.children);n.appendChild(c),n.addEventListener("mouseenter",()=>{let h=c.getBoundingClientRect();if(h.top+h.height>window.innerHeight&&(c.style.top="unset",c.style.bottom="0"),this.options?.mode=="undo"){let d=!0;for(let p of n.parentElement.children)d?p.classList.add("context_menu_marked"):p.classList.remove("context_menu_marked"),p==n&&(d=!1)}})}else this.options?.mode=="undo"&&n.addEventListener("mouseenter",()=>{let c=!0;for(let h of n.parentElement.children)c?h.classList.add("context_menu_marked"):h.classList.remove("context_menu_marked"),h==n&&(c=!1)});t.appendChild(n)}else i=!0}),t}display(e){let t=this._menuElement,i={x:e.clientX,y:e.clientY},r=i.x,n=i.y,o=t.offsetWidth+4,a=t.offsetHeight+4,l=window.innerWidth,c=window.innerHeight,h=this.options?.mouseOffset!=null?this.options.mouseOffset:2;l-r<o?t.style.left=l-o+"px":t.style.left=r+h+"px",c-n<a?t.style.top=c-a+"px":t.style.top=n+h+"px";let d=No.getSizes(t);l-r<d.width?t.classList.add("context_menu_border_right"):t.classList.remove("context_menu_border_right"),c-n<d.height?t.classList.add("context_menu_border_bottom"):t.classList.remove("context_menu_border_bottom"),t.classList.add("context_menu_display"),e.preventDefault(),window.addEventListener("keyup",this._windowKeyUp),window.addEventListener("mousedown",this._windowDown),window.addEventListener("resize",this._windowResize),setTimeout(()=>window.addEventListener("contextmenu",this._windowDown),100),s._openedContextMenus.add(this)}_windowResize(){this.close()}_windowDown(e){return e.preventDefault(),e.composedPath().indexOf(this._menuElement)<0&&this.close(),!1}_windowKeyUp(e){e.key==="Escape"&&this.close()}static show(e,t,i,r){let n=new s(e,i,r);return n.display(t),n}close(){this._menuElement.remove(),window.removeEventListener("keyup",this._windowKeyUp),window.removeEventListener("mousedown",this._windowDown),window.removeEventListener("resize",this._windowResize),setTimeout(()=>window.removeEventListener("contextmenu",this._windowDown),10),s._openedContextMenus.delete(this)}static closeAll(){for(let e of s._openedContextMenus.values())e.close()}},No=class s{static getSizes(e){let t=e.getElementsByTagName("li"),i=0,r=0;for(let a=0;a<t.length;a++){let l=t[a];l.offsetWidth>i&&(i=l.offsetWidth),l.offsetHeight>r&&(r=l.offsetHeight)}let n=i,o=r;for(let a=0;a<t.length;a++){let c=t[a].getElementsByTagName("ul");if(typeof c[0]<"u"){let h=s.getSizes(c[0]);i+h.width>n&&(n=i+h.width),r+h.height>o&&(o=r+h.height)}}return{width:n,height:o}}}});var Ae,bt=u(()=>{"use strict";at();Ae=class{settingName;content;tooltp;contextmenu;constructor(e,t,i,r){this.settingName=e,this.content=t,this.tooltp=i,this.contextmenu=r}provideButtons(e,t){let i=document.createElement("div");typeof this.content=="string"?i.innerHTML=this.content:i.appendChild(this.content),i.title=this.tooltp,i.className="toolbar-control",t.instanceServiceContainer.designContext.extensionOptionsChanged.on(()=>{r[this.settingName]!==!1?i.classList.add("selected"):i.classList.remove("selected")});let r=t.instanceServiceContainer.designContext.extensionOptions;return r[this.settingName]!==!1&&i.classList.add("selected"),i.onclick=()=>{let n=r[this.settingName];r[this.settingName]=n===!1,r[this.settingName]!==!1?i.classList.add("selected"):i.classList.remove("selected")},i.oncontextmenu=n=>{n.preventDefault(),this.contextmenu&&he.show(this.contextmenu,n)},[i]}}});var pr,dr,mr=u(()=>{"use strict";bt();pr="enableStylesheetService",dr=class extends Ae{constructor(){super(pr,"ss","modify Stylesheet")}}});var ur,Lo=u(()=>{"use strict";ur=class{constructor(e,t,i){this.title="Change TextContent from '"+i+"' to '"+t+"'",this.designItem=e,this.newValue=t,this.oldValue=i}title;get affectedItems(){return[this.designItem]}undo(){this.designItem.element.textContent=this.oldValue}do(){this.designItem.element.textContent=this.newValue}designItem;newValue;oldValue;mergeWith(e){return!1}}});function ah(){return window.navigator.platform?.startsWith("Mac")||window.navigator.platform==="iPhone"||window.navigator.platform==="iPad"||window.navigator.platform==="iPod"}function lt(s){return new Promise(e=>setTimeout(e,s))}async function Ro(s,e){let t=URL.createObjectURL(s),i=document.createElement("a");i.href=t,i.style.display="none",i.download=e,document.body.appendChild(i),i.click(),document.body.removeChild(i),await lt(300)}function Fo(s){for(var e=s.split(",")[0].split(":")[1].split(";")[0],t=atob(s.split(",")[1]),i=[],r=0;r<t.length;r++)i.push(t.charCodeAt(r));return new Blob([new Uint8Array(i)],{type:e})}function zo(s,e){return s.x>=e.x&&s.x<=e.x+e.width&&s.y>=e.y&&s.y<=e.y+e.height}function wt(s,e){return s.endsWith(e??"/")?s.substring(0,s.length-1):s}function de(s,e){return s.startsWith(e??"/")?s.substring(1):s}function _f(){return new Promise(s=>requestAnimationFrame(s))}function bf(s,e){if(s===e)return!0;if(s==null||e==null||s.length!==e.length)return!1;for(var t=0;t<s.length;++t)if(s[t]!==e[t])return!1;return!0}function lh(s,e,t=!1,i="."){if(e==null)return s;let r=e.split(i);for(let n=0;n<r.length;n++)if(s!=null)s=s[r[n]];else return t?zd:null;return s}function Bo(s,e,t,i="."){if(e==null)return;let r=e.split(i);for(let n=0;n<r.length-1;n++)if(s!=null){let o=s[r[n]];o==null&&(o={},s[r[n]]=o),s=o}s!=null&&(s[r[r.length-1]]=t)}var zd,Pe=u(()=>{"use strict"});var fr,Vo=u(()=>{"use strict";Pe();fr=class s{constructor(e,t,i,r){this.title="Change Property "+t+" of <"+e.name+">",this.designItem=e,this.name=t,this.newValue=i,this.oldValue=r}title;get affectedItems(){return[this.designItem]}undo(){Bo(this.designItem.node,this.name,this.oldValue)}do(){Bo(this.designItem.node,this.name,this.newValue)}designItem;name;newValue;oldValue;mergeWith(e){return e instanceof s&&this.designItem===e.designItem&&this.name===e.name?(this.newValue=e.newValue,!0):!1}}});import{TypedEvent as Bd}from"@node-projects/base-custom-webcomponent";var Ft,zt,St,ct,fi,gi,yi,vi,xi,T,q=u(()=>{"use strict";Io();Z();Do();De();To();ge();Mo();Te();mr();Lo();Vo();Pe();Ft="node-projects-hide-at-design-time",zt="node-projects-hide-at-run-time",St="node-projects-lock-at-design-time",ct="node-projects-force-hover",fi="node-projects-force-active",gi="node-projects-force-visited",yi="node-projects-force-focus",vi="node-projects-force-focus-within",xi="node-projects-force-focus-visible",T=class s{lastContainerSize;parsedNode;node;view;serviceContainer;instanceServiceContainer;nodeReplaced=new Bd;get window(){return this.isRootItem&&this.node instanceof HTMLIFrameElement?this.node.contentDocument.defaultView:this.node.ownerDocument.defaultView??window}get document(){return this.isRootItem&&this.node instanceof HTMLIFrameElement?this.node.contentDocument:this.node.ownerDocument}get usableContainer(){return this.isRootItem&&this.element instanceof(this.element.ownerDocument.defaultView??window).HTMLIFrameElement?this.element.contentWindow.document:this.isRootItem?this.node.shadowRoot:this.element}async clone(){try{let e=K.ConvertToString([this],!1);return(await this.serviceContainer.htmlParserService.parse(e,this.serviceContainer,this.instanceServiceContainer,!0))[0]}catch{console.warn("could not clone design item.",this)}return null}*allMatching(e){if(this.hasChildren)for(let t of this.children())t.nodeType==E.Element&&t.element.matches(e)&&(yield t),yield*t.allMatching(e)}replaceNode(e){s._designItemMap.delete(this.node),s._designItemMap.set(e,this),this.view==this.node&&(this.view=e),this.node=e,this.nodeReplaced.emit()}get nodeType(){return this.node instanceof(this.node.ownerDocument.defaultView??window).Comment?E.Comment:this.node instanceof(this.node.ownerDocument.defaultView??window).Text?E.TextNode:E.Element}_attributes;get hasAttributes(){return this._attributes.size>0}hasAttribute(e){return this._attributes.has(e)}getAttribute(e){return this._attributes.get(e)}*attributes(){for(let e of this._attributes)yield e}_withoutUndoSetAttribute(e,t){this._attributes.set(e,t),this.serviceContainer.designItemService.handleSpecialAttributes(e,this)}_withoutUndoRemoveAttribute(e){this._attributes.delete(e),this.serviceContainer.designItemService.handleSpecialAttributes(e,this)}_styles;get hasStyles(){return this._styles.size>0}hasStyle(e){let t=e;return t.startsWith("--")||(t=R.camelToDashCase(e)),this._styles.has(t)}getStyle(e){let t=e;return t.startsWith("--")||(t=R.camelToDashCase(e)),this._styles.get(t)}*styles(){for(let e of this._styles)yield e}_withoutUndoSetStyle(e,t){let i=e;i.startsWith("--")||(i=R.camelToDashCase(e)),this._styles.set(i,t)}_withoutUndoRemoveStyle(e){let t=e;t.startsWith("--")||(t=R.camelToDashCase(e)),this._styles.delete(t)}static _designItemMap=new WeakMap;get element(){return this.view}get name(){return this.node.localName}get id(){return this.element.id}set id(e){this.element.id=e,this.id?this.setAttribute("id",e):this.removeAttribute("id")}get isRootItem(){return this.instanceServiceContainer.contentService.rootDesignItem===this}*childrenRect(e){if(this.hasChildren)for(let t of this.children())t.nodeType==E.Element&&t.element.matches(e)&&(yield t),yield*t.allMatching(e)}_childArray=[];get hasChildren(){return this._childArray.length>0}*children(e=!1){for(let t of this._childArray)if(yield t,e)for(let i of t.children(e))yield i}get childCount(){return this._childArray.length}get firstChild(){return this._childArray[0]}_parent;get parent(){return this._parent}indexOf(e){return this._childArray.indexOf(e)}insertAdjacentElement(e,t){let i;t=="afterbegin"?i=new ot(e,this,0):t=="beforeend"?i=new ot(e,this,this._childArray.length):t=="beforebegin"?i=new ot(e,this.parent,this.parent.indexOf(this)):t=="afterend"&&(i=new ot(e,this.parent,this.parent.indexOf(this)+1)),this.instanceServiceContainer.undoService.execute(i)}insertChild(e,t){let i=new ot(e,this,t);this.instanceServiceContainer.undoService.execute(i)}removeChild(e){this.serviceContainer.deletionService.removeItems([e])}remove(){this.serviceContainer.deletionService.removeItems([this])}clearChildren(){for(let e=this._childArray.length-1;e>=0;e--)this._childArray[e].remove()}get hasContent(){return(this.nodeType==E.TextNode||this.nodeType==E.Comment)&&this.element.textContent!=""||this._childArray.length===0}get content(){return this.nodeType==E.TextNode||this.nodeType==E.Comment?this.node.textContent:this._childArray.map(e=>e.content).join()}set content(e){let t=this.openGroup("set content");this.clearChildren();let i=document.createTextNode(e),r=s.GetOrCreateDesignItem(i,i,this.serviceContainer,this.instanceServiceContainer);if(this.nodeType==E.TextNode){let n=this.parent.indexOf(this),o=this.parent;this.remove(),o.insertChild(r,n)}else if(this.nodeType==E.Comment){let n=new ur(this,e,this.content);this.instanceServiceContainer.undoService.execute(n)}else this.insertChild(r);t.commit()}get innerHTML(){return this.element.innerHTML}set innerHTML(e){if(this.nodeType!=E.TextNode){let t=this.openGroup("set innerHTML");this.clearChildren();let i=document.createRange();i.selectNode(document.body);let r=i.createContextualFragment(e);for(let n of[...r.childNodes]){let o=s.createDesignItemFromInstance(n,this.serviceContainer,this.instanceServiceContainer);this.insertChild(o)}t.commit()}}get isEmptyTextNode(){return this.nodeType===E.TextNode&&this.content?.trim()==""}get hideAtDesignTime(){return this.hasAttribute(Ft)}set hideAtDesignTime(e){e?this.setAttribute(Ft,""):this.removeAttribute(Ft)}get hideAtRunTime(){return this.hasAttribute(zt)}set hideAtRunTime(e){e?this.setAttribute(zt,""):this.removeAttribute(zt)}get lockAtDesignTime(){return this.hasAttribute(St)}set lockAtDesignTime(e){e?this.setAttribute(St,""):this.removeAttribute(St)}static createDesignItemFromInstance(e,t,i){let r=t.designItemService.createDesignItem(e,e,t,i);if(e instanceof(e.ownerDocument.defaultView??window).HTMLTemplateElement&&e.getAttribute("shadowrootmode")=="open")try{e.parentNode.attachShadow({mode:"open"}).appendChild(e.content.cloneNode(!0))}catch(n){console.error("error attaching shadowdom",n)}if(r.nodeType==E.Element){for(let n of r.element.attributes)n.name!=="style"&&r._attributes.set(n.name,n.value);if(e instanceof(e.ownerDocument.defaultView??window).HTMLElement||e instanceof(e.ownerDocument.defaultView??window).SVGElement){let n=new lr,o=e.getAttribute("style");if(o){n.parse(o);for(let a of n.entries)r._styles.set(a.name,a.value)}t.designItemService.handleSpecialAttributes(St,r)}e.draggable=!1}r._childArray=r._internalUpdateChildrenFromNodesChildren();for(let n of r._childArray)n._parent=r;return r}querySelectorAll(e){return this.usableContainer.querySelectorAll(e)}removeDesignerAttributesAndStylesFromChildren(){let e=this.querySelectorAll("*");for(let t of e){let i=s.GetDesignItem(t);i.hasAttribute("draggable")||t.removeAttribute("draggable"),i.hasStyle("pointer-events")||(t.style.pointerEvents="")}}updateChildrenFromNodesChildren(){this._childArray=this._internalUpdateChildrenFromNodesChildren();for(let e of this._childArray)e._parent=this}_internalUpdateChildrenFromNodesChildren(){let e=[];if(this.nodeType==E.Element)if(this.element instanceof(this.node.ownerDocument.defaultView??window).HTMLTemplateElement)for(let t of this.element.content.childNodes){let i=s.createDesignItemFromInstance(t,this.serviceContainer,this.instanceServiceContainer);e.push(i)}else if(this.isRootItem&&this.element instanceof(this.node.ownerDocument.defaultView??window).HTMLIFrameElement)for(let t of this.element.contentWindow.document.childNodes){let i=s.createDesignItemFromInstance(t,this.serviceContainer,this.instanceServiceContainer);e.push(i)}else for(let t of this.element.childNodes){let i=s.createDesignItemFromInstance(t,this.serviceContainer,this.instanceServiceContainer);e.push(i)}return e}_backupWhenEditContent;_inEditContent=!1;editContent(){this._inEditContent=!0,this._backupWhenEditContent=[...this.element.childNodes];let e=this.element.innerHTML;this.element.innerHTML="",this.element.innerHTML=e,this.element.setAttribute("contenteditable","")}editContentFinish(){if(this._inEditContent){this._inEditContent=!1,this.element.removeAttribute("contenteditable"),this.element.innerHTML="";for(let e of this._backupWhenEditContent)this.element.appendChild(e);this._backupWhenEditContent=null}}constructor(e,t,i,r){this.node=e,this.view=e,this.parsedNode=t,this.serviceContainer=i,this.instanceServiceContainer=r,this._attributes=new Map,this._styles=new Map,s._designItemMap.set(e,this)}setView(e){this.view=e,s._designItemMap.set(e,this)}openGroup(e){return this.instanceServiceContainer.undoService.openGroup(e)}getOrCreateDesignItem(e){return s.GetOrCreateDesignItem(e,e,this.serviceContainer,this.instanceServiceContainer)}static GetOrCreateDesignItem(e,t,i,r){if(!e)return null;let n=s._designItemMap.get(e);return n||(n=i.designItemService.createDesignItem(e,t,i,r)),n}static GetDesignItem(e){return e?s._designItemMap.get(e):null}setStyle(e,t,i){let r=e;if(r.startsWith("--")||(r=R.camelToDashCase(e)),this.isRootItem)throw"not allowed to set style on root item or use async setStyle";{let n=new Rt(this,r,t,this._styles.get(r));this.instanceServiceContainer.undoService.execute(n)}}async setStyleAsync(e,t,i){let r=e;if(r.startsWith("--")||(r=R.camelToDashCase(e)),this.isRootItem)if(this.instanceServiceContainer.stylesheetService){let n=this.instanceServiceContainer.stylesheetService.getDeclarationsSortedBySpecificity(this,e);if(n!==null&&n.length>0)this.instanceServiceContainer.stylesheetService.updateDeclarationValue(n[0],t,i);else{let o=this.instanceServiceContainer.stylesheetService.getRules(":host").filter(a=>!a.stylesheet?.readOnly);if(n===null||o.length===0){let a=this.openGroup("add rule and set style: "+e),l=this.instanceServiceContainer.stylesheetService.getStylesheets(),c=await this.instanceServiceContainer.stylesheetService.addRule(l[0],":host");this.instanceServiceContainer.stylesheetService.insertDeclarationIntoRule(c,e,t,i),a.commit()}else this.instanceServiceContainer.stylesheetService.insertDeclarationIntoRule(o[0],e,t,i)}}else throw"not allowed to set style on root item";else{let n=new Rt(this,r,t,this._styles.get(r));this.instanceServiceContainer.undoService.execute(n)}}removeStyle(e){let t=e;t.startsWith("--")||(t=R.camelToDashCase(e));let i=new Rt(this,t,"",this._styles.get(t));this.instanceServiceContainer.undoService.execute(i)}updateStyleInSheetOrLocal(e,t,i,r){let n=e;n.startsWith("--")||(n=R.camelToDashCase(e));let o=this.instanceServiceContainer.stylesheetService?.getDeclarationsSortedBySpecificity(this,n).filter(a=>!a.stylesheet?.readOnly);this.hasStyle(e)||this.instanceServiceContainer.designContext.extensionOptions[pr]===!1||!o?.length?this.getStyle(n)!=t||r?this.setStyle(n,t):t==null&&this.removeStyle(n):this.instanceServiceContainer.stylesheetService.updateDeclarationValue(o[0],t,!1)}async updateStyleInSheetOrLocalAsync(e,t,i,r){let n=e;n.startsWith("--")||(n=R.camelToDashCase(e));let o=this.instanceServiceContainer.stylesheetService?.getDeclarationsSortedBySpecificity(this,n).filter(a=>!a.stylesheet?.readOnly);this.hasStyle(e)||this.instanceServiceContainer.designContext.extensionOptions[pr]===!1||!o?.length?this.getStyle(n)!=t||r?await this.setStyleAsync(n,t):t==null&&this.removeStyle(n):this.instanceServiceContainer.stylesheetService.updateDeclarationValue(o[0],t,!1)}getStyleFromSheetOrLocal(e,t=null){let i=e;if(i.startsWith("--")||(i=R.camelToDashCase(e)),this.hasStyle(e))return this.getStyle(i);let r=this.instanceServiceContainer.stylesheetService?.getDeclarationsSortedBySpecificity(this,i);return r&&r.length>0?r[0].value:null}getStyleFromSheetOrLocalOrComputed(e,t=null){let i=e;i.startsWith("--")||(i=R.camelToDashCase(e));let r=this.getStyleFromSheetOrLocal(i);return r||(r=getComputedStyle(this.element).getPropertyValue(i)),r??t}getComputedStyleProperty(e,t=null){let i=e;i.startsWith("--")||(i=R.camelToDashCase(e));let r=this.getStyleFromSheetOrLocal(i);return r||(r=getComputedStyle(this.element).getPropertyValue(i)),r??t}getComputedStyle(){return this.nodeType==E.Element?this.window.getComputedStyle(this.element):null}_stylesCache=null;_cacheClearTimer;getAllStyles(){let e=this._stylesCache;if(e)return e;if(this.nodeType!=E.Element)return[];let t=[...this._styles.entries()].map(i=>({name:i[0],value:i[1],important:!1,parent:null}));if(this.instanceServiceContainer.stylesheetService)try{let i=this.instanceServiceContainer.stylesheetService?.getAppliedRules(this);if(i)return[{selector:null,declarations:t,specificity:null,stylesheet:null},...i]}catch(i){console.warn("getAppliedRules",i)}return e=[{selector:null,declarations:t,specificity:null,stylesheet:null}],this._stylesCache=e,clearTimeout(this._cacheClearTimer),this._cacheClearTimer=setTimeout(()=>this._stylesCache=null,30),e}setAttribute(e,t){if(this.isRootItem)throw"not allowed to set attribute on root item";let i=new ui(this,e,t,this._attributes.get(e));this.instanceServiceContainer.undoService.execute(i)}removeAttribute(e){let t=new ui(this,e,null,this._attributes.get(e));this.instanceServiceContainer.undoService.execute(t)}setProperty(e,t){if(this.isRootItem)throw"not allowed to set attribute on root item";let i=lh(this.node,e),r=new fr(this,e,t,i);this.instanceServiceContainer.undoService.execute(r)}_insertChildInternal(e,t){if(e.parent&&this.instanceServiceContainer.selectionService.primarySelection==e&&(e.instanceServiceContainer.designerCanvas.extensionManager.removeExtension(e.parent,w.PrimarySelectionContainer),e.instanceServiceContainer.designerCanvas.extensionManager.removeExtension(e.parent,w.PrimarySelectionContainerAndCanBeEntered)),e.parent&&e.parent._removeChildInternal(e),t==null||this._childArray.length==0||t>=this._childArray.length)this._childArray.push(e),this.isRootItem?(this.usableContainer?.children[0]instanceof this.window.HTMLHtmlElement&&this.usableContainer.children[0].remove(),this.usableContainer.appendChild(e.view)):this.view instanceof(this.node.ownerDocument.defaultView??window).HTMLTemplateElement?this.view.content.appendChild(e.view):this.view.appendChild(e.view);else{let i=this._childArray[t];this.isRootItem?(this.usableContainer?.children[0]instanceof this.window.HTMLHtmlElement&&this.usableContainer.children[0].remove(),this.usableContainer.insertBefore(e.view,i.element)):this.view instanceof(this.node.ownerDocument.defaultView??window).HTMLTemplateElement?this.view.content.insertBefore(e.view,i.element):this.view.insertBefore(e.view,i.element),this._childArray.splice(t,0,e)}e._parent=this,this.instanceServiceContainer.selectionService.primarySelection==e&&(e.instanceServiceContainer.designerCanvas.extensionManager.applyExtension(e.parent,w.PrimarySelectionContainer),e.getPlacementService().isEnterableContainer(this)&&e.instanceServiceContainer.designerCanvas.extensionManager.applyExtension(e.parent,w.PrimarySelectionContainerAndCanBeEntered)),this._refreshIfStyleSheet()}_removeChildInternal(e){e.parent&&this.instanceServiceContainer.selectionService.primarySelection==e&&(e.instanceServiceContainer.designerCanvas.extensionManager.removeExtension(e.parent,w.PrimarySelectionContainer),e.instanceServiceContainer.designerCanvas.extensionManager.removeExtension(e.parent,w.PrimarySelectionAndCanBeEntered)),e.instanceServiceContainer.designerCanvas.extensionManager.removeExtensions([e],!0);let t=this._childArray.indexOf(e);t>-1&&(this._childArray.splice(t,1),e.element.remove(),e._parent=null),this._refreshIfStyleSheet()}_refreshIfStyleSheet(){this.name=="style"||this.parent?.name=="style"||this.name=="link"}getPlacementService(e){return this.nodeType!=E.Element?null:(e??=getComputedStyle(this.element),this.serviceContainer.getLastServiceWhere("containerService",t=>t.serviceForContainer(this,e)))}static createDesignItemFromImageBlob(e,t,i){return new Promise(r=>{let n=new FileReader;n.onloadend=()=>{let o=document.createElement("img");o.src=n.result;let a=s.createDesignItemFromInstance(o,e,t);return r(a)},n.readAsDataURL(i)})}get hasForcedCss(){return this.cssForceHover||this.cssForceActive||this.cssForceVisited||this.cssForceFocus||this.cssForceFocusWithin||this.cssForceFocusVisible}get cssForceHover(){return this.element.hasAttribute(ct)}set cssForceHover(e){e?this.element.setAttribute(ct,""):this.element.removeAttribute(ct),this.instanceServiceContainer.contentService.onContentChanged.emit({changeType:"changed",designItems:[this]})}get cssForceActive(){return this.element.hasAttribute(fi)}set cssForceActive(e){e?this.element.setAttribute(fi,""):this.element.removeAttribute(fi),this.instanceServiceContainer.contentService.onContentChanged.emit({changeType:"changed",designItems:[this]})}get cssForceVisited(){return this.element.hasAttribute(gi)}set cssForceVisited(e){e?this.element.setAttribute(gi,""):this.element.removeAttribute(gi),this.instanceServiceContainer.contentService.onContentChanged.emit({changeType:"changed",designItems:[this]})}get cssForceFocus(){return this.element.hasAttribute(yi)}set cssForceFocus(e){e?this.element.setAttribute(yi,""):this.element.removeAttribute(yi),this.instanceServiceContainer.contentService.onContentChanged.emit({changeType:"changed",designItems:[this]})}get cssForceFocusWithin(){return this.element.hasAttribute(vi)}set cssForceFocusWithin(e){e?this.element.setAttribute(vi,""):this.element.removeAttribute(vi),this.instanceServiceContainer.contentService.onContentChanged.emit({changeType:"changed",designItems:[this]})}get cssForceFocusVisible(){return this.element.hasAttribute(xi)}set cssForceFocusVisible(e){e?this.element.setAttribute(xi,""):this.element.removeAttribute(xi),this.instanceServiceContainer.contentService.onContentChanged.emit({changeType:"changed",designItems:[this]})}}});function Ho(s){return s.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}var ch=u(()=>{"use strict"});var gr,yr=u(()=>{"use strict";gr=navigator.userAgent.toLowerCase().includes("firefox")});var vr,Go=u(()=>{"use strict";q();ch();te();yr();vr=class{async getElement(e,t,i){if(e.import){let l=e.import;l[0]==="."&&(l=(window.location.origin+window.location.pathname).split("/").slice(0,-1).join("/")+"/"+l),window.importShim?importShim(l).then(c=>{!customElements.get(e.tag)&&e.className&&c[e.className]&&customElements.define(e.tag,c[e.className])}):import(l).then(c=>{!customElements.get(e.tag)&&e.className&&c[e.className]&&customElements.define(e.tag,c[e.className])}),i.designContext.imports.indexOf(l)<=0&&i.designContext.imports.push(l)}let r="";if(e.defaultAttributes)for(let l in e.defaultAttributes){let c=e.defaultAttributes[l];try{typeof c=="object"?r+=" "+l+'="'+Ho(JSON.stringify(e.defaultAttributes[l]))+'"':r+=" "+l+'="'+Ho(e.defaultAttributes[l])+'"'}catch(h){console.warn(h)}}let n="<"+e.tag+r+"></"+e.tag+">",o=er(n,i.designerCanvas.rootDesignItem.document);if(o._inNodeProjectsDesignerView=!0,e.defaultWidth&&(o.style.width=e.defaultWidth),e.defaultHeight&&(o.style.height=e.defaultHeight),o.style.position="absolute",e.defaultStyles)for(let l in e.defaultStyles)o.style[l]=e.defaultStyles[l];if(e.defaultContent)if(typeof e.defaultContent=="string"){let l;i.designerCanvas.rootDesignItem.window.Document.parseHTMLUnsafe&&!gr?l=i.designerCanvas.rootDesignItem.window.Document.parseHTMLUnsafe(e.defaultContent):l=new i.designerCanvas.rootDesignItem.window.DOMParser().parseFromString(e.defaultContent,"text/html",{includeShadowRoots:!0}),o.append(...l.head.childNodes),o.append(...l.body.childNodes)}else o.appendChild(e.defaultContent);return T.createDesignItemFromInstance(o,t,i)}}});var Q,ve=u(()=>{"use strict";Xe();Q=class{element;property;designItems;disableChangeNotification=!1;constructor(e){this.property=e}async _valueChanged(e){if(!this.disableChangeNotification&&this.designItems&&this.designItems.length){let t=this.designItems[0].openGroup("set property: "+this.property.name);for(let i of this.designItems)e==null?this.property.service.clearValue([i],this.property,"value"):await this.property.service.setValue([i],this.property,e);t.commit()}}designItemsChanged(e){this.designItems=e}refreshValueWithoutNotification(e,t){e==V.none?this.element.classList.add("unset-value"):this.element.classList.remove("unset-value"),this.disableChangeNotification=!0;try{this.refreshValue(e,t)}catch(i){console.error(i)}this.disableChangeNotification=!1}}});var _i,Wo=u(()=>{"use strict";_i=class s{red=0;green=0;blue=0;hue=0;sat=0;lightness=0;whiteness=0;blackness=0;cyan=0;magenta=0;yellow=0;black=0;ncol="R";opacity=1;valid=!1;toRgbString(){return"rgb("+this.red+", "+this.green+", "+this.blue+")"}toRgbaString(){return"rgba("+this.red+", "+this.green+", "+this.blue+", "+this.opacity+")"}toHwbString(){return"hwb("+this.hue+", "+Math.round(this.whiteness*100)+"%, "+Math.round(this.blackness*100)+"%)"}toHwbStringDecimal(){return"hwb("+this.hue+", "+this.whiteness+", "+this.blackness+")"}toHwbaString(){return"hwba("+this.hue+", "+Math.round(this.whiteness*100)+"%, "+Math.round(this.blackness*100)+"%, "+this.opacity+")"}toHslString(){return"hsl("+this.hue+", "+Math.round(this.sat*100)+"%, "+Math.round(this.lightness*100)+"%)"}toHslStringDecimal(){return"hsl("+this.hue+", "+this.sat+", "+this.lightness+")"}toHslaString(){return"hsla("+this.hue+", "+Math.round(this.sat*100)+"%, "+Math.round(this.lightness*100)+"%, "+this.opacity+")"}toCmykString(){return"cmyk("+Math.round(this.cyan*100)+"%, "+Math.round(this.magenta*100)+"%, "+Math.round(this.yellow*100)+"%, "+Math.round(this.black*100)+"%)"}toCmykStringDecimal(){return"cmyk("+this.cyan+", "+this.magenta+", "+this.yellow+", "+this.black+")"}toNcolString(){return this.ncol+", "+Math.round(this.whiteness*100)+"%, "+Math.round(this.blackness*100)+"%"}toNcolStringDecimal(){return this.ncol+", "+this.whiteness+", "+this.blackness}toNcolaString(){return this.ncol+", "+Math.round(this.whiteness*100)+"%, "+Math.round(this.blackness*100)+"%, "+this.opacity}toName(){let e,t,i,r=s.getColorArr("hexs");for(let n=0;n<r.length;n++)if(e=parseInt(r[n].substr(0,2),16),t=parseInt(r[n].substr(2,2),16),i=parseInt(r[n].substr(4,2),16),this.red==e&&this.green==t&&this.blue==i)return s.getColorArr("names")[n];return null}toHexString(){let e=s.toHex(this.red),t=s.toHex(this.green),i=s.toHex(this.blue);return"#"+e+t+i}toNameOrHexString(){let e=this.toName();return e||(e=this.toHexString()),e}toRgb(){return{r:this.red,g:this.green,b:this.blue,a:this.opacity}}toHsl(){return{h:this.hue,s:this.sat,l:this.lightness,a:this.opacity}}toHwb(){return{h:this.hue,w:this.whiteness,b:this.blackness,a:this.opacity}}toCmyk(){return{c:this.cyan,m:this.magenta,y:this.yellow,k:this.black,a:this.opacity}}toNcol(){return{ncol:this.ncol,w:this.whiteness,b:this.blackness,a:this.opacity}}isDark(e){let t=e||128;return(this.red*299+this.green*587+this.blue*114)/1e3<t}saturate(e){let t,i,r;t=e/100||.1,this.sat+=t,this.sat>1&&(this.sat=1),i=s.hslToRgb(this.hue,this.sat,this.lightness),r=s.colorObject(i,this.opacity,this.hue,this.sat),this.attachValues(r)}desaturate(e){let t,i,r;t=e/100||.1,this.sat-=t,this.sat<0&&(this.sat=0),i=s.hslToRgb(this.hue,this.sat,this.lightness),r=s.colorObject(i,this.opacity,this.hue,this.sat),this.attachValues(r)}lighter(e){let t,i,r;t=e/100||.1,this.lightness+=t,this.lightness>1&&(this.lightness=1),i=s.hslToRgb(this.hue,this.sat,this.lightness),r=s.colorObject(i,this.opacity,this.hue,this.sat),this.attachValues(r)}darker(e){let t,i,r;t=e/100||.1,this.lightness-=t,this.lightness<0&&(this.lightness=0),i=s.hslToRgb(this.hue,this.sat,this.lightness),r=s.colorObject(i,this.opacity,this.hue,this.sat),this.attachValues(r)}attachValues(e){this.red=e.red,this.green=e.green,this.blue=e.blue,this.hue=e.hue,this.sat=e.sat,this.lightness=e.lightness,this.whiteness=e.whiteness,this.blackness=e.blackness,this.cyan=e.cyan,this.magenta=e.magenta,this.yellow=e.yellow,this.black=e.black,this.ncol=e.ncol,this.opacity=e.opacity,this.valid=e.valid}static toColorObject(e){let t,i,r,n=[],o,a,l,c,h,d,p,g,m=[],f=[];if(e=s.w3trim(e.toLowerCase()),t=e.substr(0,1).toUpperCase(),i=e.substr(1),h=1,(t=="R"||t=="Y"||t=="G"||t=="C"||t=="B"||t=="M"||t=="W")&&!isNaN(i)&&(e.length==6&&e.indexOf(",")==-1||(e="ncol("+e+")")),e.length!=3&&e.length!=6&&!isNaN(e)&&(e="ncol("+e+")"),e.indexOf(",")>0&&e.indexOf("(")==-1&&(e="ncol("+e+")"),e.substr(0,3)=="rgb"||e.substr(0,3)=="hsl"||e.substr(0,3)=="hwb"||e.substr(0,4)=="ncol"||e.substr(0,4)=="cmyk"){if(e.substr(0,4)=="ncol"?(e.split(",").length==4&&e.indexOf("ncola")==-1&&(e=e.replace("ncol","ncola")),r="ncol",e=e.substr(4)):e.substr(0,4)=="cmyk"?(r="cmyk",e=e.substr(4)):(r=e.substr(0,3),e=e.substr(3)),o=3,l=!1,e.substr(0,1).toLowerCase()=="a"?(o=4,l=!0,e=e.substr(1)):r=="cmyk"&&(o=4,e.split(",").length==5&&(o=5,l=!0)),e=e.replace("(",""),e=e.replace(")",""),n=e.split(","),r=="rgb"){if(n.length!=o)return new s;for(a=0;a<o;a++){if((n[a]==""||n[a]==" ")&&(n[a]="0"),n[a].indexOf("%")>-1&&(n[a]=n[a].replace("%",""),n[a]=Number(n[a]/100),a<3&&(n[a]=Math.round(n[a]*255))),isNaN(n[a]))return new s;parseInt(n[a])>255&&(n[a]=255),a<3&&(n[a]=parseInt(n[a])),a==3&&Number(n[a])>1&&(n[a]=1)}g={r:n[0],g:n[1],b:n[2]},l==!0&&(h=Number(n[3]))}if(r=="hsl"||r=="hwb"||r=="ncol"){for(;n.length<o;)n.push("0");for((r=="hsl"||r=="hwb")&&parseInt(n[0])>=360&&(n[0]=0),a=1;a<o;a++){if(n[a].indexOf("%")>-1){if(n[a]=n[a].replace("%",""),n[a]=Number(n[a]),isNaN(n[a]))return new s;n[a]=n[a]/100}else n[a]=Number(n[a]);Number(n[a])>1&&(n[a]=1),Number(n[a])<0&&(n[a]=0)}r=="hsl"&&(g=s.hslToRgb(n[0],n[1],n[2]),d=Number(n[0]),p=Number(n[1])),r=="hwb"&&(g=s.hwbToRgb(n[0],n[1],n[2])),r=="ncol"&&(g=s.ncolToRgb(n[0],n[1],n[2])),l==!0&&(h=Number(n[3]))}if(r=="cmyk"){for(;n.length<o;)n.push("0");for(a=0;a<o;a++){if(n[a].indexOf("%")>-1){if(n[a]=n[a].replace("%",""),n[a]=Number(n[a]),isNaN(n[a]))return new s;n[a]=n[a]/100}else n[a]=Number(n[a]);Number(n[a])>1&&(n[a]=1),Number(n[a])<0&&(n[a]=0)}g=s.cmykToRgb(n[0],n[1],n[2],n[3]),l==!0&&(h=Number(n[4]))}}else if(e.substr(0,3)=="ncs")g=s.ncsToRgb(e);else{for(c=!1,m=s.getColorArr("names"),a=0;a<m.length;a++)if(e.toLowerCase()==m[a].toLowerCase()){f=s.getColorArr("hexs"),c=!0,g={r:parseInt(f[a].substr(0,2),16),g:parseInt(f[a].substr(2,2),16),b:parseInt(f[a].substr(4,2),16)};break}if(c==!1){for(e=e.replace("#",""),e.length==3&&(e=e.substr(0,1)+e.substr(0,1)+e.substr(1,1)+e.substr(1,1)+e.substr(2,1)+e.substr(2,1)),a=0;a<e.length;a++)if(!s.isHex(e.substr(a,1)))return new s;for(n[0]=parseInt(e.substr(0,2),16),n[1]=parseInt(e.substr(2,2),16),n[2]=parseInt(e.substr(4,2),16),a=0;a<3;a++)if(isNaN(n[a]))return new s;g={r:n[0],g:n[1],b:n[2]}}}return s.colorObject(g,h,d,p)}static colorObject(e,t,i,r){let n,o,a,l,c,h,d;return e?(t===null&&(t=1),n=s.rgbToHsl(e.r,e.g,e.b),o=s.rgbToHwb(e.r,e.g,e.b),a=s.rgbToCmyk(e.r,e.g,e.b),h=i||n.h,d=r||n.s,l=s.hueToNcol(h),c={red:e.r,green:e.g,blue:e.b,hue:h,sat:d,lightness:n.l,whiteness:o.w,blackness:o.b,cyan:a.c,magenta:a.m,yellow:a.y,black:a.k,ncol:l,opacity:t,valid:!0},c=s.roundDecimals(c),Object.assign(new s,c)):new s}static getColorArr(e){return e=="names"?["AliceBlue","AntiqueWhite","Aqua","Aquamarine","Azure","Beige","Bisque","Black","BlanchedAlmond","Blue","BlueViolet","Brown","BurlyWood","CadetBlue","Chartreuse","Chocolate","Coral","CornflowerBlue","Cornsilk","Crimson","Cyan","DarkBlue","DarkCyan","DarkGoldenRod","DarkGray","DarkGrey","DarkGreen","DarkKhaki","DarkMagenta","DarkOliveGreen","DarkOrange","DarkOrchid","DarkRed","DarkSalmon","DarkSeaGreen","DarkSlateBlue","DarkSlateGray","DarkSlateGrey","DarkTurquoise","DarkViolet","DeepPink","DeepSkyBlue","DimGray","DimGrey","DodgerBlue","FireBrick","FloralWhite","ForestGreen","Fuchsia","Gainsboro","GhostWhite","Gold","GoldenRod","Gray","Grey","Green","GreenYellow","HoneyDew","HotPink","IndianRed","Indigo","Ivory","Khaki","Lavender","LavenderBlush","LawnGreen","LemonChiffon","LightBlue","LightCoral","LightCyan","LightGoldenRodYellow","LightGray","LightGrey","LightGreen","LightPink","LightSalmon","LightSeaGreen","LightSkyBlue","LightSlateGray","LightSlateGrey","LightSteelBlue","LightYellow","Lime","LimeGreen","Linen","Magenta","Maroon","MediumAquaMarine","MediumBlue","MediumOrchid","MediumPurple","MediumSeaGreen","MediumSlateBlue","MediumSpringGreen","MediumTurquoise","MediumVioletRed","MidnightBlue","MintCream","MistyRose","Moccasin","NavajoWhite","Navy","OldLace","Olive","OliveDrab","Orange","OrangeRed","Orchid","PaleGoldenRod","PaleGreen","PaleTurquoise","PaleVioletRed","PapayaWhip","PeachPuff","Peru","Pink","Plum","PowderBlue","Purple","RebeccaPurple","Red","RosyBrown","RoyalBlue","SaddleBrown","Salmon","SandyBrown","SeaGreen","SeaShell","Sienna","Silver","SkyBlue","SlateBlue","SlateGray","SlateGrey","Snow","SpringGreen","SteelBlue","Tan","Teal","Thistle","Tomato","Turquoise","Violet","Wheat","White","WhiteSmoke","Yellow","YellowGreen"]:e=="hexs"?["f0f8ff","faebd7","00ffff","7fffd4","f0ffff","f5f5dc","ffe4c4","000000","ffebcd","0000ff","8a2be2","a52a2a","deb887","5f9ea0","7fff00","d2691e","ff7f50","6495ed","fff8dc","dc143c","00ffff","00008b","008b8b","b8860b","a9a9a9","a9a9a9","006400","bdb76b","8b008b","556b2f","ff8c00","9932cc","8b0000","e9967a","8fbc8f","483d8b","2f4f4f","2f4f4f","00ced1","9400d3","ff1493","00bfff","696969","696969","1e90ff","b22222","fffaf0","228b22","ff00ff","dcdcdc","f8f8ff","ffd700","daa520","808080","808080","008000","adff2f","f0fff0","ff69b4","cd5c5c","4b0082","fffff0","f0e68c","e6e6fa","fff0f5","7cfc00","fffacd","add8e6","f08080","e0ffff","fafad2","d3d3d3","d3d3d3","90ee90","ffb6c1","ffa07a","20b2aa","87cefa","778899","778899","b0c4de","ffffe0","00ff00","32cd32","faf0e6","ff00ff","800000","66cdaa","0000cd","ba55d3","9370db","3cb371","7b68ee","00fa9a","48d1cc","c71585","191970","f5fffa","ffe4e1","ffe4b5","ffdead","000080","fdf5e6","808000","6b8e23","ffa500","ff4500","da70d6","eee8aa","98fb98","afeeee","db7093","ffefd5","ffdab9","cd853f","ffc0cb","dda0dd","b0e0e6","800080","663399","ff0000","bc8f8f","4169e1","8b4513","fa8072","f4a460","2e8b57","fff5ee","a0522d","c0c0c0","87ceeb","6a5acd","708090","708090","fffafa","00ff7f","4682b4","d2b48c","008080","d8bfd8","ff6347","40e0d0","ee82ee","f5deb3","ffffff","f5f5f5","ffff00","9acd32"]:null}static roundDecimals(e){return e.red=Number(e.red.toFixed(0)),e.green=Number(e.green.toFixed(0)),e.blue=Number(e.blue.toFixed(0)),e.hue=Number(e.hue.toFixed(0)),e.sat=Number(e.sat.toFixed(2)),e.lightness=Number(e.lightness.toFixed(2)),e.whiteness=Number(e.whiteness.toFixed(2)),e.blackness=Number(e.blackness.toFixed(2)),e.cyan=Number(e.cyan.toFixed(2)),e.magenta=Number(e.magenta.toFixed(2)),e.yellow=Number(e.yellow.toFixed(2)),e.black=Number(e.black.toFixed(2)),e.ncol=e.ncol.substr(0,1)+Math.round(Number(e.ncol.substr(1))),e.opacity=Number(e.opacity.toFixed(2)),e}static hslToRgb(e,t,i){let r,n,o,a,l;return e=e/60,i<=.5?n=i*(t+1):n=i+t-i*t,r=i*2-n,o=s.hueToRgb(r,n,e+2)*255,a=s.hueToRgb(r,n,e)*255,l=s.hueToRgb(r,n,e-2)*255,{r:o,g:a,b:l}}static hueToRgb(e,t,i){return i<0&&(i+=6),i>=6&&(i-=6),i<1?(t-e)*i+e:i<3?t:i<4?(t-e)*(4-i)+e:e}static hwbToRgb(e,t,i){let r,n,o=[],a;for(n=s.hslToRgb(e,1,.5),o[0]=n.r/255,o[1]=n.g/255,o[2]=n.b/255,a=t+i,a>1&&(t=Number((t/a).toFixed(2)),i=Number((i/a).toFixed(2))),r=0;r<3;r++)o[r]*=1-t-i,o[r]+=t,o[r]=Number(o[r]*255);return{r:o[0],g:o[1],b:o[2]}}static cmykToRgb(e,t,i,r){let n,o,a;return n=255-Math.min(1,e*(1-r)+r)*255,o=255-Math.min(1,t*(1-r)+r)*255,a=255-Math.min(1,i*(1-r)+r)*255,{r:n,g:o,b:a}}static ncolToRgb(e,t,i){let r,n,o;if(o=e,isNaN(e.substr(0,1))){if(r=e.substr(0,1).toUpperCase(),n=e.substr(1),n==""&&(n=0),n=Number(n),isNaN(n))return!1;r=="R"&&(o=0+n*.6),r=="Y"&&(o=60+n*.6),r=="G"&&(o=120+n*.6),r=="C"&&(o=180+n*.6),r=="B"&&(o=240+n*.6),r=="M"&&(o=300+n*.6),r=="W"&&(o=0,t=1-n/100,i=n/100)}return s.hwbToRgb(o,t,i)}static hueToNcol(e){for(;e>=360;)e=e-360;return e<60?"R"+e/.6:e<120?"Y"+(e-60)/.6:e<180?"G"+(e-120)/.6:e<240?"C"+(e-180)/.6:e<300?"B"+(e-240)/.6:e<360?"M"+(e-300)/.6:null}static ncsToRgb(e){let t,i,r,n,o,a,l,c,h,d,p,g,m,f,b,_,C,I,P;return e=s.w3trim(e).toUpperCase(),e=e.replace("(",""),e=e.replace(")",""),e=e.replace("NCS","NCS "),e=e.replace(/ /g," "),e.indexOf("NCS")==-1&&(e="NCS "+e),e=e.match(/^(?:NCS|NCS\sS)\s(\d{2})(\d{2})-(N|[A-Z])(\d{2})?([A-Z])?$/),e===null||(t=parseInt(e[1],10),i=parseInt(e[2],10),r=e[3],r!="N"&&r!="Y"&&r!="R"&&r!="B"&&r!="G")?null:(n=parseInt(e[4],10)||0,r!=="N"?(o=1.05*t-5.25,a=i,r==="Y"&&n<=60?h=1:r==="Y"&&n>60||r==="R"&&n<=80?(r==="Y"?l=n-60:l=n+40,h=(Math.sqrt(14884-Math.pow(l,2))-22)/100):r==="R"&&n>80||r==="B"?h=0:r==="G"&&(l=n-170,h=(Math.sqrt(33800-Math.pow(l,2))-70)/100),r==="Y"&&n<=80?c=0:r==="Y"&&n>80||r==="R"&&n<=60?(r==="Y"?l=n-80+20.5:l=n+20+20.5,c=(104-Math.sqrt(11236-Math.pow(l,2)))/100):r==="R"&&n>60||r==="B"&&n<=80?(r==="R"?l=n-60-60:l=n+40-60,c=(Math.sqrt(1e4-Math.pow(l,2))-10)/100):r==="B"&&n>80||r==="G"&&n<=40?(r==="B"?l=n-80-131:l=n+20-131,c=(122-Math.sqrt(19881-Math.pow(l,2)))/100):r==="G"&&n>40&&(c=0),r==="Y"?p=(85-17/20*n)/100:r==="R"&&n<=60?p=0:r==="R"&&n>60?(l=n-60+35,p=(67.5-Math.sqrt(5776-Math.pow(l,2)))/100):r==="B"&&n<=60?(l=1*n-68.5,p=(6.5+Math.sqrt(7044.5-Math.pow(l,2)))/100):r==="B"&&n>60||r==="G"&&n<=60?p=.9:r==="G"&&n>60&&(l=n-60,p=(90-1/8*l)/100),l=(h+p+c)/3,d=(l-h)*(100-a)/100+h,g=(l-p)*(100-a)/100+p,m=(l-c)*(100-a)/100+c,d>g&&d>m?f=d:g>d&&g>m?f=g:m>d&&m>g?f=m:f=(d+g+m)/3,b=1/f,C=parseInt(d*b*(100-o)/100*255,10),I=parseInt(g*b*(100-o)/100*255,10),P=parseInt(m*b*(100-o)/100*255,10),C>255&&(C=255),I>255&&(I=255),P>255&&(P=255),C<0&&(C=0),I<0&&(I=0),P<0&&(P=0)):(_=parseInt((1-t/100)*255,10),_>255&&(_=255),_<0&&(_=0),C=_,I=_,P=_),{r:C,g:I,b:P})}static rgbToHsl(e,t,i){let r,n,o,a,l,c,h,d=[];for(d[0]=e/255,d[1]=t/255,d[2]=i/255,r=d[0],n=d[0],c=0,o=0;o<d.length-1;o++)d[o+1]<=r&&(r=d[o+1]),d[o+1]>=n&&(n=d[o+1],c=o+1);return c==0&&(h=(d[1]-d[2])/(n-r)),c==1&&(h=2+(d[2]-d[0])/(n-r)),c==2&&(h=4+(d[0]-d[1])/(n-r)),isNaN(h)&&(h=0),h=h*60,h<0&&(h=h+360),a=(r+n)/2,r==n?l=0:a<.5?l=(n-r)/(n+r):l=(n-r)/(2-n-r),l=l,{h,s:l,l:a}}static rgbToHwb(e,t,i){let r,n,o;e=e/255,t=t/255,i=i/255;let a=Math.max(e,t,i),l=Math.min(e,t,i),c=a-l;return c==0?r=0:e==a?r=(t-i)/c%6*360:t==a?r=((i-e)/c+2)%6*360:r=((e-t)/c+4)%6*360,n=l,o=1-a,{h:r,w:n,b:o}}static rgbToCmyk(e,t,i){let r,n,o,a;return e=e/255,t=t/255,i=i/255,a=1-Math.max(e,t,i),a==1?(r=0,n=0,o=0):(r=(1-e-a)/(1-a),n=(1-t-a)/(1-a),o=(1-i-a)/(1-a)),{c:r,m:n,y:o,k:a}}static toHex(e){let t=e.toString(16);for(;t.length<2;)t="0"+t;return t}static w3trim(e){return e.replace(/^\s+|\s+$/g,"")}static isHex(e){return"0123456789ABCDEFabcdef".indexOf(e)>-1}}});var xr,jo=u(()=>{"use strict";ve();Wo();xr=class extends Q{constructor(e){super(e);let t=document.createElement("input");t.type="color",e.readonly&&(t.readOnly=!0),t.onchange=i=>{let r=_i.toColorObject(t.value);this._valueChanged(r.toNameOrHexString())},this.element=t}refreshValue(e,t){if(!t)this.element.value="#000000";else{let i=_i.toColorObject(t);this.element.value=i.toHexString()}}}});var _r,Uo=u(()=>{"use strict";ve();_r=class extends Q{constructor(e){super(e);let t=document.createElement("input");t.type="datetime-local",e.readonly&&(t.readOnly=!0),t.onchange=i=>this._valueChanged(t.value),this.element=t}refreshValue(e,t){t?this.element.value=t:this.element.value=null}}});import{html as Vd}from"@node-projects/base-custom-webcomponent";var br,Ko=u(()=>{"use strict";ve();br=class s extends Q{static template=Vd`
|
|
181
|
+
}`;static count=0;static _openedContextMenus=new Set;menu;options;context;num;_menuElement;constructor(e,t,i){this.num=s.count++,this.menu=e,this.options=t,this.context=i,this.reload(),this._windowDown=this._windowDown.bind(this),this._windowKeyUp=this._windowKeyUp.bind(this),this._windowResize=this._windowResize.bind(this)}reload(){let e=this.options?.shadowRoot??document;this._menuElement==null&&(this._menuElement=document.createElement("div"),this._menuElement.className="context_menu",this._menuElement.id="context_menu_"+this.num,e===document?document.body.appendChild(this._menuElement):e.appendChild(this._menuElement)),this._menuElement.innerHTML="",e.adoptedStyleSheets.indexOf(s._contextMenuCss)<0&&(e.adoptedStyleSheets=[...e.adoptedStyleSheets,s._contextMenuCss]),this._menuElement.appendChild(this.renderLevel(this.menu))}renderLevel(e){let t=document.createElement("ul"),i=!1;return e.forEach(r=>{if(r.title!=="-"){if(i){let c=document.createElement("li");c.className="context_menu_divider",i=!1,t.appendChild(c)}let n=document.createElement("li"),o=document.createElement("span");o.className="context_menu_icon_span",r.checked===!0?o.innerHTML="\u2714":(r.icon??"")!=""?o.innerHTML=r.icon:o.innerHTML=this.options?.defaultIcon??"";let a=document.createElement("span");a.className="context_menu_text",a.innerHTML=r.title;let l=document.createElement("span");if(l.className="context_menu_sub_span",r.children!=null&&(l.innerHTML=this.options?.subIcon??"›"),n.appendChild(o),n.appendChild(a),n.appendChild(l),r.disabled)n.setAttribute("disabled","");else if(r.action&&n.addEventListener("click",c=>{c.stopPropagation(),c.preventDefault(),r.action(c,r,this.context,this),this.close()}),this.options?.mode=="undo"&&n.addEventListener("mouseup",c=>{c.stopPropagation(),r.action(c,r,this.context,this),this.close()}),r.children!=null){let c=this.renderLevel(r.children);n.appendChild(c),n.addEventListener("mouseenter",()=>{let h=c.getBoundingClientRect();if(h.top+h.height>window.innerHeight&&(c.style.top="unset",c.style.bottom="0"),this.options?.mode=="undo"){let d=!0;for(let p of n.parentElement.children)d?p.classList.add("context_menu_marked"):p.classList.remove("context_menu_marked"),p==n&&(d=!1)}})}else this.options?.mode=="undo"&&n.addEventListener("mouseenter",()=>{let c=!0;for(let h of n.parentElement.children)c?h.classList.add("context_menu_marked"):h.classList.remove("context_menu_marked"),h==n&&(c=!1)});t.appendChild(n)}else i=!0}),t}display(e){let t=this._menuElement,i={x:e.clientX,y:e.clientY},r=i.x,n=i.y,o=t.offsetWidth+4,a=t.offsetHeight+4,l=window.innerWidth,c=window.innerHeight,h=this.options?.mouseOffset!=null?this.options.mouseOffset:2;l-r<o?t.style.left=l-o+"px":t.style.left=r+h+"px",c-n<a?t.style.top=c-a+"px":t.style.top=n+h+"px";let d=No.getSizes(t);l-r<d.width?t.classList.add("context_menu_border_right"):t.classList.remove("context_menu_border_right"),c-n<d.height?t.classList.add("context_menu_border_bottom"):t.classList.remove("context_menu_border_bottom"),t.classList.add("context_menu_display"),e.preventDefault(),window.addEventListener("keyup",this._windowKeyUp),window.addEventListener("mousedown",this._windowDown),window.addEventListener("resize",this._windowResize),setTimeout(()=>window.addEventListener("contextmenu",this._windowDown),100),s._openedContextMenus.add(this)}_windowResize(){this.close()}_windowDown(e){return e.preventDefault(),e.composedPath().indexOf(this._menuElement)<0&&this.close(),!1}_windowKeyUp(e){e.key==="Escape"&&this.close()}static show(e,t,i,r){let n=new s(e,i,r);return n.display(t),n}close(){this._menuElement.remove(),window.removeEventListener("keyup",this._windowKeyUp),window.removeEventListener("mousedown",this._windowDown),window.removeEventListener("resize",this._windowResize),setTimeout(()=>window.removeEventListener("contextmenu",this._windowDown),10),s._openedContextMenus.delete(this)}static closeAll(){for(let e of s._openedContextMenus.values())e.close()}},No=class s{static getSizes(e){let t=e.getElementsByTagName("li"),i=0,r=0;for(let a=0;a<t.length;a++){let l=t[a];l.offsetWidth>i&&(i=l.offsetWidth),l.offsetHeight>r&&(r=l.offsetHeight)}let n=i,o=r;for(let a=0;a<t.length;a++){let c=t[a].getElementsByTagName("ul");if(typeof c[0]<"u"){let h=s.getSizes(c[0]);i+h.width>n&&(n=i+h.width),r+h.height>o&&(o=r+h.height)}}return{width:n,height:o}}}});var Ae,bt=u(()=>{"use strict";at();Ae=class{settingName;content;tooltp;contextmenu;constructor(e,t,i,r){this.settingName=e,this.content=t,this.tooltp=i,this.contextmenu=r}provideButtons(e,t){let i=document.createElement("div");typeof this.content=="string"?i.innerHTML=this.content:i.appendChild(this.content),i.title=this.tooltp,i.className="toolbar-control",t.instanceServiceContainer.designContext.extensionOptionsChanged.on(()=>{r[this.settingName]!==!1?i.classList.add("selected"):i.classList.remove("selected")});let r=t.instanceServiceContainer.designContext.extensionOptions;return r[this.settingName]!==!1&&i.classList.add("selected"),i.onclick=()=>{let n=r[this.settingName];r[this.settingName]=n===!1,r[this.settingName]!==!1?i.classList.add("selected"):i.classList.remove("selected")},i.oncontextmenu=n=>{n.preventDefault(),this.contextmenu&&he.show(this.contextmenu,n)},[i]}}});var pr,dr,mr=u(()=>{"use strict";bt();pr="enableStylesheetService",dr=class extends Ae{constructor(){super(pr,"ss","modify Stylesheet")}}});var ur,Lo=u(()=>{"use strict";ur=class{constructor(e,t,i){this.title="Change TextContent from '"+i+"' to '"+t+"'",this.designItem=e,this.newValue=t,this.oldValue=i}title;get affectedItems(){return[this.designItem]}undo(){this.designItem.element.textContent=this.oldValue}do(){this.designItem.element.textContent=this.newValue}designItem;newValue;oldValue;mergeWith(e){return!1}}});function ah(){return window.navigator.platform?.startsWith("Mac")||window.navigator.platform==="iPhone"||window.navigator.platform==="iPad"||window.navigator.platform==="iPod"}function lt(s){return new Promise(e=>setTimeout(e,s))}async function Ro(s,e){let t=URL.createObjectURL(s),i=document.createElement("a");i.href=t,i.style.display="none",i.download=e,document.body.appendChild(i),i.click(),document.body.removeChild(i),await lt(300)}function Fo(s){for(var e=s.split(",")[0].split(":")[1].split(";")[0],t=atob(s.split(",")[1]),i=[],r=0;r<t.length;r++)i.push(t.charCodeAt(r));return new Blob([new Uint8Array(i)],{type:e})}function zo(s,e){return s.x>=e.x&&s.x<=e.x+e.width&&s.y>=e.y&&s.y<=e.y+e.height}function wt(s,e){return s.endsWith(e??"/")?s.substring(0,s.length-1):s}function de(s,e){return s.startsWith(e??"/")?s.substring(1):s}function _f(){return new Promise(s=>requestAnimationFrame(s))}function bf(s,e){if(s===e)return!0;if(s==null||e==null||s.length!==e.length)return!1;for(var t=0;t<s.length;++t)if(s[t]!==e[t])return!1;return!0}function lh(s,e,t=!1,i="."){if(e==null)return s;let r=e.split(i);for(let n=0;n<r.length;n++)if(s!=null)s=s[r[n]];else return t?zd:null;return s}function Bo(s,e,t,i="."){if(e==null)return;let r=e.split(i);for(let n=0;n<r.length-1;n++)if(s!=null){let o=s[r[n]];o==null&&(o={},s[r[n]]=o),s=o}s!=null&&(s[r[r.length-1]]=t)}var zd,Pe=u(()=>{"use strict"});var fr,Vo=u(()=>{"use strict";Pe();fr=class s{constructor(e,t,i,r){this.title="Change Property "+t+" of <"+e.name+">",this.designItem=e,this.name=t,this.newValue=i,this.oldValue=r}title;get affectedItems(){return[this.designItem]}undo(){Bo(this.designItem.node,this.name,this.oldValue)}do(){Bo(this.designItem.node,this.name,this.newValue)}designItem;name;newValue;oldValue;mergeWith(e){return e instanceof s&&this.designItem===e.designItem&&this.name===e.name?(this.newValue=e.newValue,!0):!1}}});import{TypedEvent as Bd}from"@node-projects/base-custom-webcomponent";var Ft,zt,St,ct,gi,yi,vi,xi,_i,T,q=u(()=>{"use strict";ko();Z();Do();De();To();ue();Mo();Te();mr();Lo();Vo();Pe();Ft="node-projects-hide-at-design-time",zt="node-projects-hide-at-run-time",St="node-projects-lock-at-design-time",ct="node-projects-force-hover",gi="node-projects-force-active",yi="node-projects-force-visited",vi="node-projects-force-focus",xi="node-projects-force-focus-within",_i="node-projects-force-focus-visible",T=class s{lastContainerSize;parsedNode;node;view;serviceContainer;instanceServiceContainer;nodeReplaced=new Bd;get window(){return this.isRootItem&&this.node instanceof HTMLIFrameElement?this.node.contentDocument.defaultView:this.node.ownerDocument.defaultView??window}get document(){return this.isRootItem&&this.node instanceof HTMLIFrameElement?this.node.contentDocument:this.node.ownerDocument}get usableContainer(){return this.isRootItem&&this.element instanceof(this.element.ownerDocument.defaultView??window).HTMLIFrameElement?this.element.contentWindow.document:this.isRootItem?this.node.shadowRoot:this.element}async clone(){try{let e=K.ConvertToString([this],!1);return(await this.serviceContainer.htmlParserService.parse(e,this.serviceContainer,this.instanceServiceContainer,!0))[0]}catch{console.warn("could not clone design item.",this)}return null}*allMatching(e){if(this.hasChildren)for(let t of this.children())t.nodeType==E.Element&&t.element.matches(e)&&(yield t),yield*t.allMatching(e)}replaceNode(e){s._designItemMap.delete(this.node),s._designItemMap.set(e,this),this.view==this.node&&(this.view=e),this.node=e,this.nodeReplaced.emit()}get nodeType(){return this.node instanceof(this.node.ownerDocument.defaultView??window).Comment?E.Comment:this.node instanceof(this.node.ownerDocument.defaultView??window).Text?E.TextNode:E.Element}_attributes;get hasAttributes(){return this._attributes.size>0}hasAttribute(e){return this._attributes.has(e)}getAttribute(e){return this._attributes.get(e)}*attributes(){for(let e of this._attributes)yield e}_withoutUndoSetAttribute(e,t){this._attributes.set(e,t),this.serviceContainer.designItemService.handleSpecialAttributes(e,this)}_withoutUndoRemoveAttribute(e){this._attributes.delete(e),this.serviceContainer.designItemService.handleSpecialAttributes(e,this)}_styles;get hasStyles(){return this._styles.size>0}hasStyle(e){let t=e;return t.startsWith("--")||(t=L.camelToDashCase(e)),this._styles.has(t)}getStyle(e){let t=e;return t.startsWith("--")||(t=L.camelToDashCase(e)),this._styles.get(t)}*styles(){for(let e of this._styles)yield e}_withoutUndoSetStyle(e,t){let i=e;i.startsWith("--")||(i=L.camelToDashCase(e)),this._styles.set(i,t)}_withoutUndoRemoveStyle(e){let t=e;t.startsWith("--")||(t=L.camelToDashCase(e)),this._styles.delete(t)}static _designItemMap=new WeakMap;get element(){return this.view}get name(){return this.node.localName}get id(){return this.element.id}set id(e){this.element.id=e,this.id?this.setAttribute("id",e):this.removeAttribute("id")}get isRootItem(){return this.instanceServiceContainer.contentService.rootDesignItem===this}*childrenRect(e){if(this.hasChildren)for(let t of this.children())t.nodeType==E.Element&&t.element.matches(e)&&(yield t),yield*t.allMatching(e)}_childArray=[];get hasChildren(){return this._childArray.length>0}*children(e=!1){for(let t of this._childArray)if(yield t,e)for(let i of t.children(e))yield i}get childCount(){return this._childArray.length}get firstChild(){return this._childArray[0]}_parent;get parent(){return this._parent}indexOf(e){return this._childArray.indexOf(e)}insertAdjacentElement(e,t){let i;t=="afterbegin"?i=new ot(e,this,0):t=="beforeend"?i=new ot(e,this,this._childArray.length):t=="beforebegin"?i=new ot(e,this.parent,this.parent.indexOf(this)):t=="afterend"&&(i=new ot(e,this.parent,this.parent.indexOf(this)+1)),this.instanceServiceContainer.undoService.execute(i)}insertChild(e,t){let i=new ot(e,this,t);this.instanceServiceContainer.undoService.execute(i)}removeChild(e){this.serviceContainer.deletionService.removeItems([e])}remove(){this.serviceContainer.deletionService.removeItems([this])}clearChildren(){for(let e=this._childArray.length-1;e>=0;e--)this._childArray[e].remove()}get hasContent(){return(this.nodeType==E.TextNode||this.nodeType==E.Comment)&&this.element.textContent!=""||this._childArray.length===0}get content(){return this.nodeType==E.TextNode||this.nodeType==E.Comment?this.node.textContent:this._childArray.map(e=>e.content).join()}set content(e){let t=this.openGroup("set content");this.clearChildren();let i=document.createTextNode(e),r=s.GetOrCreateDesignItem(i,i,this.serviceContainer,this.instanceServiceContainer);if(this.nodeType==E.TextNode){let n=this.parent.indexOf(this),o=this.parent;this.remove(),o.insertChild(r,n)}else if(this.nodeType==E.Comment){let n=new ur(this,e,this.content);this.instanceServiceContainer.undoService.execute(n)}else this.insertChild(r);t.commit()}get innerHTML(){return this.element.innerHTML}set innerHTML(e){if(this.nodeType!=E.TextNode){let t=this.openGroup("set innerHTML");this.clearChildren();let i=document.createRange();i.selectNode(document.body);let r=i.createContextualFragment(e);for(let n of[...r.childNodes]){let o=s.createDesignItemFromInstance(n,this.serviceContainer,this.instanceServiceContainer);this.insertChild(o)}t.commit()}}get isEmptyTextNode(){return this.nodeType===E.TextNode&&this.content?.trim()==""}get hideAtDesignTime(){return this.hasAttribute(Ft)}set hideAtDesignTime(e){e?this.setAttribute(Ft,""):this.removeAttribute(Ft)}get hideAtRunTime(){return this.hasAttribute(zt)}set hideAtRunTime(e){e?this.setAttribute(zt,""):this.removeAttribute(zt)}get lockAtDesignTime(){return this.hasAttribute(St)}set lockAtDesignTime(e){e?this.setAttribute(St,""):this.removeAttribute(St)}static createDesignItemFromInstance(e,t,i){let r=t.designItemService.createDesignItem(e,e,t,i);if(e instanceof(e.ownerDocument.defaultView??window).HTMLTemplateElement&&e.getAttribute("shadowrootmode")=="open")try{e.parentNode.attachShadow({mode:"open"}).appendChild(e.content.cloneNode(!0))}catch(n){console.error("error attaching shadowdom",n)}if(r.nodeType==E.Element){for(let n of r.element.attributes)n.name!=="style"&&r._attributes.set(n.name,n.value);if(e instanceof(e.ownerDocument.defaultView??window).HTMLElement||e instanceof(e.ownerDocument.defaultView??window).SVGElement){let n=new lr,o=e.getAttribute("style");if(o){n.parse(o);for(let a of n.entries)r._styles.set(a.name,a.value)}t.designItemService.handleSpecialAttributes(St,r)}e.draggable=!1}r._childArray=r._internalUpdateChildrenFromNodesChildren();for(let n of r._childArray)n._parent=r;return r}querySelectorAll(e){return this.usableContainer.querySelectorAll(e)}removeDesignerAttributesAndStylesFromChildren(){let e=this.querySelectorAll("*");for(let t of e){let i=s.GetDesignItem(t);i.hasAttribute("draggable")||t.removeAttribute("draggable"),i.hasStyle("pointer-events")||(t.style.pointerEvents="")}}updateChildrenFromNodesChildren(){this._childArray=this._internalUpdateChildrenFromNodesChildren();for(let e of this._childArray)e._parent=this}_internalUpdateChildrenFromNodesChildren(){let e=[];if(this.nodeType==E.Element)if(this.element instanceof(this.node.ownerDocument.defaultView??window).HTMLTemplateElement)for(let t of this.element.content.childNodes){let i=s.createDesignItemFromInstance(t,this.serviceContainer,this.instanceServiceContainer);e.push(i)}else if(this.isRootItem&&this.element instanceof(this.node.ownerDocument.defaultView??window).HTMLIFrameElement)for(let t of this.element.contentWindow.document.childNodes){let i=s.createDesignItemFromInstance(t,this.serviceContainer,this.instanceServiceContainer);e.push(i)}else for(let t of this.element.childNodes){let i=s.createDesignItemFromInstance(t,this.serviceContainer,this.instanceServiceContainer);e.push(i)}return e}_backupWhenEditContent;_inEditContent=!1;editContent(){this._inEditContent=!0,this._backupWhenEditContent=[...this.element.childNodes];let e=this.element.innerHTML;this.element.innerHTML="",this.element.innerHTML=e,this.element.setAttribute("contenteditable","")}editContentFinish(){if(this._inEditContent){this._inEditContent=!1,this.element.removeAttribute("contenteditable"),this.element.innerHTML="";for(let e of this._backupWhenEditContent)this.element.appendChild(e);this._backupWhenEditContent=null}}constructor(e,t,i,r){this.node=e,this.view=e,this.parsedNode=t,this.serviceContainer=i,this.instanceServiceContainer=r,this._attributes=new Map,this._styles=new Map,s._designItemMap.set(e,this)}setView(e){this.view=e,s._designItemMap.set(e,this)}openGroup(e){return this.instanceServiceContainer.undoService.openGroup(e)}getOrCreateDesignItem(e){return s.GetOrCreateDesignItem(e,e,this.serviceContainer,this.instanceServiceContainer)}static GetOrCreateDesignItem(e,t,i,r){if(!e)return null;let n=s._designItemMap.get(e);return n||(n=i.designItemService.createDesignItem(e,t,i,r)),n}static GetDesignItem(e){return e?s._designItemMap.get(e):null}setStyle(e,t,i){let r=e;if(r.startsWith("--")||(r=L.camelToDashCase(e)),this.isRootItem)throw"not allowed to set style on root item or use async setStyle";{let n=new Rt(this,r,t,this._styles.get(r));this.instanceServiceContainer.undoService.execute(n)}}async setStyleAsync(e,t,i){let r=e;if(r.startsWith("--")||(r=L.camelToDashCase(e)),this.isRootItem)if(this.instanceServiceContainer.stylesheetService){let n=this.instanceServiceContainer.stylesheetService.getDeclarationsSortedBySpecificity(this,e);if(n!==null&&n.length>0)this.instanceServiceContainer.stylesheetService.updateDeclarationValue(n[0],t,i);else{let o=this.instanceServiceContainer.stylesheetService.getRules(":host").filter(a=>!a.stylesheet?.readOnly);if(n===null||o.length===0){let a=this.openGroup("add rule and set style: "+e),l=this.instanceServiceContainer.stylesheetService.getStylesheets(),c=await this.instanceServiceContainer.stylesheetService.addRule(l[0],":host");this.instanceServiceContainer.stylesheetService.insertDeclarationIntoRule(c,e,t,i),a.commit()}else this.instanceServiceContainer.stylesheetService.insertDeclarationIntoRule(o[0],e,t,i)}}else throw"not allowed to set style on root item";else{let n=new Rt(this,r,t,this._styles.get(r));this.instanceServiceContainer.undoService.execute(n)}}removeStyle(e){let t=e;t.startsWith("--")||(t=L.camelToDashCase(e));let i=new Rt(this,t,"",this._styles.get(t));this.instanceServiceContainer.undoService.execute(i)}updateStyleInSheetOrLocal(e,t,i,r){let n=e;n.startsWith("--")||(n=L.camelToDashCase(e));let o=this.instanceServiceContainer.stylesheetService?.getDeclarationsSortedBySpecificity(this,n).filter(a=>!a.stylesheet?.readOnly);this.hasStyle(e)||this.instanceServiceContainer.designContext.extensionOptions[pr]===!1||!o?.length?this.getStyle(n)!=t||r?this.setStyle(n,t):t==null&&this.removeStyle(n):this.instanceServiceContainer.stylesheetService.updateDeclarationValue(o[0],t,!1)}async updateStyleInSheetOrLocalAsync(e,t,i,r){let n=e;n.startsWith("--")||(n=L.camelToDashCase(e));let o=this.instanceServiceContainer.stylesheetService?.getDeclarationsSortedBySpecificity(this,n).filter(a=>!a.stylesheet?.readOnly);this.hasStyle(e)||this.instanceServiceContainer.designContext.extensionOptions[pr]===!1||!o?.length?this.getStyle(n)!=t||r?await this.setStyleAsync(n,t):t==null&&this.removeStyle(n):this.instanceServiceContainer.stylesheetService.updateDeclarationValue(o[0],t,!1)}getStyleFromSheetOrLocal(e,t=null){let i=e;if(i.startsWith("--")||(i=L.camelToDashCase(e)),this.hasStyle(e))return this.getStyle(i);let r=this.instanceServiceContainer.stylesheetService?.getDeclarationsSortedBySpecificity(this,i);return r&&r.length>0?r[0].value:null}getStyleFromSheetOrLocalOrComputed(e,t=null){let i=e;i.startsWith("--")||(i=L.camelToDashCase(e));let r=this.getStyleFromSheetOrLocal(i);return r||(r=getComputedStyle(this.element).getPropertyValue(i)),r??t}getComputedStyleProperty(e,t=null){let i=e;i.startsWith("--")||(i=L.camelToDashCase(e));let r=this.getStyleFromSheetOrLocal(i);return r||(r=getComputedStyle(this.element).getPropertyValue(i)),r??t}getComputedStyle(){return this.nodeType==E.Element?this.window.getComputedStyle(this.element):null}_stylesCache=null;_cacheClearTimer;getAllStyles(){let e=this._stylesCache;if(e)return e;if(this.nodeType!=E.Element)return[];let t=[...this._styles.entries()].map(i=>({name:i[0],value:i[1],important:!1,parent:null}));if(this.instanceServiceContainer.stylesheetService)try{let i=this.instanceServiceContainer.stylesheetService?.getAppliedRules(this);if(i)return[{selector:null,declarations:t,specificity:null,stylesheet:null},...i]}catch(i){console.warn("getAppliedRules",i)}return e=[{selector:null,declarations:t,specificity:null,stylesheet:null}],this._stylesCache=e,clearTimeout(this._cacheClearTimer),this._cacheClearTimer=setTimeout(()=>this._stylesCache=null,30),e}setAttribute(e,t){if(this.isRootItem)throw"not allowed to set attribute on root item";let i=new fi(this,e,t,this._attributes.get(e));this.instanceServiceContainer.undoService.execute(i)}removeAttribute(e){let t=new fi(this,e,null,this._attributes.get(e));this.instanceServiceContainer.undoService.execute(t)}setProperty(e,t){if(this.isRootItem)throw"not allowed to set attribute on root item";let i=lh(this.node,e),r=new fr(this,e,t,i);this.instanceServiceContainer.undoService.execute(r)}_insertChildInternal(e,t){this._insertChildsInternal([e],t)}_insertChildsInternal(e,t){let i=this.document.createDocumentFragment(),r=t;for(let n of e)n.parent&&this.instanceServiceContainer.selectionService.primarySelection==n&&(n.instanceServiceContainer.designerCanvas.extensionManager.removeExtension(n.parent,w.PrimarySelectionContainer),n.instanceServiceContainer.designerCanvas.extensionManager.removeExtension(n.parent,w.PrimarySelectionContainerAndCanBeEntered)),n.parent&&n.parent._removeChildInternal(n),i.appendChild(n.view),n._parent=this,t==null||this._childArray.length==0||t>=this._childArray.length?this._childArray.push(n):(this._childArray.splice(t,0,n),t++);if(r==null||this._childArray.length==0||r>=this._childArray.length)this.isRootItem?(this.usableContainer?.children[0]instanceof this.window.HTMLHtmlElement&&this.usableContainer.children[0].remove(),this.usableContainer.appendChild(i)):this.view instanceof(this.node.ownerDocument.defaultView??window).HTMLTemplateElement?this.view.content.appendChild(i):this.view.appendChild(i);else{let n=this._childArray[r];this.isRootItem?(this.usableContainer?.children[0]instanceof this.window.HTMLHtmlElement&&this.usableContainer.children[0].remove(),this.usableContainer.insertBefore(i,n.element)):this.view instanceof(this.node.ownerDocument.defaultView??window).HTMLTemplateElement?this.view.content.insertBefore(i,n.element):this.view.insertBefore(i,n.element)}this._refreshIfStyleSheet()}_removeChildInternal(e){e.parent&&this.instanceServiceContainer.selectionService.primarySelection==e&&(e.instanceServiceContainer.designerCanvas.extensionManager.removeExtension(e.parent,w.PrimarySelectionContainer),e.instanceServiceContainer.designerCanvas.extensionManager.removeExtension(e.parent,w.PrimarySelectionAndCanBeEntered)),e.instanceServiceContainer.designerCanvas.extensionManager.removeExtensions([e],!0);let t=this._childArray.indexOf(e);t>-1&&(this._childArray.splice(t,1),e.element.remove(),e._parent=null),this._refreshIfStyleSheet()}_refreshIfStyleSheet(){this.name=="style"||this.parent?.name=="style"||this.name=="link"}getPlacementService(e){return this.nodeType!=E.Element?null:(e??=getComputedStyle(this.element),this.serviceContainer.getLastServiceWhere("containerService",t=>t.serviceForContainer(this,e)))}static createDesignItemFromImageBlob(e,t,i){return new Promise(r=>{let n=new FileReader;n.onloadend=()=>{let o=document.createElement("img");o.src=n.result;let a=s.createDesignItemFromInstance(o,e,t);return r(a)},n.readAsDataURL(i)})}get hasForcedCss(){return this.cssForceHover||this.cssForceActive||this.cssForceVisited||this.cssForceFocus||this.cssForceFocusWithin||this.cssForceFocusVisible}get cssForceHover(){return this.element.hasAttribute(ct)}set cssForceHover(e){e?this.element.setAttribute(ct,""):this.element.removeAttribute(ct),this.instanceServiceContainer.contentService.onContentChanged.emit({changeType:"changed",designItems:[this]})}get cssForceActive(){return this.element.hasAttribute(gi)}set cssForceActive(e){e?this.element.setAttribute(gi,""):this.element.removeAttribute(gi),this.instanceServiceContainer.contentService.onContentChanged.emit({changeType:"changed",designItems:[this]})}get cssForceVisited(){return this.element.hasAttribute(yi)}set cssForceVisited(e){e?this.element.setAttribute(yi,""):this.element.removeAttribute(yi),this.instanceServiceContainer.contentService.onContentChanged.emit({changeType:"changed",designItems:[this]})}get cssForceFocus(){return this.element.hasAttribute(vi)}set cssForceFocus(e){e?this.element.setAttribute(vi,""):this.element.removeAttribute(vi),this.instanceServiceContainer.contentService.onContentChanged.emit({changeType:"changed",designItems:[this]})}get cssForceFocusWithin(){return this.element.hasAttribute(xi)}set cssForceFocusWithin(e){e?this.element.setAttribute(xi,""):this.element.removeAttribute(xi),this.instanceServiceContainer.contentService.onContentChanged.emit({changeType:"changed",designItems:[this]})}get cssForceFocusVisible(){return this.element.hasAttribute(_i)}set cssForceFocusVisible(e){e?this.element.setAttribute(_i,""):this.element.removeAttribute(_i),this.instanceServiceContainer.contentService.onContentChanged.emit({changeType:"changed",designItems:[this]})}}});function Ho(s){return s.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}var ch=u(()=>{"use strict"});var gr,yr=u(()=>{"use strict";gr=navigator.userAgent.toLowerCase().includes("firefox")});var vr,Go=u(()=>{"use strict";q();ch();te();yr();vr=class{async getElement(e,t,i){if(e.import){let l=e.import;l[0]==="."&&(l=(window.location.origin+window.location.pathname).split("/").slice(0,-1).join("/")+"/"+l),window.importShim?importShim(l).then(c=>{!customElements.get(e.tag)&&e.className&&c[e.className]&&customElements.define(e.tag,c[e.className])}):import(l).then(c=>{!customElements.get(e.tag)&&e.className&&c[e.className]&&customElements.define(e.tag,c[e.className])}),i.designContext.imports.indexOf(l)<=0&&i.designContext.imports.push(l)}let r="";if(e.defaultAttributes)for(let l in e.defaultAttributes){let c=e.defaultAttributes[l];try{typeof c=="object"?r+=" "+l+'="'+Ho(JSON.stringify(e.defaultAttributes[l]))+'"':r+=" "+l+'="'+Ho(e.defaultAttributes[l])+'"'}catch(h){console.warn(h)}}let n="<"+e.tag+r+"></"+e.tag+">",o=er(n,i.designerCanvas.rootDesignItem.document);if(o._inNodeProjectsDesignerView=!0,e.defaultWidth&&(o.style.width=e.defaultWidth),e.defaultHeight&&(o.style.height=e.defaultHeight),o.style.position="absolute",e.defaultStyles)for(let l in e.defaultStyles)o.style[l]=e.defaultStyles[l];if(e.defaultContent)if(typeof e.defaultContent=="string"){let l;i.designerCanvas.rootDesignItem.window.Document.parseHTMLUnsafe&&!gr?l=i.designerCanvas.rootDesignItem.window.Document.parseHTMLUnsafe(e.defaultContent):l=new i.designerCanvas.rootDesignItem.window.DOMParser().parseFromString(e.defaultContent,"text/html",{includeShadowRoots:!0}),o.append(...l.head.childNodes),o.append(...l.body.childNodes)}else o.appendChild(e.defaultContent);return T.createDesignItemFromInstance(o,t,i)}}});var Q,ve=u(()=>{"use strict";Xe();Q=class{element;property;designItems;disableChangeNotification=!1;constructor(e){this.property=e}async _valueChanged(e){if(!this.disableChangeNotification&&this.designItems&&this.designItems.length){let t=this.designItems[0].openGroup("set property: "+this.property.name);e==null?this.property.service.clearValue(this.designItems,this.property,"value"):await this.property.service.setValue(this.designItems,this.property,e),t.commit()}}designItemsChanged(e){this.designItems=e}refreshValueWithoutNotification(e,t){e==V.none?this.element.classList.add("unset-value"):this.element.classList.remove("unset-value"),this.disableChangeNotification=!0;try{this.refreshValue(e,t)}catch(i){console.error(i)}this.disableChangeNotification=!1}}});var Bt,Wo=u(()=>{"use strict";Bt=class s{red=0;green=0;blue=0;hue=0;sat=0;lightness=0;whiteness=0;blackness=0;cyan=0;magenta=0;yellow=0;black=0;ncol="R";opacity=1;valid=!1;toRgbString(){return"rgb("+this.red+", "+this.green+", "+this.blue+")"}toRgbaString(){return"rgba("+this.red+", "+this.green+", "+this.blue+", "+this.opacity+")"}toHwbString(){return"hwb("+this.hue+", "+Math.round(this.whiteness*100)+"%, "+Math.round(this.blackness*100)+"%)"}toHwbStringDecimal(){return"hwb("+this.hue+", "+this.whiteness+", "+this.blackness+")"}toHwbaString(){return"hwba("+this.hue+", "+Math.round(this.whiteness*100)+"%, "+Math.round(this.blackness*100)+"%, "+this.opacity+")"}toHslString(){return"hsl("+this.hue+", "+Math.round(this.sat*100)+"%, "+Math.round(this.lightness*100)+"%)"}toHslStringDecimal(){return"hsl("+this.hue+", "+this.sat+", "+this.lightness+")"}toHslaString(){return"hsla("+this.hue+", "+Math.round(this.sat*100)+"%, "+Math.round(this.lightness*100)+"%, "+this.opacity+")"}toCmykString(){return"cmyk("+Math.round(this.cyan*100)+"%, "+Math.round(this.magenta*100)+"%, "+Math.round(this.yellow*100)+"%, "+Math.round(this.black*100)+"%)"}toCmykStringDecimal(){return"cmyk("+this.cyan+", "+this.magenta+", "+this.yellow+", "+this.black+")"}toNcolString(){return this.ncol+", "+Math.round(this.whiteness*100)+"%, "+Math.round(this.blackness*100)+"%"}toNcolStringDecimal(){return this.ncol+", "+this.whiteness+", "+this.blackness}toNcolaString(){return this.ncol+", "+Math.round(this.whiteness*100)+"%, "+Math.round(this.blackness*100)+"%, "+this.opacity}toName(){let e,t,i,r=s.getColorArr("hexs");for(let n=0;n<r.length;n++)if(e=parseInt(r[n].substr(0,2),16),t=parseInt(r[n].substr(2,2),16),i=parseInt(r[n].substr(4,2),16),this.red==e&&this.green==t&&this.blue==i)return s.getColorArr("names")[n];return null}toHexString(){let e=s.toHex(this.red),t=s.toHex(this.green),i=s.toHex(this.blue);return"#"+e+t+i}toNameOrHexString(){let e=this.toName();return e||(e=this.toHexString()),e}toRgb(){return{r:this.red,g:this.green,b:this.blue,a:this.opacity}}toHsl(){return{h:this.hue,s:this.sat,l:this.lightness,a:this.opacity}}toHwb(){return{h:this.hue,w:this.whiteness,b:this.blackness,a:this.opacity}}toCmyk(){return{c:this.cyan,m:this.magenta,y:this.yellow,k:this.black,a:this.opacity}}toNcol(){return{ncol:this.ncol,w:this.whiteness,b:this.blackness,a:this.opacity}}isDark(e){let t=e||128;return(this.red*299+this.green*587+this.blue*114)/1e3<t}saturate(e){let t,i,r;t=e/100||.1,this.sat+=t,this.sat>1&&(this.sat=1),i=s.hslToRgb(this.hue,this.sat,this.lightness),r=s.colorObject(i,this.opacity,this.hue,this.sat),this.attachValues(r)}desaturate(e){let t,i,r;t=e/100||.1,this.sat-=t,this.sat<0&&(this.sat=0),i=s.hslToRgb(this.hue,this.sat,this.lightness),r=s.colorObject(i,this.opacity,this.hue,this.sat),this.attachValues(r)}lighter(e){let t,i,r;t=e/100||.1,this.lightness+=t,this.lightness>1&&(this.lightness=1),i=s.hslToRgb(this.hue,this.sat,this.lightness),r=s.colorObject(i,this.opacity,this.hue,this.sat),this.attachValues(r)}darker(e){let t,i,r;t=e/100||.1,this.lightness-=t,this.lightness<0&&(this.lightness=0),i=s.hslToRgb(this.hue,this.sat,this.lightness),r=s.colorObject(i,this.opacity,this.hue,this.sat),this.attachValues(r)}attachValues(e){this.red=e.red,this.green=e.green,this.blue=e.blue,this.hue=e.hue,this.sat=e.sat,this.lightness=e.lightness,this.whiteness=e.whiteness,this.blackness=e.blackness,this.cyan=e.cyan,this.magenta=e.magenta,this.yellow=e.yellow,this.black=e.black,this.ncol=e.ncol,this.opacity=e.opacity,this.valid=e.valid}static toColorObject(e){let t,i,r,n=[],o,a,l,c,h,d,p,g,m=[],f=[];if(e=s.w3trim(e.toLowerCase()),t=e.substr(0,1).toUpperCase(),i=e.substr(1),h=1,(t=="R"||t=="Y"||t=="G"||t=="C"||t=="B"||t=="M"||t=="W")&&!isNaN(i)&&(e.length==6&&e.indexOf(",")==-1||(e="ncol("+e+")")),e.length!=3&&e.length!=6&&!isNaN(e)&&(e="ncol("+e+")"),e.indexOf(",")>0&&e.indexOf("(")==-1&&(e="ncol("+e+")"),e.substr(0,3)=="rgb"||e.substr(0,3)=="hsl"||e.substr(0,3)=="hwb"||e.substr(0,4)=="ncol"||e.substr(0,4)=="cmyk"){if(e.substr(0,4)=="ncol"?(e.split(",").length==4&&e.indexOf("ncola")==-1&&(e=e.replace("ncol","ncola")),r="ncol",e=e.substr(4)):e.substr(0,4)=="cmyk"?(r="cmyk",e=e.substr(4)):(r=e.substr(0,3),e=e.substr(3)),o=3,l=!1,e.substr(0,1).toLowerCase()=="a"?(o=4,l=!0,e=e.substr(1)):r=="cmyk"&&(o=4,e.split(",").length==5&&(o=5,l=!0)),e=e.replace("(",""),e=e.replace(")",""),n=e.split(","),r=="rgb"){if(n.length!=o)return new s;for(a=0;a<o;a++){if((n[a]==""||n[a]==" ")&&(n[a]="0"),n[a].indexOf("%")>-1&&(n[a]=n[a].replace("%",""),n[a]=Number(n[a]/100),a<3&&(n[a]=Math.round(n[a]*255))),isNaN(n[a]))return new s;parseInt(n[a])>255&&(n[a]=255),a<3&&(n[a]=parseInt(n[a])),a==3&&Number(n[a])>1&&(n[a]=1)}g={r:n[0],g:n[1],b:n[2]},l==!0&&(h=Number(n[3]))}if(r=="hsl"||r=="hwb"||r=="ncol"){for(;n.length<o;)n.push("0");for((r=="hsl"||r=="hwb")&&parseInt(n[0])>=360&&(n[0]=0),a=1;a<o;a++){if(n[a].indexOf("%")>-1){if(n[a]=n[a].replace("%",""),n[a]=Number(n[a]),isNaN(n[a]))return new s;n[a]=n[a]/100}else n[a]=Number(n[a]);Number(n[a])>1&&(n[a]=1),Number(n[a])<0&&(n[a]=0)}r=="hsl"&&(g=s.hslToRgb(n[0],n[1],n[2]),d=Number(n[0]),p=Number(n[1])),r=="hwb"&&(g=s.hwbToRgb(n[0],n[1],n[2])),r=="ncol"&&(g=s.ncolToRgb(n[0],n[1],n[2])),l==!0&&(h=Number(n[3]))}if(r=="cmyk"){for(;n.length<o;)n.push("0");for(a=0;a<o;a++){if(n[a].indexOf("%")>-1){if(n[a]=n[a].replace("%",""),n[a]=Number(n[a]),isNaN(n[a]))return new s;n[a]=n[a]/100}else n[a]=Number(n[a]);Number(n[a])>1&&(n[a]=1),Number(n[a])<0&&(n[a]=0)}g=s.cmykToRgb(n[0],n[1],n[2],n[3]),l==!0&&(h=Number(n[4]))}}else if(e.substr(0,3)=="ncs")g=s.ncsToRgb(e);else{for(c=!1,m=s.getColorArr("names"),a=0;a<m.length;a++)if(e.toLowerCase()==m[a].toLowerCase()){f=s.getColorArr("hexs"),c=!0,g={r:parseInt(f[a].substr(0,2),16),g:parseInt(f[a].substr(2,2),16),b:parseInt(f[a].substr(4,2),16)};break}if(c==!1){for(e=e.replace("#",""),e.length==3&&(e=e.substr(0,1)+e.substr(0,1)+e.substr(1,1)+e.substr(1,1)+e.substr(2,1)+e.substr(2,1)),a=0;a<e.length;a++)if(!s.isHex(e.substr(a,1)))return new s;for(n[0]=parseInt(e.substr(0,2),16),n[1]=parseInt(e.substr(2,2),16),n[2]=parseInt(e.substr(4,2),16),a=0;a<3;a++)if(isNaN(n[a]))return new s;g={r:n[0],g:n[1],b:n[2]}}}return s.colorObject(g,h,d,p)}static colorObject(e,t,i,r){let n,o,a,l,c,h,d;return e?(t===null&&(t=1),n=s.rgbToHsl(e.r,e.g,e.b),o=s.rgbToHwb(e.r,e.g,e.b),a=s.rgbToCmyk(e.r,e.g,e.b),h=i||n.h,d=r||n.s,l=s.hueToNcol(h),c={red:e.r,green:e.g,blue:e.b,hue:h,sat:d,lightness:n.l,whiteness:o.w,blackness:o.b,cyan:a.c,magenta:a.m,yellow:a.y,black:a.k,ncol:l,opacity:t,valid:!0},c=s.roundDecimals(c),Object.assign(new s,c)):new s}static getColorArr(e){return e=="names"?["AliceBlue","AntiqueWhite","Aqua","Aquamarine","Azure","Beige","Bisque","Black","BlanchedAlmond","Blue","BlueViolet","Brown","BurlyWood","CadetBlue","Chartreuse","Chocolate","Coral","CornflowerBlue","Cornsilk","Crimson","Cyan","DarkBlue","DarkCyan","DarkGoldenRod","DarkGray","DarkGrey","DarkGreen","DarkKhaki","DarkMagenta","DarkOliveGreen","DarkOrange","DarkOrchid","DarkRed","DarkSalmon","DarkSeaGreen","DarkSlateBlue","DarkSlateGray","DarkSlateGrey","DarkTurquoise","DarkViolet","DeepPink","DeepSkyBlue","DimGray","DimGrey","DodgerBlue","FireBrick","FloralWhite","ForestGreen","Fuchsia","Gainsboro","GhostWhite","Gold","GoldenRod","Gray","Grey","Green","GreenYellow","HoneyDew","HotPink","IndianRed","Indigo","Ivory","Khaki","Lavender","LavenderBlush","LawnGreen","LemonChiffon","LightBlue","LightCoral","LightCyan","LightGoldenRodYellow","LightGray","LightGrey","LightGreen","LightPink","LightSalmon","LightSeaGreen","LightSkyBlue","LightSlateGray","LightSlateGrey","LightSteelBlue","LightYellow","Lime","LimeGreen","Linen","Magenta","Maroon","MediumAquaMarine","MediumBlue","MediumOrchid","MediumPurple","MediumSeaGreen","MediumSlateBlue","MediumSpringGreen","MediumTurquoise","MediumVioletRed","MidnightBlue","MintCream","MistyRose","Moccasin","NavajoWhite","Navy","OldLace","Olive","OliveDrab","Orange","OrangeRed","Orchid","PaleGoldenRod","PaleGreen","PaleTurquoise","PaleVioletRed","PapayaWhip","PeachPuff","Peru","Pink","Plum","PowderBlue","Purple","RebeccaPurple","Red","RosyBrown","RoyalBlue","SaddleBrown","Salmon","SandyBrown","SeaGreen","SeaShell","Sienna","Silver","SkyBlue","SlateBlue","SlateGray","SlateGrey","Snow","SpringGreen","SteelBlue","Tan","Teal","Thistle","Tomato","Turquoise","Violet","Wheat","White","WhiteSmoke","Yellow","YellowGreen"]:e=="hexs"?["f0f8ff","faebd7","00ffff","7fffd4","f0ffff","f5f5dc","ffe4c4","000000","ffebcd","0000ff","8a2be2","a52a2a","deb887","5f9ea0","7fff00","d2691e","ff7f50","6495ed","fff8dc","dc143c","00ffff","00008b","008b8b","b8860b","a9a9a9","a9a9a9","006400","bdb76b","8b008b","556b2f","ff8c00","9932cc","8b0000","e9967a","8fbc8f","483d8b","2f4f4f","2f4f4f","00ced1","9400d3","ff1493","00bfff","696969","696969","1e90ff","b22222","fffaf0","228b22","ff00ff","dcdcdc","f8f8ff","ffd700","daa520","808080","808080","008000","adff2f","f0fff0","ff69b4","cd5c5c","4b0082","fffff0","f0e68c","e6e6fa","fff0f5","7cfc00","fffacd","add8e6","f08080","e0ffff","fafad2","d3d3d3","d3d3d3","90ee90","ffb6c1","ffa07a","20b2aa","87cefa","778899","778899","b0c4de","ffffe0","00ff00","32cd32","faf0e6","ff00ff","800000","66cdaa","0000cd","ba55d3","9370db","3cb371","7b68ee","00fa9a","48d1cc","c71585","191970","f5fffa","ffe4e1","ffe4b5","ffdead","000080","fdf5e6","808000","6b8e23","ffa500","ff4500","da70d6","eee8aa","98fb98","afeeee","db7093","ffefd5","ffdab9","cd853f","ffc0cb","dda0dd","b0e0e6","800080","663399","ff0000","bc8f8f","4169e1","8b4513","fa8072","f4a460","2e8b57","fff5ee","a0522d","c0c0c0","87ceeb","6a5acd","708090","708090","fffafa","00ff7f","4682b4","d2b48c","008080","d8bfd8","ff6347","40e0d0","ee82ee","f5deb3","ffffff","f5f5f5","ffff00","9acd32"]:null}static roundDecimals(e){return e.red=Number(e.red.toFixed(0)),e.green=Number(e.green.toFixed(0)),e.blue=Number(e.blue.toFixed(0)),e.hue=Number(e.hue.toFixed(0)),e.sat=Number(e.sat.toFixed(2)),e.lightness=Number(e.lightness.toFixed(2)),e.whiteness=Number(e.whiteness.toFixed(2)),e.blackness=Number(e.blackness.toFixed(2)),e.cyan=Number(e.cyan.toFixed(2)),e.magenta=Number(e.magenta.toFixed(2)),e.yellow=Number(e.yellow.toFixed(2)),e.black=Number(e.black.toFixed(2)),e.ncol=e.ncol.substr(0,1)+Math.round(Number(e.ncol.substr(1))),e.opacity=Number(e.opacity.toFixed(2)),e}static hslToRgb(e,t,i){let r,n,o,a,l;return e=e/60,i<=.5?n=i*(t+1):n=i+t-i*t,r=i*2-n,o=s.hueToRgb(r,n,e+2)*255,a=s.hueToRgb(r,n,e)*255,l=s.hueToRgb(r,n,e-2)*255,{r:o,g:a,b:l}}static hueToRgb(e,t,i){return i<0&&(i+=6),i>=6&&(i-=6),i<1?(t-e)*i+e:i<3?t:i<4?(t-e)*(4-i)+e:e}static hwbToRgb(e,t,i){let r,n,o=[],a;for(n=s.hslToRgb(e,1,.5),o[0]=n.r/255,o[1]=n.g/255,o[2]=n.b/255,a=t+i,a>1&&(t=Number((t/a).toFixed(2)),i=Number((i/a).toFixed(2))),r=0;r<3;r++)o[r]*=1-t-i,o[r]+=t,o[r]=Number(o[r]*255);return{r:o[0],g:o[1],b:o[2]}}static cmykToRgb(e,t,i,r){let n,o,a;return n=255-Math.min(1,e*(1-r)+r)*255,o=255-Math.min(1,t*(1-r)+r)*255,a=255-Math.min(1,i*(1-r)+r)*255,{r:n,g:o,b:a}}static ncolToRgb(e,t,i){let r,n,o;if(o=e,isNaN(e.substr(0,1))){if(r=e.substr(0,1).toUpperCase(),n=e.substr(1),n==""&&(n=0),n=Number(n),isNaN(n))return!1;r=="R"&&(o=0+n*.6),r=="Y"&&(o=60+n*.6),r=="G"&&(o=120+n*.6),r=="C"&&(o=180+n*.6),r=="B"&&(o=240+n*.6),r=="M"&&(o=300+n*.6),r=="W"&&(o=0,t=1-n/100,i=n/100)}return s.hwbToRgb(o,t,i)}static hueToNcol(e){for(;e>=360;)e=e-360;return e<60?"R"+e/.6:e<120?"Y"+(e-60)/.6:e<180?"G"+(e-120)/.6:e<240?"C"+(e-180)/.6:e<300?"B"+(e-240)/.6:e<360?"M"+(e-300)/.6:null}static ncsToRgb(e){let t,i,r,n,o,a,l,c,h,d,p,g,m,f,b,_,C,k,P;return e=s.w3trim(e).toUpperCase(),e=e.replace("(",""),e=e.replace(")",""),e=e.replace("NCS","NCS "),e=e.replace(/ /g," "),e.indexOf("NCS")==-1&&(e="NCS "+e),e=e.match(/^(?:NCS|NCS\sS)\s(\d{2})(\d{2})-(N|[A-Z])(\d{2})?([A-Z])?$/),e===null||(t=parseInt(e[1],10),i=parseInt(e[2],10),r=e[3],r!="N"&&r!="Y"&&r!="R"&&r!="B"&&r!="G")?null:(n=parseInt(e[4],10)||0,r!=="N"?(o=1.05*t-5.25,a=i,r==="Y"&&n<=60?h=1:r==="Y"&&n>60||r==="R"&&n<=80?(r==="Y"?l=n-60:l=n+40,h=(Math.sqrt(14884-Math.pow(l,2))-22)/100):r==="R"&&n>80||r==="B"?h=0:r==="G"&&(l=n-170,h=(Math.sqrt(33800-Math.pow(l,2))-70)/100),r==="Y"&&n<=80?c=0:r==="Y"&&n>80||r==="R"&&n<=60?(r==="Y"?l=n-80+20.5:l=n+20+20.5,c=(104-Math.sqrt(11236-Math.pow(l,2)))/100):r==="R"&&n>60||r==="B"&&n<=80?(r==="R"?l=n-60-60:l=n+40-60,c=(Math.sqrt(1e4-Math.pow(l,2))-10)/100):r==="B"&&n>80||r==="G"&&n<=40?(r==="B"?l=n-80-131:l=n+20-131,c=(122-Math.sqrt(19881-Math.pow(l,2)))/100):r==="G"&&n>40&&(c=0),r==="Y"?p=(85-17/20*n)/100:r==="R"&&n<=60?p=0:r==="R"&&n>60?(l=n-60+35,p=(67.5-Math.sqrt(5776-Math.pow(l,2)))/100):r==="B"&&n<=60?(l=1*n-68.5,p=(6.5+Math.sqrt(7044.5-Math.pow(l,2)))/100):r==="B"&&n>60||r==="G"&&n<=60?p=.9:r==="G"&&n>60&&(l=n-60,p=(90-1/8*l)/100),l=(h+p+c)/3,d=(l-h)*(100-a)/100+h,g=(l-p)*(100-a)/100+p,m=(l-c)*(100-a)/100+c,d>g&&d>m?f=d:g>d&&g>m?f=g:m>d&&m>g?f=m:f=(d+g+m)/3,b=1/f,C=parseInt(d*b*(100-o)/100*255,10),k=parseInt(g*b*(100-o)/100*255,10),P=parseInt(m*b*(100-o)/100*255,10),C>255&&(C=255),k>255&&(k=255),P>255&&(P=255),C<0&&(C=0),k<0&&(k=0),P<0&&(P=0)):(_=parseInt((1-t/100)*255,10),_>255&&(_=255),_<0&&(_=0),C=_,k=_,P=_),{r:C,g:k,b:P})}static rgbToHsl(e,t,i){let r,n,o,a,l,c,h,d=[];for(d[0]=e/255,d[1]=t/255,d[2]=i/255,r=d[0],n=d[0],c=0,o=0;o<d.length-1;o++)d[o+1]<=r&&(r=d[o+1]),d[o+1]>=n&&(n=d[o+1],c=o+1);return c==0&&(h=(d[1]-d[2])/(n-r)),c==1&&(h=2+(d[2]-d[0])/(n-r)),c==2&&(h=4+(d[0]-d[1])/(n-r)),isNaN(h)&&(h=0),h=h*60,h<0&&(h=h+360),a=(r+n)/2,r==n?l=0:a<.5?l=(n-r)/(n+r):l=(n-r)/(2-n-r),l=l,{h,s:l,l:a}}static rgbToHwb(e,t,i){let r,n,o;e=e/255,t=t/255,i=i/255;let a=Math.max(e,t,i),l=Math.min(e,t,i),c=a-l;return c==0?r=0:e==a?r=(t-i)/c%6*360:t==a?r=((i-e)/c+2)%6*360:r=((e-t)/c+4)%6*360,n=l,o=1-a,{h:r,w:n,b:o}}static rgbToCmyk(e,t,i){let r,n,o,a;return e=e/255,t=t/255,i=i/255,a=1-Math.max(e,t,i),a==1?(r=0,n=0,o=0):(r=(1-e-a)/(1-a),n=(1-t-a)/(1-a),o=(1-i-a)/(1-a)),{c:r,m:n,y:o,k:a}}static toHex(e){let t=e.toString(16);for(;t.length<2;)t="0"+t;return t}static w3trim(e){return e.replace(/^\s+|\s+$/g,"")}static isHex(e){return"0123456789ABCDEFabcdef".indexOf(e)>-1}}});var xr,jo=u(()=>{"use strict";ve();Wo();xr=class extends Q{constructor(e){super(e);let t=document.createElement("input");t.type="color",e.readonly&&(t.readOnly=!0),t.onchange=async i=>{let r=Bt.toColorObject(t.value);await this.property.service.removePreviewValue?.(this.designItems,this.property),this._valueChanged(r.toNameOrHexString())},t.oninput=async i=>{let r=Bt.toColorObject(t.value);await this.property.service.previewValue?.(this.designItems,this.property,r.toNameOrHexString())},this.element=t}refreshValue(e,t){if(!t)this.element.value="#000000";else{let i=Bt.toColorObject(t);this.element.value=i.toHexString()}}}});var _r,Uo=u(()=>{"use strict";ve();_r=class extends Q{constructor(e){super(e);let t=document.createElement("input");t.type="datetime-local",e.readonly&&(t.readOnly=!0),t.onchange=i=>this._valueChanged(t.value),this.element=t}refreshValue(e,t){t?this.element.value=t:this.element.value=null}}});import{html as Vd}from"@node-projects/base-custom-webcomponent";var br,Ko=u(()=>{"use strict";ve();br=class s extends Q{static template=Vd`
|
|
182
182
|
<div style="display: flex;">
|
|
183
183
|
<input id="input" type="text">
|
|
184
184
|
<button style="width: 30px;">...</button>
|
|
@@ -213,7 +213,7 @@ var vd=Object.defineProperty;var u=(s,e)=>()=>(s&&(e=s(s=0)),e);var xd=(s,e)=>{f
|
|
|
213
213
|
<div id="header" style="display: none"><span id="property"></span><span id="vhd">: <span id="value"></span></span></div>
|
|
214
214
|
<div part="container" class="container"><slot id="slot"></slot></div>
|
|
215
215
|
</div>
|
|
216
|
-
`;static properties={value:String,property:String,unsetValue:String,noValueInHeader:Boolean};constructor(){super(),this._restoreCachedInititalValues()}_value;get value(){return this._value}set value(e){this._value=e,this._updateValue()}property;unsetValue;noValueInHeader;_updateValue(){this.value?(this._getDomElement("value").innerText=this.value,this._getDomElement("value").classList.add("value-set")):this._getDomElement("value").classList.remove("value-set");let e=this._getDomElement("slot");for(let t of e.assignedElements())t.dataset.value==this.value?t.style.background="cornflowerblue":t.style.background=""}ready(){this._parseAttributesToProperties(),this.property&&(this._getDomElement("header").style.display="block"),this.noValueInHeader&&(this._getDomElement("vhd").style.display="none");let e=this._getDomElement("slot");e.onclick=t=>{let i=t.composedPath();for(let r of e.assignedElements())if(i.indexOf(r)>=0){let n=this._value;this.value=r.dataset.value;let o=new CustomEvent("value-changed",{detail:{newValue:this._value,oldValue:n}});this.dispatchEvent(o)}},this._getDomElement("property").innerText=this.property??"",this._getDomElement("value").innerText=this.unsetValue??"",this._updateValue()}};customElements.define("node-projects-image-button-list-selector",wi)});var Er,Ct,qo,dh,v,$=u(()=>{"use strict";Er="text/json/elementdefintion",Ct="text/json/bindingobject",qo="text/json/propertydrop",dh=new URL(import.meta.url),v=dh.origin+dh.pathname.split("/").slice(0,-1).join("/")+"/../assets/"});var Ar,Qo=u(()=>{"use strict";ve();hh();
|
|
216
|
+
`;static properties={value:String,property:String,unsetValue:String,noValueInHeader:Boolean};constructor(){super(),this._restoreCachedInititalValues()}_value;get value(){return this._value}set value(e){this._value=e,this._updateValue()}property;unsetValue;noValueInHeader;_updateValue(){this.value?(this._getDomElement("value").innerText=this.value,this._getDomElement("value").classList.add("value-set")):this._getDomElement("value").classList.remove("value-set");let e=this._getDomElement("slot");for(let t of e.assignedElements())t.dataset.value==this.value?t.style.background="cornflowerblue":t.style.background=""}ready(){this._parseAttributesToProperties(),this.property&&(this._getDomElement("header").style.display="block"),this.noValueInHeader&&(this._getDomElement("vhd").style.display="none");let e=this._getDomElement("slot");e.onclick=t=>{let i=t.composedPath();for(let r of e.assignedElements())if(i.indexOf(r)>=0){let n=this._value;this.value=r.dataset.value;let o=new CustomEvent("value-changed",{detail:{newValue:this._value,oldValue:n}});this.dispatchEvent(o)}},this._getDomElement("property").innerText=this.property??"",this._getDomElement("value").innerText=this.unsetValue??"",this._updateValue()}};customElements.define("node-projects-image-button-list-selector",wi)});var Er,Ct,qo,dh,v,$=u(()=>{"use strict";Er="text/json/elementdefintion",Ct="text/json/bindingobject",qo="text/json/propertydrop",dh=new URL(import.meta.url),v=dh.origin+dh.pathname.split("/").slice(0,-1).join("/")+"/../assets/"});var Ar,Qo=u(()=>{"use strict";ve();hh();ue();$();Ar=class extends Q{constructor(e){super(e);let t=new wi;t.property=e.name,t.unsetValue=e.defaultValue;let i=L.camelToDashCase(e.name);if(e.type=="enum")for(let r of e.enumValues){let n=document.createElement("button");n.dataset.value=r[1];let o=document.createElement("img");o.title=r[1],o.src=v+"images/chromeDevtools/"+i+"-"+r[1]+"-icon.svg",n.appendChild(o),t.appendChild(n)}else for(let r of e.values){let n=document.createElement("button");n.dataset.value=r;let o=document.createElement("img");o.title=r,o.src=v+"images/chromeDevtools/"+i+"-"+r+"-icon.svg",n.appendChild(o),t.appendChild(n)}t.addEventListener("value-changed",r=>this._valueChanged(t.value)),this.element=t}refreshValue(e,t){this.element.value=t}}});import{BaseCustomWebComponentConstructorAppend as jd,css as Ud,html as Kd,TypedEvent as Pr}from"@node-projects/base-custom-webcomponent";var Si,ph=u(()=>{"use strict";Si=class extends jd{static style=Ud`
|
|
217
217
|
:host {
|
|
218
218
|
margin: 4px;
|
|
219
219
|
margin-left: auto;
|
|
@@ -268,12 +268,12 @@ var vd=Object.defineProperty;var u=(s,e)=>()=>(s&&(e=s(s=0)),e);var xd=(s,e)=>{f
|
|
|
268
268
|
<input id="bottom">
|
|
269
269
|
<div id="rect"></div>
|
|
270
270
|
</div>
|
|
271
|
-
`;_leftInput;_topInput;_rightInput;_bottomInput;_valueLeft;get valueLeft(){return this._valueLeft}set valueLeft(e){let t=this._valueLeft;this._valueLeft=e,t!==e&&(this._updateValue(),this.valueLeftChanged.emit({newValue:e,oldValue:t}))}valueLeftChanged=new Pr;_valueTop;get valueTop(){return this._valueTop}set valueTop(e){let t=this._valueTop;this._valueTop=e,t!==e&&(this._updateValue(),this.valueTopChanged.emit({newValue:e,oldValue:t}))}valueTopChanged=new Pr;_valueRight;get valueRight(){return this._valueRight}set valueRight(e){let t=this._valueRight;this._valueRight=e,t!==e&&(this._updateValue(),this.valueRightChanged.emit({newValue:e,oldValue:t}))}valueRightChanged=new Pr;_valueBottom;get valueBottom(){return this._valueBottom}set valueBottom(e){let t=this._valueBottom;this._valueBottom=e,t!==e&&(this._updateValue(),this.valueBottomChanged.emit({newValue:e,oldValue:t}))}valueBottomChanged=new Pr;property;unsetValue;_updateValue(){this._leftInput.value=this.valueLeft,this._topInput.value=this.valueTop,this._rightInput.value=this.valueRight,this._bottomInput.value=this._valueBottom}ready(){this._parseAttributesToProperties(),this._leftInput=this._getDomElement("left"),this._topInput=this._getDomElement("top"),this._rightInput=this._getDomElement("right"),this._bottomInput=this._getDomElement("bottom"),this._leftInput.onkeyup=e=>{e.key==="Enter"&&(this._valueLeft=this._leftInput.value)},this._topInput.onkeyup=e=>{e.key==="Enter"&&(this._valueTop=this._topInput.value)},this._rightInput.onkeyup=e=>{e.key==="Enter"&&(this._valueRight=this._rightInput.value)},this._bottomInput.onkeyup=e=>{e.key==="Enter"&&(this._valueBottom=this._bottomInput.value)},this._leftInput.onblur=e=>this._valueLeft=this._leftInput.value,this._topInput.onblur=e=>this._valueTop=this._topInput.value,this._rightInput.onblur=e=>this._valueRight=this._rightInput.value,this._bottomInput.onblur=e=>this._valueBottom=this._bottomInput.value,this._updateValue()}};customElements.define("node-projects-thickness-editor",Si)});var
|
|
272
|
-
`||o===" "||o==="\r"||o==="\f")},_skipOptionalSpaces:function(){for(;this._currentIndex<this._endIndex&&this._isCurrentSpace();)this._currentIndex+=1;return this._currentIndex<this._endIndex},_skipOptionalSpacesOrDelimiter:function(){return this._currentIndex<this._endIndex&&!this._isCurrentSpace()&&this._string[this._currentIndex]!==","?!1:(this._skipOptionalSpaces()&&this._currentIndex<this._endIndex&&this._string[this._currentIndex]===","&&(this._currentIndex+=1,this._skipOptionalSpaces()),this._currentIndex<this._endIndex)},_parseNumber:function(){var o=0,a=0,l=1,c=0,h=1,d=1,p=this._currentIndex;if(this._skipOptionalSpaces(),this._currentIndex<this._endIndex&&this._string[this._currentIndex]==="+"?this._currentIndex+=1:this._currentIndex<this._endIndex&&this._string[this._currentIndex]==="-"&&(this._currentIndex+=1,h=-1),this._currentIndex===this._endIndex||(this._string[this._currentIndex]<"0"||this._string[this._currentIndex]>"9")&&this._string[this._currentIndex]!==".")return null;for(var g=this._currentIndex;this._currentIndex<this._endIndex&&this._string[this._currentIndex]>="0"&&this._string[this._currentIndex]<="9";)this._currentIndex+=1;if(this._currentIndex!==g)for(var m=this._currentIndex-1,f=1;m>=g;)a+=f*(this._string[m]-"0"),m-=1,f*=10;if(this._currentIndex<this._endIndex&&this._string[this._currentIndex]==="."){if(this._currentIndex+=1,this._currentIndex>=this._endIndex||this._string[this._currentIndex]<"0"||this._string[this._currentIndex]>"9")return null;for(;this._currentIndex<this._endIndex&&this._string[this._currentIndex]>="0"&&this._string[this._currentIndex]<="9";)l*=10,c+=(this._string.charAt(this._currentIndex)-"0")/l,this._currentIndex+=1}if(this._currentIndex!==p&&this._currentIndex+1<this._endIndex&&(this._string[this._currentIndex]==="e"||this._string[this._currentIndex]==="E")&&this._string[this._currentIndex+1]!=="x"&&this._string[this._currentIndex+1]!=="m"){if(this._currentIndex+=1,this._string[this._currentIndex]==="+"?this._currentIndex+=1:this._string[this._currentIndex]==="-"&&(this._currentIndex+=1,d=-1),this._currentIndex>=this._endIndex||this._string[this._currentIndex]<"0"||this._string[this._currentIndex]>"9")return null;for(;this._currentIndex<this._endIndex&&this._string[this._currentIndex]>="0"&&this._string[this._currentIndex]<="9";)o*=10,o+=this._string[this._currentIndex]-"0",this._currentIndex+=1}var b=a+c;return b*=h,o&&(b*=Math.pow(10,d*o)),p===this._currentIndex?null:(this._skipOptionalSpacesOrDelimiter(),b)},_parseArcFlag:function(){if(this._currentIndex>=this._endIndex)return null;var o=null,a=this._string[this._currentIndex];if(this._currentIndex+=1,a==="0")o=0;else if(a==="1")o=1;else return null;return this._skipOptionalSpacesOrDelimiter(),o}};var t=function(o){if(!o||o.length===0)return[];var a=new e(o),l=[];if(a.initialCommandIsMoveTo())for(;a.hasMoreData();){var c=a.parseSegment();if(c===null)break;l.push(c)}return l},i=function(o,a,l,c,h,d,p,g,m,f){var b=function(yt){return Math.PI*yt/180},_=function(yt,ci,vt){var gd=yt*Math.cos(vt)-ci*Math.sin(vt),yd=yt*Math.sin(vt)+ci*Math.cos(vt);return{x:gd,y:yd}},C=b(p),I=[],P,D,A,L;if(f)P=f[0],D=f[1],A=f[2],L=f[3];else{var H=_(o,a,-C);o=H.x,a=H.y;var ae=_(l,c,-C);l=ae.x,c=ae.y;var B=(o-l)/2,xe=(a-c)/2,Re=B*B/(h*h)+xe*xe/(d*d);Re>1&&(Re=Math.sqrt(Re),h=Re*h,d=Re*d);var gt;g===m?gt=-1:gt=1;var Ke=h*h,Tt=d*d,ad=Ke*Tt-Ke*xe*xe-Tt*B*B,ld=Ke*xe*xe+Tt*B*B,Yi=gt*Math.sqrt(Math.abs(ad/ld));A=Yi*h*xe/d+(o+l)/2,L=Yi*-d*B/h+(a+c)/2,P=Math.asin(parseFloat(((a-L)/d).toFixed(9))),D=Math.asin(parseFloat(((c-L)/d).toFixed(9))),o<A&&(P=Math.PI-P),l<A&&(D=Math.PI-D),P<0&&(P=Math.PI*2+P),D<0&&(D=Math.PI*2+D),m&&P>D&&(P=P-Math.PI*2),!m&&D>P&&(D=D-Math.PI*2)}var xo=D-P;if(Math.abs(xo)>Math.PI*120/180){var cd=D,hd=l,dd=c;m&&D>P?D=P+Math.PI*120/180*1:D=P+Math.PI*120/180*-1,l=A+h*Math.cos(D),c=L+d*Math.sin(D),I=i(l,c,hd,dd,h,d,p,0,m,[D,cd,A,L])}xo=D-P;var pd=Math.cos(P),md=Math.sin(P),ud=Math.cos(D),fd=Math.sin(D),Yc=Math.tan(xo/4),Xc=4/3*h*Yc,Zc=4/3*d*Yc,$c=[o,a],Mt=[o+Xc*md,a-Zc*pd],qc=[l+Xc*fd,c-Zc*ud],Qc=[l,c];if(Mt[0]=2*$c[0]-Mt[0],Mt[1]=2*$c[1]-Mt[1],f)return[Mt,qc,Qc].concat(I);I=[Mt,qc,Qc].concat(I);for(var Jc=[],rt=0;rt<I.length;rt+=3){let yt=_(I[rt][0],I[rt][1],C),ci=_(I[rt+1][0],I[rt+1][1],C),vt=_(I[rt+2][0],I[rt+2][1],C);Jc.push([yt.x,yt.y,ci.x,ci.y,vt.x,vt.y])}return Jc},r=function(o){var a=[],l=null,c=null,h=null,d=null;return o.forEach(function(p){var g=p.type;if(g==="M"){var m=p.values[0],f=p.values[1];a.push({type:"M",values:[m,f]}),h=m,d=f,l=m,c=f}else if(g==="m"){var m=l+p.values[0],f=c+p.values[1];a.push({type:"M",values:[m,f]}),h=m,d=f,l=m,c=f}else if(g==="L"){var m=p.values[0],f=p.values[1];a.push({type:"L",values:[m,f]}),l=m,c=f}else if(g==="l"){var m=l+p.values[0],f=c+p.values[1];a.push({type:"L",values:[m,f]}),l=m,c=f}else if(g==="C"){var b=p.values[0],_=p.values[1],C=p.values[2],I=p.values[3],m=p.values[4],f=p.values[5];a.push({type:"C",values:[b,_,C,I,m,f]}),l=m,c=f}else if(g==="c"){var b=l+p.values[0],_=c+p.values[1],C=l+p.values[2],I=c+p.values[3],m=l+p.values[4],f=c+p.values[5];a.push({type:"C",values:[b,_,C,I,m,f]}),l=m,c=f}else if(g==="Q"){var b=p.values[0],_=p.values[1],m=p.values[2],f=p.values[3];a.push({type:"Q",values:[b,_,m,f]}),l=m,c=f}else if(g==="q"){var b=l+p.values[0],_=c+p.values[1],m=l+p.values[2],f=c+p.values[3];a.push({type:"Q",values:[b,_,m,f]}),l=m,c=f}else if(g==="A"){var m=p.values[5],f=p.values[6];a.push({type:"A",values:[p.values[0],p.values[1],p.values[2],p.values[3],p.values[4],m,f]}),l=m,c=f}else if(g==="a"){var m=l+p.values[5],f=c+p.values[6];a.push({type:"A",values:[p.values[0],p.values[1],p.values[2],p.values[3],p.values[4],m,f]}),l=m,c=f}else if(g==="H"){var m=p.values[0];a.push({type:"H",values:[m]}),l=m}else if(g==="h"){var m=l+p.values[0];a.push({type:"H",values:[m]}),l=m}else if(g==="V"){var f=p.values[0];a.push({type:"V",values:[f]}),c=f}else if(g==="v"){var f=c+p.values[0];a.push({type:"V",values:[f]}),c=f}else if(g==="S"){var C=p.values[0],I=p.values[1],m=p.values[2],f=p.values[3];a.push({type:"S",values:[C,I,m,f]}),l=m,c=f}else if(g==="s"){var C=l+p.values[0],I=c+p.values[1],m=l+p.values[2],f=c+p.values[3];a.push({type:"S",values:[C,I,m,f]}),l=m,c=f}else if(g==="T"){var m=p.values[0],f=p.values[1];a.push({type:"T",values:[m,f]}),l=m,c=f}else if(g==="t"){var m=l+p.values[0],f=c+p.values[1];a.push({type:"T",values:[m,f]}),l=m,c=f}else(g==="Z"||g==="z")&&(a.push({type:"Z",values:[]}),l=h,c=d)}),a},n=function(o){var a=[],l=null,c=null,h=null,d=null,p=null,g=null,m=null;return o.forEach(function(f){if(f.type==="M"){var b=f.values[0],_=f.values[1];a.push({type:"M",values:[b,_]}),g=b,m=_,d=b,p=_}else if(f.type==="C"){var C=f.values[0],I=f.values[1],P=f.values[2],D=f.values[3],b=f.values[4],_=f.values[5];a.push({type:"C",values:[C,I,P,D,b,_]}),c=P,h=D,d=b,p=_}else if(f.type==="L"){var b=f.values[0],_=f.values[1];a.push({type:"L",values:[b,_]}),d=b,p=_}else if(f.type==="H"){var b=f.values[0];a.push({type:"L",values:[b,p]}),d=b}else if(f.type==="V"){var _=f.values[0];a.push({type:"L",values:[d,_]}),p=_}else if(f.type==="S"){var P=f.values[0],D=f.values[1],b=f.values[2],_=f.values[3],A,L;l==="C"||l==="S"?(A=d+(d-c),L=p+(p-h)):(A=d,L=p),a.push({type:"C",values:[A,L,P,D,b,_]}),c=P,h=D,d=b,p=_}else if(f.type==="T"){var b=f.values[0],_=f.values[1],C,I;l==="Q"||l==="T"?(C=d+(d-c),I=p+(p-h)):(C=d,I=p);var A=d+2*(C-d)/3,L=p+2*(I-p)/3,H=b+2*(C-b)/3,ae=_+2*(I-_)/3;a.push({type:"C",values:[A,L,H,ae,b,_]}),c=C,h=I,d=b,p=_}else if(f.type==="Q"){var C=f.values[0],I=f.values[1],b=f.values[2],_=f.values[3],A=d+2*(C-d)/3,L=p+2*(I-p)/3,H=b+2*(C-b)/3,ae=_+2*(I-_)/3;a.push({type:"C",values:[A,L,H,ae,b,_]}),c=C,h=I,d=b,p=_}else if(f.type==="A"){let Ke=Math.abs(f.values[0]),Tt=Math.abs(f.values[1]);var B=f.values[2],xe=f.values[3],Re=f.values[4],b=f.values[5],_=f.values[6];if(Ke===0||Tt===0)a.push({type:"C",values:[d,p,b,_,b,_]}),d=b,p=_;else if(d!==b||p!==_){var gt=i(d,p,b,_,Ke,Tt,B,xe,Re);gt.forEach(function(Yi){a.push({type:"C",values:Yi})}),d=b,p=_}}else f.type==="Z"&&(a.push(f),d=g,p=m);l=f.type}),a};SVGPathElement.prototype.getPathData=function(o){if(o&&o.normalize){let a;return a=t(this.getAttribute("d")||""),n(r(a))}else return t(this.getAttribute("d")||"")},SVGPathElement.prototype.setPathData=function(o){if(o.length===0)this.removeAttribute("d");else{let a="";for(let l=0,c=o.length;l<c;l+=1){let h=o[l];l>0&&(a+=" "),a+=h.type,h.values&&h.values.length>0&&(a+=" "+h.values.join(" "))}this.setAttribute("d",a)}},SVGRectElement.prototype.getPathData=function(o){var a=this.x.baseVal.value,l=this.y.baseVal.value,c=this.width.baseVal.value,h=this.height.baseVal.value,d=this.hasAttribute("rx")?this.rx.baseVal.value:this.ry.baseVal.value,p=this.hasAttribute("ry")?this.ry.baseVal.value:this.rx.baseVal.value;d>c/2&&(d=c/2),p>h/2&&(p=h/2);var g=[{type:"M",values:[a+d,l]},{type:"H",values:[a+c-d]},{type:"A",values:[d,p,0,0,1,a+c,l+p]},{type:"V",values:[l+h-p]},{type:"A",values:[d,p,0,0,1,a+c-d,l+h]},{type:"H",values:[a+d]},{type:"A",values:[d,p,0,0,1,a,l+h-p]},{type:"V",values:[l+p]},{type:"A",values:[d,p,0,0,1,a+d,l]},{type:"Z",values:[]}];return g=g.filter(function(m){return!(m.type==="A"&&(m.values[0]===0||m.values[1]===0))}),o&&o.normalize===!0&&(g=n(g)),g},SVGCircleElement.prototype.getPathData=function(o){var a=this.cx.baseVal.value,l=this.cy.baseVal.value,c=this.r.baseVal.value,h=[{type:"M",values:[a+c,l]},{type:"A",values:[c,c,0,0,1,a,l+c]},{type:"A",values:[c,c,0,0,1,a-c,l]},{type:"A",values:[c,c,0,0,1,a,l-c]},{type:"A",values:[c,c,0,0,1,a+c,l]},{type:"Z",values:[]}];return o&&o.normalize===!0&&(h=n(h)),h},SVGEllipseElement.prototype.getPathData=function(o){var a=this.cx.baseVal.value,l=this.cy.baseVal.value,c=this.rx.baseVal.value,h=this.ry.baseVal.value,d=[{type:"M",values:[a+c,l]},{type:"A",values:[c,h,0,0,1,a,l+h]},{type:"A",values:[c,h,0,0,1,a-c,l]},{type:"A",values:[c,h,0,0,1,a,l-h]},{type:"A",values:[c,h,0,0,1,a+c,l]},{type:"Z",values:[]}];return o&&o.normalize===!0&&(d=n(d)),d},SVGLineElement.prototype.getPathData=function(){return[{type:"M",values:[this.x1.baseVal.value,this.y1.baseVal.value]},{type:"L",values:[this.x2.baseVal.value,this.y2.baseVal.value]}]},SVGPolylineElement.prototype.getPathData=function(){for(var o=[],a=0;a<this.points.numberOfItems;a+=1){var l=this.points.getItem(a);o.push({type:a===0?"M":"L",values:[l.x,l.y]})}return o},SVGPolygonElement.prototype.getPathData=function(){for(var o=[],a=0;a<this.points.numberOfItems;a+=1){var l=this.points.getItem(a);o.push({type:a===0?"M":"L",values:[l.x,l.y]})}return o.push({type:"Z",values:[]}),o}})()});function j(s){return ah()?s.metaKey:s.ctrlKey}var Ne=u(()=>{"use strict";Pe()});function na(s){let e=[];for(let t of s)t.nodeType===E.TextNode||t.nodeType===E.Comment||e.push(t);return e}var Ve,Ht=u(()=>{"use strict";Te();Mr();be();De();Oe();Ne();Z();te();Ve=class{serviceForContainer(e,t,i){return i!=null&&i.getComputedStyle()?.position=="absolute"?!0:!(t.display==="grid"||t.display==="inline-grid"||t.display==="flex"||t.display==="inline-flex")}isEnterableContainer(e){return!(K.IsSelfClosingElement(e.element.localName)||!e.isRootItem&&e.element.shadowRoot&&e.element.shadowRoot.querySelector("slot")==null)}canEnter(e,t){return!(!this.isEnterableContainer(e)||!t.every(i=>!i.element.contains(e.element)&&i!==e))}canLeave(e,t){return!0}getElementOffset(e,t){return e.instanceServiceContainer.designerCanvas.getNormalizedElementCoordinates(e.element)}calculateTrack(e,t,i,r,n,o){let a=n.x-i.x,l=n.y-i.y;if(!j(e)){if(t.alignOnGrid){let c=Or(o,"position");c.x=c.x%t.gridSize,c.y=c.y%t.gridSize,a=Math.round(a/t.gridSize)*t.gridSize-c.x,l=Math.round(l/t.gridSize)*t.gridSize-c.y}else if(t.alignOnSnap){let c=W(o.element),h=t.snapLines.snapToPosition({x:n.x-r.x,y:n.y-r.y},{width:c.width/t.scaleFactor,height:c.height/t.scaleFactor},{x:a>0?1:-1,y:l>0?1:-1});h.x!==null?a=h.x-Math.round(i.x)+Math.round(r.x):a=Math.round(a),h.y!==null?l=h.y-Math.round(i.y)+Math.round(r.y):l=Math.round(l)}}return{x:a,y:l}}placePoint(e,t,i,r,n,o,a){let l=o.x,c=o.y;if(!j(e)){if(t.alignOnGrid)l=Math.round(l/t.gridSize)*t.gridSize,c=Math.round(c/t.gridSize)*t.gridSize;else if(t.alignOnSnap){let h=t.snapLines.snapToPosition({x:o.x-n.x,y:o.y-n.y},null,{x:l>0?1:-1,y:c>0?1:-1});h.x!==null?l=h.x:l=Math.round(l),h.y!==null?c=h.y:c=Math.round(c)}}return{x:l,y:c}}startPlace(e,t,i,r,n,o,a){}place(e,t,i,r,n,o,a){let l=this.calculateTrack(e,t,r,n,o,a[0]);e.shiftKey&&(l=Ze({x:0,y:0},l,!0));let c=ne(na(a));for(let h of c){let d=h.instanceServiceContainer.designerCanvas.canvas,p=h.parent.element.getBoxQuads({relativeTo:d,iframes:h.instanceServiceContainer.designerCanvas.iframes})[0],g=h.parent.element.convertPointFromNode(new DOMPoint(l.x+p.p1.x,l.y+p.p1.y),d,{iframes:h.instanceServiceContainer.designerCanvas.iframes}),m=getComputedStyle(h.element),f=new DOMMatrix;m.rotate!="none"&&m.rotate&&(f=f.multiply(new DOMMatrix("rotate("+m.rotate.replace(" ",",")+")"))),m.scale!="none"&&m.scale&&(f=f.multiply(new DOMMatrix("scale("+m.scale.replace(" ",",")+")"))),g=f.inverse().transformPoint(g);let b=new DOMMatrix().translate(g.x,g.y);Tr(h.element,h.getStyle("transform"),b.toString())}a[0].instanceServiceContainer.designerCanvas?.raiseDesignItemsChanged(c,"place",!1)}moveElements(e,t,i){for(let r of e)t.x&&r.setStyle("left",parseInt(r.element.style.left)-t.x+"px"),t.y&&r.setStyle("top",parseInt(r.element.style.top)-t.y+"px");e[0].instanceServiceContainer.designerCanvas.extensionManager.refreshExtensions(e),e[0].instanceServiceContainer.designerCanvas?.raiseDesignItemsChanged(e,"place",!0)}enterContainer(e,t,i){let r=ne(t);for(let n of r)i=="drop"&&n.setStyle("position","absolute"),e.insertChild(n),n.lastContainerSize&&(n.hasStyle("width")||n.setStyle("width",n.lastContainerSize.width+"px"),n.hasStyle("height")||n.setStyle("height",n.lastContainerSize.height+"px"));t[0].instanceServiceContainer.designerCanvas?.raiseDesignItemsChanged(r,"place",!0)}leaveContainer(e,t){let i=ne(t);t[0].instanceServiceContainer.designerCanvas?.raiseDesignItemsChanged(i,"place",!0)}finishPlace(e,t,i,r,n,o,a){let l=ne(a);for(let c of l){let h=Vt(new DOMMatrix(c.element.style.transform)),d=Vt(new DOMMatrix(c.getStyle("transform")??""));c.element.style.transform=c.getStyle("transform")??"";let p={x:h.x,y:h.y},g=getComputedStyle(c.element),m=new DOMMatrix;g.rotate!="none"&&g.rotate&&(m=m.multiply(new DOMMatrix("rotate("+g.rotate.replace(" ",",")+")"))),g.scale!="none"&&g.scale&&(m=m.multiply(new DOMMatrix("scale("+g.scale.replace(" ",",")+")"))),p=m.transformPoint(p),Nr(i,c,{x:p.x-d.x,y:p.y-d.y},"position")}for(let c of a)t.extensionManager.removeExtension(c,w.Placement);a[0].instanceServiceContainer.designerCanvas?.raiseDesignItemsChanged(l,"place",!0)}}});var ht,Ci=u(()=>{"use strict";q();yr();ht=class{async parse(e,t,i,r){let n;Document.parseHTMLUnsafe&&!gr?n=Document.parseHTMLUnsafe(e):n=new DOMParser().parseFromString(e,"text/html",{includeShadowRoots:!0});let o=this.createDesignItems(n.head.childNodes,t,i),a=this.createDesignItems(n.body.childNodes,t,i);return[...o,...a]}createDesignItems(e,t,i){let r=[];for(let n of e)r.push(this._createDesignItemsRecursive(n,t,i));return r}_createDesignItemsRecursive(e,t,i){return T.createDesignItemFromInstance(e,t,i)}}});var Lr,sa=u(()=>{"use strict";Nt();ge();ie();Lr=class extends Fe{name="lit2";isHandledElement(e){return!!e.element.constructor.elementProperties}async getProperties(e){if(!this.isHandledElement(e))return null;let t=[];for(let i of e.element.constructor.elementProperties.entries()){let r=i[0],n=i[1],o=n;if(n.type&&(o=n.type),o===String){let a={name:r,type:"string",service:this,propertyType:y.propertyAndAttribute};t.push(a)}else if(o===Object){let a={name:r,type:"string",service:this,propertyType:y.propertyAndAttribute};t.push(a)}else if(o===Number){let a={name:r,type:"number",service:this,propertyType:y.propertyAndAttribute};t.push(a)}else if(o===Date){let a={name:r,type:"date",service:this,propertyType:y.propertyAndAttribute};t.push(a)}else if(o===Boolean){let a={name:r,type:"boolean",service:this,propertyType:y.propertyAndAttribute};t.push(a)}else if(R.isTypescriptEnum(o)){let a={name:r,type:"enum",enumValues:R.getTypescriptEnumEntries(o),service:this,propertyType:y.propertyAndAttribute};t.push(a)}}return t}_notifyChangedProperty(e,t,i){}}});function fh(s,e){oa||(oa=document.createElement("canvas"));let t=oa.getContext("2d");return t.font=e,t.measureText(s).width}var oa,gh=u(()=>{"use strict"});var U,$e=u(()=>{"use strict";(function(s){s.Pointer="Pointer",s.DrawSelection="DrawSelection",s.DrawPath="DrawPath",s.DrawRect="DrawRect",s.DrawEllipsis="DrawEllipsis",s.DrawLine="DrawLine",s.Zoom="Zoom",s.Pan="Pan",s.MagicWandSelector="MagicWandSelector",s.RectangleSelector="RectangleSelector",s.PickColor="PickColor",s.Text="Text",s.DrawElementTool="DrawElementTool",s.Guides="Guides",s.Inspect="Inspect",s.Accessibility="Accessibility",s.Position="Position",s.Padding="Padding",s.Margin="Margin",s.Flexbox="Flexbox",s.Move="Move",s.HueShift="HueShift",s.BoxShadows="BoxShadows",s.FontStyles="FontStyles"})(U||(U={}))});var k,X=u(()=>{"use strict";(function(s){s[s.Background=10]="Background",s[s.Normal=20]="Normal",s[s.Foreground=30]="Foreground"})(k||(k={}))});var Gt,aa=u(()=>{"use strict";X();Gt=class{overlays=[];overlayLayerView;extensionManager;designerCanvas;constructor(e,t){this.extensionManager=e,this.designerCanvas=t,this.overlayLayerView=t.overlayLayer}_backup;_valuesHaveChanges(...e){if(this._backup==null)return this._backup=e,!0;for(let t=0;t<e.length;t++)if(e[t]!==this._backup[t])return this._backup=e,!0;return!1}_removeAllOverlays(){for(let e of this.overlays)try{this.overlayLayerView.removeOverlay(e)}catch(t){console.error(t)}this.overlays=[]}_addOverlay(e,t=k.Normal){this.overlayLayerView.addOverlay(this.constructor.name,e,t),this.overlays.push(e)}_drawGroup(e,t,i){let r=this.overlayLayerView.drawGroup(this.constructor.name,e,t,i);return t||this.overlays.push(r),r}_drawLine(e,t,i,r,n,o,a){let l=this.overlayLayerView.drawLine(this.constructor.name,e,t,i,r,n,o,a);return o||this.overlays.push(l),l}_drawCircle(e,t,i,r,n,o){let a=this.overlayLayerView.drawCircle(this.constructor.name,e,t,i,r,n,o);return n||this.overlays.push(a),a}_drawRect(e,t,i,r,n,o,a){let l=this.overlayLayerView.drawRect(this.constructor.name,e,t,i,r,n,o,a);return o||this.overlays.push(l),l}_drawComplexRect(e,t,i,r){let n="M"+e.map(a=>a.x+","+a.y).join(" ")+"Z",o=this.overlayLayerView.drawPath(this.constructor.name,n,t,i,r);return i||this.overlays.push(o),o}_drawPath(e,t,i,r){let n=this.overlayLayerView.drawPath(this.constructor.name,e,t,i,r);return i||this.overlays.push(n),n}_drawText(e,t,i,r,n,o){let a=this.overlayLayerView.drawText(this.constructor.name,e,t,i,r,n,o);return n||this.overlays.push(a),a}_drawHTML(e,t,i,r,n,o,a,l){let c=this.overlayLayerView.drawHTML(this.constructor.name,e,t,i,r,n,o,a,l);return a||this.overlays.push(c),c}_drawTextWithBackground(e,t,i,r,n,o,a){let l=this.overlayLayerView.drawTextWithBackground(this.constructor.name,e,t,i,r,n,o,a);return o||this.overlays.push(...l),l}_drawTransformedRect(e,t,i,r){let n="M"+e.p1.x+" "+e.p1.y+" L"+e.p2.x+" "+e.p2.y+" L"+e.p3.x+" "+e.p3.y+" L"+e.p4.x+" "+e.p4.y+"Z",o=this.overlayLayerView.drawPath(this.constructor.name,n,t,i,r);return i||this.overlays.push(o),o}}});var N,J=u(()=>{"use strict";aa();X();N=class extends Gt{extendedItem;constructor(e,t,i){super(e,t),this.extendedItem=i}remove(){this.extensionManager.removeExtensionInstance(this.extendedItem,this)}createToolbar(e,t,i,r=k.Foreground){let n=e.content.cloneNode(!0);n.querySelectorAll("*").forEach(a=>{a.onpointerdown=l=>{this.designerCanvas.ignoreEvent(l)},a instanceof HTMLInputElement&&(a.addEventListener("keydown",l=>{this.designerCanvas.ignoreEvent(l)},{capture:!0}),a.addEventListener("keyup",l=>{this.designerCanvas.ignoreEvent(l)},{capture:!0}))});let o=document.createElementNS("http://www.w3.org/2000/svg","foreignObject");return o.classList.add("svg-toolbar-container"),o.setAttribute("width",""+t),o.setAttribute("height",""+i),o.appendChild(n),o.style.scale=""+1/this.designerCanvas.zoomFactor,o.style.transformBox="fill-box",this._addOverlay(o,r),o.updatePosition=a=>{o.style.scale=""+1/this.designerCanvas.zoomFactor;let l=this.overlayLayerView.getBoundingClientRect(),c=o.children[0].getBoundingClientRect(),h=this.designerCanvas.scaleFactor,d=l.width/h-this.designerCanvas.canvasOffset.x*h;c.width+a.x*h>d&&(a.x=(d-c.width)/h),a.x<-this.designerCanvas.canvasOffset.x&&(a.x=-this.designerCanvas.canvasOffset.x),o.setAttribute("x",""+a.x),o.setAttribute("y",""+a.y)},o.getById=a=>o.querySelector("#"+a),o}}});var qd,Rr,la=u(()=>{"use strict";te();gh();$e();J();qd=60,Rr=class extends N{_rect;_clickRect;_text;_width;_createTitleText;constructor(e,t,i,r){super(e,t,i),this._createTitleText=r}extend(e,t){let i=this.extendedItem.element.getBoxQuads({relativeTo:this.designerCanvas.canvas})[0];if(i&&!isNaN(i.p1.x)){let r=W(this.extendedItem.element),n=fh(this.extendedItem.name,"10px monospace"),o=Math.sqrt(Math.pow(i.p2.x-i.p1.x,2)+Math.pow(i.p2.y-i.p1.y,2)),a=this.extendedItem.name;this.extendedItem.id&&(a="#"+this.extendedItem.id),this._createTitleText&&(a=this._createTitleText(this.extendedItem)),this._width=Math.max(Math.min(o,n),qd),this._rect=this._drawRect(i.p1.x,i.p1.y,this._width,15,"svg-primary-selection-move",this._rect),this._clickRect=this._drawRect(i.p1.x,i.p1.y,this._width,18,"svg-invisible",this._clickRect),this._clickRect.style.background="transparent",this._text=this._drawHTML('<div style="position:relative; pointer-events: none;"><span style="width: 100%; position: absolute; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; transform-origin: 0 0; padding-left: 2px;">'+a+"</span></div>",(r.x-this.designerCanvas.containerBoundingRect.x)/this.designerCanvas.scaleFactor,i.p1.y-16,this._width,15,"svg-text-primary",this._text),this._text.style.overflow="visible",this._clickRect.addEventListener("pointerdown",l=>this._pointerEvent(l)),this._clickRect.addEventListener("pointermove",l=>this._pointerEvent(l)),this._clickRect.addEventListener("pointerup",l=>this._pointerEvent(l)),this._clickRect.addEventListener("contextmenu",l=>{l.preventDefault(),this.designerCanvas.showDesignItemContextMenu(this.extendedItem,l)}),this.refresh(e,t)}}_drawMoveOverlay(e){}refresh(e,t){let i=this.extendedItem.element.getBoxQuads({relativeTo:this.designerCanvas.canvas})[0];if(!isNaN(i.p1.x)){let r=Math.atan2(i.p2.y-i.p1.y,i.p2.x-i.p1.x)*180/Math.PI;if(this._valuesHaveChanges(i.p1.x,i.p1.y,r,this.designerCanvas.scaleFactor)){let n=15/this.designerCanvas.scaleFactor,o=-(16/this.designerCanvas.scaleFactor),a=this._width/this.designerCanvas.scaleFactor;this._rect.setAttribute("x",""+i.p1.x),this._rect.setAttribute("y",""+i.p1.y),this._rect.style.rotate=r+"deg",this._rect.style.translate="0 "+o+"px",this._rect.style.transformOrigin="0 100%",this._rect.style.transformBox="fill-box",this._rect.setAttribute("height",""+n),this._rect.setAttribute("width",""+a),this._rect.style.strokeWidth=(1/this.designerCanvas.scaleFactor).toString(),this._clickRect.setAttribute("x",""+i.p1.x),this._clickRect.setAttribute("y",""+i.p1.y),this._clickRect.style.rotate=r+"deg",this._clickRect.style.translate="0 "+o+"px",this._clickRect.style.transformOrigin="0 100%",this._clickRect.style.transformBox="fill-box",this._clickRect.setAttribute("height",""+(n+3)),this._clickRect.setAttribute("width",""+a),this._clickRect.style.strokeWidth=(1/this.designerCanvas.scaleFactor).toString(),this._text.setAttribute("x",""+i.p1.x),this._text.setAttribute("y",""+i.p1.y),this._text.style.fontSize=10/this.designerCanvas.scaleFactor+"px",this._text.setAttribute("height",""+n),this._text.setAttribute("width",""+a),this._text.children[0].children[0].style.rotate=r+"deg",this._text.children[0].children[0].style.translate="0 "+o+"px",this._text.children[0].children[0].style.transformOrigin="0 100%"}}}_pointerEvent(e){e.preventDefault(),e.stopPropagation(),e.button!=2&&this.designerCanvas.serviceContainer.designerTools.get(U.Pointer).pointerEventHandler(this.designerCanvas,e,this.extendedItem.element)}dispose(){this._removeAllOverlays()}}});import{css as Qd}from"@node-projects/base-custom-webcomponent";var Fr,ca=u(()=>{"use strict";la();Fr=class{_createTitleText;constructor(e){this._createTitleText=e}shouldExtend(e,t,i){return!i.isRootItem&&!(i.element instanceof HTMLTemplateElement)}getExtension(e,t,i){return new Rr(e,t,i,this._createTitleText)}static style=Qd`
|
|
271
|
+
`;_leftInput;_topInput;_rightInput;_bottomInput;_valueLeft;get valueLeft(){return this._valueLeft}set valueLeft(e){let t=this._valueLeft;this._valueLeft=e,t!==e&&(this._updateValue(),this.valueLeftChanged.emit({newValue:e,oldValue:t}))}valueLeftChanged=new Pr;_valueTop;get valueTop(){return this._valueTop}set valueTop(e){let t=this._valueTop;this._valueTop=e,t!==e&&(this._updateValue(),this.valueTopChanged.emit({newValue:e,oldValue:t}))}valueTopChanged=new Pr;_valueRight;get valueRight(){return this._valueRight}set valueRight(e){let t=this._valueRight;this._valueRight=e,t!==e&&(this._updateValue(),this.valueRightChanged.emit({newValue:e,oldValue:t}))}valueRightChanged=new Pr;_valueBottom;get valueBottom(){return this._valueBottom}set valueBottom(e){let t=this._valueBottom;this._valueBottom=e,t!==e&&(this._updateValue(),this.valueBottomChanged.emit({newValue:e,oldValue:t}))}valueBottomChanged=new Pr;property;unsetValue;_updateValue(){this._leftInput.value=this.valueLeft,this._topInput.value=this.valueTop,this._rightInput.value=this.valueRight,this._bottomInput.value=this._valueBottom}ready(){this._parseAttributesToProperties(),this._leftInput=this._getDomElement("left"),this._topInput=this._getDomElement("top"),this._rightInput=this._getDomElement("right"),this._bottomInput=this._getDomElement("bottom"),this._leftInput.onkeyup=e=>{e.key==="Enter"&&(this._valueLeft=this._leftInput.value)},this._topInput.onkeyup=e=>{e.key==="Enter"&&(this._valueTop=this._topInput.value)},this._rightInput.onkeyup=e=>{e.key==="Enter"&&(this._valueRight=this._rightInput.value)},this._bottomInput.onkeyup=e=>{e.key==="Enter"&&(this._valueBottom=this._bottomInput.value)},this._leftInput.onblur=e=>this._valueLeft=this._leftInput.value,this._topInput.onblur=e=>this._valueTop=this._topInput.value,this._rightInput.onblur=e=>this._valueRight=this._rightInput.value,this._bottomInput.onblur=e=>this._valueBottom=this._bottomInput.value,this._updateValue()}};customElements.define("node-projects-thickness-editor",Si)});var Ir,Jo=u(()=>{"use strict";ve();ph();Ir=class extends Q{constructor(e){super(e);let t=new Si;t.property=e.name,t.valueLeftChanged.on(i=>this._valueChanged(i.newValue)),this.element=t}refreshValue(e,t){this.element.valueLeft=t}}});var Vt,ea=u(()=>{"use strict";ve();Vt=class s extends Q{static fontList;constructor(e){super(e);let t=document.createElement("select");e.readonly&&(t.disabled=!0),this.element=t,s.addFontsToSelect(t),this.element.onchange=i=>this._valueChanged(this.element.value)}static addFontsToSelect(e){s.fontList?s.parseFontList(e):window.queryLocalFonts?window.queryLocalFonts().then(t=>{s.fontList=[...new Set(t.map(i=>i.family))],s.parseFontList(e)}):(s.fontList=["Verdana","Arial","Tahoma","Trebuchet MS","Times New Roman","Georgia","Garamond","Courier New","Brush Script MT"],s.parseFontList(e))}static parseFontList(e){for(let t of s.fontList){let i=document.createElement("option");i.value=t,i.text=t,e.appendChild(i)}}refreshValue(e,t){this.element.value=t}}});var kr,ta=u(()=>{"use strict";jo();Uo();Ko();Yo();Xo();Zo();$o();Qo();Jo();ea();kr=class{getEditorForProperty(e){if(e.createEditor)return e.createEditor(e);switch(e.type){case"json":return new br(e);case"color":return new xr(e);case"font":return new Vt(e);case"date":return new _r(e);case"number":return new wr(e);case"list":return new bi(e);case"enum":return new bi(e);case"boolean":return new Cr(e);case"img-list":return new Ar(e);case"thickness":return new Ir(e);case"css-length":case"string":default:return new Sr(e)}}}});import{BaseCustomWebComponentLazyAppend as Yd,BaseCustomWebComponentConstructorAppend as Xd,BaseCustomWebComponentNoAttachedTemplate as Zd,BaseCustomWebComponentConstructorAppendLazyReady as $d}from"@node-projects/base-custom-webcomponent";var Dr,ia=u(()=>{"use strict";Nt();Dr=class extends Fe{name="baseCustomWebComponent";isHandledElement(e){return e.element instanceof Yd||e.element instanceof $d||e.element instanceof Xd||e.element instanceof Zd}_notifyChangedProperty(e,t,i){e.element._parseAttributesToProperties()}}});function Tr(s,e,t){if(e==null||e==""){s.style.transform=t;return}let i=new DOMMatrix(e),n=new DOMMatrix(t).multiply(i);s.style.transform=n.toString()}function ra(s,e){let t=e.inverse();return s.matrixTransform(t)}function Ht(s){return new DOMPoint(s.m41,s.m42,0,0)}var Mr=u(()=>{"use strict"});function ne(s){let e=[];e:for(let t of s){let i=t.parent;for(;i!=null&&!i.isRootItem;){if(s.indexOf(i)>=0)continue e;i=i.parent}e.push(t)}return e}function Or(s,e){if(e==="position"){let t=getComputedStyle(s.element),i=parseFloat(t.left);i=Number.isNaN(i)?null:i;let r=parseFloat(t.top);return r=Number.isNaN(r)?null:r,{x:i,y:r}}return{x:0,y:0}}function Nr(s,e,t,i){let r=e.element,n=getComputedStyle(r);if(i==="position"){let o=s.element,a=s.getComputedStyle();a.position!=="relative"&&a.position!=="absolute"&&o.offsetParent&&(o=o.offsetParent,a=s.window.getComputedStyle(o));let l=null,c=null,h=null,d=null,p=0,g=0,m=0,f=0,b=!1;if(n.position==="relative"||n.position==="absolute")l=parseFloat(r.style.left),l=Number.isNaN(l)?null:l,h=parseFloat(r.style.top),h=Number.isNaN(h)?null:h,c=parseFloat(r.style.right),c=Number.isNaN(c)?null:c,d=parseFloat(r.style.bottom),d=Number.isNaN(d)?null:d,b=!0;else if(o!==s.element){let _=W(o),C=W(e.element);p=C.left-_.left,g=C.right-_.right,m=C.top-_.top,f=C.bottom-_.bottom}b||e.setStyle("position","absolute"),(l||c==null)&&e.setStyle("left",O(e,t.x+(l??0)+p)+"px"),(h||d==null)&&e.setStyle("top",O(e,t.y+(h??0)+m)+"px"),c&&e.setStyle("right",O(e,(c??0)-t.x+g)+"px"),d&&e.setStyle("bottom",O(e,(d??0)-t.y+f)+"px")}}function O(s,e){return s.serviceContainer.options.roundPixelsToDecimalPlaces>=0?e.toFixed(s.serviceContainer.options.roundPixelsToDecimalPlaces):e.toString()}var be=u(()=>{"use strict";te()});function Ze(s,e,t=!1){let i,r=mh(s,e),n;return t?r>=315&&r<360||r>=0&&r<45?i={x:e.x,y:s.y}:r>=45&&r<135?i={x:s.x,y:e.y}:r>=135&&r<225?i={x:e.x,y:s.y}:r>=225&&r<315&&(i={x:s.x,y:e.y}):r>=337.5&&r<360||r>=0&&r<22.5?i={x:e.x,y:s.y}:r>=22.5&&r<67.5?(n=Be(s,e),i={x:s.x+n,y:s.y-n}):r>=67.5&&r<112.5?i={x:s.x,y:e.y}:r>=112.5&&r<157.5?(n=Be(s,e),i={x:s.x-n,y:s.y-n}):r>=157.5&&r<202.5?i={x:e.x,y:s.y}:r>=202.5&&r<247.5?(n=Be(s,e),i={x:s.x-n,y:s.y+n}):r>=247.5&&r<292.5?i={x:s.x,y:e.y}:r>=292.5&&r<337.5&&(n=Be(s,e),i={x:s.x+n,y:s.y+n}),i}function Be(s,e){let t,i=Math.sqrt(Math.pow(e.x-s.x,2)+Math.pow(e.y-s.y,2)),r=mh(s,e),n=r-(Math.floor(r/90)*90+45);return t=i*Math.cos(n*(Math.PI/180))/Math.sqrt(2),t}function mh(s,e){let t=-1*Math.atan2(e.y-s.y,e.x-s.x)*180/Math.PI;return t<0&&(t+=360),t}function uh(s,e,t){let i="",r=s.getPathData({normalize:!0});for(let n of r)switch(n.type){case"M":case"m":case"L":case"l":case"T":case"t":i+=n.type+" "+(n.values[0]-e)+" "+(n.values[1]-t)+" ";break;case"Z":case"z":i+=n.type+" ";break;case"C":case"c":i+=n.type+" "+(n.values[0]-e)+" "+(n.values[1]-t)+" "+(n.values[2]-e)+" "+(n.values[3]-t)+" "+(n.values[4]-e)+" "+(n.values[5]-t)+" ";break;case"S":case"s":case"Q":case"q":i+=n.type+" "+(n.values[0]-e)+" "+(n.values[1]-t)+" "+(n.values[2]-e)+" "+(n.values[3]-t)+" ";break;case"A":case"a":i+=n.type+" "+(n.values[0]-e)+" "+(n.values[1]-t)+" "+n.values[2]+" "+n.values[3]+" "+n.values[4]+" "+(n.values[5]-e)+" "+(n.values[6]-t)+" ";break}return i}function Me(s){let e="";for(let i of s){e+=i.type+" ";for(var t=0;t<i.values.length;t++)i.values[t]!=null&&!isNaN(i.values[t])&&(e+=i.values[t]+" ")}return e}var Oe=u(()=>{"use strict";(!SVGPathElement.prototype.getPathData||!SVGPathElement.prototype.setPathData)&&(function(){var s={Z:"Z",M:"M",L:"L",C:"C",Q:"Q",A:"A",H:"H",V:"V",S:"S",T:"T",z:"Z",m:"m",l:"l",c:"c",q:"q",a:"a",h:"h",v:"v",s:"s",t:"t"},e=function(o){this._string=o,this._currentIndex=0,this._endIndex=this._string.length,this._prevCommand=null,this._skipOptionalSpaces()};e.prototype={parseSegment:function(){var o=this._string[this._currentIndex],a=s[o]?s[o]:null;if(a===null){if(this._prevCommand===null||((o==="+"||o==="-"||o==="."||o>="0"&&o<="9")&&this._prevCommand!=="Z"?this._prevCommand==="M"?a="L":this._prevCommand==="m"?a="l":a=this._prevCommand:a=null,a===null))return null}else this._currentIndex+=1;this._prevCommand=a;var l=null,c=a.toUpperCase();return c==="H"||c==="V"?l=[this._parseNumber()]:c==="M"||c==="L"||c==="T"?l=[this._parseNumber(),this._parseNumber()]:c==="S"||c==="Q"?l=[this._parseNumber(),this._parseNumber(),this._parseNumber(),this._parseNumber()]:c==="C"?l=[this._parseNumber(),this._parseNumber(),this._parseNumber(),this._parseNumber(),this._parseNumber(),this._parseNumber()]:c==="A"?l=[this._parseNumber(),this._parseNumber(),this._parseNumber(),this._parseArcFlag(),this._parseArcFlag(),this._parseNumber(),this._parseNumber()]:c==="Z"&&(this._skipOptionalSpaces(),l=[]),l===null||l.indexOf(null)>=0?null:{type:a,values:l}},hasMoreData:function(){return this._currentIndex<this._endIndex},peekSegmentType:function(){var o=this._string[this._currentIndex];return s[o]?s[o]:null},initialCommandIsMoveTo:function(){if(!this.hasMoreData())return!0;var o=this.peekSegmentType();return o==="M"||o==="m"},_isCurrentSpace:function(){var o=this._string[this._currentIndex];return o<=" "&&(o===" "||o===`
|
|
272
|
+
`||o===" "||o==="\r"||o==="\f")},_skipOptionalSpaces:function(){for(;this._currentIndex<this._endIndex&&this._isCurrentSpace();)this._currentIndex+=1;return this._currentIndex<this._endIndex},_skipOptionalSpacesOrDelimiter:function(){return this._currentIndex<this._endIndex&&!this._isCurrentSpace()&&this._string[this._currentIndex]!==","?!1:(this._skipOptionalSpaces()&&this._currentIndex<this._endIndex&&this._string[this._currentIndex]===","&&(this._currentIndex+=1,this._skipOptionalSpaces()),this._currentIndex<this._endIndex)},_parseNumber:function(){var o=0,a=0,l=1,c=0,h=1,d=1,p=this._currentIndex;if(this._skipOptionalSpaces(),this._currentIndex<this._endIndex&&this._string[this._currentIndex]==="+"?this._currentIndex+=1:this._currentIndex<this._endIndex&&this._string[this._currentIndex]==="-"&&(this._currentIndex+=1,h=-1),this._currentIndex===this._endIndex||(this._string[this._currentIndex]<"0"||this._string[this._currentIndex]>"9")&&this._string[this._currentIndex]!==".")return null;for(var g=this._currentIndex;this._currentIndex<this._endIndex&&this._string[this._currentIndex]>="0"&&this._string[this._currentIndex]<="9";)this._currentIndex+=1;if(this._currentIndex!==g)for(var m=this._currentIndex-1,f=1;m>=g;)a+=f*(this._string[m]-"0"),m-=1,f*=10;if(this._currentIndex<this._endIndex&&this._string[this._currentIndex]==="."){if(this._currentIndex+=1,this._currentIndex>=this._endIndex||this._string[this._currentIndex]<"0"||this._string[this._currentIndex]>"9")return null;for(;this._currentIndex<this._endIndex&&this._string[this._currentIndex]>="0"&&this._string[this._currentIndex]<="9";)l*=10,c+=(this._string.charAt(this._currentIndex)-"0")/l,this._currentIndex+=1}if(this._currentIndex!==p&&this._currentIndex+1<this._endIndex&&(this._string[this._currentIndex]==="e"||this._string[this._currentIndex]==="E")&&this._string[this._currentIndex+1]!=="x"&&this._string[this._currentIndex+1]!=="m"){if(this._currentIndex+=1,this._string[this._currentIndex]==="+"?this._currentIndex+=1:this._string[this._currentIndex]==="-"&&(this._currentIndex+=1,d=-1),this._currentIndex>=this._endIndex||this._string[this._currentIndex]<"0"||this._string[this._currentIndex]>"9")return null;for(;this._currentIndex<this._endIndex&&this._string[this._currentIndex]>="0"&&this._string[this._currentIndex]<="9";)o*=10,o+=this._string[this._currentIndex]-"0",this._currentIndex+=1}var b=a+c;return b*=h,o&&(b*=Math.pow(10,d*o)),p===this._currentIndex?null:(this._skipOptionalSpacesOrDelimiter(),b)},_parseArcFlag:function(){if(this._currentIndex>=this._endIndex)return null;var o=null,a=this._string[this._currentIndex];if(this._currentIndex+=1,a==="0")o=0;else if(a==="1")o=1;else return null;return this._skipOptionalSpacesOrDelimiter(),o}};var t=function(o){if(!o||o.length===0)return[];var a=new e(o),l=[];if(a.initialCommandIsMoveTo())for(;a.hasMoreData();){var c=a.parseSegment();if(c===null)break;l.push(c)}return l},i=function(o,a,l,c,h,d,p,g,m,f){var b=function(yt){return Math.PI*yt/180},_=function(yt,hi,vt){var gd=yt*Math.cos(vt)-hi*Math.sin(vt),yd=yt*Math.sin(vt)+hi*Math.cos(vt);return{x:gd,y:yd}},C=b(p),k=[],P,D,A,R;if(f)P=f[0],D=f[1],A=f[2],R=f[3];else{var H=_(o,a,-C);o=H.x,a=H.y;var ae=_(l,c,-C);l=ae.x,c=ae.y;var B=(o-l)/2,xe=(a-c)/2,Re=B*B/(h*h)+xe*xe/(d*d);Re>1&&(Re=Math.sqrt(Re),h=Re*h,d=Re*d);var gt;g===m?gt=-1:gt=1;var Ke=h*h,Tt=d*d,ad=Ke*Tt-Ke*xe*xe-Tt*B*B,ld=Ke*xe*xe+Tt*B*B,Yi=gt*Math.sqrt(Math.abs(ad/ld));A=Yi*h*xe/d+(o+l)/2,R=Yi*-d*B/h+(a+c)/2,P=Math.asin(parseFloat(((a-R)/d).toFixed(9))),D=Math.asin(parseFloat(((c-R)/d).toFixed(9))),o<A&&(P=Math.PI-P),l<A&&(D=Math.PI-D),P<0&&(P=Math.PI*2+P),D<0&&(D=Math.PI*2+D),m&&P>D&&(P=P-Math.PI*2),!m&&D>P&&(D=D-Math.PI*2)}var xo=D-P;if(Math.abs(xo)>Math.PI*120/180){var cd=D,hd=l,dd=c;m&&D>P?D=P+Math.PI*120/180*1:D=P+Math.PI*120/180*-1,l=A+h*Math.cos(D),c=R+d*Math.sin(D),k=i(l,c,hd,dd,h,d,p,0,m,[D,cd,A,R])}xo=D-P;var pd=Math.cos(P),md=Math.sin(P),ud=Math.cos(D),fd=Math.sin(D),Yc=Math.tan(xo/4),Xc=4/3*h*Yc,Zc=4/3*d*Yc,$c=[o,a],Mt=[o+Xc*md,a-Zc*pd],qc=[l+Xc*fd,c-Zc*ud],Qc=[l,c];if(Mt[0]=2*$c[0]-Mt[0],Mt[1]=2*$c[1]-Mt[1],f)return[Mt,qc,Qc].concat(k);k=[Mt,qc,Qc].concat(k);for(var Jc=[],rt=0;rt<k.length;rt+=3){let yt=_(k[rt][0],k[rt][1],C),hi=_(k[rt+1][0],k[rt+1][1],C),vt=_(k[rt+2][0],k[rt+2][1],C);Jc.push([yt.x,yt.y,hi.x,hi.y,vt.x,vt.y])}return Jc},r=function(o){var a=[],l=null,c=null,h=null,d=null;return o.forEach(function(p){var g=p.type;if(g==="M"){var m=p.values[0],f=p.values[1];a.push({type:"M",values:[m,f]}),h=m,d=f,l=m,c=f}else if(g==="m"){var m=l+p.values[0],f=c+p.values[1];a.push({type:"M",values:[m,f]}),h=m,d=f,l=m,c=f}else if(g==="L"){var m=p.values[0],f=p.values[1];a.push({type:"L",values:[m,f]}),l=m,c=f}else if(g==="l"){var m=l+p.values[0],f=c+p.values[1];a.push({type:"L",values:[m,f]}),l=m,c=f}else if(g==="C"){var b=p.values[0],_=p.values[1],C=p.values[2],k=p.values[3],m=p.values[4],f=p.values[5];a.push({type:"C",values:[b,_,C,k,m,f]}),l=m,c=f}else if(g==="c"){var b=l+p.values[0],_=c+p.values[1],C=l+p.values[2],k=c+p.values[3],m=l+p.values[4],f=c+p.values[5];a.push({type:"C",values:[b,_,C,k,m,f]}),l=m,c=f}else if(g==="Q"){var b=p.values[0],_=p.values[1],m=p.values[2],f=p.values[3];a.push({type:"Q",values:[b,_,m,f]}),l=m,c=f}else if(g==="q"){var b=l+p.values[0],_=c+p.values[1],m=l+p.values[2],f=c+p.values[3];a.push({type:"Q",values:[b,_,m,f]}),l=m,c=f}else if(g==="A"){var m=p.values[5],f=p.values[6];a.push({type:"A",values:[p.values[0],p.values[1],p.values[2],p.values[3],p.values[4],m,f]}),l=m,c=f}else if(g==="a"){var m=l+p.values[5],f=c+p.values[6];a.push({type:"A",values:[p.values[0],p.values[1],p.values[2],p.values[3],p.values[4],m,f]}),l=m,c=f}else if(g==="H"){var m=p.values[0];a.push({type:"H",values:[m]}),l=m}else if(g==="h"){var m=l+p.values[0];a.push({type:"H",values:[m]}),l=m}else if(g==="V"){var f=p.values[0];a.push({type:"V",values:[f]}),c=f}else if(g==="v"){var f=c+p.values[0];a.push({type:"V",values:[f]}),c=f}else if(g==="S"){var C=p.values[0],k=p.values[1],m=p.values[2],f=p.values[3];a.push({type:"S",values:[C,k,m,f]}),l=m,c=f}else if(g==="s"){var C=l+p.values[0],k=c+p.values[1],m=l+p.values[2],f=c+p.values[3];a.push({type:"S",values:[C,k,m,f]}),l=m,c=f}else if(g==="T"){var m=p.values[0],f=p.values[1];a.push({type:"T",values:[m,f]}),l=m,c=f}else if(g==="t"){var m=l+p.values[0],f=c+p.values[1];a.push({type:"T",values:[m,f]}),l=m,c=f}else(g==="Z"||g==="z")&&(a.push({type:"Z",values:[]}),l=h,c=d)}),a},n=function(o){var a=[],l=null,c=null,h=null,d=null,p=null,g=null,m=null;return o.forEach(function(f){if(f.type==="M"){var b=f.values[0],_=f.values[1];a.push({type:"M",values:[b,_]}),g=b,m=_,d=b,p=_}else if(f.type==="C"){var C=f.values[0],k=f.values[1],P=f.values[2],D=f.values[3],b=f.values[4],_=f.values[5];a.push({type:"C",values:[C,k,P,D,b,_]}),c=P,h=D,d=b,p=_}else if(f.type==="L"){var b=f.values[0],_=f.values[1];a.push({type:"L",values:[b,_]}),d=b,p=_}else if(f.type==="H"){var b=f.values[0];a.push({type:"L",values:[b,p]}),d=b}else if(f.type==="V"){var _=f.values[0];a.push({type:"L",values:[d,_]}),p=_}else if(f.type==="S"){var P=f.values[0],D=f.values[1],b=f.values[2],_=f.values[3],A,R;l==="C"||l==="S"?(A=d+(d-c),R=p+(p-h)):(A=d,R=p),a.push({type:"C",values:[A,R,P,D,b,_]}),c=P,h=D,d=b,p=_}else if(f.type==="T"){var b=f.values[0],_=f.values[1],C,k;l==="Q"||l==="T"?(C=d+(d-c),k=p+(p-h)):(C=d,k=p);var A=d+2*(C-d)/3,R=p+2*(k-p)/3,H=b+2*(C-b)/3,ae=_+2*(k-_)/3;a.push({type:"C",values:[A,R,H,ae,b,_]}),c=C,h=k,d=b,p=_}else if(f.type==="Q"){var C=f.values[0],k=f.values[1],b=f.values[2],_=f.values[3],A=d+2*(C-d)/3,R=p+2*(k-p)/3,H=b+2*(C-b)/3,ae=_+2*(k-_)/3;a.push({type:"C",values:[A,R,H,ae,b,_]}),c=C,h=k,d=b,p=_}else if(f.type==="A"){let Ke=Math.abs(f.values[0]),Tt=Math.abs(f.values[1]);var B=f.values[2],xe=f.values[3],Re=f.values[4],b=f.values[5],_=f.values[6];if(Ke===0||Tt===0)a.push({type:"C",values:[d,p,b,_,b,_]}),d=b,p=_;else if(d!==b||p!==_){var gt=i(d,p,b,_,Ke,Tt,B,xe,Re);gt.forEach(function(Yi){a.push({type:"C",values:Yi})}),d=b,p=_}}else f.type==="Z"&&(a.push(f),d=g,p=m);l=f.type}),a};SVGPathElement.prototype.getPathData=function(o){if(o&&o.normalize){let a;return a=t(this.getAttribute("d")||""),n(r(a))}else return t(this.getAttribute("d")||"")},SVGPathElement.prototype.setPathData=function(o){if(o.length===0)this.removeAttribute("d");else{let a="";for(let l=0,c=o.length;l<c;l+=1){let h=o[l];l>0&&(a+=" "),a+=h.type,h.values&&h.values.length>0&&(a+=" "+h.values.join(" "))}this.setAttribute("d",a)}},SVGRectElement.prototype.getPathData=function(o){var a=this.x.baseVal.value,l=this.y.baseVal.value,c=this.width.baseVal.value,h=this.height.baseVal.value,d=this.hasAttribute("rx")?this.rx.baseVal.value:this.ry.baseVal.value,p=this.hasAttribute("ry")?this.ry.baseVal.value:this.rx.baseVal.value;d>c/2&&(d=c/2),p>h/2&&(p=h/2);var g=[{type:"M",values:[a+d,l]},{type:"H",values:[a+c-d]},{type:"A",values:[d,p,0,0,1,a+c,l+p]},{type:"V",values:[l+h-p]},{type:"A",values:[d,p,0,0,1,a+c-d,l+h]},{type:"H",values:[a+d]},{type:"A",values:[d,p,0,0,1,a,l+h-p]},{type:"V",values:[l+p]},{type:"A",values:[d,p,0,0,1,a+d,l]},{type:"Z",values:[]}];return g=g.filter(function(m){return!(m.type==="A"&&(m.values[0]===0||m.values[1]===0))}),o&&o.normalize===!0&&(g=n(g)),g},SVGCircleElement.prototype.getPathData=function(o){var a=this.cx.baseVal.value,l=this.cy.baseVal.value,c=this.r.baseVal.value,h=[{type:"M",values:[a+c,l]},{type:"A",values:[c,c,0,0,1,a,l+c]},{type:"A",values:[c,c,0,0,1,a-c,l]},{type:"A",values:[c,c,0,0,1,a,l-c]},{type:"A",values:[c,c,0,0,1,a+c,l]},{type:"Z",values:[]}];return o&&o.normalize===!0&&(h=n(h)),h},SVGEllipseElement.prototype.getPathData=function(o){var a=this.cx.baseVal.value,l=this.cy.baseVal.value,c=this.rx.baseVal.value,h=this.ry.baseVal.value,d=[{type:"M",values:[a+c,l]},{type:"A",values:[c,h,0,0,1,a,l+h]},{type:"A",values:[c,h,0,0,1,a-c,l]},{type:"A",values:[c,h,0,0,1,a,l-h]},{type:"A",values:[c,h,0,0,1,a+c,l]},{type:"Z",values:[]}];return o&&o.normalize===!0&&(d=n(d)),d},SVGLineElement.prototype.getPathData=function(){return[{type:"M",values:[this.x1.baseVal.value,this.y1.baseVal.value]},{type:"L",values:[this.x2.baseVal.value,this.y2.baseVal.value]}]},SVGPolylineElement.prototype.getPathData=function(){for(var o=[],a=0;a<this.points.numberOfItems;a+=1){var l=this.points.getItem(a);o.push({type:a===0?"M":"L",values:[l.x,l.y]})}return o},SVGPolygonElement.prototype.getPathData=function(){for(var o=[],a=0;a<this.points.numberOfItems;a+=1){var l=this.points.getItem(a);o.push({type:a===0?"M":"L",values:[l.x,l.y]})}return o.push({type:"Z",values:[]}),o}})()});function j(s){return ah()?s.metaKey:s.ctrlKey}var Ne=u(()=>{"use strict";Pe()});function na(s){let e=[];for(let t of s)t.nodeType===E.TextNode||t.nodeType===E.Comment||e.push(t);return e}var Ve,Gt=u(()=>{"use strict";Te();Mr();be();De();Oe();Ne();Z();te();Ve=class{serviceForContainer(e,t,i){return i!=null&&i.getComputedStyle()?.position=="absolute"?!0:!(t.display==="grid"||t.display==="inline-grid"||t.display==="flex"||t.display==="inline-flex")}isEnterableContainer(e){return!(K.IsSelfClosingElement(e.element.localName)||!e.isRootItem&&e.element.shadowRoot&&e.element.shadowRoot.querySelector("slot")==null)}canEnter(e,t){return!(!this.isEnterableContainer(e)||!t.every(i=>!i.element.contains(e.element)&&i!==e))}canLeave(e,t){return!0}getElementOffset(e,t){return e.instanceServiceContainer.designerCanvas.getNormalizedElementCoordinates(e.element)}calculateTrack(e,t,i,r,n,o){let a=n.x-i.x,l=n.y-i.y;if(!j(e)){if(t.alignOnGrid){let c=Or(o,"position");c.x=c.x%t.gridSize,c.y=c.y%t.gridSize,a=Math.round(a/t.gridSize)*t.gridSize-c.x,l=Math.round(l/t.gridSize)*t.gridSize-c.y}else if(t.alignOnSnap){let c=W(o.element),h=t.snapLines.snapToPosition({x:n.x-r.x,y:n.y-r.y},{width:c.width/t.scaleFactor,height:c.height/t.scaleFactor},{x:a>0?1:-1,y:l>0?1:-1});h.x!==null?a=h.x-Math.round(i.x)+Math.round(r.x):a=Math.round(a),h.y!==null?l=h.y-Math.round(i.y)+Math.round(r.y):l=Math.round(l)}}return{x:a,y:l}}placePoint(e,t,i,r,n,o,a){let l=o.x,c=o.y;if(!j(e)){if(t.alignOnGrid)l=Math.round(l/t.gridSize)*t.gridSize,c=Math.round(c/t.gridSize)*t.gridSize;else if(t.alignOnSnap){let h=t.snapLines.snapToPosition({x:o.x-n.x,y:o.y-n.y},null,{x:l>0?1:-1,y:c>0?1:-1});h.x!==null?l=h.x:l=Math.round(l),h.y!==null?c=h.y:c=Math.round(c)}}return{x:l,y:c}}startPlace(e,t,i,r,n,o,a){}place(e,t,i,r,n,o,a){let l=this.calculateTrack(e,t,r,n,o,a[0]);e.shiftKey&&(l=Ze({x:0,y:0},l,!0));let c=ne(na(a));for(let h of c){let d=h.instanceServiceContainer.designerCanvas.canvas,p=h.parent.element.getBoxQuads({relativeTo:d,iframes:h.instanceServiceContainer.designerCanvas.iframes})[0],g=h.parent.element.convertPointFromNode(new DOMPoint(l.x+p.p1.x,l.y+p.p1.y),d,{iframes:h.instanceServiceContainer.designerCanvas.iframes}),m=getComputedStyle(h.element),f=new DOMMatrix;m.rotate!="none"&&m.rotate&&(f=f.multiply(new DOMMatrix("rotate("+m.rotate.replace(" ",",")+")"))),m.scale!="none"&&m.scale&&(f=f.multiply(new DOMMatrix("scale("+m.scale.replace(" ",",")+")"))),g=f.inverse().transformPoint(g);let b=new DOMMatrix().translate(g.x,g.y);Tr(h.element,h.getStyle("transform"),b.toString())}a[0].instanceServiceContainer.designerCanvas?.raiseDesignItemsChanged(c,"place",!1)}moveElements(e,t,i){for(let r of e)t.x&&r.setStyle("left",parseInt(r.element.style.left)-t.x+"px"),t.y&&r.setStyle("top",parseInt(r.element.style.top)-t.y+"px");e[0].instanceServiceContainer.designerCanvas.extensionManager.refreshExtensions(e),e[0].instanceServiceContainer.designerCanvas?.raiseDesignItemsChanged(e,"place",!0)}enterContainer(e,t,i){let r=ne(t);for(let n of r)i=="drop"&&n.setStyle("position","absolute"),e.insertChild(n),n.lastContainerSize&&(n.hasStyle("width")||n.setStyle("width",n.lastContainerSize.width+"px"),n.hasStyle("height")||n.setStyle("height",n.lastContainerSize.height+"px"));t[0].instanceServiceContainer.designerCanvas?.raiseDesignItemsChanged(r,"place",!0)}leaveContainer(e,t){let i=ne(t);t[0].instanceServiceContainer.designerCanvas?.raiseDesignItemsChanged(i,"place",!0)}finishPlace(e,t,i,r,n,o,a){let l=ne(a);for(let c of l){let h=Ht(new DOMMatrix(c.element.style.transform)),d=Ht(new DOMMatrix(c.getStyle("transform")??""));c.element.style.transform=c.getStyle("transform")??"";let p={x:h.x,y:h.y},g=getComputedStyle(c.element),m=new DOMMatrix;g.rotate!="none"&&g.rotate&&(m=m.multiply(new DOMMatrix("rotate("+g.rotate.replace(" ",",")+")"))),g.scale!="none"&&g.scale&&(m=m.multiply(new DOMMatrix("scale("+g.scale.replace(" ",",")+")"))),p=m.transformPoint(p),Nr(i,c,{x:p.x-d.x,y:p.y-d.y},"position")}for(let c of a)t.extensionManager.removeExtension(c,w.Placement);a[0].instanceServiceContainer.designerCanvas?.raiseDesignItemsChanged(l,"place",!0)}}});var ht,Ci=u(()=>{"use strict";q();yr();ht=class{async parse(e,t,i,r){let n;Document.parseHTMLUnsafe&&!gr?n=Document.parseHTMLUnsafe(e):n=new DOMParser().parseFromString(e,"text/html",{includeShadowRoots:!0});let o=this.createDesignItems(n.head.childNodes,t,i),a=this.createDesignItems(n.body.childNodes,t,i);return[...o,...a]}createDesignItems(e,t,i){let r=[];for(let n of e)r.push(this._createDesignItemsRecursive(n,t,i));return r}_createDesignItemsRecursive(e,t,i){return T.createDesignItemFromInstance(e,t,i)}}});var Lr,sa=u(()=>{"use strict";Nt();ue();ie();Lr=class extends Fe{name="lit2";isHandledElement(e){return!!e.element.constructor.elementProperties}async getProperties(e){if(!this.isHandledElement(e))return null;let t=[];for(let i of e.element.constructor.elementProperties.entries()){let r=i[0],n=i[1],o=n;if(n.type&&(o=n.type),o===String){let a={name:r,type:"string",service:this,propertyType:y.propertyAndAttribute};t.push(a)}else if(o===Object){let a={name:r,type:"string",service:this,propertyType:y.propertyAndAttribute};t.push(a)}else if(o===Number){let a={name:r,type:"number",service:this,propertyType:y.propertyAndAttribute};t.push(a)}else if(o===Date){let a={name:r,type:"date",service:this,propertyType:y.propertyAndAttribute};t.push(a)}else if(o===Boolean){let a={name:r,type:"boolean",service:this,propertyType:y.propertyAndAttribute};t.push(a)}else if(L.isTypescriptEnum(o)){let a={name:r,type:"enum",enumValues:L.getTypescriptEnumEntries(o),service:this,propertyType:y.propertyAndAttribute};t.push(a)}}return t}_notifyChangedProperty(e,t,i){}}});function fh(s,e){oa||(oa=document.createElement("canvas"));let t=oa.getContext("2d");return t.font=e,t.measureText(s).width}var oa,gh=u(()=>{"use strict"});var U,$e=u(()=>{"use strict";(function(s){s.Pointer="Pointer",s.DrawSelection="DrawSelection",s.DrawPath="DrawPath",s.DrawRect="DrawRect",s.DrawEllipsis="DrawEllipsis",s.DrawLine="DrawLine",s.Zoom="Zoom",s.Pan="Pan",s.MagicWandSelector="MagicWandSelector",s.RectangleSelector="RectangleSelector",s.PickColor="PickColor",s.Text="Text",s.DrawElementTool="DrawElementTool",s.Guides="Guides",s.Inspect="Inspect",s.Accessibility="Accessibility",s.Position="Position",s.Padding="Padding",s.Margin="Margin",s.Flexbox="Flexbox",s.Move="Move",s.HueShift="HueShift",s.BoxShadows="BoxShadows",s.FontStyles="FontStyles"})(U||(U={}))});var I,X=u(()=>{"use strict";(function(s){s[s.Background=10]="Background",s[s.Normal=20]="Normal",s[s.Foreground=30]="Foreground"})(I||(I={}))});var Wt,aa=u(()=>{"use strict";X();Wt=class{overlays=[];overlayLayerView;extensionManager;designerCanvas;constructor(e,t){this.extensionManager=e,this.designerCanvas=t,this.overlayLayerView=t.overlayLayer}_backup;_valuesHaveChanges(...e){if(this._backup==null)return this._backup=e,!0;for(let t=0;t<e.length;t++)if(e[t]!==this._backup[t])return this._backup=e,!0;return!1}_removeAllOverlays(){for(let e of this.overlays)try{this.overlayLayerView.removeOverlay(e)}catch(t){console.error(t)}this.overlays=[]}_addOverlay(e,t=I.Normal){this.overlayLayerView.addOverlay(this.constructor.name,e,t),this.overlays.push(e)}_drawGroup(e,t,i){let r=this.overlayLayerView.drawGroup(this.constructor.name,e,t,i);return t||this.overlays.push(r),r}_drawLine(e,t,i,r,n,o,a){let l=this.overlayLayerView.drawLine(this.constructor.name,e,t,i,r,n,o,a);return o||this.overlays.push(l),l}_drawCircle(e,t,i,r,n,o){let a=this.overlayLayerView.drawCircle(this.constructor.name,e,t,i,r,n,o);return n||this.overlays.push(a),a}_drawRect(e,t,i,r,n,o,a){let l=this.overlayLayerView.drawRect(this.constructor.name,e,t,i,r,n,o,a);return o||this.overlays.push(l),l}_drawComplexRect(e,t,i,r){let n="M"+e.map(a=>a.x+","+a.y).join(" ")+"Z",o=this.overlayLayerView.drawPath(this.constructor.name,n,t,i,r);return i||this.overlays.push(o),o}_drawPath(e,t,i,r){let n=this.overlayLayerView.drawPath(this.constructor.name,e,t,i,r);return i||this.overlays.push(n),n}_drawText(e,t,i,r,n,o){let a=this.overlayLayerView.drawText(this.constructor.name,e,t,i,r,n,o);return n||this.overlays.push(a),a}_drawHTML(e,t,i,r,n,o,a,l){let c=this.overlayLayerView.drawHTML(this.constructor.name,e,t,i,r,n,o,a,l);return a||this.overlays.push(c),c}_drawTextWithBackground(e,t,i,r,n,o,a){let l=this.overlayLayerView.drawTextWithBackground(this.constructor.name,e,t,i,r,n,o,a);return o||this.overlays.push(...l),l}_drawTransformedRect(e,t,i,r){let n="M"+e.p1.x+" "+e.p1.y+" L"+e.p2.x+" "+e.p2.y+" L"+e.p3.x+" "+e.p3.y+" L"+e.p4.x+" "+e.p4.y+"Z",o=this.overlayLayerView.drawPath(this.constructor.name,n,t,i,r);return i||this.overlays.push(o),o}}});var N,J=u(()=>{"use strict";aa();X();N=class extends Wt{extendedItem;constructor(e,t,i){super(e,t),this.extendedItem=i}remove(){this.extensionManager.removeExtensionInstance(this.extendedItem,this)}createToolbar(e,t,i,r=I.Foreground){let n=e.content.cloneNode(!0);n.querySelectorAll("*").forEach(a=>{a.onpointerdown=l=>{this.designerCanvas.ignoreEvent(l)},a instanceof HTMLInputElement&&(a.addEventListener("keydown",l=>{this.designerCanvas.ignoreEvent(l)},{capture:!0}),a.addEventListener("keyup",l=>{this.designerCanvas.ignoreEvent(l)},{capture:!0}))});let o=document.createElementNS("http://www.w3.org/2000/svg","foreignObject");return o.classList.add("svg-toolbar-container"),o.setAttribute("width",""+t),o.setAttribute("height",""+i),o.appendChild(n),o.style.scale=""+1/this.designerCanvas.zoomFactor,o.style.transformBox="fill-box",this._addOverlay(o,r),o.updatePosition=a=>{o.style.scale=""+1/this.designerCanvas.zoomFactor;let l=this.overlayLayerView.getBoundingClientRect(),c=o.children[0].getBoundingClientRect(),h=this.designerCanvas.scaleFactor,d=l.width/h-this.designerCanvas.canvasOffset.x*h;c.width+a.x*h>d&&(a.x=(d-c.width)/h),a.x<-this.designerCanvas.canvasOffset.x&&(a.x=-this.designerCanvas.canvasOffset.x),o.setAttribute("x",""+a.x),o.setAttribute("y",""+a.y)},o.getById=a=>o.querySelector("#"+a),o}}});var qd,Rr,la=u(()=>{"use strict";te();gh();$e();J();qd=60,Rr=class extends N{_rect;_clickRect;_text;_width;_createTitleText;constructor(e,t,i,r){super(e,t,i),this._createTitleText=r}extend(e,t){let i=this.extendedItem.element.getBoxQuads({relativeTo:this.designerCanvas.canvas})[0];if(i&&!isNaN(i.p1.x)){let r=W(this.extendedItem.element),n=fh(this.extendedItem.name,"10px monospace"),o=Math.sqrt(Math.pow(i.p2.x-i.p1.x,2)+Math.pow(i.p2.y-i.p1.y,2)),a=this.extendedItem.name;this.extendedItem.id&&(a="#"+this.extendedItem.id),this._createTitleText&&(a=this._createTitleText(this.extendedItem)),this._width=Math.max(Math.min(o,n),qd),this._rect=this._drawRect(i.p1.x,i.p1.y,this._width,15,"svg-primary-selection-move",this._rect),this._clickRect=this._drawRect(i.p1.x,i.p1.y,this._width,18,"svg-invisible",this._clickRect),this._clickRect.style.background="transparent",this._text=this._drawHTML('<div style="position:relative; pointer-events: none;"><span style="width: 100%; position: absolute; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; transform-origin: 0 0; padding-left: 2px;">'+a+"</span></div>",(r.x-this.designerCanvas.containerBoundingRect.x)/this.designerCanvas.scaleFactor,i.p1.y-16,this._width,15,"svg-text-primary",this._text),this._text.style.overflow="visible",this._clickRect.addEventListener("pointerdown",l=>this._pointerEvent(l)),this._clickRect.addEventListener("pointermove",l=>this._pointerEvent(l)),this._clickRect.addEventListener("pointerup",l=>this._pointerEvent(l)),this._clickRect.addEventListener("contextmenu",l=>{l.preventDefault(),this.designerCanvas.showDesignItemContextMenu(this.extendedItem,l)}),this.refresh(e,t)}}_drawMoveOverlay(e){}refresh(e,t){let i=this.extendedItem.element.getBoxQuads({relativeTo:this.designerCanvas.canvas})[0];if(!isNaN(i.p1.x)){let r=Math.atan2(i.p2.y-i.p1.y,i.p2.x-i.p1.x)*180/Math.PI;if(this._valuesHaveChanges(i.p1.x,i.p1.y,r,this.designerCanvas.scaleFactor)){let n=15/this.designerCanvas.scaleFactor,o=-(16/this.designerCanvas.scaleFactor),a=this._width/this.designerCanvas.scaleFactor;this._rect.setAttribute("x",""+i.p1.x),this._rect.setAttribute("y",""+i.p1.y),this._rect.style.rotate=r+"deg",this._rect.style.translate="0 "+o+"px",this._rect.style.transformOrigin="0 100%",this._rect.style.transformBox="fill-box",this._rect.setAttribute("height",""+n),this._rect.setAttribute("width",""+a),this._rect.style.strokeWidth=(1/this.designerCanvas.scaleFactor).toString(),this._clickRect.setAttribute("x",""+i.p1.x),this._clickRect.setAttribute("y",""+i.p1.y),this._clickRect.style.rotate=r+"deg",this._clickRect.style.translate="0 "+o+"px",this._clickRect.style.transformOrigin="0 100%",this._clickRect.style.transformBox="fill-box",this._clickRect.setAttribute("height",""+(n+3)),this._clickRect.setAttribute("width",""+a),this._clickRect.style.strokeWidth=(1/this.designerCanvas.scaleFactor).toString(),this._text.setAttribute("x",""+i.p1.x),this._text.setAttribute("y",""+i.p1.y),this._text.style.fontSize=10/this.designerCanvas.scaleFactor+"px",this._text.setAttribute("height",""+n),this._text.setAttribute("width",""+a),this._text.children[0].children[0].style.rotate=r+"deg",this._text.children[0].children[0].style.translate="0 "+o+"px",this._text.children[0].children[0].style.transformOrigin="0 100%"}}}_pointerEvent(e){e.preventDefault(),e.stopPropagation(),e.button!=2&&this.designerCanvas.serviceContainer.designerTools.get(U.Pointer).pointerEventHandler(this.designerCanvas,e,this.extendedItem.element)}dispose(){this._removeAllOverlays()}}});import{css as Qd}from"@node-projects/base-custom-webcomponent";var Fr,ca=u(()=>{"use strict";la();Fr=class{_createTitleText;constructor(e){this._createTitleText=e}shouldExtend(e,t,i){return!i.isRootItem&&!(i.element instanceof HTMLTemplateElement)}getExtension(e,t,i){return new Rr(e,t,i,this._createTitleText)}static style=Qd`
|
|
273
273
|
.svg-text-primary { stroke: none; color: white; font-family: monospace; }
|
|
274
|
-
`}});var x,ee=u(()=>{"use strict";(function(s){s.PointerDown="pointerdown",s.PointerMove="pointermove",s.PointerUp="pointerup",s.DragEnter="dragenter",s.DragEnd="dragend",s.DragLeave="dragleave",s.DragOver="dragover",s.Drop="drop",s.Scroll="scroll",s.Wheel="wheel",s.ContextMenu="contextmenu",s.KeyDown="keydown",s.KeyUp="keyup",s.DblClick="dblclick"})(x||(x={}))});function ha(s,e,t){if(!s)return null;let i={px:n=>n,cm:n=>n*38,mm:n=>n*3.8,q:n=>n*.95,in:n=>n*96,pc:n=>n*16,pt:n=>n*1.333333,rem:n=>n*parseFloat(getComputedStyle(document.documentElement).fontSize),em:n=>n*parseFloat(getComputedStyle(e).fontSize),vw:n=>n/100*window.innerWidth,vh:n=>n/100*window.innerHeight,vmin:n=>n/100*(window.innerHeight<window.innerWidth?window.innerHeight:window.innerWidth),vmax:n=>n/100*(window.innerHeight>window.innerWidth?window.innerHeight:window.innerWidth),lh:n=>n*parseFloat(getComputedStyle(e).lineHeight),rlh:n=>n*parseFloat(getComputedStyle(document.documentElement).lineHeight),"%":n=>n/100*(t=="height"?zr(e).height:zr(e).width),ms:n=>n,s:n=>n*1e3,deg:n=>n,rad:n=>n*(180/Math.PI),grad:n=>n*(180/200),turn:n=>n*360},r=s.trim().match(yh);if(r){let n=Number(r[1]),o=r[2].toLowerCase();if(o in i)return i[o](n)}return s}function Et(s){let e=s.trim().match(yh);return e?e[2].toLowerCase():null}function
|
|
274
|
+
`}});var x,ee=u(()=>{"use strict";(function(s){s.PointerDown="pointerdown",s.PointerMove="pointermove",s.PointerUp="pointerup",s.DragEnter="dragenter",s.DragEnd="dragend",s.DragLeave="dragleave",s.DragOver="dragover",s.Drop="drop",s.Scroll="scroll",s.Wheel="wheel",s.ContextMenu="contextmenu",s.KeyDown="keydown",s.KeyUp="keyup",s.DblClick="dblclick"})(x||(x={}))});function ha(s,e,t){if(!s)return null;let i={px:n=>n,cm:n=>n*38,mm:n=>n*3.8,q:n=>n*.95,in:n=>n*96,pc:n=>n*16,pt:n=>n*1.333333,rem:n=>n*parseFloat(getComputedStyle(document.documentElement).fontSize),em:n=>n*parseFloat(getComputedStyle(e).fontSize),vw:n=>n/100*window.innerWidth,vh:n=>n/100*window.innerHeight,vmin:n=>n/100*(window.innerHeight<window.innerWidth?window.innerHeight:window.innerWidth),vmax:n=>n/100*(window.innerHeight>window.innerWidth?window.innerHeight:window.innerWidth),lh:n=>n*parseFloat(getComputedStyle(e).lineHeight),rlh:n=>n*parseFloat(getComputedStyle(document.documentElement).lineHeight),"%":n=>n/100*(t=="height"?zr(e).height:zr(e).width),ms:n=>n,s:n=>n*1e3,deg:n=>n,rad:n=>n*(180/Math.PI),grad:n=>n*(180/200),turn:n=>n*360},r=s.trim().match(yh);if(r){let n=Number(r[1]),o=r[2].toLowerCase();if(o in i)return i[o](n)}return s}function Et(s){let e=s.trim().match(yh);return e?e[2].toLowerCase():null}function jt(s,e,t,i,r){if(!s)return null;let n={px:o=>o,cm:o=>o/38,mm:o=>o/3.8,q:o=>o/.95,in:o=>o/96,pc:o=>o/16,pt:o=>o/1.333333,rem:o=>o/parseFloat(getComputedStyle(document.documentElement).fontSize),em:o=>o/parseFloat(getComputedStyle(e).fontSize),vw:o=>o*100/window.innerWidth,vh:o=>o*100/window.innerHeight,vmin:o=>o*100/(window.innerHeight<window.innerWidth?window.innerHeight:window.innerWidth),vmax:o=>o*100/(window.innerHeight>window.innerWidth?window.innerHeight:window.innerWidth),lh:o=>o/parseFloat(getComputedStyle(e).lineHeight),rlh:o=>o/parseFloat(getComputedStyle(document.documentElement).lineHeight),"%":o=>o*100/(t=="height"?zr(e).height:zr(e).width),ms:o=>o,s:o=>o/1e3,deg:o=>o,rad:o=>o/(180/Math.PI),grad:o=>o/(180/200),turn:o=>o/360};if(typeof s=="string"&&(s=ha(s,e,t)),i in n){let o=n[i](s);return r?r(o)+i:o+i}return r?r(s):s}function zr(s){return{width:s.offsetWidth,height:s.offsetHeight}}function ep(s){let e=s.split(" "),t=[];for(let i=0;i<e.length;i++){let r=e[i];if(r.startsWith("repeat("))for(;!r.includes(")");)i++,e[i]&&(r+=e[i]);t.push(r)}return t}function vh(s){let e=ep(s),t=[];for(let i of e)if(i.startsWith("repeat(")){let r=i.split(",");for(let n=0;n<parseInt(r[0].substring(7));n++)t.push(r[1].substring(0,r[1].length-1))}else t.push(i);return t.map(i=>Et(i))}var Jd,yh,da=u(()=>{"use strict";Jd=["px","cm","mm","q","in","pc","pt","rem","em","vw","vh","vmin","vmax","lh","rlh","%","ms","s","deg","rad","grad","turn","cqw","cqh","cqi","cqb","cqmin","cqmax","fr"],yh=new RegExp(`^([-+]?(?:\\d+(?:\\.\\d+)?))(${Jd.join("|")})$`,"i")});var Br,pa=u(()=>{"use strict";ee();da();te();be();J();Br=class extends N{_startPos;_circle;_circle2;_oldValue;_offsetInControl;constructor(e,t,i){super(e,t,i)}refresh(e,t){let r=getComputedStyle(this.extendedItem.element).transformOrigin.split(" "),n=this.designerCanvas.canvas.convertPointFromNode({x:parseFloat(r[0]),y:parseFloat(r[1])},this.extendedItem.element);this._valuesHaveChanges(n.x,n.y,this.designerCanvas.zoomFactor)&&(this._removeAllOverlays(),this._circle=this._drawCircle(n.x,n.y,5/this.designerCanvas.zoomFactor,"svg-transform-origin"),this._circle.style.strokeWidth=(1/this.designerCanvas.zoomFactor).toString(),this._circle.style.cursor="pointer",this._circle2=this._drawCircle(n.x,n.y,1/this.designerCanvas.zoomFactor,"svg-transform-origin"),this._circle2.style.strokeWidth=(1/this.designerCanvas.zoomFactor).toString(),this._circle2.style.pointerEvents="none",this._circle.addEventListener(x.PointerDown,o=>this.pointerEvent(o)),this._circle.addEventListener(x.PointerMove,o=>this.pointerEvent(o)),this._circle.addEventListener(x.PointerUp,o=>this.pointerEvent(o)))}extend(e,t){let r=getComputedStyle(this.extendedItem.element).transformOrigin.split(" "),n=this.designerCanvas.canvas.convertPointFromNode({x:parseFloat(r[0]),y:parseFloat(r[1])},this.extendedItem.element);if(isNaN(n.x)||isNaN(n.y)){this.remove();return}else{let o=this.extendedItem.getStyleFromSheetOrLocal("transform-origin");o&&(this._oldValue=o),this.refresh(e,t)}}pointerEvent(e){e.stopPropagation();let t=getComputedStyle(this.extendedItem.element),i=t.transformOrigin.split(" "),r=[];r[0]=parseFloat(i[0])/parseFloat(this.extendedItem.element.style.width),r[1]=parseFloat(i[1])/parseFloat(this.extendedItem.element.style.height);let n=this.designerCanvas.canvas.convertPointFromNode({x:parseFloat(i[0]),y:parseFloat(i[1])},this.extendedItem.element),o=this.designerCanvas.getNormalizedEventCoordinates(e),a=this.extendedItem.element.convertPointFromNode(o,this.designerCanvas.canvas),l=this.designerCanvas.getNormalizedEventCoordinates(e);switch(e.type){case x.PointerDown:e.target.setPointerCapture(e.pointerId);let c=W(e.target);this._offsetInControl={x:c.width/2+(c.x-e.x),y:c.height/2+(c.y-e.y)},this._startPos={x:l.x,y:l.y};break;case x.PointerMove:if(this._startPos&&e.buttons>0){let h=l.x-this._startPos.x,d=l.y-this._startPos.y;this._circle.setAttribute("cx",n.x+h),this._circle.setAttribute("cy",n.y+d),this._circle2.setAttribute("cx",n.x+h),this._circle2.setAttribute("cy",n.y+d)}break;case x.PointerUp:if(e.target.releasePointerCapture(e.pointerId),this._startPos){a.x+=this._offsetInControl.x,a.y+=this._offsetInControl.y;let h=this.extendedItem.openGroup("change transform-origin"),d=this.extendedItem.element.getBoxQuads({relativeTo:this.designerCanvas.rootDesignItem.element})[0];if(this._oldValue)try{let m=this._oldValue.split(" "),f=jt(a.x,this.extendedItem.element,"width",Et(m[0]),_=>O(this.extendedItem,_)),b=jt(a.x,this.extendedItem.element,"width",Et(m[0]),_=>O(this.extendedItem,_));m.length>1&&(b=jt(a.y,this.extendedItem.element,"height",Et(m[1]),_=>O(this.extendedItem,_))),this.extendedItem.updateStyleInSheetOrLocal("transform-origin",f+" "+b)}catch{this.extendedItem.updateStyleInSheetOrLocal("transform-origin",O(this.extendedItem,a.x)+"px "+O(this.extendedItem,a.y)+"px")}else this.extendedItem.updateStyleInSheetOrLocal("transform-origin",O(this.extendedItem,a.x)+"px "+O(this.extendedItem,a.y)+"px");let p=this.extendedItem.element.getBoxQuads({relativeTo:this.designerCanvas.rootDesignItem.element})[0],g={x:d.p1.x-p.p1.x,y:d.p1.y-p.p1.y};t.translate&&t.translate!=="none"&&(g.x+=parseFloat(t.translate.split(" ")[0]),t.translate.split(" ").length===1?g.y+=parseFloat(t.translate.split(" ")[0]):g.y+=parseFloat(t.translate.split(" ")[1])),this.extendedItem.updateStyleInSheetOrLocal("translate",O(this.extendedItem,g.x)+"px "+O(this.extendedItem,g.y)+"px"),h.commit(),this.refresh(null,null),this._startPos=null}break}}dispose(){this._removeAllOverlays()}}});import{css as tp}from"@node-projects/base-custom-webcomponent";var Vr,ma=u(()=>{"use strict";pa();te();Vr=class{showOnlyWhenSet;constructor(e=!0){this.showOnlyWhenSet=e}shouldExtend(e,t,i){if(!i.isRootItem&&i.node instanceof HTMLElement||i.node instanceof SVGElement&&i.node.localName==="svg"){if(!this.showOnlyWhenSet||i.hasStyle("transformOrigin"))return!0;let r=getComputedStyle(i.element);if(r.display!="inline"&&i.element.getBoundingClientRect){let n=W(i.element),o=r.transformOrigin.split(" "),a=parseFloat(o[0])-n.width/2,l=parseFloat(o[1])-n.height/2;if(a>.5||a<-.5||l>.5||l<-.5)return!0}}return!1}getExtension(e,t,i){return new Br(e,t,i)}static style=tp`
|
|
275
275
|
.svg-transform-origin { stroke: #3899ec; fill: black; pointer-events: all }
|
|
276
|
-
`}});var Hr,ua=u(()=>{"use strict";J();X();Hr=class extends N{constructor(e,t,i){super(e,t,i)}_path;_path2;extend(e,t){this.refresh(e,t)}refresh(e,t){let i=getComputedStyle(this.extendedItem.element);if(i.margin!=="0px"){let r=Number.parseFloat(i.marginLeft.replace("px","")),n=Number.parseFloat(i.marginTop.replace("px","")),o=Number.parseFloat(i.marginRight.replace("px","")),a=Number.parseFloat(i.marginBottom.replace("px",""));if(!isNaN(r)&&!isNaN(n)&&!isNaN(o)&&!isNaN(a)){let l=this.extendedItem.element.getBoxQuads({box:"border",relativeTo:this.designerCanvas.canvas})[0];if(!isNaN(l.p1.x)&&this._valuesHaveChanges(r,n,o,a,l.p1.x,l.p1.y,l.p2.x,l.p2.y,l.p3.x,l.p3.y,l.p4.x,l.p4.y)){let c=this.extendedItem.element.getBoxQuads({box:"margin",relativeTo:this.designerCanvas.canvas})[0],h="M"+[l.p1,l.p2,l.p3,l.p4].map(d=>d.x+","+d.y).join(" ")+"Z ";h+="M"+[c.p1,c.p2,c.p3,c.p4].map(d=>d.x+","+d.y).join(" ")+"Z ",this._path=this._drawPath(h,"svg-margin-fill",this._path,
|
|
276
|
+
`}});var Hr,ua=u(()=>{"use strict";J();X();Hr=class extends N{constructor(e,t,i){super(e,t,i)}_path;_path2;extend(e,t){this.refresh(e,t)}refresh(e,t){let i=getComputedStyle(this.extendedItem.element);if(i.margin!=="0px"){let r=Number.parseFloat(i.marginLeft.replace("px","")),n=Number.parseFloat(i.marginTop.replace("px","")),o=Number.parseFloat(i.marginRight.replace("px","")),a=Number.parseFloat(i.marginBottom.replace("px",""));if(!isNaN(r)&&!isNaN(n)&&!isNaN(o)&&!isNaN(a)){let l=this.extendedItem.element.getBoxQuads({box:"border",relativeTo:this.designerCanvas.canvas})[0];if(!isNaN(l.p1.x)&&this._valuesHaveChanges(r,n,o,a,l.p1.x,l.p1.y,l.p2.x,l.p2.y,l.p3.x,l.p3.y,l.p4.x,l.p4.y)){let c=this.extendedItem.element.getBoxQuads({box:"margin",relativeTo:this.designerCanvas.canvas})[0],h="M"+[l.p1,l.p2,l.p3,l.p4].map(d=>d.x+","+d.y).join(" ")+"Z ";h+="M"+[c.p1,c.p2,c.p3,c.p4].map(d=>d.x+","+d.y).join(" ")+"Z ",this._path=this._drawPath(h,"svg-margin-fill",this._path,I.Background),this._path2=this._drawPath(h,"svg-margin",this._path2,I.Background)}}}}dispose(){this._removeAllOverlays()}}});import{css as ip}from"@node-projects/base-custom-webcomponent";var Gr,fa=u(()=>{"use strict";ua();Z();Gr=class{shouldExtend(e,t,i){return i.nodeType==E.Element}getExtension(e,t,i){return new Hr(e,t,i)}style=ip`
|
|
277
277
|
.svg-margin-fill { fill: color(display-p3 1 0 1 / 15%); fill-rule: evenodd; }
|
|
278
278
|
.svg-margin { fill: color(display-p3 1 0 1 / 80%); fill-rule: evenodd; mask: url(#mask-stripe-margin); }
|
|
279
279
|
`;static svgDefs=`
|
|
@@ -285,17 +285,17 @@ var vd=Object.defineProperty;var u=(s,e)=>()=>(s&&(e=s(s=0)),e);var xd=(s,e)=>{f
|
|
|
285
285
|
</mask>
|
|
286
286
|
`}});var Wr,ga=u(()=>{"use strict";J();Wr=class extends N{_line1;_line2;_line3;_line4;_textX;_textY;constructor(e,t,i){super(e,t,i)}extend(){this.refresh()}_oldValues=[];refresh(){let e=this.designerCanvas.getNormalizedElementCoordinates(this.extendedItem.element),t=this.designerCanvas.getNormalizedElementCoordinates(this.extendedItem.parent.element);if(this._valuesHaveChanges(this.designerCanvas.scaleFactor,e.x,e.y,t.x,t.y,e.height,e.width,t.height,t.width)){this._line1=this._drawLine(t.x,e.y+e.height/2,e.x,e.y+e.height/2,"svg-position",this._line1),this._line2=this._drawLine(t.x+t.width,e.y+e.height/2,e.x+e.width,e.y+e.height/2,"svg-position",this._line2),this._line3=this._drawLine(e.x+e.width/2,t.y,e.x+e.width/2,e.y,"svg-position",this._line3),this._line4=this._drawLine(e.x+e.width/2,t.y+t.height,e.x+e.width/2,e.y+e.height,"svg-position",this._line4),this._line1.style.strokeWidth=""+1/this.designerCanvas.scaleFactor,this._line2.style.strokeWidth=""+1/this.designerCanvas.scaleFactor,this._line3.style.strokeWidth=""+1/this.designerCanvas.scaleFactor,this._line4.style.strokeWidth=""+1/this.designerCanvas.scaleFactor,this._line1.style.strokeDasharray=""+4/this.designerCanvas.scaleFactor,this._line2.style.strokeDasharray=""+4/this.designerCanvas.scaleFactor,this._line3.style.strokeDasharray=""+4/this.designerCanvas.scaleFactor,this._line4.style.strokeDasharray=""+4/this.designerCanvas.scaleFactor;let i=Math.round(e.x-t.x),r=Math.round(e.y-t.y);this._textX=this._drawTextWithBackground(""+i,t.x+i/2,e.y+e.height/2,"white","svg-position-text",this._textX),this._textX[2].style.fontSize=12/this.designerCanvas.scaleFactor+"px",this._textX[3].style.fontSize=12/this.designerCanvas.scaleFactor+"px",this._textY=this._drawTextWithBackground(""+r,e.x+e.width/2,t.y+r/2,"white","svg-position-text",this._textY),this._textY[2].style.fontSize=12/this.designerCanvas.scaleFactor+"px",this._textY[3].style.fontSize=12/this.designerCanvas.scaleFactor+"px"}}dispose(){this._removeAllOverlays()}}});import{css as rp}from"@node-projects/base-custom-webcomponent";var jr,ya=u(()=>{"use strict";ga();jr=class{shouldExtend(e,t,i){if(!i?.parent||i.element instanceof HTMLTemplateElement)return!1;let r=getComputedStyle(i.element);return r.position==="relative"||r.position==="absolute"}getExtension(e,t,i){return new Wr(e,t,i)}static style=rp`
|
|
287
287
|
.svg-position-text { text-anchor: middle; alignment-baseline: central; }
|
|
288
|
-
`}});var Ur,va=u(()=>{"use strict";J();X();Ur=class extends N{_rect;constructor(e,t,i){super(e,t,i)}extend(){this.refresh()}refresh(){let e=this.extendedItem.element.getBoxQuads({relativeTo:this.designerCanvas.canvas})[0];isNaN(e.p1.x)||(this._rect=this._drawTransformedRect(e,"svg-hover",this._rect,
|
|
288
|
+
`}});var Ur,va=u(()=>{"use strict";J();X();Ur=class extends N{_rect;constructor(e,t,i){super(e,t,i)}extend(){this.refresh()}refresh(){let e=this.extendedItem.element.getBoxQuads({relativeTo:this.designerCanvas.canvas})[0];isNaN(e.p1.x)||(this._rect=this._drawTransformedRect(e,"svg-hover",this._rect,I.Background),this._rect.style.strokeWidth=(3/this.designerCanvas.scaleFactor).toString())}dispose(){this._removeAllOverlays()}}});import{css as np}from"@node-projects/base-custom-webcomponent";var Kr,xa=u(()=>{"use strict";va();Kr=class{shouldExtend(e,t,i){return!(i.element instanceof HTMLTemplateElement)}getExtension(e,t,i){return new Ur(e,t,i)}static style=np`
|
|
289
289
|
.svg-hover { stroke: #90caf966; fill: none; }
|
|
290
|
-
`}});var le,_a=u(()=>{"use strict";(function(s){s.DragOrSelect="DragOrSelect",s.Drag="Drag",s.Resize="Resize",s.Rotate="Rotate",s.DrawSelection="DrawSelection",s.DrawingSelection="DrawingSelection"})(le||(le={}))});var Yr,ba=u(()=>{"use strict";ee();_a();q();De();$e();Ne();Yr=class s{cursor="default";_minMoveOffset=5;_movedSinceStartedAction=!1;_initialPoint;_actionType;_actionStartedDesignItem;_actionStartedDesignItems;_clonedItems;_copiedItemsInserted=!1;_previousEventName;_dragOverExtensionItem;_dragParentExtensionItem;_moveItemsOffset={x:0,y:0};_initialOffset;_started=!1;_holdTimeout;_firstTimeInMove;_secondTimeInMove;_changeGroup;constructor(){}activated(e){}dispose(){}_showContextMenu(e,t){if(e.preventDefault(),!j(e)){let i=t.elementsFromPoint(e.x,e.y);for(let o of t.instanceServiceContainer.selectionService.selectedElements)if(i.indexOf(o.element)>=0){t.showDesignItemContextMenu(t.instanceServiceContainer.selectionService.primarySelection,e);return}let r=t.serviceContainer.elementAtPointService.getElementAtPoint(t,{x:e.x,y:e.y}),n=T.GetOrCreateDesignItem(r,r,t.serviceContainer,t.instanceServiceContainer);t.instanceServiceContainer.selectionService.isSelected(n)||t.instanceServiceContainer.selectionService.setSelectedElements([n],e),t.showDesignItemContextMenu(n,e)}}pointerEventHandler(e,t,i){j(t)?this.cursor="copy":this.cursor="default";let r=e.serviceContainer.elementInteractionServices;if(r){for(let a of r)if(a.stopEventHandling(e,t,i))return}if(t.button==2&&t.type==x.PointerDown){this._showContextMenu(t,e);return}if(j(t)&&t.shiftKey||t.buttons==4){let a=e.serviceContainer.designerTools.get(U.Pan);if(a){a.pointerEventHandler(e,t,i);return}}switch(t.type){case x.PointerDown:t.target.setPointerCapture(t.pointerId),e.captureActiveTool(this),this._movedSinceStartedAction=!1,this._copiedItemsInserted=!1,this._clonedItems=null,this._firstTimeInMove=!1,this._secondTimeInMove=!1;break;case x.PointerUp:t.target.releasePointerCapture(t.pointerId),e.releaseActiveTool(),this._copiedItemsInserted=!1,this._clonedItems=null,this._firstTimeInMove=!1,this._secondTimeInMove=!1;break;case x.PointerMove:this._firstTimeInMove&&(this._secondTimeInMove=!0),this._secondTimeInMove?this._firstTimeInMove=!1:this._firstTimeInMove=!0;break}if(!i)return;let n=e.getNormalizedEventCoordinates(t),o=T.GetOrCreateDesignItem(i,i,e.serviceContainer,e.instanceServiceContainer);this._actionType==null&&(this._initialPoint=n,this._initialOffset=e.getNormalizedOffsetInElement(t,i),t.shiftKey?(t.preventDefault(),this._actionType=le.DrawSelection):t.type==x.PointerDown&&(this._actionStartedDesignItem=o,this._actionStartedDesignItems=[...e.instanceServiceContainer.selectionService.selectedElements],e.snapLines.clearSnaplines(),o!==e.rootDesignItem?this._actionType=le.Drag:i===e||i===e.rootDesignItem.element||i==null?this._actionType=le.DrawSelection:this._actionType=le.DragOrSelect)),t.type===x.PointerMove&&(this._movedSinceStartedAction=this._movedSinceStartedAction||Math.abs(n.x-this._initialPoint.x)>this._minMoveOffset||Math.abs(n.y-this._initialPoint.y)>this._minMoveOffset,this._actionType==le.DrawSelection&&(this._actionType=le.DrawingSelection)),this._actionType==le.DrawSelection||this._actionType==le.DrawingSelection?this._pointerActionTypeDrawSelection(e,t,i):(this._actionType==le.DragOrSelect||this._actionType==le.Drag)&&this._pointerActionTypeDragOrSelect(e,t,o,n),t.type==x.PointerUp&&(e.snapLines.clearSnaplines(),this._actionType==le.DrawSelection&&o!==e.rootDesignItem&&e.instanceServiceContainer.selectionService.setSelectedElements([o],t),this._resetTool()),this._previousEventName=t.type}_resetTool(){this._actionType=null,this._actionStartedDesignItem=null,this._actionStartedDesignItems=null,this._movedSinceStartedAction=!1,this._initialPoint=null}_pointerActionTypeDrawSelection(e,t,i){let r=e.serviceContainer.designerTools.get(U.DrawSelection);r&&(this._resetTool(),r.pointerEventHandler(e,t,i))}async _pointerActionTypeDragOrSelect(e,t,i,r,n=!1){if(this._holdTimeout&&(clearTimeout(this._holdTimeout),this._holdTimeout=null),t.altKey&&t.type==x.PointerDown){let o=e.instanceServiceContainer.selectionService.primarySelection;if(o){let a=e.elementsFromPoint(t.x,t.y),l=a.indexOf(o.element);l>=0&&l++;let c=a[l];c&&(i=T.GetOrCreateDesignItem(c,c,e.serviceContainer,e.instanceServiceContainer))}}switch(t.type){case x.PointerDown:{this._actionStartedDesignItem=i,this._moveItemsOffset={x:0,y:0},this._actionStartedDesignItems=[...e.instanceServiceContainer.selectionService.selectedElements],e.alignOnSnap&&e.snapLines.calculateSnaplines(e.instanceServiceContainer.selectionService.selectedElements);break}case x.PointerMove:{if(t.buttons==0)return;if(this._firstTimeInMove&&(i.instanceServiceContainer.selectionService.selectedElements.includes(i)||(j(t)?i.instanceServiceContainer.selectionService.setSelectedElements([...i.instanceServiceContainer.selectionService.selectedElements,i],t):i.instanceServiceContainer.selectionService.setSelectedElements([i],t),this._actionStartedDesignItems=[...e.instanceServiceContainer.selectionService.selectedElements],e.alignOnSnap&&e.snapLines.calculateSnaplines(e.instanceServiceContainer.selectionService.selectedElements))),!this._clonedItems){this._clonedItems=[];for(let a of this._actionStartedDesignItems){let l=await a.clone();this._clonedItems&&l&&this._clonedItems.push(l)}}if(!this._actionStartedDesignItem)return;if(this._changeGroup||(this._changeGroup=e.rootDesignItem.openGroup("Move Elements"),window.addEventListener("pointerup",()=>{this._changeGroup?.abort(),this._changeGroup=null},{once:!0})),j(t)&&!this._copiedItemsInserted){this._changeGroup.title="Copy Elements",this._copiedItemsInserted=!0;for(let a=0;a<this._clonedItems.length;a++)this._actionStartedDesignItems[a].insertAdjacentElement(this._clonedItems[a],"beforebegin");e.instanceServiceContainer.contentService.onContentChanged.emit({changeType:"added",designItems:this._clonedItems})}else if(!j(t)&&this._copiedItemsInserted){this._changeGroup.title="Move Elements";for(let a of this._clonedItems)a.remove();this._copiedItemsInserted=!1,e.instanceServiceContainer.contentService.onContentChanged.emit({changeType:"removed",designItems:this._clonedItems})}let o=r.x!=this._initialPoint.x||r.y!=this._initialPoint.y;if(this._actionType!=le.Drag&&o&&(this._actionType=le.Drag),this._movedSinceStartedAction){let a=getComputedStyle(this._actionStartedDesignItem.parent.element),l=e.serviceContainer.getLastServiceWhere("containerService",c=>c.serviceForContainer(this._actionStartedDesignItem.parent,a,this._actionStartedDesignItem));if(l){let c=this._actionStartedDesignItem.parent;this._dragParentExtensionItem!=c?(e.extensionManager.removeExtension(this._dragParentExtensionItem,w.ContainerDrag),e.extensionManager.applyExtension(c,w.ContainerDrag,t),this._dragParentExtensionItem=c):e.extensionManager.refreshExtension(c,w.ContainerDrag);let h=l.canLeave(this._actionStartedDesignItem.parent,this._actionStartedDesignItems),d=null,p=null;if(h&&([d,p]=s.FindPossibleContainer(this._actionStartedDesignItem,this._actionStartedDesignItems,t),d!=null?this._dragOverExtensionItem!=d?(e.extensionManager.removeExtension(this._dragOverExtensionItem,w.ContainerDragOverAndCanBeEntered),e.extensionManager.applyExtension(d,w.ContainerDragOverAndCanBeEntered,t),this._dragOverExtensionItem=d):e.extensionManager.refreshExtension(d,w.ContainerDragOverAndCanBeEntered,t):this._dragOverExtensionItem&&(e.extensionManager.removeExtension(this._dragOverExtensionItem,w.ContainerDragOverAndCanBeEntered),this._dragOverExtensionItem=null)),p&&(this._holdTimeout=setTimeout(()=>{this._pointerActionTypeDragOrSelect(e,t,i,r,!0)},1e3)),p&&(t.altKey||n)){let g=l.getElementOffset(this._actionStartedDesignItem.parent,this._actionStartedDesignItem),m=p.getElementOffset(d,this._actionStartedDesignItem);this._moveItemsOffset={x:m.x-g.x+this._moveItemsOffset.x,y:m.y-g.y+this._moveItemsOffset.y},l.leaveContainer(this._actionStartedDesignItem.parent,this._actionStartedDesignItems);let f={x:r.x-this._moveItemsOffset.x,y:r.y-this._moveItemsOffset.y};p.enterContainer(d,this._actionStartedDesignItems,"normal"),p.place(t,e,this._actionStartedDesignItem.parent,this._initialPoint,this._initialOffset,f,this._actionStartedDesignItems),e.extensionManager.removeExtension(this._dragParentExtensionItem,w.ContainerDrag),e.extensionManager.applyExtension(d,w.ContainerDrag,t),this._dragParentExtensionItem=d,e.extensionManager.removeExtension(this._dragOverExtensionItem,w.ContainerDragOverAndCanBeEntered),this._dragOverExtensionItem=null,e.extensionManager.refreshAllAppliedExtentions()}else{let g={x:r.x-this._moveItemsOffset.x,y:r.y-this._moveItemsOffset.y};if(!this._started){for(let m of this._actionStartedDesignItems)e.extensionManager.removeExtension(m,w.Placement),e.extensionManager.removeExtension(m,w.MouseOver),e.extensionManager.applyExtension(m,w.Placement,t);l.startPlace(t,e,this._actionStartedDesignItem.parent,this._initialPoint,this._initialOffset,g,this._actionStartedDesignItems),this._started=!0}l.place(t,e,this._actionStartedDesignItem.parent,this._initialPoint,this._initialOffset,g,this._actionStartedDesignItems)}e.extensionManager.refreshExtensions(this._actionStartedDesignItems,null,t,null,20)}}break}case x.PointerUp:{if(this._started=!1,!this._movedSinceStartedAction||this._actionType==le.DragOrSelect){this._previousEventName==x.PointerDown&&!j(t)?e.instanceServiceContainer.selectionService.setSelectedElements([this._actionStartedDesignItem],t):this.checkSelectElement(t,e,i);return}if(this._movedSinceStartedAction){let o=getComputedStyle(this._actionStartedDesignItem.parent.element),a=e.serviceContainer.getLastServiceWhere("containerService",c=>c.serviceForContainer(this._actionStartedDesignItem.parent,o,this._actionStartedDesignItem)),l={x:r.x-this._moveItemsOffset.x,y:r.y-this._moveItemsOffset.y};if(a){this._changeGroup||(this._changeGroup=e.rootDesignItem.openGroup("Move Elements"));try{a.finishPlace(t,e,this._actionStartedDesignItem.parent,this._initialPoint,this._initialOffset,l,e.instanceServiceContainer.selectionService.selectedElements),this._changeGroup.commit(),this._changeGroup=null}catch(h){console.error(h),this._changeGroup.abort()}this._changeGroup=null;let c=e.elementsFromPoint(t.x,t.y);for(let h of this._actionStartedDesignItems)c.includes(h.element)&&e.extensionManager.applyExtension(h,w.MouseOver,t),e.extensionManager.removeExtension(h,w.Placement)}else this._changeGroup&&this._changeGroup.abort(),this._changeGroup=null;e.extensionManager.removeExtension(this._dragParentExtensionItem,w.ContainerDrag),this._dragParentExtensionItem=null,e.extensionManager.removeExtension(this._dragOverExtensionItem,w.ContainerDragOverAndCanBeEntered),this._dragOverExtensionItem=null,this._moveItemsOffset={x:0,y:0}}e.extensionManager.refreshExtensions(e.instanceServiceContainer.selectionService.selectedElements,null,t,null,20),this._changeGroup&&(this._changeGroup.abort(),this._changeGroup=null);break}}}checkSelectElement(e,t,i){if(j(e)){let r=t.instanceServiceContainer.selectionService.selectedElements.indexOf(i);if(r>=0){let n=t.instanceServiceContainer.selectionService.selectedElements.slice(0);n.splice(r,1),t.instanceServiceContainer.selectionService.setSelectedElements(n,e)}else{let n=t.instanceServiceContainer.selectionService.selectedElements.slice(0);n.push(i),t.instanceServiceContainer.selectionService.setSelectedElements(n,e)}}else t.instanceServiceContainer.selectionService.selectedElements.indexOf(i)<0&&t.instanceServiceContainer.selectionService.setSelectedElements([i],e)}static FindPossibleContainer(e,t,i){let r=null,n=null,o=e.instanceServiceContainer.designerCanvas,a=o.elementsFromPoint(i.x,i.y);a.push(o.rootDesignItem.element);for(let l of a)if(l!=e.element){if(l==e.parent.element)break;if(l==o.rootDesignItem.element){r=o.rootDesignItem;let c=getComputedStyle(r.element);n=o.serviceContainer.getLastServiceWhere("containerService",h=>h.serviceForContainer(r,c,e));break}else{r=T.GetOrCreateDesignItem(l,l,o.serviceContainer,o.instanceServiceContainer);let c=getComputedStyle(r.element);if(n=o.serviceContainer.getLastServiceWhere("containerService",h=>h.serviceForContainer(r,c,e)),n){if(n.canEnter(r,t))break;r=null,n=null;continue}}}return[r,n]}keyboardEventHandler(e,t,i){}}});var oe,He=u(()=>{"use strict";oe=class{constructor(e,t,i){this.title="Insert Item",this.containerItem=e,this.index=t,this.newItem=i}title;get affectedItems(){return[this.containerItem,this.newItem]}undo(){this.newItem.parent._removeChildInternal(this.newItem),this.affectedItems[0].instanceServiceContainer.contentService.onContentChanged.emit({changeType:"removed",designItems:[this.newItem]})}do(){this.containerItem._insertChildInternal(this.newItem,this.index),this.affectedItems[0].instanceServiceContainer.contentService.onContentChanged.emit({changeType:"added",designItems:[this.newItem]})}containerItem;index;newItem;mergeWith(e){return!1}}});var Xr,wa=u(()=>{"use strict";ee();Oe();He();q();X();Xr=class{cursor="crosshair";_pathD;_path;_samePoint=!1;_p2pMode=!1;_dragMode=!1;_pointerMoved=!1;_eventStarted=!1;_lastPoint;_startPoint;constructor(){}activated(e){}dispose(){}pointerEventHandler(e,t,i){let r=e.getNormalizedEventCoordinates(t),n=10;switch(t.type){case x.PointerDown:this._eventStarted=!0,this._p2pMode||(t.target.setPointerCapture(t.pointerId),e.captureActiveTool(this),this._path=document.createElementNS("http://www.w3.org/2000/svg","path"),this._pathD="M "+r.x+" "+r.y+" ",this._path.setAttribute("d",this._pathD),this._path.setAttribute("stroke",e.serviceContainer.globalContext.strokeColor),this._path.setAttribute("fill",e.serviceContainer.globalContext.fillBrush),this._path.setAttribute("stroke-width",e.serviceContainer.globalContext.strokeThickness),e.overlayLayer.addOverlay(this.constructor.name,this._path,k.Foreground),this._startPoint=r),this._lastPoint!=null&&this._lastPoint.x===r.x&&this._lastPoint.y===r.y&&!this._samePoint&&(this._samePoint=!0),this._lastPoint==null&&(this._lastPoint=r),this._startPoint==null&&(this._startPoint=r);break;case x.PointerMove:if(this._eventStarted&&(this._pointerMoved=!0),!this._p2pMode)this._dragMode=!0,this._path&&(this._pathD+="L "+r.x+" "+r.y+" ",this._path.setAttribute("d",this._pathD));else if(this._path){let o=r;t.shiftKey&&(o=Ze(this._lastPoint,r)),this._path.setAttribute("d",this._pathD+"L "+o.x+" "+o.y)+""}break;case x.PointerUp:if(this._eventStarted&&!this._pointerMoved&&(this._p2pMode=!0),this._p2pMode&&!this._samePoint&&this._startPoint.x!=r.x&&this._startPoint.y!=r.y&&this._path)if(t.shiftKey){let o=Ze(this._lastPoint,r);this._pathD+="L "+o.x+" "+o.y+" ",this._path.setAttribute("d",this._pathD),this._lastPoint=o}else this._pathD+="L "+r.x+" "+r.y+" ",this._path.setAttribute("d",this._pathD),this._lastPoint=r;if(this._samePoint&&this._p2pMode||this._dragMode&&!this._p2pMode){t.target.releasePointerCapture(t.pointerId),e.releaseActiveTool(),this._eventStarted=!1,this._p2pMode=!1,this._pointerMoved=!1,this._samePoint=!1,this._dragMode=!1;let o=e.getNormalizedElementCoordinates(this._path);e.overlayLayer.removeOverlay(this._path);let a=document.createElementNS("http://www.w3.org/2000/svg","svg"),l=o.x-n,c=o.y-n,h=uh(this._path,l,c);this._path.setAttribute("d",h),this._path.removeAttribute("stroke"),this._path.removeAttribute("stroke-width"),this._path.removeAttribute("overlay-source"),a.appendChild(this._path),a.style.left=l+"px",a.style.top=c+"px",a.style.position="absolute",a.style.width=Math.round(o.width+2*n)+"px",a.style.height=Math.round(o.height+2*n)+"px",a.style.overflow="visible",a.style.stroke=e.serviceContainer.globalContext.strokeColor,a.style.strokeWidth=e.serviceContainer.globalContext.strokeThickness,this._path=null,this._pathD=null,this._lastPoint=null;let d=T.createDesignItemFromInstance(a,e.serviceContainer,e.instanceServiceContainer);e.instanceServiceContainer.undoService.execute(new oe(e.rootDesignItem,e.rootDesignItem.childCount,d)),e.serviceContainer.globalContext.finishedWithTool(this)}break}t.preventDefault(),t.stopPropagation()}keyboardEventHandler(e,t,i){}}});var Zr,Sa=u(()=>{"use strict";J();Zr=class extends N{_line1;_line2;_line3;_line4;constructor(e,t,i){super(e,t,i)}extend(e,t){this.refresh(e)}refresh(e,t){let i=this.extendedItem.element.getBoxQuads({box:"border",relativeTo:this.designerCanvas.canvas})[0];if(i){if(isNaN(i.p1.x)||isNaN(i.p2.x)){this.remove();return}this._valuesHaveChanges(this.designerCanvas.zoomFactor,i.p1.x,i.p1.y,i.p2.x,i.p2.y,i.p3.x,i.p3.y,i.p4.x,i.p4.y)&&(this._line1=this._drawLine(i.p1.x,i.p1.y,i.p2.x,i.p2.y,"svg-selection",this._line1),this._line2=this._drawLine(i.p1.x,i.p1.y,i.p4.x,i.p4.y,"svg-selection",this._line2),this._line3=this._drawLine(i.p2.x,i.p2.y,i.p3.x,i.p3.y,"svg-selection",this._line3),this._line4=this._drawLine(i.p4.x,i.p4.y,i.p3.x,i.p3.y,"svg-selection",this._line4),this._line1.style.strokeWidth=(2/this.designerCanvas.zoomFactor).toString(),this._line2.style.strokeWidth=(2/this.designerCanvas.zoomFactor).toString(),this._line3.style.strokeWidth=(2/this.designerCanvas.zoomFactor).toString(),this._line4.style.strokeWidth=(2/this.designerCanvas.zoomFactor).toString())}}dispose(){this._removeAllOverlays()}}});import{css as sp}from"@node-projects/base-custom-webcomponent";var $r,Ca=u(()=>{"use strict";Sa();Z();$r=class{shouldExtend(e,t,i){return!i.isRootItem&&i.nodeType!=E.Comment&&!(i.element instanceof HTMLTemplateElement)}getExtension(e,t,i){return new Zr(e,t,i)}static style=sp`
|
|
290
|
+
`}});var le,_a=u(()=>{"use strict";(function(s){s.DragOrSelect="DragOrSelect",s.Drag="Drag",s.Resize="Resize",s.Rotate="Rotate",s.DrawSelection="DrawSelection",s.DrawingSelection="DrawingSelection"})(le||(le={}))});var Yr,ba=u(()=>{"use strict";ee();_a();q();De();$e();Ne();Yr=class s{cursor="default";_minMoveOffset=5;_movedSinceStartedAction=!1;_initialPoint;_actionType;_actionStartedDesignItem;_actionStartedDesignItems;_clonedItems;_copiedItemsInserted=!1;_previousEventName;_dragOverExtensionItem;_dragParentExtensionItem;_moveItemsOffset={x:0,y:0};_initialOffset;_started=!1;_holdTimeout;_firstTimeInMove;_secondTimeInMove;_changeGroup;constructor(){}activated(e){}dispose(){}_showContextMenu(e,t){if(e.preventDefault(),!j(e)){let i=t.elementsFromPoint(e.x,e.y);for(let o of t.instanceServiceContainer.selectionService.selectedElements)if(i.indexOf(o.element)>=0){t.showDesignItemContextMenu(t.instanceServiceContainer.selectionService.primarySelection,e);return}let r=t.serviceContainer.elementAtPointService.getElementAtPoint(t,{x:e.x,y:e.y}),n=T.GetOrCreateDesignItem(r,r,t.serviceContainer,t.instanceServiceContainer);t.instanceServiceContainer.selectionService.isSelected(n)||t.instanceServiceContainer.selectionService.setSelectedElements([n],e),t.showDesignItemContextMenu(n,e)}}pointerEventHandler(e,t,i){j(t)?this.cursor="copy":this.cursor="default";let r=e.serviceContainer.elementInteractionServices;if(r){for(let a of r)if(a.stopEventHandling(e,t,i))return}if(t.button==2&&t.type==x.PointerDown){this._showContextMenu(t,e);return}if(j(t)&&t.shiftKey||t.buttons==4){let a=e.serviceContainer.designerTools.get(U.Pan);if(a){a.pointerEventHandler(e,t,i);return}}switch(t.type){case x.PointerDown:t.target.setPointerCapture(t.pointerId),e.captureActiveTool(this),this._movedSinceStartedAction=!1,this._copiedItemsInserted=!1,this._clonedItems=null,this._firstTimeInMove=!1,this._secondTimeInMove=!1;break;case x.PointerUp:t.target.releasePointerCapture(t.pointerId),e.releaseActiveTool(),this._copiedItemsInserted=!1,this._clonedItems=null,this._firstTimeInMove=!1,this._secondTimeInMove=!1;break;case x.PointerMove:this._firstTimeInMove&&(this._secondTimeInMove=!0),this._secondTimeInMove?this._firstTimeInMove=!1:this._firstTimeInMove=!0;break}if(!i)return;let n=e.getNormalizedEventCoordinates(t),o=T.GetOrCreateDesignItem(i,i,e.serviceContainer,e.instanceServiceContainer);this._actionType==null&&(this._initialPoint=n,this._initialOffset=e.getNormalizedOffsetInElement(t,i),t.shiftKey?(t.preventDefault(),this._actionType=le.DrawSelection):t.type==x.PointerDown&&(this._actionStartedDesignItem=o,this._actionStartedDesignItems=[...e.instanceServiceContainer.selectionService.selectedElements],e.snapLines.clearSnaplines(),o!==e.rootDesignItem?this._actionType=le.Drag:i===e||i===e.rootDesignItem.element||i==null?this._actionType=le.DrawSelection:this._actionType=le.DragOrSelect)),t.type===x.PointerMove&&(this._movedSinceStartedAction=this._movedSinceStartedAction||Math.abs(n.x-this._initialPoint.x)>this._minMoveOffset||Math.abs(n.y-this._initialPoint.y)>this._minMoveOffset,this._actionType==le.DrawSelection&&(this._actionType=le.DrawingSelection)),this._actionType==le.DrawSelection||this._actionType==le.DrawingSelection?this._pointerActionTypeDrawSelection(e,t,i):(this._actionType==le.DragOrSelect||this._actionType==le.Drag)&&this._pointerActionTypeDragOrSelect(e,t,o,n),t.type==x.PointerUp&&(e.snapLines.clearSnaplines(),this._actionType==le.DrawSelection&&o!==e.rootDesignItem&&e.instanceServiceContainer.selectionService.setSelectedElements([o],t),this._resetTool()),this._previousEventName=t.type}_resetTool(){this._actionType=null,this._actionStartedDesignItem=null,this._actionStartedDesignItems=null,this._movedSinceStartedAction=!1,this._initialPoint=null}_pointerActionTypeDrawSelection(e,t,i){let r=e.serviceContainer.designerTools.get(U.DrawSelection);r&&(this._resetTool(),r.pointerEventHandler(e,t,i))}async _pointerActionTypeDragOrSelect(e,t,i,r,n=!1){if(this._holdTimeout&&(clearTimeout(this._holdTimeout),this._holdTimeout=null),t.altKey&&t.type==x.PointerDown){let o=e.instanceServiceContainer.selectionService.primarySelection;if(o){let a=e.elementsFromPoint(t.x,t.y),l=a.indexOf(o.element);l>=0&&l++;let c=a[l];c&&(i=T.GetOrCreateDesignItem(c,c,e.serviceContainer,e.instanceServiceContainer))}}switch(t.type){case x.PointerDown:{this._actionStartedDesignItem=i,this._moveItemsOffset={x:0,y:0},this._actionStartedDesignItems=[...e.instanceServiceContainer.selectionService.selectedElements],e.alignOnSnap&&e.snapLines.calculateSnaplines(e.instanceServiceContainer.selectionService.selectedElements);break}case x.PointerMove:{if(t.buttons==0)return;if(this._firstTimeInMove&&(i.instanceServiceContainer.selectionService.selectedElements.includes(i)||(j(t)?i.instanceServiceContainer.selectionService.setSelectedElements([...i.instanceServiceContainer.selectionService.selectedElements,i],t):i.instanceServiceContainer.selectionService.setSelectedElements([i],t),this._actionStartedDesignItems=[...e.instanceServiceContainer.selectionService.selectedElements],e.alignOnSnap&&e.snapLines.calculateSnaplines(e.instanceServiceContainer.selectionService.selectedElements))),!this._clonedItems){this._clonedItems=[];for(let a of this._actionStartedDesignItems){let l=await a.clone();this._clonedItems&&l&&this._clonedItems.push(l)}}if(!this._actionStartedDesignItem)return;if(this._changeGroup||(this._changeGroup=e.rootDesignItem.openGroup("Move Elements"),window.addEventListener("pointerup",()=>{this._changeGroup?.abort(),this._changeGroup=null},{once:!0})),j(t)&&!this._copiedItemsInserted){this._changeGroup.title="Copy Elements",this._copiedItemsInserted=!0;for(let a=0;a<this._clonedItems.length;a++)this._actionStartedDesignItems[a].insertAdjacentElement(this._clonedItems[a],"beforebegin");e.instanceServiceContainer.contentService.onContentChanged.emit({changeType:"added",designItems:this._clonedItems})}else if(!j(t)&&this._copiedItemsInserted){this._changeGroup.title="Move Elements";for(let a of this._clonedItems)a.remove();this._copiedItemsInserted=!1,e.instanceServiceContainer.contentService.onContentChanged.emit({changeType:"removed",designItems:this._clonedItems})}let o=r.x!=this._initialPoint.x||r.y!=this._initialPoint.y;if(this._actionType!=le.Drag&&o&&(this._actionType=le.Drag),this._movedSinceStartedAction){let a=getComputedStyle(this._actionStartedDesignItem.parent.element),l=e.serviceContainer.getLastServiceWhere("containerService",c=>c.serviceForContainer(this._actionStartedDesignItem.parent,a,this._actionStartedDesignItem));if(l){let c=this._actionStartedDesignItem.parent;this._dragParentExtensionItem!=c?(e.extensionManager.removeExtension(this._dragParentExtensionItem,w.ContainerDrag),e.extensionManager.applyExtension(c,w.ContainerDrag,t),this._dragParentExtensionItem=c):e.extensionManager.refreshExtension(c,w.ContainerDrag);let h=l.canLeave(this._actionStartedDesignItem.parent,this._actionStartedDesignItems),d=null,p=null;if(h&&([d,p]=s.FindPossibleContainer(this._actionStartedDesignItem,this._actionStartedDesignItems,t),d!=null?this._dragOverExtensionItem!=d?(e.extensionManager.removeExtension(this._dragOverExtensionItem,w.ContainerDragOverAndCanBeEntered),e.extensionManager.applyExtension(d,w.ContainerDragOverAndCanBeEntered,t),this._dragOverExtensionItem=d):e.extensionManager.refreshExtension(d,w.ContainerDragOverAndCanBeEntered,t):this._dragOverExtensionItem&&(e.extensionManager.removeExtension(this._dragOverExtensionItem,w.ContainerDragOverAndCanBeEntered),this._dragOverExtensionItem=null)),p&&(this._holdTimeout=setTimeout(()=>{this._pointerActionTypeDragOrSelect(e,t,i,r,!0)},1e3)),p&&(t.altKey||n)){let g=l.getElementOffset(this._actionStartedDesignItem.parent,this._actionStartedDesignItem),m=p.getElementOffset(d,this._actionStartedDesignItem);this._moveItemsOffset={x:m.x-g.x+this._moveItemsOffset.x,y:m.y-g.y+this._moveItemsOffset.y},l.leaveContainer(this._actionStartedDesignItem.parent,this._actionStartedDesignItems);let f={x:r.x-this._moveItemsOffset.x,y:r.y-this._moveItemsOffset.y};p.enterContainer(d,this._actionStartedDesignItems,"normal"),p.place(t,e,this._actionStartedDesignItem.parent,this._initialPoint,this._initialOffset,f,this._actionStartedDesignItems),e.extensionManager.removeExtension(this._dragParentExtensionItem,w.ContainerDrag),e.extensionManager.applyExtension(d,w.ContainerDrag,t),this._dragParentExtensionItem=d,e.extensionManager.removeExtension(this._dragOverExtensionItem,w.ContainerDragOverAndCanBeEntered),this._dragOverExtensionItem=null,e.extensionManager.refreshAllAppliedExtentions()}else{let g={x:r.x-this._moveItemsOffset.x,y:r.y-this._moveItemsOffset.y};if(!this._started){for(let m of this._actionStartedDesignItems)e.extensionManager.removeExtension(m,w.Placement),e.extensionManager.removeExtension(m,w.MouseOver),e.extensionManager.applyExtension(m,w.Placement,t);l.startPlace(t,e,this._actionStartedDesignItem.parent,this._initialPoint,this._initialOffset,g,this._actionStartedDesignItems),this._started=!0}l.place(t,e,this._actionStartedDesignItem.parent,this._initialPoint,this._initialOffset,g,this._actionStartedDesignItems)}e.extensionManager.refreshExtensions(this._actionStartedDesignItems,null,t,null,20)}}break}case x.PointerUp:{if(this._started=!1,!this._movedSinceStartedAction||this._actionType==le.DragOrSelect){this._previousEventName==x.PointerDown&&!j(t)?e.instanceServiceContainer.selectionService.setSelectedElements([this._actionStartedDesignItem],t):this.checkSelectElement(t,e,i);return}if(this._movedSinceStartedAction){let o=getComputedStyle(this._actionStartedDesignItem.parent.element),a=e.serviceContainer.getLastServiceWhere("containerService",c=>c.serviceForContainer(this._actionStartedDesignItem.parent,o,this._actionStartedDesignItem)),l={x:r.x-this._moveItemsOffset.x,y:r.y-this._moveItemsOffset.y};if(a){this._changeGroup||(this._changeGroup=e.rootDesignItem.openGroup("Move Elements"));try{a.finishPlace(t,e,this._actionStartedDesignItem.parent,this._initialPoint,this._initialOffset,l,e.instanceServiceContainer.selectionService.selectedElements),this._changeGroup.commit(),this._changeGroup=null}catch(h){console.error(h),this._changeGroup.abort()}this._changeGroup=null;let c=e.elementsFromPoint(t.x,t.y);for(let h of this._actionStartedDesignItems)c.includes(h.element)&&e.extensionManager.applyExtension(h,w.MouseOver,t),e.extensionManager.removeExtension(h,w.Placement)}else this._changeGroup&&this._changeGroup.abort(),this._changeGroup=null;e.extensionManager.removeExtension(this._dragParentExtensionItem,w.ContainerDrag),this._dragParentExtensionItem=null,e.extensionManager.removeExtension(this._dragOverExtensionItem,w.ContainerDragOverAndCanBeEntered),this._dragOverExtensionItem=null,this._moveItemsOffset={x:0,y:0}}e.extensionManager.refreshExtensions(e.instanceServiceContainer.selectionService.selectedElements,null,t,null,20),this._changeGroup&&(this._changeGroup.abort(),this._changeGroup=null);break}}}checkSelectElement(e,t,i){if(j(e)){let r=t.instanceServiceContainer.selectionService.selectedElements.indexOf(i);if(r>=0){let n=t.instanceServiceContainer.selectionService.selectedElements.slice(0);n.splice(r,1),t.instanceServiceContainer.selectionService.setSelectedElements(n,e)}else{let n=t.instanceServiceContainer.selectionService.selectedElements.slice(0);n.push(i),t.instanceServiceContainer.selectionService.setSelectedElements(n,e)}}else t.instanceServiceContainer.selectionService.selectedElements.indexOf(i)<0&&t.instanceServiceContainer.selectionService.setSelectedElements([i],e)}static FindPossibleContainer(e,t,i){let r=null,n=null,o=e.instanceServiceContainer.designerCanvas,a=o.elementsFromPoint(i.x,i.y);a.push(o.rootDesignItem.element);for(let l of a)if(l!=e.element){if(l==e.parent.element)break;if(l==o.rootDesignItem.element){r=o.rootDesignItem;let c=getComputedStyle(r.element);n=o.serviceContainer.getLastServiceWhere("containerService",h=>h.serviceForContainer(r,c,e));break}else{r=T.GetOrCreateDesignItem(l,l,o.serviceContainer,o.instanceServiceContainer);let c=getComputedStyle(r.element);if(n=o.serviceContainer.getLastServiceWhere("containerService",h=>h.serviceForContainer(r,c,e)),n){if(n.canEnter(r,t))break;r=null,n=null;continue}}}return[r,n]}keyboardEventHandler(e,t,i){}}});var oe,He=u(()=>{"use strict";oe=class{constructor(e,t,i){this.title="Insert Item",this.containerItem=e,this.index=t,this.newItem=i}title;get affectedItems(){return[this.containerItem,this.newItem]}undo(){this.newItem.parent._removeChildInternal(this.newItem),this.affectedItems[0].instanceServiceContainer.contentService.onContentChanged.emit({changeType:"removed",designItems:[this.newItem]})}do(){this.containerItem._insertChildInternal(this.newItem,this.index),this.affectedItems[0].instanceServiceContainer.contentService.onContentChanged.emit({changeType:"added",designItems:[this.newItem]})}containerItem;index;newItem;mergeWith(e){return!1}}});var Xr,wa=u(()=>{"use strict";ee();Oe();He();q();X();Xr=class{cursor="crosshair";_pathD;_path;_samePoint=!1;_p2pMode=!1;_dragMode=!1;_pointerMoved=!1;_eventStarted=!1;_lastPoint;_startPoint;constructor(){}activated(e){}dispose(){}pointerEventHandler(e,t,i){let r=e.getNormalizedEventCoordinates(t),n=10;switch(t.type){case x.PointerDown:this._eventStarted=!0,this._p2pMode||(t.target.setPointerCapture(t.pointerId),e.captureActiveTool(this),this._path=document.createElementNS("http://www.w3.org/2000/svg","path"),this._pathD="M "+r.x+" "+r.y+" ",this._path.setAttribute("d",this._pathD),this._path.setAttribute("stroke",e.serviceContainer.globalContext.strokeColor),this._path.setAttribute("fill",e.serviceContainer.globalContext.fillBrush),this._path.setAttribute("stroke-width",e.serviceContainer.globalContext.strokeThickness),e.overlayLayer.addOverlay(this.constructor.name,this._path,I.Foreground),this._startPoint=r),this._lastPoint!=null&&this._lastPoint.x===r.x&&this._lastPoint.y===r.y&&!this._samePoint&&(this._samePoint=!0),this._lastPoint==null&&(this._lastPoint=r),this._startPoint==null&&(this._startPoint=r);break;case x.PointerMove:if(this._eventStarted&&(this._pointerMoved=!0),!this._p2pMode)this._dragMode=!0,this._path&&(this._pathD+="L "+r.x+" "+r.y+" ",this._path.setAttribute("d",this._pathD));else if(this._path){let o=r;t.shiftKey&&(o=Ze(this._lastPoint,r)),this._path.setAttribute("d",this._pathD+"L "+o.x+" "+o.y)+""}break;case x.PointerUp:if(this._eventStarted&&!this._pointerMoved&&(this._p2pMode=!0),this._p2pMode&&!this._samePoint&&this._startPoint.x!=r.x&&this._startPoint.y!=r.y&&this._path)if(t.shiftKey){let o=Ze(this._lastPoint,r);this._pathD+="L "+o.x+" "+o.y+" ",this._path.setAttribute("d",this._pathD),this._lastPoint=o}else this._pathD+="L "+r.x+" "+r.y+" ",this._path.setAttribute("d",this._pathD),this._lastPoint=r;if(this._samePoint&&this._p2pMode||this._dragMode&&!this._p2pMode){t.target.releasePointerCapture(t.pointerId),e.releaseActiveTool(),this._eventStarted=!1,this._p2pMode=!1,this._pointerMoved=!1,this._samePoint=!1,this._dragMode=!1;let o=e.getNormalizedElementCoordinates(this._path);e.overlayLayer.removeOverlay(this._path);let a=document.createElementNS("http://www.w3.org/2000/svg","svg"),l=o.x-n,c=o.y-n,h=uh(this._path,l,c);this._path.setAttribute("d",h),this._path.removeAttribute("stroke"),this._path.removeAttribute("stroke-width"),this._path.removeAttribute("overlay-source"),a.appendChild(this._path),a.style.left=l+"px",a.style.top=c+"px",a.style.position="absolute",a.style.width=Math.round(o.width+2*n)+"px",a.style.height=Math.round(o.height+2*n)+"px",a.style.overflow="visible",a.style.stroke=e.serviceContainer.globalContext.strokeColor,a.style.strokeWidth=e.serviceContainer.globalContext.strokeThickness,this._path=null,this._pathD=null,this._lastPoint=null;let d=T.createDesignItemFromInstance(a,e.serviceContainer,e.instanceServiceContainer);e.instanceServiceContainer.undoService.execute(new oe(e.rootDesignItem,e.rootDesignItem.childCount,d)),e.serviceContainer.globalContext.finishedWithTool(this)}break}t.preventDefault(),t.stopPropagation()}keyboardEventHandler(e,t,i){}}});var Zr,Sa=u(()=>{"use strict";J();Zr=class extends N{_line1;_line2;_line3;_line4;constructor(e,t,i){super(e,t,i)}extend(e,t){this.refresh(e)}refresh(e,t){let i=this.extendedItem.element.getBoxQuads({box:"border",relativeTo:this.designerCanvas.canvas})[0];if(i){if(isNaN(i.p1.x)||isNaN(i.p2.x)){this.remove();return}this._valuesHaveChanges(this.designerCanvas.zoomFactor,i.p1.x,i.p1.y,i.p2.x,i.p2.y,i.p3.x,i.p3.y,i.p4.x,i.p4.y)&&(this._line1=this._drawLine(i.p1.x,i.p1.y,i.p2.x,i.p2.y,"svg-selection",this._line1),this._line2=this._drawLine(i.p1.x,i.p1.y,i.p4.x,i.p4.y,"svg-selection",this._line2),this._line3=this._drawLine(i.p2.x,i.p2.y,i.p3.x,i.p3.y,"svg-selection",this._line3),this._line4=this._drawLine(i.p4.x,i.p4.y,i.p3.x,i.p3.y,"svg-selection",this._line4),this._line1.style.strokeWidth=(2/this.designerCanvas.zoomFactor).toString(),this._line2.style.strokeWidth=(2/this.designerCanvas.zoomFactor).toString(),this._line3.style.strokeWidth=(2/this.designerCanvas.zoomFactor).toString(),this._line4.style.strokeWidth=(2/this.designerCanvas.zoomFactor).toString())}}dispose(){this._removeAllOverlays()}}});import{css as sp}from"@node-projects/base-custom-webcomponent";var $r,Ca=u(()=>{"use strict";Sa();Z();$r=class{shouldExtend(e,t,i){return!i.isRootItem&&i.nodeType!=E.Comment&&!(i.element instanceof HTMLTemplateElement)}getExtension(e,t,i){return new Zr(e,t,i)}static style=sp`
|
|
291
291
|
.svg-selection { stroke: #3899ec; fill: transparent; stroke-width: 2; }
|
|
292
|
-
`}});function Ea(s=window){s.Node.prototype.getBoxQuads||(s.Node.prototype.getBoxQuads=function(e){return cp(this,e)}),s.Node.prototype.convertQuadFromNode||(s.Node.prototype.convertQuadFromNode=function(e,t,i){return op(this,e,t,i)}),s.Node.prototype.convertRectFromNode||(s.Node.prototype.convertRectFromNode=function(e,t,i){return ap(this,e,t,i)}),s.Node.prototype.convertPointFromNode||(s.Node.prototype.convertPointFromNode=function(e,t,i){return lp(this,e,t,i)})}function op(s,e,t,i){let r=dt(t,document.body,i?.iframes),n=dt(s,document.body,i?.iframes).inverse();i?.fromBox&&i?.fromBox!=="border"&&(e=new DOMQuad(ue(e.p1,i.fromBox,(s.ownerDocument.defaultView??window).getComputedStyle(t),-1),ue(e.p2,i.fromBox,(s.ownerDocument.defaultView??window).getComputedStyle(t),-1),ue(e.p3,i.fromBox,(s.ownerDocument.defaultView??window).getComputedStyle(t),-1),ue(e.p4,i.fromBox,(s.ownerDocument.defaultView??window).getComputedStyle(t),-1)));let o=new DOMQuad(n.transformPoint(r.transformPoint(e.p1)),n.transformPoint(r.transformPoint(e.p2)),n.transformPoint(r.transformPoint(e.p3)),n.transformPoint(r.transformPoint(e.p4)));return i?.toBox&&i?.toBox!=="border"&&(s instanceof Element||s instanceof(s.ownerDocument.defaultView??window).Element)&&(o=new DOMQuad(ue(o.p1,i.toBox,(s.ownerDocument.defaultView??window).getComputedStyle(s),-1),ue(o.p2,i.toBox,(s.ownerDocument.defaultView??window).getComputedStyle(s),-1),ue(o.p3,i.toBox,(s.ownerDocument.defaultView??window).getComputedStyle(s),-1),ue(o.p4,i.toBox,(s.ownerDocument.defaultView??window).getComputedStyle(s),-1))),o}function ap(s,e,t,i){let r=dt(t,(s.ownerDocument.defaultView??window).document.body.parentElement,i?.iframes),n=dt(s,(s.ownerDocument.defaultView??window).document.body.parentElement,i?.iframes).inverse();if(i?.fromBox&&i?.fromBox!=="border"){let a=ue(new DOMPoint(e.x,e.y),i.fromBox,(s.ownerDocument.defaultView??window).getComputedStyle(t),1);e=new DOMRect(a.x,a.y,e.width,e.height)}let o=new DOMQuad(n.transformPoint(r.transformPoint(new DOMPoint(e.x,e.y))),n.transformPoint(r.transformPoint(new DOMPoint(e.x+e.width,e.y))),n.transformPoint(r.transformPoint(new DOMPoint(e.x+e.width,e.y+e.height))),n.transformPoint(r.transformPoint(new DOMPoint(e.x,e.y+e.height))));return i?.toBox&&i?.toBox!=="border"&&(s instanceof Element||s instanceof(s.ownerDocument.defaultView??window).Element)&&(o=new DOMQuad(ue(o.p1,i.toBox,(s.ownerDocument.defaultView??window).getComputedStyle(s),-1),ue(o.p2,i.toBox,(s.ownerDocument.defaultView??window).getComputedStyle(s),-1),ue(o.p3,i.toBox,(s.ownerDocument.defaultView??window).getComputedStyle(s),-1),ue(o.p4,i.toBox,(s.ownerDocument.defaultView??window).getComputedStyle(s),-1))),o}function lp(s,e,t,i){let r=dt(t,(s.ownerDocument.defaultView??window).document.body.parentElement,i?.iframes),n=dt(s,document.body,i?.iframes).inverse();i?.fromBox&&i?.fromBox!=="border"&&(e=ue(e,i.fromBox,(s.ownerDocument.defaultView??window).getComputedStyle(t),1));let o=n.transformPoint(r.transformPoint(e));return i?.toBox&&i?.toBox!=="border"&&(s instanceof Element||s instanceof(s.ownerDocument.defaultView??window).Element)&&(o=ue(o,i.toBox,(s.ownerDocument.defaultView??window).getComputedStyle(s),-1)),o}function ue(s,e,t,i){return e==="margin"?new DOMPoint(s.x-i*parseFloat(t.marginLeft),s.y-i*parseFloat(t.marginTop)):e==="padding"?new DOMPoint(s.x+i*parseFloat(t.borderLeftWidth),s.y+i*parseFloat(t.borderTopWidth)):e==="content"?new DOMPoint(s.x+i*(parseFloat(t.borderLeftWidth)+parseFloat(t.paddingLeft)),s.y+i*(parseFloat(t.borderTopWidth)+parseFloat(t.paddingTop))):s}function At(){jt.clear(),Ut.clear()}function bh(){qe=new WeakMap,jt=new Map,Ut=new Map}function cp(s,e){let t;if(jt){let h=qe.get(s);h===void 0&&qe.set(s,h=qr++);let d=qe.get(e?.relativeTo??document.body);d===void 0&&qe.set(e?.relativeTo??document.body,d=qr++),t=h+"_"+d+"_"+(e?.box??"border");let p=jt.get(t);if(p)return p}let i=dt(s,e?.relativeTo??document.body,e?.iframes),{width:r,height:n}=Aa(s,i),o=[{x:0,y:0},{x:r,y:0},{x:r,y:n},{x:0,y:n}],a=Array(4),l=null;if(s instanceof Element||s instanceof(s.ownerDocument.defaultView??window).Element){if(e?.box==="margin"){let h=(s.ownerDocument.defaultView??window).getComputedStyle(s);l=[{x:parseFloat(h.marginLeft),y:parseFloat(h.marginTop)},{x:-parseFloat(h.marginRight),y:parseFloat(h.marginTop)},{x:-parseFloat(h.marginRight),y:-parseFloat(h.marginBottom)},{x:parseFloat(h.marginLeft),y:-parseFloat(h.marginBottom)}]}else if(e?.box==="padding"){let h=(s.ownerDocument.defaultView??window).getComputedStyle(s);l=[{x:-parseFloat(h.borderLeftWidth),y:-parseFloat(h.borderTopWidth)},{x:parseFloat(h.borderRightWidth),y:-parseFloat(h.borderTopWidth)},{x:parseFloat(h.borderRightWidth),y:parseFloat(h.borderBottomWidth)},{x:-parseFloat(h.borderLeftWidth),y:parseFloat(h.borderBottomWidth)}]}else if(e?.box==="content"){let h=(s.ownerDocument.defaultView??window).getComputedStyle(s);l=[{x:-parseFloat(h.borderLeftWidth)-parseFloat(h.paddingLeft),y:-parseFloat(h.borderTopWidth)-parseFloat(h.paddingTop)},{x:parseFloat(h.borderRightWidth)+parseFloat(h.paddingRight),y:-parseFloat(h.borderTopWidth)-parseFloat(h.paddingTop)},{x:parseFloat(h.borderRightWidth)+parseFloat(h.paddingRight),y:parseFloat(h.borderBottomWidth)+parseFloat(h.paddingBottom)},{x:-parseFloat(h.borderLeftWidth)-parseFloat(h.paddingLeft),y:parseFloat(h.borderBottomWidth)+parseFloat(h.paddingBottom)}]}}for(let h=0;h<4;h++){let d;l?d=new DOMPoint(o[h].x-l[h].x,o[h].y-l[h].y):d=new DOMPoint(o[h].x,o[h].y),a[h]=hp(d,i).matrixTransform(i),a[h]=dp(a[h])}let c=[new DOMQuad(a[0],a[1],a[2],a[3])];return jt&&jt.set(t,c),c}function hp(s,e){let t=-(s.x*e.m13+s.y*e.m23+e.m43)/e.m33;return new DOMPoint(s.x,s.y,t,1)}function dp(s){return new DOMPoint(s.x/s.w,s.y/s.w)}function Aa(s,e){let t=0,i=0;if(s instanceof HTMLElement||s instanceof(s.ownerDocument.defaultView??window).HTMLElement)t=s.offsetWidth,i=s.offsetHeight;else if(s instanceof SVGSVGElement||s instanceof(s.ownerDocument.defaultView??window).SVGSVGElement)t=s.width.baseVal.value,i=s.height.baseVal.value;else if(s instanceof SVGGraphicsElement||s instanceof(s.ownerDocument.defaultView??window).SVGGraphicsElement){let r=s.getBBox();t=r.width,i=r.height}else if(s instanceof MathMLElement||s instanceof(s.ownerDocument.defaultView??window).MathMLElement){let r=s.getBoundingClientRect();t=r.width/(e?.a??1),i=r.height/(e?.d??1)}else if(s instanceof Text||s instanceof(s.ownerDocument.defaultView??window).Text){let r=document.createRange();r.selectNodeContents(s);let n=r.getBoundingClientRect();t=n.width/(e?.a??1),i=n.height/(e?.d??1)}return{width:t,height:i}}function xh(s,e,t){if(s instanceof HTMLElement||s instanceof(s.ownerDocument.defaultView??window).HTMLElement)return new DOMPoint(s.offsetLeft-(e?s.scrollLeft:0),s.offsetTop-(e?s.scrollTop:0));if(s instanceof Text||s instanceof(s.ownerDocument.defaultView??window).Text){let i=document.createRange();i.selectNodeContents(s);let r=i.getBoundingClientRect(),n=Kt(s,t),o=n.getBoundingClientRect(),a=n.offsetWidth/o.width,l=n.offsetHeight/o.height;return new DOMPoint((r.x-o.x)*a,(r.y-o.y)*l)}else if(s instanceof Element||s instanceof(s.ownerDocument.defaultView??window).Element){if((s instanceof SVGGraphicsElement||s instanceof(s.ownerDocument.defaultView??window).SVGGraphicsElement)&&!(s instanceof SVGSVGElement||s instanceof(s.ownerDocument.defaultView??window).SVGSVGElement)){let h=s.getBBox();return new DOMPoint(h.x,h.y)}let i=(s.ownerDocument.defaultView??window).getComputedStyle(s);if(i.position==="absolute")return new DOMPoint(parseFloat(i.left),parseFloat(i.top));let r=Kt(s,t),n=dt(r,document.body,t),o=s.getBoundingClientRect(),a=n.inverse().transformPoint(o),l=r.getBoundingClientRect(),c=n.inverse().transformPoint(l);return new DOMPoint(a.x-c.x,a.y-c.y)}}function dt(s,e,t){let i;if(Ut){let c=qe.get(s);c===void 0&&qe.set(s,c=qr++);let h=qe.get(e);h===void 0&&qe.set(e,h=qr++),i=c+"_"+h;let d=Ut.get(i);if(d)return d}let r=s,n,o=pt(r,t),a=Kt(r,t);a&&(r.ownerDocument.defaultView??window).getComputedStyle(a).transformStyle!=="preserve-3d"&&_h(o);let l=null;for(;r!=e&&r!=null;){let c=Kt(r,t);if(r.assignedSlot!=null){let h=(a.ownerDocument.defaultView??window).getComputedStyle(r);h.position!=="static"&&(o=new DOMMatrix().translate(parseFloat(h.left),parseFloat(h.top)).multiply(o))}else if(r instanceof HTMLElement||r instanceof(r.ownerDocument.defaultView??window).HTMLElement){if(l!==r.offsetParent&&!(r instanceof HTMLSlotElement||r instanceof(r.ownerDocument.defaultView??window).HTMLSlotElement)){let h=xh(r,r!==s,t);l=r.offsetParent,o=new DOMMatrix().translate(h.x,h.y).multiply(o)}}else{let h=xh(r,r!==s,t);l=null,o=new DOMMatrix().translate(h.x,h.y).multiply(o)}if(c&&(n=pt(c,t),c!=e&&(o=n.multiply(o)),a=Kt(c,t),a&&(a.ownerDocument.defaultView??window).getComputedStyle(a).transformStyle!=="preserve-3d"&&_h(o),c===e))return(c.scrollTop||c.scrollLeft)&&(o=new DOMMatrix().translate(-c.scrollLeft,-c.scrollTop).multiply(o)),o;r=c}return Ut&&Ut.set(i,o),o}function Kt(s,e){if((s instanceof Element||s instanceof(s.ownerDocument.defaultView??window).Element)&&s.assignedSlot)return s.assignedSlot;if(s.parentElement==null&&(s.parentNode instanceof ShadowRoot||s.parentNode instanceof(s.ownerDocument.defaultView??window).ShadowRoot))return s.parentNode.host;if((s instanceof HTMLHtmlElement||s instanceof(s.ownerDocument.defaultView??window).HTMLHtmlElement)&&e){for(let t of e)if(t?.contentDocument==s.ownerDocument)return t}return s.parentElement}function pt(s,e){if(s instanceof Text||s instanceof(s.ownerDocument.defaultView??window).Text)return new DOMMatrix;let t=(s.ownerDocument.defaultView??window).getComputedStyle(s),i=new DOMMatrix,r=t.transformOrigin.split(" "),n=parseFloat(r[0]),o=parseFloat(r[1]),a=r[2]?parseFloat(r[2]):0,l=new DOMMatrix().translate(n,o,a);if(t.translate!="none"&&t.translate){let d=t.translate;if(d.includes("%")){let p=d.split(" "),g=s.getBoundingClientRect();p[0].endsWith("%")&&(p[0]=parseFloat(p[0])*g.width/100+"px"),p[1]?.endsWith("%")&&(p[1]=parseFloat(p[1])*g.height/100+"px"),d=p.join(",")}i=i.multiply(new DOMMatrix("translate("+d.replace(" ",",")+")"))}t.rotate!="none"&&t.rotate&&(i=i.multiply(new DOMMatrix("rotate("+t.rotate.replace(" ",",")+")"))),t.scale!="none"&&t.scale&&(i=i.multiply(new DOMMatrix("scale("+t.scale.replace(" ",",")+")"))),t.transform!="none"&&t.transform&&(i=i.multiply(new DOMMatrix(t.transform)));let c=l.multiply(i.multiply(l.inverse())),h=pp(s,e);return h!=null&&(c=h.multiply(c)),c}function _h(s){if(s.m31=0,s.m32=0,s.m13=0,s.m23=0,s.m33=1,s.m43=0,s.m34=0,s.m14==0&&s.m24==0&&s.m44!=1&&s.m44!=0){let e=1/s.m44;s.m11*=e,s.m12*=e,s.m21*=e,s.m22*=e,s.m41*=e,s.m42*=e,s.m44=1}}function pp(s,e){let t=Kt(s,e);if(t){let i=(s.ownerDocument.defaultView??window).getComputedStyle(t);if(i.perspective!=="none"){let r=new DOMMatrix,n=parseFloat(i.perspective);if(r.m34=-1/n,i.perspectiveOrigin){let o=i.perspectiveOrigin.split(" "),a=parseFloat(o[0])-s.offsetLeft,l=parseFloat(o[1])-s.offsetTop,c=new DOMMatrix().translate(a,l),h=new DOMMatrix().translate(-a,-l);return c.multiply(r.multiply(h))}}}return null}var qe,jt,Ut,qr,Pt=u(()=>{"use strict";qr=0});function Qr(s,e){switch(e){case"left":let t=getComputedStyle(s).left;return s.style.removeProperty("right"),s.style.left=t,t;case"top":let i=getComputedStyle(s).top;return s.style.removeProperty("bottom"),s.style.top=i,i}}var Jr,Pa=u(()=>{"use strict";ee();te();be();Mr();Pt();J();Jr=class extends N{resizeAllSelected;_initialSizes;_actionModeStarted;_initialPoint;_offsetPoint;_circle1;_circle2;_circle3;_circle4;_circle5;_circle6;_circle7;_circle8;_initialComputedTransformOrigins;_initialTransformOrigins;constructor(e,t,i,r){super(e,t,i),this.resizeAllSelected=r}extend(e,t){this.refresh(e,t)}refresh(e,t){let i=this.extendedItem.element.getBoxQuads({box:"border",relativeTo:this.designerCanvas.canvas})[0];if(i){if(isNaN(i.p1.x)||isNaN(i.p1.x)){this.remove();return}this._valuesHaveChanges(this.designerCanvas.zoomFactor,i.p1.x,i.p1.y,i.p2.x,i.p2.y,i.p3.x,i.p3.y,i.p4.x,i.p4.y)&&(this._circle1=this._drawResizerOverlay(i.p1.x,i.p1.y,"nw-resize",this._circle1),this._circle2=this._drawResizerOverlay(i.p1.x+(i.p2.x-i.p1.x)/2,i.p1.y+(i.p2.y-i.p1.y)/2,"n-resize",this._circle2),this._circle3=this._drawResizerOverlay(i.p2.x,i.p2.y,"ne-resize",this._circle3),this._circle4=this._drawResizerOverlay(i.p1.x+(i.p4.x-i.p1.x)/2,i.p1.y+(i.p4.y-i.p1.y)/2,"w-resize",this._circle4),this._circle5=this._drawResizerOverlay(i.p4.x,i.p4.y,"sw-resize",this._circle5),this._circle6=this._drawResizerOverlay(i.p4.x+(i.p3.x-i.p4.x)/2,i.p4.y+(i.p3.y-i.p4.y)/2,"s-resize",this._circle6),this._circle8=this._drawResizerOverlay(i.p2.x+(i.p3.x-i.p2.x)/2,i.p2.y+(i.p3.y-i.p2.y)/2,"e-resize",this._circle8),this._circle7=this._drawResizerOverlay(i.p3.x,i.p3.y,"se-resize",this._circle7))}}_drawResizerOverlay(e,t,i,r){let n=this._drawCircle(e,t,this.designerCanvas.serviceContainer.options.resizerPixelSize/this.designerCanvas.zoomFactor,"svg-primary-resizer",r);return n.style.strokeWidth=(1/this.designerCanvas.zoomFactor).toString(),r||(n.addEventListener(x.PointerDown,o=>this._pointerActionTypeResize(n,o,i)),n.addEventListener(x.PointerMove,o=>this._pointerActionTypeResize(n,o,i)),n.addEventListener(x.PointerUp,o=>this._pointerActionTypeResize(n,o,i))),n.style.cursor=i,n}_pointerActionTypeResize(e,t,i){t.stopPropagation();let r=this.designerCanvas.getNormalizedEventCoordinates(t);switch(t.type){case x.PointerDown:let n=parseFloat(e.getAttribute("cx")),o=parseFloat(e.getAttribute("cy"));this._offsetPoint={x:n-r.x,y:o-r.y},t.target.setPointerCapture(t.pointerId),this._initialPoint=r,this._initialSizes=[],this._actionModeStarted=i,this._initialComputedTransformOrigins=[],this._initialTransformOrigins=[];let a=this.extendedItem.element.style.transform;this.extendedItem.element.style.transform="";let l=W(this.extendedItem.element);this.extendedItem.element.style.transform=a;let c={x:0,y:0};getComputedStyle(this.extendedItem.element).boxSizing=="content-box"&&(c=sh(this.extendedItem.element)),this._initialSizes.push({width:(l.width-c.x*this.designerCanvas.scaleFactor)/this.designerCanvas.scaleFactor,height:(l.height-c.y*this.designerCanvas.scaleFactor)/this.designerCanvas.scaleFactor});let h=getComputedStyle(this.extendedItem.element).transformOrigin.split(" ").map(g=>parseFloat(g.replace("px",""))),d=new DOMPoint(h[0],h[1]);if(this._initialComputedTransformOrigins.push(d),this._initialTransformOrigins.push(this.extendedItem.element.style.transformOrigin),this.resizeAllSelected)for(let g of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements)l=W(g.element),this._initialSizes.push({width:l.width/this.designerCanvas.scaleFactor,height:l.height/this.designerCanvas.scaleFactor});if(this.designerCanvas.alignOnSnap&&this.designerCanvas.snapLines.calculateSnaplines(this.designerCanvas.instanceServiceContainer.selectionService.selectedElements),this.prepareResize(this.extendedItem,this._actionModeStarted),this.resizeAllSelected)for(let g of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements)g!==this.extendedItem&&this.prepareResize(g,this._actionModeStarted);break;case x.PointerMove:if(this._initialPoint){let g=getComputedStyle(this.extendedItem.parent.element),f=this.designerCanvas.serviceContainer.getLastServiceWhere("containerService",B=>B.serviceForContainer(this.extendedItem.parent,g)).placePoint(t,this.designerCanvas,this.extendedItem.parent,this._initialPoint,{x:0,y:0},r,this.designerCanvas.instanceServiceContainer.selectionService.selectedElements),b=Math.round(f.x-this._initialPoint.x-this._offsetPoint.x),_=Math.round(f.y-this._initialPoint.y-this._offsetPoint.y),C=pt(this.extendedItem.element),I=ra(new DOMPoint(b,_,0,0),C),P=I.x,D=I.y;t.shiftKey&&(P=P<D?P:D,D=P);let A=0,L=null,H=null;switch(this._actionModeStarted){case"e-resize":if(L=this._initialSizes[A].width+P,this.extendedItem.element.style.width=O(this.extendedItem,L)+"px",this.resizeAllSelected){A++;for(let B of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements)B!==this.extendedItem&&(B.element.style.width=O(this.extendedItem,this._initialSizes[A].width+P)+"px")}break;case"se-resize":if(L=this._initialSizes[A].width+P,this.extendedItem.element.style.width=O(this.extendedItem,L)+"px",H=this._initialSizes[A].height+D,this.extendedItem.element.style.height=O(this.extendedItem,H)+"px",this.resizeAllSelected){A++;for(let B of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements)B!==this.extendedItem&&(B.element.style.width=O(this.extendedItem,this._initialSizes[A].width+P)+"px",B.element.style.height=O(this.extendedItem,this._initialSizes[A].height+D)+"px")}break;case"s-resize":if(H=this._initialSizes[A].height+D,this.extendedItem.element.style.height=O(this.extendedItem,H)+"px",this.resizeAllSelected){A++;for(let B of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements)B!==this.extendedItem&&(B.element.style.height=O(this.extendedItem,this._initialSizes[A].height+D)+"px")}break;case"sw-resize":if(L=this._initialSizes[A].width-P,this.extendedItem.element.style.width=O(this.extendedItem,L)+"px",H=this._initialSizes[A].height+D,this.extendedItem.element.style.height=O(this.extendedItem,H)+"px",this.resizeAllSelected){A++;for(let B of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements)B!==this.extendedItem&&(B.element.style.width=O(this.extendedItem,this._initialSizes[A].width-P)+"px",B.element.style.height=O(this.extendedItem,this._initialSizes[A].height+D)+"px")}break;case"w-resize":if(L=this._initialSizes[A].width-P,this.extendedItem.element.style.width=O(this.extendedItem,L)+"px",this.resizeAllSelected){A++;for(let B of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements)B!==this.extendedItem&&(B.element.style.width=O(this.extendedItem,this._initialSizes[A].width-P)+"px")}break;case"nw-resize":if(L=this._initialSizes[A].width-P,this.extendedItem.element.style.width=O(this.extendedItem,L)+"px",H=this._initialSizes[A].height-D,this.extendedItem.element.style.height=O(this.extendedItem,H)+"px",this.resizeAllSelected){A++;for(let B of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements)B!==this.extendedItem&&(B.element.style.width=O(this.extendedItem,this._initialSizes[A].width-P)+"px",B.element.style.height=O(this.extendedItem,this._initialSizes[A].height-D)+"px")}break;case"n-resize":if(H=this._initialSizes[A].height-D,this.extendedItem.element.style.height=O(this.extendedItem,H)+"px",this.resizeAllSelected){A++;for(let B of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements)B!==this.extendedItem&&(B.element.style.height=O(this.extendedItem,this._initialSizes[A].height-D)+"px")}break;case"ne-resize":if(L=this._initialSizes[A].width+P,this.extendedItem.element.style.width=O(this.extendedItem,L)+"px",H=this._initialSizes[A].height-D,this.extendedItem.element.style.height=O(this.extendedItem,H)+"px",this.resizeAllSelected){A++;for(let B of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements)B!==this.extendedItem&&(B.element.style.width=O(this.extendedItem,this._initialSizes[A].width+P)+"px",B.element.style.height=O(this.extendedItem,this._initialSizes[A].height-D)+"px")}break}let ae=[this.extendedItem,this.extendedItem.parent];this.resizeAllSelected&&ae.push(...this.designerCanvas.instanceServiceContainer.selectionService.selectedElements),this.extensionManager.refreshExtensions(ae),this.designerCanvas?.raiseDesignItemsChanged(ae,"resize",!1)}break;case x.PointerUp:t.target.releasePointerCapture(t.pointerId);let p=this.extendedItem.openGroup(this.resizeAllSelected&&this.designerCanvas.instanceServiceContainer.selectionService.selectedElements.length>1?"Resize Elements":"Resize <"+this.extendedItem.name+">");try{this.extendedItem.setStyle("width",this.extendedItem.element.style.width),this.extendedItem.setStyle("height",this.extendedItem.element.style.height),this.extendedItem.setStyle("left",O(this.extendedItem,parseFloat(Qr(this.extendedItem.element,"left")))+"px"),this.extendedItem.setStyle("top",O(this.extendedItem,parseFloat(Qr(this.extendedItem.element,"top")))+"px");let g=new DOMPoint(this.extendedItem.element.offsetLeft+parseFloat(getComputedStyle(this.extendedItem.element).transformOrigin.split(" ")[0].replace("px","")),this.extendedItem.element.offsetTop+parseFloat(getComputedStyle(this.extendedItem.element).transformOrigin.split(" ")[1].replace("px","")));this.extendedItem.element.style.transformOrigin=this._initialTransformOrigins[0];let m=new DOMPoint(this.extendedItem.element.offsetLeft+parseFloat(getComputedStyle(this.extendedItem.element).transformOrigin.split(" ")[0].replace("px","")),this.extendedItem.element.offsetTop+parseFloat(getComputedStyle(this.extendedItem.element).transformOrigin.split(" ")[1].replace("px",""))),f=new DOMPoint(m.x-g.x,-(m.y-g.y)),b=new DOMMatrix(getComputedStyle(this.extendedItem.element).transform),_=0,C=0,I=ra(f,b),P=new DOMPoint(g.x+I.x,g.y-I.y),A=new DOMPoint(P.x-m.x,-(P.y-m.y)).matrixTransform(b),L=new DOMPoint(m.x+A.x,m.y-A.y);if(_=L.x-m.x,C=L.y-m.y,this.extendedItem.element.style.transform=b.translate(_,C).toString(),b.isIdentity&&(this.extendedItem.element.style.transform=""),this.extendedItem.setStyle("transform",this.extendedItem.element.style.transform),this.resizeAllSelected){for(let H of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements)H!==this.extendedItem&&(H.setStyle("width",H.element.style.width),H.setStyle("height",H.element.style.height),H.setStyle("left",O(this.extendedItem,parseFloat(Qr(H.element,"left")))+"px"),H.setStyle("top",O(this.extendedItem,parseFloat(Qr(H.element,"top")))+"px"));this.designerCanvas?.raiseDesignItemsChanged(this.designerCanvas.instanceServiceContainer.selectionService.selectedElements,"resize",!0)}else this.designerCanvas?.raiseDesignItemsChanged([this.extendedItem],"resize",!0);p.commit()}catch(g){p.abort(),console.error(g)}this._initialSizes=null,this._initialPoint=null;break}}prepareResize(e,t){let i=null,r=null,n=null,o=null;switch(this._actionModeStarted){case"e-resize":n=getComputedStyle(e.element).left,e.element.style.removeProperty("right"),e.element.style.left=n;break;case"se-resize":i=getComputedStyle(e.element).top,e.element.style.removeProperty("bottom"),e.element.style.top=i,n=getComputedStyle(e.element).left,e.element.style.removeProperty("right"),e.element.style.left=n;break;case"s-resize":i=getComputedStyle(e.element).top,e.element.style.removeProperty("bottom"),e.element.style.top=i;break;case"sw-resize":i=getComputedStyle(e.element).top,e.element.style.removeProperty("bottom"),e.element.style.top=i,o=getComputedStyle(e.element).right,e.element.style.removeProperty("left"),e.element.style.right=o;break;case"w-resize":o=getComputedStyle(e.element).right,e.element.style.removeProperty("left"),e.element.style.right=o;break;case"nw-resize":r=getComputedStyle(e.element).bottom,e.element.style.removeProperty("top"),e.element.style.bottom=r,o=getComputedStyle(e.element).right,e.element.style.removeProperty("left"),e.element.style.right=o;break;case"n-resize":r=getComputedStyle(e.element).bottom,e.element.style.removeProperty("top"),e.element.style.bottom=r;break;case"ne-resize":r=getComputedStyle(e.element).bottom,e.element.style.removeProperty("top"),e.element.style.bottom=r,n=getComputedStyle(e.element).left,e.element.style.removeProperty("right"),e.element.style.left=n;break}}dispose(){this._removeAllOverlays()}}});import{css as mp}from"@node-projects/base-custom-webcomponent";var en,ka=u(()=>{"use strict";Pa();Z();en=class{resizeAllSelected;constructor(e=!1){this.resizeAllSelected=e}shouldExtend(e,t,i){return i.element instanceof SVGElement||i.element instanceof HTMLTemplateElement?!1:!i.isRootItem&&i.nodeType==E.Element}getExtension(e,t,i){return new Jr(e,t,i,this.resizeAllSelected)}static style=mp`
|
|
292
|
+
`}});function Ea(s=window){s.Node.prototype.getBoxQuads||(s.Node.prototype.getBoxQuads=function(e){return cp(this,e)}),s.Node.prototype.convertQuadFromNode||(s.Node.prototype.convertQuadFromNode=function(e,t,i){return op(this,e,t,i)}),s.Node.prototype.convertRectFromNode||(s.Node.prototype.convertRectFromNode=function(e,t,i){return ap(this,e,t,i)}),s.Node.prototype.convertPointFromNode||(s.Node.prototype.convertPointFromNode=function(e,t,i){return lp(this,e,t,i)})}function op(s,e,t,i){let r=dt(t,document.body,i?.iframes),n=dt(s,document.body,i?.iframes).inverse();i?.fromBox&&i?.fromBox!=="border"&&(e=new DOMQuad(fe(e.p1,i.fromBox,(s.ownerDocument.defaultView??window).getComputedStyle(t),-1),fe(e.p2,i.fromBox,(s.ownerDocument.defaultView??window).getComputedStyle(t),-1),fe(e.p3,i.fromBox,(s.ownerDocument.defaultView??window).getComputedStyle(t),-1),fe(e.p4,i.fromBox,(s.ownerDocument.defaultView??window).getComputedStyle(t),-1)));let o=new DOMQuad(n.transformPoint(r.transformPoint(e.p1)),n.transformPoint(r.transformPoint(e.p2)),n.transformPoint(r.transformPoint(e.p3)),n.transformPoint(r.transformPoint(e.p4)));return i?.toBox&&i?.toBox!=="border"&&(s instanceof Element||s instanceof(s.ownerDocument.defaultView??window).Element)&&(o=new DOMQuad(fe(o.p1,i.toBox,(s.ownerDocument.defaultView??window).getComputedStyle(s),-1),fe(o.p2,i.toBox,(s.ownerDocument.defaultView??window).getComputedStyle(s),-1),fe(o.p3,i.toBox,(s.ownerDocument.defaultView??window).getComputedStyle(s),-1),fe(o.p4,i.toBox,(s.ownerDocument.defaultView??window).getComputedStyle(s),-1))),o}function ap(s,e,t,i){let r=dt(t,(s.ownerDocument.defaultView??window).document.body.parentElement,i?.iframes),n=dt(s,(s.ownerDocument.defaultView??window).document.body.parentElement,i?.iframes).inverse();if(i?.fromBox&&i?.fromBox!=="border"){let a=fe(new DOMPoint(e.x,e.y),i.fromBox,(s.ownerDocument.defaultView??window).getComputedStyle(t),1);e=new DOMRect(a.x,a.y,e.width,e.height)}let o=new DOMQuad(n.transformPoint(r.transformPoint(new DOMPoint(e.x,e.y))),n.transformPoint(r.transformPoint(new DOMPoint(e.x+e.width,e.y))),n.transformPoint(r.transformPoint(new DOMPoint(e.x+e.width,e.y+e.height))),n.transformPoint(r.transformPoint(new DOMPoint(e.x,e.y+e.height))));return i?.toBox&&i?.toBox!=="border"&&(s instanceof Element||s instanceof(s.ownerDocument.defaultView??window).Element)&&(o=new DOMQuad(fe(o.p1,i.toBox,(s.ownerDocument.defaultView??window).getComputedStyle(s),-1),fe(o.p2,i.toBox,(s.ownerDocument.defaultView??window).getComputedStyle(s),-1),fe(o.p3,i.toBox,(s.ownerDocument.defaultView??window).getComputedStyle(s),-1),fe(o.p4,i.toBox,(s.ownerDocument.defaultView??window).getComputedStyle(s),-1))),o}function lp(s,e,t,i){let r=dt(t,(s.ownerDocument.defaultView??window).document.body.parentElement,i?.iframes),n=dt(s,document.body,i?.iframes).inverse();i?.fromBox&&i?.fromBox!=="border"&&(e=fe(e,i.fromBox,(s.ownerDocument.defaultView??window).getComputedStyle(t),1));let o=n.transformPoint(r.transformPoint(e));return i?.toBox&&i?.toBox!=="border"&&(s instanceof Element||s instanceof(s.ownerDocument.defaultView??window).Element)&&(o=fe(o,i.toBox,(s.ownerDocument.defaultView??window).getComputedStyle(s),-1)),o}function fe(s,e,t,i){return e==="margin"?new DOMPoint(s.x-i*parseFloat(t.marginLeft),s.y-i*parseFloat(t.marginTop)):e==="padding"?new DOMPoint(s.x+i*parseFloat(t.borderLeftWidth),s.y+i*parseFloat(t.borderTopWidth)):e==="content"?new DOMPoint(s.x+i*(parseFloat(t.borderLeftWidth)+parseFloat(t.paddingLeft)),s.y+i*(parseFloat(t.borderTopWidth)+parseFloat(t.paddingTop))):s}function At(){Ut.clear(),Kt.clear()}function bh(){qe=new WeakMap,Ut=new Map,Kt=new Map}function cp(s,e){let t;if(Ut){let h=qe.get(s);h===void 0&&qe.set(s,h=qr++);let d=qe.get(e?.relativeTo??document.body);d===void 0&&qe.set(e?.relativeTo??document.body,d=qr++),t=h+"_"+d+"_"+(e?.box??"border");let p=Ut.get(t);if(p)return p}let i=dt(s,e?.relativeTo??document.body,e?.iframes),{width:r,height:n}=Aa(s,i),o=[{x:0,y:0},{x:r,y:0},{x:r,y:n},{x:0,y:n}],a=Array(4),l=null;if(s instanceof Element||s instanceof(s.ownerDocument.defaultView??window).Element){if(e?.box==="margin"){let h=(s.ownerDocument.defaultView??window).getComputedStyle(s);l=[{x:parseFloat(h.marginLeft),y:parseFloat(h.marginTop)},{x:-parseFloat(h.marginRight),y:parseFloat(h.marginTop)},{x:-parseFloat(h.marginRight),y:-parseFloat(h.marginBottom)},{x:parseFloat(h.marginLeft),y:-parseFloat(h.marginBottom)}]}else if(e?.box==="padding"){let h=(s.ownerDocument.defaultView??window).getComputedStyle(s);l=[{x:-parseFloat(h.borderLeftWidth),y:-parseFloat(h.borderTopWidth)},{x:parseFloat(h.borderRightWidth),y:-parseFloat(h.borderTopWidth)},{x:parseFloat(h.borderRightWidth),y:parseFloat(h.borderBottomWidth)},{x:-parseFloat(h.borderLeftWidth),y:parseFloat(h.borderBottomWidth)}]}else if(e?.box==="content"){let h=(s.ownerDocument.defaultView??window).getComputedStyle(s);l=[{x:-parseFloat(h.borderLeftWidth)-parseFloat(h.paddingLeft),y:-parseFloat(h.borderTopWidth)-parseFloat(h.paddingTop)},{x:parseFloat(h.borderRightWidth)+parseFloat(h.paddingRight),y:-parseFloat(h.borderTopWidth)-parseFloat(h.paddingTop)},{x:parseFloat(h.borderRightWidth)+parseFloat(h.paddingRight),y:parseFloat(h.borderBottomWidth)+parseFloat(h.paddingBottom)},{x:-parseFloat(h.borderLeftWidth)-parseFloat(h.paddingLeft),y:parseFloat(h.borderBottomWidth)+parseFloat(h.paddingBottom)}]}}for(let h=0;h<4;h++){let d;l?d=new DOMPoint(o[h].x-l[h].x,o[h].y-l[h].y):d=new DOMPoint(o[h].x,o[h].y),a[h]=hp(d,i).matrixTransform(i),a[h]=dp(a[h])}let c=[new DOMQuad(a[0],a[1],a[2],a[3])];return Ut&&Ut.set(t,c),c}function hp(s,e){let t=-(s.x*e.m13+s.y*e.m23+e.m43)/e.m33;return new DOMPoint(s.x,s.y,t,1)}function dp(s){return new DOMPoint(s.x/s.w,s.y/s.w)}function Aa(s,e){let t=0,i=0;if(s instanceof HTMLElement||s instanceof(s.ownerDocument.defaultView??window).HTMLElement)t=s.offsetWidth,i=s.offsetHeight;else if(s instanceof SVGSVGElement||s instanceof(s.ownerDocument.defaultView??window).SVGSVGElement)t=s.width.baseVal.value,i=s.height.baseVal.value;else if(s instanceof SVGGraphicsElement||s instanceof(s.ownerDocument.defaultView??window).SVGGraphicsElement){let r=s.getBBox();t=r.width,i=r.height}else if(s instanceof MathMLElement||s instanceof(s.ownerDocument.defaultView??window).MathMLElement){let r=s.getBoundingClientRect();t=r.width/(e?.a??1),i=r.height/(e?.d??1)}else if(s instanceof Text||s instanceof(s.ownerDocument.defaultView??window).Text){let r=document.createRange();r.selectNodeContents(s);let n=r.getBoundingClientRect();t=n.width/(e?.a??1),i=n.height/(e?.d??1)}return{width:t,height:i}}function xh(s,e,t){if(s instanceof HTMLElement||s instanceof(s.ownerDocument.defaultView??window).HTMLElement)return new DOMPoint(s.offsetLeft-(e?s.scrollLeft:0),s.offsetTop-(e?s.scrollTop:0));if(s instanceof Text||s instanceof(s.ownerDocument.defaultView??window).Text){let i=document.createRange();i.selectNodeContents(s);let r=i.getBoundingClientRect(),n=Yt(s,t),o=n.getBoundingClientRect(),a=n.offsetWidth/o.width,l=n.offsetHeight/o.height;return new DOMPoint((r.x-o.x)*a,(r.y-o.y)*l)}else if(s instanceof Element||s instanceof(s.ownerDocument.defaultView??window).Element){if((s instanceof SVGGraphicsElement||s instanceof(s.ownerDocument.defaultView??window).SVGGraphicsElement)&&!(s instanceof SVGSVGElement||s instanceof(s.ownerDocument.defaultView??window).SVGSVGElement)){let h=s.getBBox();return new DOMPoint(h.x,h.y)}let i=(s.ownerDocument.defaultView??window).getComputedStyle(s);if(i.position==="absolute")return new DOMPoint(parseFloat(i.left),parseFloat(i.top));let r=Yt(s,t),n=dt(r,document.body,t),o=s.getBoundingClientRect(),a=n.inverse().transformPoint(o),l=r.getBoundingClientRect(),c=n.inverse().transformPoint(l);return new DOMPoint(a.x-c.x,a.y-c.y)}}function dt(s,e,t){let i;if(Kt){let c=qe.get(s);c===void 0&&qe.set(s,c=qr++);let h=qe.get(e);h===void 0&&qe.set(e,h=qr++),i=c+"_"+h;let d=Kt.get(i);if(d)return d}let r=s,n,o=pt(r,t),a=Yt(r,t);a&&(r.ownerDocument.defaultView??window).getComputedStyle(a).transformStyle!=="preserve-3d"&&_h(o);let l=null;for(;r!=e&&r!=null;){let c=Yt(r,t);if(r.assignedSlot!=null){let h=(a.ownerDocument.defaultView??window).getComputedStyle(r);h.position!=="static"&&(o=new DOMMatrix().translate(parseFloat(h.left),parseFloat(h.top)).multiply(o))}else if(r instanceof HTMLElement||r instanceof(r.ownerDocument.defaultView??window).HTMLElement){if(l!==r.offsetParent&&!(r instanceof HTMLSlotElement||r instanceof(r.ownerDocument.defaultView??window).HTMLSlotElement)){let h=xh(r,r!==s,t);l=r.offsetParent,o=new DOMMatrix().translate(h.x,h.y).multiply(o)}}else{let h=xh(r,r!==s,t);l=null,o=new DOMMatrix().translate(h.x,h.y).multiply(o)}if(c&&(n=pt(c,t),c!=e&&(o=n.multiply(o)),a=Yt(c,t),a&&(a.ownerDocument.defaultView??window).getComputedStyle(a).transformStyle!=="preserve-3d"&&_h(o),c===e))return(c.scrollTop||c.scrollLeft)&&(o=new DOMMatrix().translate(-c.scrollLeft,-c.scrollTop).multiply(o)),o;r=c}return Kt&&Kt.set(i,o),o}function Yt(s,e){if((s instanceof Element||s instanceof(s.ownerDocument.defaultView??window).Element)&&s.assignedSlot)return s.assignedSlot;if(s.parentElement==null&&(s.parentNode instanceof ShadowRoot||s.parentNode instanceof(s.ownerDocument.defaultView??window).ShadowRoot))return s.parentNode.host;if((s instanceof HTMLHtmlElement||s instanceof(s.ownerDocument.defaultView??window).HTMLHtmlElement)&&e){for(let t of e)if(t?.contentDocument==s.ownerDocument)return t}return s.parentElement}function pt(s,e){if(s instanceof Text||s instanceof(s.ownerDocument.defaultView??window).Text)return new DOMMatrix;let t=(s.ownerDocument.defaultView??window).getComputedStyle(s),i=new DOMMatrix,r=t.transformOrigin.split(" "),n=parseFloat(r[0]),o=parseFloat(r[1]),a=r[2]?parseFloat(r[2]):0,l=new DOMMatrix().translate(n,o,a);if(t.translate!="none"&&t.translate){let d=t.translate;if(d.includes("%")){let p=d.split(" "),g=s.getBoundingClientRect();p[0].endsWith("%")&&(p[0]=parseFloat(p[0])*g.width/100+"px"),p[1]?.endsWith("%")&&(p[1]=parseFloat(p[1])*g.height/100+"px"),d=p.join(",")}i=i.multiply(new DOMMatrix("translate("+d.replace(" ",",")+")"))}t.rotate!="none"&&t.rotate&&(i=i.multiply(new DOMMatrix("rotate("+t.rotate.replace(" ",",")+")"))),t.scale!="none"&&t.scale&&(i=i.multiply(new DOMMatrix("scale("+t.scale.replace(" ",",")+")"))),t.transform!="none"&&t.transform&&(i=i.multiply(new DOMMatrix(t.transform)));let c=l.multiply(i.multiply(l.inverse())),h=pp(s,e);return h!=null&&(c=h.multiply(c)),c}function _h(s){if(s.m31=0,s.m32=0,s.m13=0,s.m23=0,s.m33=1,s.m43=0,s.m34=0,s.m14==0&&s.m24==0&&s.m44!=1&&s.m44!=0){let e=1/s.m44;s.m11*=e,s.m12*=e,s.m21*=e,s.m22*=e,s.m41*=e,s.m42*=e,s.m44=1}}function pp(s,e){let t=Yt(s,e);if(t){let i=(s.ownerDocument.defaultView??window).getComputedStyle(t);if(i.perspective!=="none"){let r=new DOMMatrix,n=parseFloat(i.perspective);if(r.m34=-1/n,i.perspectiveOrigin){let o=i.perspectiveOrigin.split(" "),a=parseFloat(o[0])-s.offsetLeft,l=parseFloat(o[1])-s.offsetTop,c=new DOMMatrix().translate(a,l),h=new DOMMatrix().translate(-a,-l);return c.multiply(r.multiply(h))}}}return null}var qe,Ut,Kt,qr,Pt=u(()=>{"use strict";qr=0});function Qr(s,e){switch(e){case"left":let t=getComputedStyle(s).left;return s.style.removeProperty("right"),s.style.left=t,t;case"top":let i=getComputedStyle(s).top;return s.style.removeProperty("bottom"),s.style.top=i,i}}var Jr,Pa=u(()=>{"use strict";ee();te();be();Mr();Pt();J();Jr=class extends N{resizeAllSelected;_initialSizes;_actionModeStarted;_initialPoint;_offsetPoint;_circle1;_circle2;_circle3;_circle4;_circle5;_circle6;_circle7;_circle8;_initialComputedTransformOrigins;_initialTransformOrigins;constructor(e,t,i,r){super(e,t,i),this.resizeAllSelected=r}extend(e,t){this.refresh(e,t)}refresh(e,t){let i=this.extendedItem.element.getBoxQuads({box:"border",relativeTo:this.designerCanvas.canvas})[0];if(i){if(isNaN(i.p1.x)||isNaN(i.p1.x)){this.remove();return}this._valuesHaveChanges(this.designerCanvas.zoomFactor,i.p1.x,i.p1.y,i.p2.x,i.p2.y,i.p3.x,i.p3.y,i.p4.x,i.p4.y)&&(this._circle1=this._drawResizerOverlay(i.p1.x,i.p1.y,"nw-resize",this._circle1),this._circle2=this._drawResizerOverlay(i.p1.x+(i.p2.x-i.p1.x)/2,i.p1.y+(i.p2.y-i.p1.y)/2,"n-resize",this._circle2),this._circle3=this._drawResizerOverlay(i.p2.x,i.p2.y,"ne-resize",this._circle3),this._circle4=this._drawResizerOverlay(i.p1.x+(i.p4.x-i.p1.x)/2,i.p1.y+(i.p4.y-i.p1.y)/2,"w-resize",this._circle4),this._circle5=this._drawResizerOverlay(i.p4.x,i.p4.y,"sw-resize",this._circle5),this._circle6=this._drawResizerOverlay(i.p4.x+(i.p3.x-i.p4.x)/2,i.p4.y+(i.p3.y-i.p4.y)/2,"s-resize",this._circle6),this._circle8=this._drawResizerOverlay(i.p2.x+(i.p3.x-i.p2.x)/2,i.p2.y+(i.p3.y-i.p2.y)/2,"e-resize",this._circle8),this._circle7=this._drawResizerOverlay(i.p3.x,i.p3.y,"se-resize",this._circle7))}}_drawResizerOverlay(e,t,i,r){let n=this._drawCircle(e,t,this.designerCanvas.serviceContainer.options.resizerPixelSize/this.designerCanvas.zoomFactor,"svg-primary-resizer",r);return n.style.strokeWidth=(1/this.designerCanvas.zoomFactor).toString(),r||(n.addEventListener(x.PointerDown,o=>this._pointerActionTypeResize(n,o,i)),n.addEventListener(x.PointerMove,o=>this._pointerActionTypeResize(n,o,i)),n.addEventListener(x.PointerUp,o=>this._pointerActionTypeResize(n,o,i))),n.style.cursor=i,n}_pointerActionTypeResize(e,t,i){t.stopPropagation();let r=this.designerCanvas.getNormalizedEventCoordinates(t);switch(t.type){case x.PointerDown:let n=parseFloat(e.getAttribute("cx")),o=parseFloat(e.getAttribute("cy"));this._offsetPoint={x:n-r.x,y:o-r.y},t.target.setPointerCapture(t.pointerId),this._initialPoint=r,this._initialSizes=[],this._actionModeStarted=i,this._initialComputedTransformOrigins=[],this._initialTransformOrigins=[];let a=this.extendedItem.element.style.transform;this.extendedItem.element.style.transform="";let l=W(this.extendedItem.element);this.extendedItem.element.style.transform=a;let c={x:0,y:0};getComputedStyle(this.extendedItem.element).boxSizing=="content-box"&&(c=sh(this.extendedItem.element)),this._initialSizes.push({width:(l.width-c.x*this.designerCanvas.scaleFactor)/this.designerCanvas.scaleFactor,height:(l.height-c.y*this.designerCanvas.scaleFactor)/this.designerCanvas.scaleFactor});let h=getComputedStyle(this.extendedItem.element).transformOrigin.split(" ").map(g=>parseFloat(g.replace("px",""))),d=new DOMPoint(h[0],h[1]);if(this._initialComputedTransformOrigins.push(d),this._initialTransformOrigins.push(this.extendedItem.element.style.transformOrigin),this.resizeAllSelected)for(let g of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements)l=W(g.element),this._initialSizes.push({width:l.width/this.designerCanvas.scaleFactor,height:l.height/this.designerCanvas.scaleFactor});if(this.designerCanvas.alignOnSnap&&this.designerCanvas.snapLines.calculateSnaplines(this.designerCanvas.instanceServiceContainer.selectionService.selectedElements),this.prepareResize(this.extendedItem,this._actionModeStarted),this.resizeAllSelected)for(let g of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements)g!==this.extendedItem&&this.prepareResize(g,this._actionModeStarted);break;case x.PointerMove:if(this._initialPoint){let g=getComputedStyle(this.extendedItem.parent.element),f=this.designerCanvas.serviceContainer.getLastServiceWhere("containerService",B=>B.serviceForContainer(this.extendedItem.parent,g)).placePoint(t,this.designerCanvas,this.extendedItem.parent,this._initialPoint,{x:0,y:0},r,this.designerCanvas.instanceServiceContainer.selectionService.selectedElements),b=Math.round(f.x-this._initialPoint.x-this._offsetPoint.x),_=Math.round(f.y-this._initialPoint.y-this._offsetPoint.y),C=pt(this.extendedItem.element),k=ra(new DOMPoint(b,_,0,0),C),P=k.x,D=k.y;t.shiftKey&&(P=P<D?P:D,D=P);let A=0,R=null,H=null;switch(this._actionModeStarted){case"e-resize":if(R=this._initialSizes[A].width+P,this.extendedItem.element.style.width=O(this.extendedItem,R)+"px",this.resizeAllSelected){A++;for(let B of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements)B!==this.extendedItem&&(B.element.style.width=O(this.extendedItem,this._initialSizes[A].width+P)+"px")}break;case"se-resize":if(R=this._initialSizes[A].width+P,this.extendedItem.element.style.width=O(this.extendedItem,R)+"px",H=this._initialSizes[A].height+D,this.extendedItem.element.style.height=O(this.extendedItem,H)+"px",this.resizeAllSelected){A++;for(let B of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements)B!==this.extendedItem&&(B.element.style.width=O(this.extendedItem,this._initialSizes[A].width+P)+"px",B.element.style.height=O(this.extendedItem,this._initialSizes[A].height+D)+"px")}break;case"s-resize":if(H=this._initialSizes[A].height+D,this.extendedItem.element.style.height=O(this.extendedItem,H)+"px",this.resizeAllSelected){A++;for(let B of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements)B!==this.extendedItem&&(B.element.style.height=O(this.extendedItem,this._initialSizes[A].height+D)+"px")}break;case"sw-resize":if(R=this._initialSizes[A].width-P,this.extendedItem.element.style.width=O(this.extendedItem,R)+"px",H=this._initialSizes[A].height+D,this.extendedItem.element.style.height=O(this.extendedItem,H)+"px",this.resizeAllSelected){A++;for(let B of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements)B!==this.extendedItem&&(B.element.style.width=O(this.extendedItem,this._initialSizes[A].width-P)+"px",B.element.style.height=O(this.extendedItem,this._initialSizes[A].height+D)+"px")}break;case"w-resize":if(R=this._initialSizes[A].width-P,this.extendedItem.element.style.width=O(this.extendedItem,R)+"px",this.resizeAllSelected){A++;for(let B of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements)B!==this.extendedItem&&(B.element.style.width=O(this.extendedItem,this._initialSizes[A].width-P)+"px")}break;case"nw-resize":if(R=this._initialSizes[A].width-P,this.extendedItem.element.style.width=O(this.extendedItem,R)+"px",H=this._initialSizes[A].height-D,this.extendedItem.element.style.height=O(this.extendedItem,H)+"px",this.resizeAllSelected){A++;for(let B of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements)B!==this.extendedItem&&(B.element.style.width=O(this.extendedItem,this._initialSizes[A].width-P)+"px",B.element.style.height=O(this.extendedItem,this._initialSizes[A].height-D)+"px")}break;case"n-resize":if(H=this._initialSizes[A].height-D,this.extendedItem.element.style.height=O(this.extendedItem,H)+"px",this.resizeAllSelected){A++;for(let B of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements)B!==this.extendedItem&&(B.element.style.height=O(this.extendedItem,this._initialSizes[A].height-D)+"px")}break;case"ne-resize":if(R=this._initialSizes[A].width+P,this.extendedItem.element.style.width=O(this.extendedItem,R)+"px",H=this._initialSizes[A].height-D,this.extendedItem.element.style.height=O(this.extendedItem,H)+"px",this.resizeAllSelected){A++;for(let B of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements)B!==this.extendedItem&&(B.element.style.width=O(this.extendedItem,this._initialSizes[A].width+P)+"px",B.element.style.height=O(this.extendedItem,this._initialSizes[A].height-D)+"px")}break}let ae=[this.extendedItem,this.extendedItem.parent];this.resizeAllSelected&&ae.push(...this.designerCanvas.instanceServiceContainer.selectionService.selectedElements),this.extensionManager.refreshExtensions(ae),this.designerCanvas?.raiseDesignItemsChanged(ae,"resize",!1)}break;case x.PointerUp:t.target.releasePointerCapture(t.pointerId);let p=this.extendedItem.openGroup(this.resizeAllSelected&&this.designerCanvas.instanceServiceContainer.selectionService.selectedElements.length>1?"Resize Elements":"Resize <"+this.extendedItem.name+">");try{this.extendedItem.setStyle("width",this.extendedItem.element.style.width),this.extendedItem.setStyle("height",this.extendedItem.element.style.height),this.extendedItem.setStyle("left",O(this.extendedItem,parseFloat(Qr(this.extendedItem.element,"left")))+"px"),this.extendedItem.setStyle("top",O(this.extendedItem,parseFloat(Qr(this.extendedItem.element,"top")))+"px");let g=new DOMPoint(this.extendedItem.element.offsetLeft+parseFloat(getComputedStyle(this.extendedItem.element).transformOrigin.split(" ")[0].replace("px","")),this.extendedItem.element.offsetTop+parseFloat(getComputedStyle(this.extendedItem.element).transformOrigin.split(" ")[1].replace("px","")));this.extendedItem.element.style.transformOrigin=this._initialTransformOrigins[0];let m=new DOMPoint(this.extendedItem.element.offsetLeft+parseFloat(getComputedStyle(this.extendedItem.element).transformOrigin.split(" ")[0].replace("px","")),this.extendedItem.element.offsetTop+parseFloat(getComputedStyle(this.extendedItem.element).transformOrigin.split(" ")[1].replace("px",""))),f=new DOMPoint(m.x-g.x,-(m.y-g.y)),b=new DOMMatrix(getComputedStyle(this.extendedItem.element).transform),_=0,C=0,k=ra(f,b),P=new DOMPoint(g.x+k.x,g.y-k.y),A=new DOMPoint(P.x-m.x,-(P.y-m.y)).matrixTransform(b),R=new DOMPoint(m.x+A.x,m.y-A.y);if(_=R.x-m.x,C=R.y-m.y,this.extendedItem.element.style.transform=b.translate(_,C).toString(),b.isIdentity&&(this.extendedItem.element.style.transform=""),this.extendedItem.setStyle("transform",this.extendedItem.element.style.transform),this.resizeAllSelected){for(let H of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements)H!==this.extendedItem&&(H.setStyle("width",H.element.style.width),H.setStyle("height",H.element.style.height),H.setStyle("left",O(this.extendedItem,parseFloat(Qr(H.element,"left")))+"px"),H.setStyle("top",O(this.extendedItem,parseFloat(Qr(H.element,"top")))+"px"));this.designerCanvas?.raiseDesignItemsChanged(this.designerCanvas.instanceServiceContainer.selectionService.selectedElements,"resize",!0)}else this.designerCanvas?.raiseDesignItemsChanged([this.extendedItem],"resize",!0);p.commit()}catch(g){p.abort(),console.error(g)}this._initialSizes=null,this._initialPoint=null;break}}prepareResize(e,t){let i=null,r=null,n=null,o=null;switch(this._actionModeStarted){case"e-resize":n=getComputedStyle(e.element).left,e.element.style.removeProperty("right"),e.element.style.left=n;break;case"se-resize":i=getComputedStyle(e.element).top,e.element.style.removeProperty("bottom"),e.element.style.top=i,n=getComputedStyle(e.element).left,e.element.style.removeProperty("right"),e.element.style.left=n;break;case"s-resize":i=getComputedStyle(e.element).top,e.element.style.removeProperty("bottom"),e.element.style.top=i;break;case"sw-resize":i=getComputedStyle(e.element).top,e.element.style.removeProperty("bottom"),e.element.style.top=i,o=getComputedStyle(e.element).right,e.element.style.removeProperty("left"),e.element.style.right=o;break;case"w-resize":o=getComputedStyle(e.element).right,e.element.style.removeProperty("left"),e.element.style.right=o;break;case"nw-resize":r=getComputedStyle(e.element).bottom,e.element.style.removeProperty("top"),e.element.style.bottom=r,o=getComputedStyle(e.element).right,e.element.style.removeProperty("left"),e.element.style.right=o;break;case"n-resize":r=getComputedStyle(e.element).bottom,e.element.style.removeProperty("top"),e.element.style.bottom=r;break;case"ne-resize":r=getComputedStyle(e.element).bottom,e.element.style.removeProperty("top"),e.element.style.bottom=r,n=getComputedStyle(e.element).left,e.element.style.removeProperty("right"),e.element.style.left=n;break}}dispose(){this._removeAllOverlays()}}});import{css as mp}from"@node-projects/base-custom-webcomponent";var en,Ia=u(()=>{"use strict";Pa();Z();en=class{resizeAllSelected;constructor(e=!1){this.resizeAllSelected=e}shouldExtend(e,t,i){return i.element instanceof SVGElement||i.element instanceof HTMLTemplateElement?!1:!i.isRootItem&&i.nodeType==E.Element}getExtension(e,t,i){return new Jr(e,t,i,this.resizeAllSelected)}static style=mp`
|
|
293
293
|
.svg-primary-resizer { stroke: #3899ec; fill: white; pointer-events: all }
|
|
294
|
-
`}});var tn,
|
|
294
|
+
`}});var tn,ka=u(()=>{"use strict";Ne();be();Pt();J();tn=class extends N{_rotateLine;_rotateCircle;_startPoint;_rotateCirclePosition;constructor(e,t,i){super(e,t,i)}extend(e,t){this.refresh(e,t)}refresh(e,t){let i=Aa(this.extendedItem.element),r={x:i.width/2,y:-30/this.designerCanvas.zoomFactor},n={x:i.width/2,y:-22/this.designerCanvas.zoomFactor},o={x:i.width/2,y:-6/this.designerCanvas.zoomFactor};this._rotateCirclePosition=r;let a=this.designerCanvas.canvas.convertPointFromNode(r,this.extendedItem.element),l=this.designerCanvas.canvas.convertPointFromNode(n,this.extendedItem.element),c=this.designerCanvas.canvas.convertPointFromNode(o,this.extendedItem.element);this._rotateLine=this._drawLine(l.x,l.y,c.x,c.y,"svg-primary-rotate-line",this._rotateLine),this._rotateLine.style.strokeWidth=(1/this.designerCanvas.zoomFactor).toString(),this._rotateCircle?(this._rotateCircle=this._drawCircle(a.x,a.y,5/this.designerCanvas.zoomFactor,"svg-primary-rotate",this._rotateCircle),this._rotateCircle.style.strokeWidth=(1/this.designerCanvas.zoomFactor).toString()):(this._rotateCircle=this._drawCircle(a.x,a.y,5/this.designerCanvas.zoomFactor,"svg-primary-rotate",this._rotateCircle),this._rotateCircle.style.strokeWidth=(1/this.designerCanvas.zoomFactor).toString(),this._rotateCircle.addEventListener("pointerdown",h=>{h.stopPropagation(),h.target.setPointerCapture(h.pointerId);let d=this.designerCanvas.getNormalizedEventCoordinates(h);this._startPoint=this.extendedItem.element.convertPointFromNode({x:d.x,y:d.y},this.designerCanvas.canvas)}),this._rotateCircle.addEventListener("pointermove",h=>{h.stopPropagation(),this._startPoint&&(this.extendedItem.element.style.rotate="none",this.extendedItem.element.style.rotate=this.getAngle(h)+"deg")}),this._rotateCircle.addEventListener("pointerup",h=>{h.stopPropagation(),h.target.releasePointerCapture(h.pointerId),this._startPoint=null,this.extendedItem.element.style.rotate="none",this.extendedItem.setStyle("rotate",this.getAngle(h)+"deg")}))}getAngle(e){let t=this.designerCanvas.getNormalizedEventCoordinates(e),i={x:t.x,y:t.y},r=this.extendedItem.element.convertPointFromNode(i,this.designerCanvas.canvas),o=getComputedStyle(this.extendedItem.element).transformOrigin.split(" "),a={x:parseFloat(o[0]),y:parseFloat(o[1])},l=Math.atan2(this._rotateCirclePosition.y-a.y,this._rotateCirclePosition.x-a.x)*180/Math.PI+90,c=Math.atan2(r.y-a.y,r.x-a.x)*180/Math.PI+90-l;return j(e)||(c=Math.round(c/15)*15),O(this.extendedItem,c)}dispose(){this._removeAllOverlays()}}});import{css as up}from"@node-projects/base-custom-webcomponent";var rn,Da=u(()=>{"use strict";ka();rn=class{type;constructor(e="center-top"){this.type=e}shouldExtend(e,t,i){return i.element instanceof SVGElement||i.element instanceof HTMLTemplateElement?!1:!i.isRootItem}getExtension(e,t,i){return new tn(e,t,i)}static style=up`
|
|
295
295
|
.svg-primary-rotate { stroke: #3899ec; fill: white; stroke-width: 1; pointer-events: all; cursor: alias; }
|
|
296
296
|
.svg-primary-rotate-transparent { fill: transparent; pointer-events: all; cursor: alias; }
|
|
297
297
|
.svg-primary-rotate-line { stroke: #3899ec; fill: #3899ec; stroke-width: 1; }
|
|
298
|
-
`}});var nn,Ta=u(()=>{"use strict";ee();X();nn=class{cursor="zoom-in";_rect;_startPoint;_endPoint;_pointerMovementTolerance=5;_zoomStepSize=.2;activated(e){}pointerEventHandler(e,t,i){let r=e.getNormalizedEventCoordinates(t);switch(t.type){case x.PointerDown:this._startPoint=r,this._rect||(this._rect=document.createElementNS("http://www.w3.org/2000/svg","rect")),this._rect.setAttribute("class","svg-selector"),this._rect.setAttribute("x",this._startPoint.x*e.zoomFactor),this._rect.setAttribute("y",this._startPoint.y*e.zoomFactor),this._rect.setAttribute("width",0),this._rect.setAttribute("height",0),this._rect.style.strokeWidth=""+1/e.scaleFactor,this._rect.style.strokeDasharray=""+2/e.scaleFactor,e.overlayLayer.addOverlay(this.constructor.name,this._rect,k.Foreground);break;case x.PointerMove:if(this._startPoint){let o=r.x-this._startPoint.x,a=r.y-this._startPoint.y;o>=0?(this._rect.setAttribute("x",this._startPoint.x),this._rect.setAttribute("width",o)):(this._rect.setAttribute("x",r.x),this._rect.setAttribute("width",-1*o)),a>=0?(this._rect.setAttribute("y",this._startPoint.y),this._rect.setAttribute("height",a)):(this._rect.setAttribute("y",r.y),this._rect.setAttribute("height",-1*a))}break;case x.PointerUp:this._endPoint=r;let n=t.button==0;switch(t.button){case 0:case 2:this._zoomOnto(n,this._startPoint,this._endPoint,e);break}e.overlayLayer.removeOverlay(this._rect),this._rect=null,this._startPoint=null;break}}_zoomOnto(e,t,i,r){if(this._isPositionEqual(t,i)){let n=r.zoomFactor,o=e?n+this._zoomStepSize:n-this._zoomStepSize;r.zoomTowardsPoint(i,o)}else r.zoomOntoRectangle(t,i)}_isPositionEqual(e,t){let i=this._pointerMovementTolerance;return Math.abs(e.x-t.x)<=i&&Math.abs(e.y-t.y)<=i}keyboardEventHandler(e,t,i){}dispose(){}}});var sn,Ma=u(()=>{"use strict";ee();sn=class{cursor="grab";pointerEventHandler(e,t,i){switch(t.type){case x.PointerDown:t.target.setPointerCapture(t.pointerId),e.captureActiveTool(this);break;case x.PointerMove:(t.buttons==1||t.buttons==4)&&(e.canvasOffset={x:e.canvasOffset.x+t.movementX/e.zoomFactor,y:e.canvasOffset.y+t.movementY/e.zoomFactor});break;case x.PointerUp:t.target.releasePointerCapture(t.pointerId),e.releaseActiveTool();break}}keyboardEventHandler(e,t,i){}activated(e){}dispose(){}}});var S,Qe=u(()=>{"use strict";(function(s){s.copy="copy",s.paste="paste",s.cut="cut",s.delete="delete",s.undo="undo",s.redo="redo",s.holdUndo="holdUndo",s.holdRedo="holdRedo",s.rotateCounterClockwise="rotateCounterClockwise",s.rotateClockwise="rotateClockwise",s.mirrorHorizontal="mirrorHorizontal",s.mirrorVertical="mirrorVertical",s.selectAll="selectAll",s.moveToFront="moveToFront",s.moveForward="moveForward",s.moveBackward="moveBackward",s.moveToBack="moveToBack",s.arrangeLeft="arrangeLeft",s.arrangeCenter="arrangeCenter",s.arrangeRight="arrangeRight",s.arrangeTop="arrangeTop",s.arrangeMiddle="arrangeMiddle",s.arrangeBottom="arrangeBottom",s.unifyWidth="unifyWidth",s.unifyHeight="unifyHeight",s.distributeHorizontal="distributeHorizontaly",s.distributeVertical="distributeVertical",s.setTool="setTool",s.setStrokeColor="setStrokeColor",s.setFillBrush="setFillBrush",s.setStrokeThickness="setStrokeThickness",s.screenshot="screenshot"})(S||(S={}))});var on,Oa=u(()=>{"use strict";Qe();$();on=class{shouldProvideContextmenu(e,t,i,r){return!0}provideContextMenuItems(e,t,i){return[{title:"copy",icon:`<img src="${v+"icons/copy.svg"}">`,action:()=>{t.executeCommand({type:S.copy})},shortCut:"Ctrl + C",disabled:i===null},{title:"cut",icon:`<img src="${v+"icons/cut.svg"}">`,action:()=>{t.executeCommand({type:S.cut})},shortCut:"Ctrl + X",disabled:i===null},{title:"paste",icon:`<img src="${v+"icons/paste.svg"}">`,action:()=>{t.executeCommand({type:S.paste})},shortCut:"Ctrl + V"},{title:"delete",icon:`<img src="${v+"icons/delete.svg"}">`,action:()=>{t.executeCommand({type:S.delete})},shortCut:"Del",disabled:i===null}]}}});var an,Na=u(()=>{"use strict";Qe();Z();$();an=class{shouldProvideContextmenu(e,t,i,r){return!i?.isRootItem&&i?.nodeType==E.Element}provideContextMenuItems(e,t,i){return[{title:"to front",icon:`<img style="rotate: 90deg" src="${v+"icons/moveFirst.svg"}">`,action:()=>{t.executeCommand({type:S.moveToFront})}},{title:"move forward",icon:`<img style="rotate: 90deg" src="${v+"icons/moveLeft.svg"}">`,action:()=>{t.executeCommand({type:S.moveForward})}},{title:"move backward",icon:`<img style="rotate: 270deg" src="${v+"icons/moveLeft.svg"}">`,action:()=>{t.executeCommand({type:S.moveBackward})}},{title:"to back",icon:`<img style="rotate: 270deg" src="${v+"icons/moveFirst.svg"}">`,action:()=>{t.executeCommand({type:S.moveToBack})}}]}}});function wh(s,e,t=!1,i=0){for(let p of s)if(p==e||p.element.contains(e.element)){console.warn("could not move items into of itself or a child");return}let r=s[0],n=r.openGroup("switchContainerHelper"),o=r.instanceServiceContainer.designerCanvas,a=Number.MAX_VALUE,l=Number.MAX_VALUE,c=0,h=0;for(let p of s){let g=o.getNormalizedElementCoordinates(p.element);g.x<a&&(a=g.x),g.y<l&&(l=g.y),g.x+g.width>c&&(c=g.x+g.width),g.y+g.height>h&&(h=g.y+g.height)}let d=o.getNormalizedElementCoordinates(e.element);for(let p of s){let g=o.getNormalizedElementCoordinates(p.element);p.remove(),t?(p.setStyle("left",(g.x-a+i).toString()+"px"),p.setStyle("top",(g.y-l+i).toString()+"px")):(p.setStyle("left",(g.x-d.x).toString()+"px"),p.setStyle("top",(g.y-d.y).toString()+"px")),e.insertChild(p)}t&&(e.setStyle("position","absolute"),e.setStyle("left",(a-i).toString()+"px"),e.setStyle("top",(l-i).toString()+"px"),e.setStyle("width",(c-a+2*i).toString()+"px"),e.setStyle("height",(h-l+2*i).toString()+"px")),n.commit()}var La=u(()=>{"use strict"});var ln,Ra=u(()=>{"use strict";La();q();ln=class{orderIndex=60;shouldProvideContextmenu(e,t,i,r){return i?.instanceServiceContainer.selectionService.selectedElements.length>1}provideContextMenuItems(e,t,i){return[{title:"wrap in",children:[{title:"div",action:()=>{let r=i.openGroup("wrap in Div"),n=i.instanceServiceContainer.selectionService.selectedElements,o=document.createElement("div"),a=T.createDesignItemFromInstance(o,i.serviceContainer,i.instanceServiceContainer);n[0].insertAdjacentElement(a,"beforebegin"),wh(n,a,!0,10),r.commit(),i.instanceServiceContainer.selectionService.setSelectedElements([a])}}]}]}}});var Ei,Fa=u(()=>{"use strict";ee();Ne();q();X();Ei=class{cursor="progress";_rect;_initialPoint;activated(e){}pointerEventHandler(e,t,i){j(t)||t.shiftKey?this.cursor="copy":t.altKey?this.cursor="default":this.cursor="default";let r=e.getNormalizedEventCoordinates(t);switch(t.type){case x.PointerDown:t.target.setPointerCapture(t.pointerId),e.captureActiveTool(this),this._initialPoint=r,this._rect||(this._rect=document.createElementNS("http://www.w3.org/2000/svg","rect")),this._rect.setAttribute("class","svg-selector"),this._rect.setAttribute("x",this._initialPoint.x*e.scaleFactor),this._rect.setAttribute("y",this._initialPoint.y*e.scaleFactor),this._rect.setAttribute("width",0),this._rect.setAttribute("height",0),this._rect.style.strokeWidth=""+1/e.scaleFactor,this._rect.style.strokeDasharray=""+2/e.scaleFactor,e.overlayLayer.addOverlay(this.constructor.name,this._rect,k.Foreground);break;case x.PointerMove:if(this._initialPoint){let l=r.x-this._initialPoint.x,c=r.y-this._initialPoint.y;l>=0?(this._rect.setAttribute("x",this._initialPoint.x),this._rect.setAttribute("width",l)):(this._rect.setAttribute("x",r.x),this._rect.setAttribute("width",-1*l)),c>=0?(this._rect.setAttribute("y",this._initialPoint.y),this._rect.setAttribute("height",c)):(this._rect.setAttribute("y",r.y),this._rect.setAttribute("height",-1*c))}break;case x.PointerUp:t.target.releasePointerCapture(t.pointerId),e.releaseActiveTool();let n=e.rootDesignItem.querySelectorAll("*"),o=[];(j(t)||t.shiftKey||t.altKey)&&e.instanceServiceContainer.selectionService.selectedElements&&o.push(...e.instanceServiceContainer.selectionService.selectedElements);let a=e.overlayLayer.createPoint();for(let l of n){let c=e.getNormalizedElementCoordinates(l);a.x=c.x,a.y=c.y;let h=this._rect.isPointInFill(a);a.x=c.x+c.width,a.y=c.y;let d=h&&this._rect.isPointInFill(a);a.x=c.x,a.y=c.y+c.height;let p=d&&this._rect.isPointInFill(a);if(a.x=c.x+c.width,a.y=c.y+c.height,p&&this._rect.isPointInFill(a)){let m=T.GetOrCreateDesignItem(l,l,e.serviceContainer,e.instanceServiceContainer);if(!o.includes(m)&&!t.altKey)o.push(m);else if(t.altKey){let f=o.indexOf(m);o.splice(f,1)}}}e.overlayLayer.removeOverlay(this._rect),this._rect=null,this._initialPoint=null,e.instanceServiceContainer.selectionService.setSelectedElements(o,t),e.serviceContainer.globalContext.finishedWithTool(this);break}}keyboardEventHandler(e,t,i){}dispose(){}}});var cn,za=u(()=>{"use strict";ee();Ne();q();X();cn=class{cursor="progress";_pathD;_path;pointerEventHandler(e,t,i){j(t)?this.cursor="copy":t.altKey?this.cursor="default":this.cursor="default";let r=e.getNormalizedEventCoordinates(t);switch(t.type){case x.PointerDown:t.target.setPointerCapture(t.pointerId),e.captureActiveTool(this),this._path=document.createElementNS("http://www.w3.org/2000/svg","path"),this._path.setAttribute("class","svg-selector"),this._path.style.strokeWidth=""+1/e.scaleFactor,this._path.style.strokeDasharray=""+2/e.scaleFactor,this._pathD="M"+r.x+" "+r.y,this._path.setAttribute("D",this._pathD),e.overlayLayer.addOverlay(this.constructor.name,this._path,k.Foreground);break;case x.PointerMove:this._path&&(this._pathD+="L"+r.x+" "+r.y,this._path.setAttribute("d",this._pathD+"Z"));break;case x.PointerUp:t.target.releasePointerCapture(t.pointerId),e.releaseActiveTool();let n=e.rootDesignItem.querySelectorAll("*"),o=[];(j(t)||t.altKey)&&e.instanceServiceContainer.selectionService.selectedElements&&o.push(...e.instanceServiceContainer.selectionService.selectedElements);let a=e.overlayLayer.createPoint();for(let l of n){let c=e.getNormalizedElementCoordinates(l);a.x=c.x,a.y=c.y;let h=this._path.isPointInFill(a)||this._path.isPointInStroke(a);a.x=c.x+c.width,a.y=c.y;let d=this._path.isPointInFill(a)||this._path.isPointInStroke(a);a.x=c.x,a.y=c.y+c.height;let p=this._path.isPointInFill(a)||this._path.isPointInStroke(a);a.x=c.x+c.width,a.y=c.y+c.height;let g=this._path.isPointInFill(a)||this._path.isPointInStroke(a);if(h&&d&&p&&g){let m=T.GetOrCreateDesignItem(l,l,e.serviceContainer,e.instanceServiceContainer);if(!o.includes(m)&&!t.altKey)o.push(m);else if(t.altKey){let f=o.indexOf(m);o.splice(f,1)}}}e.overlayLayer.removeOverlay(this._path),this._path=null,this._pathD=null,e.instanceServiceContainer.selectionService.setSelectedElements(o),e.serviceContainer.globalContext.finishedWithTool(this);break}}keyboardEventHandler(e,t,i){}activated(e){}dispose(){}}});var hn,Ba=u(()=>{"use strict";hn=class{cursor="crosshair";async activated(e){try{let r=(await new EyeDropper().open()).sRGBHex;e.globalContext.strokeColor=r}finally{e.globalContext.finishedWithTool(this)}}async pointerEventHandler(e,t,i){}keyboardEventHandler(e,t,i){}dispose(){}}});function Ch(s){let e=document.getSelection();return e.getComposedRanges?e=e.getComposedRanges(s):s.getSelection&&(e=s.getSelection()),e}function Sh(s,e){function t(n){let o=document.createElement("span");e.push(o),n.parentNode.insertBefore(o,n),o.appendChild(n)}function i(n){switch(n.nodeType){case Node.TEXT_NODE:t(n);break;case Node.DOCUMENT_FRAGMENT_NODE:case Node.ELEMENT_NODE:Array.from(n.childNodes).forEach(i);break}}let r=s.extractContents();i(r),s.insertNode(r)}function fp(s){let e=document.createRange();return e.setStart(s.startContainer,s.startOffset),e.setEnd(s.endContainer,s.endOffset),e}function Eh(s){let e=[];if(s[0]instanceof StaticRange)Sh(fp(s[0]),e);else{if(!s.rangeCount)return e;let t=s.getRangeAt(0);Sh(t,e)}return s.removeAllRanges&&s.removeAllRanges(),e}var Va=u(()=>{"use strict"});import{html as gp}from"@node-projects/base-custom-webcomponent";var Yt,dn=u(()=>{"use strict";J();X();Va();ea();te();Yt=class s extends N{static template=gp`
|
|
298
|
+
`}});var nn,Ta=u(()=>{"use strict";ee();X();nn=class{cursor="zoom-in";_rect;_startPoint;_endPoint;_pointerMovementTolerance=5;_zoomStepSize=.2;activated(e){}pointerEventHandler(e,t,i){let r=e.getNormalizedEventCoordinates(t);switch(t.type){case x.PointerDown:this._startPoint=r,this._rect||(this._rect=document.createElementNS("http://www.w3.org/2000/svg","rect")),this._rect.setAttribute("class","svg-selector"),this._rect.setAttribute("x",this._startPoint.x*e.zoomFactor),this._rect.setAttribute("y",this._startPoint.y*e.zoomFactor),this._rect.setAttribute("width",0),this._rect.setAttribute("height",0),this._rect.style.strokeWidth=""+1/e.scaleFactor,this._rect.style.strokeDasharray=""+2/e.scaleFactor,e.overlayLayer.addOverlay(this.constructor.name,this._rect,I.Foreground);break;case x.PointerMove:if(this._startPoint){let o=r.x-this._startPoint.x,a=r.y-this._startPoint.y;o>=0?(this._rect.setAttribute("x",this._startPoint.x),this._rect.setAttribute("width",o)):(this._rect.setAttribute("x",r.x),this._rect.setAttribute("width",-1*o)),a>=0?(this._rect.setAttribute("y",this._startPoint.y),this._rect.setAttribute("height",a)):(this._rect.setAttribute("y",r.y),this._rect.setAttribute("height",-1*a))}break;case x.PointerUp:this._endPoint=r;let n=t.button==0;switch(t.button){case 0:case 2:this._zoomOnto(n,this._startPoint,this._endPoint,e);break}e.overlayLayer.removeOverlay(this._rect),this._rect=null,this._startPoint=null;break}}_zoomOnto(e,t,i,r){if(this._isPositionEqual(t,i)){let n=r.zoomFactor,o=e?n+this._zoomStepSize:n-this._zoomStepSize;r.zoomTowardsPoint(i,o)}else r.zoomOntoRectangle(t,i)}_isPositionEqual(e,t){let i=this._pointerMovementTolerance;return Math.abs(e.x-t.x)<=i&&Math.abs(e.y-t.y)<=i}keyboardEventHandler(e,t,i){}dispose(){}}});var sn,Ma=u(()=>{"use strict";ee();sn=class{cursor="grab";pointerEventHandler(e,t,i){switch(t.type){case x.PointerDown:t.target.setPointerCapture(t.pointerId),e.captureActiveTool(this);break;case x.PointerMove:(t.buttons==1||t.buttons==4)&&(e.canvasOffset={x:e.canvasOffset.x+t.movementX/e.zoomFactor,y:e.canvasOffset.y+t.movementY/e.zoomFactor});break;case x.PointerUp:t.target.releasePointerCapture(t.pointerId),e.releaseActiveTool();break}}keyboardEventHandler(e,t,i){}activated(e){}dispose(){}}});var S,Qe=u(()=>{"use strict";(function(s){s.copy="copy",s.paste="paste",s.cut="cut",s.delete="delete",s.undo="undo",s.redo="redo",s.holdUndo="holdUndo",s.holdRedo="holdRedo",s.rotateCounterClockwise="rotateCounterClockwise",s.rotateClockwise="rotateClockwise",s.mirrorHorizontal="mirrorHorizontal",s.mirrorVertical="mirrorVertical",s.selectAll="selectAll",s.moveToFront="moveToFront",s.moveForward="moveForward",s.moveBackward="moveBackward",s.moveToBack="moveToBack",s.arrangeLeft="arrangeLeft",s.arrangeCenter="arrangeCenter",s.arrangeRight="arrangeRight",s.arrangeTop="arrangeTop",s.arrangeMiddle="arrangeMiddle",s.arrangeBottom="arrangeBottom",s.unifyWidth="unifyWidth",s.unifyHeight="unifyHeight",s.distributeHorizontal="distributeHorizontaly",s.distributeVertical="distributeVertical",s.setTool="setTool",s.setStrokeColor="setStrokeColor",s.setFillBrush="setFillBrush",s.setStrokeThickness="setStrokeThickness",s.screenshot="screenshot"})(S||(S={}))});var on,Oa=u(()=>{"use strict";Qe();$();on=class{shouldProvideContextmenu(e,t,i,r){return!0}provideContextMenuItems(e,t,i){return[{title:"copy",icon:`<img src="${v+"icons/copy.svg"}">`,action:()=>{t.executeCommand({type:S.copy})},shortCut:"Ctrl + C",disabled:i===null},{title:"cut",icon:`<img src="${v+"icons/cut.svg"}">`,action:()=>{t.executeCommand({type:S.cut})},shortCut:"Ctrl + X",disabled:i===null},{title:"paste",icon:`<img src="${v+"icons/paste.svg"}">`,action:()=>{t.executeCommand({type:S.paste})},shortCut:"Ctrl + V"},{title:"delete",icon:`<img src="${v+"icons/delete.svg"}">`,action:()=>{t.executeCommand({type:S.delete})},shortCut:"Del",disabled:i===null}]}}});var an,Na=u(()=>{"use strict";Qe();Z();$();an=class{shouldProvideContextmenu(e,t,i,r){return!i?.isRootItem&&i?.nodeType==E.Element}provideContextMenuItems(e,t,i){return[{title:"to front",icon:`<img style="rotate: 90deg" src="${v+"icons/moveFirst.svg"}">`,action:()=>{t.executeCommand({type:S.moveToFront})}},{title:"move forward",icon:`<img style="rotate: 90deg" src="${v+"icons/moveLeft.svg"}">`,action:()=>{t.executeCommand({type:S.moveForward})}},{title:"move backward",icon:`<img style="rotate: 270deg" src="${v+"icons/moveLeft.svg"}">`,action:()=>{t.executeCommand({type:S.moveBackward})}},{title:"to back",icon:`<img style="rotate: 270deg" src="${v+"icons/moveFirst.svg"}">`,action:()=>{t.executeCommand({type:S.moveToBack})}}]}}});function wh(s,e,t=!1,i=0){for(let p of s)if(p==e||p.element.contains(e.element)){console.warn("could not move items into of itself or a child");return}let r=s[0],n=r.openGroup("switchContainerHelper"),o=r.instanceServiceContainer.designerCanvas,a=Number.MAX_VALUE,l=Number.MAX_VALUE,c=0,h=0;for(let p of s){let g=o.getNormalizedElementCoordinates(p.element);g.x<a&&(a=g.x),g.y<l&&(l=g.y),g.x+g.width>c&&(c=g.x+g.width),g.y+g.height>h&&(h=g.y+g.height)}let d=o.getNormalizedElementCoordinates(e.element);for(let p of s){let g=o.getNormalizedElementCoordinates(p.element);p.remove(),t?(p.setStyle("left",(g.x-a+i).toString()+"px"),p.setStyle("top",(g.y-l+i).toString()+"px")):(p.setStyle("left",(g.x-d.x).toString()+"px"),p.setStyle("top",(g.y-d.y).toString()+"px")),e.insertChild(p)}t&&(e.setStyle("position","absolute"),e.setStyle("left",(a-i).toString()+"px"),e.setStyle("top",(l-i).toString()+"px"),e.setStyle("width",(c-a+2*i).toString()+"px"),e.setStyle("height",(h-l+2*i).toString()+"px")),n.commit()}var La=u(()=>{"use strict"});var ln,Ra=u(()=>{"use strict";La();q();ln=class{orderIndex=60;shouldProvideContextmenu(e,t,i,r){return i?.instanceServiceContainer.selectionService.selectedElements.length>1}provideContextMenuItems(e,t,i){return[{title:"wrap in",children:[{title:"div",action:()=>{let r=i.openGroup("wrap in Div"),n=i.instanceServiceContainer.selectionService.selectedElements,o=document.createElement("div"),a=T.createDesignItemFromInstance(o,i.serviceContainer,i.instanceServiceContainer);n[0].insertAdjacentElement(a,"beforebegin"),wh(n,a,!0,10),r.commit(),i.instanceServiceContainer.selectionService.setSelectedElements([a])}}]}]}}});var Ei,Fa=u(()=>{"use strict";ee();Ne();q();X();Ei=class{cursor="progress";_rect;_initialPoint;activated(e){}pointerEventHandler(e,t,i){j(t)||t.shiftKey?this.cursor="copy":t.altKey?this.cursor="default":this.cursor="default";let r=e.getNormalizedEventCoordinates(t);switch(t.type){case x.PointerDown:t.target.setPointerCapture(t.pointerId),e.captureActiveTool(this),this._initialPoint=r,this._rect||(this._rect=document.createElementNS("http://www.w3.org/2000/svg","rect")),this._rect.setAttribute("class","svg-selector"),this._rect.setAttribute("x",this._initialPoint.x*e.scaleFactor),this._rect.setAttribute("y",this._initialPoint.y*e.scaleFactor),this._rect.setAttribute("width",0),this._rect.setAttribute("height",0),this._rect.style.strokeWidth=""+1/e.scaleFactor,this._rect.style.strokeDasharray=""+2/e.scaleFactor,e.overlayLayer.addOverlay(this.constructor.name,this._rect,I.Foreground);break;case x.PointerMove:if(this._initialPoint){let l=r.x-this._initialPoint.x,c=r.y-this._initialPoint.y;l>=0?(this._rect.setAttribute("x",this._initialPoint.x),this._rect.setAttribute("width",l)):(this._rect.setAttribute("x",r.x),this._rect.setAttribute("width",-1*l)),c>=0?(this._rect.setAttribute("y",this._initialPoint.y),this._rect.setAttribute("height",c)):(this._rect.setAttribute("y",r.y),this._rect.setAttribute("height",-1*c))}break;case x.PointerUp:t.target.releasePointerCapture(t.pointerId),e.releaseActiveTool();let n=e.rootDesignItem.querySelectorAll("*"),o=[];(j(t)||t.shiftKey||t.altKey)&&e.instanceServiceContainer.selectionService.selectedElements&&o.push(...e.instanceServiceContainer.selectionService.selectedElements);let a=e.overlayLayer.createPoint();for(let l of n){let c=e.getNormalizedElementCoordinates(l);a.x=c.x,a.y=c.y;let h=this._rect.isPointInFill(a);a.x=c.x+c.width,a.y=c.y;let d=h&&this._rect.isPointInFill(a);a.x=c.x,a.y=c.y+c.height;let p=d&&this._rect.isPointInFill(a);if(a.x=c.x+c.width,a.y=c.y+c.height,p&&this._rect.isPointInFill(a)){let m=T.GetOrCreateDesignItem(l,l,e.serviceContainer,e.instanceServiceContainer);if(!o.includes(m)&&!t.altKey)o.push(m);else if(t.altKey){let f=o.indexOf(m);o.splice(f,1)}}}e.overlayLayer.removeOverlay(this._rect),this._rect=null,this._initialPoint=null,e.instanceServiceContainer.selectionService.setSelectedElements(o,t),e.serviceContainer.globalContext.finishedWithTool(this);break}}keyboardEventHandler(e,t,i){}dispose(){}}});var cn,za=u(()=>{"use strict";ee();Ne();q();X();cn=class{cursor="progress";_pathD;_path;pointerEventHandler(e,t,i){j(t)?this.cursor="copy":t.altKey?this.cursor="default":this.cursor="default";let r=e.getNormalizedEventCoordinates(t);switch(t.type){case x.PointerDown:t.target.setPointerCapture(t.pointerId),e.captureActiveTool(this),this._path=document.createElementNS("http://www.w3.org/2000/svg","path"),this._path.setAttribute("class","svg-selector"),this._path.style.strokeWidth=""+1/e.scaleFactor,this._path.style.strokeDasharray=""+2/e.scaleFactor,this._pathD="M"+r.x+" "+r.y,this._path.setAttribute("D",this._pathD),e.overlayLayer.addOverlay(this.constructor.name,this._path,I.Foreground);break;case x.PointerMove:this._path&&(this._pathD+="L"+r.x+" "+r.y,this._path.setAttribute("d",this._pathD+"Z"));break;case x.PointerUp:t.target.releasePointerCapture(t.pointerId),e.releaseActiveTool();let n=e.rootDesignItem.querySelectorAll("*"),o=[];(j(t)||t.altKey)&&e.instanceServiceContainer.selectionService.selectedElements&&o.push(...e.instanceServiceContainer.selectionService.selectedElements);let a=e.overlayLayer.createPoint();for(let l of n){let c=e.getNormalizedElementCoordinates(l);a.x=c.x,a.y=c.y;let h=this._path.isPointInFill(a)||this._path.isPointInStroke(a);a.x=c.x+c.width,a.y=c.y;let d=this._path.isPointInFill(a)||this._path.isPointInStroke(a);a.x=c.x,a.y=c.y+c.height;let p=this._path.isPointInFill(a)||this._path.isPointInStroke(a);a.x=c.x+c.width,a.y=c.y+c.height;let g=this._path.isPointInFill(a)||this._path.isPointInStroke(a);if(h&&d&&p&&g){let m=T.GetOrCreateDesignItem(l,l,e.serviceContainer,e.instanceServiceContainer);if(!o.includes(m)&&!t.altKey)o.push(m);else if(t.altKey){let f=o.indexOf(m);o.splice(f,1)}}}e.overlayLayer.removeOverlay(this._path),this._path=null,this._pathD=null,e.instanceServiceContainer.selectionService.setSelectedElements(o),e.serviceContainer.globalContext.finishedWithTool(this);break}}keyboardEventHandler(e,t,i){}activated(e){}dispose(){}}});var hn,Ba=u(()=>{"use strict";hn=class{cursor="crosshair";async activated(e){try{let r=(await new EyeDropper().open()).sRGBHex;e.globalContext.strokeColor=r}finally{e.globalContext.finishedWithTool(this)}}async pointerEventHandler(e,t,i){}keyboardEventHandler(e,t,i){}dispose(){}}});function Ch(s){let e=document.getSelection();return e.getComposedRanges?e=e.getComposedRanges(s):s.getSelection&&(e=s.getSelection()),e}function Sh(s,e){function t(n){let o=document.createElement("span");e.push(o),n.parentNode.insertBefore(o,n),o.appendChild(n)}function i(n){switch(n.nodeType){case Node.TEXT_NODE:t(n);break;case Node.DOCUMENT_FRAGMENT_NODE:case Node.ELEMENT_NODE:Array.from(n.childNodes).forEach(i);break}}let r=s.extractContents();i(r),s.insertNode(r)}function fp(s){let e=document.createRange();return e.setStart(s.startContainer,s.startOffset),e.setEnd(s.endContainer,s.endOffset),e}function Eh(s){let e=[];if(s[0]instanceof StaticRange)Sh(fp(s[0]),e);else{if(!s.rangeCount)return e;let t=s.getRangeAt(0);Sh(t,e)}return s.removeAllRanges&&s.removeAllRanges(),e}var Va=u(()=>{"use strict"});import{html as gp}from"@node-projects/base-custom-webcomponent";var Xt,dn=u(()=>{"use strict";J();X();Va();ea();te();Xt=class s extends N{static template=gp`
|
|
299
299
|
<div style="height: 100%; display: flex; gap: 2px; width: 100%;">
|
|
300
300
|
<button data-command="font-weight" data-command-parameter="800" style="pointer-events: all; height: 24px; width: 24px; padding: 0; font-weight: 900;">b</button>
|
|
301
301
|
<button data-command="font-style" data-command-parameter="italic" style="pointer-events: all; height: 24px; width: 24px; padding: 0;"><em>i</em></button>
|
|
@@ -321,15 +321,15 @@ var vd=Object.defineProperty;var u=(s,e)=>()=>(s&&(e=s(s=0)),e);var xd=(s,e)=>{f
|
|
|
321
321
|
|
|
322
322
|
</select>
|
|
323
323
|
</div>
|
|
324
|
-
`;_foreignObject;_path;_toolbar;_selectionChangedListener;constructor(e,t,i){super(e,t,i)}extend(){this.extendedItem.instanceServiceContainer.selectionService.clearSelectedElements(),this.extendedItem.removeDesignerAttributesAndStylesFromChildren(),this.extendedItem.element.setAttribute("contenteditable",""),this.extendedItem.editContent(),this._selectionChangedListener=this.extendedItem.instanceServiceContainer.selectionService.onSelectionChanged.on(()=>{this.commitchanges(),this.extensionManager.removeExtensionInstance(this.extendedItem,this)}),this.extendedItem.element.focus();let e=W(this.extendedItem.element);this._toolbar=this.createToolbar(s.template,300,24),this._toolbar.updatePosition({x:(e.x-this.designerCanvas.containerBoundingRect.x)/this.designerCanvas.scaleFactor,y:(e.y-this.designerCanvas.containerBoundingRect.y)/this.designerCanvas.scaleFactor-36}),
|
|
324
|
+
`;_foreignObject;_path;_toolbar;_selectionChangedListener;constructor(e,t,i){super(e,t,i)}extend(){this.extendedItem.instanceServiceContainer.selectionService.clearSelectedElements(),this.extendedItem.removeDesignerAttributesAndStylesFromChildren(),this.extendedItem.element.setAttribute("contenteditable",""),this.extendedItem.editContent(),this._selectionChangedListener=this.extendedItem.instanceServiceContainer.selectionService.onSelectionChanged.on(()=>{this.commitchanges(),this.extensionManager.removeExtensionInstance(this.extendedItem,this)}),this.extendedItem.element.focus();let e=W(this.extendedItem.element);this._toolbar=this.createToolbar(s.template,300,24),this._toolbar.updatePosition({x:(e.x-this.designerCanvas.containerBoundingRect.x)/this.designerCanvas.scaleFactor,y:(e.y-this.designerCanvas.containerBoundingRect.y)/this.designerCanvas.scaleFactor-36}),Vt.addFontsToSelect(this._toolbar.getById("fontFamily")),this._toolbar.querySelectorAll("button").forEach(t=>t.onpointerdown=i=>{this._formatSelection(t.dataset.command,t.dataset.commandParameter)}),this._toolbar.querySelectorAll("select").forEach(t=>t.onchange=()=>this._formatSelection(t.dataset.command,t.value)),this.designerCanvas.clickOverlay.style.pointerEvents="none",this._path=document.createElementNS("http://www.w3.org/2000/svg","path"),this._path.setAttribute("class","svg-edit-text-clickoutside"),this._path.setAttribute("fill-rule","evenodd"),this._path.style.pointerEvents="auto",this._path.onpointerdown=t=>{this.designerCanvas.ignoreEvent(t),this.commitchanges(),this.extensionManager.removeExtensionInstance(this.extendedItem,this)},this._addOverlay(this._path,I.Background),this.refresh()}refresh(){let e=this.extendedItem.element.getBoxQuads({relativeTo:this.designerCanvas.canvas})[0];if(this._valuesHaveChanges(this.designerCanvas.containerBoundingRect.width,this.designerCanvas.containerBoundingRect.height,this.designerCanvas.scaleFactor,e.p1.x,e.p1.y,e.p2.x,e.p2.y,e.p3.x,e.p3.y,e.p4.x,e.p4.y)){let t={width:this.designerCanvas.containerBoundingRect.width/this.designerCanvas.scaleFactor,height:this.designerCanvas.containerBoundingRect.height/this.designerCanvas.scaleFactor},i="M0 0 L"+t.width+" 0 L"+t.width+" "+t.height+" L0 "+t.height+" Z ";i+="M"+[e.p1,e.p2,e.p3,e.p4].map(r=>r.x+","+r.y).join(" ")+"Z ",this._path.setAttribute("d",i)}}dispose(){this._selectionChangedListener.dispose(),this._removeAllOverlays(),this.extendedItem.editContentFinish(),this.designerCanvas.clickOverlay.style.pointerEvents="auto"}commitchanges(){this._removeAllOverlays(),this.extendedItem.element.normalize();let e=!1;e:for(;!e;){for(let i of this.extendedItem.element.querySelectorAll("*"))if(i.childNodes.length==0){i.remove();continue e}e=!0}let t=this.extendedItem.element.innerHTML;this.extendedItem.editContentFinish(),this.extendedItem.innerHTML=t,this.designerCanvas.clickOverlay.style.pointerEvents="auto"}handlesPointerEvent(e,t,i){let r=t.composedPath(),n=this._foreignObject.querySelector("stylo-editor");return r.indexOf(n)>=0}_formatSelection(e,t){let i=Ch(this.designerCanvas.rootDesignItem.element.shadowRoot),r=Eh(i);for(let n of r)n.style[e]=t;this.extendedItem.element.focus()}}});var pn,Ha=u(()=>{"use strict";ee();q();He();dn();pn=class{_textEditExtensions;constructor(e){e&&(this._editExistingText=!0)}activated(e){this._textCreated=!1}dispose(){}cursor="text";_textCreated=!1;_editExistingText=!1;pointerEventHandler(e,t,i){let r=e.getNormalizedEventCoordinates(t);switch(t.type){case x.PointerDown:if(!this._textCreated&&!this._editExistingText){this._textCreated=!0;let n=document.createElement("span"),o=T.createDesignItemFromInstance(n,e.serviceContainer,e.instanceServiceContainer);o.setStyle("position","absolute"),o.setStyle("left",r.x+"px"),o.setStyle("top",r.y+"px"),e.instanceServiceContainer.undoService.execute(new oe(e.rootDesignItem,e.rootDesignItem.childCount,o)),e.extensionManager.applyExtensionInstance(o,new Xt(e.extensionManager,e,o)),e.serviceContainer.globalContext.finishedWithTool(this),setTimeout(()=>{n.focus()},50)}else for(let n of this._textEditExtensions)n.handlesPointerEvent&&(n.handlesPointerEvent(e,t,i)||e.serviceContainer.globalContext.finishedWithTool(this));break}}keyboardEventHandler(e,t,i){}}});var mn,Ga=u(()=>{"use strict";J();X();mn=class extends N{_path;constructor(e,t,i){super(e,t,i)}extend(){this.refresh()}refresh(){this._path||(this._path=document.createElementNS("http://www.w3.org/2000/svg","path"),this._path.setAttribute("class","svg-gray-out"),this._path.setAttribute("fill-rule","evenodd"),this._addOverlay(this._path,I.Background));let e=this.extendedItem.element.getBoxQuads({relativeTo:this.designerCanvas.canvas})[0],t={width:this.designerCanvas.containerBoundingRect.width/this.designerCanvas.scaleFactor,height:this.designerCanvas.containerBoundingRect.height/this.designerCanvas.scaleFactor},i="M0 0 L"+t.width+" 0 L"+t.width+" "+t.height+" L0 "+t.height+" Z ";i+="M"+e.p1.x+" "+e.p1.y+" L"+e.p2.x+" "+e.p2.y+" L"+e.p3.x+" "+e.p3.y+" L"+e.p4.x+" "+e.p4.y+" Z",this._path.setAttribute("d",i)}dispose(){this._removeAllOverlays(),this._path=null}}});import{css as yp}from"@node-projects/base-custom-webcomponent";var un,Wa=u(()=>{"use strict";Ga();un=class{shouldExtend(e,t,i){return!0}getExtension(e,t,i){return new mn(e,t,i)}style=yp`
|
|
325
325
|
.svg-gray-out { stroke: transparent; fill: rgba(211, 211, 211, 0.8); pointer-events: none }
|
|
326
|
-
`}});var fn,ja=u(()=>{"use strict";J();X();fn=class extends N{_text;constructor(e,t,i){super(e,t,i)}extend(){this.refresh()}refresh(){let e=this.designerCanvas.getNormalizedElementCoordinates(this.extendedItem.element);this._text=this._drawText("Press ALT (or hold) to enter container",e.x+5,e.y+12,"svg-text-enter-container",this._text,
|
|
326
|
+
`}});var fn,ja=u(()=>{"use strict";J();X();fn=class extends N{_text;constructor(e,t,i){super(e,t,i)}extend(){this.refresh()}refresh(){let e=this.designerCanvas.getNormalizedElementCoordinates(this.extendedItem.element);this._text=this._drawText("Press ALT (or hold) to enter container",e.x+5,e.y+12,"svg-text-enter-container",this._text,I.Foreground),this._text.style.fontSize=14/this.designerCanvas.scaleFactor+"px",this._text.setAttribute("x",""+(e.x+5/this.designerCanvas.scaleFactor)),this._text.setAttribute("y",""+(e.y+12/this.designerCanvas.scaleFactor))}dispose(){this._removeAllOverlays()}}});import{css as vp}from"@node-projects/base-custom-webcomponent";var gn,Ua=u(()=>{"use strict";ja();gn=class{shouldExtend(e,t,i){return!0}getExtension(e,t,i){return new fn(e,t,i)}static style=vp`
|
|
327
327
|
.svg-text-enter-container { stroke: none; fill: black; stroke-width: 1; font-weight:800; font-family: monospace; }
|
|
328
|
-
`}});var yn,Ka=u(()=>{"use strict";J();X();yn=class extends N{_rect;constructor(e,t,i){super(e,t,i)}extend(e,t){this.refresh(e,t)}refresh(e,t){let i=this.extendedItem.element.getBoxQuads({relativeTo:this.designerCanvas.canvas})[0];this._valuesHaveChanges(i.p1.x,i.p1.y,i.p2.x,i.p2.y,i.p3.x,i.p3.y,i.p4.x,i.p4.y)&&(this._rect=this._drawTransformedRect(i,"svg-invisible-div",this._rect,
|
|
328
|
+
`}});var yn,Ka=u(()=>{"use strict";J();X();yn=class extends N{_rect;constructor(e,t,i){super(e,t,i)}extend(e,t){this.refresh(e,t)}refresh(e,t){let i=this.extendedItem.element.getBoxQuads({relativeTo:this.designerCanvas.canvas})[0];this._valuesHaveChanges(i.p1.x,i.p1.y,i.p2.x,i.p2.y,i.p3.x,i.p3.y,i.p4.x,i.p4.y)&&(this._rect=this._drawTransformedRect(i,"svg-invisible-div",this._rect,I.Background))}dispose(){this._removeAllOverlays()}}});import{css as xp}from"@node-projects/base-custom-webcomponent";var Ya,vn,xn=u(()=>{"use strict";Ka();Ya="invisibleElementExtensionShowOverlay",vn=class{elementFilter;constructor(e=t=>t.name=="div"&&window.getComputedStyle(t.element).display!="inline"){this.elementFilter=e}shouldExtend(e,t,i){if(t.instanceServiceContainer.designContext.extensionOptions[Ya]!==!1&&this.elementFilter(i)){let r=window.getComputedStyle(i.element);return r.backgroundColor=="rgba(0, 0, 0, 0)"&&r.borderStyle=="none"}return!1}getExtension(e,t,i){return new yn(e,t,i)}static style=xp`
|
|
329
329
|
.svg-invisible-div { stroke: lightgray; fill: transparent; stroke-width: 1;
|
|
330
|
-
`}});var _n,Xa=u(()=>{"use strict";q();_n=class{shouldProvideContextmenu(e,t,i,r){return r=="designer"}provideContextMenuItems(e,t,i){let r=t.elementsFromPoint(e.x,e.y);return r.length>0?[{title:"items below",children:[...r.map(n=>({title:"select: "+n.localName+(n.id?" (#"+n.id+")":""),action:()=>this._select(t,n)}))]}]:[]}_select(e,t){let i=T.GetOrCreateDesignItem(t,t,e.serviceContainer,e.instanceServiceContainer);e.instanceServiceContainer.selectionService.setSelectedElements([i])}}});function Xt(s){let e=getComputedStyle(s),t=1,i=1;return e.gridRowEnd=="auto"?t=1:e.gridRowEnd.startsWith("span")?t=parseInt(e.gridRowEnd.substring(4)):t=parseInt(e.gridRowEnd)-parseInt(e.gridRowStart),e.gridColumnEnd=="auto"?i=1:e.gridColumnEnd.startsWith("span")?i=parseInt(e.gridColumnEnd.substring(4)):i=parseInt(e.gridColumnEnd)-parseInt(e.gridColumnStart),{colSpan:i,rowSpan:t}}function Ge(s){let e=s.instanceServiceContainer.designerCanvas.getNormalizedElementCoordinates(s.element),t=s.element.getBoxQuads({relativeTo:s.instanceServiceContainer.designerCanvas.canvas})[0],i=getComputedStyle(s.element),r=i.gridTemplateRows.split(" "),n=i.gridTemplateColumns.split(" "),o=Number.parseFloat(i.paddingLeft),a=Number.parseFloat(i.paddingTop),l=0,c=0,h=0,d=0,p=t.p1.x,g=t.p1.y;p+=parseFloat(i.borderLeftWidth),g+=parseFloat(i.borderTopWidth);let m=null;i.gridTemplateAreas&&i.gridTemplateAreas!=="none"&&(m=i.gridTemplateAreas.split('"')),i.columnGap&&i.columnGap!="normal"&&(c=Number.parseFloat(i.columnGap.replace("px",""))),i.rowGap&&i.rowGap!="normal"&&(h=Number.parseFloat(i.rowGap.replace("px","")));let f=0,b=0;for(let C of n){let I=Number.parseFloat(C.replace("px",""));f+=I+c}f-=c;for(let C of r){let I=Number.parseFloat(C.replace("px",""));b+=I+h}if(b-=h,i.justifyContent=="center")p+=(e.width-f)/2;else if(i.justifyContent=="end")p+=e.width-f;else if(i.justifyContent=="space-between")c+=(e.width-f)/(n.length-1);else if(i.justifyContent=="space-around"){let C=(e.width-f)/(n.length*2);c+=C*2,p+=C}else if(i.justifyContent=="space-evenly"){let C=(e.width-f)/(n.length+1);c+=C,p+=C}if(i.alignContent=="center")p+=(e.height-b)/2;else if(i.alignContent=="end")p+=e.height-b;else if(i.alignContent=="space-between")h+=(e.height-b)/(r.length-1);else if(i.alignContent=="space-around"){let C=(e.height-b)/(r.length*2);h+=C*2,g+=C}else if(i.alignContent=="space-evenly"){let C=(e.height-b)/(r.length+1);h+=C,g+=C}let _={cells:[],gaps:[],xGap:c,yGap:h};for(let C=0;C<r.length;C++){let I=r[C],P=null;m&&m[d+1]&&(P=m[d+1].split(" "));let D=0,A=0,L=Number.parseFloat(I.replace("px","")),H=[];_.cells.push(H);for(let ae=0;ae<n.length;ae++){let B=n[ae];ae>0&&(_.gaps.push({x:D+p+o,y:l+g+a,width:c,height:L,column:ae,row:C,type:"v"}),D+=c);let xe=Number.parseFloat(B.replace("px",""));C>0&&_.gaps.push({x:D+p+o,y:l+g-h+a,width:xe,height:h,column:ae,row:C,type:"h"});let Re=null;if(P&&P[A]){let Ke=P[A].trim();Ke!="."&&(Re=Ke)}let gt={x:D+p+o,y:l+g+a,width:xe,height:L,name:Re};H.push(gt),D+=xe,A++}l+=L+h,d+=2}return _}var Zt=u(()=>{"use strict"});var bn,Za=u(()=>{"use strict";Zt();Pe();Ht();te();bn=class{_basePlacementService;constructor(e){this._basePlacementService=e??new Ve}enterContainer(e,t,i){for(let r of t)e.insertChild(r),r.removeStyle("position"),r.removeStyle("left"),r.removeStyle("top"),r.removeStyle("right"),r.removeStyle("width"),r.removeStyle("height"),r.removeStyle("transform")}leaveContainer(e,t){for(let i of t)if(!i.lastContainerSize){let r=W(i.element);i.lastContainerSize={width:r.width,height:r.height}}}serviceForContainer(e,t,i){return t.display=="grid"||t.display=="inline-grid"?!(i!=null&&i.getComputedStyle()?.position=="absolute"):!1}isEnterableContainer(e){return this._basePlacementService.isEnterableContainer(e)}canEnter(e,t){return this._basePlacementService.canEnter(e,t)}canLeave(e,t){return!0}getElementOffset(e,t){return W(e.element)}placePoint(e,t,i,r,n,o,a){return i.serviceContainer.getLastServiceWhere("containerService",c=>c instanceof Ve).placePoint(e,t,i,r,n,o,a)}startPlace(e,t,i,r,n,o,a){}place(e,t,i,r,n,o,a){let l=Ge(i),c=t.getNormalizedEventCoordinates(e),h=0,d=0;for(let p of l.cells){d=0;for(let g of p){if(zo(c,g)){let m=Xt(a[0].element);g.name?(a[0].element.style.gridColumn="",a[0].element.style.gridRow="",a[0].element.style.gridArea=g.name):(a[0].element.style.gridArea="",m.colSpan<=1?(a[0].element.style.gridColumn=""+(d+1),a[0].element.style.gridRow=""+(h+1)):(a[0].element.style.gridColumnStart=""+(d+1),a[0].element.style.gridRowStart=""+(h+1),a[0].element.style.gridColumnEnd=""+(d+m.colSpan+1),a[0].element.style.gridRowEnd=""+(h+m.rowSpan+1)))}d++}h++}t.extensionManager.refreshAllExtensions([i])}finishPlace(e,t,i,r,n,o,a){let l=Ge(i),c=t.getNormalizedEventCoordinates(e),h=0,d=0;h=0;for(let p of l.cells){d=0;for(let g of p){if(zo(c,g)){let m=Xt(a[0].element);g.name?(a[0].setStyle("grid-area",g.name),a[0].removeStyle("grid-row-start"),a[0].removeStyle("grid-row-end"),a[0].removeStyle("grid-column-start"),a[0].removeStyle("grid-column-end"),a[0].removeStyle("grid-column"),a[0].removeStyle("grid-row"),a[0].setStyle("grid-area",g.name)):m.colSpan<=1?(a[0].removeStyle("grid-area"),a[0].removeStyle("grid-row-start"),a[0].removeStyle("grid-row-end"),a[0].removeStyle("grid-column-start"),a[0].removeStyle("grid-column-end"),a[0].setStyle("grid-column",""+(d+1)),a[0].setStyle("grid-row",""+(h+1))):(a[0].removeStyle("grid-area"),a[0].removeStyle("grid-column"),a[0].removeStyle("grid-row"),a[0].setStyle("grid-column-start",""+(d+1)),a[0].setStyle("grid-row-start",""+(h+1)),a[0].setStyle("grid-column-end",""+(d+m.colSpan+1)),a[0].setStyle("grid-row-end",""+(h+m.rowSpan+1)))}d++}h++}t.extensionManager.refreshAllExtensions([i])}moveElements(e,t,i){}}});var wn,$a=u(()=>{"use strict";wn=class{getElementAtPoint(e,t){return e.getElementAtPoint(t)}}});var Sn,qa=u(()=>{"use strict";te();Ht();Sn=class{_basePlacementService;constructor(e){this._basePlacementService=e??new Ve}enterContainer(e,t,i){for(let r of t)e.insertChild(r),r.removeStyle("position"),r.removeStyle("left"),r.removeStyle("top"),r.removeStyle("right"),r.removeStyle("transform")}leaveContainer(e,t){for(let i of t)if(!i.lastContainerSize){let r=W(i.element);i.lastContainerSize={width:r.width,height:r.height}}}serviceForContainer(e,t,i){return t.display=="flex"||t.display=="inline-flex"?!(i!=null&&i.getComputedStyle()?.position=="absolute"):!1}isEnterableContainer(e){return this._basePlacementService.isEnterableContainer(e)}canEnter(e,t){return this._basePlacementService.canEnter(e,t)}canLeave(e,t){return!0}getElementOffset(e,t){return W(e.element)}placePoint(e,t,i,r,n,o,a){return i.serviceContainer.getLastServiceWhere("containerService",c=>c instanceof Ve).placePoint(e,t,i,r,n,o,a)}startPlace(e,t,i,r,n,o,a){}place(e,t,i,r,n,o,a){let l=t.getNormalizedEventCoordinates(e),c=getComputedStyle(i.element),h=Array.from(i.children()).filter(d=>!d.isEmptyTextNode).map(d=>[d,t.getNormalizedElementCoordinates(d.element)]);if(c.flexDirection=="row"||c.flexDirection=="row-reverse"){h.sort(m=>m[1].x);let d=null;for(let m of h)if(m[1].x+m[1].width/2<l.x&&(d=m,c.flexDirection=="row-reverse"))break;let p=h.indexOf(d),g=h.indexOf(h.find(m=>m[0]==a[0]));if(d&&d[0]!=a[0]){if(c.flexDirection=="row-reverse"&&p-1===g||c.flexDirection=="row"&&p+1===g)return;let m=[...i.instanceServiceContainer.selectionService.selectedElements],f=a[0].openGroup("move in flexbox");a[0].parent&&a[0].remove(),c.flexDirection=="row-reverse"?d[0].insertAdjacentElement(a[0],"beforebegin"):d[0].insertAdjacentElement(a[0],"afterend"),f.commit(),i.instanceServiceContainer.selectionService.setSelectedElements(m)}else if(d==null){if(g==0)return;let m=[...i.instanceServiceContainer.selectionService.selectedElements],f=a[0].openGroup("move in flexbox");a[0].parent&&a[0].remove(),c.flexDirection=="row-reverse"?i.insertChild(a[0]):i.insertChild(a[0],0),f.commit(),i.instanceServiceContainer.selectionService.setSelectedElements(m)}}else if(c.flexDirection=="column"||c.flexDirection=="column-reverse"){h.sort(m=>m[1].y);let d=null;for(let m of h)if(m[1].y+m[1].height/2<l.y&&(d=m,c.flexDirection=="column-reverse"))break;let p=h.indexOf(d),g=h.indexOf(h.find(m=>m[0]==a[0]));if(d&&d[0]!=a[0]){if(c.flexDirection=="column-reverse"&&p-1===g||c.flexDirection=="column"&&p+1===g)return;let m=[...i.instanceServiceContainer.selectionService.selectedElements],f=a[0].openGroup("move in flexbox");a[0].parent&&a[0].remove(),c.flexDirection=="column-reverse"?d[0].insertAdjacentElement(a[0],"beforebegin"):d[0].insertAdjacentElement(a[0],"afterend"),f.commit(),i.instanceServiceContainer.selectionService.setSelectedElements(m)}else if(d==null){if(g==0)return;let m=[...i.instanceServiceContainer.selectionService.selectedElements],f=a[0].openGroup("move in flexbox");a[0].parent&&a[0].remove(),c.flexDirection=="column-reverse"?i.insertChild(a[0]):i.insertChild(a[0],0),f.commit(),i.instanceServiceContainer.selectionService.setSelectedElements(m)}}t.extensionManager.refreshAllExtensions([i])}finishPlace(e,t,i,r,n,o,a){}moveElements(e,t,i){}}});var _p,bp,Cn,Qa=u(()=>{"use strict";te();_p="provideSnaplinesWithDistance",bp="provideSnaplinesWithDistanceDistance",Cn=class{provideSnaplines(e,t){{let i=e.instanceServiceContainer.designerCanvas,r=new Map(t.map(m=>[m.element,m])),n=W(e.element),o=i.instanceServiceContainer.designContext.extensionOptions[_p]!==!1,a=i.instanceServiceContainer.designContext.extensionOptions[bp]??5,l=[],c=[],h=[],d=[],p=e.document.createTreeWalker(e.usableContainer,NodeFilter.SHOW_ELEMENT),g=p.nextNode();for(;g!=null;)if(r.has(g))g=p.nextSibling();else{let m=W(g),f=(m.x-n.x)/i.scaleFactor,b=(m.x-n.x+m.width/2)/i.scaleFactor,_=(m.x-n.x+m.width)/i.scaleFactor,C=(m.y-n.y)/i.scaleFactor,I=(m.y-n.y+m.height/2)/i.scaleFactor,P=(m.y-n.y+m.height)/i.scaleFactor,D={x:f+n.x,y:C+n.y,width:m.width/i.scaleFactor,height:m.height/i.scaleFactor};o&&l.push([f-a,D]),l.push([f,D]),c.push([b,D]),l.push([_,D]),o&&l.push([_+a,D]),o&&h.push([C-a,D]),h.push([C,D]),d.push([I,D]),h.push([P,D]),o&&h.push([P+a,D]),g=p.nextNode()}return l.push([0,{x:0,y:0,width:0,height:0}]),l.sort((m,f)=>m[0]-f[0]),c.sort((m,f)=>m[0]-f[0]),h.push([0,{x:0,y:0,width:0,height:0}]),h.sort((m,f)=>m[0]-f[0]),d.sort((m,f)=>m[0]-f[0]),{outerRect:n,positionsH:l,positionsMiddleH:c,positionsV:h,positionsMiddleV:d}}}}});var En,Ja=u(()=>{"use strict";q();He();En=class{dragOver(e){return e.dataTransfer.items[0].type.startsWith("image/")?"copy":"none"}async drop(e,t){if(t.dataTransfer.files[0].type.startsWith("image/")){let i=await T.createDesignItemFromImageBlob(e.serviceContainer,e.instanceServiceContainer,t.dataTransfer.files[0]),r=i.openGroup("Insert of <img>");i.setStyle("position","absolute");let n=e.getNormalizedEventCoordinates(t);i.setStyle("top",n.y+"px"),i.setStyle("left",n.x+"px"),e.instanceServiceContainer.undoService.execute(new oe(e.rootDesignItem,e.rootDesignItem.childCount,i)),r.commit(),requestAnimationFrame(()=>e.instanceServiceContainer.selectionService.setSelectedElements([i]))}}}});import{css as wp}from"@node-projects/base-custom-webcomponent";var An,el=u(()=>{"use strict";dn();An=class{shouldExtend(e,t,i){return!(i.isRootItem||i.name==="input")}getExtension(e,t,i){return new Yt(e,t,i)}static style=wp`
|
|
330
|
+
`}});var _n,Xa=u(()=>{"use strict";q();_n=class{shouldProvideContextmenu(e,t,i,r){return r=="designer"}provideContextMenuItems(e,t,i){let r=t.elementsFromPoint(e.x,e.y);return r.length>0?[{title:"items below",children:[...r.map(n=>({title:"select: "+n.localName+(n.id?" (#"+n.id+")":""),action:()=>this._select(t,n)}))]}]:[]}_select(e,t){let i=T.GetOrCreateDesignItem(t,t,e.serviceContainer,e.instanceServiceContainer);e.instanceServiceContainer.selectionService.setSelectedElements([i])}}});function Zt(s){let e=getComputedStyle(s),t=1,i=1;return e.gridRowEnd=="auto"?t=1:e.gridRowEnd.startsWith("span")?t=parseInt(e.gridRowEnd.substring(4)):t=parseInt(e.gridRowEnd)-parseInt(e.gridRowStart),e.gridColumnEnd=="auto"?i=1:e.gridColumnEnd.startsWith("span")?i=parseInt(e.gridColumnEnd.substring(4)):i=parseInt(e.gridColumnEnd)-parseInt(e.gridColumnStart),{colSpan:i,rowSpan:t}}function Ge(s){let e=s.instanceServiceContainer.designerCanvas.getNormalizedElementCoordinates(s.element),t=s.element.getBoxQuads({relativeTo:s.instanceServiceContainer.designerCanvas.canvas})[0],i=getComputedStyle(s.element),r=i.gridTemplateRows.split(" "),n=i.gridTemplateColumns.split(" "),o=Number.parseFloat(i.paddingLeft),a=Number.parseFloat(i.paddingTop),l=0,c=0,h=0,d=0,p=t.p1.x,g=t.p1.y;p+=parseFloat(i.borderLeftWidth),g+=parseFloat(i.borderTopWidth);let m=null;i.gridTemplateAreas&&i.gridTemplateAreas!=="none"&&(m=i.gridTemplateAreas.split('"')),i.columnGap&&i.columnGap!="normal"&&(c=Number.parseFloat(i.columnGap.replace("px",""))),i.rowGap&&i.rowGap!="normal"&&(h=Number.parseFloat(i.rowGap.replace("px","")));let f=0,b=0;for(let C of n){let k=Number.parseFloat(C.replace("px",""));f+=k+c}f-=c;for(let C of r){let k=Number.parseFloat(C.replace("px",""));b+=k+h}if(b-=h,i.justifyContent=="center")p+=(e.width-f)/2;else if(i.justifyContent=="end")p+=e.width-f;else if(i.justifyContent=="space-between")c+=(e.width-f)/(n.length-1);else if(i.justifyContent=="space-around"){let C=(e.width-f)/(n.length*2);c+=C*2,p+=C}else if(i.justifyContent=="space-evenly"){let C=(e.width-f)/(n.length+1);c+=C,p+=C}if(i.alignContent=="center")p+=(e.height-b)/2;else if(i.alignContent=="end")p+=e.height-b;else if(i.alignContent=="space-between")h+=(e.height-b)/(r.length-1);else if(i.alignContent=="space-around"){let C=(e.height-b)/(r.length*2);h+=C*2,g+=C}else if(i.alignContent=="space-evenly"){let C=(e.height-b)/(r.length+1);h+=C,g+=C}let _={cells:[],gaps:[],xGap:c,yGap:h};for(let C=0;C<r.length;C++){let k=r[C],P=null;m&&m[d+1]&&(P=m[d+1].split(" "));let D=0,A=0,R=Number.parseFloat(k.replace("px","")),H=[];_.cells.push(H);for(let ae=0;ae<n.length;ae++){let B=n[ae];ae>0&&(_.gaps.push({x:D+p+o,y:l+g+a,width:c,height:R,column:ae,row:C,type:"v"}),D+=c);let xe=Number.parseFloat(B.replace("px",""));C>0&&_.gaps.push({x:D+p+o,y:l+g-h+a,width:xe,height:h,column:ae,row:C,type:"h"});let Re=null;if(P&&P[A]){let Ke=P[A].trim();Ke!="."&&(Re=Ke)}let gt={x:D+p+o,y:l+g+a,width:xe,height:R,name:Re};H.push(gt),D+=xe,A++}l+=R+h,d+=2}return _}var $t=u(()=>{"use strict"});var bn,Za=u(()=>{"use strict";$t();Pe();Gt();te();bn=class{_basePlacementService;constructor(e){this._basePlacementService=e??new Ve}enterContainer(e,t,i){for(let r of t)e.insertChild(r),r.removeStyle("position"),r.removeStyle("left"),r.removeStyle("top"),r.removeStyle("right"),r.removeStyle("width"),r.removeStyle("height"),r.removeStyle("transform")}leaveContainer(e,t){for(let i of t)if(!i.lastContainerSize){let r=W(i.element);i.lastContainerSize={width:r.width,height:r.height}}}serviceForContainer(e,t,i){return t.display=="grid"||t.display=="inline-grid"?!(i!=null&&i.getComputedStyle()?.position=="absolute"):!1}isEnterableContainer(e){return this._basePlacementService.isEnterableContainer(e)}canEnter(e,t){return this._basePlacementService.canEnter(e,t)}canLeave(e,t){return!0}getElementOffset(e,t){return W(e.element)}placePoint(e,t,i,r,n,o,a){return i.serviceContainer.getLastServiceWhere("containerService",c=>c instanceof Ve).placePoint(e,t,i,r,n,o,a)}startPlace(e,t,i,r,n,o,a){}place(e,t,i,r,n,o,a){let l=Ge(i),c=t.getNormalizedEventCoordinates(e),h=0,d=0;for(let p of l.cells){d=0;for(let g of p){if(zo(c,g)){let m=Zt(a[0].element);g.name?(a[0].element.style.gridColumn="",a[0].element.style.gridRow="",a[0].element.style.gridArea=g.name):(a[0].element.style.gridArea="",m.colSpan<=1?(a[0].element.style.gridColumn=""+(d+1),a[0].element.style.gridRow=""+(h+1)):(a[0].element.style.gridColumnStart=""+(d+1),a[0].element.style.gridRowStart=""+(h+1),a[0].element.style.gridColumnEnd=""+(d+m.colSpan+1),a[0].element.style.gridRowEnd=""+(h+m.rowSpan+1)))}d++}h++}t.extensionManager.refreshAllExtensions([i])}finishPlace(e,t,i,r,n,o,a){let l=Ge(i),c=t.getNormalizedEventCoordinates(e),h=0,d=0;h=0;for(let p of l.cells){d=0;for(let g of p){if(zo(c,g)){let m=Zt(a[0].element);g.name?(a[0].setStyle("grid-area",g.name),a[0].removeStyle("grid-row-start"),a[0].removeStyle("grid-row-end"),a[0].removeStyle("grid-column-start"),a[0].removeStyle("grid-column-end"),a[0].removeStyle("grid-column"),a[0].removeStyle("grid-row"),a[0].setStyle("grid-area",g.name)):m.colSpan<=1?(a[0].removeStyle("grid-area"),a[0].removeStyle("grid-row-start"),a[0].removeStyle("grid-row-end"),a[0].removeStyle("grid-column-start"),a[0].removeStyle("grid-column-end"),a[0].setStyle("grid-column",""+(d+1)),a[0].setStyle("grid-row",""+(h+1))):(a[0].removeStyle("grid-area"),a[0].removeStyle("grid-column"),a[0].removeStyle("grid-row"),a[0].setStyle("grid-column-start",""+(d+1)),a[0].setStyle("grid-row-start",""+(h+1)),a[0].setStyle("grid-column-end",""+(d+m.colSpan+1)),a[0].setStyle("grid-row-end",""+(h+m.rowSpan+1)))}d++}h++}t.extensionManager.refreshAllExtensions([i])}moveElements(e,t,i){}}});var wn,$a=u(()=>{"use strict";wn=class{getElementAtPoint(e,t){return e.getElementAtPoint(t)}}});var Sn,qa=u(()=>{"use strict";te();Gt();Sn=class{_basePlacementService;constructor(e){this._basePlacementService=e??new Ve}enterContainer(e,t,i){for(let r of t)e.insertChild(r),r.removeStyle("position"),r.removeStyle("left"),r.removeStyle("top"),r.removeStyle("right"),r.removeStyle("transform")}leaveContainer(e,t){for(let i of t)if(!i.lastContainerSize){let r=W(i.element);i.lastContainerSize={width:r.width,height:r.height}}}serviceForContainer(e,t,i){return t.display=="flex"||t.display=="inline-flex"?!(i!=null&&i.getComputedStyle()?.position=="absolute"):!1}isEnterableContainer(e){return this._basePlacementService.isEnterableContainer(e)}canEnter(e,t){return this._basePlacementService.canEnter(e,t)}canLeave(e,t){return!0}getElementOffset(e,t){return W(e.element)}placePoint(e,t,i,r,n,o,a){return i.serviceContainer.getLastServiceWhere("containerService",c=>c instanceof Ve).placePoint(e,t,i,r,n,o,a)}startPlace(e,t,i,r,n,o,a){}place(e,t,i,r,n,o,a){let l=t.getNormalizedEventCoordinates(e),c=getComputedStyle(i.element),h=Array.from(i.children()).filter(d=>!d.isEmptyTextNode).map(d=>[d,t.getNormalizedElementCoordinates(d.element)]);if(c.flexDirection=="row"||c.flexDirection=="row-reverse"){h.sort(m=>m[1].x);let d=null;for(let m of h)if(m[1].x+m[1].width/2<l.x&&(d=m,c.flexDirection=="row-reverse"))break;let p=h.indexOf(d),g=h.indexOf(h.find(m=>m[0]==a[0]));if(d&&d[0]!=a[0]){if(c.flexDirection=="row-reverse"&&p-1===g||c.flexDirection=="row"&&p+1===g)return;let m=[...i.instanceServiceContainer.selectionService.selectedElements],f=a[0].openGroup("move in flexbox");a[0].parent&&a[0].remove(),c.flexDirection=="row-reverse"?d[0].insertAdjacentElement(a[0],"beforebegin"):d[0].insertAdjacentElement(a[0],"afterend"),f.commit(),i.instanceServiceContainer.selectionService.setSelectedElements(m)}else if(d==null){if(g==0)return;let m=[...i.instanceServiceContainer.selectionService.selectedElements],f=a[0].openGroup("move in flexbox");a[0].parent&&a[0].remove(),c.flexDirection=="row-reverse"?i.insertChild(a[0]):i.insertChild(a[0],0),f.commit(),i.instanceServiceContainer.selectionService.setSelectedElements(m)}}else if(c.flexDirection=="column"||c.flexDirection=="column-reverse"){h.sort(m=>m[1].y);let d=null;for(let m of h)if(m[1].y+m[1].height/2<l.y&&(d=m,c.flexDirection=="column-reverse"))break;let p=h.indexOf(d),g=h.indexOf(h.find(m=>m[0]==a[0]));if(d&&d[0]!=a[0]){if(c.flexDirection=="column-reverse"&&p-1===g||c.flexDirection=="column"&&p+1===g)return;let m=[...i.instanceServiceContainer.selectionService.selectedElements],f=a[0].openGroup("move in flexbox");a[0].parent&&a[0].remove(),c.flexDirection=="column-reverse"?d[0].insertAdjacentElement(a[0],"beforebegin"):d[0].insertAdjacentElement(a[0],"afterend"),f.commit(),i.instanceServiceContainer.selectionService.setSelectedElements(m)}else if(d==null){if(g==0)return;let m=[...i.instanceServiceContainer.selectionService.selectedElements],f=a[0].openGroup("move in flexbox");a[0].parent&&a[0].remove(),c.flexDirection=="column-reverse"?i.insertChild(a[0]):i.insertChild(a[0],0),f.commit(),i.instanceServiceContainer.selectionService.setSelectedElements(m)}}t.extensionManager.refreshAllExtensions([i])}finishPlace(e,t,i,r,n,o,a){}moveElements(e,t,i){}}});var _p,bp,Cn,Qa=u(()=>{"use strict";te();_p="provideSnaplinesWithDistance",bp="provideSnaplinesWithDistanceDistance",Cn=class{provideSnaplines(e,t){{let i=e.instanceServiceContainer.designerCanvas,r=new Map(t.map(m=>[m.element,m])),n=W(e.element),o=i.instanceServiceContainer.designContext.extensionOptions[_p]!==!1,a=i.instanceServiceContainer.designContext.extensionOptions[bp]??5,l=[],c=[],h=[],d=[],p=e.document.createTreeWalker(e.usableContainer,NodeFilter.SHOW_ELEMENT),g=p.nextNode();for(;g!=null;)if(r.has(g))g=p.nextSibling();else{let m=W(g),f=(m.x-n.x)/i.scaleFactor,b=(m.x-n.x+m.width/2)/i.scaleFactor,_=(m.x-n.x+m.width)/i.scaleFactor,C=(m.y-n.y)/i.scaleFactor,k=(m.y-n.y+m.height/2)/i.scaleFactor,P=(m.y-n.y+m.height)/i.scaleFactor,D={x:f+n.x,y:C+n.y,width:m.width/i.scaleFactor,height:m.height/i.scaleFactor};o&&l.push([f-a,D]),l.push([f,D]),c.push([b,D]),l.push([_,D]),o&&l.push([_+a,D]),o&&h.push([C-a,D]),h.push([C,D]),d.push([k,D]),h.push([P,D]),o&&h.push([P+a,D]),g=p.nextNode()}return l.push([0,{x:0,y:0,width:0,height:0}]),l.sort((m,f)=>m[0]-f[0]),c.sort((m,f)=>m[0]-f[0]),h.push([0,{x:0,y:0,width:0,height:0}]),h.sort((m,f)=>m[0]-f[0]),d.sort((m,f)=>m[0]-f[0]),{outerRect:n,positionsH:l,positionsMiddleH:c,positionsV:h,positionsMiddleV:d}}}}});var En,Ja=u(()=>{"use strict";q();He();En=class{dragOver(e){return e.dataTransfer.items[0].type.startsWith("image/")?"copy":"none"}async drop(e,t){if(t.dataTransfer.files[0].type.startsWith("image/")){let i=await T.createDesignItemFromImageBlob(e.serviceContainer,e.instanceServiceContainer,t.dataTransfer.files[0]),r=i.openGroup("Insert of <img>");i.setStyle("position","absolute");let n=e.getNormalizedEventCoordinates(t);i.setStyle("top",n.y+"px"),i.setStyle("left",n.x+"px"),e.instanceServiceContainer.undoService.execute(new oe(e.rootDesignItem,e.rootDesignItem.childCount,i)),r.commit(),requestAnimationFrame(()=>e.instanceServiceContainer.selectionService.setSelectedElements([i]))}}}});import{css as wp}from"@node-projects/base-custom-webcomponent";var An,el=u(()=>{"use strict";dn();An=class{shouldExtend(e,t,i){return!(i.isRootItem||i.name==="input")}getExtension(e,t,i){return new Xt(e,t,i)}static style=wp`
|
|
331
331
|
.svg-edit-text-clickoutside { stroke: transparent; fill: lightgray; opacity: 0.7 }
|
|
332
|
-
`}});async function p_(s){Ai([["text/plain",s]])}async function Ai(s){if(navigator.clipboard){try{let e=[];for(let t of s)e.push(new ClipboardItem({[t[0]]:new Blob([t[1]],{type:t[0]})}));await navigator.clipboard.write(e)}catch{await navigator.clipboard.writeText(s[0][1]),tl=s[0][1]}console.info("Copy to clipboard successful")}else{let e=document.activeElement;for(;e?.shadowRoot?.activeElement;)e=e.shadowRoot.activeElement;tl=s[0][1];let t=document.createElement("textarea");t.style.position="fixed",t.style.top="0",t.style.left="0",t.style.width="2em",t.style.height="2em",t.style.padding="0",t.style.border="none",t.style.outline="none",t.style.boxShadow="none",t.style.background="transparent",t.value=s[0][1],document.body.appendChild(t),t.select();try{document.execCommand("copy")}catch{try{document.execCommand("copy")}catch(r){console.error(r)}}document.body.removeChild(t),e.focus()}}async function Pn(){return navigator.clipboard?new Promise(async(s,e)=>{let t=await navigator.clipboard.readText();s(t)}):new Promise(async(s,e)=>{let t=document.createElement("textarea");t.style.position="fixed",t.style.top="0",t.style.left="0",t.style.width="2em",t.style.height="2em",t.style.padding="0",t.style.border="none",t.style.outline="none",t.style.boxShadow="none",t.style.background="transparent",document.body.appendChild(t),t.focus(),t.select(),document.execCommand("paste");let i=t.value;i||(i=tl),document.body.removeChild(t),s(i)})}async function kn(){return navigator.clipboard?await navigator.clipboard.read():null}var tl,In=u(()=>{"use strict";tl=null});var Ah,Dn,il=u(()=>{"use strict";Te();In();be();Ah="web text/positions",Dn=class{async copyItems(e){let t=ne(e),i=K.ConvertToString(t,!1),r=t.map(n=>n.instanceServiceContainer.designerCanvas.getNormalizedElementCoordinates(n.element));Ai([["text/html",i],[Ah,JSON.stringify(r)]])}async getPasteItems(e,t){let i="",r=null,n=await kn();if(n!=null){try{i=await(await n[0].getType("text/html"))?.text()}catch{}i||(i=await(await n[0].getType("text/plain"))?.text());try{let a=await(await n[0].getType(Ah))?.text();r=JSON.parse(a)}catch{}}else i=await Pn();return[await e.htmlParserService.parse(i,e,t,!0),r]}}});var pe,rl=u(()=>{"use strict";(function(s){s[s.TOP=0]="TOP",s[s.RIGHT=1]="RIGHT",s[s.BOTTOM=2]="BOTTOM",s[s.LEFT=3]="LEFT",s[s.VERTICAL_CENTER=4]="VERTICAL_CENTER",s[s.HORIZONTAL_CENTER=5]="HORIZONTAL_CENTER"})(pe||(pe={}))});var Je,mt,Ph=u(()=>{"use strict";rl();Je=class{static arrangeElements(e,t,i){switch(e){case pe.TOP:{let o=this.formGroup(mt.TOP,t),a=t.getNormalizedElementCoordinates(i[0].element);for(let l of i){let c=t.getNormalizedElementCoordinates(l.element);if(a.y!=c.y){let h=t.getNormalizedElementCoordinates(l.parent.element),d=a.y-h.y;this.arrange(l,"top",d+"px")}}o.commit();break}case pe.RIGHT:{let o=this.formGroup(mt.RIGHT,t),a=t.getNormalizedElementCoordinates(i[0].element);for(let l of i){let c=t.getNormalizedElementCoordinates(l.element);if(a.x!=c.x){let h=t.getNormalizedElementCoordinates(l.parent.element),d=a.x-h.x;this.arrange(l,"left",d+"px")}}o.commit();break}case pe.BOTTOM:let r=this.formGroup(mt.BOTTOM,t),n=t.getNormalizedElementCoordinates(i[0].element);for(let o of i){let a=t.getNormalizedElementCoordinates(o.element);if(n.y!=a.y){let l=t.getNormalizedElementCoordinates(o.parent.element),c=n.y-l.y;this.arrange(o,"top",c+"px")}}r.commit();break;case pe.LEFT:{let o=this.formGroup(mt.LEFT,t),a=t.getNormalizedElementCoordinates(i[0].element);for(let l of i){let c=t.getNormalizedElementCoordinates(l.element);if(a.x!=c.x){let h=t.getNormalizedElementCoordinates(l.parent.element),d=a.x-h.x;this.arrange(l,"left",d+"px")}}o.commit();break}case pe.VERTICAL_CENTER:{let o=this.formGroup(mt.VERTICAL_CENTER,t),a=t.getNormalizedElementCoordinates(i[0].element);for(let l of i){let c=t.getNormalizedElementCoordinates(l.element);if(a.y!=c.y){let h=t.getNormalizedElementCoordinates(l.parent.element),d=a.y-h.y+a.height/2-c.height/2;this.arrange(l,"top",d+"px")}}o.commit();break}case pe.HORIZONTAL_CENTER:{let o=this.formGroup(mt.HORIZONTAL_CENTER,t),a=t.getNormalizedElementCoordinates(i[0].element);for(let l of i){let c=t.getNormalizedElementCoordinates(l.element);if(a.x!=c.x){let h=t.getNormalizedElementCoordinates(l.parent.element),d=a.x-h.x+a.width/2-c.width/2;this.arrange(l,"left",d+"px")}}o.commit();break}}}static arrange(e,t,i){e.setStyle(t,i)}static formGroup(e,t){return t.instanceServiceContainer.selectionService.primarySelection.openGroup(e)}};(function(s){s.TOP="arrangeTop",s.RIGHT="arrangeRight",s.BOTTOM="arrangeBottom",s.LEFT="arrangeLeft",s.HORIZONTAL_CENTER="arrangeHorizontalCenter",s.VERTICAL_CENTER="arrangeVerticalCenter"})(mt||(mt={}))});var Tn,nl=u(()=>{"use strict";Qe();Ph();rl();Tn=class{canExecuteCommand(e,t){return t.type==S.moveBackward||t.type==S.moveForward||t.type==S.moveToBack||t.type==S.moveToFront?e.instanceServiceContainer.selectionService.primarySelection!=null&&!e.instanceServiceContainer.selectionService.primarySelection.isRootItem:t.type==S.arrangeBottom||t.type==S.arrangeCenter||t.type==S.arrangeLeft||t.type==S.arrangeMiddle||t.type==S.arrangeRight||t.type==S.arrangeTop||t.type==S.unifyHeight||t.type==S.unifyWidth?e.instanceServiceContainer.selectionService.selectedElements.length>1:t.type==S.rotateCounterClockwise||t.type==S.rotateClockwise||t.type==S.mirrorHorizontal||t.type==S.mirrorVertical?e.instanceServiceContainer.selectionService.selectedElements.length>0&&!e.instanceServiceContainer.selectionService.primarySelection.isRootItem:null}async executeCommand(e,t){let i=e.instanceServiceContainer.selectionService.primarySelection,r=[...e.instanceServiceContainer.selectionService.selectedElements];if(t.type==S.moveBackward){let o=i.parent.indexOf(i)-1;o>=0&&i.parent.insertChild(i,o)}else if(t.type==S.moveForward){let o=i.parent.indexOf(i)+1;o<i.parent.childCount&&i.parent.insertChild(i,o)}else if(t.type==S.moveToBack)i.parent.insertChild(i,0);else if(t.type==S.moveToFront)i.parent.insertChild(i);else if(t.type==S.arrangeTop)Je.arrangeElements(pe.TOP,e,e.instanceServiceContainer.selectionService.selectedElements);else if(t.type==S.arrangeRight)Je.arrangeElements(pe.RIGHT,e,e.instanceServiceContainer.selectionService.selectedElements);else if(t.type==S.arrangeLeft)Je.arrangeElements(pe.LEFT,e,e.instanceServiceContainer.selectionService.selectedElements);else if(t.type==S.arrangeBottom)Je.arrangeElements(pe.BOTTOM,e,e.instanceServiceContainer.selectionService.selectedElements);else if(t.type==S.arrangeCenter)Je.arrangeElements(pe.HORIZONTAL_CENTER,e,e.instanceServiceContainer.selectionService.selectedElements);else if(t.type==S.arrangeMiddle)Je.arrangeElements(pe.VERTICAL_CENTER,e,e.instanceServiceContainer.selectionService.selectedElements);else if(t.type==S.unifyHeight){let o=e.instanceServiceContainer.selectionService.primarySelection.openGroup("unifyHeight"),a=e.instanceServiceContainer.selectionService.primarySelection.getStyle("height");for(let l of e.instanceServiceContainer.selectionService.selectedElements)l.setStyle("height",a);o.commit()}else if(t.type==S.unifyWidth){let o=e.instanceServiceContainer.selectionService.primarySelection.openGroup("unifyWidth"),a=e.instanceServiceContainer.selectionService.primarySelection.getStyle("width");for(let l of e.instanceServiceContainer.selectionService.selectedElements)l.setStyle("width",a);o.commit()}else if(t.type==S.rotateCounterClockwise){let o=e.instanceServiceContainer.selectionService.primarySelection.openGroup("rotateCounterClockwise");var n=e.instanceServiceContainer.selectionService.primarySelection.getStyle("transform");let a=0,l="";if(n!=null)try{n.includes("-")?a=parseInt(n.match(/\d+/)[0])*-1:a=parseInt(n.match(/\d+/)[0]),l="rotate("+(a-90)+"deg)"}catch{l="rotate(-90deg)"}else l="rotate(-90deg)";for(let c of e.instanceServiceContainer.selectionService.selectedElements)c.setStyle("transform",l);o.commit()}else if(t.type==S.rotateClockwise){let o=e.instanceServiceContainer.selectionService.primarySelection.openGroup("rotateClockwise");var n=e.instanceServiceContainer.selectionService.primarySelection.getStyle("transform");let l=0,c="";if(n!=null)try{n.includes("-")?l=parseInt(n.match(/\d+/)[0])*-1:l=parseInt(n.match(/\d+/)[0]),c="rotate("+(l+90)+"deg)"}catch{c="rotate(90deg)"}else c="rotate(90deg)";for(let h of e.instanceServiceContainer.selectionService.selectedElements)h.setStyle("transform",c);o.commit()}else if(t.type==S.mirrorHorizontal){let o=e.instanceServiceContainer.selectionService.primarySelection.openGroup("mirrorHorizontal");for(let a of e.instanceServiceContainer.selectionService.selectedElements)a.setStyle("transform","scaleX(-1)");o.commit()}else if(t.type==S.mirrorVertical){let o=e.instanceServiceContainer.selectionService.primarySelection.openGroup("mirrorHorizontal");for(let a of e.instanceServiceContainer.selectionService.selectedElements)a.setStyle("transform","scaleY(-1)");o.commit()}else return null;return e.instanceServiceContainer.selectionService.setSelectedElements(null),e.instanceServiceContainer.selectionService.setSelectedElements(r),!0}}});var et,sl=u(()=>{"use strict";et=class{_space;constructor(e){this._space=e}provideButtons(e,t){let i=document.createElement("div");return i.style.width=this._space+"px",i.oncontextmenu=r=>{r.preventDefault()},[i]}}});var Mn,ol=u(()=>{"use strict";Zt();Pt();J();X();Mn=class extends N{_cells;_texts;_gaps;_group;gridInformation;gridInformationString;_lastEvent;gridColor;gridFillColor;constructor(e,t,i,r,n){super(e,t,i),this.gridColor=r,this.gridFillColor=n}extend(e,t){this._initSVGArrays(),this.refresh(t)}refresh(e,t){this.gridInformation=Ge(this.extendedItem);let i=JSON.stringify(this.gridInformation);if(i!==this.gridInformationString||t!=null&&this._lastEvent!==t){t&&(this._lastEvent=t),this.gridInformationString=i;let r=this.gridInformation.cells;r[0][0]&&!isNaN(r[0][0].height)&&!isNaN(r[0][0].width)&&((this.gridInformation.cells.length!=this._cells.length||this.gridInformation.cells[0].length!=this._cells[0].length)&&this._initSVGArrays(),this._group||(this._group=this._drawGroup(null,this._group,k.Background),this._group.style.transform=pt(this.extendedItem.element).toString(),this._group.style.transformOrigin="0 0",this._group.style.transformBox="fill-box",this._group.style.setProperty("--svg-grid-stroke-color",this.gridColor),this._group.style.setProperty("--svg-grid-fill-color",this.gridFillColor)),this.gridInformation.gaps.forEach((n,o)=>{this._gaps[o]=this._drawRect(n.x,n.y,n.width,n.height,"svg-grid-gap",this._gaps[o],k.Background),this._group.appendChild(this._gaps[o])}),r.forEach((n,o)=>{n.forEach((a,l)=>{if(this._cells[o][l]=this._drawRect(a.x,a.y,a.width,a.height,"svg-grid",this._cells[o][l],k.Background),this._group.appendChild(this._cells[o][l]),a.name&&(this._texts[o][l]=this._drawText(a.name,a.x,a.y,"svg-grid-area",this._texts[o][l],k.Background),this._texts[o][l].setAttribute("dominant-baseline","hanging")),this._lastEvent&&this._lastEvent instanceof MouseEvent){let c=this.designerCanvas.getNormalizedEventCoordinates(this._lastEvent);c.x>=a.x&&c.y>=a.y&&c.x<=a.x+a.width&&c.y<=a.y+a.height&&this._cells[o][l].setAttribute("class","svg-grid-current-cell")}})}))}}dispose(){this._removeAllOverlays()}_initSVGArrays(){this._removeAllOverlays(),this._group=null,this.gridInformation=Ge(this.extendedItem),this._cells=new Array(this.gridInformation.cells.length),this.gridInformation.cells.forEach((e,t)=>this._cells[t]=new Array(e.length)),this._texts=new Array(this.gridInformation.cells.length),this.gridInformation.cells.forEach((e,t)=>this._texts[t]=new Array(e.length)),this._gaps=new Array(this.gridInformation.gaps.length)}}});import{css as Sp}from"@node-projects/base-custom-webcomponent";var Pi,kt,ki=u(()=>{"use strict";ol();Pi="gridExtensionShowOverlay",kt=class{gridColor;gridFillColor;constructor(e="orange",t="#ff944722"){this.gridColor=e,this.gridFillColor=t}shouldExtend(e,t,i){let r=getComputedStyle(i.element).display;return r=="grid"||r=="inline-grid"?t.instanceServiceContainer.designContext.extensionOptions[Pi]!==!1:!1}getExtension(e,t,i){return new Mn(e,t,i,this.gridColor,this.gridFillColor)}static style=Sp`
|
|
332
|
+
`}});async function p_(s){Ai([["text/plain",s]])}async function Ai(s){if(navigator.clipboard){try{let e=[];for(let t of s)e.push(new ClipboardItem({[t[0]]:new Blob([t[1]],{type:t[0]})}));await navigator.clipboard.write(e)}catch{await navigator.clipboard.writeText(s[0][1]),tl=s[0][1]}console.info("Copy to clipboard successful")}else{let e=document.activeElement;for(;e?.shadowRoot?.activeElement;)e=e.shadowRoot.activeElement;tl=s[0][1];let t=document.createElement("textarea");t.style.position="fixed",t.style.top="0",t.style.left="0",t.style.width="2em",t.style.height="2em",t.style.padding="0",t.style.border="none",t.style.outline="none",t.style.boxShadow="none",t.style.background="transparent",t.value=s[0][1],document.body.appendChild(t),t.select();try{document.execCommand("copy")}catch{try{document.execCommand("copy")}catch(r){console.error(r)}}document.body.removeChild(t),e.focus()}}async function Pn(){return navigator.clipboard?new Promise(async(s,e)=>{let t=await navigator.clipboard.readText();s(t)}):new Promise(async(s,e)=>{let t=document.createElement("textarea");t.style.position="fixed",t.style.top="0",t.style.left="0",t.style.width="2em",t.style.height="2em",t.style.padding="0",t.style.border="none",t.style.outline="none",t.style.boxShadow="none",t.style.background="transparent",document.body.appendChild(t),t.focus(),t.select(),document.execCommand("paste");let i=t.value;i||(i=tl),document.body.removeChild(t),s(i)})}async function In(){return navigator.clipboard?await navigator.clipboard.read():null}var tl,kn=u(()=>{"use strict";tl=null});var Ah,Dn,il=u(()=>{"use strict";Te();kn();be();Ah="web text/positions",Dn=class{async copyItems(e){let t=ne(e),i=K.ConvertToString(t,!1),r=t.map(n=>n.instanceServiceContainer.designerCanvas.getNormalizedElementCoordinates(n.element));Ai([["text/html",i],[Ah,JSON.stringify(r)]])}async getPasteItems(e,t){let i="",r=null,n=await In();if(n!=null){try{i=await(await n[0].getType("text/html"))?.text()}catch{}i||(i=await(await n[0].getType("text/plain"))?.text());try{let a=await(await n[0].getType(Ah))?.text();r=JSON.parse(a)}catch{}}else i=await Pn();return[await e.htmlParserService.parse(i,e,t,!0),r]}}});var pe,rl=u(()=>{"use strict";(function(s){s[s.TOP=0]="TOP",s[s.RIGHT=1]="RIGHT",s[s.BOTTOM=2]="BOTTOM",s[s.LEFT=3]="LEFT",s[s.VERTICAL_CENTER=4]="VERTICAL_CENTER",s[s.HORIZONTAL_CENTER=5]="HORIZONTAL_CENTER"})(pe||(pe={}))});var Je,mt,Ph=u(()=>{"use strict";rl();Je=class{static arrangeElements(e,t,i){switch(e){case pe.TOP:{let o=this.formGroup(mt.TOP,t),a=t.getNormalizedElementCoordinates(i[0].element);for(let l of i){let c=t.getNormalizedElementCoordinates(l.element);if(a.y!=c.y){let h=t.getNormalizedElementCoordinates(l.parent.element),d=a.y-h.y;this.arrange(l,"top",d+"px")}}o.commit();break}case pe.RIGHT:{let o=this.formGroup(mt.RIGHT,t),a=t.getNormalizedElementCoordinates(i[0].element);for(let l of i){let c=t.getNormalizedElementCoordinates(l.element);if(a.x!=c.x){let h=t.getNormalizedElementCoordinates(l.parent.element),d=a.x-h.x;this.arrange(l,"left",d+"px")}}o.commit();break}case pe.BOTTOM:let r=this.formGroup(mt.BOTTOM,t),n=t.getNormalizedElementCoordinates(i[0].element);for(let o of i){let a=t.getNormalizedElementCoordinates(o.element);if(n.y!=a.y){let l=t.getNormalizedElementCoordinates(o.parent.element),c=n.y-l.y;this.arrange(o,"top",c+"px")}}r.commit();break;case pe.LEFT:{let o=this.formGroup(mt.LEFT,t),a=t.getNormalizedElementCoordinates(i[0].element);for(let l of i){let c=t.getNormalizedElementCoordinates(l.element);if(a.x!=c.x){let h=t.getNormalizedElementCoordinates(l.parent.element),d=a.x-h.x;this.arrange(l,"left",d+"px")}}o.commit();break}case pe.VERTICAL_CENTER:{let o=this.formGroup(mt.VERTICAL_CENTER,t),a=t.getNormalizedElementCoordinates(i[0].element);for(let l of i){let c=t.getNormalizedElementCoordinates(l.element);if(a.y!=c.y){let h=t.getNormalizedElementCoordinates(l.parent.element),d=a.y-h.y+a.height/2-c.height/2;this.arrange(l,"top",d+"px")}}o.commit();break}case pe.HORIZONTAL_CENTER:{let o=this.formGroup(mt.HORIZONTAL_CENTER,t),a=t.getNormalizedElementCoordinates(i[0].element);for(let l of i){let c=t.getNormalizedElementCoordinates(l.element);if(a.x!=c.x){let h=t.getNormalizedElementCoordinates(l.parent.element),d=a.x-h.x+a.width/2-c.width/2;this.arrange(l,"left",d+"px")}}o.commit();break}}}static arrange(e,t,i){e.setStyle(t,i)}static formGroup(e,t){return t.instanceServiceContainer.selectionService.primarySelection.openGroup(e)}};(function(s){s.TOP="arrangeTop",s.RIGHT="arrangeRight",s.BOTTOM="arrangeBottom",s.LEFT="arrangeLeft",s.HORIZONTAL_CENTER="arrangeHorizontalCenter",s.VERTICAL_CENTER="arrangeVerticalCenter"})(mt||(mt={}))});var Tn,nl=u(()=>{"use strict";Qe();Ph();rl();Tn=class{canExecuteCommand(e,t){return t.type==S.moveBackward||t.type==S.moveForward||t.type==S.moveToBack||t.type==S.moveToFront?e.instanceServiceContainer.selectionService.primarySelection!=null&&!e.instanceServiceContainer.selectionService.primarySelection.isRootItem:t.type==S.arrangeBottom||t.type==S.arrangeCenter||t.type==S.arrangeLeft||t.type==S.arrangeMiddle||t.type==S.arrangeRight||t.type==S.arrangeTop||t.type==S.unifyHeight||t.type==S.unifyWidth?e.instanceServiceContainer.selectionService.selectedElements.length>1:t.type==S.rotateCounterClockwise||t.type==S.rotateClockwise||t.type==S.mirrorHorizontal||t.type==S.mirrorVertical?e.instanceServiceContainer.selectionService.selectedElements.length>0&&!e.instanceServiceContainer.selectionService.primarySelection.isRootItem:null}async executeCommand(e,t){let i=e.instanceServiceContainer.selectionService.primarySelection,r=[...e.instanceServiceContainer.selectionService.selectedElements];if(t.type==S.moveBackward){let o=i.parent.indexOf(i)-1;o>=0&&i.parent.insertChild(i,o)}else if(t.type==S.moveForward){let o=i.parent.indexOf(i)+1;o<i.parent.childCount&&i.parent.insertChild(i,o)}else if(t.type==S.moveToBack)i.parent.insertChild(i,0);else if(t.type==S.moveToFront)i.parent.insertChild(i);else if(t.type==S.arrangeTop)Je.arrangeElements(pe.TOP,e,e.instanceServiceContainer.selectionService.selectedElements);else if(t.type==S.arrangeRight)Je.arrangeElements(pe.RIGHT,e,e.instanceServiceContainer.selectionService.selectedElements);else if(t.type==S.arrangeLeft)Je.arrangeElements(pe.LEFT,e,e.instanceServiceContainer.selectionService.selectedElements);else if(t.type==S.arrangeBottom)Je.arrangeElements(pe.BOTTOM,e,e.instanceServiceContainer.selectionService.selectedElements);else if(t.type==S.arrangeCenter)Je.arrangeElements(pe.HORIZONTAL_CENTER,e,e.instanceServiceContainer.selectionService.selectedElements);else if(t.type==S.arrangeMiddle)Je.arrangeElements(pe.VERTICAL_CENTER,e,e.instanceServiceContainer.selectionService.selectedElements);else if(t.type==S.unifyHeight){let o=e.instanceServiceContainer.selectionService.primarySelection.openGroup("unifyHeight"),a=e.instanceServiceContainer.selectionService.primarySelection.getStyle("height");for(let l of e.instanceServiceContainer.selectionService.selectedElements)l.setStyle("height",a);o.commit()}else if(t.type==S.unifyWidth){let o=e.instanceServiceContainer.selectionService.primarySelection.openGroup("unifyWidth"),a=e.instanceServiceContainer.selectionService.primarySelection.getStyle("width");for(let l of e.instanceServiceContainer.selectionService.selectedElements)l.setStyle("width",a);o.commit()}else if(t.type==S.rotateCounterClockwise){let o=e.instanceServiceContainer.selectionService.primarySelection.openGroup("rotateCounterClockwise");var n=e.instanceServiceContainer.selectionService.primarySelection.getStyle("transform");let a=0,l="";if(n!=null)try{n.includes("-")?a=parseInt(n.match(/\d+/)[0])*-1:a=parseInt(n.match(/\d+/)[0]),l="rotate("+(a-90)+"deg)"}catch{l="rotate(-90deg)"}else l="rotate(-90deg)";for(let c of e.instanceServiceContainer.selectionService.selectedElements)c.setStyle("transform",l);o.commit()}else if(t.type==S.rotateClockwise){let o=e.instanceServiceContainer.selectionService.primarySelection.openGroup("rotateClockwise");var n=e.instanceServiceContainer.selectionService.primarySelection.getStyle("transform");let l=0,c="";if(n!=null)try{n.includes("-")?l=parseInt(n.match(/\d+/)[0])*-1:l=parseInt(n.match(/\d+/)[0]),c="rotate("+(l+90)+"deg)"}catch{c="rotate(90deg)"}else c="rotate(90deg)";for(let h of e.instanceServiceContainer.selectionService.selectedElements)h.setStyle("transform",c);o.commit()}else if(t.type==S.mirrorHorizontal){let o=e.instanceServiceContainer.selectionService.primarySelection.openGroup("mirrorHorizontal");for(let a of e.instanceServiceContainer.selectionService.selectedElements)a.setStyle("transform","scaleX(-1)");o.commit()}else if(t.type==S.mirrorVertical){let o=e.instanceServiceContainer.selectionService.primarySelection.openGroup("mirrorHorizontal");for(let a of e.instanceServiceContainer.selectionService.selectedElements)a.setStyle("transform","scaleY(-1)");o.commit()}else return null;return e.instanceServiceContainer.selectionService.setSelectedElements(null),e.instanceServiceContainer.selectionService.setSelectedElements(r),!0}}});var et,sl=u(()=>{"use strict";et=class{_space;constructor(e){this._space=e}provideButtons(e,t){let i=document.createElement("div");return i.style.width=this._space+"px",i.oncontextmenu=r=>{r.preventDefault()},[i]}}});var Mn,ol=u(()=>{"use strict";$t();Pt();J();X();Mn=class extends N{_cells;_texts;_gaps;_group;gridInformation;gridInformationString;_lastEvent;gridColor;gridFillColor;constructor(e,t,i,r,n){super(e,t,i),this.gridColor=r,this.gridFillColor=n}extend(e,t){this._initSVGArrays(),this.refresh(t)}refresh(e,t){this.gridInformation=Ge(this.extendedItem);let i=JSON.stringify(this.gridInformation);if(i!==this.gridInformationString||t!=null&&this._lastEvent!==t){t&&(this._lastEvent=t),this.gridInformationString=i;let r=this.gridInformation.cells;r[0][0]&&!isNaN(r[0][0].height)&&!isNaN(r[0][0].width)&&((this.gridInformation.cells.length!=this._cells.length||this.gridInformation.cells[0].length!=this._cells[0].length)&&this._initSVGArrays(),this._group||(this._group=this._drawGroup(null,this._group,I.Background),this._group.style.transform=pt(this.extendedItem.element).toString(),this._group.style.transformOrigin="0 0",this._group.style.transformBox="fill-box",this._group.style.setProperty("--svg-grid-stroke-color",this.gridColor),this._group.style.setProperty("--svg-grid-fill-color",this.gridFillColor)),this.gridInformation.gaps.forEach((n,o)=>{this._gaps[o]=this._drawRect(n.x,n.y,n.width,n.height,"svg-grid-gap",this._gaps[o],I.Background),this._group.appendChild(this._gaps[o])}),r.forEach((n,o)=>{n.forEach((a,l)=>{if(this._cells[o][l]=this._drawRect(a.x,a.y,a.width,a.height,"svg-grid",this._cells[o][l],I.Background),this._group.appendChild(this._cells[o][l]),a.name&&(this._texts[o][l]=this._drawText(a.name,a.x,a.y,"svg-grid-area",this._texts[o][l],I.Background),this._texts[o][l].setAttribute("dominant-baseline","hanging")),this._lastEvent&&this._lastEvent instanceof MouseEvent){let c=this.designerCanvas.getNormalizedEventCoordinates(this._lastEvent);c.x>=a.x&&c.y>=a.y&&c.x<=a.x+a.width&&c.y<=a.y+a.height&&this._cells[o][l].setAttribute("class","svg-grid-current-cell")}})}))}}dispose(){this._removeAllOverlays()}_initSVGArrays(){this._removeAllOverlays(),this._group=null,this.gridInformation=Ge(this.extendedItem),this._cells=new Array(this.gridInformation.cells.length),this.gridInformation.cells.forEach((e,t)=>this._cells[t]=new Array(e.length)),this._texts=new Array(this.gridInformation.cells.length),this.gridInformation.cells.forEach((e,t)=>this._texts[t]=new Array(e.length)),this._gaps=new Array(this.gridInformation.gaps.length)}}});import{css as Sp}from"@node-projects/base-custom-webcomponent";var Pi,It,Ii=u(()=>{"use strict";ol();Pi="gridExtensionShowOverlay",It=class{gridColor;gridFillColor;constructor(e="orange",t="#ff944722"){this.gridColor=e,this.gridFillColor=t}shouldExtend(e,t,i){let r=getComputedStyle(i.element).display;return r=="grid"||r=="inline-grid"?t.instanceServiceContainer.designContext.extensionOptions[Pi]!==!1:!1}getExtension(e,t,i){return new Mn(e,t,i,this.gridColor,this.gridFillColor)}static style=Sp`
|
|
333
333
|
.svg-grid { stroke: var(--svg-grid-stroke-color); stroke-dasharray: 5; fill: var(--svg-grid-fill-color); }
|
|
334
334
|
.svg-grid-current-cell { stroke: var(--svg-grid-stroke-color); stroke-dasharray: 5; fill: #e3ff4722; }
|
|
335
335
|
.svg-grid-area { font-size: 8px; }
|
|
@@ -345,7 +345,7 @@ var vd=Object.defineProperty;var u=(s,e)=>()=>(s&&(e=s(s=0)),e);var xd=(s,e)=>{f
|
|
|
345
345
|
</pattern>
|
|
346
346
|
<mask id="mask-stripe-grid">
|
|
347
347
|
<rect x="0" y="0" width="100%" height="100%" fill="url(#pattern-stripe-grid)" />
|
|
348
|
-
</mask>`}});var On,al=u(()=>{"use strict";ki();bt();On=class extends Ae{constructor(){super(Pi,"G","show grid overlay")}}});var Nn,ll=u(()=>{"use strict";ee();X();Oe();q();He();Ne();Nn=class{cursor="crosshair";_path;_startPoint;_minX;_minY;_maxX;_maxY;_px;_py;constructor(){}activated(e){}dispose(){}pointerEventHandler(e,t,i){let r=e.getNormalizedEventCoordinates(t),n=10;switch(t.type){case x.PointerDown:this._startPoint=r,t.target.setPointerCapture(t.pointerId),e.captureActiveTool(this),this._path=document.createElementNS("http://www.w3.org/2000/svg","rect"),this._path.setAttribute("stroke",e.serviceContainer.globalContext.strokeColor),this._path.setAttribute("fill",e.serviceContainer.globalContext.fillBrush),this._path.setAttribute("stroke-width",e.serviceContainer.globalContext.strokeThickness),this._path.setAttribute("x",r.x.toString()),this._path.setAttribute("y",r.y.toString()),this._path.setAttribute("width","0"),this._path.setAttribute("height","0"),e.overlayLayer.addOverlay(this.constructor.name,this._path,k.Foreground);break;case x.PointerMove:if(this._path)if(this._minX=r.x<this._startPoint.x?r.x:this._startPoint.x,this._maxX=r.x>this._startPoint.x?r.x:this._startPoint.x,this._minY=r.y<this._startPoint.y?r.y:this._startPoint.y,this._maxY=r.y>this._startPoint.y?r.y:this._startPoint.y,j(t)){if(t.shiftKey){let d=2*Be(this._startPoint,r);this._px=this._startPoint.x-d/2,this._py=this._startPoint.y-d/2,this._path.setAttribute("width",d.toString()),this._path.setAttribute("height",d.toString())}else{let d=2*(this._maxX-this._minX),p=2*(this._maxY-this._minY);this._px=r.x<this._startPoint.x?r.x:this._startPoint.x-d/2,this._py=r.y<this._startPoint.y?r.y:this._startPoint.y-p/2,this._path.setAttribute("width",d.toString()),this._path.setAttribute("height",p.toString())}this._path.setAttribute("x",this._px.toString()),this._path.setAttribute("y",this._py.toString())}else{if(t.shiftKey){let d=Be(this._startPoint,r);this._px=r.x<this._startPoint.x?this._startPoint.x-d:this._startPoint.x,this._py=r.y<this._startPoint.y?this._startPoint.y-d:this._startPoint.y,this._path.setAttribute("width",d.toString()),this._path.setAttribute("height",d.toString())}else this._px=r.x<this._startPoint.x?r.x:this._startPoint.x,this._py=r.y<this._startPoint.y?r.y:this._startPoint.y,this._path.setAttribute("width",(this._maxX-this._minX).toString()),this._path.setAttribute("height",(this._maxY-this._minY).toString());this._path.setAttribute("x",this._px.toString()),this._path.setAttribute("y",this._py.toString())}break;case x.PointerUp:t.target.releasePointerCapture(t.pointerId),e.releaseActiveTool();let o=e.getNormalizedElementCoordinates(this._path);e.overlayLayer.removeOverlay(this._path);let a=document.createElementNS("http://www.w3.org/2000/svg","svg"),l=o.x-n,c=o.y-n;this._path.setAttribute("x",(this._px-l).toString()),this._path.setAttribute("y",(this._py-c).toString()),this._path.removeAttribute("stroke"),this._path.removeAttribute("stroke-width"),this._path.removeAttribute("overlay-source"),a.appendChild(this._path),a.style.left=l+"px",a.style.top=c+"px",a.style.position="absolute",a.style.width=Math.round(o.width+2*n)+"px",a.style.height=Math.round(o.height+2*n)+"px",a.style.overflow="visible",a.style.stroke=e.serviceContainer.globalContext.strokeColor,a.style.strokeWidth=e.serviceContainer.globalContext.strokeThickness,this._path=null;let h=T.createDesignItemFromInstance(a,e.serviceContainer,e.instanceServiceContainer);e.instanceServiceContainer.undoService.execute(new oe(e.rootDesignItem,e.rootDesignItem.childCount,h)),e.serviceContainer.globalContext.finishedWithTool(this);break}}keyboardEventHandler(e,t,i){}}});var Ln,cl=u(()=>{"use strict";ee();X();Oe();q();He();Ne();Ln=class{cursor="crosshair";_path;_startPoint;_radius;_cx;_cy;constructor(){}activated(e){}dispose(){}pointerEventHandler(e,t,i){let r=e.getNormalizedEventCoordinates(t),n=10;switch(t.type){case x.PointerDown:this._startPoint=r,t.target.setPointerCapture(t.pointerId),e.captureActiveTool(this),this._path=document.createElementNS("http://www.w3.org/2000/svg","ellipse"),this._path.setAttribute("stroke",e.serviceContainer.globalContext.strokeColor),this._path.setAttribute("fill",e.serviceContainer.globalContext.fillBrush),this._path.setAttribute("stroke-width",e.serviceContainer.globalContext.strokeThickness),this._path.setAttribute("cx",r.x.toString()),this._path.setAttribute("cy",r.y.toString()),this._path.setAttribute("rx","0"),this._path.setAttribute("ry","0"),e.overlayLayer.addOverlay(this.constructor.name,this._path,k.Foreground);break;case x.PointerMove:if(this._path)if(this._radius={x:Math.abs(r.x-this._startPoint.x),y:Math.abs(r.y-this._startPoint.y)},j(t))if(this._path.setAttribute("cx",this._startPoint.x.toString()),this._path.setAttribute("cy",this._startPoint.y.toString()),this._cx=this._startPoint.x,this._cy=this._startPoint.y,t.shiftKey){let d=Be(this._startPoint,r);this._path.setAttribute("rx",d.toString()),this._path.setAttribute("ry",d.toString())}else this._path.setAttribute("rx",this._radius.x.toString()),this._path.setAttribute("ry",this._radius.y.toString());else{if(t.shiftKey){let d=Be(this._startPoint,r);this._radius={x:d,y:d}}this._cx=r.x<this._startPoint.x?this._startPoint.x-this._radius.x/2:this._startPoint.x+this._radius.x/2,this._cy=r.y<this._startPoint.y?this._startPoint.y-this._radius.y/2:this._startPoint.y+this._radius.y/2,this._path.setAttribute("cx",this._cx.toString()),this._path.setAttribute("cy",this._cy.toString()),this._path.setAttribute("rx",(this._radius.x/2).toString()),this._path.setAttribute("ry",(this._radius.y/2).toString())}break;case x.PointerUp:t.target.releasePointerCapture(t.pointerId),e.releaseActiveTool();let o=e.getNormalizedElementCoordinates(this._path);e.overlayLayer.removeOverlay(this._path);let a=document.createElementNS("http://www.w3.org/2000/svg","svg"),l=o.x-n,c=o.y-n;a.appendChild(this._path),this._path.setAttribute("cx",(this._cx-l).toString()),this._path.setAttribute("cy",(this._cy-c).toString()),this._path.removeAttribute("stroke"),this._path.removeAttribute("stroke-width"),this._path.removeAttribute("overlay-source"),a.style.left=l+"px",a.style.top=c+"px",a.style.position="absolute",a.style.width=Math.round(o.width+2*n)+"px",a.style.height=Math.round(o.height+2*n)+"px",a.style.overflow="visible",a.style.stroke=e.serviceContainer.globalContext.strokeColor,a.style.strokeWidth=e.serviceContainer.globalContext.strokeThickness,this._path=null;let h=T.createDesignItemFromInstance(a,e.serviceContainer,e.instanceServiceContainer);e.instanceServiceContainer.undoService.execute(new oe(e.rootDesignItem,e.rootDesignItem.childCount,h)),e.serviceContainer.globalContext.finishedWithTool(this);break}}keyboardEventHandler(e,t,i){}}});var Rn,hl=u(()=>{"use strict";ee();X();Oe();q();He();Rn=class{cursor="crosshair";_path;_startPoint;_endPoint;constructor(){}activated(e){}dispose(){}pointerEventHandler(e,t,i){let r=e.getNormalizedEventCoordinates(t),n=10;switch(t.type){case x.PointerDown:this._startPoint=r,t.target.setPointerCapture(t.pointerId),e.captureActiveTool(this),this._path=document.createElementNS("http://www.w3.org/2000/svg","line"),this._path.setAttribute("stroke",e.serviceContainer.globalContext.strokeColor),this._path.setAttribute("stroke-width",e.serviceContainer.globalContext.strokeThickness),this._path.setAttribute("x1",r.x.toString()),this._path.setAttribute("y1",r.y.toString()),this._path.setAttribute("x2",r.x.toString()),this._path.setAttribute("y2",r.y.toString()),e.overlayLayer.addOverlay(this.constructor.name,this._path,k.Foreground);break;case x.PointerMove:if(this._path)if(t.shiftKey){let d=Ze(this._startPoint,r);this._path.setAttribute("x2",d.x.toString()),this._path.setAttribute("y2",d.y.toString()),this._endPoint=d}else this._path.setAttribute("x2",r.x.toString()),this._path.setAttribute("y2",r.y.toString()),this._endPoint=r;break;case x.PointerUp:t.target.releasePointerCapture(t.pointerId),e.releaseActiveTool();let o=e.getNormalizedElementCoordinates(this._path);e.overlayLayer.removeOverlay(this._path);let a=document.createElementNS("http://www.w3.org/2000/svg","svg"),l=o.x-n,c=o.y-n;this._path.setAttribute("x1",(this._startPoint.x-l).toString()),this._path.setAttribute("y1",(this._startPoint.y-c).toString()),this._path.setAttribute("x2",(this._endPoint.x-l).toString()),this._path.setAttribute("y2",(this._endPoint.y-c).toString()),this._path.removeAttribute("stroke"),this._path.removeAttribute("stroke-width"),this._path.removeAttribute("overlay-source"),a.appendChild(this._path),a.style.left=l+"px",a.style.top=c+"px",a.style.position="absolute",a.style.width=Math.round(o.width+2*n)+"px",a.style.height=Math.round(o.height+2*n)+"px",a.style.overflow="visible",a.style.stroke=e.serviceContainer.globalContext.strokeColor,a.style.strokeWidth=e.serviceContainer.globalContext.strokeThickness,this._path=null;let h=T.createDesignItemFromInstance(a,e.serviceContainer,e.instanceServiceContainer);e.instanceServiceContainer.undoService.execute(new oe(e.rootDesignItem,e.rootDesignItem.childCount,h)),e.serviceContainer.globalContext.finishedWithTool(this);break}}keyboardEventHandler(e,t,i){}}});var $t,Fn=u(()=>{"use strict";$t=class s{static _helperElement=document.createElement("div");static combine(e,t){let i=s._helperElement;i.setAttribute("style","");for(let r of e)i.style[r[0]]=r[1];if(s.combineBorder(e),s.combineMargin(e),s.combinePadding(e),s.combineInset(e),s.combineBackground(e),s.combineFont(e),t)for(let r of t)e.has(r[0])&&e.get(r[0])===r[1]&&e.delete(r[0]);return e}static combineBorder(e){if(!s.checkIfStyleIsCombinable(e,"border-left-style")||!s.checkIfStyleIsCombinable(e,"border-right-style")||!s.checkIfStyleIsCombinable(e,"border-top-style")||!s.checkIfStyleIsCombinable(e,"border-bottom-style")||!s.checkIfStyleIsCombinable(e,"border-left-color")||!s.checkIfStyleIsCombinable(e,"border-right-color")||!s.checkIfStyleIsCombinable(e,"border-top-color")||!s.checkIfStyleIsCombinable(e,"border-bottom-color")||!s.checkIfStyleIsCombinable(e,"border-left-width")||!s.checkIfStyleIsCombinable(e,"border-right-width")||!s.checkIfStyleIsCombinable(e,"border-top-width")||!s.checkIfStyleIsCombinable(e,"border-bottom-width")||!s.checkIfStyleIsCombinable(e,"border-width")||!s.checkIfStyleIsCombinable(e,"border-style")||!s.checkIfStyleIsCombinable(e,"border-color")||!s.checkIfStyleIsCombinable(e,"border-top")||!s.checkIfStyleIsCombinable(e,"border-right")||!s.checkIfStyleIsCombinable(e,"border-left")||!s.checkIfStyleIsCombinable(e,"border-bottom")||!s.checkIfStyleIsCombinable(e,"border-width"))return;let t=s._helperElement,i=t.style.borderLeftStyle,r=t.style.borderLeftColor;if(i&&r&&t.style.borderRightStyle===i&&t.style.borderTopStyle===i&&t.style.borderBottomStyle===i&&t.style.borderRightColor===r&&t.style.borderTopColor===r&&t.style.borderBottomColor===r){let n=t.style.borderTopWidth,o=t.style.borderRightWidth,a=t.style.borderBottomWidth,l=t.style.borderLeftWidth;e.delete("border-left-style"),e.delete("border-right-style"),e.delete("border-top-style"),e.delete("border-bottom-style"),e.delete("border-left-color"),e.delete("border-right-color"),e.delete("border-top-color"),e.delete("border-bottom-color"),e.delete("border-left-width"),e.delete("border-right-width"),e.delete("border-top-width"),e.delete("border-bottom-width"),e.delete("border-width"),e.delete("border-style"),e.delete("border-color"),e.delete("border-top"),e.delete("border-right"),e.delete("border-left"),e.delete("border-bottom"),t.style.borderRightWidth==l&&t.style.borderTopWidth===l&&t.style.borderBottomWidth===l?e.set("border",l+" "+i+" "+r):(e.set("border",i+" "+r),n===a&&o===l?e.set("border-width",n+" "+o):e.set("border-width",n+" "+o+" "+a+" "+l))}t.style.borderImageSource==="initial"&&e.delete("border-image-source"),t.style.borderImageSlice==="initial"&&e.delete("border-image-slice"),t.style.borderImageWidth==="initial"&&e.delete("border-image-width"),t.style.borderImageOutset==="initial"&&e.delete("border-image-outset"),t.style.borderImageRepeat==="initial"&&e.delete("border-image-repeat")}static combineMargin(e){if(!s.checkIfStyleIsCombinable(e,"margin-top")||!s.checkIfStyleIsCombinable(e,"margin-right")||!s.checkIfStyleIsCombinable(e,"margin-bottom")||!s.checkIfStyleIsCombinable(e,"margin-left")||!s.checkIfStyleIsCombinable(e,"margin"))return;let t=s._helperElement;t.style.marginTop&&t.style.marginRight&&t.style.marginBottom&&t.style.marginLeft&&(e.delete("margin-top"),e.delete("margin-right"),e.delete("margin-bottom"),e.delete("margin-left"),t.style.marginTop==t.style.marginRight&&t.style.marginTop==t.style.marginBottom&&t.style.marginTop==t.style.marginLeft?e.set("margin",t.style.marginTop):e.set("margin",t.style.marginTop+" "+t.style.marginRight+" "+t.style.marginBottom+" "+t.style.marginLeft))}static combinePadding(e){if(!s.checkIfStyleIsCombinable(e,"padding-top")||!s.checkIfStyleIsCombinable(e,"padding-right")||!s.checkIfStyleIsCombinable(e,"padding-bottom")||!s.checkIfStyleIsCombinable(e,"padding-left")||!s.checkIfStyleIsCombinable(e,"padding"))return;let t=s._helperElement;t.style.paddingTop&&t.style.paddingRight&&t.style.paddingBottom&&t.style.paddingLeft&&(e.delete("padding-top"),e.delete("padding-right"),e.delete("padding-bottom"),e.delete("padding-left"),t.style.paddingTop==t.style.paddingRight&&t.style.paddingTop==t.style.paddingBottom&&t.style.paddingTop==t.style.paddingLeft?e.set("padding",t.style.paddingTop):e.set("padding",t.style.paddingTop+" "+t.style.paddingRight+" "+t.style.paddingBottom+" "+t.style.paddingLeft))}static combineInset(e){if(!s.checkIfStyleIsCombinable(e,"top")||!s.checkIfStyleIsCombinable(e,"right")||!s.checkIfStyleIsCombinable(e,"bottom")||!s.checkIfStyleIsCombinable(e,"left")||!s.checkIfStyleIsCombinable(e,"inset"))return;let t=s._helperElement;t.style.top&&t.style.right&&t.style.bottom&&t.style.left&&(e.delete("top"),e.delete("right"),e.delete("bottom"),e.delete("left"),e.set("inset",t.style.top+" "+t.style.right+" "+t.style.bottom+" "+t.style.left))}static combineBackground(e){if(!s.checkIfStyleIsCombinable(e,"background-image")||!s.checkIfStyleIsCombinable(e,"background-position")||!s.checkIfStyleIsCombinable(e,"background-position-x")||!s.checkIfStyleIsCombinable(e,"background-position-y")||!s.checkIfStyleIsCombinable(e,"background-size")||!s.checkIfStyleIsCombinable(e,"background-repeat")||!s.checkIfStyleIsCombinable(e,"background-repeat-x")||!s.checkIfStyleIsCombinable(e,"background-repeat-y")||!s.checkIfStyleIsCombinable(e,"background-attachment")||!s.checkIfStyleIsCombinable(e,"background-origin")||!s.checkIfStyleIsCombinable(e,"background-clip")||!s.checkIfStyleIsCombinable(e,"background-color")||!s.checkIfStyleIsCombinable(e,"background"))return;let t=s._helperElement;e.delete("background-image"),e.delete("background-position"),e.delete("background-position-x"),e.delete("background-position-y"),e.delete("background-size"),e.delete("background-repeat"),e.delete("background-repeat-x"),e.delete("background-repeat-y"),e.delete("background-attachment"),e.delete("background-origin"),e.delete("background-clip"),e.delete("background-color"),e.delete("background");let i="";t.style.backgroundImage&&t.style.backgroundImage!=="initial"&&(i+=(i===""?"":" ")+t.style.backgroundImage),t.style.backgroundPosition&&t.style.backgroundPosition!=="initial"&&(i+=(i===""?"":" ")+t.style.backgroundPosition),t.style.backgroundSize&&t.style.backgroundSize!=="initial"&&(i+=(i===""?"":" / ")+t.style.backgroundSize),t.style.backgroundRepeat&&t.style.backgroundRepeat!=="initial"&&(i+=(i===""?"":" ")+t.style.backgroundRepeat),t.style.backgroundAttachment&&t.style.backgroundAttachment!=="initial"&&(i+=(i===""?"":" ")+t.style.backgroundAttachment),t.style.backgroundOrigin&&t.style.backgroundOrigin!=="initial"&&(i+=(i===""?"":" ")+t.style.backgroundOrigin),t.style.backgroundClip&&t.style.backgroundClip!=="initial"&&(i+=(i===""?"":" ")+t.style.backgroundClip),t.style.backgroundColor&&t.style.backgroundColor!=="initial"&&(i+=(i===""?"":" ")+t.style.backgroundColor),i&&e.set("background",i)}static combineFont(e){if(!s.checkIfStyleIsCombinable(e,"font-style")||!s.checkIfStyleIsCombinable(e,"font-weight")||!s.checkIfStyleIsCombinable(e,"font-size")||!s.checkIfStyleIsCombinable(e,"line-height")||!s.checkIfStyleIsCombinable(e,"font-family")||!s.checkIfStyleIsCombinable(e,"font"))return;let t=s._helperElement;if(t.style.fontFamily){e.delete("font-style"),e.delete("font-weight"),e.delete("font-size"),e.delete("line-height"),e.delete("font-family"),e.delete("font");let i="";t.style.fontStyle&&(i+=(i===""?"":" ")+t.style.fontStyle),t.style.fontWeight&&(i+=(i===""?"":" ")+t.style.fontWeight),t.style.fontSize&&(i+=(i===""?"":" ")+t.style.fontSize),t.style.lineHeight&&(i+="/"+t.style.lineHeight),t.style.fontFamily&&(i+=(i===""?"":" ")+t.style.fontFamily),e.set("font",i)}}static checkIfStyleIsCombinable(e,t){if(e.has(t)){let i=e.get(t);return typeof i=="string"?!i.startsWith("var("):!1}return!0}}});var zn,dl=u(()=>{"use strict";Te();Fn();ge();zn=class{options;constructor(e){this.options=e??{},this.options.beautifyOutput??=!0,this.options.compressCssToShorthandProperties??=!0,this.options.writeDesignerProperties??=!0,this.options.parseJsonInAttributes??=!0,this.options.jsonWriteMode??="min"}writeAttributes(e,t){if(t.hasAttributes)for(let i of t.attributes())if(e.write(" "),typeof i[1]=="string")if(i[1]==="")e.write(i[0]);else{if(this.options.parseJsonInAttributes&&(i[1].startsWith("{")&&!i[1].startsWith("{{")&&i[1].endsWith("}")||i[1].startsWith("[")&&!i[1].startsWith("[[")&&i[1].endsWith("]")))try{let n=JSON.parse(i[1]),o;this.options.jsonWriteMode=="beauty"?o=JSON.stringify(n,null,2):o=JSON.stringify(n),e.write(i[0]+"='"+K.normalizeAttributeValue(o,!0)+"'");continue}catch{}let r=K.normalizeAttributeValue(i[1]);if(r.indexOf(""")){let n=K.normalizeAttributeValue(i[1],!0);n.length<r.length?e.write(i[0]+"='"+n+"'"):e.write(i[0]+'="'+r+'"')}else e.write(i[0]+'="'+r+'"')}else i[1]||e.write(i[0])}writeStyles(e,t){if(t.hasStyles){e.write(' style="');let i=t.styles();this.options.compressCssToShorthandProperties&&(i=$t.combine(new Map(i)));for(let r of i)r[0]&&(r[0].startsWith("--")?e.write(r[0]+":"+K.normalizeAttributeValue(r[1])+";"):e.write(R.camelToDashCase(r[0])+":"+K.normalizeAttributeValue(r[1])+";"));e.write('"')}}}});var Bn,pl=u(()=>{"use strict";Te();Z();te();dl();Bn=class extends zn{constructor(e){super(e)}_conditionalyWriteIndent(e,t){(t.element instanceof t.window.HTMLElement&&!_t(t.element)||t.element.previousElementSibling instanceof t.window.HTMLElement&&!xt(t.element.previousElementSibling)||t.element.previousElementSibling==null&&!xt(t.element.parentElement)&&(t.element.previousSibling==null||tr(t.element.previousSibling))||t.element instanceof t.window.SVGElement)&&e.writeIndent()}_conditionalyWriteIndentBefore(e,t){(t.element.previousElementSibling instanceof t.window.HTMLElement&&!xt(t.element.previousElementSibling)||t.element.previousElementSibling==null&&!xt(t.element.parentElement)&&(t.element.previousSibling==null||tr(t.element.previousSibling))||t.element instanceof t.window.SVGElement)&&e.writeIndent()}_conditionalyWriteNewline(e,t){(t.element instanceof t.window.HTMLElement&&!_t(t.element)||t.element.nextElementSibling instanceof t.window.HTMLElement&&!xt(t.element.nextElementSibling)||t.element instanceof t.window.SVGElement)&&e.writeNewline()}write(e,t,i,r=!1){for(let n of t)this.internalWrite(e,n,r)}internalWrite(e,t,i){let r=e.position,n=e.position;if(t.nodeType==E.TextNode)tr(t.element)&&(t.element.previousSibling instanceof t.window.HTMLElement&&!_t(t.element.previousSibling)||t.element.nextSibling instanceof t.window.HTMLElement&&!xt(t.element.nextSibling))||this.writeTextNode(e,t,!0),n=e.position;else if(t.nodeType==E.Comment)this._conditionalyWriteIndent(e,t),r=e.position,e.write("<!--"+t.content+"-->"),n=e.position,this._conditionalyWriteNewline(e,t);else{this._conditionalyWriteIndentBefore(e,t),r=e.position,e.write("<"+t.name),this.writeAttributes(e,t),this.writeStyles(e,t),e.write(">");let o=!1;if(t.hasChildren){let a=t.children();if(o=t.childCount===1&&t.firstChild.nodeType===E.TextNode,o){let l=t.name=="script"||t.name=="style"||t.name=="pre";this.writeTextNode(e,t,!1,!l)}else{(t.element instanceof t.window.HTMLElement&&!_t(t.element)||t.element instanceof t.window.SVGElement)&&(e.writeNewline(),e.levelRaise());for(let l of a)this.internalWrite(e,l,i),l.childCount===1&&l.firstChild.nodeType===E.TextNode&&(e.isLastCharNewline()||this._conditionalyWriteNewline(e,l));(t.element instanceof t.window.HTMLElement&&!_t(t.element)||t.element instanceof t.window.SVGElement)&&(e.levelShrink(),e.isLastCharNewline()||e.writeNewline(),e.writeIndent())}}else t.hasContent&&e.write(K.normalizeContentValue(t.content));n=e.position,K.IsSelfClosingElement(t.name)||e.write("</"+t.name+">"),n=e.position,!e.isLastCharNewline()&&(!t.parent||!_t(t.parent.element))&&this._conditionalyWriteNewline(e,t)}i&&t.instanceServiceContainer.designItemDocumentPositionService&&t.instanceServiceContainer.designItemDocumentPositionService.setPosition(t,{start:r,length:n-r})}writeTextNode(e,t,i,r=!0){let n=e.position,o=e.position,a=K.normalizeContentValue(t.content);r&&(a=a.trim()),a&&(i&&this._conditionalyWriteIndent(e,t),e.write(a),i&&this._conditionalyWriteNewline(e,t)),o=e.position;for(let l of t.children())t.instanceServiceContainer.designItemDocumentPositionService.setPosition(l,{start:n,length:o-n})}}});var Vn,ml=u(()=>{"use strict";q();He();Vn=class{shouldProvideContextmenu(e,t,i,r){return i?.element instanceof SVGRectElement}provideContextMenuItems(e,t,i){return[{title:"convert to path",action:()=>{let r=i.element,n="";n+="M"+r.x.baseVal.value+" "+r.y.baseVal.value+"L"+(r.x.baseVal.value+r.width.baseVal.value)+" "+r.y.baseVal.value+"L"+(r.x.baseVal.value+r.width.baseVal.value)+" "+(r.y.baseVal.value+r.height.baseVal.value)+"L"+r.x.baseVal.value+" "+(r.y.baseVal.value+r.height.baseVal.value)+"Z";let o=document.createElementNS("http://www.w3.org/2000/svg","path");o.setAttribute("d",n),o.setAttribute("stroke",r.getAttribute("stroke")),o.setAttribute("fill",r.getAttribute("fill")),o.setAttribute("stroke-width",r.getAttribute("stroke-width"));let a=T.createDesignItemFromInstance(o,t.serviceContainer,t.instanceServiceContainer);t.instanceServiceContainer.undoService.execute(new oe(i.parent,i.childCount,a)),t.serviceContainer.deletionService.removeItems([i])}}]}}});var Hn,ul=u(()=>{"use strict";Oe();Hn=class{shouldProvideContextmenu(e,t,i,r){return i?.element instanceof SVGPathElement}provideContextMenuItems(e,t,i){let r=i.node.getPathData({normalize:!0}),n=[],o=r[r.length-1].type;return n.push({title:"-"}),o=="z"||o=="Z"?n.push({title:"open path ",action:()=>{r.splice(r.length-1,1),i.setAttribute("d",Me(r))}}):n.push({title:"close path ",action:()=>{r.push({type:"Z"}),i.setAttribute("d",Me(r))}}),n}}});var we,Gn=u(()=>{"use strict";we=class{shouldProvideContextmenu(e,t,i,r){return!0}provideContextMenuItems(e,t,i){return[{title:"-"}]}}});var Wn,jn,fl=u(()=>{"use strict";$();Wn=10,jn=class{shouldProvideContextmenu(e,t,i,r){return i!==null}provideContextMenuItems(e,t,i){return[{title:"zoom to",icon:`<img src="${v+"icons/zoomIn.svg"}">`,action:()=>{let r=t.getNormalizedElementCoordinates(i.element),n={x:r.x-Wn,y:r.y-Wn},o={x:r.x+r.width+Wn,y:r.y+r.height+Wn},a={x:n.x<o.x?n.x:o.x,y:n.y<o.y?n.y:o.y,width:Math.abs(n.x-o.x),height:Math.abs(n.y-o.y)},l=t.outerRect.width/a.width,c=t.outerRect.height/a.height,h=l>=c?c:l;t.zoomPoint({x:r.x+r.width/2,y:r.y+r.height/2},h)}}]}}});var Un,gl=u(()=>{"use strict";Qe();Z();$();Un=class{shouldProvideContextmenu(e,t,i,r){return!i?.isRootItem&&i?.nodeType==E.Element}provideContextMenuItems(e,t,i){return[{title:"rotate right",icon:`<img src="${v+"icons/rotateRight.svg"}">`,action:()=>{t.executeCommand({type:S.rotateClockwise})},shortCut:"Ctrl + R"},{title:"rotate left",icon:`<img src="${v+"icons/rotateLeft.svg"}">`,action:()=>{t.executeCommand({type:S.rotateCounterClockwise})},shortCut:"Ctrl + Shift + R"}]}}});var Kn,yl=u(()=>{"use strict";Z();Kn=class{shouldProvideContextmenu(e,t,i,r){return i?.hasChildren}provideContextMenuItems(e,t,i){return[{title:"select all Children",action:()=>{t.instanceServiceContainer.selectionService.setSelectedElements(Array.from(i.children()).filter(r=>r.nodeType==E.Element))}}]}}});import{BaseCustomWebComponentConstructorAppend as Cp,css as Ep,html as Ap}from"@node-projects/base-custom-webcomponent";var se,We=u(()=>{"use strict";se=class extends Cp{static style=Ep`
|
|
348
|
+
</mask>`}});var On,al=u(()=>{"use strict";Ii();bt();On=class extends Ae{constructor(){super(Pi,"G","show grid overlay")}}});var Nn,ll=u(()=>{"use strict";ee();X();Oe();q();He();Ne();Nn=class{cursor="crosshair";_path;_startPoint;_minX;_minY;_maxX;_maxY;_px;_py;constructor(){}activated(e){}dispose(){}pointerEventHandler(e,t,i){let r=e.getNormalizedEventCoordinates(t),n=10;switch(t.type){case x.PointerDown:this._startPoint=r,t.target.setPointerCapture(t.pointerId),e.captureActiveTool(this),this._path=document.createElementNS("http://www.w3.org/2000/svg","rect"),this._path.setAttribute("stroke",e.serviceContainer.globalContext.strokeColor),this._path.setAttribute("fill",e.serviceContainer.globalContext.fillBrush),this._path.setAttribute("stroke-width",e.serviceContainer.globalContext.strokeThickness),this._path.setAttribute("x",r.x.toString()),this._path.setAttribute("y",r.y.toString()),this._path.setAttribute("width","0"),this._path.setAttribute("height","0"),e.overlayLayer.addOverlay(this.constructor.name,this._path,I.Foreground);break;case x.PointerMove:if(this._path)if(this._minX=r.x<this._startPoint.x?r.x:this._startPoint.x,this._maxX=r.x>this._startPoint.x?r.x:this._startPoint.x,this._minY=r.y<this._startPoint.y?r.y:this._startPoint.y,this._maxY=r.y>this._startPoint.y?r.y:this._startPoint.y,j(t)){if(t.shiftKey){let d=2*Be(this._startPoint,r);this._px=this._startPoint.x-d/2,this._py=this._startPoint.y-d/2,this._path.setAttribute("width",d.toString()),this._path.setAttribute("height",d.toString())}else{let d=2*(this._maxX-this._minX),p=2*(this._maxY-this._minY);this._px=r.x<this._startPoint.x?r.x:this._startPoint.x-d/2,this._py=r.y<this._startPoint.y?r.y:this._startPoint.y-p/2,this._path.setAttribute("width",d.toString()),this._path.setAttribute("height",p.toString())}this._path.setAttribute("x",this._px.toString()),this._path.setAttribute("y",this._py.toString())}else{if(t.shiftKey){let d=Be(this._startPoint,r);this._px=r.x<this._startPoint.x?this._startPoint.x-d:this._startPoint.x,this._py=r.y<this._startPoint.y?this._startPoint.y-d:this._startPoint.y,this._path.setAttribute("width",d.toString()),this._path.setAttribute("height",d.toString())}else this._px=r.x<this._startPoint.x?r.x:this._startPoint.x,this._py=r.y<this._startPoint.y?r.y:this._startPoint.y,this._path.setAttribute("width",(this._maxX-this._minX).toString()),this._path.setAttribute("height",(this._maxY-this._minY).toString());this._path.setAttribute("x",this._px.toString()),this._path.setAttribute("y",this._py.toString())}break;case x.PointerUp:t.target.releasePointerCapture(t.pointerId),e.releaseActiveTool();let o=e.getNormalizedElementCoordinates(this._path);e.overlayLayer.removeOverlay(this._path);let a=document.createElementNS("http://www.w3.org/2000/svg","svg"),l=o.x-n,c=o.y-n;this._path.setAttribute("x",(this._px-l).toString()),this._path.setAttribute("y",(this._py-c).toString()),this._path.removeAttribute("stroke"),this._path.removeAttribute("stroke-width"),this._path.removeAttribute("overlay-source"),a.appendChild(this._path),a.style.left=l+"px",a.style.top=c+"px",a.style.position="absolute",a.style.width=Math.round(o.width+2*n)+"px",a.style.height=Math.round(o.height+2*n)+"px",a.style.overflow="visible",a.style.stroke=e.serviceContainer.globalContext.strokeColor,a.style.strokeWidth=e.serviceContainer.globalContext.strokeThickness,this._path=null;let h=T.createDesignItemFromInstance(a,e.serviceContainer,e.instanceServiceContainer);e.instanceServiceContainer.undoService.execute(new oe(e.rootDesignItem,e.rootDesignItem.childCount,h)),e.serviceContainer.globalContext.finishedWithTool(this);break}}keyboardEventHandler(e,t,i){}}});var Ln,cl=u(()=>{"use strict";ee();X();Oe();q();He();Ne();Ln=class{cursor="crosshair";_path;_startPoint;_radius;_cx;_cy;constructor(){}activated(e){}dispose(){}pointerEventHandler(e,t,i){let r=e.getNormalizedEventCoordinates(t),n=10;switch(t.type){case x.PointerDown:this._startPoint=r,t.target.setPointerCapture(t.pointerId),e.captureActiveTool(this),this._path=document.createElementNS("http://www.w3.org/2000/svg","ellipse"),this._path.setAttribute("stroke",e.serviceContainer.globalContext.strokeColor),this._path.setAttribute("fill",e.serviceContainer.globalContext.fillBrush),this._path.setAttribute("stroke-width",e.serviceContainer.globalContext.strokeThickness),this._path.setAttribute("cx",r.x.toString()),this._path.setAttribute("cy",r.y.toString()),this._path.setAttribute("rx","0"),this._path.setAttribute("ry","0"),e.overlayLayer.addOverlay(this.constructor.name,this._path,I.Foreground);break;case x.PointerMove:if(this._path)if(this._radius={x:Math.abs(r.x-this._startPoint.x),y:Math.abs(r.y-this._startPoint.y)},j(t))if(this._path.setAttribute("cx",this._startPoint.x.toString()),this._path.setAttribute("cy",this._startPoint.y.toString()),this._cx=this._startPoint.x,this._cy=this._startPoint.y,t.shiftKey){let d=Be(this._startPoint,r);this._path.setAttribute("rx",d.toString()),this._path.setAttribute("ry",d.toString())}else this._path.setAttribute("rx",this._radius.x.toString()),this._path.setAttribute("ry",this._radius.y.toString());else{if(t.shiftKey){let d=Be(this._startPoint,r);this._radius={x:d,y:d}}this._cx=r.x<this._startPoint.x?this._startPoint.x-this._radius.x/2:this._startPoint.x+this._radius.x/2,this._cy=r.y<this._startPoint.y?this._startPoint.y-this._radius.y/2:this._startPoint.y+this._radius.y/2,this._path.setAttribute("cx",this._cx.toString()),this._path.setAttribute("cy",this._cy.toString()),this._path.setAttribute("rx",(this._radius.x/2).toString()),this._path.setAttribute("ry",(this._radius.y/2).toString())}break;case x.PointerUp:t.target.releasePointerCapture(t.pointerId),e.releaseActiveTool();let o=e.getNormalizedElementCoordinates(this._path);e.overlayLayer.removeOverlay(this._path);let a=document.createElementNS("http://www.w3.org/2000/svg","svg"),l=o.x-n,c=o.y-n;a.appendChild(this._path),this._path.setAttribute("cx",(this._cx-l).toString()),this._path.setAttribute("cy",(this._cy-c).toString()),this._path.removeAttribute("stroke"),this._path.removeAttribute("stroke-width"),this._path.removeAttribute("overlay-source"),a.style.left=l+"px",a.style.top=c+"px",a.style.position="absolute",a.style.width=Math.round(o.width+2*n)+"px",a.style.height=Math.round(o.height+2*n)+"px",a.style.overflow="visible",a.style.stroke=e.serviceContainer.globalContext.strokeColor,a.style.strokeWidth=e.serviceContainer.globalContext.strokeThickness,this._path=null;let h=T.createDesignItemFromInstance(a,e.serviceContainer,e.instanceServiceContainer);e.instanceServiceContainer.undoService.execute(new oe(e.rootDesignItem,e.rootDesignItem.childCount,h)),e.serviceContainer.globalContext.finishedWithTool(this);break}}keyboardEventHandler(e,t,i){}}});var Rn,hl=u(()=>{"use strict";ee();X();Oe();q();He();Rn=class{cursor="crosshair";_path;_startPoint;_endPoint;constructor(){}activated(e){}dispose(){}pointerEventHandler(e,t,i){let r=e.getNormalizedEventCoordinates(t),n=10;switch(t.type){case x.PointerDown:this._startPoint=r,t.target.setPointerCapture(t.pointerId),e.captureActiveTool(this),this._path=document.createElementNS("http://www.w3.org/2000/svg","line"),this._path.setAttribute("stroke",e.serviceContainer.globalContext.strokeColor),this._path.setAttribute("stroke-width",e.serviceContainer.globalContext.strokeThickness),this._path.setAttribute("x1",r.x.toString()),this._path.setAttribute("y1",r.y.toString()),this._path.setAttribute("x2",r.x.toString()),this._path.setAttribute("y2",r.y.toString()),e.overlayLayer.addOverlay(this.constructor.name,this._path,I.Foreground);break;case x.PointerMove:if(this._path)if(t.shiftKey){let d=Ze(this._startPoint,r);this._path.setAttribute("x2",d.x.toString()),this._path.setAttribute("y2",d.y.toString()),this._endPoint=d}else this._path.setAttribute("x2",r.x.toString()),this._path.setAttribute("y2",r.y.toString()),this._endPoint=r;break;case x.PointerUp:t.target.releasePointerCapture(t.pointerId),e.releaseActiveTool();let o=e.getNormalizedElementCoordinates(this._path);e.overlayLayer.removeOverlay(this._path);let a=document.createElementNS("http://www.w3.org/2000/svg","svg"),l=o.x-n,c=o.y-n;this._path.setAttribute("x1",(this._startPoint.x-l).toString()),this._path.setAttribute("y1",(this._startPoint.y-c).toString()),this._path.setAttribute("x2",(this._endPoint.x-l).toString()),this._path.setAttribute("y2",(this._endPoint.y-c).toString()),this._path.removeAttribute("stroke"),this._path.removeAttribute("stroke-width"),this._path.removeAttribute("overlay-source"),a.appendChild(this._path),a.style.left=l+"px",a.style.top=c+"px",a.style.position="absolute",a.style.width=Math.round(o.width+2*n)+"px",a.style.height=Math.round(o.height+2*n)+"px",a.style.overflow="visible",a.style.stroke=e.serviceContainer.globalContext.strokeColor,a.style.strokeWidth=e.serviceContainer.globalContext.strokeThickness,this._path=null;let h=T.createDesignItemFromInstance(a,e.serviceContainer,e.instanceServiceContainer);e.instanceServiceContainer.undoService.execute(new oe(e.rootDesignItem,e.rootDesignItem.childCount,h)),e.serviceContainer.globalContext.finishedWithTool(this);break}}keyboardEventHandler(e,t,i){}}});var qt,Fn=u(()=>{"use strict";qt=class s{static _helperElement=document.createElement("div");static combine(e,t){let i=s._helperElement;i.setAttribute("style","");for(let r of e)i.style[r[0]]=r[1];if(s.combineBorder(e),s.combineMargin(e),s.combinePadding(e),s.combineInset(e),s.combineBackground(e),s.combineFont(e),t)for(let r of t)e.has(r[0])&&e.get(r[0])===r[1]&&e.delete(r[0]);return e}static combineBorder(e){if(!s.checkIfStyleIsCombinable(e,"border-left-style")||!s.checkIfStyleIsCombinable(e,"border-right-style")||!s.checkIfStyleIsCombinable(e,"border-top-style")||!s.checkIfStyleIsCombinable(e,"border-bottom-style")||!s.checkIfStyleIsCombinable(e,"border-left-color")||!s.checkIfStyleIsCombinable(e,"border-right-color")||!s.checkIfStyleIsCombinable(e,"border-top-color")||!s.checkIfStyleIsCombinable(e,"border-bottom-color")||!s.checkIfStyleIsCombinable(e,"border-left-width")||!s.checkIfStyleIsCombinable(e,"border-right-width")||!s.checkIfStyleIsCombinable(e,"border-top-width")||!s.checkIfStyleIsCombinable(e,"border-bottom-width")||!s.checkIfStyleIsCombinable(e,"border-width")||!s.checkIfStyleIsCombinable(e,"border-style")||!s.checkIfStyleIsCombinable(e,"border-color")||!s.checkIfStyleIsCombinable(e,"border-top")||!s.checkIfStyleIsCombinable(e,"border-right")||!s.checkIfStyleIsCombinable(e,"border-left")||!s.checkIfStyleIsCombinable(e,"border-bottom")||!s.checkIfStyleIsCombinable(e,"border-width"))return;let t=s._helperElement,i=t.style.borderLeftStyle,r=t.style.borderLeftColor;if(i&&r&&t.style.borderRightStyle===i&&t.style.borderTopStyle===i&&t.style.borderBottomStyle===i&&t.style.borderRightColor===r&&t.style.borderTopColor===r&&t.style.borderBottomColor===r){let n=t.style.borderTopWidth,o=t.style.borderRightWidth,a=t.style.borderBottomWidth,l=t.style.borderLeftWidth;e.delete("border-left-style"),e.delete("border-right-style"),e.delete("border-top-style"),e.delete("border-bottom-style"),e.delete("border-left-color"),e.delete("border-right-color"),e.delete("border-top-color"),e.delete("border-bottom-color"),e.delete("border-left-width"),e.delete("border-right-width"),e.delete("border-top-width"),e.delete("border-bottom-width"),e.delete("border-width"),e.delete("border-style"),e.delete("border-color"),e.delete("border-top"),e.delete("border-right"),e.delete("border-left"),e.delete("border-bottom"),t.style.borderRightWidth==l&&t.style.borderTopWidth===l&&t.style.borderBottomWidth===l?e.set("border",l+" "+i+" "+r):(e.set("border",i+" "+r),n===a&&o===l?e.set("border-width",n+" "+o):e.set("border-width",n+" "+o+" "+a+" "+l))}t.style.borderImageSource==="initial"&&e.delete("border-image-source"),t.style.borderImageSlice==="initial"&&e.delete("border-image-slice"),t.style.borderImageWidth==="initial"&&e.delete("border-image-width"),t.style.borderImageOutset==="initial"&&e.delete("border-image-outset"),t.style.borderImageRepeat==="initial"&&e.delete("border-image-repeat")}static combineMargin(e){if(!s.checkIfStyleIsCombinable(e,"margin-top")||!s.checkIfStyleIsCombinable(e,"margin-right")||!s.checkIfStyleIsCombinable(e,"margin-bottom")||!s.checkIfStyleIsCombinable(e,"margin-left")||!s.checkIfStyleIsCombinable(e,"margin"))return;let t=s._helperElement;t.style.marginTop&&t.style.marginRight&&t.style.marginBottom&&t.style.marginLeft&&(e.delete("margin-top"),e.delete("margin-right"),e.delete("margin-bottom"),e.delete("margin-left"),t.style.marginTop==t.style.marginRight&&t.style.marginTop==t.style.marginBottom&&t.style.marginTop==t.style.marginLeft?e.set("margin",t.style.marginTop):e.set("margin",t.style.marginTop+" "+t.style.marginRight+" "+t.style.marginBottom+" "+t.style.marginLeft))}static combinePadding(e){if(!s.checkIfStyleIsCombinable(e,"padding-top")||!s.checkIfStyleIsCombinable(e,"padding-right")||!s.checkIfStyleIsCombinable(e,"padding-bottom")||!s.checkIfStyleIsCombinable(e,"padding-left")||!s.checkIfStyleIsCombinable(e,"padding"))return;let t=s._helperElement;t.style.paddingTop&&t.style.paddingRight&&t.style.paddingBottom&&t.style.paddingLeft&&(e.delete("padding-top"),e.delete("padding-right"),e.delete("padding-bottom"),e.delete("padding-left"),t.style.paddingTop==t.style.paddingRight&&t.style.paddingTop==t.style.paddingBottom&&t.style.paddingTop==t.style.paddingLeft?e.set("padding",t.style.paddingTop):e.set("padding",t.style.paddingTop+" "+t.style.paddingRight+" "+t.style.paddingBottom+" "+t.style.paddingLeft))}static combineInset(e){if(!s.checkIfStyleIsCombinable(e,"top")||!s.checkIfStyleIsCombinable(e,"right")||!s.checkIfStyleIsCombinable(e,"bottom")||!s.checkIfStyleIsCombinable(e,"left")||!s.checkIfStyleIsCombinable(e,"inset"))return;let t=s._helperElement;t.style.top&&t.style.right&&t.style.bottom&&t.style.left&&(e.delete("top"),e.delete("right"),e.delete("bottom"),e.delete("left"),e.set("inset",t.style.top+" "+t.style.right+" "+t.style.bottom+" "+t.style.left))}static combineBackground(e){if(!s.checkIfStyleIsCombinable(e,"background-image")||!s.checkIfStyleIsCombinable(e,"background-position")||!s.checkIfStyleIsCombinable(e,"background-position-x")||!s.checkIfStyleIsCombinable(e,"background-position-y")||!s.checkIfStyleIsCombinable(e,"background-size")||!s.checkIfStyleIsCombinable(e,"background-repeat")||!s.checkIfStyleIsCombinable(e,"background-repeat-x")||!s.checkIfStyleIsCombinable(e,"background-repeat-y")||!s.checkIfStyleIsCombinable(e,"background-attachment")||!s.checkIfStyleIsCombinable(e,"background-origin")||!s.checkIfStyleIsCombinable(e,"background-clip")||!s.checkIfStyleIsCombinable(e,"background-color")||!s.checkIfStyleIsCombinable(e,"background"))return;let t=s._helperElement;e.delete("background-image"),e.delete("background-position"),e.delete("background-position-x"),e.delete("background-position-y"),e.delete("background-size"),e.delete("background-repeat"),e.delete("background-repeat-x"),e.delete("background-repeat-y"),e.delete("background-attachment"),e.delete("background-origin"),e.delete("background-clip"),e.delete("background-color"),e.delete("background");let i="";t.style.backgroundImage&&t.style.backgroundImage!=="initial"&&(i+=(i===""?"":" ")+t.style.backgroundImage),t.style.backgroundPosition&&t.style.backgroundPosition!=="initial"&&(i+=(i===""?"":" ")+t.style.backgroundPosition),t.style.backgroundSize&&t.style.backgroundSize!=="initial"&&(i+=(i===""?"":" / ")+t.style.backgroundSize),t.style.backgroundRepeat&&t.style.backgroundRepeat!=="initial"&&(i+=(i===""?"":" ")+t.style.backgroundRepeat),t.style.backgroundAttachment&&t.style.backgroundAttachment!=="initial"&&(i+=(i===""?"":" ")+t.style.backgroundAttachment),t.style.backgroundOrigin&&t.style.backgroundOrigin!=="initial"&&(i+=(i===""?"":" ")+t.style.backgroundOrigin),t.style.backgroundClip&&t.style.backgroundClip!=="initial"&&(i+=(i===""?"":" ")+t.style.backgroundClip),t.style.backgroundColor&&t.style.backgroundColor!=="initial"&&(i+=(i===""?"":" ")+t.style.backgroundColor),i&&e.set("background",i)}static combineFont(e){if(!s.checkIfStyleIsCombinable(e,"font-style")||!s.checkIfStyleIsCombinable(e,"font-weight")||!s.checkIfStyleIsCombinable(e,"font-size")||!s.checkIfStyleIsCombinable(e,"line-height")||!s.checkIfStyleIsCombinable(e,"font-family")||!s.checkIfStyleIsCombinable(e,"font"))return;let t=s._helperElement;if(t.style.fontFamily){e.delete("font-style"),e.delete("font-weight"),e.delete("font-size"),e.delete("line-height"),e.delete("font-family"),e.delete("font");let i="";t.style.fontStyle&&(i+=(i===""?"":" ")+t.style.fontStyle),t.style.fontWeight&&(i+=(i===""?"":" ")+t.style.fontWeight),t.style.fontSize&&(i+=(i===""?"":" ")+t.style.fontSize),t.style.lineHeight&&(i+="/"+t.style.lineHeight),t.style.fontFamily&&(i+=(i===""?"":" ")+t.style.fontFamily),e.set("font",i)}}static checkIfStyleIsCombinable(e,t){if(e.has(t)){let i=e.get(t);return typeof i=="string"?!i.startsWith("var("):!1}return!0}}});var zn,dl=u(()=>{"use strict";Te();Fn();ue();zn=class{options;constructor(e){this.options=e??{},this.options.beautifyOutput??=!0,this.options.compressCssToShorthandProperties??=!0,this.options.writeDesignerProperties??=!0,this.options.parseJsonInAttributes??=!0,this.options.jsonWriteMode??="min"}writeAttributes(e,t){if(t.hasAttributes)for(let i of t.attributes())if(e.write(" "),typeof i[1]=="string")if(i[1]==="")e.write(i[0]);else{if(this.options.parseJsonInAttributes&&(i[1].startsWith("{")&&!i[1].startsWith("{{")&&i[1].endsWith("}")||i[1].startsWith("[")&&!i[1].startsWith("[[")&&i[1].endsWith("]")))try{let n=JSON.parse(i[1]),o;this.options.jsonWriteMode=="beauty"?o=JSON.stringify(n,null,2):o=JSON.stringify(n),e.write(i[0]+"='"+K.normalizeAttributeValue(o,!0)+"'");continue}catch{}let r=K.normalizeAttributeValue(i[1]);if(r.indexOf(""")){let n=K.normalizeAttributeValue(i[1],!0);n.length<r.length?e.write(i[0]+"='"+n+"'"):e.write(i[0]+'="'+r+'"')}else e.write(i[0]+'="'+r+'"')}else i[1]||e.write(i[0])}writeStyles(e,t){if(t.hasStyles){e.write(' style="');let i=t.styles();this.options.compressCssToShorthandProperties&&(i=qt.combine(new Map(i)));for(let r of i)r[0]&&(r[0].startsWith("--")?e.write(r[0]+":"+K.normalizeAttributeValue(r[1])+";"):e.write(L.camelToDashCase(r[0])+":"+K.normalizeAttributeValue(r[1])+";"));e.write('"')}}}});var Bn,pl=u(()=>{"use strict";Te();Z();te();dl();Bn=class extends zn{constructor(e){super(e)}_conditionalyWriteIndent(e,t){(t.element instanceof t.window.HTMLElement&&!_t(t.element)||t.element.previousElementSibling instanceof t.window.HTMLElement&&!xt(t.element.previousElementSibling)||t.element.previousElementSibling==null&&!xt(t.element.parentElement)&&(t.element.previousSibling==null||tr(t.element.previousSibling))||t.element instanceof t.window.SVGElement)&&e.writeIndent()}_conditionalyWriteIndentBefore(e,t){(t.element.previousElementSibling instanceof t.window.HTMLElement&&!xt(t.element.previousElementSibling)||t.element.previousElementSibling==null&&!xt(t.element.parentElement)&&(t.element.previousSibling==null||tr(t.element.previousSibling))||t.element instanceof t.window.SVGElement)&&e.writeIndent()}_conditionalyWriteNewline(e,t){(t.element instanceof t.window.HTMLElement&&!_t(t.element)||t.element.nextElementSibling instanceof t.window.HTMLElement&&!xt(t.element.nextElementSibling)||t.element instanceof t.window.SVGElement)&&e.writeNewline()}write(e,t,i,r=!1){for(let n of t)this.internalWrite(e,n,r)}internalWrite(e,t,i){let r=e.position,n=e.position;if(t.nodeType==E.TextNode)tr(t.element)&&(t.element.previousSibling instanceof t.window.HTMLElement&&!_t(t.element.previousSibling)||t.element.nextSibling instanceof t.window.HTMLElement&&!xt(t.element.nextSibling))||this.writeTextNode(e,t,!0),n=e.position;else if(t.nodeType==E.Comment)this._conditionalyWriteIndent(e,t),r=e.position,e.write("<!--"+t.content+"-->"),n=e.position,this._conditionalyWriteNewline(e,t);else{this._conditionalyWriteIndentBefore(e,t),r=e.position,e.write("<"+t.name),this.writeAttributes(e,t),this.writeStyles(e,t),e.write(">");let o=!1;if(t.hasChildren){let a=t.children();if(o=t.childCount===1&&t.firstChild.nodeType===E.TextNode,o){let l=t.name=="script"||t.name=="style"||t.name=="pre";this.writeTextNode(e,t,!1,!l)}else{(t.element instanceof t.window.HTMLElement&&!_t(t.element)||t.element instanceof t.window.SVGElement)&&(e.writeNewline(),e.levelRaise());for(let l of a)this.internalWrite(e,l,i),l.childCount===1&&l.firstChild.nodeType===E.TextNode&&(e.isLastCharNewline()||this._conditionalyWriteNewline(e,l));(t.element instanceof t.window.HTMLElement&&!_t(t.element)||t.element instanceof t.window.SVGElement)&&(e.levelShrink(),e.isLastCharNewline()||e.writeNewline(),e.writeIndent())}}else t.hasContent&&e.write(K.normalizeContentValue(t.content));n=e.position,K.IsSelfClosingElement(t.name)||e.write("</"+t.name+">"),n=e.position,!e.isLastCharNewline()&&(!t.parent||!_t(t.parent.element))&&this._conditionalyWriteNewline(e,t)}i&&t.instanceServiceContainer.designItemDocumentPositionService&&t.instanceServiceContainer.designItemDocumentPositionService.setPosition(t,{start:r,length:n-r})}writeTextNode(e,t,i,r=!0){let n=e.position,o=e.position,a=K.normalizeContentValue(t.content);r&&(a=a.trim()),a&&(i&&this._conditionalyWriteIndent(e,t),e.write(a),i&&this._conditionalyWriteNewline(e,t)),o=e.position;for(let l of t.children())t.instanceServiceContainer.designItemDocumentPositionService.setPosition(l,{start:n,length:o-n})}}});var Vn,ml=u(()=>{"use strict";q();He();Vn=class{shouldProvideContextmenu(e,t,i,r){return i?.element instanceof SVGRectElement}provideContextMenuItems(e,t,i){return[{title:"convert to path",action:()=>{let r=i.element,n="";n+="M"+r.x.baseVal.value+" "+r.y.baseVal.value+"L"+(r.x.baseVal.value+r.width.baseVal.value)+" "+r.y.baseVal.value+"L"+(r.x.baseVal.value+r.width.baseVal.value)+" "+(r.y.baseVal.value+r.height.baseVal.value)+"L"+r.x.baseVal.value+" "+(r.y.baseVal.value+r.height.baseVal.value)+"Z";let o=document.createElementNS("http://www.w3.org/2000/svg","path");o.setAttribute("d",n),o.setAttribute("stroke",r.getAttribute("stroke")),o.setAttribute("fill",r.getAttribute("fill")),o.setAttribute("stroke-width",r.getAttribute("stroke-width"));let a=T.createDesignItemFromInstance(o,t.serviceContainer,t.instanceServiceContainer);t.instanceServiceContainer.undoService.execute(new oe(i.parent,i.childCount,a)),t.serviceContainer.deletionService.removeItems([i])}}]}}});var Hn,ul=u(()=>{"use strict";Oe();Hn=class{shouldProvideContextmenu(e,t,i,r){return i?.element instanceof SVGPathElement}provideContextMenuItems(e,t,i){let r=i.node.getPathData({normalize:!0}),n=[],o=r[r.length-1].type;return n.push({title:"-"}),o=="z"||o=="Z"?n.push({title:"open path ",action:()=>{r.splice(r.length-1,1),i.setAttribute("d",Me(r))}}):n.push({title:"close path ",action:()=>{r.push({type:"Z"}),i.setAttribute("d",Me(r))}}),n}}});var we,Gn=u(()=>{"use strict";we=class{shouldProvideContextmenu(e,t,i,r){return!0}provideContextMenuItems(e,t,i){return[{title:"-"}]}}});var Wn,jn,fl=u(()=>{"use strict";$();Wn=10,jn=class{shouldProvideContextmenu(e,t,i,r){return i!==null}provideContextMenuItems(e,t,i){return[{title:"zoom to",icon:`<img src="${v+"icons/zoomIn.svg"}">`,action:()=>{let r=t.getNormalizedElementCoordinates(i.element),n={x:r.x-Wn,y:r.y-Wn},o={x:r.x+r.width+Wn,y:r.y+r.height+Wn},a={x:n.x<o.x?n.x:o.x,y:n.y<o.y?n.y:o.y,width:Math.abs(n.x-o.x),height:Math.abs(n.y-o.y)},l=t.outerRect.width/a.width,c=t.outerRect.height/a.height,h=l>=c?c:l;t.zoomPoint({x:r.x+r.width/2,y:r.y+r.height/2},h)}}]}}});var Un,gl=u(()=>{"use strict";Qe();Z();$();Un=class{shouldProvideContextmenu(e,t,i,r){return!i?.isRootItem&&i?.nodeType==E.Element}provideContextMenuItems(e,t,i){return[{title:"rotate right",icon:`<img src="${v+"icons/rotateRight.svg"}">`,action:()=>{t.executeCommand({type:S.rotateClockwise})},shortCut:"Ctrl + R"},{title:"rotate left",icon:`<img src="${v+"icons/rotateLeft.svg"}">`,action:()=>{t.executeCommand({type:S.rotateCounterClockwise})},shortCut:"Ctrl + Shift + R"}]}}});var Kn,yl=u(()=>{"use strict";Z();Kn=class{shouldProvideContextmenu(e,t,i,r){return i?.hasChildren}provideContextMenuItems(e,t,i){return[{title:"select all Children",action:()=>{t.instanceServiceContainer.selectionService.setSelectedElements(Array.from(i.children()).filter(r=>r.nodeType==E.Element))}}]}}});import{BaseCustomWebComponentConstructorAppend as Cp,css as Ep,html as Ap}from"@node-projects/base-custom-webcomponent";var se,We=u(()=>{"use strict";se=class extends Cp{static style=Ep`
|
|
349
349
|
div {
|
|
350
350
|
width: 24px;
|
|
351
351
|
height: 24px;
|
|
@@ -364,7 +364,7 @@ var vd=Object.defineProperty;var u=(s,e)=>()=>(s&&(e=s(s=0)),e);var xd=(s,e)=>{f
|
|
|
364
364
|
height: calc(100% - 4px);
|
|
365
365
|
-webkit-user-drag: none;
|
|
366
366
|
}
|
|
367
|
-
`;static template=Ap`<div id="div"><img id="img"></div>`;tools;popup;currentToolOnButton;_img;_div;_longPress;constructor(e,t){super(),this.tools=t,this._img=this._getDomElement("img"),this._div=this._getDomElement("div"),this._div.onpointerdown=()=>{this.currentToolOnButton?(this.getRootNode().host.setTool(this.currentToolOnButton),setTimeout(()=>{e.clickOverlay.focus()},50),this.popup&&(this._longPress=setTimeout(()=>{this._longPress=null,this.getRootNode().host.showPopup(this)},200))):this.popup&&this.getRootNode().host.showPopup(this)},this._div.onpointerup=()=>{this._longPress&&(clearTimeout(this._longPress),this._longPress=null)},this.showTool(Object.getOwnPropertyNames(t)[0])}showTool(e){let t=this.tools[e];t&&(this._img.title=e,this._img.src=t.icon,this.currentToolOnButton=e)}setActiveTool(e){this.showTool(e),this.tools[e]?this._div.style.backgroundColor="lightgreen":this._div.style.backgroundColor=""}};customElements.define("node-projects-designer-toolbar-button",se)});import{BaseCustomWebComponentConstructorAppend as Pp,css as
|
|
367
|
+
`;static template=Ap`<div id="div"><img id="img"></div>`;tools;popup;currentToolOnButton;_img;_div;_longPress;constructor(e,t){super(),this.tools=t,this._img=this._getDomElement("img"),this._div=this._getDomElement("div"),this._div.onpointerdown=()=>{this.currentToolOnButton?(this.getRootNode().host.setTool(this.currentToolOnButton),setTimeout(()=>{e.clickOverlay.focus()},50),this.popup&&(this._longPress=setTimeout(()=>{this._longPress=null,this.getRootNode().host.showPopup(this)},200))):this.popup&&this.getRootNode().host.showPopup(this)},this._div.onpointerup=()=>{this._longPress&&(clearTimeout(this._longPress),this._longPress=null)},this.showTool(Object.getOwnPropertyNames(t)[0])}showTool(e){let t=this.tools[e];t&&(this._img.title=e,this._img.src=t.icon,this.currentToolOnButton=e)}setActiveTool(e){this.showTool(e),this.tools[e]?this._div.style.backgroundColor="lightgreen":this._div.style.backgroundColor=""}};customElements.define("node-projects-designer-toolbar-button",se)});import{BaseCustomWebComponentConstructorAppend as Pp,css as Ip}from"@node-projects/base-custom-webcomponent";var ut,ki=u(()=>{"use strict";ut=class extends Pp{static style=Ip`
|
|
368
368
|
.container {
|
|
369
369
|
width: 120px;
|
|
370
370
|
min-height: 100px;
|
|
@@ -390,7 +390,7 @@ var vd=Object.defineProperty;var u=(s,e)=>()=>(s&&(e=s(s=0)),e);var xd=(s,e)=>{f
|
|
|
390
390
|
flex-wrap: wrap;
|
|
391
391
|
margin-bottom: 5px;
|
|
392
392
|
gap: 3px;
|
|
393
|
-
}`;constructor(){super();for(let e of[...this.shadowRoot.querySelectorAll("div.tool")]){let t=e;t.onclick=()=>this.getRootNode().host.setTool(t.dataset.commandParameter)}}}});import{html as
|
|
393
|
+
}`;constructor(){super();for(let e of[...this.shadowRoot.querySelectorAll("div.tool")]){let t=e;t.onclick=()=>this.getRootNode().host.setTool(t.dataset.commandParameter)}}}});import{html as kp}from"@node-projects/base-custom-webcomponent";var Di,vl=u(()=>{"use strict";$();ki();Di=class extends ut{static template=kp`
|
|
394
394
|
<div class="container">
|
|
395
395
|
<header><h2 id="title" style="margin: 0;">Selection</h2></header>
|
|
396
396
|
<main id="content-area">
|
|
@@ -399,7 +399,7 @@ var vd=Object.defineProperty;var u=(s,e)=>()=>(s&&(e=s(s=0)),e);var xd=(s,e)=>{f
|
|
|
399
399
|
<div class="tool" data-command="setTool" data-command-parameter="Pan" title="Pan" style="background-image: url('${v}images/tools/PanTool.svg');"></div>
|
|
400
400
|
</div>
|
|
401
401
|
</main>
|
|
402
|
-
</div>`};customElements.define("node-projects-designer-pointer-tool-popup",Di)});var Yn,xl=u(()=>{"use strict";We();$();vl();Yn=class{provideButton(e){let t=new se(e,{Pointer:{icon:v+"images/tools/PointerTool.svg"}});return t.popup=Di,t}}});var je,_l=u(()=>{"use strict";je=class{constructor(e){this.distance=e}distance;provideButton(e){let t=document.createElement("div");return t.style.marginTop=this.distance+"px",t}}});var Xn,bl=u(()=>{"use strict";We();$();Xn=class{provideButton(e){return new se(e,{Zoom:{icon:v+"images/tools/ZoomTool.svg"}})}}});import{html as Dp,css as Tp}from"@node-projects/base-custom-webcomponent";var Ti,wl=u(()=>{"use strict";$();
|
|
402
|
+
</div>`};customElements.define("node-projects-designer-pointer-tool-popup",Di)});var Yn,xl=u(()=>{"use strict";We();$();vl();Yn=class{provideButton(e){let t=new se(e,{Pointer:{icon:v+"images/tools/PointerTool.svg"}});return t.popup=Di,t}}});var je,_l=u(()=>{"use strict";je=class{constructor(e){this.distance=e}distance;provideButton(e){let t=document.createElement("div");return t.style.marginTop=this.distance+"px",t}}});var Xn,bl=u(()=>{"use strict";We();$();Xn=class{provideButton(e){return new se(e,{Zoom:{icon:v+"images/tools/ZoomTool.svg"}})}}});import{html as Dp,css as Tp}from"@node-projects/base-custom-webcomponent";var Ti,wl=u(()=>{"use strict";$();ki();Ti=class extends ut{static style=[super.style,Tp`
|
|
403
403
|
.container {
|
|
404
404
|
width: 220px;
|
|
405
405
|
min-height: 300px;
|
|
@@ -452,7 +452,7 @@ var vd=Object.defineProperty;var u=(s,e)=>()=>(s&&(e=s(s=0)),e);var xd=(s,e)=>{f
|
|
|
452
452
|
</div>
|
|
453
453
|
</div>
|
|
454
454
|
</main>
|
|
455
|
-
</div>`;constructor(){if(super(),this.shadowRoot.querySelector("input.strokecolor")){let e=this._getDomElement("strokecolor");e.onchange=()=>this.getRootNode().host.setStrokeColor(e.value)}if(this.shadowRoot.querySelector("input.fillbrush")){let e=this._getDomElement("fillbrush");e.onchange=()=>this.getRootNode().host.setFillBrush(e.value)}if(this.shadowRoot.querySelector("input.strokethickness")){let e=this._getDomElement("strokethickness");e.onchange=()=>this.getRootNode().host.setStrokeThickness(e.value)}}};customElements.define("node-projects-designer-draw-tool-popup",Ti)});var Zn,Sl=u(()=>{"use strict";We();$();wl();Zn=class{provideButton(e){let t=new se(e,{DrawLine:{icon:v+"images/tools/DrawLineTool.svg"},DrawPath:{icon:v+"images/tools/DrawPathTool.svg"},DrawRect:{icon:v+"images/tools/DrawRectTool.svg"},DrawEllipsis:{icon:v+"images/tools/DrawEllipTool.svg"},PickColor:{icon:v+"images/tools/ColorPickerTool.svg"}});return t.popup=Ti,t}}});var $n,Cl=u(()=>{"use strict";We();$();$n=class{provideButton(e){return new se(e,{Text:{icon:v+"images/tools/TextTool.svg"}})}}});import{html as Mp}from"@node-projects/base-custom-webcomponent";var Mi,El=u(()=>{"use strict";$();
|
|
455
|
+
</div>`;constructor(){if(super(),this.shadowRoot.querySelector("input.strokecolor")){let e=this._getDomElement("strokecolor");e.onchange=()=>this.getRootNode().host.setStrokeColor(e.value)}if(this.shadowRoot.querySelector("input.fillbrush")){let e=this._getDomElement("fillbrush");e.onchange=()=>this.getRootNode().host.setFillBrush(e.value)}if(this.shadowRoot.querySelector("input.strokethickness")){let e=this._getDomElement("strokethickness");e.onchange=()=>this.getRootNode().host.setStrokeThickness(e.value)}}};customElements.define("node-projects-designer-draw-tool-popup",Ti)});var Zn,Sl=u(()=>{"use strict";We();$();wl();Zn=class{provideButton(e){let t=new se(e,{DrawLine:{icon:v+"images/tools/DrawLineTool.svg"},DrawPath:{icon:v+"images/tools/DrawPathTool.svg"},DrawRect:{icon:v+"images/tools/DrawRectTool.svg"},DrawEllipsis:{icon:v+"images/tools/DrawEllipTool.svg"},PickColor:{icon:v+"images/tools/ColorPickerTool.svg"}});return t.popup=Ti,t}}});var $n,Cl=u(()=>{"use strict";We();$();$n=class{provideButton(e){return new se(e,{Text:{icon:v+"images/tools/TextTool.svg"}})}}});import{html as Mp}from"@node-projects/base-custom-webcomponent";var Mi,El=u(()=>{"use strict";$();ki();Mi=class extends ut{static template=Mp`
|
|
456
456
|
<div class="container">
|
|
457
457
|
<header><h2 id="title" style="margin: 0;">Selection</h2></header>
|
|
458
458
|
<main id="content-area">
|
|
@@ -461,9 +461,9 @@ var vd=Object.defineProperty;var u=(s,e)=>()=>(s&&(e=s(s=0)),e);var xd=(s,e)=>{f
|
|
|
461
461
|
<div class="tool" data-command="setTool" data-command-parameter="MagicWandSelector" title="Magic Wand Selector" style="background-image: url('${v}images/tools/MagicWandTool.svg');"></div>
|
|
462
462
|
</div>
|
|
463
463
|
</main>
|
|
464
|
-
</div>`};customElements.define("node-projects-designer-selection-tool-popup",Mi)});var qn,Al=u(()=>{"use strict";We();$();El();qn=class{provideButton(e){let t=new se(e,{RectangleSelector:{icon:v+"images/tools/SelectRectTool.svg"},MagicWandSelector:{icon:v+"images/tools/MagicWandTool.svg"}});return t.popup=Mi,t}}});var Qn,Pl=u(()=>{"use strict";J();X();Qn=class extends N{_rect;constructor(e,t,i){super(e,t,i)}extend(){this.refresh()}refresh(){let e=this.extendedItem.element.getBoxQuads({relativeTo:this.designerCanvas.canvas})[0];this._rect=this._drawTransformedRect(e,"svg-rect-enter-container",this._rect,
|
|
464
|
+
</div>`};customElements.define("node-projects-designer-selection-tool-popup",Mi)});var qn,Al=u(()=>{"use strict";We();$();El();qn=class{provideButton(e){let t=new se(e,{RectangleSelector:{icon:v+"images/tools/SelectRectTool.svg"},MagicWandSelector:{icon:v+"images/tools/MagicWandTool.svg"}});return t.popup=Mi,t}}});var Qn,Pl=u(()=>{"use strict";J();X();Qn=class extends N{_rect;constructor(e,t,i){super(e,t,i)}extend(){this.refresh()}refresh(){let e=this.extendedItem.element.getBoxQuads({relativeTo:this.designerCanvas.canvas})[0];this._rect=this._drawTransformedRect(e,"svg-rect-enter-container",this._rect,I.Background)}dispose(){this._removeAllOverlays()}}});import{css as Op}from"@node-projects/base-custom-webcomponent";var Oi,Il=u(()=>{"use strict";Pl();Oi=class{shouldExtend(e,t,i){return!0}getExtension(e,t,i){return new Qn(e,t,i)}static style=Op`
|
|
465
465
|
.svg-rect-enter-container { stroke: none; fill: #aa00ff2e; }
|
|
466
|
-
`}});var Jn,Il=u(()=>{"use strict";ye();re();Jn=class extends Y{name="attached";getRefreshMode(e){return G.full}isHandledElement(e){return e.serviceContainer.forSomeServicesTillResult("attachedPropertyService",t=>t.isHandledElement(e))}async getProperties(e){let t=[];if(e.serviceContainer.attachedPropertyServices)for(let i of e.serviceContainer.attachedPropertyServices)i.isHandledElement(e)&&t.push(...await i.getProperties(e));return t}}});var Ni,Dl=u(()=>{"use strict";re();Xe();ke();ie();ge();ye();Ni=class extends Y{name="attributes";getRefreshMode(e){return G.fullOnValueChange}isHandledElement(e){return!e.isRootItem}async getProperty(e,t){return{name:t,type:"string",service:this,propertyType:y.attribute}}async getProperties(e){if(e){let t=[];for(let i of e.attributes())t.push({name:i[0],renamable:!0,type:"string",service:this,propertyType:y.attribute});return t.push({name:"",type:"addNew",service:this,propertyType:y.complex}),t}return null}async setValue(e,t,i){let r=e[0].openGroup("properties changed");for(let n of e)n.setAttribute(t.name,i);r.commit()}getPropertyTarget(e,t){return M.attribute}clearValue(e,t){for(let i of e)i.removeAttribute(t.name),i.serviceContainer.forSomeServicesTillResult("bindingService",r=>r.clearBinding(i,t.name,this.getPropertyTarget(i,t)))}isSet(e,t){let i=!0,r=!1;if(e!=null&&e.length!==0){if(e.length==1&&typeof e[0].getAttribute(t.name)=="object")return V.bound;let n=R.dashToCamelCase(t.name),o=t.name;e.forEach(l=>{let c=l.hasAttribute(o);i=i&&c,r=r||c});let a=Y.getOrBuildCachedBindings(e[0]);if(a&&a.find(l=>l.target==M.attribute&&l.targetName==n))return V.bound}else return V.none;return i?V.all:r?V.some:V.none}getValue(e,t){if(e!=null&&e.length!==0){let i=t.name,r=e[0].getAttribute(i);return typeof r=="object"?r.rawValue:r}return null}getBinding(e,t){return Y.getOrBuildCachedBindings(e[0]).find(r=>(r.target==M.property||r.target==M.explicitProperty||r.target==M.attribute)&&r.targetName==t.name)}getUnsetValue(e,t){return t.defaultValue}}});var tt,Tl=u(()=>{tt={accentColor:{type:"color"},additiveSymbols:{},alignContent:{type:"list",values:["start","end","flex-start","flex-end","center","normal","baseline","first baseline","last baseline","space-between","space-around","space-evenly","stretch","safe","unsafe"]},alignItems:{type:"list",values:["start","end","flex-start","flex-end","self-start","self-end","center","normal","baseline","first baseline","last baseline","space-between","space-around","space-evenly","stretch","safe","unsafe"]},alignSelf:{type:"list",values:["start","end","flex-start","flex-end","self-start","self-end","center","normal","baseline","first baseline","last baseline","space-between","space-around","space-evenly","stretch","safe","unsafe"]},alignmentBaseline:{},all:{},animation:{},animationDelay:{},animationDirection:{},animationDuration:{},animationFillMode:{},animationIterationCount:{},animationName:{},animationPlayState:{},animationTimingFunction:{},appRegion:{},appearance:{},ascentOverride:{},aspectRatio:{},backdropFilter:{},backfaceVisibility:{},background:{},backgroundAttachment:{},backgroundBlendMode:{},backgroundClip:{},backgroundColor:{type:"color"},backgroundImage:{},backgroundOrigin:{},backgroundPosition:{},backgroundPositionX:{},backgroundPositionY:{},backgroundRepeat:{},backgroundRepeatX:{},backgroundRepeatY:{},backgroundSize:{},basePalette:{},baselineShift:{},blockSize:{},border:{},borderBlock:{},borderBlockColor:{type:"color"},borderBlockEnd:{},borderBlockEndColor:{type:"color"},borderBlockEndStyle:{},borderBlockEndWidth:{},borderBlockStart:{},borderBlockStartColor:{type:"color"},borderBlockStartStyle:{},borderBlockStartWidth:{},borderBlockStyle:{},borderBlockWidth:{},borderBottom:{},borderBottomColor:{type:"color"},borderBottomLeftRadius:{},borderBottomRightRadius:{},borderBottomStyle:{},borderBottomWidth:{},borderCollapse:{},borderColor:{type:"color"},borderEndEndRadius:{},borderEndStartRadius:{},borderImage:{},borderImageOutset:{},borderImageRepeat:{},borderImageSlice:{},borderImageSource:{},borderImageWidth:{},borderInline:{},borderInlineColor:{type:"color"},borderInlineEnd:{},borderInlineEndColor:{type:"color"},borderInlineEndStyle:{},borderInlineEndWidth:{},borderInlineStart:{},borderInlineStartColor:{type:"color"},borderInlineStartStyle:{},borderInlineStartWidth:{},borderInlineStyle:{},borderInlineWidth:{},borderLeft:{},borderLeftColor:{type:"color"},borderLeftStyle:{},borderLeftWidth:{},borderRadius:{},borderRight:{},borderRightColor:{type:"color"},borderRightStyle:{},borderRightWidth:{},borderSpacing:{},borderStartEndRadius:{},borderStartStartRadius:{},borderStyle:{},borderTop:{},borderTopColor:{type:"color"},borderTopLeftRadius:{},borderTopRightRadius:{},borderTopStyle:{},borderTopWidth:{},borderWidth:{type:"length",values:["medium","thin","thick"]},bottom:{},boxShadow:{},boxSizing:{type:"list",values:["border-box","content-box"]},breakAfter:{},breakBefore:{},breakInside:{},bufferedRendering:{},captionSide:{},caretColor:{type:"color"},clear:{},clip:{},clipPath:{},clipRule:{},color:{type:"color"},colorInterpolation:{},colorInterpolationFilters:{},colorRendering:{},colorScheme:{},columnCount:{},columnFill:{},columnGap:{type:"length"},columnRule:{},columnRuleColor:{type:"color"},columnRuleStyle:{},columnRuleWidth:{},columnSpan:{},columnWidth:{},columns:{},contain:{},containIntrinsicBlockSize:{},containIntrinsicHeight:{},containIntrinsicInlineSize:{},containIntrinsicSize:{},containIntrinsicWidth:{},container:{},containerName:{},containerType:{},content:{},contentVisibility:{},counterIncrement:{},counterReset:{},counterSet:{},cursor:{},cx:{},cy:{},d:{},descentOverride:{},direction:{},display:{type:"list",values:["block","inline","inline-block","flex","inline-flex","contents","grid","inline-grid","inline-table","list-item","run-in","table","table-caption","table-column-group","table-header-group","table-footer-group","tabl-row-group","table-cell","table-column","table-row","inherit","initial","none"]},dominantBaseline:{},emptyCells:{},fallback:{},fill:{type:"color"},fillOpacity:{},fillRule:{},filter:{},flex:{},flexBasis:{},flexDirection:{type:"list",values:["row","column","row-reverse","column-reverse"]},flexFlow:{},flexGrow:{type:"number"},flexShrink:{type:"number"},flexWrap:{type:"list",values:["nowrap","wrap","wrap-reverse"]},fieldSizing:{},float:{type:"list",values:["none","left","right","inline-start","inline-end"]},floodColor:{type:"color"},floodOpacity:{},font:{},fontDisplay:{},fontFamily:{type:"font"},fontFeatureSettings:{},fontKerning:{},fontOpticalSizing:{},fontPalette:{},fontSize:{},fontSizeAdjust:{},fontStretch:{},fontStyle:{},fontSynthesis:{},fontSynthesisSmallCaps:{},fontSynthesisStyle:{},fontSynthesisWeight:{},fontVariant:{},fontVariantCaps:{},fontVariantEastAsian:{},fontVariantLigatures:{},fontVariantNumeric:{},fontVariationSettings:{},fontWeight:{},forcedColorAdjust:{},gap:{type:"length"},grid:{},gridArea:{},gridAutoColumns:{},gridAutoFlow:{},gridAutoRows:{},gridColumn:{},gridColumnEnd:{},gridColumnGap:{type:"length"},gridColumnStart:{},gridGap:{type:"length"},gridRow:{},gridRowEnd:{},gridRowGap:{type:"length"},gridRowStart:{},gridTemplate:{},gridTemplateAreas:{},gridTemplateColumns:{},gridTemplateRows:{},height:{},hyphenateCharacter:{},hyphens:{},imageOrientation:{},imageRendering:{},inherits:{},initialValue:{},inlineSize:{},inset:{},insetBlock:{},insetBlockEnd:{},insetBlockStart:{},insetInline:{},insetInlineEnd:{},insetInlineStart:{},isolation:{},justifyContent:{type:"list",values:["start","end","flex-start","flex-end","self-start","self-end","center","normal","baseline","first baseline","last baseline","space-between","space-around","space-evenly","stretch","safe","unsafe"]},justifyItems:{type:"list",values:["start","end","flex-start","flex-end","center","normal","baseline","first baseline","last baseline","space-between","space-around","space-evenly","stretch","safe","unsafe"]},justifySelf:{type:"list",values:["start","end","flex-start","flex-end","self-start","self-end","center","normal","baseline","first baseline","last baseline","space-between","space-around","space-evenly","stretch","safe","unsafe"]},left:{},letterSpacing:{},lightingColor:{type:"color"},lineBreak:{},lineGapOverride:{},lineHeight:{},listStyle:{},listStyleImage:{},listStylePosition:{},listStyleType:{},margin:{},marginBlock:{},marginBlockEnd:{type:"length"},marginBlockStart:{type:"length"},marginBottom:{type:"length"},marginInline:{},marginInlineEnd:{type:"length"},marginInlineStart:{type:"length"},marginLeft:{type:"length"},marginRight:{type:"length"},marginTop:{type:"length"},marker:{},markerEnd:{},markerMid:{},markerStart:{},mask:{},maskType:{},maxBlockSize:{},maxHeight:{},maxInlineSize:{},maxWidth:{},minBlockSize:{},minHeight:{},minInlineSize:{},minWidth:{},mixBlendMode:{},negative:{},objectFit:{},objectPosition:{type:"position"},objectViewBox:{},offset:{},offsetDistance:{},offsetPath:{},offsetRotate:{},opacity:{type:"number"},order:{},orphans:{},outline:{},outlineColor:{type:"color"},outlineOffset:{},outlineStyle:{},outlineWidth:{},overflow:{type:"list",values:["visible","hidden","clip","scroll","auto"]},overflowAnchor:{},overflowClipMargin:{},overflowWrap:{},overflowX:{type:"list",values:["visible","hidden","clip","scroll","auto"]},overflowY:{type:"list",values:["visible","hidden","clip","scroll","auto"]},overrideColors:{},overscrollBehavior:{},overscrollBehaviorBlock:{},overscrollBehaviorInline:{},overscrollBehaviorX:{},overscrollBehaviorY:{},pad:{},padding:{},paddingBlock:{},paddingBlockEnd:{},paddingBlockStart:{},paddingBottom:{},paddingInline:{},paddingInlineEnd:{},paddingInlineStart:{},paddingLeft:{},paddingRight:{},paddingTop:{},page:{},pageBreakAfter:{},pageBreakBefore:{},pageBreakInside:{},pageOrientation:{},paintOrder:{},perspective:{},perspectiveOrigin:{},placeContent:{},placeItems:{},placeSelf:{},pointerEvents:{},position:{type:"list",values:["static","relative","absolute","fixed","anchor"]},prefix:{},quotes:{},r:{},range:{},resize:{},right:{},rotate:{},rowGap:{type:"length"},rubyAlign:{},rubyPosition:{},rx:{},ry:{},scale:{},scrollbarColor:{},scrollbarGutter:{type:"list",values:["auto","stable","stable both-edges"]},scrollbarWidth:{},scrollBehavior:{},scrollMargin:{},scrollMarginBlock:{},scrollMarginBlockEnd:{},scrollMarginBlockStart:{},scrollMarginBottom:{},scrollMarginInline:{},scrollMarginInlineEnd:{},scrollMarginInlineStart:{},scrollMarginLeft:{},scrollMarginRight:{},scrollMarginTop:{},scrollPadding:{},scrollPaddingBlock:{},scrollPaddingBlockEnd:{},scrollPaddingBlockStart:{},scrollPaddingBottom:{},scrollPaddingInline:{},scrollPaddingInlineEnd:{},scrollPaddingInlineStart:{},scrollPaddingLeft:{},scrollPaddingRight:{},scrollPaddingTop:{},scrollSnapAlign:{},scrollSnapStop:{},scrollSnapType:{},shapeImageThreshold:{},shapeMargin:{},shapeOutside:{},shapeRendering:{type:"list",values:["auto","optimizeSpeed","crispEdges","geometricPrecision"]},size:{},sizeAdjust:{},speak:{},speakAs:{},src:{},stopColor:{type:"color"},stopOpacity:{},stroke:{type:"color"},strokeDasharray:{},strokeDashoffset:{},strokeLinecap:{},strokeLinejoin:{},strokeMiterlimit:{},strokeOpacity:{},strokeWidth:{type:"number"},suffix:{},symbols:{},syntax:{},system:{},tabSize:{},tableLayout:{},textAlign:{type:"list",values:["start","end","left","right","center","justify","justify-all","match-parent"]},textAlignLast:{},textAnchor:{},textCombineUpright:{},textDecoration:{},textDecorationColor:{type:"color"},textDecorationLine:{},textDecorationSkipInk:{},textDecorationStyle:{},textDecorationThickness:{},textEmphasis:{},textEmphasisColor:{type:"color"},textEmphasisPosition:{},textEmphasisStyle:{},textIndent:{},textOrientation:{},textOverflow:{},textRendering:{},textShadow:{},textSizeAdjust:{},textTransform:{},textUnderlineOffset:{},textUnderlinePosition:{},textWrap:{},textWrapMode:{type:"list",values:["wrap","nowrap"]},textWrapStyle:{type:"list",values:["auto","balance","pretty","stable"]},top:{},touchAction:{},transform:{},transformBox:{},transformOrigin:{},transformStyle:{},transition:{},transitionDelay:{},transitionBehavior:{},transitionDuration:{},transitionProperty:{},transitionTimingFunction:{},translate:{},unicodeBidi:{},unicodeRange:{},userSelect:{},vectorEffect:{},verticalAlign:{},visibility:{},whiteSpace:{},widows:{},width:{},willChange:{},wordBreak:{},wordSpacing:{},wordWrap:{},writingMode:{},x:{},y:{},zIndex:{},zoom:{}}});var es,Ml=u(()=>{"use strict";ve();Zt();es=class extends Q{_root;constructor(e){super(e),this._root=document.createElement("div"),this._root.style.display="grid",this._root.style.padding="4px 0px",this._root.style.boxSizing="border-box",this._root.style.minHeight="50px",this.element=this._root}refreshValue(e,t){if(this._root.innerHTML="",this.designItems!=null&&this.designItems.length){let i=this.designItems[0].element.parentElement;if(i){let r=getComputedStyle(i),n=Xt(this.designItems[0].element),o=getComputedStyle(this.designItems[0].element),a=r.gridTemplateColumns.split(" ").length,l=r.gridTemplateRows.split(" ").length;this._root.style.gridTemplateColumns="repeat("+a+", 1fr)",this._root.style.gridTemplateRows="repeat("+l+", 1fr)";let c=parseInt(o.gridRowStart),h=c+n.rowSpan,d=parseInt(o.gridColumnStart),p=d+n.colSpan;for(let g=1;g<=l;g++)for(let m=1;m<=a;m++){let f=document.createElement("button");f.style.minHeight="10px",f.onclick=()=>{let b=Xt(this.designItems[0].element),_=this.designItems[0].openGroup("Change grid row/column");this.designItems[0].setStyle("grid-row",g+" / "+(g+b.rowSpan)),this.designItems[0].setStyle("grid-column",m+" / "+(m+b.colSpan)),_.commit()},g>=c&&g<h&&m>=d&&m<p&&(f.style.backgroundColor="coral"),this._root.appendChild(f)}}}}}});import{BaseCustomWebComponentConstructorAppend as Lp,css as Rp,html as Fp}from"@node-projects/base-custom-webcomponent";var Li,kh=u(()=>{"use strict";Li=class extends Lp{static style=Rp`
|
|
466
|
+
`}});var Jn,kl=u(()=>{"use strict";ye();re();Jn=class extends Y{name="attached";getRefreshMode(e){return G.full}isHandledElement(e){return e.serviceContainer.forSomeServicesTillResult("attachedPropertyService",t=>t.isHandledElement(e))}async getProperties(e){let t=[];if(e.serviceContainer.attachedPropertyServices)for(let i of e.serviceContainer.attachedPropertyServices)i.isHandledElement(e)&&t.push(...await i.getProperties(e));return t}}});var Ni,Dl=u(()=>{"use strict";re();Xe();Ie();ie();ue();ye();Ni=class extends Y{name="attributes";getRefreshMode(e){return G.fullOnValueChange}isHandledElement(e){return!e.isRootItem}async getProperty(e,t){return{name:t,type:"string",service:this,propertyType:y.attribute}}async getProperties(e){if(e){let t=[];for(let i of e.attributes())t.push({name:i[0],renamable:!0,type:"string",service:this,propertyType:y.attribute});return t.push({name:"",type:"addNew",service:this,propertyType:y.complex}),t}return null}async setValue(e,t,i){let r=e[0].openGroup("properties changed");for(let n of e)n.setAttribute(t.name,i);r.commit()}getPropertyTarget(e,t){return M.attribute}clearValue(e,t){for(let i of e)i.removeAttribute(t.name),i.serviceContainer.forSomeServicesTillResult("bindingService",r=>r.clearBinding(i,t.name,this.getPropertyTarget(i,t)))}isSet(e,t){let i=!0,r=!1;if(e!=null&&e.length!==0){if(e.length==1&&typeof e[0].getAttribute(t.name)=="object")return V.bound;let n=L.dashToCamelCase(t.name),o=t.name;e.forEach(l=>{let c=l.hasAttribute(o);i=i&&c,r=r||c});let a=Y.getOrBuildCachedBindings(e[0]);if(a&&a.find(l=>l.target==M.attribute&&l.targetName==n))return V.bound}else return V.none;return i?V.all:r?V.some:V.none}getValue(e,t){if(e!=null&&e.length!==0){let i=t.name,r=e[0].getAttribute(i);return typeof r=="object"?r.rawValue:r}return null}getBinding(e,t){return Y.getOrBuildCachedBindings(e[0]).find(r=>(r.target==M.property||r.target==M.explicitProperty||r.target==M.attribute)&&r.targetName==t.name)}getUnsetValue(e,t){return t.defaultValue}}});var tt,Tl=u(()=>{tt={accentColor:{type:"color"},additiveSymbols:{},alignContent:{type:"list",values:["start","end","flex-start","flex-end","center","normal","baseline","first baseline","last baseline","space-between","space-around","space-evenly","stretch","safe","unsafe"]},alignItems:{type:"list",values:["start","end","flex-start","flex-end","self-start","self-end","center","normal","baseline","first baseline","last baseline","space-between","space-around","space-evenly","stretch","safe","unsafe"]},alignSelf:{type:"list",values:["start","end","flex-start","flex-end","self-start","self-end","center","normal","baseline","first baseline","last baseline","space-between","space-around","space-evenly","stretch","safe","unsafe"]},alignmentBaseline:{},all:{},animation:{},animationDelay:{},animationDirection:{},animationDuration:{},animationFillMode:{},animationIterationCount:{},animationName:{},animationPlayState:{},animationTimingFunction:{},appRegion:{},appearance:{},ascentOverride:{},aspectRatio:{},backdropFilter:{},backfaceVisibility:{},background:{},backgroundAttachment:{},backgroundBlendMode:{},backgroundClip:{},backgroundColor:{type:"color"},backgroundImage:{},backgroundOrigin:{},backgroundPosition:{},backgroundPositionX:{},backgroundPositionY:{},backgroundRepeat:{},backgroundRepeatX:{},backgroundRepeatY:{},backgroundSize:{},basePalette:{},baselineShift:{},blockSize:{},border:{},borderBlock:{},borderBlockColor:{type:"color"},borderBlockEnd:{},borderBlockEndColor:{type:"color"},borderBlockEndStyle:{},borderBlockEndWidth:{},borderBlockStart:{},borderBlockStartColor:{type:"color"},borderBlockStartStyle:{},borderBlockStartWidth:{},borderBlockStyle:{},borderBlockWidth:{},borderBottom:{},borderBottomColor:{type:"color"},borderBottomLeftRadius:{},borderBottomRightRadius:{},borderBottomStyle:{},borderBottomWidth:{},borderCollapse:{},borderColor:{type:"color"},borderEndEndRadius:{},borderEndStartRadius:{},borderImage:{},borderImageOutset:{},borderImageRepeat:{},borderImageSlice:{},borderImageSource:{},borderImageWidth:{},borderInline:{},borderInlineColor:{type:"color"},borderInlineEnd:{},borderInlineEndColor:{type:"color"},borderInlineEndStyle:{},borderInlineEndWidth:{},borderInlineStart:{},borderInlineStartColor:{type:"color"},borderInlineStartStyle:{},borderInlineStartWidth:{},borderInlineStyle:{},borderInlineWidth:{},borderLeft:{},borderLeftColor:{type:"color"},borderLeftStyle:{},borderLeftWidth:{},borderRadius:{},borderRight:{},borderRightColor:{type:"color"},borderRightStyle:{},borderRightWidth:{},borderSpacing:{},borderStartEndRadius:{},borderStartStartRadius:{},borderStyle:{},borderTop:{},borderTopColor:{type:"color"},borderTopLeftRadius:{},borderTopRightRadius:{},borderTopStyle:{},borderTopWidth:{},borderWidth:{type:"length",values:["medium","thin","thick"]},bottom:{},boxShadow:{},boxSizing:{type:"list",values:["border-box","content-box"]},breakAfter:{},breakBefore:{},breakInside:{},bufferedRendering:{},captionSide:{},caretColor:{type:"color"},clear:{},clip:{},clipPath:{},clipRule:{},color:{type:"color"},colorInterpolation:{},colorInterpolationFilters:{},colorRendering:{},colorScheme:{},columnCount:{},columnFill:{},columnGap:{type:"length"},columnRule:{},columnRuleColor:{type:"color"},columnRuleStyle:{},columnRuleWidth:{},columnSpan:{},columnWidth:{},columns:{},contain:{},containIntrinsicBlockSize:{},containIntrinsicHeight:{},containIntrinsicInlineSize:{},containIntrinsicSize:{},containIntrinsicWidth:{},container:{},containerName:{},containerType:{},content:{},contentVisibility:{},counterIncrement:{},counterReset:{},counterSet:{},cursor:{},cx:{},cy:{},d:{},descentOverride:{},direction:{},display:{type:"list",values:["block","inline","inline-block","flex","inline-flex","contents","grid","inline-grid","inline-table","list-item","run-in","table","table-caption","table-column-group","table-header-group","table-footer-group","tabl-row-group","table-cell","table-column","table-row","inherit","initial","none"]},dominantBaseline:{},emptyCells:{},fallback:{},fill:{type:"color"},fillOpacity:{},fillRule:{},filter:{},flex:{},flexBasis:{},flexDirection:{type:"list",values:["row","column","row-reverse","column-reverse"]},flexFlow:{},flexGrow:{type:"number"},flexShrink:{type:"number"},flexWrap:{type:"list",values:["nowrap","wrap","wrap-reverse"]},fieldSizing:{},float:{type:"list",values:["none","left","right","inline-start","inline-end"]},floodColor:{type:"color"},floodOpacity:{},font:{},fontDisplay:{},fontFamily:{type:"font"},fontFeatureSettings:{},fontKerning:{},fontOpticalSizing:{},fontPalette:{},fontSize:{},fontSizeAdjust:{},fontStretch:{},fontStyle:{},fontSynthesis:{},fontSynthesisSmallCaps:{},fontSynthesisStyle:{},fontSynthesisWeight:{},fontVariant:{},fontVariantCaps:{},fontVariantEastAsian:{},fontVariantLigatures:{},fontVariantNumeric:{},fontVariationSettings:{},fontWeight:{},forcedColorAdjust:{},gap:{type:"length"},grid:{},gridArea:{},gridAutoColumns:{},gridAutoFlow:{},gridAutoRows:{},gridColumn:{},gridColumnEnd:{},gridColumnGap:{type:"length"},gridColumnStart:{},gridGap:{type:"length"},gridRow:{},gridRowEnd:{},gridRowGap:{type:"length"},gridRowStart:{},gridTemplate:{},gridTemplateAreas:{},gridTemplateColumns:{},gridTemplateRows:{},height:{},hyphenateCharacter:{},hyphens:{},imageOrientation:{},imageRendering:{},inherits:{},initialValue:{},inlineSize:{},inset:{},insetBlock:{},insetBlockEnd:{},insetBlockStart:{},insetInline:{},insetInlineEnd:{},insetInlineStart:{},isolation:{},justifyContent:{type:"list",values:["start","end","flex-start","flex-end","self-start","self-end","center","normal","baseline","first baseline","last baseline","space-between","space-around","space-evenly","stretch","safe","unsafe"]},justifyItems:{type:"list",values:["start","end","flex-start","flex-end","center","normal","baseline","first baseline","last baseline","space-between","space-around","space-evenly","stretch","safe","unsafe"]},justifySelf:{type:"list",values:["start","end","flex-start","flex-end","self-start","self-end","center","normal","baseline","first baseline","last baseline","space-between","space-around","space-evenly","stretch","safe","unsafe"]},left:{},letterSpacing:{},lightingColor:{type:"color"},lineBreak:{},lineGapOverride:{},lineHeight:{},listStyle:{},listStyleImage:{},listStylePosition:{},listStyleType:{},margin:{},marginBlock:{},marginBlockEnd:{type:"length"},marginBlockStart:{type:"length"},marginBottom:{type:"length"},marginInline:{},marginInlineEnd:{type:"length"},marginInlineStart:{type:"length"},marginLeft:{type:"length"},marginRight:{type:"length"},marginTop:{type:"length"},marker:{},markerEnd:{},markerMid:{},markerStart:{},mask:{},maskType:{},maxBlockSize:{},maxHeight:{},maxInlineSize:{},maxWidth:{},minBlockSize:{},minHeight:{},minInlineSize:{},minWidth:{},mixBlendMode:{},negative:{},objectFit:{},objectPosition:{type:"position"},objectViewBox:{},offset:{},offsetDistance:{},offsetPath:{},offsetRotate:{},opacity:{type:"number"},order:{},orphans:{},outline:{},outlineColor:{type:"color"},outlineOffset:{},outlineStyle:{},outlineWidth:{},overflow:{type:"list",values:["visible","hidden","clip","scroll","auto"]},overflowAnchor:{},overflowClipMargin:{},overflowWrap:{},overflowX:{type:"list",values:["visible","hidden","clip","scroll","auto"]},overflowY:{type:"list",values:["visible","hidden","clip","scroll","auto"]},overrideColors:{},overscrollBehavior:{},overscrollBehaviorBlock:{},overscrollBehaviorInline:{},overscrollBehaviorX:{},overscrollBehaviorY:{},pad:{},padding:{},paddingBlock:{},paddingBlockEnd:{},paddingBlockStart:{},paddingBottom:{},paddingInline:{},paddingInlineEnd:{},paddingInlineStart:{},paddingLeft:{},paddingRight:{},paddingTop:{},page:{},pageBreakAfter:{},pageBreakBefore:{},pageBreakInside:{},pageOrientation:{},paintOrder:{},perspective:{},perspectiveOrigin:{},placeContent:{},placeItems:{},placeSelf:{},pointerEvents:{},position:{type:"list",values:["static","relative","absolute","fixed","anchor"]},prefix:{},quotes:{},r:{},range:{},resize:{},right:{},rotate:{},rowGap:{type:"length"},rubyAlign:{},rubyPosition:{},rx:{},ry:{},scale:{},scrollbarColor:{},scrollbarGutter:{type:"list",values:["auto","stable","stable both-edges"]},scrollbarWidth:{},scrollBehavior:{},scrollMargin:{},scrollMarginBlock:{},scrollMarginBlockEnd:{},scrollMarginBlockStart:{},scrollMarginBottom:{},scrollMarginInline:{},scrollMarginInlineEnd:{},scrollMarginInlineStart:{},scrollMarginLeft:{},scrollMarginRight:{},scrollMarginTop:{},scrollPadding:{},scrollPaddingBlock:{},scrollPaddingBlockEnd:{},scrollPaddingBlockStart:{},scrollPaddingBottom:{},scrollPaddingInline:{},scrollPaddingInlineEnd:{},scrollPaddingInlineStart:{},scrollPaddingLeft:{},scrollPaddingRight:{},scrollPaddingTop:{},scrollSnapAlign:{},scrollSnapStop:{},scrollSnapType:{},shapeImageThreshold:{},shapeMargin:{},shapeOutside:{},shapeRendering:{type:"list",values:["auto","optimizeSpeed","crispEdges","geometricPrecision"]},size:{},sizeAdjust:{},speak:{},speakAs:{},src:{},stopColor:{type:"color"},stopOpacity:{},stroke:{type:"color"},strokeDasharray:{},strokeDashoffset:{},strokeLinecap:{},strokeLinejoin:{},strokeMiterlimit:{},strokeOpacity:{},strokeWidth:{type:"number"},suffix:{},symbols:{},syntax:{},system:{},tabSize:{},tableLayout:{},textAlign:{type:"list",values:["start","end","left","right","center","justify","justify-all","match-parent"]},textAlignLast:{},textAnchor:{},textCombineUpright:{},textDecoration:{},textDecorationColor:{type:"color"},textDecorationLine:{},textDecorationSkipInk:{},textDecorationStyle:{},textDecorationThickness:{},textEmphasis:{},textEmphasisColor:{type:"color"},textEmphasisPosition:{},textEmphasisStyle:{},textIndent:{},textOrientation:{},textOverflow:{},textRendering:{},textShadow:{},textSizeAdjust:{},textTransform:{},textUnderlineOffset:{},textUnderlinePosition:{},textWrap:{},textWrapMode:{type:"list",values:["wrap","nowrap"]},textWrapStyle:{type:"list",values:["auto","balance","pretty","stable"]},top:{},touchAction:{},transform:{},transformBox:{},transformOrigin:{},transformStyle:{},transition:{},transitionDelay:{},transitionBehavior:{},transitionDuration:{},transitionProperty:{},transitionTimingFunction:{},translate:{},unicodeBidi:{},unicodeRange:{},userSelect:{},vectorEffect:{},verticalAlign:{},visibility:{},whiteSpace:{},widows:{},width:{},willChange:{},wordBreak:{},wordSpacing:{},wordWrap:{},writingMode:{},x:{},y:{},zIndex:{},zoom:{}}});var es,Ml=u(()=>{"use strict";ve();$t();es=class extends Q{_root;constructor(e){super(e),this._root=document.createElement("div"),this._root.style.display="grid",this._root.style.padding="4px 0px",this._root.style.boxSizing="border-box",this._root.style.minHeight="50px",this.element=this._root}refreshValue(e,t){if(this._root.innerHTML="",this.designItems!=null&&this.designItems.length){let i=this.designItems[0].element.parentElement;if(i){let r=getComputedStyle(i),n=Zt(this.designItems[0].element),o=getComputedStyle(this.designItems[0].element),a=r.gridTemplateColumns.split(" ").length,l=r.gridTemplateRows.split(" ").length;this._root.style.gridTemplateColumns="repeat("+a+", 1fr)",this._root.style.gridTemplateRows="repeat("+l+", 1fr)";let c=parseInt(o.gridRowStart),h=c+n.rowSpan,d=parseInt(o.gridColumnStart),p=d+n.colSpan;for(let g=1;g<=l;g++)for(let m=1;m<=a;m++){let f=document.createElement("button");f.style.minHeight="10px",f.onclick=()=>{let b=Zt(this.designItems[0].element),_=this.designItems[0].openGroup("Change grid row/column");this.designItems[0].setStyle("grid-row",g+" / "+(g+b.rowSpan)),this.designItems[0].setStyle("grid-column",m+" / "+(m+b.colSpan)),_.commit()},g>=c&&g<h&&m>=d&&m<p&&(f.style.backgroundColor="coral"),this._root.appendChild(f)}}}}}});import{BaseCustomWebComponentConstructorAppend as Lp,css as Rp,html as Fp}from"@node-projects/base-custom-webcomponent";var Li,Ih=u(()=>{"use strict";Li=class extends Lp{static style=Rp`
|
|
467
467
|
:host {
|
|
468
468
|
justify-content: center;
|
|
469
469
|
display: flex;
|
|
@@ -557,16 +557,16 @@ span {
|
|
|
557
557
|
x
|
|
558
558
|
<div data-style="element" @keydown="onKeyDown" @dblclick="onDoubleClick" class="right">-</div>
|
|
559
559
|
</div><div data-style="padding" @keydown="onKeyDown" @dblclick="onDoubleClick" class="right">-</div><br><div data-style="padding" @keydown="onKeyDown" @dblclick="onDoubleClick" class="bottom">-</div></div><div data-style="border" @keydown="onKeyDown" @dblclick="onDoubleClick" class="right">-</div><br><div data-style="border" @keydown="onKeyDown" @dblclick="onDoubleClick" class="bottom">-</div></div><div data-style="margin" @keydown="onKeyDown" @dblclick="onDoubleClick" class="right">-</div><br><div data-style="margin" @keydown="onKeyDown" @dblclick="onDoubleClick" class="bottom">-</div></div><div data-style="position" @keydown="onKeyDown" @dblclick="onDoubleClick" class="right">-</div><br><div data-style="position" @keydown="onKeyDown" @dblclick="onDoubleClick" class="bottom">-</div></div>
|
|
560
|
-
`;property;unsetValue;_borderDiv;_elementDiv;constructor(){super(),this._restoreCachedInititalValues(),this._borderDiv=this._getDomElement("border"),this._elementDiv=this._getDomElement("element")}ready(){this._parseAttributesToProperties(),this._assignEvents()}onDoubleClick(e){let t=e.target;t.setAttribute("contentEditable","");let i=document.createRange(),r=window.getSelection();i.setStart(t.firstChild,0),i.setEndAfter(t.lastChild),r.removeAllRanges(),r.addRange(i)}onKeyDown(e){let t=e.target;if(e.key=="Enter"){t.removeAttribute("contentEditable");let i=t.innerHTML,r=new CustomEvent("value-changed",{detail:{style:t.dataset.style,value:i}});this.dispatchEvent(r)}}refresh(e){this._elementDiv.classList.remove("box"),this._borderDiv.classList.remove("box"),e&&(getComputedStyle(e).boxSizing=="content-box"?this._elementDiv.classList.add("box"):this._borderDiv.classList.add("box"))}};customElements.define("node-projects-metrics-editor",Li)});var ts,Ol=u(()=>{"use strict";ve();kh();ts=class extends Q{constructor(e){super(e);let t=new Li;t.property=e.name,this.element=t}refreshValue(e,t){this.element.refresh(this.designItems?.[0]?.element)}}});var qt,is=u(()=>{"use strict";Lt();re();qt=class extends Ie{getRefreshMode(e){return G.none}constructor(){super(!1)}}});var Se,rs=u(()=>{"use strict";ke();ie();re();ge();Ml();Ol();Tl();is();Se=class extends qt{getRefreshMode(e){return G.none}layout={common:["display","color","background-color","box-sizing","border","box-shadow","opacity","position","align-content"],font:["font-family","font-size","font-weight"],layout:["inset","margin","border","padding","overflow","metrics"]};grid=["display","position","grid-template-columns","grid-template-rows","gap","column-gap","row-gap","align-content","justify-content","align-items","justify-items"];gridChild=["grid-row","grid-column","assigned-row-column","align-self","justify-self"];flex=["display","position","flex-direction","flex-wrap","align-content","justify-content","align-items","gap"];flexChild=["align-self","justify-self"];svg=["fill","fill-rule","fill-opacity","stroke","stroke-width","stroke-dasharray","stroke-dashoffset","stroke-opacity"];constructor(e){super(),this.name=e}isHandledElement(e){return!0}async getProperty(e,t){return this._getPropertyDef(t)}async getProperties(e){let t=this[this.name];if(Array.isArray(t))return t.map(r=>this._getPropertyDef(r));{let i=[];for(let r in t){let n={name:r,properties:t[r].map(o=>this._getPropertyDef(o))};i.push(n)}return i}}_getPropertyDef(e){let t=R.dashToCamelCase(e);switch(t){case"assignedRowColumn":return{name:e,service:this,propertyType:y.complex,createEditor:i=>new es(i)};case"metrics":return{name:e,service:this,propertyType:y.complex,createEditor:i=>new ts(i)};default:return{name:e,type:tt[t]?.type??"string",values:tt[t]?.values?[...tt[t]?.values,"initial","inherit","unset"]:["initial","inherit","unset"],service:this,propertyType:y.cssValue}}}getPropertyTarget(e,t){return M.css}}});var zp,Qt,Nl=u(()=>{"use strict";ie();re();Xe();Z();Tl();ke();ge();ye();rs();zp="<local>",Qt=class extends Se{getRefreshMode(e){return G.fullOnValueChange}constructor(){super(null),this.name="styles"}isHandledElement(e){return!0}async getProperty(e,t){return{name:t,type:"string",service:this,propertyType:y.cssValue}}getPropertyNameSuggestions(e){return Object.keys(tt).map(t=>R.camelToDashCase(t))}async getProperties(e){if(!e||e.nodeType!=E.Element)return[];let t=e.getAllStyles().reverse().sort((o,a)=>o.specificity==null?-1:a.specificity==null?1:o.specificity.A>a.specificity.A||o.specificity.A===a.specificity.A&&o.specificity.B>a.specificity.B||o.specificity.A===a.specificity.A&&o.specificity.B===a.specificity.B&&o.specificity.C>a.specificity.C?-1:o.specificity.A===a.specificity.A&&o.specificity.B===a.specificity.B&&o.specificity.C===a.specificity.C?0:1),i=Y.getOrBuildCachedBindings(e),r=t.find(o=>o.selector===null);for(let o of i)o.target===M.css&&(r.declarations.find(a=>a.name==o.targetName)||r.declarations.push({name:o.targetName,value:null,important:!1,parent:null}));return t.map(o=>({name:(o.selector??zp)+(o.specificity?" ("+o.specificity.A+"-"+o.specificity.B+"-"+o.specificity.C+")":""),description:o.stylesheetName??"",properties:[...o.declarations.map(a=>{let l=R.dashToCamelCase(a.name);return{name:a.name,renamable:!0,type:tt[l]?.type??"string",values:tt[l]?.values?[...tt[l]?.values,"initial","inherit","unset"]:["initial","inherit","unset"],service:this,propertyType:y.cssValue,styleRule:o,styleDeclaration:a}}),{name:"",type:"addNew",service:this,propertyType:y.complex,styleRule:o}]}))}async setValue(e,t,i){if(t.styleRule?.selector!==null&&t.styleDeclaration){e[0].instanceServiceContainer.stylesheetService.updateDeclarationValue(t.styleDeclaration,i,!1),this._notifyChangedProperty(e[0],t,i);return}if(t.styleRule?.selector!==null&&!t.styleDeclaration){e[0].instanceServiceContainer.stylesheetService.insertDeclarationIntoRule(t.styleRule,t.name,i,!1),this._notifyChangedProperty(e[0],t,i);return}for(let r of e)r.setStyle(t.name,i),r.element.setAttribute("style",r.element.getAttribute("style"))}clearValue(e,t,i){if(t.styleRule?.selector!==null&&t.styleDeclaration){e[0].instanceServiceContainer.stylesheetService.removeDeclarationFromRule(t.styleRule,t.styleDeclaration.name);return}super.clearValue(e,t,i)}getValue(e,t){return t.styleRule?.selector&&t.styleDeclaration?t.styleDeclaration.value:super.getValue(e,t)}getUnsetValue(e,t){return t.styleRule?.selector&&t.styleDeclaration?t.styleDeclaration.value:super.getUnsetValue(e,t)}isSet(e,t){return t.styleRule?.selector&&t.styleDeclaration?e[0].hasStyle(t.name)?V.none:V.fromStylesheet:super.isSet(e,t)}getPropertyTarget(e,t){return t.name.startsWith("--")?M.cssvar:M.css}}});var Jt,Ll=u(()=>{"use strict";ie();re();Xe();ke();is();Jt=class extends qt{removeInheritedCustomProperties;constructor(e=!0){super(),this.name="customProperties",this.removeInheritedCustomProperties=e}getRefreshMode(e){return G.fullOnValueChange}isHandledElement(e){return!0}async getProperty(e,t){return{name:t,type:"string",service:this,propertyType:y.cssValue}}async getProperties(e){if(!e?.element?.computedStyleMap)return null;let t=Array.from(e.instanceServiceContainer.designerCanvas.computedStyleMap()).map(n=>n[0]).filter(n=>n.startsWith("--")),i=Array.from(e.element.computedStyleMap()).map(n=>n[0]).filter(n=>n.startsWith("--"));return this.removeInheritedCustomProperties&&(i=i.filter(n=>!t.includes(n))),i.map(n=>({name:n,service:this,propertyType:y.cssValue}))}clearValue(e,t,i){super.clearValue(e,t,i)}getValue(e,t){let i=e[0].getStyle(t.name);return i||getComputedStyle(e[0].element).getPropertyValue(t.name)}getUnsetValue(e,t){return e?.[0].element?.computedStyleMap?e[0].element.computedStyleMap().get(t.name)?.[0]:null}isSet(e,t){return super.isSet(e,t)==V.bound?V.bound:e[0].hasStyle(t.name)?V.all:V.none}getPropertyTarget(e,t){return M.cssvar}}});var ns,Rl=u(()=>{"use strict";Z();Il();Dl();Lt();Nl();Ll();rs();ns=class{_attachedPropertiesService=new Jn;_rootPgList=[{name:"styles",propertiesService:new Qt},{name:"css vars",propertiesService:new Jt},{name:"layout",propertiesService:new Se("layout")}];_pgList=[{name:"properties",propertiesService:null},{name:"attached",propertiesService:this._attachedPropertiesService},{name:"attributes",propertiesService:new Ni},{name:"common",propertiesService:new Ie},{name:"styles",propertiesService:new Qt},{name:"css vars",propertiesService:new Jt},{name:"layout",propertiesService:new Se("layout")}];_svgPgList=[{name:"properties",propertiesService:null},{name:"attached",propertiesService:this._attachedPropertiesService},{name:"attributes",propertiesService:new Ni},{name:"common",propertiesService:new Ie},{name:"styles",propertiesService:new Qt},{name:"css vars",propertiesService:new Jt},{name:"layout",propertiesService:new Se("layout")},{name:"svg",propertiesService:new Se("svg")}];_gridChild=[{name:"gridChild",propertiesService:new Se("gridChild")}];_grid=[{name:"grid",propertiesService:new Se("grid")}];_flexChild=[{name:"flexChild",propertiesService:new Se("flexChild")}];_flex=[{name:"flex",propertiesService:new Se("flex")}];getPropertygroups(e){if(e==null||e.length==0)return[];if(e[0].nodeType==E.TextNode||e[0].nodeType==E.Comment)return[];if(e[0].isRootItem){let r=e[0].getComputedStyle(),n=this._rootPgList;return r.display.includes("grid")?n=[...n,...this._grid]:r.display.includes("flex")&&(n=[...n,...this._flex]),n}this._pgList[0].propertiesService=e[0].serviceContainer.getLastServiceWhere("propertyService",r=>r.isHandledElement(e[0])),this._svgPgList[0].propertiesService=e[0].serviceContainer.getLastServiceWhere("propertyService",r=>r.isHandledElement(e[0]));let t=this._pgList;e[0].element instanceof e[0].window.SVGElement&&(t=this._svgPgList);let i=e[0].getComputedStyle();if(i.display.includes("grid")?t=[...t,...this._grid]:i.display.includes("flex")&&(t=[...t,...this._flex]),e[0].parent){let r=e[0].parent.getComputedStyle();r.display.includes("grid")?t=[...t,...this._gridChild]:r.display.includes("flex")&&(t=[...t,...this._flexChild])}return t}}});var ss,Fl=u(()=>{"use strict";J();ss=class extends N{_rect;constructor(e,t,i){super(e,t,i)}extend(){this.refresh()}refresh(){let e=this.designerCanvas.getNormalizedElementCoordinates(this.extendedItem.element),t=getComputedStyle(this.extendedItem.element),i=Number.parseFloat(t.marginLeft.replace("px","")),r=Number.parseFloat(t.marginTop.replace("px","")),n=Number.parseFloat(t.marginRight.replace("px","")),o=Number.parseFloat(t.marginBottom.replace("px",""));this._rect=this._drawRect(e.x-i,e.y-r,i+e.width+n,r+e.height+o,"svg-placement",this._rect)}dispose(){this._removeAllOverlays()}}});import{css as Bp}from"@node-projects/base-custom-webcomponent";var os,zl=u(()=>{"use strict";Fl();os=class{shouldExtend(e,t,i){return!0}getExtension(e,t,i){return new ss(e,t,i)}static style=Bp`
|
|
560
|
+
`;property;unsetValue;_borderDiv;_elementDiv;constructor(){super(),this._restoreCachedInititalValues(),this._borderDiv=this._getDomElement("border"),this._elementDiv=this._getDomElement("element")}ready(){this._parseAttributesToProperties(),this._assignEvents()}onDoubleClick(e){let t=e.target;t.setAttribute("contentEditable","");let i=document.createRange(),r=window.getSelection();i.setStart(t.firstChild,0),i.setEndAfter(t.lastChild),r.removeAllRanges(),r.addRange(i)}onKeyDown(e){let t=e.target;if(e.key=="Enter"){t.removeAttribute("contentEditable");let i=t.innerHTML,r=new CustomEvent("value-changed",{detail:{style:t.dataset.style,value:i}});this.dispatchEvent(r)}}refresh(e){this._elementDiv.classList.remove("box"),this._borderDiv.classList.remove("box"),e&&(getComputedStyle(e).boxSizing=="content-box"?this._elementDiv.classList.add("box"):this._borderDiv.classList.add("box"))}};customElements.define("node-projects-metrics-editor",Li)});var ts,Ol=u(()=>{"use strict";ve();Ih();ts=class extends Q{constructor(e){super(e);let t=new Li;t.property=e.name,this.element=t}refreshValue(e,t){this.element.refresh(this.designItems?.[0]?.element)}}});var Qt,is=u(()=>{"use strict";Lt();re();ue();Qt=class extends ke{getRefreshMode(e){return G.none}async previewValue(e,t,i){let r=t.name;r.startsWith("--")||(r=L.camelToDashCase(r));for(let n of e)n.element.style.setProperty(r,i)}async removePreviewValue(e,t){let i=t.name;i.startsWith("--")||(i=L.camelToDashCase(i));for(let r of e)r.hasStyle(i)?r.element.style.setProperty(i,r.getStyle(i)):r.element.style.setProperty(i,"")}constructor(){super(!1)}}});var Se,rs=u(()=>{"use strict";Ie();ie();re();ue();Ml();Ol();Tl();is();Se=class extends Qt{getRefreshMode(e){return G.none}layout={common:["display","color","background-color","box-sizing","border","box-shadow","opacity","position","align-content"],font:["font-family","font-size","font-weight"],layout:["inset","margin","border","padding","overflow","metrics"]};grid=["display","position","grid-template-columns","grid-template-rows","gap","column-gap","row-gap","align-content","justify-content","align-items","justify-items"];gridChild=["grid-row","grid-column","assigned-row-column","align-self","justify-self"];flex=["display","position","flex-direction","flex-wrap","align-content","justify-content","align-items","gap"];flexChild=["align-self","justify-self"];svg=["fill","fill-rule","fill-opacity","stroke","stroke-width","stroke-dasharray","stroke-dashoffset","stroke-opacity"];constructor(e){super(),this.name=e}isHandledElement(e){return!0}async getProperty(e,t){return this._getPropertyDef(t)}async getProperties(e){let t=this[this.name];if(Array.isArray(t))return t.map(r=>this._getPropertyDef(r));{let i=[];for(let r in t){let n={name:r,properties:t[r].map(o=>this._getPropertyDef(o))};i.push(n)}return i}}_getPropertyDef(e){let t=L.dashToCamelCase(e);switch(t){case"assignedRowColumn":return{name:e,service:this,propertyType:y.complex,createEditor:i=>new es(i)};case"metrics":return{name:e,service:this,propertyType:y.complex,createEditor:i=>new ts(i)};default:return{name:e,type:tt[t]?.type??"string",values:tt[t]?.values?[...tt[t]?.values,"initial","inherit","unset"]:["initial","inherit","unset"],service:this,propertyType:y.cssValue}}}getPropertyTarget(e,t){return M.css}}});var zp,Jt,Nl=u(()=>{"use strict";ie();re();Xe();Z();Tl();Ie();ue();ye();rs();zp="<local>",Jt=class extends Se{getRefreshMode(e){return G.fullOnValueChange}constructor(){super(null),this.name="styles"}isHandledElement(e){return!0}async getProperty(e,t){return{name:t,type:"string",service:this,propertyType:y.cssValue}}getPropertyNameSuggestions(e){return Object.keys(tt).map(t=>L.camelToDashCase(t))}async getProperties(e){if(!e||e.nodeType!=E.Element)return[];let t=e.getAllStyles().reverse().sort((o,a)=>o.specificity==null?-1:a.specificity==null?1:o.specificity.A>a.specificity.A||o.specificity.A===a.specificity.A&&o.specificity.B>a.specificity.B||o.specificity.A===a.specificity.A&&o.specificity.B===a.specificity.B&&o.specificity.C>a.specificity.C?-1:o.specificity.A===a.specificity.A&&o.specificity.B===a.specificity.B&&o.specificity.C===a.specificity.C?0:1),i=Y.getOrBuildCachedBindings(e),r=t.find(o=>o.selector===null);for(let o of i)o.target===M.css&&(r.declarations.find(a=>a.name==o.targetName)||r.declarations.push({name:o.targetName,value:null,important:!1,parent:null}));return t.map(o=>({name:(o.selector??zp)+(o.specificity?" ("+o.specificity.A+"-"+o.specificity.B+"-"+o.specificity.C+")":""),description:o.stylesheetName??"",properties:[...o.declarations.map(a=>{let l=L.dashToCamelCase(a.name);return{name:a.name,renamable:!0,type:tt[l]?.type??"string",values:tt[l]?.values?[...tt[l]?.values,"initial","inherit","unset"]:["initial","inherit","unset"],service:this,propertyType:y.cssValue,styleRule:o,styleDeclaration:a}}),{name:"",type:"addNew",service:this,propertyType:y.complex,styleRule:o}]}))}async setValue(e,t,i){if(t.styleRule?.selector!==null&&t.styleDeclaration){e[0].instanceServiceContainer.stylesheetService.updateDeclarationValue(t.styleDeclaration,i,!1),this._notifyChangedProperty(e[0],t,i);return}if(t.styleRule?.selector!==null&&!t.styleDeclaration){e[0].instanceServiceContainer.stylesheetService.insertDeclarationIntoRule(t.styleRule,t.name,i,!1),this._notifyChangedProperty(e[0],t,i);return}for(let r of e)r.setStyle(t.name,i),r.element.setAttribute("style",r.element.getAttribute("style"))}clearValue(e,t,i){if(t.styleRule?.selector!==null&&t.styleDeclaration){e[0].instanceServiceContainer.stylesheetService.removeDeclarationFromRule(t.styleRule,t.styleDeclaration.name);return}super.clearValue(e,t,i)}getValue(e,t){return t.styleRule?.selector&&t.styleDeclaration?t.styleDeclaration.value:super.getValue(e,t)}getUnsetValue(e,t){return t.styleRule?.selector&&t.styleDeclaration?t.styleDeclaration.value:super.getUnsetValue(e,t)}isSet(e,t){return t.styleRule?.selector&&t.styleDeclaration?e[0].hasStyle(t.name)?V.none:V.fromStylesheet:super.isSet(e,t)}getPropertyTarget(e,t){return t.name.startsWith("--")?M.cssvar:M.css}}});var ei,Ll=u(()=>{"use strict";ie();re();Xe();Ie();is();ei=class extends Qt{removeInheritedCustomProperties;constructor(e=!0){super(),this.name="customProperties",this.removeInheritedCustomProperties=e}getRefreshMode(e){return G.fullOnValueChange}isHandledElement(e){return!0}async getProperty(e,t){return{name:t,type:"string",service:this,propertyType:y.cssValue}}async getProperties(e){if(!e?.element?.computedStyleMap)return null;let t=Array.from(e.instanceServiceContainer.designerCanvas.computedStyleMap()).map(n=>n[0]).filter(n=>n.startsWith("--")),i=Array.from(e.element.computedStyleMap()).map(n=>n[0]).filter(n=>n.startsWith("--"));return this.removeInheritedCustomProperties&&(i=i.filter(n=>!t.includes(n))),i.map(n=>({name:n,service:this,propertyType:y.cssValue}))}clearValue(e,t,i){super.clearValue(e,t,i)}getValue(e,t){let i=e[0].getStyle(t.name);return i||getComputedStyle(e[0].element).getPropertyValue(t.name)}getUnsetValue(e,t){return e?.[0].element?.computedStyleMap?e[0].element.computedStyleMap().get(t.name)?.[0]:null}isSet(e,t){return super.isSet(e,t)==V.bound?V.bound:e[0].hasStyle(t.name)?V.all:V.none}getPropertyTarget(e,t){return M.cssvar}}});var ns,Rl=u(()=>{"use strict";Z();kl();Dl();Lt();Nl();Ll();rs();ns=class{_attachedPropertiesService=new Jn;_rootPgList=[{name:"styles",propertiesService:new Jt},{name:"css vars",propertiesService:new ei},{name:"layout",propertiesService:new Se("layout")}];_pgList=[{name:"properties",propertiesService:null},{name:"attached",propertiesService:this._attachedPropertiesService},{name:"attributes",propertiesService:new Ni},{name:"common",propertiesService:new ke},{name:"styles",propertiesService:new Jt},{name:"css vars",propertiesService:new ei},{name:"layout",propertiesService:new Se("layout")}];_svgPgList=[{name:"properties",propertiesService:null},{name:"attached",propertiesService:this._attachedPropertiesService},{name:"attributes",propertiesService:new Ni},{name:"common",propertiesService:new ke},{name:"styles",propertiesService:new Jt},{name:"css vars",propertiesService:new ei},{name:"layout",propertiesService:new Se("layout")},{name:"svg",propertiesService:new Se("svg")}];_gridChild=[{name:"gridChild",propertiesService:new Se("gridChild")}];_grid=[{name:"grid",propertiesService:new Se("grid")}];_flexChild=[{name:"flexChild",propertiesService:new Se("flexChild")}];_flex=[{name:"flex",propertiesService:new Se("flex")}];getPropertygroups(e){if(e==null||e.length==0)return[];if(e[0].nodeType==E.TextNode||e[0].nodeType==E.Comment)return[];if(e[0].isRootItem){let r=e[0].getComputedStyle(),n=this._rootPgList;return r.display.includes("grid")?n=[...n,...this._grid]:r.display.includes("flex")&&(n=[...n,...this._flex]),n}this._pgList[0].propertiesService=e[0].serviceContainer.getLastServiceWhere("propertyService",r=>r.isHandledElement(e[0])),this._svgPgList[0].propertiesService=e[0].serviceContainer.getLastServiceWhere("propertyService",r=>r.isHandledElement(e[0]));let t=this._pgList;e[0].element instanceof e[0].window.SVGElement&&(t=this._svgPgList);let i=e[0].getComputedStyle();if(i.display.includes("grid")?t=[...t,...this._grid]:i.display.includes("flex")&&(t=[...t,...this._flex]),e[0].parent){let r=e[0].parent.getComputedStyle();r.display.includes("grid")?t=[...t,...this._gridChild]:r.display.includes("flex")&&(t=[...t,...this._flexChild])}return t}}});var ss,Fl=u(()=>{"use strict";J();ss=class extends N{_rect;constructor(e,t,i){super(e,t,i)}extend(){this.refresh()}refresh(){let e=this.designerCanvas.getNormalizedElementCoordinates(this.extendedItem.element),t=getComputedStyle(this.extendedItem.element),i=Number.parseFloat(t.marginLeft.replace("px","")),r=Number.parseFloat(t.marginTop.replace("px","")),n=Number.parseFloat(t.marginRight.replace("px","")),o=Number.parseFloat(t.marginBottom.replace("px",""));this._rect=this._drawRect(e.x-i,e.y-r,i+e.width+n,r+e.height+o,"svg-placement",this._rect)}dispose(){this._removeAllOverlays()}}});import{css as Bp}from"@node-projects/base-custom-webcomponent";var os,zl=u(()=>{"use strict";Fl();os=class{shouldExtend(e,t,i){return!0}getExtension(e,t,i){return new ss(e,t,i)}static style=Bp`
|
|
561
561
|
.svg-placement { stroke: #90caf9; fill: none; }
|
|
562
|
-
`}});var as,Bl=u(()=>{"use strict";J();X();as=class extends N{_path;constructor(e,t,i){super(e,t,i)}extend(){let e=this.extendedItem.element.getBoxQuads({relativeTo:this.designerCanvas.canvas})[0];this._path=this._drawTransformedRect(e,"svg-flexbox",this._path,
|
|
562
|
+
`}});var as,Bl=u(()=>{"use strict";J();X();as=class extends N{_path;constructor(e,t,i){super(e,t,i)}extend(){let e=this.extendedItem.element.getBoxQuads({relativeTo:this.designerCanvas.canvas})[0];this._path=this._drawTransformedRect(e,"svg-flexbox",this._path,I.Background)}refresh(){this._removeAllOverlays(),this.extend()}dispose(){this._removeAllOverlays()}}});import{css as Vp}from"@node-projects/base-custom-webcomponent";var Vl,Ri,ls=u(()=>{"use strict";Bl();Vl="flexboxExtensionShowOverlay",Ri=class{shouldExtend(e,t,i){let r=getComputedStyle(i.element).display;return r=="flex"||r=="inline-flex"?t.instanceServiceContainer.designContext.extensionOptions[Vl]!==!1:!1}getExtension(e,t,i){return new as(e,t,i)}style=Vp`
|
|
563
563
|
.svg-flexbox { stroke: orange; fill: #9a47ff22; }
|
|
564
|
-
`}});var cs,Hl=u(()=>{"use strict";ls();bt();cs=class extends Ae{constructor(){super(Vl,"F","show flexbox overlay")}}});var hs,Gl=u(()=>{"use strict";xn();bt();hs=class extends Ae{constructor(){super(Ya,"I","show invisible div overlay")}}});var ds,Wl=u(()=>{"use strict";ds=class{redoBranches;title;get affectedItems(){let e=new Set;for(let t of this.undoStack)for(let i of t.affectedItems)e.add(i);for(let t of this.redoStack)for(let i of t.affectedItems)e.add(i);return[...e.values()]}commitHandler;abortHandler;constructor(e,t,i){this.title=e,this.commitHandler=t,this.abortHandler=i}do(){let e=null;for(;e=this.redoStack.pop();)try{e.do(),this.undoStack.push(e)}catch(t){throw t}}undo(){let e=null;for(;e=this.undoStack.pop();)try{e.undo(),this.redoStack.push(e)}catch(t){throw t}}commit(){this.commitHandler(this)}abort(){this.abortHandler(this)}mergeWith(e){return!1}addCommitedSubchangeGroup(e){this.undoStack.push(e)}undoStack=[];redoStack=[];execute(e){e.do();for(let t of this.undoStack)if(t.mergeWith(e))return;this.undoStack.push(e)}}});var ps,jl=u(()=>{"use strict";Wl();ps=class{_undoStack=[];_redoStack=[];_transactionStack=[];_designerCanvas;_storeRedoBranches;constructor(e,t=!1){this._designerCanvas=e,this._storeRedoBranches=t}openGroup(e){let t=new ds(e,i=>this.commitTransactionItem(i),i=>this.abortTransactionItem(i));return this._transactionStack.push(t),t}commitTransactionItem(e){let t=this._transactionStack.pop();if(t!==e)throw this.clear(),"UndoService - Commited Transaction was not the last";t.undoStack.length&&(this._transactionStack.length>0?this._transactionStack[this._transactionStack.length-1].addCommitedSubchangeGroup(t):(this._storeRedoBranches&&this._redoStack.length&&(t.redoBranches==null&&(t.redoBranches=[]),t.redoBranches.push(this._redoStack)),this._redoStack=[],this._undoStack.push(t))),this._transactionStack.length==0&&(this._designerCanvas.extensionManager.refreshAllExtensions(e.affectedItems),this._designerCanvas.onContentChanged.emit())}abortTransactionItem(e){if(this._transactionStack.length>0){let t=this._transactionStack.pop();if(t!==e)throw this.clear(),"UndoService - Aborted Transaction was not the last";t.undo()}}execute(e){this._transactionStack.length==0?(e.do(),this._storeRedoBranches&&this._redoStack.length&&(e.redoBranches==null&&(e.redoBranches=[]),e.redoBranches.push(this._redoStack)),this._redoStack=[],this._undoStack.push(e)):this._transactionStack[this._transactionStack.length-1].execute(e),this._transactionStack.length==0&&(this._designerCanvas.extensionManager.refreshAllExtensions(e.affectedItems),this._designerCanvas.onContentChanged.emit())}clear(){this._undoStack=[],this._redoStack=[],this._transactionStack=[]}clearTransactionstackIfNotEmpty(){this._transactionStack.length&&(console.error("transactionStack was not empty, but should be",this._transactionStack),this._transactionStack=[])}undo(){if(!this.canUndo())return;if(this._transactionStack.length!=0)throw"Cannot Undo while transaction is running";let e=this._undoStack.pop();try{e.undo(),this._redoStack.push(e)}catch(t){throw this.clear(),t}this._designerCanvas.extensionManager.refreshAllExtensions(e.affectedItems),this._designerCanvas.onContentChanged.emit()}redo(){if(!this.canRedo())return;if(this._transactionStack.length!=0)throw"Cannot Redo while transaction is running";let e=this._redoStack.pop();try{e.do(),this._undoStack.push(e)}catch(t){throw this.clear(),t}this._designerCanvas.extensionManager.refreshAllExtensions(e.affectedItems),this._designerCanvas.onContentChanged.emit()}redoTo(e){this._redoStack=e.toReversed();for(let t=0;t<e.length;t++)this.redo()}canUndo(){return this._undoStack.length>0}canRedo(){return this._redoStack.length>0}get undoCount(){return this._undoStack.length}get redoCount(){return this._redoStack.length}*getUndoEntryNames(e=999){for(let t=Math.min(this._undoStack.length,e)-1;t>=0;t--)yield this._undoStack[t].title}*getUndoEntries(e=999){for(let t=Math.min(this._undoStack.length,e)-1;t>=0;t--)yield this._undoStack[t]}*getRedoEntryNames(e=999){for(let t=Math.min(this._redoStack.length,e)-1;t>=0;t--)yield this._redoStack[t].title}*getRedoEntries(e=999){for(let t=Math.min(this._redoStack.length,e)-1;t>=0;t--)yield this._redoStack[t]}}});var ms,Ih=u(()=>{"use strict";ms=class{constructor(e,t,i){this.title="Change Selection",this.oldSelection=e,this.newSelection=t,this.selectionService=i}title;get affectedItems(){return this.oldSelection&&this.newSelection?[...this.oldSelection,...this.newSelection]:this.oldSelection?[...this.oldSelection]:[...this.newSelection]}undo(){this.selectionService._withoutUndoSetSelectedElements(this.oldSelection)}do(){this.selectionService._withoutUndoSetSelectedElements(this.newSelection)}oldSelection;newSelection;selectionService;mergeWith(e){return!1}}});import{TypedEvent as Dh}from"@node-projects/base-custom-webcomponent";function Th(s,e){let t=null;if(s.hasChildren)for(let i of s.children()){let r=s.instanceServiceContainer.designItemDocumentPositionService.getPosition(i);r&&r.start<=e&&r.start+r.length>=e&&(t=i)}return t?Th(t,e):s}var us,Ul=u(()=>{"use strict";Ih();us=class{primarySelection;selectedElements=[];_designerCanvas;_undoSelectionChanges;constructor(e,t){this._designerCanvas=e,this._undoSelectionChanges=t}setSelectedElements(e,t){if((e===null||e.length===0)&&(e=[this._designerCanvas.rootDesignItem]),this.selectedElements!=e&&!(this.selectedElements.length===0&&(e==null||e.length===0))){if(this.selectedElements?.length===1&&e?.length===1&&e[0]===this.selectedElements[0]){this.onSelectionRefresh.emit({selectedElements:this.selectedElements,event:t});return}if(this._undoSelectionChanges){let i=new ms(this.selectedElements,e,this);this._designerCanvas.instanceServiceContainer.undoService.execute(i)}else this._withoutUndoSetSelectedElements(e,t)}}setSelectionByTextRange(e,t){let i=Th(this._designerCanvas.rootDesignItem,e);i&&(this.selectedElements.length!=1||this.primarySelection!=i)&&this.setSelectedElements([i])}_withoutUndoSetSelectedElements(e,t){let i=this.selectedElements;if(!e)this.selectedElements=[],this.primarySelection=null;else{let r=[];for(let n of e)n&&(e.length==1||n!==n.instanceServiceContainer.contentService.rootDesignItem)&&r.push(n);this.selectedElements=r,r&&r.length>0?this.primarySelection=r[0]:this.primarySelection=null}this.onSelectionChanged.emit({selectedElements:this.selectedElements,oldSelectedElements:i,event:t})}clearSelectedElements(){this.setSelectedElements([])}isSelected(e){return this.selectedElements.indexOf(e)>=0}onSelectionChanged=new Dh;onSelectionRefresh=new Dh}});import{TypedEvent as Hp}from"@node-projects/base-custom-webcomponent";var fs,Kl=u(()=>{"use strict";fs=class{constructor(e){this.rootDesignItem=e}rootDesignItem;onContentChanged=new Hp}});var gs,Yl=u(()=>{"use strict";$();gs=class{shouldProvideContextmenu(e,t,i,r){return i!==null}provideContextMenuItems(e,t,i){return[{title:"jump to",icon:`<img src="${v+"icons/jump.svg"}">`,action:()=>{let r=t.getNormalizedElementCoordinates(i.element);t.zoomPoint({x:r.x+r.width/2,y:r.y+r.height/2},t.zoomFactor)}}]}}});var ys,Xl=u(()=>{"use strict";ee();da();te();Zt();Pt();J();X();ys=class extends N{gridInformation;_resizers=[];_initalPos;_initialSizes;_group;_hasChanged;constructor(e,t,i){super(e,t,i)}extend(e,t){this._group=this._drawGroup(null,this._group,k.Background),this._group.style.transform=pt(this.extendedItem.element).toString(),this._group.style.transformOrigin="0 0",this._group.style.transformBox="fill-box",this.refresh(t)}refresh(e,t){this.gridInformation=Ge(this.extendedItem),this.gridInformation.gaps.forEach((i,r)=>{i.width<3&&(i.width=3,i.x--),i.height<3&&(i.height=3,i.y--);let n=this._drawRect(i.x,i.y,i.width,i.height,"svg-grid-resizer-"+i.type,this._resizers[r],k.Normal);this._resizers[r]||(this._resizers[r]=n,n.addEventListener(x.PointerDown,o=>this._pointerActionTypeResize(o,n,i)),n.addEventListener(x.PointerMove,o=>this._pointerActionTypeResize(o,n,i)),n.addEventListener(x.PointerUp,o=>this._pointerActionTypeResize(o,n,i)),this._group.appendChild(n))})}_pointerActionTypeResize(e,t,i){e.stopPropagation();let r=i.type=="h"?"gridTemplateRows":"gridTemplateColumns",n=i.type=="h"?"Y":"X",o=(i.type=="h"?i.row:i.column)-1,a=i.type=="h"?"height":"width",l=e["client"+n];switch(e.type){case x.PointerDown:t.setPointerCapture(e.pointerId),this._initalPos=l,this._initialSizes=getComputedStyle(this.extendedItem.element)[r];break;case x.PointerMove:if(this._initialSizes){let h=this._initalPos-l;if(Math.abs(h)>5||this._hasChanged){this._hasChanged=!0;let d=this._initialSizes.split(" ");d[o]=parseFloat(d[o])-h+"px",d[o+1]=parseFloat(d[o+1])+h+"px",this.extendedItem.element.style[r]=d.join(" "),this.extensionManager.refreshExtensions([this.extendedItem],null,e)}}break;case x.PointerUp:t.releasePointerCapture(e.pointerId);let c=this._initalPos-l;if(this._hasChanged){this._hasChanged=!1;let h=this.extendedItem.getStyleFromSheetOrLocalOrComputed(r),d=this._initialSizes.split(" "),p=vh(h);p.length!=d.length&&(p=d.map(f=>Et(f))),this.extendedItem.element.style[r]="";let g=d.map(f=>parseFloat(f));g[o]-=c,g[o+1]+=c;let m=this._convertCssUnits(g,p,this.extendedItem.element,a);this.extendedItem.updateStyleInSheetOrLocal(r,m.join(" "),null,!0)}this._initalPos=null,this._initialSizes=null,this.extensionManager.refreshExtensions([this.extendedItem]);break}}_convertCssUnits(e,t,i,r){let n=getComputedStyle(i),a=W(i)[r],l=r=="height"?this.gridInformation.cells.length-1:this.gridInformation.cells[0].length-1,c=r=="width"?n.columnGap:n.rowGap;c=="normal"&&(c="0px");let h=ha(c,i,r)??0,p=a-h*l;for(let m=0;m<e.length;m++)t[m]!="fr"&&(p-=e[m]);let g=[];for(let m=0;m<e.length;m++)t[m]!="fr"?g.push(Wt(e[m],i,r,t[m])):g.push((e[m]/p*10).toFixed(2)+"fr");return g}dispose(){this._removeAllOverlays()}}});import{css as Gp}from"@node-projects/base-custom-webcomponent";var Fi,Zl=u(()=>{"use strict";Xl();ki();Fi=class{shouldExtend(e,t,i){let r=getComputedStyle(i.element).display;return r=="grid"||r=="inline-grid"?t.instanceServiceContainer.designContext.extensionOptions[Pi]!==!1:!1}getExtension(e,t,i){return new ys(e,t,i)}static style=Gp`
|
|
564
|
+
`}});var cs,Hl=u(()=>{"use strict";ls();bt();cs=class extends Ae{constructor(){super(Vl,"F","show flexbox overlay")}}});var hs,Gl=u(()=>{"use strict";xn();bt();hs=class extends Ae{constructor(){super(Ya,"I","show invisible div overlay")}}});var ds,Wl=u(()=>{"use strict";ds=class{redoBranches;title;get affectedItems(){let e=new Set;for(let t of this.undoStack)for(let i of t.affectedItems)e.add(i);for(let t of this.redoStack)for(let i of t.affectedItems)e.add(i);return[...e.values()]}commitHandler;abortHandler;constructor(e,t,i){this.title=e,this.commitHandler=t,this.abortHandler=i}do(){let e=null;for(;e=this.redoStack.pop();)try{e.do(),this.undoStack.push(e)}catch(t){throw t}}undo(){let e=null;for(;e=this.undoStack.pop();)try{e.undo(),this.redoStack.push(e)}catch(t){throw t}}commit(){this.commitHandler(this)}abort(){this.abortHandler(this)}mergeWith(e){return!1}addCommitedSubchangeGroup(e){this.undoStack.push(e)}undoStack=[];redoStack=[];execute(e){e.do();for(let t of this.undoStack)if(t.mergeWith(e))return;this.undoStack.push(e)}}});var ps,jl=u(()=>{"use strict";Wl();ps=class{_undoStack=[];_redoStack=[];_transactionStack=[];_designerCanvas;_storeRedoBranches;constructor(e,t=!1){this._designerCanvas=e,this._storeRedoBranches=t}openGroup(e){let t=new ds(e,i=>this.commitTransactionItem(i),i=>this.abortTransactionItem(i));return this._transactionStack.push(t),t}commitTransactionItem(e){let t=this._transactionStack.pop();if(t!==e)throw this.clear(),"UndoService - Commited Transaction was not the last";t.undoStack.length&&(this._transactionStack.length>0?this._transactionStack[this._transactionStack.length-1].addCommitedSubchangeGroup(t):(this._storeRedoBranches&&this._redoStack.length&&(t.redoBranches==null&&(t.redoBranches=[]),t.redoBranches.push(this._redoStack)),this._redoStack=[],this._undoStack.push(t))),this._transactionStack.length==0&&(this._designerCanvas.extensionManager.refreshAllExtensions(e.affectedItems),this._designerCanvas.onContentChanged.emit())}abortTransactionItem(e){if(this._transactionStack.length>0){let t=this._transactionStack.pop();if(t!==e)throw this.clear(),"UndoService - Aborted Transaction was not the last";t.undo()}}execute(e){this._transactionStack.length==0?(e.do(),this._storeRedoBranches&&this._redoStack.length&&(e.redoBranches==null&&(e.redoBranches=[]),e.redoBranches.push(this._redoStack)),this._redoStack=[],this._undoStack.push(e)):this._transactionStack[this._transactionStack.length-1].execute(e),this._transactionStack.length==0&&(this._designerCanvas.extensionManager.refreshAllExtensions(e.affectedItems),this._designerCanvas.onContentChanged.emit())}clear(){this._undoStack=[],this._redoStack=[],this._transactionStack=[]}clearTransactionstackIfNotEmpty(){this._transactionStack.length&&(console.error("transactionStack was not empty, but should be",this._transactionStack),this._transactionStack=[])}undo(){if(!this.canUndo())return;if(this._transactionStack.length!=0)throw"Cannot Undo while transaction is running";let e=this._undoStack.pop();try{e.undo(),this._redoStack.push(e)}catch(t){throw this.clear(),t}this._designerCanvas.extensionManager.refreshAllExtensions(e.affectedItems),this._designerCanvas.onContentChanged.emit()}redo(){if(!this.canRedo())return;if(this._transactionStack.length!=0)throw"Cannot Redo while transaction is running";let e=this._redoStack.pop();try{e.do(),this._undoStack.push(e)}catch(t){throw this.clear(),t}this._designerCanvas.extensionManager.refreshAllExtensions(e.affectedItems),this._designerCanvas.onContentChanged.emit()}redoTo(e){this._redoStack=e.toReversed();for(let t=0;t<e.length;t++)this.redo()}canUndo(){return this._undoStack.length>0}canRedo(){return this._redoStack.length>0}get undoCount(){return this._undoStack.length}get redoCount(){return this._redoStack.length}*getUndoEntryNames(e=999){for(let t=Math.min(this._undoStack.length,e)-1;t>=0;t--)yield this._undoStack[t].title}*getUndoEntries(e=999){for(let t=Math.min(this._undoStack.length,e)-1;t>=0;t--)yield this._undoStack[t]}*getRedoEntryNames(e=999){for(let t=Math.min(this._redoStack.length,e)-1;t>=0;t--)yield this._redoStack[t].title}*getRedoEntries(e=999){for(let t=Math.min(this._redoStack.length,e)-1;t>=0;t--)yield this._redoStack[t]}}});var ms,kh=u(()=>{"use strict";ms=class{constructor(e,t,i){this.title="Change Selection",this.oldSelection=e,this.newSelection=t,this.selectionService=i}title;get affectedItems(){return this.oldSelection&&this.newSelection?[...this.oldSelection,...this.newSelection]:this.oldSelection?[...this.oldSelection]:[...this.newSelection]}undo(){this.selectionService._withoutUndoSetSelectedElements(this.oldSelection)}do(){this.selectionService._withoutUndoSetSelectedElements(this.newSelection)}oldSelection;newSelection;selectionService;mergeWith(e){return!1}}});import{TypedEvent as Dh}from"@node-projects/base-custom-webcomponent";function Th(s,e){let t=null;if(s.hasChildren)for(let i of s.children()){let r=s.instanceServiceContainer.designItemDocumentPositionService.getPosition(i);r&&r.start<=e&&r.start+r.length>=e&&(t=i)}return t?Th(t,e):s}var us,Ul=u(()=>{"use strict";kh();us=class{primarySelection;selectedElements=[];_designerCanvas;_undoSelectionChanges;constructor(e,t){this._designerCanvas=e,this._undoSelectionChanges=t}setSelectedElements(e,t){if((e===null||e.length===0)&&(e=[this._designerCanvas.rootDesignItem]),this.selectedElements!=e&&!(this.selectedElements.length===0&&(e==null||e.length===0))){if(this.selectedElements?.length===1&&e?.length===1&&e[0]===this.selectedElements[0]){this.onSelectionRefresh.emit({selectedElements:this.selectedElements,event:t});return}if(this._undoSelectionChanges){let i=new ms(this.selectedElements,e,this);this._designerCanvas.instanceServiceContainer.undoService.execute(i)}else this._withoutUndoSetSelectedElements(e,t)}}setSelectionByTextRange(e,t){let i=Th(this._designerCanvas.rootDesignItem,e);i&&(this.selectedElements.length!=1||this.primarySelection!=i)&&this.setSelectedElements([i])}_withoutUndoSetSelectedElements(e,t){let i=this.selectedElements;if(!e)this.selectedElements=[],this.primarySelection=null;else{let r=[];for(let n of e)n&&(e.length==1||n!==n.instanceServiceContainer.contentService.rootDesignItem)&&r.push(n);this.selectedElements=r,r&&r.length>0?this.primarySelection=r[0]:this.primarySelection=null}this.onSelectionChanged.emit({selectedElements:this.selectedElements,oldSelectedElements:i,event:t})}clearSelectedElements(){this.setSelectedElements([])}isSelected(e){return this.selectedElements.indexOf(e)>=0}onSelectionChanged=new Dh;onSelectionRefresh=new Dh}});import{TypedEvent as Hp}from"@node-projects/base-custom-webcomponent";var fs,Kl=u(()=>{"use strict";fs=class{constructor(e){this.rootDesignItem=e}rootDesignItem;onContentChanged=new Hp}});var gs,Yl=u(()=>{"use strict";$();gs=class{shouldProvideContextmenu(e,t,i,r){return i!==null}provideContextMenuItems(e,t,i){return[{title:"jump to",icon:`<img src="${v+"icons/jump.svg"}">`,action:()=>{let r=t.getNormalizedElementCoordinates(i.element);t.zoomPoint({x:r.x+r.width/2,y:r.y+r.height/2},t.zoomFactor)}}]}}});var ys,Xl=u(()=>{"use strict";ee();da();te();$t();Pt();J();X();ys=class extends N{gridInformation;_resizers=[];_initalPos;_initialSizes;_group;_hasChanged;constructor(e,t,i){super(e,t,i)}extend(e,t){this._group=this._drawGroup(null,this._group,I.Background),this._group.style.transform=pt(this.extendedItem.element).toString(),this._group.style.transformOrigin="0 0",this._group.style.transformBox="fill-box",this.refresh(t)}refresh(e,t){this.gridInformation=Ge(this.extendedItem),this.gridInformation.gaps.forEach((i,r)=>{i.width<3&&(i.width=3,i.x--),i.height<3&&(i.height=3,i.y--);let n=this._drawRect(i.x,i.y,i.width,i.height,"svg-grid-resizer-"+i.type,this._resizers[r],I.Normal);this._resizers[r]||(this._resizers[r]=n,n.addEventListener(x.PointerDown,o=>this._pointerActionTypeResize(o,n,i)),n.addEventListener(x.PointerMove,o=>this._pointerActionTypeResize(o,n,i)),n.addEventListener(x.PointerUp,o=>this._pointerActionTypeResize(o,n,i)),this._group.appendChild(n))})}_pointerActionTypeResize(e,t,i){e.stopPropagation();let r=i.type=="h"?"gridTemplateRows":"gridTemplateColumns",n=i.type=="h"?"Y":"X",o=(i.type=="h"?i.row:i.column)-1,a=i.type=="h"?"height":"width",l=e["client"+n];switch(e.type){case x.PointerDown:t.setPointerCapture(e.pointerId),this._initalPos=l,this._initialSizes=getComputedStyle(this.extendedItem.element)[r];break;case x.PointerMove:if(this._initialSizes){let h=this._initalPos-l;if(Math.abs(h)>5||this._hasChanged){this._hasChanged=!0;let d=this._initialSizes.split(" ");d[o]=parseFloat(d[o])-h+"px",d[o+1]=parseFloat(d[o+1])+h+"px",this.extendedItem.element.style[r]=d.join(" "),this.extensionManager.refreshExtensions([this.extendedItem],null,e)}}break;case x.PointerUp:t.releasePointerCapture(e.pointerId);let c=this._initalPos-l;if(this._hasChanged){this._hasChanged=!1;let h=this.extendedItem.getStyleFromSheetOrLocalOrComputed(r),d=this._initialSizes.split(" "),p=vh(h);p.length!=d.length&&(p=d.map(f=>Et(f))),this.extendedItem.element.style[r]="";let g=d.map(f=>parseFloat(f));g[o]-=c,g[o+1]+=c;let m=this._convertCssUnits(g,p,this.extendedItem.element,a);this.extendedItem.updateStyleInSheetOrLocal(r,m.join(" "),null,!0)}this._initalPos=null,this._initialSizes=null,this.extensionManager.refreshExtensions([this.extendedItem]);break}}_convertCssUnits(e,t,i,r){let n=getComputedStyle(i),a=W(i)[r],l=r=="height"?this.gridInformation.cells.length-1:this.gridInformation.cells[0].length-1,c=r=="width"?n.columnGap:n.rowGap;c=="normal"&&(c="0px");let h=ha(c,i,r)??0,p=a-h*l;for(let m=0;m<e.length;m++)t[m]!="fr"&&(p-=e[m]);let g=[];for(let m=0;m<e.length;m++)t[m]!="fr"?g.push(jt(e[m],i,r,t[m])):g.push((e[m]/p*10).toFixed(2)+"fr");return g}dispose(){this._removeAllOverlays()}}});import{css as Gp}from"@node-projects/base-custom-webcomponent";var Fi,Zl=u(()=>{"use strict";Xl();Ii();Fi=class{shouldExtend(e,t,i){let r=getComputedStyle(i.element).display;return r=="grid"||r=="inline-grid"?t.instanceServiceContainer.designContext.extensionOptions[Pi]!==!1:!1}getExtension(e,t,i){return new ys(e,t,i)}static style=Gp`
|
|
565
565
|
.svg-grid-resizer-v { fill: transparent; cursor: ew-resize; pointer-events: all; }
|
|
566
566
|
.svg-grid-resizer-v:hover { fill: #ff7f5052; }
|
|
567
567
|
.svg-grid-resizer-h { fill: transparent; cursor: ns-resize; pointer-events: all; }
|
|
568
568
|
.svg-grid-resizer-h:hover { fill: #ff7f5052; }
|
|
569
|
-
`}});var
|
|
569
|
+
`}});var ti,$l=u(()=>{"use strict";ti=class{extensions;extIndex;style;svgDefs;constructor(...e){this.extensions=e;for(let t of e)t.style&&(this.style||(this.style=[]),Array.isArray(t.style)?this.style.push(...t.style):this.style.push(t.style)),t.constructor.style&&(this.style||(this.style=[]),Array.isArray(t.constructor.style)?this.style.push(...t.constructor.style):this.style.push(t.constructor.style)),t.svgDefs&&(this.svgDefs||(this.svgDefs=[]),Array.isArray(t.svgDefs)?this.svgDefs.push(...t.svgDefs):this.svgDefs.push(t.svgDefs)),t.constructor.svgDefs&&(this.svgDefs||(this.svgDefs=[]),Array.isArray(t.constructor.svgDefs)?this.svgDefs.push(...t.svgDefs):this.svgDefs.push(t.constructor.svgDefs))}shouldExtend(e,t,i){for(this.extIndex=0;this.extIndex<this.extensions.length;this.extIndex++)if(this.extensions[this.extIndex].shouldExtend(e,t,i))return!0;return!1}getExtension(e,t,i){return this.extensions[this.extIndex].getExtension(e,t,i)}}});var vs,ql=u(()=>{"use strict";vs=class{_designItemsAssignmentList=new WeakMap;constructor(e){}setPosition(e,t){this._designItemsAssignmentList.set(e,t)}getPosition(e){return this._designItemsAssignmentList.get(e)}}});import{html as Wp,BaseCustomWebComponentConstructorAppend as jp,css as Up}from"@node-projects/base-custom-webcomponent";var zi,Ql=u(()=>{"use strict";be();te();zi=class extends jp{_designerView;_previousSelectionRect;_selectionChanged;_relativeButton;_absoluteButton;_applyButton;_inputX;_inputY;_inputR;_inputSpacingX;_inputSpacingY;_originTopLeft;_originTopMid;_originTopRight;_originMidLeft;_originMidMid;_originMidRight;_originBotLeft;_originBotMid;_originBotRight;_transformMode;_transformOrigin;static style=Up`
|
|
570
570
|
.container {
|
|
571
571
|
width: 220px;
|
|
572
572
|
min-height: 200px;
|
|
@@ -694,9 +694,9 @@ span {
|
|
|
694
694
|
<button id="transform-button-apply" style="width:100px;">apply</button>
|
|
695
695
|
</div>
|
|
696
696
|
</main>
|
|
697
|
-
</div>`;constructor(){super(),this._relativeButton=this._getDomElement("transform-button-relative"),this._absoluteButton=this._getDomElement("transform-button-absolute"),this._applyButton=this._getDomElement("transform-button-apply"),this._inputX=this._getDomElement("transform-input-x"),this._inputY=this._getDomElement("transform-input-y"),this._inputR=this._getDomElement("transform-input-r"),this._inputSpacingX=this._getDomElement("spacing-input-x"),this._inputSpacingY=this._getDomElement("spacing-input-y"),this._originTopLeft=this._getDomElement("origin-top-left"),this._originTopMid=this._getDomElement("origin-top-mid"),this._originTopRight=this._getDomElement("origin-top-right"),this._originMidLeft=this._getDomElement("origin-mid-left"),this._originMidMid=this._getDomElement("origin-mid-mid"),this._originMidRight=this._getDomElement("origin-mid-right"),this._originBotLeft=this._getDomElement("origin-bot-left"),this._originBotMid=this._getDomElement("origin-bot-mid"),this._originBotRight=this._getDomElement("origin-bot-right"),this._relativeButton.onclick=()=>this._changePositionMode("relative"),this._absoluteButton.onclick=()=>this._changePositionMode("absolute"),this._applyButton.onclick=()=>this._applyTransform(),this._transformMode="relative",this._changePositionMode(this._transformMode)}_changePositionMode(e){e=="relative"?(this._relativeButton.style.backgroundColor="#6F8A9D",this._relativeButton.style.color="black",this._absoluteButton.style.backgroundColor="#A4B5C1",this._absoluteButton.style.color="#77716E"):(this._absoluteButton.style.backgroundColor="#6F8A9D",this._absoluteButton.style.color="black",this._relativeButton.style.backgroundColor="#A4B5C1",this._relativeButton.style.color="#77716E"),this._transformMode=e}_applyTransform(){this._checkOrigin(),this._designerView=this.getRootNode().host.designerView;let e=this._designerView.instanceServiceContainer.selectionService.selectedElements;if(e=ne(e),this._selectionChanged=!1,this._designerView.instanceServiceContainer.selectionService.onSelectionChanged.once(()=>{this._selectionChanged=!0,this._previousSelectionRect=null}),e.length!=0){let t={x:isNaN(this._inputX.valueAsNumber)?null:this._inputX.valueAsNumber,y:isNaN(this._inputY.valueAsNumber)?null:this._inputY.valueAsNumber},i=this._inputR.valueAsNumber?this._inputR.valueAsNumber:0,r=e[0].openGroup("Transform selection");(!this._previousSelectionRect||this._selectionChanged)&&(this._previousSelectionRect=ir(e,this._designerView.designerCanvas));let n=this._calculateTransformOriginPosition(this._previousSelectionRect);for(let o of e){let a={x:parseFloat(o.getStyle("left")),y:parseFloat(o.getStyle("top")),width:parseFloat(o.getStyle("width")),height:parseFloat(o.getStyle("height"))},l=o.getStyle("transform"),c=0;l&&(c=parseFloat(o.getStyle("transform").replaceAll("rotate(","").replaceAll("deg)","")));let h=this._calculateTransform(this._previousSelectionRect,n,a,i,t,this._transformMode);o.setStyle("left",h.x.toString()+"px"),o.setStyle("top",h.y.toString()+"px");let d;for(this._transformMode=="relative"?d=c+i:d=i;d>=360;)d-=360;d!=0?o.setStyle("transform","rotate("+d+"deg)"):o.removeStyle("transform")}this._applySpacing(e),r.commit()}}_calculateTransformOriginPosition(e){switch(this._transformOrigin){case"topLeft":return{x:e.x,y:e.y};case"topMid":return{x:e.x+e.width/2,y:e.y};case"topRight":return{x:e.x+e.width,y:e.y};case"midLeft":return{x:e.x,y:e.y+e.height/2};case"midMid":return{x:e.x+e.width/2,y:e.y+e.height/2};case"midRight":return{x:e.x+e.width,y:e.y+e.height/2};case"botLeft":return{x:e.x,y:e.y+e.height};case"botMid":return{x:e.x+e.width/2,y:e.y+e.height};case"botRight":return{x:e.x+e.width,y:e.y+e.height}}}_checkOrigin(){this._originTopLeft.checked?this._transformOrigin="topLeft":this._originTopMid.checked?this._transformOrigin="topMid":this._originTopRight.checked?this._transformOrigin="topRight":this._originMidLeft.checked?this._transformOrigin="midLeft":this._originMidMid.checked?this._transformOrigin="midMid":this._originMidRight.checked?this._transformOrigin="midRight":this._originBotLeft.checked?this._transformOrigin="botLeft":this._originBotMid.checked?this._transformOrigin="botMid":this._originBotRight.checked&&(this._transformOrigin="botRight")}_calculateTransform(e,t,i,r,n,o){let a;r=r*(Math.PI/180),o=="absolute"&&(n.x&&(n.x=n.x-e.x),n.y&&(n.y=n.y-e.y)),t={x:t.x-i.width/2,y:t.y-i.height/2};let l={x:i.x-t.x,y:i.y-t.y};return a={x:Math.cos(r)*l.x-Math.sin(r)*l.y+t.x+n.x,y:Math.sin(r)*l.x+Math.cos(r)*l.y+t.y+n.y},a}_applySpacing(e){let t=this._inputSpacingX.valueAsNumber,i=this._inputSpacingY.valueAsNumber;if(!isNaN(t)){let r=e.sort((o,a)=>parseFloat(o.getStyle("left"))-parseFloat(a.getStyle("left"))),n=parseFloat(r[0].getStyle("left"));for(let o=0;o<r.length;o++)r[o].setStyle("left",o*t+n+"px")}if(!isNaN(i)){let r=e.sort((o,a)=>parseFloat(o.getStyle("top"))-parseFloat(a.getStyle("top"))),n=parseFloat(r[0].getStyle("top"));for(let o=0;o<r.length;o++)r[o].setStyle("top",o*i+n+"px")}}};customElements.define("node-projects-designer-transform-tool-popup",zi)});var xs,Jl=u(()=>{"use strict";We();$();Ql();xs=class{provideButton(e){let t=new se(e,{"":{icon:v+"images/tools/TransformTool.svg"}});return t.popup=zi,t}}});var _s,ec=u(()=>{"use strict";te();be();J();X();_s=class extends N{_line1;_line2;_line3;_line4;_designerView;constructor(e,t,i){super(e,t,i),this._designerView=t}extend(){this.refresh()}refresh(){let e=this._designerView.instanceServiceContainer.selectionService.selectedElements;if(e.length>1){e=ne(e);let t=ir(e,this._designerView);this._line1=this._drawLine(t.x,t.y,t.x+t.width,t.y,"svg-multiple-rect-selection",this._line1,
|
|
697
|
+
</div>`;constructor(){super(),this._relativeButton=this._getDomElement("transform-button-relative"),this._absoluteButton=this._getDomElement("transform-button-absolute"),this._applyButton=this._getDomElement("transform-button-apply"),this._inputX=this._getDomElement("transform-input-x"),this._inputY=this._getDomElement("transform-input-y"),this._inputR=this._getDomElement("transform-input-r"),this._inputSpacingX=this._getDomElement("spacing-input-x"),this._inputSpacingY=this._getDomElement("spacing-input-y"),this._originTopLeft=this._getDomElement("origin-top-left"),this._originTopMid=this._getDomElement("origin-top-mid"),this._originTopRight=this._getDomElement("origin-top-right"),this._originMidLeft=this._getDomElement("origin-mid-left"),this._originMidMid=this._getDomElement("origin-mid-mid"),this._originMidRight=this._getDomElement("origin-mid-right"),this._originBotLeft=this._getDomElement("origin-bot-left"),this._originBotMid=this._getDomElement("origin-bot-mid"),this._originBotRight=this._getDomElement("origin-bot-right"),this._relativeButton.onclick=()=>this._changePositionMode("relative"),this._absoluteButton.onclick=()=>this._changePositionMode("absolute"),this._applyButton.onclick=()=>this._applyTransform(),this._transformMode="relative",this._changePositionMode(this._transformMode)}_changePositionMode(e){e=="relative"?(this._relativeButton.style.backgroundColor="#6F8A9D",this._relativeButton.style.color="black",this._absoluteButton.style.backgroundColor="#A4B5C1",this._absoluteButton.style.color="#77716E"):(this._absoluteButton.style.backgroundColor="#6F8A9D",this._absoluteButton.style.color="black",this._relativeButton.style.backgroundColor="#A4B5C1",this._relativeButton.style.color="#77716E"),this._transformMode=e}_applyTransform(){this._checkOrigin(),this._designerView=this.getRootNode().host.designerView;let e=this._designerView.instanceServiceContainer.selectionService.selectedElements;if(e=ne(e),this._selectionChanged=!1,this._designerView.instanceServiceContainer.selectionService.onSelectionChanged.once(()=>{this._selectionChanged=!0,this._previousSelectionRect=null}),e.length!=0){let t={x:isNaN(this._inputX.valueAsNumber)?null:this._inputX.valueAsNumber,y:isNaN(this._inputY.valueAsNumber)?null:this._inputY.valueAsNumber},i=this._inputR.valueAsNumber?this._inputR.valueAsNumber:0,r=e[0].openGroup("Transform selection");(!this._previousSelectionRect||this._selectionChanged)&&(this._previousSelectionRect=ir(e,this._designerView.designerCanvas));let n=this._calculateTransformOriginPosition(this._previousSelectionRect);for(let o of e){let a={x:parseFloat(o.getStyle("left")),y:parseFloat(o.getStyle("top")),width:parseFloat(o.getStyle("width")),height:parseFloat(o.getStyle("height"))},l=o.getStyle("transform"),c=0;l&&(c=parseFloat(o.getStyle("transform").replaceAll("rotate(","").replaceAll("deg)","")));let h=this._calculateTransform(this._previousSelectionRect,n,a,i,t,this._transformMode);o.setStyle("left",h.x.toString()+"px"),o.setStyle("top",h.y.toString()+"px");let d;for(this._transformMode=="relative"?d=c+i:d=i;d>=360;)d-=360;d!=0?o.setStyle("transform","rotate("+d+"deg)"):o.removeStyle("transform")}this._applySpacing(e),r.commit()}}_calculateTransformOriginPosition(e){switch(this._transformOrigin){case"topLeft":return{x:e.x,y:e.y};case"topMid":return{x:e.x+e.width/2,y:e.y};case"topRight":return{x:e.x+e.width,y:e.y};case"midLeft":return{x:e.x,y:e.y+e.height/2};case"midMid":return{x:e.x+e.width/2,y:e.y+e.height/2};case"midRight":return{x:e.x+e.width,y:e.y+e.height/2};case"botLeft":return{x:e.x,y:e.y+e.height};case"botMid":return{x:e.x+e.width/2,y:e.y+e.height};case"botRight":return{x:e.x+e.width,y:e.y+e.height}}}_checkOrigin(){this._originTopLeft.checked?this._transformOrigin="topLeft":this._originTopMid.checked?this._transformOrigin="topMid":this._originTopRight.checked?this._transformOrigin="topRight":this._originMidLeft.checked?this._transformOrigin="midLeft":this._originMidMid.checked?this._transformOrigin="midMid":this._originMidRight.checked?this._transformOrigin="midRight":this._originBotLeft.checked?this._transformOrigin="botLeft":this._originBotMid.checked?this._transformOrigin="botMid":this._originBotRight.checked&&(this._transformOrigin="botRight")}_calculateTransform(e,t,i,r,n,o){let a;r=r*(Math.PI/180),o=="absolute"&&(n.x&&(n.x=n.x-e.x),n.y&&(n.y=n.y-e.y)),t={x:t.x-i.width/2,y:t.y-i.height/2};let l={x:i.x-t.x,y:i.y-t.y};return a={x:Math.cos(r)*l.x-Math.sin(r)*l.y+t.x+n.x,y:Math.sin(r)*l.x+Math.cos(r)*l.y+t.y+n.y},a}_applySpacing(e){let t=this._inputSpacingX.valueAsNumber,i=this._inputSpacingY.valueAsNumber;if(!isNaN(t)){let r=e.sort((o,a)=>parseFloat(o.getStyle("left"))-parseFloat(a.getStyle("left"))),n=parseFloat(r[0].getStyle("left"));for(let o=0;o<r.length;o++)r[o].setStyle("left",o*t+n+"px")}if(!isNaN(i)){let r=e.sort((o,a)=>parseFloat(o.getStyle("top"))-parseFloat(a.getStyle("top"))),n=parseFloat(r[0].getStyle("top"));for(let o=0;o<r.length;o++)r[o].setStyle("top",o*i+n+"px")}}};customElements.define("node-projects-designer-transform-tool-popup",zi)});var xs,Jl=u(()=>{"use strict";We();$();Ql();xs=class{provideButton(e){let t=new se(e,{"":{icon:v+"images/tools/TransformTool.svg"}});return t.popup=zi,t}}});var _s,ec=u(()=>{"use strict";te();be();J();X();_s=class extends N{_line1;_line2;_line3;_line4;_designerView;constructor(e,t,i){super(e,t,i),this._designerView=t}extend(){this.refresh()}refresh(){let e=this._designerView.instanceServiceContainer.selectionService.selectedElements;if(e.length>1){e=ne(e);let t=ir(e,this._designerView);this._line1=this._drawLine(t.x,t.y,t.x+t.width,t.y,"svg-multiple-rect-selection",this._line1,I.Background),this._line2=this._drawLine(t.x+t.width,t.y,t.x+t.width,t.y+t.height,"svg-multiple-rect-selection",this._line2,I.Background),this._line3=this._drawLine(t.x+t.width,t.y+t.height,t.x,t.y+t.height,"svg-multiple-rect-selection",this._line3,I.Background),this._line4=this._drawLine(t.x,t.y+t.height,t.x,t.y,"svg-multiple-rect-selection",this._line4,I.Background),this._line1.style.strokeWidth=(2/this.designerCanvas.zoomFactor).toString(),this._line2.style.strokeWidth=(2/this.designerCanvas.zoomFactor).toString(),this._line3.style.strokeWidth=(2/this.designerCanvas.zoomFactor).toString(),this._line4.style.strokeWidth=(2/this.designerCanvas.zoomFactor).toString()}}dispose(){this._removeAllOverlays()}}});import{css as Kp}from"@node-projects/base-custom-webcomponent";var bs,tc=u(()=>{"use strict";ec();bs=class{shouldExtend(e,t,i){return!i.isRootItem&&!(i.element instanceof HTMLTemplateElement)}getExtension(e,t,i){return new _s(e,t,i)}static style=Kp`
|
|
698
698
|
.svg-multiple-rect-selection { stroke: #909090; stroke-dasharray: 3; fill: transparent; stroke-width: 2; /*pointer-events: all;*/ }
|
|
699
|
-
`}});var ws,ic=u(()=>{"use strict";q();De();$();ws=class{_dragOverExtensionItem;_oldX;_oldY;dragEnter(e,t){}dragLeave(e,t){this._dragOverExtensionItem&&(e.extensionManager.removeExtension(this._dragOverExtensionItem,w.ContainerExternalDragOverAndCanBeEntered),this._dragOverExtensionItem=null)}dragOver(e,t){let[i]=this.getPossibleContainerForDragDrop(e,t);i||(i=e.rootDesignItem),this._dragOverExtensionItem!=i?(e.extensionManager.removeExtension(this._dragOverExtensionItem,w.ContainerExternalDragOverAndCanBeEntered),e.extensionManager.applyExtension(i,w.ContainerExternalDragOverAndCanBeEntered,t),this._dragOverExtensionItem=i):t.x!=this._oldX&&t.y!=this._oldY&&(this._oldX=t.x,this._oldY=t.y,e.extensionManager.refreshExtension(i,w.ContainerExternalDragOverAndCanBeEntered,t))}async drop(e,t){this._dragOverExtensionItem&&(e.extensionManager.removeExtension(this._dragOverExtensionItem,w.ContainerExternalDragOverAndCanBeEntered),this._dragOverExtensionItem=null);let[i]=this.getPossibleContainerForDragDrop(e,t);i||(i=e.rootDesignItem);let r=t.dataTransfer.getData(Er),n=JSON.parse(r),o=await e.serviceContainer.forSomeServicesTillResult("instanceService",g=>g.getElement(n,e.serviceContainer,e.instanceServiceContainer)),a=o.openGroup("Insert of <"+o.name+">"),l=e.serviceContainer.getLastServiceWhere("containerService",g=>g.serviceForContainer(i,i.getComputedStyle(),o));l.enterContainer(i,[o],"drop");let c=e.getNormalizedElementCoordinates(i.element),h=e.getNormalizedEventCoordinates(t),d={x:h.x-c.x,y:h.y-c.y},p={x:0,y:0};n.mouseOffset&&(p=n.mouseOffset),l.place(t,e,i,p,{x:0,y:0},d,[o]),l.finishPlace(t,e,i,p,{x:0,y:0},d,[o]),requestAnimationFrame(()=>{e.instanceServiceContainer.selectionService.setSelectedElements([o],t),a.commit()})}getPossibleContainerForDragDrop(e,t){let i=null,r=null,n=e.elementsFromPoint(t.clientX,t.clientY);for(let o of n)if(o==e.rootDesignItem.element){i=e.rootDesignItem;let a=getComputedStyle(i.element);r=e.serviceContainer.getLastServiceWhere("containerService",l=>l.serviceForContainer(i,a));break}else{i=T.GetOrCreateDesignItem(o,o,e.serviceContainer,e.instanceServiceContainer);let a=getComputedStyle(i.element);if(r=e.serviceContainer.getLastServiceWhere("containerService",l=>l.serviceForContainer(i,a)),r){if(r.isEnterableContainer(i)&&!(i.element instanceof i.window.SVGElement))break;i=null,r=null;continue}}return[i,r]}}});var fe,Bi=u(()=>{"use strict";fe=class s{constructor(){}static _windowEvents=[{name:"afterprint",propertyName:"onafterprint",eventObjectName:"Event"},{name:"beforeprint",propertyName:"onbeforeprint",eventObjectName:"Event"},{name:"beforeunload",propertyName:"onbeforeunload",eventObjectName:"Event"},{name:"error",propertyName:"onerror",eventObjectName:"Event"},{name:"load",propertyName:"onload",eventObjectName:"Event"},{name:"hashchange",propertyName:"onhashchange",eventObjectName:"Event"},{name:"message",propertyName:"onmessage",eventObjectName:"Event"},{name:"offline",propertyName:"onoffline",eventObjectName:"Event"},{name:"online",propertyName:"ononline",eventObjectName:"Event"},{name:"pageshow",propertyName:"onpageshow",eventObjectName:"Event"},{name:"popstate",propertyName:"onpopstate",eventObjectName:"Event"},{name:"resize",propertyName:"onresize",eventObjectName:"Event"},{name:"storage",propertyName:"onstorage",eventObjectName:"Event"},{name:"unload",propertyName:"onunload",eventObjectName:"Event"}];static _allElements=[{name:"contextmenu",propertyName:"oncontextmenu",eventObjectName:"PointerEvent"}];static _focusableEvents=[{name:"blur",propertyName:"onblur",eventObjectName:"FocusEvent"},{name:"focus",propertyName:"onfocus",eventObjectName:"FocusEvent"},{name:"keydown",propertyName:"onkeydown",eventObjectName:"KeyboardEvent"},{name:"keyup",propertyName:"onkeyup",eventObjectName:"KeyboardEvent"}];static _simpleForm=[{name:"input",propertyName:"oninput",eventObjectName:"InputEvent"},{name:"change",propertyName:"onchange",eventObjectName:"Event"}];static _form=[{name:"beforeinput",propertyName:"onbeforeinput",eventObjectName:"InputEvent"},{name:"invalid",propertyName:"oninvalid",eventObjectName:"Event"},{name:"reset",propertyName:"onreset",eventObjectName:"Event"},{name:"select",propertyName:"onselect",eventObjectName:"Event"},{name:"submit",propertyName:"onsubmit",eventObjectName:"SubmitEvent"}];static _simpleMouseEvents=[{name:"click",propertyName:"onclick",eventObjectName:"PointerEvent"},{name:"dblclick",propertyName:"ondblclick",eventObjectName:"MouseEvent"},{name:"wheel",propertyName:"onwheel",eventObjectName:"WheelEvent"},{name:"scroll",propertyName:"onscroll",eventObjectName:"Event"}];static _mouseEvents=[{name:"mousedown",propertyName:"onmousedown",eventObjectName:"MouseEvent"},{name:"mouseup",propertyName:"onmouseup",eventObjectName:"MouseEvent"},{name:"mousemove",propertyName:"onmousemove",eventObjectName:"MouseEvent"},{name:"mouseover",propertyName:"onmouseover",eventObjectName:"MouseEvent"},{name:"mouseout",propertyName:"onmouseout",eventObjectName:"MouseEvent"}];static _pointerEvents=[{name:"pointerdown",propertyName:"onpointerdown",eventObjectName:"PointerEvent"},{name:"pointerup",propertyName:"onpointerup",eventObjectName:"PointerEvent"},{name:"pointerenter",propertyName:"onpointerenter",eventObjectName:"PointerEvent"},{name:"pointerleave",propertyName:"onpointerleave",eventObjectName:"PointerEvent"},{name:"pointermove",propertyName:"onpointermove",eventObjectName:"PointerEvent"},{name:"pointerover",propertyName:"onpointerover",eventObjectName:"PointerEvent"},{name:"pointerout",propertyName:"onpointerout",eventObjectName:"PointerEvent"},{name:"pointercancel",propertyName:"onpointercancel",eventObjectName:"PointerEvent"}];static _touchEvents=[{name:"touchstart",propertyName:"ontouchstart",eventObjectName:"TouchEvent"},{name:"touchend",propertyName:"ontouchend",eventObjectName:"TouchEvent"},{name:"touchmove",propertyName:"ontouchmove",eventObjectName:"TouchEvent"},{name:"touchcancel",propertyName:"ontouchcancel",eventObjectName:"TouchEvent"}];static _dragEvents=[{name:"drag",propertyName:"ondrag",eventObjectName:"DragEvent"},{name:"dragend",propertyName:"ondragend",eventObjectName:"DragEvent"},{name:"dragenter",propertyName:"ondragenter",eventObjectName:"DragEvent"},{name:"dragleave",propertyName:"ondragleave",eventObjectName:"DragEvent"},{name:"dragover",propertyName:"ondragover",eventObjectName:"DragEvent"},{name:"dragstart",propertyName:"ondragstart",eventObjectName:"DragEvent"},{name:"drop",propertyName:"ondrop",eventObjectName:"DragEvent"}];static _clipboard=[{name:"copy",propertyName:"oncopy",eventObjectName:"ClipboardEvent"},{name:"cut",propertyName:"oncut",eventObjectName:"ClipboardEvent"},{name:"paste",propertyName:"onpaste",eventObjectName:"ClipboardEvent"}];static _details=[{name:"toggle",propertyName:"ontoggle",eventObjectName:"Event"}];static _allEvents=[...s._windowEvents,...s._form,...s._simpleMouseEvents,...s._mouseEvents,...s._pointerEvents,...s._touchEvents,...s._allElements,...s._focusableEvents,...s._dragEvents,...s._clipboard,...s._dragEvents];isHandledElementFromEventsService(e){return!0}getPossibleEvents(e){return e.element instanceof e.window.HTMLInputElement||e.element instanceof e.window.HTMLTextAreaElement||e.element instanceof e.window.HTMLSelectElement?[...s._simpleForm,...s._simpleMouseEvents,...s._form,...s._pointerEvents,...s._allElements,...s._focusableEvents]:[...s._simpleMouseEvents,...s._pointerEvents,...s._allElements,...s._focusableEvents]}getEvent(e,t){return s._allEvents.find(r=>r.name==t)??{name:t,propertyName:"on"+t,eventObjectName:"Event"}}}});import{DomHelper as Yp,cssFromString as Xp}from"@node-projects/base-custom-webcomponent";var Ss,rc=u(()=>{"use strict";Ss=class{async provideDemo(e,t,i,r){let n=document.createElement("div"),o=n.attachShadow({mode:"open"});n.style.width="100%",n.style.height="100%",n.style.border="none",n.style.display="none",n.style.overflow="auto",n.style.position="absolute",e.style.position="relative",Yp.removeAllChildnodes(e),e.appendChild(n);let a=[];i.designerCanvas.additionalStyles&&a.push(...i.designerCanvas.additionalStyles),i.stylesheetService&&a.push(...i.stylesheetService.getStylesheets().map(l=>Xp(l.content))),o.adoptedStyleSheets=a,o.innerHTML="","setHTMLUnsafe"in o?o.setHTMLUnsafe(r):o.innerHTML=r,n.style.display=""}}});var Cs,nc=u(()=>{"use strict";ee();be();X();Cs=class{_elementDefinition;_createdItem;_startPosition;_changeGroup;cursor="crosshair";_rect;constructor(e){this._elementDefinition=e}activated(e){}dispose(){this._createdItem&&this._createdItem.element.parentElement.removeChild(this._createdItem.element)}pointerEventHandler(e,t,i){switch(t.type){case x.PointerDown:this._onPointerDown(e,t);break;case x.PointerMove:this._onPointerMove(e,t);break;case x.PointerUp:this._onPointerUp(e,t);break}}keyboardEventHandler(e,t,i){}sizeOverlapThreshold=!1;async _onPointerDown(e,t){let i=e.getNormalizedEventCoordinates(t);t.preventDefault(),this._startPosition={x:i.x,y:i.y},this._changeGroup=e.rootDesignItem.openGroup("Insert Item"),this._createdItem=await e.serviceContainer.forSomeServicesTillResult("instanceService",r=>r.getElement(this._elementDefinition,e.serviceContainer,e.instanceServiceContainer)),this._createdItem.setStyle("position","absolute"),this._createdItem.setStyle("left",O(this._createdItem,i.x)+"px"),this._createdItem.setStyle("top",O(this._createdItem,i.y)+"px"),this._createdItem.setStyle("width","0"),this._createdItem.setStyle("height","0"),e.rootDesignItem.insertChild(this._createdItem),e.instanceServiceContainer.selectionService.clearSelectedElements()}async _onPointerMove(e,t){let i=e.getNormalizedEventCoordinates(t);if(this._createdItem){this._rect||(this._rect=document.createElementNS("http://www.w3.org/2000/svg","rect"),e.overlayLayer.addOverlay(this.constructor.name,this._rect,k.Foreground),this._rect.setAttribute("class","svg-draw-new-element"),this._rect.setAttribute("x",O(this._createdItem,this._startPosition.x)),this._rect.setAttribute("y",O(this._createdItem,this._startPosition.y)));let r=O(this._createdItem,i.x-this._startPosition.x),n=O(this._createdItem,i.y-this._startPosition.y);parseFloat(""+r)>=0&&(this._rect.setAttribute("width",r),this._createdItem.setStyle("width",r+"px")),parseFloat(""+n)>=0&&(this._rect.setAttribute("height",n),this._createdItem.setStyle("height",n+"px")),(parseFloat(""+r)>5||parseFloat(""+n)>5)&&(this.sizeOverlapThreshold=!0)}}async _onPointerUp(e,t){this.sizeOverlapThreshold?(this._changeGroup.commit(),e.instanceServiceContainer.selectionService.setSelectedElements([this._createdItem],t)):this._changeGroup.abort(),e.overlayLayer.removeOverlay(this._rect),this._startPosition=null,this._rect=null,this._createdItem=null,e.serviceContainer.globalContext.finishedWithTool(this)}}});var Es,sc=u(()=>{"use strict";Es=class{constructor(){}provideButtons(e,t){let i=document.createElement("div");i.className="toolbar-control",i.title="round pixels to";let r=document.createElement("input");return r.type="number",r.step="1",r.min="-1",r.valueAsNumber=e.serviceContainer.options.roundPixelsToDecimalPlaces,r.onchange=()=>e.serviceContainer.options.roundPixelsToDecimalPlaces=r.valueAsNumber,i.appendChild(r),[i]}}});var As,oc=u(()=>{"use strict";Lt();ie();re();As=class extends Ie{commonMathProperties=[{name:"displaystyle",type:"boolean",service:this,defaultValue:!0,propertyType:y.propertyAndAttribute}];mathProperties=[{name:"display",type:"list",values:["block","inline"],service:this,defaultValue:"text",propertyType:y.propertyAndAttribute}];mfracProperties=[{name:"denomalign",type:"list",values:["left","center","right"],service:this,defaultValue:"center",propertyType:y.propertyAndAttribute},{name:"linethickness",type:"string",service:this,propertyType:y.propertyAndAttribute},{name:"numalign",type:"list",values:["left","center","right"],service:this,defaultValue:"center",propertyType:y.propertyAndAttribute}];name="mathml";getRefreshMode(e){return G.full}isHandledElement(e){return e.element instanceof e.window.MathMLElement}async getProperty(e,t){return(await this.getProperties(e)).find(i=>i.name==t)}async getProperties(e){if(!this.isHandledElement(e))return null;switch(e.element.localName){case"math":return[...this.commonMathProperties,...this.mathProperties];case"merror":return[...this.commonMathProperties];case"mfrac":return[...this.commonMathProperties,...this.mfracProperties];default:return[...this.commonMathProperties]}}}});function Ps(s){let e=s;for(;e;){if(e instanceof(e.ownerDocument.defaultView??window).SVGSVGElement)return!0;if(e instanceof(e.ownerDocument.defaultView??window).SVGDefsElement||e instanceof(e.ownerDocument.defaultView??window).SVGMetadataElement)return!1;e=e.parentElement}return!0}var ac=u(()=>{"use strict"});function Zp(s){return s instanceof SVGRectElement?[{x:s.x.baseVal.value,y:s.y.baseVal.value},{x:s.x.baseVal.value+s.width.baseVal.value,y:s.y.baseVal.value},{x:s.x.baseVal.value+s.width.baseVal.value,y:s.y.baseVal.value+s.height.baseVal.value},{x:s.x.baseVal.value,y:s.y.baseVal.value+s.height.baseVal.value}]:s instanceof SVGLineElement?[{x:s.x1.baseVal.value,y:s.y1.baseVal.value},{x:s.x2.baseVal.value,y:s.y2.baseVal.value}]:null}var ks,lc=u(()=>{"use strict";ee();J();X();ks=class extends N{constructor(e,t,i){super(e,t,i)}_parentRect;_svgElement;_circles=[];_points;_startPoint;_startPos;extend(){this._parentRect=this.extendedItem.element.parentElement.getBoundingClientRect(),this._svgElement=this.extendedItem.node,this.refresh()}refresh(){let e=Zp(this._svgElement);if(e&&this._valuesHaveChanges(this.designerCanvas.scaleFactor,...e.map(t=>t.x),...e.map(t=>t.y))){this._points=e;for(let t=0;t<this._points.length;t++)this._circles[t]=this._drawPathCircle(t,this._circles[t])}}dispose(){this._removeAllOverlays()}_drawPathCircle(e,t){let i=this._drawCircle((this._parentRect.x-this.designerCanvas.containerBoundingRect.x)/this.designerCanvas.scaleFactor+this._points[e].x,(this._parentRect.y-this.designerCanvas.containerBoundingRect.y)/this.designerCanvas.scaleFactor+this._points[e].y,5/this.designerCanvas.scaleFactor,"svg-path",t,k.Foreground);return i.style.strokeWidth=(1/this.designerCanvas.zoomFactor).toString(),t||(i.addEventListener(x.PointerDown,r=>this.pointerEvent(r,e,i)),i.addEventListener(x.PointerMove,r=>this.pointerEvent(r,e,i)),i.addEventListener(x.PointerUp,r=>this.pointerEvent(r,e,i))),i}pointerEvent(e,t,i,r){e.stopPropagation(),e.preventDefault();let n=this.designerCanvas.getNormalizedEventCoordinates(e),o=this._points[t];switch(e.type){case x.PointerDown:e.target.setPointerCapture(e.pointerId),this._startPos=n,this._startPoint={...o};break;case x.PointerMove:if(this._startPos&&e.buttons>0){let a=this._startPos.x-n.x,l=this._startPos.y-n.y;e.shiftKey&&(Math.abs(a)<Math.abs(l)?a=0:l=0),o.x=this._startPoint.x-a,o.y=this._startPoint.y-l,this.modifyElementPoint(this._svgElement,t,o),this.designerCanvas.extensionManager.refreshAllExtensions([this.extendedItem],this)}break;case x.PointerUp:e.target.releasePointerCapture(e.pointerId),this._startPos=null;break}}modifyElementPoint(e,t,i){e instanceof SVGRectElement?(t==1?(this._points[0].y=i.y,this._points[2].x=i.x):t==3&&(this._points[2].y=i.y,this._points[0].x=i.x),e.x.baseVal.value=this._points[0].x,e.y.baseVal.value=this._points[0].y,e.width.baseVal.value=this._points[2].x-this._points[0].x,e.height.baseVal.value=this._points[2].y-this._points[0].y):e instanceof SVGLineElement&&(e.x1.baseVal.value=this._points[0].x,e.y1.baseVal.value=this._points[0].y,e.x2.baseVal.value=this._points[1].x,e.y2.baseVal.value=this._points[1].y)}_getMinMaxValues(e){let t={xMin:0,xMax:0,yMin:0,yMax:0};for(let i=0;i<e.length-2;i++)e[i]<e[i+1]&&i<=3?t.xMin=e[i]:e[i]<e[i+1]&&i>3&&i<=7&&(t.yMin=e[i]),e[i]>e[i+1]&&i<=3?t.xMax=e[i]:e[i]>e[i+1]&&i>3&&i<=8&&(t.yMax=e[i]);return t}}});var Is,cc=u(()=>{"use strict";ac();lc();Is=class{shouldExtend(e,t,i){return i.node instanceof SVGRectElement||i.node instanceof SVGLineElement||i.node instanceof SVGCircleElement||i.node instanceof SVGPathElement?Ps(i.node):!1}getExtension(e,t,i){return new ks(e,t,i)}}});var it,hc=u(()=>{"use strict";it=class{constructor(e,t,i=!1){this.extensionProvider=e,this.condition=t,this.style=e.style??e.constructor.style,this.svgDefs=e.svgDefs??e.constructor.svgDefs}extensionProvider;condition;style;svgDefs;shouldExtend(e,t,i){return this.condition(i,t)?this.extensionProvider.shouldExtend(e,t,i):!1}getExtension(e,t,i){return this.extensionProvider.getExtension(e,t,i)}}});var Ue,Ce,Le=u(()=>{"use strict";$();J();Ue="basicStackedToolbarExtensionShowOverlay",Ce=class s extends N{static basicTemplate=`
|
|
699
|
+
`}});var ws,ic=u(()=>{"use strict";q();De();$();ws=class{_dragOverExtensionItem;_oldX;_oldY;dragEnter(e,t){}dragLeave(e,t){this._dragOverExtensionItem&&(e.extensionManager.removeExtension(this._dragOverExtensionItem,w.ContainerExternalDragOverAndCanBeEntered),this._dragOverExtensionItem=null)}dragOver(e,t){let[i]=this.getPossibleContainerForDragDrop(e,t);i||(i=e.rootDesignItem),this._dragOverExtensionItem!=i?(e.extensionManager.removeExtension(this._dragOverExtensionItem,w.ContainerExternalDragOverAndCanBeEntered),e.extensionManager.applyExtension(i,w.ContainerExternalDragOverAndCanBeEntered,t),this._dragOverExtensionItem=i):t.x!=this._oldX&&t.y!=this._oldY&&(this._oldX=t.x,this._oldY=t.y,e.extensionManager.refreshExtension(i,w.ContainerExternalDragOverAndCanBeEntered,t))}async drop(e,t){this._dragOverExtensionItem&&(e.extensionManager.removeExtension(this._dragOverExtensionItem,w.ContainerExternalDragOverAndCanBeEntered),this._dragOverExtensionItem=null);let[i]=this.getPossibleContainerForDragDrop(e,t);i||(i=e.rootDesignItem);let r=t.dataTransfer.getData(Er),n=JSON.parse(r),o=await e.serviceContainer.forSomeServicesTillResult("instanceService",g=>g.getElement(n,e.serviceContainer,e.instanceServiceContainer)),a=o.openGroup("Insert of <"+o.name+">"),l=e.serviceContainer.getLastServiceWhere("containerService",g=>g.serviceForContainer(i,i.getComputedStyle(),o));l.enterContainer(i,[o],"drop");let c=e.getNormalizedElementCoordinates(i.element),h=e.getNormalizedEventCoordinates(t),d={x:h.x-c.x,y:h.y-c.y},p={x:0,y:0};n.mouseOffset&&(p=n.mouseOffset),l.place(t,e,i,p,{x:0,y:0},d,[o]),l.finishPlace(t,e,i,p,{x:0,y:0},d,[o]),requestAnimationFrame(()=>{e.instanceServiceContainer.selectionService.setSelectedElements([o],t),a.commit()})}getPossibleContainerForDragDrop(e,t){let i=null,r=null,n=e.elementsFromPoint(t.clientX,t.clientY);for(let o of n)if(o==e.rootDesignItem.element){i=e.rootDesignItem;let a=getComputedStyle(i.element);r=e.serviceContainer.getLastServiceWhere("containerService",l=>l.serviceForContainer(i,a));break}else{i=T.GetOrCreateDesignItem(o,o,e.serviceContainer,e.instanceServiceContainer);let a=getComputedStyle(i.element);if(r=e.serviceContainer.getLastServiceWhere("containerService",l=>l.serviceForContainer(i,a)),r){if(r.isEnterableContainer(i)&&!(i.element instanceof i.window.SVGElement))break;i=null,r=null;continue}}return[i,r]}}});var ge,Bi=u(()=>{"use strict";ge=class s{constructor(){}static _windowEvents=[{name:"afterprint",propertyName:"onafterprint",eventObjectName:"Event"},{name:"beforeprint",propertyName:"onbeforeprint",eventObjectName:"Event"},{name:"beforeunload",propertyName:"onbeforeunload",eventObjectName:"Event"},{name:"error",propertyName:"onerror",eventObjectName:"Event"},{name:"load",propertyName:"onload",eventObjectName:"Event"},{name:"hashchange",propertyName:"onhashchange",eventObjectName:"Event"},{name:"message",propertyName:"onmessage",eventObjectName:"Event"},{name:"offline",propertyName:"onoffline",eventObjectName:"Event"},{name:"online",propertyName:"ononline",eventObjectName:"Event"},{name:"pageshow",propertyName:"onpageshow",eventObjectName:"Event"},{name:"popstate",propertyName:"onpopstate",eventObjectName:"Event"},{name:"resize",propertyName:"onresize",eventObjectName:"Event"},{name:"storage",propertyName:"onstorage",eventObjectName:"Event"},{name:"unload",propertyName:"onunload",eventObjectName:"Event"}];static _allElements=[{name:"contextmenu",propertyName:"oncontextmenu",eventObjectName:"PointerEvent"}];static _focusableEvents=[{name:"blur",propertyName:"onblur",eventObjectName:"FocusEvent"},{name:"focus",propertyName:"onfocus",eventObjectName:"FocusEvent"},{name:"keydown",propertyName:"onkeydown",eventObjectName:"KeyboardEvent"},{name:"keyup",propertyName:"onkeyup",eventObjectName:"KeyboardEvent"}];static _simpleForm=[{name:"input",propertyName:"oninput",eventObjectName:"InputEvent"},{name:"change",propertyName:"onchange",eventObjectName:"Event"}];static _form=[{name:"beforeinput",propertyName:"onbeforeinput",eventObjectName:"InputEvent"},{name:"invalid",propertyName:"oninvalid",eventObjectName:"Event"},{name:"reset",propertyName:"onreset",eventObjectName:"Event"},{name:"select",propertyName:"onselect",eventObjectName:"Event"},{name:"submit",propertyName:"onsubmit",eventObjectName:"SubmitEvent"}];static _simpleMouseEvents=[{name:"click",propertyName:"onclick",eventObjectName:"PointerEvent"},{name:"dblclick",propertyName:"ondblclick",eventObjectName:"MouseEvent"},{name:"wheel",propertyName:"onwheel",eventObjectName:"WheelEvent"},{name:"scroll",propertyName:"onscroll",eventObjectName:"Event"}];static _mouseEvents=[{name:"mousedown",propertyName:"onmousedown",eventObjectName:"MouseEvent"},{name:"mouseup",propertyName:"onmouseup",eventObjectName:"MouseEvent"},{name:"mousemove",propertyName:"onmousemove",eventObjectName:"MouseEvent"},{name:"mouseover",propertyName:"onmouseover",eventObjectName:"MouseEvent"},{name:"mouseout",propertyName:"onmouseout",eventObjectName:"MouseEvent"}];static _pointerEvents=[{name:"pointerdown",propertyName:"onpointerdown",eventObjectName:"PointerEvent"},{name:"pointerup",propertyName:"onpointerup",eventObjectName:"PointerEvent"},{name:"pointerenter",propertyName:"onpointerenter",eventObjectName:"PointerEvent"},{name:"pointerleave",propertyName:"onpointerleave",eventObjectName:"PointerEvent"},{name:"pointermove",propertyName:"onpointermove",eventObjectName:"PointerEvent"},{name:"pointerover",propertyName:"onpointerover",eventObjectName:"PointerEvent"},{name:"pointerout",propertyName:"onpointerout",eventObjectName:"PointerEvent"},{name:"pointercancel",propertyName:"onpointercancel",eventObjectName:"PointerEvent"}];static _touchEvents=[{name:"touchstart",propertyName:"ontouchstart",eventObjectName:"TouchEvent"},{name:"touchend",propertyName:"ontouchend",eventObjectName:"TouchEvent"},{name:"touchmove",propertyName:"ontouchmove",eventObjectName:"TouchEvent"},{name:"touchcancel",propertyName:"ontouchcancel",eventObjectName:"TouchEvent"}];static _dragEvents=[{name:"drag",propertyName:"ondrag",eventObjectName:"DragEvent"},{name:"dragend",propertyName:"ondragend",eventObjectName:"DragEvent"},{name:"dragenter",propertyName:"ondragenter",eventObjectName:"DragEvent"},{name:"dragleave",propertyName:"ondragleave",eventObjectName:"DragEvent"},{name:"dragover",propertyName:"ondragover",eventObjectName:"DragEvent"},{name:"dragstart",propertyName:"ondragstart",eventObjectName:"DragEvent"},{name:"drop",propertyName:"ondrop",eventObjectName:"DragEvent"}];static _clipboard=[{name:"copy",propertyName:"oncopy",eventObjectName:"ClipboardEvent"},{name:"cut",propertyName:"oncut",eventObjectName:"ClipboardEvent"},{name:"paste",propertyName:"onpaste",eventObjectName:"ClipboardEvent"}];static _details=[{name:"toggle",propertyName:"ontoggle",eventObjectName:"Event"}];static _allEvents=[...s._windowEvents,...s._form,...s._simpleMouseEvents,...s._mouseEvents,...s._pointerEvents,...s._touchEvents,...s._allElements,...s._focusableEvents,...s._dragEvents,...s._clipboard,...s._dragEvents];isHandledElementFromEventsService(e){return!0}getPossibleEvents(e){return e.element instanceof e.window.HTMLInputElement||e.element instanceof e.window.HTMLTextAreaElement||e.element instanceof e.window.HTMLSelectElement?[...s._simpleForm,...s._simpleMouseEvents,...s._form,...s._pointerEvents,...s._allElements,...s._focusableEvents]:[...s._simpleMouseEvents,...s._pointerEvents,...s._allElements,...s._focusableEvents]}getEvent(e,t){return s._allEvents.find(r=>r.name==t)??{name:t,propertyName:"on"+t,eventObjectName:"Event"}}}});import{DomHelper as Yp,cssFromString as Xp}from"@node-projects/base-custom-webcomponent";var Ss,rc=u(()=>{"use strict";Ss=class{async provideDemo(e,t,i,r){let n=document.createElement("div"),o=n.attachShadow({mode:"open"});n.style.width="100%",n.style.height="100%",n.style.border="none",n.style.display="none",n.style.overflow="auto",n.style.position="absolute",e.style.position="relative",Yp.removeAllChildnodes(e),e.appendChild(n);let a=[];i.designerCanvas.additionalStyles&&a.push(...i.designerCanvas.additionalStyles),i.stylesheetService&&a.push(...i.stylesheetService.getStylesheets().map(l=>Xp(l.content))),o.adoptedStyleSheets=a,o.innerHTML="","setHTMLUnsafe"in o?o.setHTMLUnsafe(r):o.innerHTML=r,n.style.display=""}}});var Cs,nc=u(()=>{"use strict";ee();be();X();Cs=class{_elementDefinition;_createdItem;_startPosition;_changeGroup;cursor="crosshair";_rect;constructor(e){this._elementDefinition=e}activated(e){}dispose(){this._createdItem&&this._createdItem.element.parentElement.removeChild(this._createdItem.element)}pointerEventHandler(e,t,i){switch(t.type){case x.PointerDown:this._onPointerDown(e,t);break;case x.PointerMove:this._onPointerMove(e,t);break;case x.PointerUp:this._onPointerUp(e,t);break}}keyboardEventHandler(e,t,i){}sizeOverlapThreshold=!1;async _onPointerDown(e,t){let i=e.getNormalizedEventCoordinates(t);t.preventDefault(),this._startPosition={x:i.x,y:i.y},this._changeGroup=e.rootDesignItem.openGroup("Insert Item"),this._createdItem=await e.serviceContainer.forSomeServicesTillResult("instanceService",r=>r.getElement(this._elementDefinition,e.serviceContainer,e.instanceServiceContainer)),this._createdItem.setStyle("position","absolute"),this._createdItem.setStyle("left",O(this._createdItem,i.x)+"px"),this._createdItem.setStyle("top",O(this._createdItem,i.y)+"px"),this._createdItem.setStyle("width","0"),this._createdItem.setStyle("height","0"),e.rootDesignItem.insertChild(this._createdItem),e.instanceServiceContainer.selectionService.clearSelectedElements()}async _onPointerMove(e,t){let i=e.getNormalizedEventCoordinates(t);if(this._createdItem){this._rect||(this._rect=document.createElementNS("http://www.w3.org/2000/svg","rect"),e.overlayLayer.addOverlay(this.constructor.name,this._rect,I.Foreground),this._rect.setAttribute("class","svg-draw-new-element"),this._rect.setAttribute("x",O(this._createdItem,this._startPosition.x)),this._rect.setAttribute("y",O(this._createdItem,this._startPosition.y)));let r=O(this._createdItem,i.x-this._startPosition.x),n=O(this._createdItem,i.y-this._startPosition.y);parseFloat(""+r)>=0&&(this._rect.setAttribute("width",r),this._createdItem.setStyle("width",r+"px")),parseFloat(""+n)>=0&&(this._rect.setAttribute("height",n),this._createdItem.setStyle("height",n+"px")),(parseFloat(""+r)>5||parseFloat(""+n)>5)&&(this.sizeOverlapThreshold=!0)}}async _onPointerUp(e,t){this.sizeOverlapThreshold?(this._changeGroup.commit(),e.instanceServiceContainer.selectionService.setSelectedElements([this._createdItem],t)):this._changeGroup.abort(),e.overlayLayer.removeOverlay(this._rect),this._startPosition=null,this._rect=null,this._createdItem=null,e.serviceContainer.globalContext.finishedWithTool(this)}}});var Es,sc=u(()=>{"use strict";Es=class{constructor(){}provideButtons(e,t){let i=document.createElement("div");i.className="toolbar-control",i.title="round pixels to";let r=document.createElement("input");return r.type="number",r.step="1",r.min="-1",r.valueAsNumber=e.serviceContainer.options.roundPixelsToDecimalPlaces,r.onchange=()=>e.serviceContainer.options.roundPixelsToDecimalPlaces=r.valueAsNumber,i.appendChild(r),[i]}}});var As,oc=u(()=>{"use strict";Lt();ie();re();As=class extends ke{commonMathProperties=[{name:"displaystyle",type:"boolean",service:this,defaultValue:!0,propertyType:y.propertyAndAttribute}];mathProperties=[{name:"display",type:"list",values:["block","inline"],service:this,defaultValue:"text",propertyType:y.propertyAndAttribute}];mfracProperties=[{name:"denomalign",type:"list",values:["left","center","right"],service:this,defaultValue:"center",propertyType:y.propertyAndAttribute},{name:"linethickness",type:"string",service:this,propertyType:y.propertyAndAttribute},{name:"numalign",type:"list",values:["left","center","right"],service:this,defaultValue:"center",propertyType:y.propertyAndAttribute}];name="mathml";getRefreshMode(e){return G.full}isHandledElement(e){return e.element instanceof e.window.MathMLElement}async getProperty(e,t){return(await this.getProperties(e)).find(i=>i.name==t)}async getProperties(e){if(!this.isHandledElement(e))return null;switch(e.element.localName){case"math":return[...this.commonMathProperties,...this.mathProperties];case"merror":return[...this.commonMathProperties];case"mfrac":return[...this.commonMathProperties,...this.mfracProperties];default:return[...this.commonMathProperties]}}}});function Ps(s){let e=s;for(;e;){if(e instanceof(e.ownerDocument.defaultView??window).SVGSVGElement)return!0;if(e instanceof(e.ownerDocument.defaultView??window).SVGDefsElement||e instanceof(e.ownerDocument.defaultView??window).SVGMetadataElement)return!1;e=e.parentElement}return!0}var ac=u(()=>{"use strict"});function Zp(s){return s instanceof SVGRectElement?[{x:s.x.baseVal.value,y:s.y.baseVal.value},{x:s.x.baseVal.value+s.width.baseVal.value,y:s.y.baseVal.value},{x:s.x.baseVal.value+s.width.baseVal.value,y:s.y.baseVal.value+s.height.baseVal.value},{x:s.x.baseVal.value,y:s.y.baseVal.value+s.height.baseVal.value}]:s instanceof SVGLineElement?[{x:s.x1.baseVal.value,y:s.y1.baseVal.value},{x:s.x2.baseVal.value,y:s.y2.baseVal.value}]:null}var Is,lc=u(()=>{"use strict";ee();J();X();Is=class extends N{constructor(e,t,i){super(e,t,i)}_parentRect;_svgElement;_circles=[];_points;_startPoint;_startPos;extend(){this._parentRect=this.extendedItem.element.parentElement.getBoundingClientRect(),this._svgElement=this.extendedItem.node,this.refresh()}refresh(){let e=Zp(this._svgElement);if(e&&this._valuesHaveChanges(this.designerCanvas.scaleFactor,...e.map(t=>t.x),...e.map(t=>t.y))){this._points=e;for(let t=0;t<this._points.length;t++)this._circles[t]=this._drawPathCircle(t,this._circles[t])}}dispose(){this._removeAllOverlays()}_drawPathCircle(e,t){let i=this._drawCircle((this._parentRect.x-this.designerCanvas.containerBoundingRect.x)/this.designerCanvas.scaleFactor+this._points[e].x,(this._parentRect.y-this.designerCanvas.containerBoundingRect.y)/this.designerCanvas.scaleFactor+this._points[e].y,5/this.designerCanvas.scaleFactor,"svg-path",t,I.Foreground);return i.style.strokeWidth=(1/this.designerCanvas.zoomFactor).toString(),t||(i.addEventListener(x.PointerDown,r=>this.pointerEvent(r,e,i)),i.addEventListener(x.PointerMove,r=>this.pointerEvent(r,e,i)),i.addEventListener(x.PointerUp,r=>this.pointerEvent(r,e,i))),i}pointerEvent(e,t,i,r){e.stopPropagation(),e.preventDefault();let n=this.designerCanvas.getNormalizedEventCoordinates(e),o=this._points[t];switch(e.type){case x.PointerDown:e.target.setPointerCapture(e.pointerId),this._startPos=n,this._startPoint={...o};break;case x.PointerMove:if(this._startPos&&e.buttons>0){let a=this._startPos.x-n.x,l=this._startPos.y-n.y;e.shiftKey&&(Math.abs(a)<Math.abs(l)?a=0:l=0),o.x=this._startPoint.x-a,o.y=this._startPoint.y-l,this.modifyElementPoint(this._svgElement,t,o),this.designerCanvas.extensionManager.refreshAllExtensions([this.extendedItem],this)}break;case x.PointerUp:e.target.releasePointerCapture(e.pointerId),this._startPos=null;break}}modifyElementPoint(e,t,i){e instanceof SVGRectElement?(t==1?(this._points[0].y=i.y,this._points[2].x=i.x):t==3&&(this._points[2].y=i.y,this._points[0].x=i.x),e.x.baseVal.value=this._points[0].x,e.y.baseVal.value=this._points[0].y,e.width.baseVal.value=this._points[2].x-this._points[0].x,e.height.baseVal.value=this._points[2].y-this._points[0].y):e instanceof SVGLineElement&&(e.x1.baseVal.value=this._points[0].x,e.y1.baseVal.value=this._points[0].y,e.x2.baseVal.value=this._points[1].x,e.y2.baseVal.value=this._points[1].y)}_getMinMaxValues(e){let t={xMin:0,xMax:0,yMin:0,yMax:0};for(let i=0;i<e.length-2;i++)e[i]<e[i+1]&&i<=3?t.xMin=e[i]:e[i]<e[i+1]&&i>3&&i<=7&&(t.yMin=e[i]),e[i]>e[i+1]&&i<=3?t.xMax=e[i]:e[i]>e[i+1]&&i>3&&i<=8&&(t.yMax=e[i]);return t}}});var ks,cc=u(()=>{"use strict";ac();lc();ks=class{shouldExtend(e,t,i){return i.node instanceof SVGRectElement||i.node instanceof SVGLineElement||i.node instanceof SVGCircleElement||i.node instanceof SVGPathElement?Ps(i.node):!1}getExtension(e,t,i){return new Is(e,t,i)}}});var it,hc=u(()=>{"use strict";it=class{constructor(e,t,i=!1){this.extensionProvider=e,this.condition=t,this.style=e.style??e.constructor.style,this.svgDefs=e.svgDefs??e.constructor.svgDefs}extensionProvider;condition;style;svgDefs;shouldExtend(e,t,i){return this.condition(i,t)?this.extensionProvider.shouldExtend(e,t,i):!1}getExtension(e,t,i){return this.extensionProvider.getExtension(e,t,i)}}});var Ue,Ce,Le=u(()=>{"use strict";$();J();Ue="basicStackedToolbarExtensionShowOverlay",Ce=class s extends N{static basicTemplate=`
|
|
700
700
|
<select title="position" id="position" style="pointer-events: all; height: 24px; width: 80px; padding: 0; font-weight: 900; text-transform: uppercase; margin-left: 5px; margin-right: 10px;">
|
|
701
701
|
<option>static</option>
|
|
702
702
|
<option>relative</option>
|
|
@@ -795,7 +795,7 @@ span {
|
|
|
795
795
|
<div style="height: 100%; width: 100%;">
|
|
796
796
|
${Ce.basicTemplate}
|
|
797
797
|
</div>
|
|
798
|
-
`;constructor(e,t,i){super(e,t,i)}extend(e,t){super.extend(e,t),this.refresh(e,t)}}});var Ls,gc=u(()=>{"use strict";fc();Z();Le();Ls=class{shouldExtend(e,t,i){if(i.nodeType===E.Element){let r=getComputedStyle(i.element).display;if(r==="block"||r==="inline"||r==="inline-block")return t.instanceServiceContainer.designContext.extensionOptions[Ue]!==!1}return!1}getExtension(e,t,i){return new Ns(e,t,i)}}});var
|
|
798
|
+
`;constructor(e,t,i){super(e,t,i)}extend(e,t){super.extend(e,t),this.refresh(e,t)}}});var Ls,gc=u(()=>{"use strict";fc();Z();Le();Ls=class{shouldExtend(e,t,i){if(i.nodeType===E.Element){let r=getComputedStyle(i.element).display;if(r==="block"||r==="inline"||r==="inline-block")return t.instanceServiceContainer.designContext.extensionOptions[Ue]!==!1}return!1}getExtension(e,t,i){return new Ns(e,t,i)}}});var kt,yc=u(()=>{"use strict";Gn();kt=class{_title;_contextMenus;constructor(e,...t){this._title=e,this._contextMenus=t}shouldProvideContextmenu(e,t,i,r){return this._contextMenus.some(n=>!(n instanceof we)&&n.shouldProvideContextmenu(e,t,i,r))}provideContextMenuItems(e,t,i,r){return[{title:this._title,children:this._contextMenus.map(n=>n.shouldProvideContextmenu(e,t,i,r)?n.provideContextMenuItems(e,t,i,r):[]).flat()}]}}});import{html as Jp}from"@node-projects/base-custom-webcomponent";var Rs,vc=u(()=>{"use strict";$();Le();Rs=class extends Ce{static template=Jp`
|
|
799
799
|
<div style="height: 100%; width: 100%;">
|
|
800
800
|
<div style="display: flex; flex-direction: column;">
|
|
801
801
|
<span style="font-size: 10px; color: #00aff0;">column:</span>
|
|
@@ -817,7 +817,7 @@ span {
|
|
|
817
817
|
<img title="end" data-value="end" src="${v}images/chromeDevtools/justify-items-end-icon.svg">
|
|
818
818
|
<img title="stretch" data-value="stretch" src="${v}images/chromeDevtools/justify-items-stretch-icon.svg">
|
|
819
819
|
</node-projects-image-button-list-selector>
|
|
820
|
-
</div>`;constructor(e,t,i){super(e,t,i),this._size.width=250}extend(e,t){super.extend(e,t);let i=getComputedStyle(this.extendedItem.element),r=this._toolbar.getById("gridColumn");r&&(r.value=i.gridColumn,r.onkeyup=async o=>{o.key==="Enter"&&await this.extendedItem.updateStyleInSheetOrLocalAsync("gridColumn",r.value)});let n=this._toolbar.getById("gridRow");n&&(n.value=i.gridColumn,n.onkeyup=async o=>{o.key==="Enter"&&await this.extendedItem.updateStyleInSheetOrLocalAsync("gridRow",n.value)}),this._addStyleButton("align-self"),this._addStyleButton("justify-self"),this.refresh(e,t)}}});var Fs,xc=u(()=>{"use strict";Z();vc();Le();Fs=class{shouldExtend(e,t,i){if(i.nodeType===E.Element&&i.parent){let r=i.parent?.getComputedStyle();if(r!=null&&(r.display==="grid"||r.display==="inline-grid"))return t.instanceServiceContainer.designContext.extensionOptions[Ue]!==!1}return!1}getExtension(e,t,i){return new Rs(e,t,i)}}});var zs,_c=u(()=>{"use strict";Le();bt();zs=class extends Ae{constructor(){super(Ue,"T","show Toolbars")}}});var Bs,bc=u(()=>{"use strict";J();X();Bs=class extends N{constructor(e,t,i){super(e,t,i)}_path;_path2;extend(e,t){this.refresh(e,t)}refresh(e,t){let i=getComputedStyle(this.extendedItem.element);if(i.padding!=="0px"){let r=Number.parseFloat(i.paddingLeft.replace("px","")),n=Number.parseFloat(i.paddingTop.replace("px","")),o=Number.parseFloat(i.paddingRight.replace("px","")),a=Number.parseFloat(i.paddingBottom.replace("px",""));if(r+=Number.parseFloat(i.borderLeftWidth.replace("px","")),n+=Number.parseFloat(i.borderTopWidth.replace("px","")),o+=Number.parseFloat(i.borderRightWidth.replace("px","")),a+=Number.parseFloat(i.borderBottomWidth.replace("px","")),!isNaN(r)&&!isNaN(n)&&!isNaN(o)&&!isNaN(a)){let l=this.extendedItem.element.getBoxQuads({box:"border",relativeTo:this.designerCanvas.canvas})[0];if(!isNaN(l.p1.x)&&this._valuesHaveChanges(r,n,o,a,l.p1.x,l.p1.y,l.p2.x,l.p2.y,l.p3.x,l.p3.y,l.p4.x,l.p4.y)){let c=this.extendedItem.element.getBoxQuads({box:"content",relativeTo:this.designerCanvas.canvas})[0],h="M"+[l.p1,l.p2,l.p3,l.p4].map(d=>d.x+","+d.y).join(" ")+"Z ";h+="M"+[c.p1,c.p2,c.p3,c.p4].map(d=>d.x+","+d.y).join(" ")+"Z ",this._path=this._drawPath(h,"svg-padding-fill",this._path,
|
|
820
|
+
</div>`;constructor(e,t,i){super(e,t,i),this._size.width=250}extend(e,t){super.extend(e,t);let i=getComputedStyle(this.extendedItem.element),r=this._toolbar.getById("gridColumn");r&&(r.value=i.gridColumn,r.onkeyup=async o=>{o.key==="Enter"&&await this.extendedItem.updateStyleInSheetOrLocalAsync("gridColumn",r.value)});let n=this._toolbar.getById("gridRow");n&&(n.value=i.gridColumn,n.onkeyup=async o=>{o.key==="Enter"&&await this.extendedItem.updateStyleInSheetOrLocalAsync("gridRow",n.value)}),this._addStyleButton("align-self"),this._addStyleButton("justify-self"),this.refresh(e,t)}}});var Fs,xc=u(()=>{"use strict";Z();vc();Le();Fs=class{shouldExtend(e,t,i){if(i.nodeType===E.Element&&i.parent){let r=i.parent?.getComputedStyle();if(r!=null&&(r.display==="grid"||r.display==="inline-grid"))return t.instanceServiceContainer.designContext.extensionOptions[Ue]!==!1}return!1}getExtension(e,t,i){return new Rs(e,t,i)}}});var zs,_c=u(()=>{"use strict";Le();bt();zs=class extends Ae{constructor(){super(Ue,"T","show Toolbars")}}});var Bs,bc=u(()=>{"use strict";J();X();Bs=class extends N{constructor(e,t,i){super(e,t,i)}_path;_path2;extend(e,t){this.refresh(e,t)}refresh(e,t){let i=getComputedStyle(this.extendedItem.element);if(i.padding!=="0px"){let r=Number.parseFloat(i.paddingLeft.replace("px","")),n=Number.parseFloat(i.paddingTop.replace("px","")),o=Number.parseFloat(i.paddingRight.replace("px","")),a=Number.parseFloat(i.paddingBottom.replace("px",""));if(r+=Number.parseFloat(i.borderLeftWidth.replace("px","")),n+=Number.parseFloat(i.borderTopWidth.replace("px","")),o+=Number.parseFloat(i.borderRightWidth.replace("px","")),a+=Number.parseFloat(i.borderBottomWidth.replace("px","")),!isNaN(r)&&!isNaN(n)&&!isNaN(o)&&!isNaN(a)){let l=this.extendedItem.element.getBoxQuads({box:"border",relativeTo:this.designerCanvas.canvas})[0];if(!isNaN(l.p1.x)&&this._valuesHaveChanges(r,n,o,a,l.p1.x,l.p1.y,l.p2.x,l.p2.y,l.p3.x,l.p3.y,l.p4.x,l.p4.y)){let c=this.extendedItem.element.getBoxQuads({box:"content",relativeTo:this.designerCanvas.canvas})[0],h="M"+[l.p1,l.p2,l.p3,l.p4].map(d=>d.x+","+d.y).join(" ")+"Z ";h+="M"+[c.p1,c.p2,c.p3,c.p4].map(d=>d.x+","+d.y).join(" ")+"Z ",this._path=this._drawPath(h,"svg-padding-fill",this._path,I.Background),this._path2=this._drawPath(h,"svg-padding",this._path2,I.Background)}}}}dispose(){this._removeAllOverlays()}}});import{css as Mh}from"@node-projects/base-custom-webcomponent";var Vs,wc=u(()=>{"use strict";Z();bc();Vs=class{shouldExtend(e,t,i){return i.nodeType==E.Element}getExtension(e,t,i){return new Bs(e,t,i)}static style=Mh`
|
|
821
821
|
.svg-padding { fill: #32cd3266; fill-rule: evenodd; }
|
|
822
822
|
`;style=Mh`
|
|
823
823
|
.svg-padding-fill { fill: #32cd3266; fill-rule: evenodd; }
|
|
@@ -829,12 +829,12 @@ span {
|
|
|
829
829
|
<mask id="mask-stripe-padding">
|
|
830
830
|
<rect x="0" y="0" width="100%" height="100%" fill="url(#pattern-stripe-padding)" />
|
|
831
831
|
</mask>
|
|
832
|
-
`}});var Hs,Sc=u(()=>{"use strict";ee()
|
|
832
|
+
`}});var Hs,Sc=u(()=>{"use strict";ee();$t();J();Hs=class extends N{_actionModeStarted;_initialPoint;_circle1;_circle2;_circle3;_circle4;_circle5;_circle6;_circle7;_circle8;_initialComputedTransformOrigins;_initialTransformOrigins;_styleBackup;constructor(e,t,i){super(e,t,i)}extend(e,t){this.refresh(e,t)}refresh(e,t){let i=this.extendedItem.element.getBoxQuads({box:"border",relativeTo:this.designerCanvas.canvas})[0];if(isNaN(i.p1.x)||isNaN(i.p2.x)){this.remove();return}this._valuesHaveChanges(this.designerCanvas.zoomFactor,i.p1.x,i.p1.y,i.p2.x,i.p2.y,i.p4.x,i.p4.y,i.p3.x,i.p3.y)&&(this._circle1=this._drawResizerOverlay(i.p1.x,i.p1.y,"nw-resize",this._circle1),this._circle2=this._drawResizerOverlay(i.p1.x+(i.p2.x-i.p1.x)/2,i.p1.y+(i.p2.y-i.p1.y)/2,"n-resize",this._circle2),this._circle3=this._drawResizerOverlay(i.p2.x,i.p2.y,"ne-resize",this._circle3),this._circle4=this._drawResizerOverlay(i.p1.x+(i.p4.x-i.p1.x)/2,i.p1.y+(i.p4.y-i.p1.y)/2,"w-resize",this._circle4),this._circle5=this._drawResizerOverlay(i.p4.x,i.p4.y,"sw-resize",this._circle5),this._circle6=this._drawResizerOverlay(i.p4.x+(i.p3.x-i.p4.x)/2,i.p4.y+(i.p3.y-i.p4.y)/2,"s-resize",this._circle6),this._circle8=this._drawResizerOverlay(i.p2.x+(i.p3.x-i.p2.x)/2,i.p2.y+(i.p3.y-i.p2.y)/2,"e-resize",this._circle8),this._circle7=this._drawResizerOverlay(i.p3.x,i.p3.y,"se-resize",this._circle7))}_drawResizerOverlay(e,t,i,r){let n=this._drawCircle(e,t,this.designerCanvas.serviceContainer.options.resizerPixelSize/this.designerCanvas.zoomFactor,"svg-grid-resizer",r);return n.style.strokeWidth=(1/this.designerCanvas.zoomFactor).toString(),r||(n.addEventListener(x.PointerDown,o=>this._pointerActionTypeResize(n,o,i)),n.addEventListener(x.PointerMove,o=>this._pointerActionTypeResize(n,o,i)),n.addEventListener(x.PointerUp,o=>this._pointerActionTypeResize(n,o,i))),n.style.cursor=i,n}_pointerActionTypeResize(e,t,i){t.stopPropagation();let r=this.designerCanvas.getNormalizedEventCoordinates(t);switch(t.type){case x.PointerDown:this._styleBackup=this.extendedItem.element.getAttribute("style"),t.target.setPointerCapture(t.pointerId),this._initialPoint=r,this._actionModeStarted=i,this._initialComputedTransformOrigins=[],this._initialTransformOrigins=[];let n=getComputedStyle(this.extendedItem.element).transformOrigin.split(" ").map(g=>parseFloat(g.replace("px",""))),o=new DOMPoint(n[0],n[1]);this._initialComputedTransformOrigins.push(o),this._initialTransformOrigins.push(this.extendedItem.element.style.transformOrigin);break;case x.PointerMove:if(this._initialPoint){let g=0,m=0,f=0,b=0,_=Ge(this.extendedItem.parent),C=this.designerCanvas.getNormalizedElementCoordinates(this.extendedItem.parent.element),k=this.designerCanvas.getNormalizedEventCoordinates(t),P=getComputedStyle(this.extendedItem.element);if(this.extendedItem.element.style.gridColumnStart=P.gridColumnStart,this.extendedItem.element.style.gridColumnEnd=P.gridColumnEnd==="auto"?""+(parseInt(P.gridColumnStart)+1):P.gridColumnEnd,this.extendedItem.element.style.gridRowStart=P.gridRowStart,this.extendedItem.element.style.gridRowEnd=P.gridRowEnd==="auto"?""+(parseInt(P.gridRowStart)+1):P.gridRowEnd,this._actionModeStarted=="nw-resize"||this._actionModeStarted=="w-resize"||this._actionModeStarted=="sw-resize"){for(let A=0;A<_.cells.length;A++){let R=_.cells[A][0],H=g+R.width/2;k.x>C.x+H&&(f=A),g+=R.width+_.xGap}this.extendedItem.element.style.gridColumnStart=""+(f+2)}if(this._actionModeStarted=="nw-resize"||this._actionModeStarted=="n-resize"||this._actionModeStarted=="ne-resize"){for(let A=0;A<_.cells.length;A++){let R=_.cells[A][0],H=m+R.height/2;k.y>C.y+H&&(b=A),m+=R.height+_.yGap}this.extendedItem.element.style.gridRowStart=""+(b+2)}if(this._actionModeStarted=="se-resize"||this._actionModeStarted=="e-resize"||this._actionModeStarted=="ne-resize"){for(let A=0;A<_.cells.length;A++){let R=_.cells[A][0],H=g+R.width/2;k.x>C.x+H&&(f=A),g+=R.width+_.xGap}this.extendedItem.element.style.gridColumnEnd=""+(f+2)}if(this._actionModeStarted=="sw-resize"||this._actionModeStarted=="s-resize"||this._actionModeStarted=="se-resize"){for(let A=0;A<_.cells[0].length;A++){let R=_.cells[0][A],H=m+R.height/2;k.y>C.y+H&&(b=A),m+=R.height+_.yGap}this.extendedItem.element.style.gridRowEnd=""+(b+2)}let D=[this.extendedItem,this.extendedItem.parent];this.extensionManager.refreshExtensions(D)}break;case x.PointerUp:t.target.releasePointerCapture(t.pointerId);let a=getComputedStyle(this.extendedItem.element),l=a.gridColumnStart,c=a.gridColumnEnd,h=a.gridRowStart,d=a.gridRowEnd;this._styleBackup?this.extendedItem.element.setAttribute("style",this._styleBackup):this.extendedItem.element.removeAttribute("style");let p=this.extendedItem.openGroup("Resize <"+this.extendedItem.name+">");this.extendedItem.setStyle("gridColumnStart",l),this.extendedItem.setStyle("gridColumnEnd",c),this.extendedItem.setStyle("gridRowStart",h),this.extendedItem.setStyle("gridRowEnd",d),p.commit(),this._initialPoint=null;break}}dispose(){this._removeAllOverlays()}}});import{css as em}from"@node-projects/base-custom-webcomponent";var Gs,Cc=u(()=>{"use strict";Z();Sc();Gs=class{shouldExtend(e,t,i){return i.nodeType===E.Element&&i.parent?.nodeType===E.Element&&getComputedStyle(i.parent.element).display==="grid"}getExtension(e,t,i){return new Hs(e,t,i)}static style=em`
|
|
833
833
|
.svg-grid-resizer { stroke: #3899ec; fill: white; pointer-events: all }
|
|
834
|
-
`}});var Ws,Ec=u(()=>{"use strict";Qe();Z();$();Ws=class{shouldProvideContextmenu(e,t,i,r){return i?.instanceServiceContainer.selectionService.selectedElements.length>1?!i?.isRootItem&&i?.nodeType==E.Element:!1}provideContextMenuItems(e,t,i){return[{title:"align left",icon:`<img src="${v+"icons/alignHorizontalLeft.svg"}">`,action:()=>{t.executeCommand({type:S.arrangeLeft})}},{title:"align center",icon:`<img src="${v+"icons/alignHorizontalCenter.svg"}">`,action:()=>{t.executeCommand({type:S.arrangeCenter})}},{title:"align right",icon:`<img src="${v+"icons/alignHorizontalRight.svg"}">`,action:()=>{t.executeCommand({type:S.arrangeRight})}},{title:"distribute horizontal",icon:`<img src="${v+"icons/horizontalDistribute.svg"}">`,action:()=>{t.executeCommand({type:S.distributeHorizontal})}},{title:"align top",icon:`<img src="${v+"icons/alignVerticalTop.svg"}">`,action:()=>{t.executeCommand({type:S.arrangeTop})}},{title:"align middle",icon:`<img src="${v+"icons/alignVerticalCenter.svg"}">`,action:()=>{t.executeCommand({type:S.arrangeMiddle})}},{title:"align bottom",icon:`<img src="${v+"icons/alignVerticalBottom.svg"}">`,action:()=>{t.executeCommand({type:S.arrangeBottom})}},{title:"distribute vertical",icon:`<img src="${v+"icons/verticalDistribute.svg"}">`,action:()=>{t.executeCommand({type:S.distributeVertical})}}]}}});var js,Ac=u(()=>{"use strict";ie();re();ye();
|
|
834
|
+
`}});var Ws,Ec=u(()=>{"use strict";Qe();Z();$();Ws=class{shouldProvideContextmenu(e,t,i,r){return i?.instanceServiceContainer.selectionService.selectedElements.length>1?!i?.isRootItem&&i?.nodeType==E.Element:!1}provideContextMenuItems(e,t,i){return[{title:"align left",icon:`<img src="${v+"icons/alignHorizontalLeft.svg"}">`,action:()=>{t.executeCommand({type:S.arrangeLeft})}},{title:"align center",icon:`<img src="${v+"icons/alignHorizontalCenter.svg"}">`,action:()=>{t.executeCommand({type:S.arrangeCenter})}},{title:"align right",icon:`<img src="${v+"icons/alignHorizontalRight.svg"}">`,action:()=>{t.executeCommand({type:S.arrangeRight})}},{title:"distribute horizontal",icon:`<img src="${v+"icons/horizontalDistribute.svg"}">`,action:()=>{t.executeCommand({type:S.distributeHorizontal})}},{title:"align top",icon:`<img src="${v+"icons/alignVerticalTop.svg"}">`,action:()=>{t.executeCommand({type:S.arrangeTop})}},{title:"align middle",icon:`<img src="${v+"icons/alignVerticalCenter.svg"}">`,action:()=>{t.executeCommand({type:S.arrangeMiddle})}},{title:"align bottom",icon:`<img src="${v+"icons/alignVerticalBottom.svg"}">`,action:()=>{t.executeCommand({type:S.arrangeBottom})}},{title:"distribute vertical",icon:`<img src="${v+"icons/verticalDistribute.svg"}">`,action:()=>{t.executeCommand({type:S.distributeVertical})}}]}}});var js,Ac=u(()=>{"use strict";ie();re();ye();ue();js=class extends Y{name="webcomponent";getRefreshMode(e){return G.full}isHandledElement(e){let t=e.element.constructor?.observedAttributes;return!!(t&&t.length>0)}async getProperty(e,t){return(await this.getProperties(e)).find(i=>i.name==t)}async getProperties(e){return(e.element.constructor?.observedAttributes).map(i=>({name:L.dashToCamelCase(i),type:"string",service:this,propertyType:y.propertyAndAttribute}))}}});var Us,Pc=u(()=>{"use strict";J();Us=class extends N{constructor(e,t,i){super(e,t,i)}_path;_rect;_clickRect;_g;extend(e,t){this.refresh(e,t)}refresh(e,t){let i=this.extendedItem.element.getBoxQuads({box:"border",relativeTo:this.designerCanvas.canvas})[0];if(i&&!isNaN(i.p2.x)&&this._valuesHaveChanges(i.p1.x,i.p1.y,i.p2.x,i.p2.y,this.designerCanvas.scaleFactor)){let r=Math.atan2(i.p2.y-i.p1.y,i.p2.x-i.p1.x)*180/Math.PI,n=15/this.designerCanvas.scaleFactor;this._rect=this._drawRect(0,0,n,n,"svg-previous-select",this._rect),this._clickRect=this._drawRect(0,0,n,n,"svg-invisible",this._clickRect),this._g||(this._g=document.createElementNS("http://www.w3.org/2000/svg","g"),this._g.setAttribute("class","svg-previous-select"),this._path=document.createElementNS("http://www.w3.org/2000/svg","path"),this._path.setAttribute("d","m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z"),this._g.appendChild(this._rect),this._g.appendChild(this._path),this._addOverlay(this._g),this._clickRect.onpointerdown=o=>{o.preventDefault(),o.stopPropagation(),this.extendedItem.instanceServiceContainer.selectionService.setSelectedElements([this.extendedItem.parent])},this._clickRect.onpointermove=o=>{o.preventDefault(),o.stopPropagation()},this._g.appendChild(this._clickRect)),this._path.style.scale=(.6/this.designerCanvas.scaleFactor).toString(),this._g.style.translate=i.p2.x-14.5/this.designerCanvas.scaleFactor+"px "+(i.p2.y-15/this.designerCanvas.scaleFactor)+"px",this._g.style.rotate=r+"deg",this._g.style.transformOrigin="100% 100%",this._g.style.transformBox="fill-box"}}dispose(){this._removeAllOverlays()}}});import{css as tm}from"@node-projects/base-custom-webcomponent";var Ks,Ic=u(()=>{"use strict";Pc();Ks=class{shouldExtend(e,t,i){return!i.isRootItem&&!(i.element instanceof HTMLTemplateElement)}getExtension(e,t,i){return new Us(e,t,i)}static style=tm`
|
|
835
835
|
rect.svg-previous-select { stroke: none; fill: #3899ec; pointer-events: auto; }
|
|
836
836
|
g.svg-previous-select { fill: white; pointer-events: auto; }
|
|
837
|
-
`}});var Ys,Ic=u(()=>{"use strict";Z();Ys=class{shouldProvideContextmenu(e,t,i,r){return i!=null&&i.nodeType==E.Element}provideContextMenuItems(e,t,i){return[{title:":hover",action:()=>{i.cssForceHover=!i.cssForceHover},checked:i.cssForceHover},{title:":active",action:()=>{i.cssForceActive=!i.cssForceActive},checked:i.cssForceActive},{title:":visited",action:()=>{i.cssForceVisited=!i.cssForceVisited},checked:i.cssForceVisited},{title:":focus",action:()=>{i.cssForceFocus=!i.cssForceFocus},checked:i.cssForceFocus},{title:":focus-within",action:()=>{i.cssForceFocusWithin=!i.cssForceFocusWithin},checked:i.cssForceFocusWithin},{title:":focus-visible",action:()=>{i.cssForceFocusVisible=!i.cssForceFocusVisible},checked:i.cssForceFocusVisible}]}}});var Xs,Dc=u(()=>{"use strict";at();Xs=class{constructor(){}provideButtons(e,t){let i=document.createElement("div");return i.innerHTML="O",i.title="options",i.className="toolbar-control",i.onclick=r=>{this.showCtxMenu(r,t)},i.oncontextmenu=r=>{r.preventDefault(),this.showCtxMenu(r,t)},[i]}prepareContextMenu(e,t){return[{title:"simulate hover on hover",checked:t.instanceServiceContainer.designContext.extensionOptions.simulateHoverOnHover,action:()=>{t.instanceServiceContainer.designContext.extensionOptions.simulateHoverOnHover=!t.instanceServiceContainer.designContext.extensionOptions.simulateHoverOnHover}},{title:"select unhitable elements",checked:t.instanceServiceContainer.designContext.extensionOptions.selectUnhitableElements,action:()=>{t.instanceServiceContainer.designContext.extensionOptions.selectUnhitableElements=!t.instanceServiceContainer.designContext.extensionOptions.selectUnhitableElements}},{title:"pause animations",checked:t.pauseAnimations,action:()=>{t.pauseAnimations=!t.pauseAnimations}},{title:"hide overflowing content",checked:t.instanceServiceContainer.designContext.extensionOptions.hideOverflowingContent,action:()=>{if(t.instanceServiceContainer.designContext.extensionOptions.hideOverflowingContent=!t.instanceServiceContainer.designContext.extensionOptions.hideOverflowingContent,t.instanceServiceContainer.designContext.extensionOptions.hideOverflowingContent)for(let r of t.rootDesignItem.children(!0))r.element instanceof HTMLElement&&(r.element.style.overflow="hidden",r.element.style.whiteSpace="nowrap");else for(let r of t.rootDesignItem.children(!0))r.element instanceof HTMLElement&&(r.element.style.overflow=r.hasStyle("overflow")?r.getStyle("overflow"):"",r.element.style.whiteSpace=r.hasStyle("white-space")?r.getStyle("white-space"):"")}}]}showCtxMenu(e,t){he.show(this.prepareContextMenu(e,t),e)}}});var Zs,Tc=u(()=>{"use strict";q();Zs=class{shouldProvideContextmenu(e,t,i,r){return r=="designer"}provideContextMenuItems(e,t,i){if(i){let r=[...i.element.children];if(r.length>0)return[{title:"children",children:[...r.map(n=>({title:"select: "+n.localName+(n.id?" (#"+n.id+")":""),action:()=>this._select(t,n)}))]}]}return[]}_select(e,t){let i=T.GetOrCreateDesignItem(t,t,e.serviceContainer,e.instanceServiceContainer);e.instanceServiceContainer.selectionService.setSelectedElements([i])}}});var ti,Mc=u(()=>{"use strict";ee();$e();ti=class{cursor="pointer";_changeGroup;pointerEventHandler(e,t,i){e.serviceContainer.designerTools.get(U.Pointer).pointerEventHandler(e,t,i)}keyboardEventHandler(e,t,i){t.preventDefault();let r=e.instanceServiceContainer.selectionService.primarySelection,n=getComputedStyle(r.element),o="";switch(t.key){case"ArrowLeft":o="margin-left";break;case"ArrowRight":o="margin-right";break;case"ArrowUp":o="margin-top";break;case"ArrowDown":o="margin-bottom";break}o&&(t.type==x.KeyDown&&!this._changeGroup&&(this._changeGroup=r.openGroup("change margin")),this._changeGroup&&(r.setStyleAsync(o,parseFloat(n[o])+(t.altKey?-1:1)+"px"),t.type==x.KeyUp&&(this._changeGroup.commit(),this._changeGroup=null)))}activated(e){}dispose(){this._changeGroup&&(this._changeGroup.abort(),this._changeGroup=null)}}});var Vi,Oc=u(()=>{"use strict";We();Vi=class{_name;_icon;constructor(e,t){this._name=e,this._icon=t}provideButton(e){let t={};return t[this._name]={icon:this._icon},new se(e,t)}}});var ii,Nc=u(()=>{"use strict";ee();$e();ii=class{cursor="pointer";_changeGroup;pointerEventHandler(e,t,i){e.serviceContainer.designerTools.get(U.Pointer).pointerEventHandler(e,t,i)}keyboardEventHandler(e,t,i){t.preventDefault();let r=e.instanceServiceContainer.selectionService.primarySelection,n=getComputedStyle(r.element),o="";switch(t.key){case"ArrowLeft":o="padding-left";break;case"ArrowRight":o="padding-right";break;case"ArrowUp":o="padding-top";break;case"ArrowDown":o="padding-bottom";break}o&&(t.type==x.KeyDown&&!this._changeGroup&&(this._changeGroup=r.openGroup("change padding")),this._changeGroup&&(r.setStyleAsync(o,parseFloat(n[o])+(t.altKey?-1:1)+"px"),t.type==x.KeyUp&&(this._changeGroup.commit(),this._changeGroup=null)))}activated(e){}dispose(){this._changeGroup&&(this._changeGroup.abort(),this._changeGroup=null)}}});var ri,$s=u(()=>{"use strict";q();ri=class{createDesignItem(e,t,i,r){return new T(e,t,i,r)}handleSpecialAttributes(e,t){e==Ft?(t.element instanceof(t.node.ownerDocument.defaultView??window).HTMLElement||t.element instanceof(t.node.ownerDocument.defaultView??window).SVGElement)&&(t.hasAttribute(Ft)?t.element.style.display="none":t.element.style.display=t.getStyle("display")??""):e==zt?(t.element instanceof(t.node.ownerDocument.defaultView??window).HTMLElement||t.element instanceof(t.node.ownerDocument.defaultView??window).SVGElement)&&(t.hasAttribute(zt)?t.element.style.opacity="0.3":t.element.style.opacity=t.getStyle("opacity")??""):e==St&&(t.element instanceof(t.node.ownerDocument.defaultView??window).HTMLElement||t.element instanceof(t.node.ownerDocument.defaultView??window).SVGElement)&&(t.hasAttribute(St)?t.element.style.pointerEvents="none":requestAnimationFrame(()=>t.element.style.pointerEvents="auto"))}}});import{DomHelper as im}from"@node-projects/base-custom-webcomponent";var qs,Lc=u(()=>{"use strict";qs=class{constructor(e){this.title="Delete Items",this.deletedItems=e}title;get affectedItems(){return this.deletedItems}undo(){for(let e=0;e<this.deletedItems.length;e++)this._parentItems[e]._insertChildInternal(this.deletedItems[e],this._parentIndexes[e]);this.affectedItems[0].instanceServiceContainer.contentService.onContentChanged.emit({changeType:"added",designItems:this.deletedItems})}do(){this._parentItems=[],this._parentIndexes=[];for(let e=0;e<this.deletedItems.length;e++)this._parentItems.push(this.deletedItems[e].parent),this._parentIndexes.push(im.nodeIndex(this.deletedItems[e].element));for(let e=0;e<this.deletedItems.length;e++)this.deletedItems[e].parent._removeChildInternal(this.deletedItems[e]);this.affectedItems[0].instanceServiceContainer.contentService.onContentChanged.emit({changeType:"removed",designItems:this.deletedItems})}deletedItems;_parentItems;_parentIndexes;mergeWith(e){return!1}}});var Qs,Rc=u(()=>{"use strict";Lc();Qs=class{removeItems(e){e[0].instanceServiceContainer.undoService.execute(new qs(e))}}});var Lh={};xd(Lh,{createDefaultServiceContainer:()=>Oh,default:()=>Nh});function Oh(){let s=new Ji,e=new Ve;return s.register("containerService",e),s.register("containerService",new bn(e)),s.register("containerService",new Sn(e)),s.register("propertyService",new js),s.register("propertyService",new rr),s.register("propertyService",new nr),s.register("propertyService",new sr),s.register("propertyService",new or),s.register("propertyService",new As),s.register("propertyService",new Lr),s.register("propertyService",new Dr),s.register("propertyGroupsService",new ns),s.register("instanceService",new vr),s.register("editorTypesService",new Ir),s.register("htmlWriterService",new Bn),s.register("snaplinesProviderService",new Cn),s.register("htmlParserService",new ht),s.register("elementAtPointService",new wn),s.register("externalDragDropService",new En),s.register("dragDropService",new ws),s.register("copyPasteService",new Dn),s.register("modelCommandService",new Tn),s.register("demoProviderService",new Ss),s.register("eventsService",new fe),s.register("designItemService",new ri),s.register("deletionService",new Qs),s.register("undoService",t=>new ps(t)),s.register("selectionService",t=>new us(t,!1)),s.register("contentService",t=>new fs(t.rootDesignItem)),s.register("designItemDocumentPositionService",t=>new vs(t)),s.designerExtensions.set(w.Permanent,[new vn]),s.designerExtensions.set(w.PrimarySelection,[new it(new bs,t=>!(t.node instanceof t.window.SVGElement)||t.node instanceof t.window.SVGSVGElement)]),s.designerExtensions.set(w.Selection,[new it(new $r,t=>!(t.node instanceof t.window.SVGElement)||t.node instanceof t.window.SVGSVGElement)]),s.designerExtensions.set(w.OnlyOneItemSelected,[new it(new Fr,t=>!(t.node instanceof t.window.SVGElement)||t.node instanceof t.window.SVGSVGElement),new it(new Ks,t=>!(t.node instanceof t.window.SVGElement)||t.node instanceof t.window.SVGSVGElement),new it(new Gr,(t,i)=>i.activeTool instanceof ti||i.activeTool instanceof ii,!0),new it(new Vs,(t,i)=>i.activeTool instanceof ti||i.activeTool instanceof ii,!0),new jr,new Is,new ei(new Gs,new en(!0)),new Vr(!0),new rn]),s.designerExtensions.set(w.PrimarySelectionRefreshed,[new Fs,new Ts,new Os,new Ls]),s.designerExtensions.set(w.PrimarySelectionAndCanBeEntered,[new kt,new Fi,new Ri]),s.designerExtensions.set(w.PrimarySelectionContainerAndCanBeEntered,[new kt("lightgray","#8080802b"),new Fi,new Ri]),s.designerExtensions.set(w.MouseOver,[new Kr]),s.designerExtensions.set(w.Placement,[new os]),s.designerExtensions.set(w.ContainerDrag,[new un]),s.designerExtensions.set(w.ContainerDragOverAndCanBeEntered,[new ei(new kt,new Oi),new gn]),s.designerExtensions.set(w.ContainerExternalDragOverAndCanBeEntered,[new ei(new kt,new Oi)]),s.designerExtensions.set(w.Doubleclick,[new An]),s.designerPointerExtensions.push(),s.designerTools.set(U.Pointer,new Yr),s.designerTools.set(U.DrawSelection,new Ei),s.designerTools.set(U.DrawPath,new Xr),s.designerTools.set(U.DrawRect,new Nn),s.designerTools.set(U.DrawEllipsis,new Ln),s.designerTools.set(U.DrawLine,new Rn),s.designerTools.set(U.Zoom,new nn),s.designerTools.set(U.Pan,new sn),s.designerTools.set(U.RectangleSelector,new Ei),s.designerTools.set(U.MagicWandSelector,new cn),s.designerTools.set(U.PickColor,new hn),s.designerTools.set(U.Text,new pn),s.designerTools.set(U.DrawElementTool,Cs),s.designerTools.set(U.Margin,new ti),s.designerTools.set(U.Padding,new ii),s.designViewConfigButtons.push(new et(20),new On,new cs,new et(10),new hs,new et(10),new dr,new et(10),new zs,new et(30),new Es,new et(30),new Xs),s.designViewToolbarButtons.push(new Yn,new je(22),new qn,new je(22),new Vi("Margin",v+"images/tools/Margin.svg"),new je(22),new Vi("Padding",v+"images/tools/Padding.svg"),new je(22),new Xn,new je(22),new Zn,new je(22),new $n,new je(22),new xs),s.designerContextMenuExtensions=[new It("edit",new on),new we,new It("modify",new Un,new we,new an,new we,new Ws),new we,new It("view",new gs,new jn),new we,new It("force",new Ys),new we,new ln,new Hn,new Vn,new we,new Kn,new we,new _n,new Zs],s}var Nh,Js=u(()=>{"use strict";Co();Eo();Ao();Po();ko();Go();ta();ia();Ht();Ci();sa();De();ca();ma();fa();ya();xa();$e();ba();wa();Ca();ka();Da();Ta();Ma();Oa();Na();Ra();Fa();za();Ba();Ha();Wa();Ua();xn();Xa();Za();$a();qa();Qa();Ja();el();il();nl();sl();al();ll();cl();hl();pl();ml();ul();Gn();fl();gl();yl();xl();_l();bl();Sl();Cl();Al();kl();Rl();zl();ls();Hl();Gl();jl();Ul();Kl();mr();Yl();Zl();ki();$l();ql();Jl();tc();ic();Bi();rc();nc();sc();oc();cc();hc();pc();uc();gc();yc();xc();_c();wc();Cc();Ec();Ac();kc();Ic();Dc();Tc();Mc();Oc();$();Nc();$s();Rc();Nh=Oh});import{BaseCustomWebComponentLazyAppend as _d,css as bd,TypedEvent as wd,DomHelper as eh}from"@node-projects/base-custom-webcomponent";var Ye=class extends _d{_selectedIndex=-1;_panels;_headerDiv;_moreDiv;_moreContainer;_elementMap=new WeakMap;_firstConnect=!0;static style=bd`
|
|
837
|
+
`}});var Ys,kc=u(()=>{"use strict";Z();Ys=class{shouldProvideContextmenu(e,t,i,r){return i!=null&&i.nodeType==E.Element}provideContextMenuItems(e,t,i){return[{title:":hover",action:()=>{i.cssForceHover=!i.cssForceHover},checked:i.cssForceHover},{title:":active",action:()=>{i.cssForceActive=!i.cssForceActive},checked:i.cssForceActive},{title:":visited",action:()=>{i.cssForceVisited=!i.cssForceVisited},checked:i.cssForceVisited},{title:":focus",action:()=>{i.cssForceFocus=!i.cssForceFocus},checked:i.cssForceFocus},{title:":focus-within",action:()=>{i.cssForceFocusWithin=!i.cssForceFocusWithin},checked:i.cssForceFocusWithin},{title:":focus-visible",action:()=>{i.cssForceFocusVisible=!i.cssForceFocusVisible},checked:i.cssForceFocusVisible}]}}});var Xs,Dc=u(()=>{"use strict";at();Xs=class{constructor(){}provideButtons(e,t){let i=document.createElement("div");return i.innerHTML="O",i.title="options",i.className="toolbar-control",i.onclick=r=>{this.showCtxMenu(r,t)},i.oncontextmenu=r=>{r.preventDefault(),this.showCtxMenu(r,t)},[i]}prepareContextMenu(e,t){return[{title:"simulate hover on hover",checked:t.instanceServiceContainer.designContext.extensionOptions.simulateHoverOnHover,action:()=>{t.instanceServiceContainer.designContext.extensionOptions.simulateHoverOnHover=!t.instanceServiceContainer.designContext.extensionOptions.simulateHoverOnHover}},{title:"select unhitable elements",checked:t.instanceServiceContainer.designContext.extensionOptions.selectUnhitableElements,action:()=>{t.instanceServiceContainer.designContext.extensionOptions.selectUnhitableElements=!t.instanceServiceContainer.designContext.extensionOptions.selectUnhitableElements}},{title:"pause animations",checked:t.pauseAnimations,action:()=>{t.pauseAnimations=!t.pauseAnimations}},{title:"hide overflowing content",checked:t.instanceServiceContainer.designContext.extensionOptions.hideOverflowingContent,action:()=>{if(t.instanceServiceContainer.designContext.extensionOptions.hideOverflowingContent=!t.instanceServiceContainer.designContext.extensionOptions.hideOverflowingContent,t.instanceServiceContainer.designContext.extensionOptions.hideOverflowingContent)for(let r of t.rootDesignItem.children(!0))r.element instanceof HTMLElement&&(r.element.style.overflow="hidden",r.element.style.whiteSpace="nowrap");else for(let r of t.rootDesignItem.children(!0))r.element instanceof HTMLElement&&(r.element.style.overflow=r.hasStyle("overflow")?r.getStyle("overflow"):"",r.element.style.whiteSpace=r.hasStyle("white-space")?r.getStyle("white-space"):"")}}]}showCtxMenu(e,t){he.show(this.prepareContextMenu(e,t),e)}}});var Zs,Tc=u(()=>{"use strict";q();Zs=class{shouldProvideContextmenu(e,t,i,r){return r=="designer"}provideContextMenuItems(e,t,i){if(i){let r=[...i.element.children];if(r.length>0)return[{title:"children",children:[...r.map(n=>({title:"select: "+n.localName+(n.id?" (#"+n.id+")":""),action:()=>this._select(t,n)}))]}]}return[]}_select(e,t){let i=T.GetOrCreateDesignItem(t,t,e.serviceContainer,e.instanceServiceContainer);e.instanceServiceContainer.selectionService.setSelectedElements([i])}}});var ii,Mc=u(()=>{"use strict";ee();$e();ii=class{cursor="pointer";_changeGroup;pointerEventHandler(e,t,i){e.serviceContainer.designerTools.get(U.Pointer).pointerEventHandler(e,t,i)}keyboardEventHandler(e,t,i){t.preventDefault();let r=e.instanceServiceContainer.selectionService.primarySelection,n=getComputedStyle(r.element),o="";switch(t.key){case"ArrowLeft":o="margin-left";break;case"ArrowRight":o="margin-right";break;case"ArrowUp":o="margin-top";break;case"ArrowDown":o="margin-bottom";break}o&&(t.type==x.KeyDown&&!this._changeGroup&&(this._changeGroup=r.openGroup("change margin")),this._changeGroup&&(r.setStyleAsync(o,parseFloat(n[o])+(t.altKey?-1:1)+"px"),t.type==x.KeyUp&&(this._changeGroup.commit(),this._changeGroup=null)))}activated(e){}dispose(){this._changeGroup&&(this._changeGroup.abort(),this._changeGroup=null)}}});var Vi,Oc=u(()=>{"use strict";We();Vi=class{_name;_icon;constructor(e,t){this._name=e,this._icon=t}provideButton(e){let t={};return t[this._name]={icon:this._icon},new se(e,t)}}});var ri,Nc=u(()=>{"use strict";ee();$e();ri=class{cursor="pointer";_changeGroup;pointerEventHandler(e,t,i){e.serviceContainer.designerTools.get(U.Pointer).pointerEventHandler(e,t,i)}keyboardEventHandler(e,t,i){t.preventDefault();let r=e.instanceServiceContainer.selectionService.primarySelection,n=getComputedStyle(r.element),o="";switch(t.key){case"ArrowLeft":o="padding-left";break;case"ArrowRight":o="padding-right";break;case"ArrowUp":o="padding-top";break;case"ArrowDown":o="padding-bottom";break}o&&(t.type==x.KeyDown&&!this._changeGroup&&(this._changeGroup=r.openGroup("change padding")),this._changeGroup&&(r.setStyleAsync(o,parseFloat(n[o])+(t.altKey?-1:1)+"px"),t.type==x.KeyUp&&(this._changeGroup.commit(),this._changeGroup=null)))}activated(e){}dispose(){this._changeGroup&&(this._changeGroup.abort(),this._changeGroup=null)}}});var ni,$s=u(()=>{"use strict";q();ni=class{createDesignItem(e,t,i,r){return new T(e,t,i,r)}handleSpecialAttributes(e,t){e==Ft?(t.element instanceof(t.node.ownerDocument.defaultView??window).HTMLElement||t.element instanceof(t.node.ownerDocument.defaultView??window).SVGElement)&&(t.hasAttribute(Ft)?t.element.style.display="none":t.element.style.display=t.getStyle("display")??""):e==zt?(t.element instanceof(t.node.ownerDocument.defaultView??window).HTMLElement||t.element instanceof(t.node.ownerDocument.defaultView??window).SVGElement)&&(t.hasAttribute(zt)?t.element.style.opacity="0.3":t.element.style.opacity=t.getStyle("opacity")??""):e==St&&(t.element instanceof(t.node.ownerDocument.defaultView??window).HTMLElement||t.element instanceof(t.node.ownerDocument.defaultView??window).SVGElement)&&(t.hasAttribute(St)?t.element.style.pointerEvents="none":requestAnimationFrame(()=>t.element.style.pointerEvents="auto"))}}});import{DomHelper as im}from"@node-projects/base-custom-webcomponent";var qs,Lc=u(()=>{"use strict";qs=class{constructor(e){this.title="Delete Items",this.deletedItems=e}title;get affectedItems(){return this.deletedItems}undo(){for(let e=0;e<this.deletedItems.length;e++)this._parentItems[e]._insertChildInternal(this.deletedItems[e],this._parentIndexes[e]);this.affectedItems[0].instanceServiceContainer.contentService.onContentChanged.emit({changeType:"added",designItems:this.deletedItems})}do(){this._parentItems=[],this._parentIndexes=[];for(let e=0;e<this.deletedItems.length;e++)this._parentItems.push(this.deletedItems[e].parent),this._parentIndexes.push(im.nodeIndex(this.deletedItems[e].element));for(let e=0;e<this.deletedItems.length;e++)this.deletedItems[e].parent._removeChildInternal(this.deletedItems[e]);this.affectedItems[0].instanceServiceContainer.contentService.onContentChanged.emit({changeType:"removed",designItems:this.deletedItems})}deletedItems;_parentItems;_parentIndexes;mergeWith(e){return!1}}});var Qs,Rc=u(()=>{"use strict";Lc();Qs=class{removeItems(e){e[0].instanceServiceContainer.undoService.execute(new qs(e))}}});var Lh={};xd(Lh,{createDefaultServiceContainer:()=>Oh,default:()=>Nh});function Oh(){let s=new Ji,e=new Ve;return s.register("containerService",e),s.register("containerService",new bn(e)),s.register("containerService",new Sn(e)),s.register("propertyService",new js),s.register("propertyService",new rr),s.register("propertyService",new nr),s.register("propertyService",new sr),s.register("propertyService",new or),s.register("propertyService",new As),s.register("propertyService",new Lr),s.register("propertyService",new Dr),s.register("propertyGroupsService",new ns),s.register("instanceService",new vr),s.register("editorTypesService",new kr),s.register("htmlWriterService",new Bn),s.register("snaplinesProviderService",new Cn),s.register("htmlParserService",new ht),s.register("elementAtPointService",new wn),s.register("externalDragDropService",new En),s.register("dragDropService",new ws),s.register("copyPasteService",new Dn),s.register("modelCommandService",new Tn),s.register("demoProviderService",new Ss),s.register("eventsService",new ge),s.register("designItemService",new ni),s.register("deletionService",new Qs),s.register("undoService",t=>new ps(t)),s.register("selectionService",t=>new us(t,!1)),s.register("contentService",t=>new fs(t.rootDesignItem)),s.register("designItemDocumentPositionService",t=>new vs(t)),s.designerExtensions.set(w.Permanent,[new vn]),s.designerExtensions.set(w.PrimarySelection,[new it(new bs,t=>!(t.node instanceof t.window.SVGElement)||t.node instanceof t.window.SVGSVGElement)]),s.designerExtensions.set(w.Selection,[new it(new $r,t=>!(t.node instanceof t.window.SVGElement)||t.node instanceof t.window.SVGSVGElement)]),s.designerExtensions.set(w.OnlyOneItemSelected,[new it(new Fr,t=>!(t.node instanceof t.window.SVGElement)||t.node instanceof t.window.SVGSVGElement),new it(new Ks,t=>!(t.node instanceof t.window.SVGElement)||t.node instanceof t.window.SVGSVGElement),new it(new Gr,(t,i)=>i.activeTool instanceof ii||i.activeTool instanceof ri,!0),new it(new Vs,(t,i)=>i.activeTool instanceof ii||i.activeTool instanceof ri,!0),new jr,new ks,new ti(new Gs,new en(!0)),new Vr(!0),new rn]),s.designerExtensions.set(w.PrimarySelectionRefreshed,[new Fs,new Ts,new Os,new Ls]),s.designerExtensions.set(w.PrimarySelectionAndCanBeEntered,[new It,new Fi,new Ri]),s.designerExtensions.set(w.PrimarySelectionContainerAndCanBeEntered,[new It("lightgray","#8080802b"),new Fi,new Ri]),s.designerExtensions.set(w.MouseOver,[new Kr]),s.designerExtensions.set(w.Placement,[new os]),s.designerExtensions.set(w.ContainerDrag,[new un]),s.designerExtensions.set(w.ContainerDragOverAndCanBeEntered,[new ti(new It,new Oi),new gn]),s.designerExtensions.set(w.ContainerExternalDragOverAndCanBeEntered,[new ti(new It,new Oi)]),s.designerExtensions.set(w.Doubleclick,[new An]),s.designerPointerExtensions.push(),s.designerTools.set(U.Pointer,new Yr),s.designerTools.set(U.DrawSelection,new Ei),s.designerTools.set(U.DrawPath,new Xr),s.designerTools.set(U.DrawRect,new Nn),s.designerTools.set(U.DrawEllipsis,new Ln),s.designerTools.set(U.DrawLine,new Rn),s.designerTools.set(U.Zoom,new nn),s.designerTools.set(U.Pan,new sn),s.designerTools.set(U.RectangleSelector,new Ei),s.designerTools.set(U.MagicWandSelector,new cn),s.designerTools.set(U.PickColor,new hn),s.designerTools.set(U.Text,new pn),s.designerTools.set(U.DrawElementTool,Cs),s.designerTools.set(U.Margin,new ii),s.designerTools.set(U.Padding,new ri),s.designViewConfigButtons.push(new et(20),new On,new cs,new et(10),new hs,new et(10),new dr,new et(10),new zs,new et(30),new Es,new et(30),new Xs),s.designViewToolbarButtons.push(new Yn,new je(22),new qn,new je(22),new Vi("Margin",v+"images/tools/Margin.svg"),new je(22),new Vi("Padding",v+"images/tools/Padding.svg"),new je(22),new Xn,new je(22),new Zn,new je(22),new $n,new je(22),new xs),s.designerContextMenuExtensions=[new kt("edit",new on),new we,new kt("modify",new Un,new we,new an,new we,new Ws),new we,new kt("view",new gs,new jn),new we,new kt("force",new Ys),new we,new ln,new Hn,new Vn,new we,new Kn,new we,new _n,new Zs],s}var Nh,Js=u(()=>{"use strict";Co();Eo();Ao();Po();Io();Go();ta();ia();Gt();Ci();sa();De();ca();ma();fa();ya();xa();$e();ba();wa();Ca();Ia();Da();Ta();Ma();Oa();Na();Ra();Fa();za();Ba();Ha();Wa();Ua();xn();Xa();Za();$a();qa();Qa();Ja();el();il();nl();sl();al();ll();cl();hl();pl();ml();ul();Gn();fl();gl();yl();xl();_l();bl();Sl();Cl();Al();Il();Rl();zl();ls();Hl();Gl();jl();Ul();Kl();mr();Yl();Zl();Ii();$l();ql();Jl();tc();ic();Bi();rc();nc();sc();oc();cc();hc();pc();uc();gc();yc();xc();_c();wc();Cc();Ec();Ac();Ic();kc();Dc();Tc();Mc();Oc();$();Nc();$s();Rc();Nh=Oh});import{BaseCustomWebComponentLazyAppend as _d,css as bd,TypedEvent as wd,DomHelper as eh}from"@node-projects/base-custom-webcomponent";var Ye=class extends _d{_selectedIndex=-1;_panels;_headerDiv;_moreDiv;_moreContainer;_elementMap=new WeakMap;_firstConnect=!0;static style=bd`
|
|
838
838
|
:host {
|
|
839
839
|
height: 100%;
|
|
840
840
|
}
|
|
@@ -1034,7 +1034,7 @@ span {
|
|
|
1034
1034
|
<svg id="rightArrow" part="arrow rightArrow" viewBox="-100 -100 200 200"><g transform="rotate(90)">${Xi}</g></svg>
|
|
1035
1035
|
</div>
|
|
1036
1036
|
</div>
|
|
1037
|
-
`;function Ad(s){return s?"vertical":"horizontal"}function th(s){switch(s){case"vertical":return!0;case"horizontal":return!1;default:throw new Error('Invalid orientation value "'+s+'".')}}function Zi(s){return(s*100).toFixed(3)+"%"}function Pd(s){if(!(!s||!s.endsWith("px")))return Number(s.substring(0,s.length-2))}customElements.define("node-projects-plain-scrollbar",bo);Js();To();Ne();Fn();var eo=class{_originalCustomElementsRegistry;_newElements=[];constructor(){this._originalCustomElementsRegistry=window.customElements;let e={},t=this._originalCustomElementsRegistry,i=this._newElements;e.define=function(r,n,o){i.push(r),t.define(r,n,o)},e.get=function(r){return t.get(r)},e.upgrade=function(r){return t.upgrade(r)},e.whenDefined=function(r){return t.whenDefined(r)},Object.defineProperty(window,"customElements",{get(){return e}})}dispose(){let e=this._originalCustomElementsRegistry;Object.defineProperty(window,"customElements",{get(){return e}})}getNewElements(){let e=this._newElements;return this._newElements=[],e}};te();Oo();Oe();te();var
|
|
1037
|
+
`;function Ad(s){return s?"vertical":"horizontal"}function th(s){switch(s){case"vertical":return!0;case"horizontal":return!1;default:throw new Error('Invalid orientation value "'+s+'".')}}function Zi(s){return(s*100).toFixed(3)+"%"}function Pd(s){if(!(!s||!s.endsWith("px")))return Number(s.substring(0,s.length-2))}customElements.define("node-projects-plain-scrollbar",bo);Js();To();Ne();Fn();var eo=class{_originalCustomElementsRegistry;_newElements=[];constructor(){this._originalCustomElementsRegistry=window.customElements;let e={},t=this._originalCustomElementsRegistry,i=this._newElements;e.define=function(r,n,o){i.push(r),t.define(r,n,o)},e.get=function(r){return t.get(r)},e.upgrade=function(r){return t.upgrade(r)},e.whenDefined=function(r){return t.whenDefined(r)},Object.defineProperty(window,"customElements",{get(){return e}})}dispose(){let e=this._originalCustomElementsRegistry;Object.defineProperty(window,"customElements",{get(){return e}})}getNewElements(){let e=this._newElements;return this._newElements=[],e}};te();Oo();Oe();te();var si=class s{static _canvas;static _context;static _video;static _captureStream;static _disableStream(){s._captureStream.getTracks().forEach(e=>e.stop()),s._canvas=null}static get screenshotsEnabled(){return s._captureStream&&s._captureStream.active}static async enableScreenshots(e=document.body){if(s._captureStream&&!s._captureStream.active&&s._disableStream(),s._canvas==null){s._canvas=document.createElement("canvas"),s._context=s._canvas.getContext("2d"),s._video=document.createElement("video");let t={video:{cursor:"never",displaySurface:"browser"},audio:!1,selfBrowserSurface:"include",preferCurrentTab:!0};if(s._video.style.display="none",e.appendChild(s._video),s._captureStream=await navigator.mediaDevices.getDisplayMedia(t),s._captureStream.getVideoTracks()[0].getSettings().displaySurface!="browser")throw s._disableStream(),alert("You need to share the current Tab, for the screenshot API to work"),"You need to share the current Tab, for the screenshot API to work";s._video.srcObject=s._captureStream,s._video.play(),await s._sleep(150)}}static async takeScreenshot(e,t=100,i=100,r=document.body){await s.enableScreenshots(r);let n=W(e);s._canvas.width=t,s._canvas.height=i,s._context.drawImage(s._video,0,0,1,1,0,0,t,i);let o=s._video.videoWidth/window.innerWidth,a=s._video.videoHeight/window.innerHeight;return s._context.drawImage(s._video,n.left*o,n.top*a,n.width*o,n.height*a,0,0,t,i),s._canvas.toDataURL("image/png")}static _sleep(e){let t=null,i=new Promise(r=>t=r);return window.setTimeout(t,e),i}};kn();var to=class s{static addTouchEvents(e){return new s(e)}constructor(e){this._target=e,e.addEventListener("touchstart",t=>this._touchStart(t)),e.addEventListener("touchmove",t=>this._touchMove(t)),e.addEventListener("touchend",t=>this._touchEnd(t)),e.addEventListener("touchcancel",t=>this._touchEnd(t))}_target;_started;_startX_0;_startY_0;_lastZoom;_lastPanDistanceX;_lastPanDistanceY;_startZoomDistance;multitouchEventActive;_mode=null;_touchStart(e){e.touches.length===2?(this.multitouchEventActive=!0,this._mode=null,this._started=!0,this._startX_0=e.touches[0].screenX,this._startY_0=e.touches[0].screenY,this._lastZoom=0,this._lastPanDistanceX=0,this._lastPanDistanceY=0,this._startZoomDistance=Math.hypot(e.touches[0].screenX-e.touches[1].screenX,e.touches[0].screenY-e.touches[1].screenY)):(this.multitouchEventActive=!1,this._started=!1)}_touchMove(e){if(e.touches.length!==2&&(this.multitouchEventActive=!1,this._started=!1),this._started){e.preventDefault();let t=Math.hypot(e.touches[0].screenX-e.touches[1].screenX,e.touches[0].screenY-e.touches[1].screenY),i=this._startX_0-e.touches[0].screenX,r=this._startY_0-e.touches[0].screenY,n=i-this._lastPanDistanceX,o=r-this._lastPanDistanceY;this._lastPanDistanceX=i,this._lastPanDistanceY=r;let a=t-this._startZoomDistance,l=a-this._lastZoom;if(this._lastZoom=a,this._lastZoom,this._mode||(Math.abs(a)>10&&(this._mode="zoom"),(Math.abs(i)>10||Math.abs(r)>10)&&(this._mode="pan")),this._mode){if(this._mode=="zoom"){let c=new CustomEvent("zoom",{detail:{factor:a,diff:l}});this._target.dispatchEvent(c)}else if(this._mode=="pan"){let c=new CustomEvent("pan",{detail:{x:i,deltaX:n,y:r,deltaY:o}});this._target.dispatchEvent(c)}}}}_touchEnd(e){this.multitouchEventActive=!1,e.touches.length}};Wo();at();Pe();yr();La();var io=class{_name;get name(){return this._name}_elementList;getElements(){return Promise.resolve(this._elementList)}constructor(e,t){this._name=e,this._elementList=[],t.elements.forEach(i=>{this.isIElementDefintion(i)?this._elementList.push(i):this._elementList.push({tag:i})})}isIElementDefintion(e){return e!=null&&e.tag!=null}};Pe();var ro=class{_name;get name(){return this._name}_importPrefix;_elementList;_resolveStored;_rejectStored;constructor(e,t,i){this._name=e,this._importPrefix=t,this._parseManifest(i)}_parseManifest(e){this._elementList=[];for(let t of e.modules){for(let i of t.exports)if(i.kind=="custom-element-definition"){let r={tag:i.name,import:wt(this._importPrefix,"/")+"/"+de(t.path,"/"),defaultWidth:"200px",defaultHeight:"200px",className:i.declaration.name};this._elementList.push(r)}for(let i of t.declarations)if(i.tagName){let r={tag:i.tagName,import:wt(this._importPrefix,"/")+"/"+de(t.path,"/"),defaultWidth:"200px",defaultHeight:"200px",className:i.name};this._elementList.push(r)}this._resolveStored&&(this._resolveStored.forEach(i=>i(this._elementList)),this._resolveStored=null,this._rejectStored=null)}}async getElements(){return this._elementList?Promise.resolve(this._elementList):(this._resolveStored||(this._resolveStored=[],this._rejectStored=[]),new Promise((e,t)=>{this._resolveStored.push(e),this._rejectStored.push(t)}))}};Ie();re();ie();ye();var oi=class s extends Y{getRefreshMode(e){return G.full}_name;get name(){return this._name}_propertiesList;constructor(e,t,i){super(i),this._name=e,this._parseManifest(t)}_parseManifest(e){this._propertiesList={};let t=[];for(let i of e.modules)i.declarations&&t.push(...i.declarations);for(let i of e.modules)for(let r of i.exports)if(r.kind=="custom-element-definition"){let n=[],o=t.find(a=>a.name==r.declaration.name);if(o){if(o.members){for(let a of o.members)if(a.kind=="field"&&a.privacy!=="private"&&a.privacy!=="protected"){let l=y.property;o.attributes&&(l=o.attributes.find(h=>h.fieldName==a.name)!=null?y.propertyAndAttribute:y.property);let c=s.manifestClassPropertyTypeToEditorPropertyType(a.type?.text,a.type?.editor);a.name&&n.push({name:a.name,service:this,propertyType:l,type:c[0],values:c[1],description:a.description})}this._propertiesList[r.name]=n}}else console.warn("declaration for "+r.declaration.name+" not found",e)}}static manifestClassPropertyTypeToEditorPropertyType(e,t){if(t&&t.toLowerCase()==="color")return["color"];if(e){if(e.toLowerCase()==="boolean")return["boolean"];if(e.toLowerCase()==="number")return["number"];if(e.toLowerCase()==="string")return["string"];if(e.startsWith("'")&&e.includes("|"))return["list",e.split("|").map(r=>r.trim()).map(r=>r.substring(1,r.length-1))]}return[e]}isHandledElement(e){return this._propertiesList[e.name]!=null}async getProperties(e){return this._propertiesList[e.name]}async getProperty(e,t){return this._propertiesList[e.name].find(i=>i.name==t)}getPropertyTarget(e,t){return this._propertiesList[e.name].find(i=>i.name==t.name).propertyType==y.attribute?M.attribute:M.property}getUnsetValue(e,t){return e[0].element[t.propertyName??t.name]}};Pe();var me={"@shoelace-style/shoelace":{html:`<link rel="stylesheet" media="(prefers-color-scheme:light)" href="\${baseUrl}dist/themes/light.css">
|
|
1038
1038
|
<link rel="stylesheet" media="(prefers-color-scheme:dark)" href="\${baseUrl}dist/themes/dark.css" onload="document.documentElement.classList.add('sl-theme-dark');">`},"@microsoft/fast-components":{script:`let res = await import('@microsoft/fast-components');
|
|
1039
1039
|
res.provideFASTDesignSystem().register(res.allComponents);`},"@zooplus/zoo-web-components":{script:`let res = await import('@zooplus/zoo-web-components');
|
|
1040
1040
|
res.registerComponents(res);`,style:`:root {
|
|
@@ -1049,7 +1049,7 @@ res.registerComponents(res);`,style:`:root {
|
|
|
1049
1049
|
--info-mid: #459FD0;
|
|
1050
1050
|
--warning-ultralight: #FDE8E9;
|
|
1051
1051
|
--warning-mid: #ED1C24;
|
|
1052
|
-
}`},"@material/web":{import:"@material/web/all.js"},"@stencil/core":{map:{"@stencil/core/internal/client":"internal/client/index.js","@stencil/core/internal/app-data":"internal/app-data/index.js"}}};var Rh=class s{static registryPatchedTohandleErrors;_packageSource;_dependecies=new Map;constructor(e="//cdn.jsdelivr.net/npm/"){this._packageSource=e,s.patchCustomElementsRegistryToHandleErrors()}static patchCustomElementsRegistryToHandleErrors(){if(!s.registryPatchedTohandleErrors){s.registryPatchedTohandleErrors=!0;let e=window.customElements,t={};t.define=function(i,r,n){try{e.define(i,r,n)}catch(o){console.warn(o)}},t.get=function(i){return e.get(i)},t.upgrade=function(i){return e.upgrade(i)},t.whenDefined=function(i){return e.whenDefined(i)},Object.defineProperty(window,"customElements",{get(){return t}})}}async loadNpmPackage(e,t,i,r,n){let o=window.location.protocol+this._packageSource+e+"/",a=o+"package.json";n&&n(e+": loading package.json");let c=await(await fetch(a)).json();this.addToImportmap(o,c);let h=[];if(c.dependencies)for(let b in c.dependencies)h.push(this.loadDependency(b,c.dependencies[b]));await Promise.all(h);let d=o+"custom-elements.json",p=o;if(c.customElements&&(d=o+wt(c.customElements,"/"),d.includes("/"))){let b=d.lastIndexOf("/");p=d.substring(0,b+1)}let g=o+"web-component-designer.json";c.webComponentDesigner&&(g=o+de(c.webComponentDesigner,"/")),n&&n(e+": loading custom-elements.json");let m=await fetch(d);if(!m.ok&&c.homepage)try{let _="https://raw.githubusercontent.com/"+new URL(c.homepage).pathname+"/master/custom-elements.json";m=await fetch(_),console.warn("custom-elements.json was missing from npm package, but was loaded from github as a fallback.")}catch(b){console.warn("github custom elments json fallback",b)}if(t&&fetch(g).then(async b=>{if(b.ok){let _=await b.json();if(_.services)for(let C in _.services)for(let I of _.services[C]){I.startsWith("./")&&(I=I.substring(2));let P=(await importShim(o+I)).default;t.register(C,new P)}}}),m.ok){let b=await m.json(),_=new ro(c.name,p,b);if(t&&t.register("elementsService",_),t){let C=new si(c.name,b);t.register("propertyService",C)}if(r)for(let C of await _.getElements())importShim(C.import);t&&i&&i.loadControls(t,t.elementsServices),me[e]?.import&&import(me[e]?.import),me[e]?.script&&import(URL.createObjectURL(new Blob([me[e]?.script],{type:"application/javascript"})))}else{console.warn("npm package: "+e+" - no custom-elements.json found, only loading javascript module");let b=new eo;c.module?await importShim(o+de(c.module,"/")):c.main?await importShim(o+de(c.main,"/")):c.unpkg?await importShim(o+de(c.unpkg,"/")):console.warn("npm package: "+e+" - no entry point in package found."),me[e]?.import&&await import(me[e]?.import),me[e]?.script&&await import(URL.createObjectURL(new Blob([me[e]?.script],{type:"application/javascript"})));let _=b.getNewElements();if(_.length>0&&t&&i){let C={elements:_},I=new io(e,C);t.register("elementsService",I),i.loadControls(t,t.elementsServices)}b.dispose()}n&&n(e+": done");let f={};return me[e]?.html&&(f.html=(me[e]?.html).replaceAll("${baseUrl}",o)),me[e]?.style&&(f.style=(me[e]?.style).replaceAll("${baseUrl}",o)),f}async loadDependency(e,t,i){if(this._dependecies.has(e))return;if(this._dependecies.set(e,!0),e.startsWith("@types")){console.warn("ignoring wrong dependency: ",e);return}i&&i(e+": loading dependency: "+e);let r=window.location.protocol+this._packageSource+e+"/",n=r+"package.json",a=await(await fetch(n)).json(),l=[];if(a.dependencies)for(let c in a.dependencies)l.push(this.loadDependency(c,a.dependencies[c]));await Promise.all(l),this.addToImportmap(r,a)}async addToImportmap(e,t){let i=importShim.getImportMap().imports,r={imports:{},scopes:{}};if(!i.hasOwnProperty(t.name)){if(t.exports){let o=c=>c?.browser?c.browser:c?.import?c.import:c?.module?c.module:c?.default?c.default:c?.node,a=c=>{let h=o(c);return typeof h!="string"&&(h=o(h)),typeof h!="string"&&(h=o(h)),typeof h!="string"&&(h=null),h},l=a(t.exports);l?r.imports[t.name]=e+de(de(l,"."),"/"):(l=a(t.exports?.["."]))&&(r.imports[t.name]=e+de(de(l,"."),"/"))}let n=t.main;if(t.module&&(n=t.module),t.unpkg&&!n&&(n=t.unpkg),r.imports[t.name]||(n?r.imports[t.name]=e+de(de(n,"."),"/"):console.warn("package: "+e+"no main import found")),r.imports[t.name+"/"]=e,me[t.name]?.map)for(let o in me[t.name]?.map)r.imports[o]=e+me[t.name].map[o];importShim.addImportMap(r)}}};be();Va();q();var Hi;(function(s){s.oneWay="oneWay",s.twoWay="twoWay"})(Hi||(Hi={}));ke();Z();var Fh;(function(s){s.undefined="undefined",s.folder="folder",s.boolean="boolean",s.number="number",s.string="string",s.date="date",s.color="color",s.object="object"})(Fh||(Fh={}));ke();ge();var zh=class s{static type="base-custom-webcomponent-binding";getBindings(e){let t=null;for(let i of e.attributes()){let r=i[0],n=i[1];if((n.startsWith("[[")||n.startsWith("{{"))&&(n.endsWith("}}")||n.endsWith("]]"))){t||(t=[]);let o={rawName:r,rawValue:n,service:this};i[0]==="bcw:visible"?(o.targetName="visibility",o.target=M.css,o.expression=n.substring(2,n.length-2)):i[0].startsWith("css:")?(o.targetName=r.substring(4),o.target=M.css,o.expression=n.substring(2,n.length-2)):i[0].startsWith("class:")?(o.targetName=r.substring(4),o.target=M.class,o.expression=n.substring(2,n.length-2)):i[0].startsWith("$")?(o.targetName=r.substring(1),o.target=M.attribute,o.expression=n.substring(2,n.length-2)):i[0].startsWith("@")?(o.targetName=r.substring(1),o.target=M.event,o.expression=n.substring(2,n.length-2)):i[0].startsWith(".")?(o.targetName=R.dashToCamelCase(r.substring(1)),o.target=M.explicitProperty,o.expression=n.substring(2,n.length-2)):(o.targetName=R.dashToCamelCase(r),o.target=M.property,o.expression=n.substring(2,n.length-2)),o.type=s.type,o.targetName=o.targetName,o.bindableObjectNames=[n.substring(2,n.length-2)],t.push(o)}}return t}setBinding(e,t){if(t.type!==s.type)return!1;let i="";switch(t.target){case M.explicitProperty:i+=".";break;case M.css:i+="css:";break;case M.class:i+="class";break;case M.attribute:i+="$";break;case M.event:i+="@";break}i+=t.targetName;let r=(t.mode==Hi.oneWay?"[[":"{{")+t.expression+(t.mode==Hi.oneWay?"]]":"}}");return e.setAttribute(i,r),!0}clearBinding(e,t,i){return!0}};Te();Mr();be();De();Oe();Ne();Ht();te();var no=class{serviceForContainer(e,t,i){return i!=null&&i.getComputedStyle()?.position=="absolute"?!0:!(t.display==="grid"||t.display==="inline-grid"||t.display==="flex"||t.display==="inline-flex")}isEnterableContainer(e){return!(K.IsSelfClosingElement(e.element.localName)||!e.isRootItem&&e.element.shadowRoot&&e.element.shadowRoot.querySelector("slot")==null)}canEnter(e,t){return!(!this.isEnterableContainer(e)||!t.every(i=>!i.element.contains(e.element)&&i!==e))}canLeave(e,t){return!0}getElementOffset(e,t){return e.instanceServiceContainer.designerCanvas.getNormalizedElementCoordinates(e.element)}calculateTrack(e,t,i,r,n,o){let a=n.x-i.x,l=n.y-i.y;if(!j(e)){if(t.alignOnGrid){let c=Or(o,"position");c.x=c.x%t.gridSize,c.y=c.y%t.gridSize,a=Math.round(a/t.gridSize)*t.gridSize-c.x,l=Math.round(l/t.gridSize)*t.gridSize-c.y}else if(t.alignOnSnap){let c=W(o.element),h=t.snapLines.snapToPosition({x:n.x-r.x,y:n.y-r.y},{width:c.width/t.scaleFactor,height:c.height/t.scaleFactor},{x:a>0?1:-1,y:l>0?1:-1});h.x!==null?a=h.x-Math.round(i.x)+Math.round(r.x):a=Math.round(a),h.y!==null?l=h.y-Math.round(i.y)+Math.round(r.y):l=Math.round(l)}}return{x:a,y:l}}placePoint(e,t,i,r,n,o,a){let l=o.x,c=o.y;if(!j(e)){if(t.alignOnGrid)l=Math.round(l/t.gridSize)*t.gridSize,c=Math.round(c/t.gridSize)*t.gridSize;else if(t.alignOnSnap){let h=t.snapLines.snapToPosition({x:o.x-n.x,y:o.y-n.y},null,{x:l>0?1:-1,y:c>0?1:-1});h.x!==null?l=h.x:l=Math.round(l),h.y!==null?c=h.y:c=Math.round(c)}}return{x:l,y:c}}startPlace(e,t,i,r,n,o,a){}place(e,t,i,r,n,o,a){let l=this.calculateTrack(e,t,r,n,o,a[0]);e.shiftKey&&(l=Ze({x:0,y:0},l,!0));let c=ne(na(a));for(let h of c){let d=h.instanceServiceContainer.designerCanvas.canvas,p=h.parent.element.getBoxQuads({relativeTo:d,iframes:h.instanceServiceContainer.designerCanvas.iframes})[0],g=h.parent.element.convertPointFromNode(new DOMPoint(l.x+p.p1.x,l.y+p.p1.y),d,{iframes:h.instanceServiceContainer.designerCanvas.iframes}),m=getComputedStyle(h.element),f=new DOMMatrix;m.rotate!="none"&&m.rotate&&(f=f.multiply(new DOMMatrix("rotate("+m.rotate.replace(" ",",")+")"))),m.scale!="none"&&m.scale&&(f=f.multiply(new DOMMatrix("scale("+m.scale.replace(" ",",")+")"))),g=f.inverse().transformPoint(g);let b=new DOMMatrix().translate(g.x,g.y);Tr(h.element,h.getStyle("transform"),b.toString())}a[0].instanceServiceContainer.designerCanvas?.raiseDesignItemsChanged(c,"place",!1)}moveElements(e,t,i){for(let r of e)t.x&&r.setStyle("left",parseInt(r.element.style.left)-t.x+"px"),t.y&&r.setStyle("top",parseInt(r.element.style.top)-t.y+"px");e[0].instanceServiceContainer.designerCanvas.extensionManager.refreshExtensions(e),e[0].instanceServiceContainer.designerCanvas?.raiseDesignItemsChanged(e,"place",!0)}enterContainer(e,t,i){let r=ne(t);for(let n of r)i=="drop"&&n.setStyle("position","absolute"),e.insertChild(n),n.lastContainerSize&&(n.hasStyle("width")||n.setStyle("width",n.lastContainerSize.width+"px"),n.hasStyle("height")||n.setStyle("height",n.lastContainerSize.height+"px"));t[0].instanceServiceContainer.designerCanvas?.raiseDesignItemsChanged(r,"place",!0)}leaveContainer(e,t){let i=ne(t);t[0].instanceServiceContainer.designerCanvas?.raiseDesignItemsChanged(i,"place",!0)}finishPlace(e,t,i,r,n,o,a){let l=ne(a);for(let c of l){let h=Vt(new DOMMatrix(c.element.style.transform)),d=Vt(new DOMMatrix(c.getStyle("transform")??""));c.element.style.transform=c.getStyle("transform")??"";let p={x:h.x,y:h.y},g=getComputedStyle(c.element),m=new DOMMatrix;g.rotate!="none"&&g.rotate&&(m=m.multiply(new DOMMatrix("rotate("+g.rotate.replace(" ",",")+")"))),g.scale!="none"&&g.scale&&(m=m.multiply(new DOMMatrix("scale("+g.scale.replace(" ",",")+")"))),p=m.transformPoint(p),Nr(i,c,{x:p.x-d.x,y:p.y-d.y},"position")}for(let c of a)t.extensionManager.removeExtension(c,w.Placement);a[0].instanceServiceContainer.designerCanvas?.raiseDesignItemsChanged(l,"place",!0)}};var Bh=class extends no{serviceForContainer(e,t,i){return!0}};Ht();qa();Za();Qa();$a();Kl();il();Te();In();q();be();var Vh=class{async copyItems(e){let t=ne(e),i=K.ConvertToString(t,!1),r=t.map(o=>o.instanceServiceContainer.designerCanvas.getNormalizedElementCoordinates(o.element));Ai([["application/json",JSON.stringify({html:i,positions:r})]])}async getPasteItems(e,t){let i="",r="",n=null,o=await kn();if(o!=null){try{i=await(await o[0].getType("text/html"))?.text()}catch{}if(!i)try{i=await(await o[0].getType("text/plain"))?.text()}catch{}try{i=await(await o[0].getType("application/json"))?.text()}catch{}try{let l=o[0].types.find(c=>c.startsWith("image/"));if(l){let c=await o[0].getType(l);return[[await T.createDesignItemFromImageBlob(e,t,c)]]}}catch{}}else i=await Pn();if(i.startsWith("{")){let l=JSON.parse(i);r=l.html,n=l.positions}else r=i;return[await e.htmlParserService.parse(r,e,t,!0),n]}};Rc();import{DomHelper as nm}from"@node-projects/base-custom-webcomponent";var Hh=class{provideDemo(e,t,i,r,n){return new Promise(o=>{let a=document.createElement("iframe");a.style.width="100%",a.style.height="100%",a.style.border="none",a.style.display="none",nm.removeAllChildnodes(e),e.appendChild(a),a.onload=()=>{a.style.display="block",o()};let l=a.contentWindow.document;if(l.open(),l.write('<script type="module">'),i.designContext.npmPackages?.length){l.write("import { NpmPackageLoader } from '../../helper/NpmPackageLoader.js'"),l.write("let loader = new NpmPackageLoader();");for(let c of i.designContext.npmPackages)l.write("loader.loadNpmPackage('"+c+"', null, null, true);")}if(i.designContext.imports?.length)for(let c of i.designContext.imports)l.write("import '"+c+"';");l.write("document.body.style.display='';"),l.write("</script>"),l.write("<style>"+(n??"")+"</style>"),l.write('<body style="display:none; width: 100%; height: 100%; margin: 0; padding: 0; position: absolute;">'+r+"</body>"),l.close()})}};rc();ql();$s();q();$s();var Gh=class extends ri{createDesignItem(e,t,i,r){let n=new T(e,t,i,r);return e instanceof(e.ownerDocument.defaultView??window).HTMLTemplateElement&&requestAnimationFrame(()=>{let o=1,a=e.getAttribute("sample-repeat-count");a&&(o=parseInt(a));for(let l=0;l<o;l++){let c=e;for(let h of e.content.childNodes)c=this.instancateNode(c,h)}}),n}instancateNode(e,t,i=!1){let r=t.cloneNode(!1);i?e.appendChild(r):e.parentNode.insertBefore(r,e.nextSibling),T.GetDesignItem(t).setView(r);for(let n of t.childNodes)this.instancateNode(r,n,!0);return r}};Ja();ic();import{LazyLoader as sm}from"@node-projects/base-custom-webcomponent";var Wh=class{_name;get name(){return this._name}_elementList;_resolveStored;_rejectStored;getElements(){return this._elementList?Promise.resolve(this._elementList):(this._resolveStored||(this._resolveStored=[],this._rejectStored=[]),new Promise((e,t)=>{this._resolveStored.push(e),this._rejectStored.push(t)}))}constructor(e,t){this._name=e,sm.LoadText(t.toString()).then(i=>{let r=JSON.parse(i);this._elementList=[],r.elements.forEach(n=>{this.isIElementDefintion(n)?this._elementList.push(n):this._elementList.push({tag:n})}),this._resolveStored&&(this._resolveStored.forEach(n=>n(this._elementList)),this._resolveStored=null,this._rejectStored=null)}).catch(i=>{this._rejectStored&&(this._rejectStored.forEach(r=>r(i)),this._resolveStored=null,this._rejectStored=null)})}isIElementDefintion(e){return e!=null&&e.tag!=null}};Bi();Bi();var jh=class extends fe{isHandledElementFromEventsService(e){return this.__eventsList?.[e.name]!=null}getPossibleEvents(e){return[...this.__eventsList[e.name],...fe._simpleMouseEvents,...fe._pointerEvents,...fe._allElements,...fe._focusableEvents]}getEvent(e,t){return this.getPossibleEvents(e).find(r=>r.name==t)??{name:t,propertyName:"on"+t,eventObjectName:"Event"}}__eventsList;constructor(e,t){super(),this._parseManifest(t)}_parseManifest(e){this.__eventsList={};let t=[];for(let i of e.modules)i.declarations&&t.push(...i.declarations);for(let i of e.modules)for(let r of i.exports)if(r.kind=="custom-element-definition"){let n=t.find(o=>o.name==r.declaration.name);if(n){if(n.events){let o=[];for(let a of n.events)o.push({name:a.name});o.length&&(this.__eventsList[r.name]=o)}}else console.warn("declaration for "+r.declaration.name+" not found",e)}}};dl();Te();Fn();Z();ge();te();var oi;(function(s){s[s.block=0]="block",s[s.complex=1]="complex"})(oi||(oi={}));var Uh=class{options;constructor(e){this.options=e??{},this.options.beautifyOutput??=!0,this.options.compressCssToShorthandProperties??=!0,this.options.writeDesignerProperties??=!0,this.options.parseJsonInAttributes??=!0,this.options.jsonWriteMode??="min"}writeAttributes(e,t){if(t.hasAttributes)for(let i of t.attributes())e.indentedTextWriter.write(" "),typeof i[1]=="string"?i[1]===""?e.indentedTextWriter.write(i[0]):e.indentedTextWriter.write(i[0]+'="'+K.normalizeAttributeValue(i[1])+'"'):i[1]||e.indentedTextWriter.write(i[0])}writeStyles(e,t){if(t.hasStyles){e.indentedTextWriter.write(' style="');let i=t.styles();e.options.compressCssToShorthandProperties&&(i=$t.combine(new Map(i)));for(let r of i)r[0]&&e.indentedTextWriter.write(R.camelToDashCase(r[0])+":"+K.normalizeAttributeValue(r[1])+";");e.indentedTextWriter.write('"')}}_writeTextNode(e,t){e.lastElementDisplayType=_e.inline;let i=K.normalizeContentValue(t.content).trim();i&&e.indentedTextWriter.write(i)}_writeCommentNode(e,t){e.indentedTextWriter.write("<!--"+t.content+"-->")}_writeElementNode(e,t){let i=nh(t.element);e.lastElementDisplayType=i,e.indentedTextWriter.write("<"+t.name),this.writeAttributes(e,t),this.writeStyles(e,t),e.indentedTextWriter.write(">");let r=!1;if(t.hasChildren){let n=t.children();if(r=t.childCount===1&&t.firstChild.nodeType===E.TextNode,r)this._writeInternal(e,t.firstChild);else{let o=e.containerDisplayType;e.containerDisplayType=this.getContainerType(t.element),e.indentedTextWriter.levelRaise(),this._writeDesignItemList(i,e,n),e.indentedTextWriter.levelShrink(),e.containerDisplayType=o}}else t.hasContent&&e.indentedTextWriter.write(K.normalizeContentValue(t.content));K.IsSelfClosingElement(t.name)||(i===_e.block&&t.hasChildren&&!r&&this._writeNewlineAndIntend(e),e.indentedTextWriter.write("</"+t.name+">"),i!==_e.none&&(e.lastElementDisplayType=i))}_writeDesignItemList(e,t,i){for(let r of i)t.lastElementDisplayType==null||(t.containerDisplayType===oi.complex?this._writeNewlineAndIntend(t):t.lastElementDisplayType!==_e.inline&&this._writeNewlineAndIntend(t)),this._writeInternal(t,r)}_writeNewlineAndIntend(e){e.indentedTextWriter.writeNewline(),e.indentedTextWriter.writeIndent()}_writeInternal(e,t){let i=e.indentedTextWriter.position;t.nodeType===E.TextNode?this._writeTextNode(e,t):t.nodeType===E.Comment?this._writeCommentNode(e,t):t.nodeType===E.Element&&this._writeElementNode(e,t),e.designItemsAssignmentList&&e.designItemsAssignmentList.set(t,{start:i,length:e.indentedTextWriter.position-i-1})}getContainerType(e){let t=window.getComputedStyle(e).display;return t==="block"||t==="inline-block"||t==""?oi.block:oi.complex}write(e,t,i){let r={indentedTextWriter:e,options:this.options,lastElementDisplayType:null,containerDisplayType:oi.block};this._writeDesignItemList(_e.inline,r,t)}};pl();var Kh=class{options;constructor(e){this.options=e??{},this.options.beautifyOutput??=!0,this.options.compressCssToShorthandProperties??=!0,this.options.writeDesignerProperties??=!0,this.options.parseJsonInAttributes??=!0,this.options.jsonWriteMode??="min"}write(e,t,i){throw new Error("Method not implemented.")}static head=`import { html, css, LitElement, CSSResultArray } from 'lit';
|
|
1052
|
+
}`},"@material/web":{import:"@material/web/all.js"},"@stencil/core":{map:{"@stencil/core/internal/client":"internal/client/index.js","@stencil/core/internal/app-data":"internal/app-data/index.js"}}};var Rh=class s{static registryPatchedTohandleErrors;_packageSource;_dependecies=new Map;constructor(e="//cdn.jsdelivr.net/npm/"){this._packageSource=e,s.patchCustomElementsRegistryToHandleErrors()}static patchCustomElementsRegistryToHandleErrors(){if(!s.registryPatchedTohandleErrors){s.registryPatchedTohandleErrors=!0;let e=window.customElements,t={};t.define=function(i,r,n){try{e.define(i,r,n)}catch(o){console.warn(o)}},t.get=function(i){return e.get(i)},t.upgrade=function(i){return e.upgrade(i)},t.whenDefined=function(i){return e.whenDefined(i)},Object.defineProperty(window,"customElements",{get(){return t}})}}async loadNpmPackage(e,t,i,r,n){let o=window.location.protocol+this._packageSource+e+"/",a=o+"package.json";n&&n(e+": loading package.json");let c=await(await fetch(a)).json();this.addToImportmap(o,c);let h=[];if(c.dependencies)for(let b in c.dependencies)h.push(this.loadDependency(b,c.dependencies[b]));await Promise.all(h);let d=o+"custom-elements.json",p=o;if(c.customElements&&(d=o+wt(c.customElements,"/"),d.includes("/"))){let b=d.lastIndexOf("/");p=d.substring(0,b+1)}let g=o+"web-component-designer.json";c.webComponentDesigner&&(g=o+de(c.webComponentDesigner,"/")),n&&n(e+": loading custom-elements.json");let m=await fetch(d);if(!m.ok&&c.homepage)try{let _="https://raw.githubusercontent.com/"+new URL(c.homepage).pathname+"/master/custom-elements.json";m=await fetch(_),console.warn("custom-elements.json was missing from npm package, but was loaded from github as a fallback.")}catch(b){console.warn("github custom elments json fallback",b)}if(t&&fetch(g).then(async b=>{if(b.ok){let _=await b.json();if(_.services)for(let C in _.services)for(let k of _.services[C]){k.startsWith("./")&&(k=k.substring(2));let P=(await importShim(o+k)).default;t.register(C,new P)}}}),m.ok){let b=await m.json(),_=new ro(c.name,p,b);if(t&&t.register("elementsService",_),t){let C=new oi(c.name,b);t.register("propertyService",C)}if(r)for(let C of await _.getElements())importShim(C.import);t&&i&&i.loadControls(t,t.elementsServices),me[e]?.import&&import(me[e]?.import),me[e]?.script&&import(URL.createObjectURL(new Blob([me[e]?.script],{type:"application/javascript"})))}else{console.warn("npm package: "+e+" - no custom-elements.json found, only loading javascript module");let b=new eo;c.module?await importShim(o+de(c.module,"/")):c.main?await importShim(o+de(c.main,"/")):c.unpkg?await importShim(o+de(c.unpkg,"/")):console.warn("npm package: "+e+" - no entry point in package found."),me[e]?.import&&await import(me[e]?.import),me[e]?.script&&await import(URL.createObjectURL(new Blob([me[e]?.script],{type:"application/javascript"})));let _=b.getNewElements();if(_.length>0&&t&&i){let C={elements:_},k=new io(e,C);t.register("elementsService",k),i.loadControls(t,t.elementsServices)}b.dispose()}n&&n(e+": done");let f={};return me[e]?.html&&(f.html=(me[e]?.html).replaceAll("${baseUrl}",o)),me[e]?.style&&(f.style=(me[e]?.style).replaceAll("${baseUrl}",o)),f}async loadDependency(e,t,i){if(this._dependecies.has(e))return;if(this._dependecies.set(e,!0),e.startsWith("@types")){console.warn("ignoring wrong dependency: ",e);return}i&&i(e+": loading dependency: "+e);let r=window.location.protocol+this._packageSource+e+"/",n=r+"package.json",a=await(await fetch(n)).json(),l=[];if(a.dependencies)for(let c in a.dependencies)l.push(this.loadDependency(c,a.dependencies[c]));await Promise.all(l),this.addToImportmap(r,a)}async addToImportmap(e,t){let i=importShim.getImportMap().imports,r={imports:{},scopes:{}};if(!i.hasOwnProperty(t.name)){if(t.exports){let o=c=>c?.browser?c.browser:c?.import?c.import:c?.module?c.module:c?.default?c.default:c?.node,a=c=>{let h=o(c);return typeof h!="string"&&(h=o(h)),typeof h!="string"&&(h=o(h)),typeof h!="string"&&(h=null),h},l=a(t.exports);l?r.imports[t.name]=e+de(de(l,"."),"/"):(l=a(t.exports?.["."]))&&(r.imports[t.name]=e+de(de(l,"."),"/"))}let n=t.main;if(t.module&&(n=t.module),t.unpkg&&!n&&(n=t.unpkg),r.imports[t.name]||(n?r.imports[t.name]=e+de(de(n,"."),"/"):console.warn("package: "+e+"no main import found")),r.imports[t.name+"/"]=e,me[t.name]?.map)for(let o in me[t.name]?.map)r.imports[o]=e+me[t.name].map[o];importShim.addImportMap(r)}}};be();Va();q();var Hi;(function(s){s.oneWay="oneWay",s.twoWay="twoWay"})(Hi||(Hi={}));Ie();Z();var Fh;(function(s){s.undefined="undefined",s.folder="folder",s.boolean="boolean",s.number="number",s.string="string",s.date="date",s.color="color",s.object="object"})(Fh||(Fh={}));Ie();ue();var zh=class s{static type="base-custom-webcomponent-binding";getBindings(e){let t=null;for(let i of e.attributes()){let r=i[0],n=i[1];if((n.startsWith("[[")||n.startsWith("{{"))&&(n.endsWith("}}")||n.endsWith("]]"))){t||(t=[]);let o={rawName:r,rawValue:n,service:this};i[0]==="bcw:visible"?(o.targetName="visibility",o.target=M.css,o.expression=n.substring(2,n.length-2)):i[0].startsWith("css:")?(o.targetName=r.substring(4),o.target=M.css,o.expression=n.substring(2,n.length-2)):i[0].startsWith("class:")?(o.targetName=r.substring(4),o.target=M.class,o.expression=n.substring(2,n.length-2)):i[0].startsWith("$")?(o.targetName=r.substring(1),o.target=M.attribute,o.expression=n.substring(2,n.length-2)):i[0].startsWith("@")?(o.targetName=r.substring(1),o.target=M.event,o.expression=n.substring(2,n.length-2)):i[0].startsWith(".")?(o.targetName=L.dashToCamelCase(r.substring(1)),o.target=M.explicitProperty,o.expression=n.substring(2,n.length-2)):(o.targetName=L.dashToCamelCase(r),o.target=M.property,o.expression=n.substring(2,n.length-2)),o.type=s.type,o.targetName=o.targetName,o.bindableObjectNames=[n.substring(2,n.length-2)],t.push(o)}}return t}setBinding(e,t){if(t.type!==s.type)return!1;let i="";switch(t.target){case M.explicitProperty:i+=".";break;case M.css:i+="css:";break;case M.class:i+="class";break;case M.attribute:i+="$";break;case M.event:i+="@";break}i+=t.targetName;let r=(t.mode==Hi.oneWay?"[[":"{{")+t.expression+(t.mode==Hi.oneWay?"]]":"}}");return e.setAttribute(i,r),!0}clearBinding(e,t,i){return!0}};Te();Mr();be();De();Oe();Ne();Gt();te();var no=class{serviceForContainer(e,t,i){return i!=null&&i.getComputedStyle()?.position=="absolute"?!0:!(t.display==="grid"||t.display==="inline-grid"||t.display==="flex"||t.display==="inline-flex")}isEnterableContainer(e){return!(K.IsSelfClosingElement(e.element.localName)||!e.isRootItem&&e.element.shadowRoot&&e.element.shadowRoot.querySelector("slot")==null)}canEnter(e,t){return!(!this.isEnterableContainer(e)||!t.every(i=>!i.element.contains(e.element)&&i!==e))}canLeave(e,t){return!0}getElementOffset(e,t){return e.instanceServiceContainer.designerCanvas.getNormalizedElementCoordinates(e.element)}calculateTrack(e,t,i,r,n,o){let a=n.x-i.x,l=n.y-i.y;if(!j(e)){if(t.alignOnGrid){let c=Or(o,"position");c.x=c.x%t.gridSize,c.y=c.y%t.gridSize,a=Math.round(a/t.gridSize)*t.gridSize-c.x,l=Math.round(l/t.gridSize)*t.gridSize-c.y}else if(t.alignOnSnap){let c=W(o.element),h=t.snapLines.snapToPosition({x:n.x-r.x,y:n.y-r.y},{width:c.width/t.scaleFactor,height:c.height/t.scaleFactor},{x:a>0?1:-1,y:l>0?1:-1});h.x!==null?a=h.x-Math.round(i.x)+Math.round(r.x):a=Math.round(a),h.y!==null?l=h.y-Math.round(i.y)+Math.round(r.y):l=Math.round(l)}}return{x:a,y:l}}placePoint(e,t,i,r,n,o,a){let l=o.x,c=o.y;if(!j(e)){if(t.alignOnGrid)l=Math.round(l/t.gridSize)*t.gridSize,c=Math.round(c/t.gridSize)*t.gridSize;else if(t.alignOnSnap){let h=t.snapLines.snapToPosition({x:o.x-n.x,y:o.y-n.y},null,{x:l>0?1:-1,y:c>0?1:-1});h.x!==null?l=h.x:l=Math.round(l),h.y!==null?c=h.y:c=Math.round(c)}}return{x:l,y:c}}startPlace(e,t,i,r,n,o,a){}place(e,t,i,r,n,o,a){let l=this.calculateTrack(e,t,r,n,o,a[0]);e.shiftKey&&(l=Ze({x:0,y:0},l,!0));let c=ne(na(a));for(let h of c){let d=h.instanceServiceContainer.designerCanvas.canvas,p=h.parent.element.getBoxQuads({relativeTo:d,iframes:h.instanceServiceContainer.designerCanvas.iframes})[0],g=h.parent.element.convertPointFromNode(new DOMPoint(l.x+p.p1.x,l.y+p.p1.y),d,{iframes:h.instanceServiceContainer.designerCanvas.iframes}),m=getComputedStyle(h.element),f=new DOMMatrix;m.rotate!="none"&&m.rotate&&(f=f.multiply(new DOMMatrix("rotate("+m.rotate.replace(" ",",")+")"))),m.scale!="none"&&m.scale&&(f=f.multiply(new DOMMatrix("scale("+m.scale.replace(" ",",")+")"))),g=f.inverse().transformPoint(g);let b=new DOMMatrix().translate(g.x,g.y);Tr(h.element,h.getStyle("transform"),b.toString())}a[0].instanceServiceContainer.designerCanvas?.raiseDesignItemsChanged(c,"place",!1)}moveElements(e,t,i){for(let r of e)t.x&&r.setStyle("left",parseInt(r.element.style.left)-t.x+"px"),t.y&&r.setStyle("top",parseInt(r.element.style.top)-t.y+"px");e[0].instanceServiceContainer.designerCanvas.extensionManager.refreshExtensions(e),e[0].instanceServiceContainer.designerCanvas?.raiseDesignItemsChanged(e,"place",!0)}enterContainer(e,t,i){let r=ne(t);for(let n of r)i=="drop"&&n.setStyle("position","absolute"),e.insertChild(n),n.lastContainerSize&&(n.hasStyle("width")||n.setStyle("width",n.lastContainerSize.width+"px"),n.hasStyle("height")||n.setStyle("height",n.lastContainerSize.height+"px"));t[0].instanceServiceContainer.designerCanvas?.raiseDesignItemsChanged(r,"place",!0)}leaveContainer(e,t){let i=ne(t);t[0].instanceServiceContainer.designerCanvas?.raiseDesignItemsChanged(i,"place",!0)}finishPlace(e,t,i,r,n,o,a){let l=ne(a);for(let c of l){let h=Ht(new DOMMatrix(c.element.style.transform)),d=Ht(new DOMMatrix(c.getStyle("transform")??""));c.element.style.transform=c.getStyle("transform")??"";let p={x:h.x,y:h.y},g=getComputedStyle(c.element),m=new DOMMatrix;g.rotate!="none"&&g.rotate&&(m=m.multiply(new DOMMatrix("rotate("+g.rotate.replace(" ",",")+")"))),g.scale!="none"&&g.scale&&(m=m.multiply(new DOMMatrix("scale("+g.scale.replace(" ",",")+")"))),p=m.transformPoint(p),Nr(i,c,{x:p.x-d.x,y:p.y-d.y},"position")}for(let c of a)t.extensionManager.removeExtension(c,w.Placement);a[0].instanceServiceContainer.designerCanvas?.raiseDesignItemsChanged(l,"place",!0)}};var Bh=class extends no{serviceForContainer(e,t,i){return!0}};Gt();qa();Za();Qa();$a();Kl();il();Te();kn();q();be();var Vh=class{async copyItems(e){let t=ne(e),i=K.ConvertToString(t,!1),r=t.map(o=>o.instanceServiceContainer.designerCanvas.getNormalizedElementCoordinates(o.element));Ai([["application/json",JSON.stringify({html:i,positions:r})]])}async getPasteItems(e,t){let i="",r="",n=null,o=await In();if(o!=null){try{i=await(await o[0].getType("text/html"))?.text()}catch{}if(!i)try{i=await(await o[0].getType("text/plain"))?.text()}catch{}try{i=await(await o[0].getType("application/json"))?.text()}catch{}try{let l=o[0].types.find(c=>c.startsWith("image/"));if(l){let c=await o[0].getType(l);return[[await T.createDesignItemFromImageBlob(e,t,c)]]}}catch{}}else i=await Pn();if(i.startsWith("{")){let l=JSON.parse(i);r=l.html,n=l.positions}else r=i;return[await e.htmlParserService.parse(r,e,t,!0),n]}};Rc();import{DomHelper as nm}from"@node-projects/base-custom-webcomponent";var Hh=class{provideDemo(e,t,i,r,n){return new Promise(o=>{let a=document.createElement("iframe");a.style.width="100%",a.style.height="100%",a.style.border="none",a.style.display="none",nm.removeAllChildnodes(e),e.appendChild(a),a.onload=()=>{a.style.display="block",o()};let l=a.contentWindow.document;if(l.open(),l.write('<script type="module">'),i.designContext.npmPackages?.length){l.write("import { NpmPackageLoader } from '../../helper/NpmPackageLoader.js'"),l.write("let loader = new NpmPackageLoader();");for(let c of i.designContext.npmPackages)l.write("loader.loadNpmPackage('"+c+"', null, null, true);")}if(i.designContext.imports?.length)for(let c of i.designContext.imports)l.write("import '"+c+"';");l.write("document.body.style.display='';"),l.write("</script>"),l.write("<style>"+(n??"")+"</style>"),l.write('<body style="display:none; width: 100%; height: 100%; margin: 0; padding: 0; position: absolute;">'+r+"</body>"),l.close()})}};rc();ql();$s();q();$s();var Gh=class extends ni{createDesignItem(e,t,i,r){let n=new T(e,t,i,r);return e instanceof(e.ownerDocument.defaultView??window).HTMLTemplateElement&&requestAnimationFrame(()=>{let o=1,a=e.getAttribute("sample-repeat-count");a&&(o=parseInt(a));for(let l=0;l<o;l++){let c=e;for(let h of e.content.childNodes)c=this.instancateNode(c,h)}}),n}instancateNode(e,t,i=!1){let r=t.cloneNode(!1);i?e.appendChild(r):e.parentNode.insertBefore(r,e.nextSibling),T.GetDesignItem(t).setView(r);for(let n of t.childNodes)this.instancateNode(r,n,!0);return r}};Ja();ic();import{LazyLoader as sm}from"@node-projects/base-custom-webcomponent";var Wh=class{_name;get name(){return this._name}_elementList;_resolveStored;_rejectStored;getElements(){return this._elementList?Promise.resolve(this._elementList):(this._resolveStored||(this._resolveStored=[],this._rejectStored=[]),new Promise((e,t)=>{this._resolveStored.push(e),this._rejectStored.push(t)}))}constructor(e,t){this._name=e,sm.LoadText(t.toString()).then(i=>{let r=JSON.parse(i);this._elementList=[],r.elements.forEach(n=>{this.isIElementDefintion(n)?this._elementList.push(n):this._elementList.push({tag:n})}),this._resolveStored&&(this._resolveStored.forEach(n=>n(this._elementList)),this._resolveStored=null,this._rejectStored=null)}).catch(i=>{this._rejectStored&&(this._rejectStored.forEach(r=>r(i)),this._resolveStored=null,this._rejectStored=null)})}isIElementDefintion(e){return e!=null&&e.tag!=null}};Bi();Bi();var jh=class extends ge{isHandledElementFromEventsService(e){return this.__eventsList?.[e.name]!=null}getPossibleEvents(e){return[...this.__eventsList[e.name],...ge._simpleMouseEvents,...ge._pointerEvents,...ge._allElements,...ge._focusableEvents]}getEvent(e,t){return this.getPossibleEvents(e).find(r=>r.name==t)??{name:t,propertyName:"on"+t,eventObjectName:"Event"}}__eventsList;constructor(e,t){super(),this._parseManifest(t)}_parseManifest(e){this.__eventsList={};let t=[];for(let i of e.modules)i.declarations&&t.push(...i.declarations);for(let i of e.modules)for(let r of i.exports)if(r.kind=="custom-element-definition"){let n=t.find(o=>o.name==r.declaration.name);if(n){if(n.events){let o=[];for(let a of n.events)o.push({name:a.name});o.length&&(this.__eventsList[r.name]=o)}}else console.warn("declaration for "+r.declaration.name+" not found",e)}}};dl();Te();Fn();Z();ue();te();var ai;(function(s){s[s.block=0]="block",s[s.complex=1]="complex"})(ai||(ai={}));var Uh=class{options;constructor(e){this.options=e??{},this.options.beautifyOutput??=!0,this.options.compressCssToShorthandProperties??=!0,this.options.writeDesignerProperties??=!0,this.options.parseJsonInAttributes??=!0,this.options.jsonWriteMode??="min"}writeAttributes(e,t){if(t.hasAttributes)for(let i of t.attributes())e.indentedTextWriter.write(" "),typeof i[1]=="string"?i[1]===""?e.indentedTextWriter.write(i[0]):e.indentedTextWriter.write(i[0]+'="'+K.normalizeAttributeValue(i[1])+'"'):i[1]||e.indentedTextWriter.write(i[0])}writeStyles(e,t){if(t.hasStyles){e.indentedTextWriter.write(' style="');let i=t.styles();e.options.compressCssToShorthandProperties&&(i=qt.combine(new Map(i)));for(let r of i)r[0]&&e.indentedTextWriter.write(L.camelToDashCase(r[0])+":"+K.normalizeAttributeValue(r[1])+";");e.indentedTextWriter.write('"')}}_writeTextNode(e,t){e.lastElementDisplayType=_e.inline;let i=K.normalizeContentValue(t.content).trim();i&&e.indentedTextWriter.write(i)}_writeCommentNode(e,t){e.indentedTextWriter.write("<!--"+t.content+"-->")}_writeElementNode(e,t){let i=nh(t.element);e.lastElementDisplayType=i,e.indentedTextWriter.write("<"+t.name),this.writeAttributes(e,t),this.writeStyles(e,t),e.indentedTextWriter.write(">");let r=!1;if(t.hasChildren){let n=t.children();if(r=t.childCount===1&&t.firstChild.nodeType===E.TextNode,r)this._writeInternal(e,t.firstChild);else{let o=e.containerDisplayType;e.containerDisplayType=this.getContainerType(t.element),e.indentedTextWriter.levelRaise(),this._writeDesignItemList(i,e,n),e.indentedTextWriter.levelShrink(),e.containerDisplayType=o}}else t.hasContent&&e.indentedTextWriter.write(K.normalizeContentValue(t.content));K.IsSelfClosingElement(t.name)||(i===_e.block&&t.hasChildren&&!r&&this._writeNewlineAndIntend(e),e.indentedTextWriter.write("</"+t.name+">"),i!==_e.none&&(e.lastElementDisplayType=i))}_writeDesignItemList(e,t,i){for(let r of i)t.lastElementDisplayType==null||(t.containerDisplayType===ai.complex?this._writeNewlineAndIntend(t):t.lastElementDisplayType!==_e.inline&&this._writeNewlineAndIntend(t)),this._writeInternal(t,r)}_writeNewlineAndIntend(e){e.indentedTextWriter.writeNewline(),e.indentedTextWriter.writeIndent()}_writeInternal(e,t){let i=e.indentedTextWriter.position;t.nodeType===E.TextNode?this._writeTextNode(e,t):t.nodeType===E.Comment?this._writeCommentNode(e,t):t.nodeType===E.Element&&this._writeElementNode(e,t),e.designItemsAssignmentList&&e.designItemsAssignmentList.set(t,{start:i,length:e.indentedTextWriter.position-i-1})}getContainerType(e){let t=window.getComputedStyle(e).display;return t==="block"||t==="inline-block"||t==""?ai.block:ai.complex}write(e,t,i){let r={indentedTextWriter:e,options:this.options,lastElementDisplayType:null,containerDisplayType:ai.block};this._writeDesignItemList(_e.inline,r,t)}};pl();var Kh=class{options;constructor(e){this.options=e??{},this.options.beautifyOutput??=!0,this.options.compressCssToShorthandProperties??=!0,this.options.writeDesignerProperties??=!0,this.options.parseJsonInAttributes??=!0,this.options.jsonWriteMode??="min"}write(e,t,i){throw new Error("Method not implemented.")}static head=`import { html, css, LitElement, CSSResultArray } from 'lit';
|
|
1053
1053
|
import { property, customElement } from 'lit/decorators.js';
|
|
1054
1054
|
|
|
1055
1055
|
@customElement('$$elementName')
|
|
@@ -1085,12 +1085,12 @@ declare global {
|
|
|
1085
1085
|
interface HTMLElementTagNameMap {
|
|
1086
1086
|
'$$elementName': $$className;
|
|
1087
1087
|
}
|
|
1088
|
-
}`};Ci();Go();
|
|
1088
|
+
}`};Ci();Go();Ie();re();ie();ye();Pe();Bi();var Yh=class extends Y{getRefreshMode(e){return G.none}_name;get name(){return this._name}_packageData;_elementList;_propertiesList;__eventsList;_resolveStored;_rejectStored;_importPrefix="";constructor(e,t,i=""){if(super(),this._name=e,this._importPrefix=i,typeof t=="string"){this._importPrefix=this._importPrefix??t.split("/").slice(0,-1).join("/");let r;window.importShim?r=importShim(t,{with:{type:"json"}}):r=import(t,{with:{type:"json"}}),r.then(n=>{this._packageData=n.default,this._parseManifest()}).catch(n=>{this._rejectStored&&(this._rejectStored.forEach(o=>o(n)),this._resolveStored=null,this._rejectStored=null)})}else this._packageData=t,this._parseManifest()}_parseManifest(){this._elementList=[],this._propertiesList={};for(let e of this._packageData.modules){for(let t of e.exports)if(t.kind=="custom-element-definition"){this._elementList.push({tag:t.name,import:wt(this._importPrefix,"/")+"/"+de(e.path,"/")});let i=[],r=e.declarations.find(n=>n.name==t.declaration.name);for(let n of r.members)if(n.kind=="field"){let o=y.property;r.attributes&&(o=r.attributes.find(l=>l.fieldName==n.name)!=null?y.propertyAndAttribute:y.property);let a=oi.manifestClassPropertyTypeToEditorPropertyType(n.type?.text,n.type?.editor);i.push({name:n.name,service:this,propertyType:o,type:a[0],values:a[1],description:n.description})}if(this._propertiesList[t.name]=i,r.events){let n=[];for(let o of r.events)n.push({name:o.name});n.length&&(this.__eventsList[t.name]=n)}}this._resolveStored&&(this._resolveStored.forEach(t=>t(this._elementList)),this._resolveStored=null,this._rejectStored=null)}}async getElements(){return this._packageData?Promise.resolve(this._elementList):(this._resolveStored||(this._resolveStored=[],this._rejectStored=[]),new Promise((e,t)=>{this._resolveStored.push(e),this._rejectStored.push(t)}))}isHandledElement(e){return this._elementList?this._elementList.find(t=>t.tag==e.name)!=null:!1}async getProperties(e){return this._propertiesList[e.name]}async getProperty(e,t){return this._propertiesList[e.name].find(i=>i.name==t)}getPropertyTarget(e,t){return this._propertiesList[e.name].find(i=>i.name==t.name).propertyType==y.attribute?M.attribute:M.property}isHandledElementFromEventsService(e){return this.__eventsList?this.__eventsList[e.name]!=null:!1}getPossibleEvents(e){return[...this.__eventsList[e.name],...ge._simpleMouseEvents,...ge._pointerEvents,...ge._allElements,...ge._focusableEvents]}getEvent(e,t){return this.getPossibleEvents(e).find(r=>r.name==t)??{name:t,propertyName:"on"+t,eventObjectName:"Event"}}};nl();var Xh=class{constructor(e,t,i){}cursorsChanged};ta();re();Rl();ve();$o();jo();Uo();Qo();Ko();import{html as om,BaseCustomWebComponentConstructorAppend as am}from"@node-projects/base-custom-webcomponent";var Zh=class extends am{static template=om`
|
|
1089
1089
|
<div style="display: flex;">
|
|
1090
1090
|
<input id="input" type="text">
|
|
1091
1091
|
<button style="width: 30px;">...</button>
|
|
1092
1092
|
</div>
|
|
1093
|
-
`;constructor(){super()}};Yo();Xo();Zo();Jo();Ol();Ml();ge();Nt();Il();is();ia();Ac();Lt();ie();ye();re();Xe();ke();var so=class extends Y{getRefreshMode(e){return G.none}contentProperty={name:"textContent",type:"string",service:this,propertyType:y.property};idProperty={name:"id",type:"string",service:this,propertyType:y.propertyAndAttribute};innerHtmlProperty={name:"innerHTML",type:"string",service:this,propertyType:y.property};name="content";isHandledElement(e){return!0}async getProperty(e,t){return t=="id"?this.idProperty:this.contentProperty}async getProperties(e){return[this.idProperty,this.contentProperty,this.innerHtmlProperty]}clearValue(e,t,i="all"){if(t.name==this.contentProperty.name||t.name==this.innerHtmlProperty.name){let r=e[0].openGroup("property cleared: "+t.name);for(let n of e)i!="binding"&&n.clearChildren(),i!="value"&&n.serviceContainer.forSomeServicesTillResult("bindingService",o=>o.clearBinding(n,t.name,this.getPropertyTarget(n,t))),this._notifyChangedProperty(n,t,void 0);r.commit()}else super.clearValue(e,t,i)}isSet(e,t){if(t.name==this.contentProperty.name||t.name==this.innerHtmlProperty.name){let i=!0,r=!1;if(e!=null&&e.length!==0){e.forEach(o=>{let a=!1;a=o.element.childNodes.length>0,i=i&&a,r=r||a});let n=Y.getOrBuildCachedBindings(e[0]);if(n&&n.find(o=>(o.target==M.property||o.target==M.explicitProperty)&&o.targetName==t.name))return V.bound}return i?V.all:r?V.some:V.none}return super.isSet(e,t)}getValue(e,t){return t.name==this.contentProperty.name||t.name==this.innerHtmlProperty.name?e[0].element.textContent:super.getValue(e,t)}};Nl();rs();ye();ie();re();var $h=class extends Y{getRefreshMode(e){return G.full}name="list";_propertys=new Map;constructor(e,t){super(t);for(let i in e){let r=[];this._propertys.set(i,r);for(let n in e[i]){let o=e[i][n];r.push({name:o.name,propertyName:o.propertyName,attributeName:o.attributeName,description:o.description,type:o.type,default:o.default,min:o.min,max:o.max,step:o.step,values:o.values,enumValues:o.enumValues,value:o.value,defaultValue:o.defaultValue,service:this,propertyType:o.propertyType??y.propertyAndAttribute})}}}isHandledElement(e){return this._propertys.has(e.element.localName)}_notifyChangedProperty(e,t,i){}async getProperties(e){return this._propertys.get(e.element.localName)}};Ao();sa();oc();Po();ko();Eo();ye();Dl();Ll();ye();re();ie();var qh=class extends Y{getRefreshMode(e){return G.full}isHandledElement(e){return!0}async getProperties(e){let t=Object.getOwnPropertyNames(Object.getPrototypeOf(e.element)),i=[];for(let r of t){if(r.startsWith("on"))continue;let n=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(e.element),r);if(n.get||n.set){let o=e.element[r];typeof o=="boolean"?i.push({name:r,type:"boolean",service:this,propertyType:y.propertyAndAttribute}):typeof o=="number"?i.push({name:r,type:"bonumberolean",service:this,propertyType:y.propertyAndAttribute}):i.push({name:r,type:"string",service:this,propertyType:y.propertyAndAttribute})}}return i}};ie();Xe();var Qh=class{getRefactorings(e){let t=[];for(let i of e){let r=i.serviceContainer.bindingService.getBindings(i);if(r)for(let n of r)for(let o of n.bindableObjectNames)if(o.includes(":")){let a=o.split(":")[0],l=o.substring(a.length+1);t.push({service:this,name:l,itemType:"signal",designItem:i,type:"binding",sourceObject:n,display:n.target+"/"+n.targetName+" - "+a+":",shortName:a})}else t.push({service:this,name:o,itemType:"signal",designItem:i,type:"binding",sourceObject:n,display:n.target+"/"+n.targetName})}return t}refactor(e,t,i){let r=e.sourceObject;e.shortName?r.bindableObjectNames=r.bindableObjectNames.map(n=>n==e.shortName+":"+t?e.shortName+":"+i:n):r.bindableObjectNames=r.bindableObjectNames.map(n=>n==t?i:n),e.designItem.serviceContainer.bindingService.setBinding(e.designItem,r)}};var Jh=class{getRefactorings(e){let t=[];for(let i of e)if((i.element instanceof i.window.HTMLInputElement||i.element instanceof i.window.HTMLTextAreaElement)&&i.element.value&&t.push({service:this,name:i.element.value,itemType:"text",designItem:i,type:"attribute",sourceObject:i,display:"attribute/value"}),i.childCount>0&&i.element.textContent){let r=!0;for(let n of i.element.childNodes)n.nodeType!=3&&(r=!1);r&&t.push({service:this,name:i.element.textContent,itemType:"text",designItem:i,type:"content",sourceObject:i,display:"textContent"})}return t}refactor(e,t,i){e.type=="attribute"?e.designItem.setAttribute("value",i):e.type=="content"&&(e.designItem.content=i)}};Ul();q();import{TypedEvent as ed}from"@node-projects/base-custom-webcomponent";var ce;(function(s){s[s.none=0]="none",s[s.parseName=1]="parseName",s[s.parseAttribute=2]="parseAttribute",s[s.parseInFunc=3]="parseInFunc",s[s.parseNameOrPseudo=4]="parseNameOrPseudo"})(ce||(ce={}));function Fc(s){return Wi(s,0)[0]}function Wi(s,e){let t={A:0,B:0,C:0},i=ce.none;for(let r=e;r<s.length;r++){let n=s[r];if(i===ce.parseInFunc)n==")"&&(i=ce.none);else if(i===ce.parseAttribute)n=="]"&&(i=ce.none);else switch(n){case"#":t.A++,i=ce.parseName;break;case".":t.B++,i=ce.parseName;break;case"[":t.B++,i=ce.parseAttribute;break;case"(":break;case")":return[t,r];case",":return[t,r];case":":if(s[r+1]===":")t.C++,i=ce.parseName;else if(s.substring(r+1,r+4)==="is("){i=ce.none,r+=4;let o=Gi(s,r);r=o[1],t.A+=o[0].A,t.B+=o[0].B,t.C+=o[0].C}else if(s.substring(r+1,r+5)==="has("){r+=5;let o=Gi(s,r);r=o[1],t.A+=o[0].A,t.B+=o[0].B,t.C+=o[0].C}else if(s.substring(r+1,r+5)==="not("){r+=5;let o=Gi(s,r);r=o[1],t.A+=o[0].A,t.B+=o[0].B,t.C+=o[0].C}else if(s.substring(r+1,r+11)==="nth-child("){t.B++,r+=11;let o=Gi(s,r);r=o[1],t.A+=o[0].A,t.B+=o[0].B,t.C+=o[0].C}else if(s.substring(r+1,r+16)==="nth-last-child("){t.B++,r+=16;let o=Gi(s,r);r=o[1],t.A+=o[0].A,t.B+=o[0].B,t.C+=o[0].C}else if(s.substring(r+1,r+6)==="host("){t.B++,r+=6;let o=Wi(s,r);r=o[1],t.A+=o[0].A,t.B+=o[0].B,t.C+=o[0].C}else if(s.substring(r+1,r+14)==="host-context("){t.B++,r+=14;let o=Wi(s,r);r=o[1],t.A+=o[0].A,t.B+=o[0].B,t.C+=o[0].C}else if(s.substring(r+1,r+9)==="slotted("){t.B++,r+=9;let o=Wi(s,r);r=o[1],t.A+=o[0].A,t.B+=o[0].B,t.C+=o[0].C}else s.substring(r+1,r+7)==="where("?(i=ce.parseInFunc,r+=7):(t.B++,i=ce.parseName,r++);break;case">":case" ":case"~":case"+":i=ce.none;break;case"*":break;default:i===ce.none&&(t.C++,i=ce.parseName)}}return[t,s.length]}function Gi(s,e){let t=e,i=null;for(;i===null||s[t]===",";){s[t]===","&&t++;let r=Wi(s,t);if(r[1]>t)t=r[1];else return[i,0];(i==null||r[0].A>i.A||r[0].A===i.A&&r[0].B>i.B||r[0].A===i.A&&r[0].B===i.B&&r[0].C>i.C)&&(i=r[0])}return[i,t]}var oo=class s{_stylesheets=new Map;_documentStylesheets=new Map;_allStylesheets=new Map;_instanceServiceContainer;constructor(e){this._instanceServiceContainer=e.instanceServiceContainer}async setStylesheets(e){await this.internalSetStylesheets(e,this._stylesheets)}async setDocumentStylesheets(e){await this.internalSetStylesheets(e,this._documentStylesheets)}async internalSetStylesheets(e,t){if(t!=null&&e!=null&&t.size==e.length&&e.every(i=>t.has(i.name)))for(let i of e){let r=t.get(i.name);if(r.stylesheet.content!=i.content){try{t.set(i.name,{stylesheet:i,ast:await this.internalParse(i.content)})}catch(n){console.warn("error parsing stylesheet",i,n)}t==this._stylesheets&&this.stylesheetChanged.emit({name:i.name,newStyle:i.content,oldStyle:r.stylesheet.content,changeSource:"extern"})}}else if(e!=null){t.clear();for(let i of e){let r=null;try{r=await this.internalParse(i.content)}catch(n){console.warn("error parsing stylesheet",i,n)}t.set(i.name,{stylesheet:i,ast:r})}t==this._stylesheets&&this.stylesheetsChanged.emit()}else t.clear();this._allStylesheets.clear();for(let i of this._documentStylesheets)this._allStylesheets.set(i[0],i[1]);for(let i of this._stylesheets)this._allStylesheets.set(i[0],i[1])}async internalReparseStylesheet(e){let t=this._allStylesheets;this._documentStylesheets.has(e)&&(t=this._documentStylesheets),this._stylesheets.has(e)&&(t=this._stylesheets);let i=t.get(e),r=null;try{r=await this.internalParse(i.stylesheet.content)}catch(o){console.warn("error parsing stylesheet",e,o)}let n={stylesheet:i.stylesheet,ast:r};this._stylesheets.set(e,n),this._allStylesheets.set(e,n)}getStylesheets(){let e=[];for(let t of this._stylesheets)e.push(t[1].stylesheet);return e}getDeclarationsSortedBySpecificity(e,t){let i=this.getDeclarations(e,t);return i.reverse().sort((r,n)=>r.parent.specificity==null?-1:n.parent.specificity==null?1:r.parent.specificity.A>n.parent.specificity.A||r.parent.specificity.A===n.parent.specificity.A&&r.parent.specificity.B>n.parent.specificity.B||r.parent.specificity.A===n.parent.specificity.A&&r.parent.specificity.B===n.parent.specificity.B&&r.parent.specificity.C>n.parent.specificity.C?-1:r.parent.specificity.A===n.parent.specificity.A&&r.parent.specificity.B===n.parent.specificity.B&&r.parent.specificity.C===n.parent.specificity.C?0:1),i}updateDeclarationValue(e,t,i){this.updateDeclarationValueWithoutUndo(e,t,i)}stylesheetChanged=new ed;stylesheetsChanged=new ed;static patchStylesheetSelectorForDesigner(e){return e.replaceAll(":hover","["+ct+"]").replaceAll(":active","["+fi+"]").replaceAll(":visited","["+gi+"]").replaceAll(":focus","["+yi+"]").replaceAll(":focus-within","["+vi+"]").replaceAll(":focus-visible","["+xi+"]")}elementMatchesASelector(e,t){let i=null;for(let r of t)try{if(e&&r===":host"&&e.isRootItem){let n=Fc(r);(i===null||n.A>i.A||n.B>i.B||n.C>i.C)&&(i=n)}else if(!e||e.element.matches(s.patchStylesheetSelectorForDesigner(r))){let n=Fc(r);(i===null||n.A>i.A||n.B>i.B||n.C>i.C)&&(i=n)}}catch{console.warn("invalid selector: ",r,"patched: "+s.patchStylesheetSelectorForDesigner(r))}return i===null?!1:i}};Wl();jl();Do();Io();Lc();He();Mo();Vo();var ao=class{stylesheetService;constructor(e,t,i,r){this.title="Changed Css Stylesheet: "+t,this.stylesheetService=e,this.name=t,this.newValue=i,this.oldValue=r}title;get affectedItems(){return[]}undo(){this.stylesheetService.updateCompleteStylesheetWithoutUndo(this.name,this.oldValue)}do(){this.stylesheetService.updateCompleteStylesheetWithoutUndo(this.name,this.newValue)}name;newValue;oldValue;mergeWith(e){return!1}};var lo=class{constructor(e,t){this.title="Set all DesignItems",this.newDesignItems=e,this.oldDesignItems=t}title;get affectedItems(){return this.newDesignItems}undo(){this.newDesignItems[0].instanceServiceContainer.designerCanvas._internalSetDesignItems(this.oldDesignItems)}do(){this.newDesignItems[0].instanceServiceContainer.designerCanvas._internalSetDesignItems(this.newDesignItems)}newDesignItems;oldDesignItems;mergeWith(e){return!1}};Lo();$i();$i();import{TypedEvent as lm}from"@node-projects/base-custom-webcomponent";var co=class{imports=[];npmPackages=[];extensionOptions={gridExtensionShowOverlay:!1,flexboxExtensionShowOverlay:!1,invisibleElementExtensionShowOverlay:!1,enableStylesheetService:!1,basicStackedToolbarExtensionShowOverlay:!1,simulateHoverOnHover:!1,selectUnhitableElements:!0};extensionOptionsChanged=new lm};var ho=class extends Ot{designContext=new co;designerCanvas;designer;documentContainer;constructor(e){super(),this.designerCanvas=e}get undoService(){return this.getLastService("undoService")}get selectionService(){return this.getLastService("selectionService")}get contentService(){return this.getLastService("contentService")}get stylesheetService(){return this.getLastService("stylesheetService")}get designItemDocumentPositionService(){return this.getLastService("designItemDocumentPositionService")}};Co();re();Xe();at();ie();$();import{BaseCustomWebComponentLazyAppend as cm,css as hm,DomHelper as td}from"@node-projects/base-custom-webcomponent";var Ee=class s extends cm{_div;_propertyMap=new Map;_serviceContainer;_propertiesService;_designItems;_lastClassType;_addCounter=0;propertyGroupHover;propertyGroupClick;propertyContextMenuProvider;get propertiesService(){return this._propertiesService}static get style(){return hm`
|
|
1093
|
+
`;constructor(){super()}};Yo();Xo();Zo();Jo();Ol();Ml();ue();Nt();kl();is();ia();Ac();Lt();ie();ye();re();Xe();Ie();var so=class extends Y{getRefreshMode(e){return G.none}contentProperty={name:"textContent",type:"string",service:this,propertyType:y.property};idProperty={name:"id",type:"string",service:this,propertyType:y.propertyAndAttribute};innerHtmlProperty={name:"innerHTML",type:"string",service:this,propertyType:y.property};name="content";isHandledElement(e){return!0}async getProperty(e,t){return t=="id"?this.idProperty:this.contentProperty}async getProperties(e){return[this.idProperty,this.contentProperty,this.innerHtmlProperty]}clearValue(e,t,i="all"){if(t.name==this.contentProperty.name||t.name==this.innerHtmlProperty.name){let r=e[0].openGroup("property cleared: "+t.name);for(let n of e)i!="binding"&&n.clearChildren(),i!="value"&&n.serviceContainer.forSomeServicesTillResult("bindingService",o=>o.clearBinding(n,t.name,this.getPropertyTarget(n,t))),this._notifyChangedProperty(n,t,void 0);r.commit()}else super.clearValue(e,t,i)}isSet(e,t){if(t.name==this.contentProperty.name||t.name==this.innerHtmlProperty.name){let i=!0,r=!1;if(e!=null&&e.length!==0){e.forEach(o=>{let a=!1;a=o.element.childNodes.length>0,i=i&&a,r=r||a});let n=Y.getOrBuildCachedBindings(e[0]);if(n&&n.find(o=>(o.target==M.property||o.target==M.explicitProperty)&&o.targetName==t.name))return V.bound}return i?V.all:r?V.some:V.none}return super.isSet(e,t)}getValue(e,t){return t.name==this.contentProperty.name||t.name==this.innerHtmlProperty.name?e[0].element.textContent:super.getValue(e,t)}};Nl();rs();ye();ie();re();var $h=class extends Y{getRefreshMode(e){return G.full}name="list";_propertys=new Map;constructor(e,t){super(t);for(let i in e){let r=[];this._propertys.set(i,r);for(let n in e[i]){let o=e[i][n];r.push({name:o.name,propertyName:o.propertyName,attributeName:o.attributeName,description:o.description,type:o.type,default:o.default,min:o.min,max:o.max,step:o.step,values:o.values,enumValues:o.enumValues,value:o.value,defaultValue:o.defaultValue,service:this,propertyType:o.propertyType??y.propertyAndAttribute})}}}isHandledElement(e){return this._propertys.has(e.element.localName)}_notifyChangedProperty(e,t,i){}async getProperties(e){return this._propertys.get(e.element.localName)}};Ao();sa();oc();Po();Io();Eo();ye();Dl();Ll();ye();re();ie();var qh=class extends Y{getRefreshMode(e){return G.full}isHandledElement(e){return!0}async getProperties(e){let t=Object.getOwnPropertyNames(Object.getPrototypeOf(e.element)),i=[];for(let r of t){if(r.startsWith("on"))continue;let n=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(e.element),r);if(n.get||n.set){let o=e.element[r];typeof o=="boolean"?i.push({name:r,type:"boolean",service:this,propertyType:y.propertyAndAttribute}):typeof o=="number"?i.push({name:r,type:"bonumberolean",service:this,propertyType:y.propertyAndAttribute}):i.push({name:r,type:"string",service:this,propertyType:y.propertyAndAttribute})}}return i}};ie();Xe();var Qh=class{getRefactorings(e){let t=[];for(let i of e){let r=i.serviceContainer.bindingService.getBindings(i);if(r)for(let n of r)for(let o of n.bindableObjectNames)if(o.includes(":")){let a=o.split(":")[0],l=o.substring(a.length+1);t.push({service:this,name:l,itemType:"signal",designItem:i,type:"binding",sourceObject:n,display:n.target+"/"+n.targetName+" - "+a+":",shortName:a})}else t.push({service:this,name:o,itemType:"signal",designItem:i,type:"binding",sourceObject:n,display:n.target+"/"+n.targetName})}return t}refactor(e,t,i){let r=e.sourceObject;e.shortName?r.bindableObjectNames=r.bindableObjectNames.map(n=>n==e.shortName+":"+t?e.shortName+":"+i:n):r.bindableObjectNames=r.bindableObjectNames.map(n=>n==t?i:n),e.designItem.serviceContainer.bindingService.setBinding(e.designItem,r)}};var Jh=class{getRefactorings(e){let t=[];for(let i of e)if((i.element instanceof i.window.HTMLInputElement||i.element instanceof i.window.HTMLTextAreaElement)&&i.element.value&&t.push({service:this,name:i.element.value,itemType:"text",designItem:i,type:"attribute",sourceObject:i,display:"attribute/value"}),i.childCount>0&&i.element.textContent){let r=!0;for(let n of i.element.childNodes)n.nodeType!=3&&(r=!1);r&&t.push({service:this,name:i.element.textContent,itemType:"text",designItem:i,type:"content",sourceObject:i,display:"textContent"})}return t}refactor(e,t,i){e.type=="attribute"?e.designItem.setAttribute("value",i):e.type=="content"&&(e.designItem.content=i)}};Ul();q();import{TypedEvent as ed}from"@node-projects/base-custom-webcomponent";var ce;(function(s){s[s.none=0]="none",s[s.parseName=1]="parseName",s[s.parseAttribute=2]="parseAttribute",s[s.parseInFunc=3]="parseInFunc",s[s.parseNameOrPseudo=4]="parseNameOrPseudo"})(ce||(ce={}));function Fc(s){return Wi(s,0)[0]}function Wi(s,e){let t={A:0,B:0,C:0},i=ce.none;for(let r=e;r<s.length;r++){let n=s[r];if(i===ce.parseInFunc)n==")"&&(i=ce.none);else if(i===ce.parseAttribute)n=="]"&&(i=ce.none);else switch(n){case"#":t.A++,i=ce.parseName;break;case".":t.B++,i=ce.parseName;break;case"[":t.B++,i=ce.parseAttribute;break;case"(":break;case")":return[t,r];case",":return[t,r];case":":if(s[r+1]===":")t.C++,i=ce.parseName;else if(s.substring(r+1,r+4)==="is("){i=ce.none,r+=4;let o=Gi(s,r);r=o[1],t.A+=o[0].A,t.B+=o[0].B,t.C+=o[0].C}else if(s.substring(r+1,r+5)==="has("){r+=5;let o=Gi(s,r);r=o[1],t.A+=o[0].A,t.B+=o[0].B,t.C+=o[0].C}else if(s.substring(r+1,r+5)==="not("){r+=5;let o=Gi(s,r);r=o[1],t.A+=o[0].A,t.B+=o[0].B,t.C+=o[0].C}else if(s.substring(r+1,r+11)==="nth-child("){t.B++,r+=11;let o=Gi(s,r);r=o[1],t.A+=o[0].A,t.B+=o[0].B,t.C+=o[0].C}else if(s.substring(r+1,r+16)==="nth-last-child("){t.B++,r+=16;let o=Gi(s,r);r=o[1],t.A+=o[0].A,t.B+=o[0].B,t.C+=o[0].C}else if(s.substring(r+1,r+6)==="host("){t.B++,r+=6;let o=Wi(s,r);r=o[1],t.A+=o[0].A,t.B+=o[0].B,t.C+=o[0].C}else if(s.substring(r+1,r+14)==="host-context("){t.B++,r+=14;let o=Wi(s,r);r=o[1],t.A+=o[0].A,t.B+=o[0].B,t.C+=o[0].C}else if(s.substring(r+1,r+9)==="slotted("){t.B++,r+=9;let o=Wi(s,r);r=o[1],t.A+=o[0].A,t.B+=o[0].B,t.C+=o[0].C}else s.substring(r+1,r+7)==="where("?(i=ce.parseInFunc,r+=7):(t.B++,i=ce.parseName,r++);break;case">":case" ":case"~":case"+":i=ce.none;break;case"*":break;default:i===ce.none&&(t.C++,i=ce.parseName)}}return[t,s.length]}function Gi(s,e){let t=e,i=null;for(;i===null||s[t]===",";){s[t]===","&&t++;let r=Wi(s,t);if(r[1]>t)t=r[1];else return[i,0];(i==null||r[0].A>i.A||r[0].A===i.A&&r[0].B>i.B||r[0].A===i.A&&r[0].B===i.B&&r[0].C>i.C)&&(i=r[0])}return[i,t]}var oo=class s{_stylesheets=new Map;_documentStylesheets=new Map;_allStylesheets=new Map;_instanceServiceContainer;constructor(e){this._instanceServiceContainer=e.instanceServiceContainer}async setStylesheets(e){await this.internalSetStylesheets(e,this._stylesheets)}async setDocumentStylesheets(e){await this.internalSetStylesheets(e,this._documentStylesheets)}async internalSetStylesheets(e,t){if(t!=null&&e!=null&&t.size==e.length&&e.every(i=>t.has(i.name)))for(let i of e){let r=t.get(i.name);if(r.stylesheet.content!=i.content){try{t.set(i.name,{stylesheet:i,ast:await this.internalParse(i.content)})}catch(n){console.warn("error parsing stylesheet",i,n)}t==this._stylesheets&&this.stylesheetChanged.emit({name:i.name,newStyle:i.content,oldStyle:r.stylesheet.content,changeSource:"extern"})}}else if(e!=null){t.clear();for(let i of e){let r=null;try{r=await this.internalParse(i.content)}catch(n){console.warn("error parsing stylesheet",i,n)}t.set(i.name,{stylesheet:i,ast:r})}t==this._stylesheets&&this.stylesheetsChanged.emit()}else t.clear();this._allStylesheets.clear();for(let i of this._documentStylesheets)this._allStylesheets.set(i[0],i[1]);for(let i of this._stylesheets)this._allStylesheets.set(i[0],i[1])}async internalReparseStylesheet(e){let t=this._allStylesheets;this._documentStylesheets.has(e)&&(t=this._documentStylesheets),this._stylesheets.has(e)&&(t=this._stylesheets);let i=t.get(e),r=null;try{r=await this.internalParse(i.stylesheet.content)}catch(o){console.warn("error parsing stylesheet",e,o)}let n={stylesheet:i.stylesheet,ast:r};this._stylesheets.set(e,n),this._allStylesheets.set(e,n)}getStylesheets(){let e=[];for(let t of this._stylesheets)e.push(t[1].stylesheet);return e}getDeclarationsSortedBySpecificity(e,t){let i=this.getDeclarations(e,t);return i.reverse().sort((r,n)=>r.parent.specificity==null?-1:n.parent.specificity==null?1:r.parent.specificity.A>n.parent.specificity.A||r.parent.specificity.A===n.parent.specificity.A&&r.parent.specificity.B>n.parent.specificity.B||r.parent.specificity.A===n.parent.specificity.A&&r.parent.specificity.B===n.parent.specificity.B&&r.parent.specificity.C>n.parent.specificity.C?-1:r.parent.specificity.A===n.parent.specificity.A&&r.parent.specificity.B===n.parent.specificity.B&&r.parent.specificity.C===n.parent.specificity.C?0:1),i}updateDeclarationValue(e,t,i){this.updateDeclarationValueWithoutUndo(e,t,i)}stylesheetChanged=new ed;stylesheetsChanged=new ed;static patchStylesheetSelectorForDesigner(e){return e.replaceAll(":hover","["+ct+"]").replaceAll(":active","["+gi+"]").replaceAll(":visited","["+yi+"]").replaceAll(":focus","["+vi+"]").replaceAll(":focus-within","["+xi+"]").replaceAll(":focus-visible","["+_i+"]")}elementMatchesASelector(e,t){let i=null;for(let r of t)try{if(e&&r===":host"&&e.isRootItem){let n=Fc(r);(i===null||n.A>i.A||n.B>i.B||n.C>i.C)&&(i=n)}else if(!e||e.element.matches(s.patchStylesheetSelectorForDesigner(r))){let n=Fc(r);(i===null||n.A>i.A||n.B>i.B||n.C>i.C)&&(i=n)}}catch{console.warn("invalid selector: ",r,"patched: "+s.patchStylesheetSelectorForDesigner(r))}return i===null?!1:i}};Wl();jl();Do();ko();Lc();He();Mo();Vo();var ao=class{stylesheetService;constructor(e,t,i,r){this.title="Changed Css Stylesheet: "+t,this.stylesheetService=e,this.name=t,this.newValue=i,this.oldValue=r}title;get affectedItems(){return[]}undo(){this.stylesheetService.updateCompleteStylesheetWithoutUndo(this.name,this.oldValue)}do(){this.stylesheetService.updateCompleteStylesheetWithoutUndo(this.name,this.newValue)}name;newValue;oldValue;mergeWith(e){return!1}};var lo=class{constructor(e,t){this.title="Set all DesignItems",this.newDesignItems=e,this.oldDesignItems=t}title;get affectedItems(){return this.newDesignItems}undo(){this.newDesignItems[0].instanceServiceContainer.designerCanvas._internalSetDesignItems(this.oldDesignItems)}do(){this.newDesignItems[0].instanceServiceContainer.designerCanvas._internalSetDesignItems(this.newDesignItems)}newDesignItems;oldDesignItems;mergeWith(e){return!1}};Lo();$i();$i();import{TypedEvent as lm}from"@node-projects/base-custom-webcomponent";var co=class{imports=[];npmPackages=[];extensionOptions={gridExtensionShowOverlay:!1,flexboxExtensionShowOverlay:!1,invisibleElementExtensionShowOverlay:!1,enableStylesheetService:!1,basicStackedToolbarExtensionShowOverlay:!1,simulateHoverOnHover:!1,selectUnhitableElements:!0};extensionOptionsChanged=new lm};var ho=class extends Ot{designContext=new co;designerCanvas;designer;documentContainer;constructor(e){super(),this.designerCanvas=e}get undoService(){return this.getLastService("undoService")}get selectionService(){return this.getLastService("selectionService")}get contentService(){return this.getLastService("contentService")}get stylesheetService(){return this.getLastService("stylesheetService")}get designItemDocumentPositionService(){return this.getLastService("designItemDocumentPositionService")}};Co();re();Xe();at();ie();$();import{BaseCustomWebComponentLazyAppend as cm,css as hm,DomHelper as td}from"@node-projects/base-custom-webcomponent";var Ee=class s extends cm{_div;_propertyMap=new Map;_serviceContainer;_propertiesService;_designItems;_lastClassType;_addCounter=0;propertyGroupHover;propertyGroupClick;propertyContextMenuProvider;get propertiesService(){return this._propertiesService}static get style(){return hm`
|
|
1094
1094
|
:host{
|
|
1095
1095
|
display: block;
|
|
1096
1096
|
height: 100%;
|
|
@@ -1243,7 +1243,7 @@ declare global {
|
|
|
1243
1243
|
<div title="textContent" id="contentRect" style="width: 7px; height: 7px; border: 1px solid white;"></div>
|
|
1244
1244
|
<span id="contentSpan" class="desc">Content:</span><input type="text" id="content">
|
|
1245
1245
|
</div>
|
|
1246
|
-
<node-projects-web-component-designer-property-grid id="pg"></node-projects-web-component-designer-property-grid>`;propertyGrid;_type;_id;_content;_selectionChangedHandler;_instanceServiceContainer;_idRect;_contentRect;_innerRect;_propertiesService;_configButton;constructor(){super(),this._restoreCachedInititalValues(),this._type=this._getDomElement("type"),this._id=this._getDomElement("id"),this._content=this._getDomElement("content"),this.propertyGrid=this._getDomElement("pg"),this._idRect=this._getDomElement("idRect"),this._contentRect=this._getDomElement("contentRect"),this._innerRect=this._getDomElement("innerRect"),this._configButton=this._getDomElement("config"),this._configButton.onclick=async()=>{let i=await(await this.serviceContainer?.getLastServiceWhereAsync("configUiService",async r=>await r.hasConfigUi(this._instanceServiceContainer.selectionService.primarySelection))).getConfigUi(this._instanceServiceContainer.selectionService.primarySelection);this.serviceContainer.globalContext.showConfigClicked.emit({designItem:this._instanceServiceContainer.selectionService.primarySelection,configUi:i})},this._propertiesService=new so,this._idRect.oncontextmenu=t=>{t.preventDefault(),this._instanceServiceContainer.selectionService.primarySelection?.isRootItem||this._openContextMenu(t,this._instanceServiceContainer.selectionService.selectedElements,this._propertiesService.idProperty)},this._contentRect.oncontextmenu=t=>{t.preventDefault(),this._instanceServiceContainer.selectionService.primarySelection?.isRootItem||this._openContextMenu(t,this._instanceServiceContainer.selectionService.selectedElements,this._propertiesService.contentProperty)},this._innerRect.oncontextmenu=t=>{t.preventDefault(),this._instanceServiceContainer.selectionService.primarySelection?.isRootItem||this._openContextMenu(t,this._instanceServiceContainer.selectionService.selectedElements,this._propertiesService.innerHtmlProperty)},this._id.onkeydown=t=>{t.key=="Enter"?this._instanceServiceContainer.selectionService.primarySelection.id=this._id.value:t.key=="Escape"&&(this._id.value=this._instanceServiceContainer.selectionService.primarySelection?.id??"",t.preventDefault(),t.stopPropagation()),Ee.refreshIsSetElementAndEditorForDesignItems(this._idRect,this._propertiesService.idProperty,this._instanceServiceContainer.selectionService.selectedElements,this._propertiesService)},this._content.onkeydown=t=>{t.key=="Enter"?(this._instanceServiceContainer.selectionService.primarySelection.content=this._content.value,this._content.title=this._content.value):t.key=="Escape"&&(this._content.value=this._instanceServiceContainer.selectionService.primarySelection?.element?.textContent??"",t.preventDefault(),t.stopPropagation()),Ee.refreshIsSetElementAndEditorForDesignItems(this._contentRect,this._propertiesService.contentProperty,this._instanceServiceContainer.selectionService.selectedElements,this._propertiesService),Ee.refreshIsSetElementAndEditorForDesignItems(this._innerRect,this._propertiesService.innerHtmlProperty,this._instanceServiceContainer.selectionService.selectedElements,this._propertiesService)};let e;this._id.onfocus=t=>{e=this._instanceServiceContainer.selectionService.primarySelection},this._id.onblur=t=>{e&&(e.id=this._id.value),e=null,Ee.refreshIsSetElementAndEditorForDesignItems(this._idRect,this._propertiesService.idProperty,this._instanceServiceContainer.selectionService.selectedElements,this._propertiesService)}}set serviceContainer(e){this.propertyGrid.serviceContainer=e}set instanceServiceContainer(e){this._instanceServiceContainer=e,this._selectionChangedHandler?.dispose(),this._instanceServiceContainer?this._selectionChangedHandler=this._instanceServiceContainer.selectionService.onSelectionChanged.on(async t=>{this.propertyGrid.instanceServiceContainer=e,await lt(20),this._instanceServiceContainer.selectionService?.primarySelection?.isRootItem?(this._configButton.style.display="none",this._id.value="",this._content.value="",this._id.disabled=!0,this._content.disabled=!0,this._idRect.style.background="",this._contentRect.style.background="",this._innerRect.style.background="",this._type.value=":host"):(this._id.disabled=!1,this._content.disabled=!1,await this.serviceContainer?.getLastServiceWhereAsync("configUiService",r=>r.hasConfigUi(this._instanceServiceContainer.selectionService.primarySelection))?this._configButton.style.display="block":this._configButton.style.display="none",this._instanceServiceContainer.selectionService.primarySelection?.nodeType==E.Element?this._type.value=this._instanceServiceContainer.selectionService.primarySelection?.name??"":this._type.value=this._instanceServiceContainer.selectionService.primarySelection?.node?.nodeName??"",this._type.title=this._type.value,this._id.blur(),this._id.value=this._instanceServiceContainer.selectionService.primarySelection?.id??"",this._instanceServiceContainer.selectionService.primarySelection?.element?.nodeType!=E.Element?this._content.value=this._instanceServiceContainer.selectionService.primarySelection?.content??"":this._instanceServiceContainer.selectionService.primarySelection?.element?.children?.length<=0?this._content.value=this._instanceServiceContainer.selectionService.primarySelection?.content??"":this._content.value="",this._content.title=this._content.value,Ee.refreshIsSetElementAndEditorForDesignItems(this._idRect,this._propertiesService.idProperty,this._instanceServiceContainer.selectionService.selectedElements,this._propertiesService),Ee.refreshIsSetElementAndEditorForDesignItems(this._contentRect,this._propertiesService.contentProperty,this._instanceServiceContainer.selectionService.selectedElements,this._propertiesService),Ee.refreshIsSetElementAndEditorForDesignItems(this._innerRect,this._propertiesService.innerHtmlProperty,this._instanceServiceContainer.selectionService.selectedElements,this._propertiesService))}):(this._configButton.style.display="none",this._id.value="",this._content.value="",this._id.disabled=!0,this._content.disabled=!0,this._idRect.style.background="",this._contentRect.style.background="",this._innerRect.style.background="",this._type.value=":host"),this.propertyGrid.instanceServiceContainer=e}_openContextMenu(e,t,i){let r;this.propertyGrid.propertyContextMenuProvider&&(r=this.propertyGrid.propertyContextMenuProvider(t,i)),r||(r=i.service.getContextMenu(t,i)),he.show(r,e)}};customElements.define("node-projects-web-component-designer-property-grid-with-header",Bc);import{css as Pm,DomHelper as km,html as Im,BaseCustomWebComponentConstructorAppend as Dm}from"@node-projects/base-custom-webcomponent";ee();q();$();He();import{BaseCustomWebComponentLazyAppend as xm,css as _m,cssFromString as bm,DomHelper as Vc,html as wm,TypedEvent as rd}from"@node-projects/base-custom-webcomponent";X();var ft=k.Normal,po=class{snapOffset=5;_overlayLayerView;_containerItem;_positionsH=[];_positionsMiddleH=[];_positionsV=[];_positionsMiddleV=[];_outerRect;constructor(e){this._overlayLayerView=e}initialize(e){this._containerItem=e}clearSnaplines(){this._overlayLayerView.removeAllNodesWithClass&&this._overlayLayerView.removeAllNodesWithClass("svg-snapline"),this._positionsH=[],this._positionsMiddleH=[],this._positionsV=[],this._positionsMiddleV=[]}calculateSnaplines(e){this.clearSnaplines();let t=this._containerItem.serviceContainer.snaplinesProviderService.provideSnaplines(this._containerItem,e);this._outerRect=t.outerRect,this._positionsH=t.positionsH,this._positionsMiddleH=t.positionsMiddleH,this._positionsV=t.positionsV,this._positionsMiddleV=t.positionsMiddleV}snapToPosition(e,t,i){let r=this.snapOffset+1,n,o;for(let c=0;c<this._positionsH.length;c++){let h=Math.abs(this._positionsH[c][0]-e.x);(h<r||h===r&&n===void 0)&&(r=h,n=[],o=this._positionsH[c][0]);let d;t&&(d=Math.abs(e.x+t.width-this._positionsH[c][0]),(d<r||d===r&&n===void 0)&&(r=d,n=[],o=this._positionsH[c][0]-t.width)),h===r&&n.push(this._positionsH[c][1]),t&&d===r&&h!==r&&n.push(this._positionsH[c][1])}if(t)for(let c=0;c<this._positionsMiddleH.length;c++){let h=Math.abs(this._positionsMiddleH[c][0]-(e.x+t.width/2));(h<r||h===r&&n===void 0)&&(r=h,n=[],o=this._positionsMiddleH[c][0]-t.width/2),h===r&&n.push(this._positionsMiddleH[c][1])}r=this.snapOffset+1;let a,l;for(let c=0;c<this._positionsV.length;c++){let h=Math.abs(this._positionsV[c][0]-e.y);(h<r||h===r&&a===void 0)&&(r=h,a=[],l=this._positionsV[c][0]);let d;t&&(d=Math.abs(e.y+t.height-this._positionsV[c][0]),(d<r||d===r&&a===void 0)&&(r=d,a=[],l=this._positionsV[c][0]-t.height)),h===r&&a.push(this._positionsV[c][1]),t&&d===r&&h!==r&&a.push(this._positionsV[c][1])}if(t)for(let c=0;c<this._positionsMiddleV.length;c++){let h=Math.abs(this._positionsMiddleV[c][0]-(e.y+t.height/2));(h<r||h===r&&a===void 0)&&(r=h,a=[],l=this._positionsMiddleV[c][0]-t.height/2),h===r&&a.push(this._positionsMiddleV[c][1])}if(this._overlayLayerView.removeAllNodesWithClass("svg-snapline"),n!==void 0||a!==void 0){let c={x:n!==void 0?o:e.x,y:a!==void 0?l:e.y};return this.drawSnaplines(c,t,n,a),{x:n!==void 0?o:null,y:a!==void 0?l:null}}return{x:null,y:null}}drawSnaplines(e,t,i,r){if(i){let n=e.y,o=e.y;for(let a of i){let l=a.y-this._outerRect.top;n=n<l?n:l,o=o>l?o:l}for(let a of i){if(a.x-this._outerRect.left==e.x||t&&a.x-this._outerRect.left==e.x+t.width){let c=document.createElementNS("http://www.w3.org/2000/svg","line");c.setAttribute("x1",a.x-this._outerRect.x),c.setAttribute("x2",a.x-this._outerRect.x),c.setAttribute("y1",n),c.setAttribute("y2",o),c.setAttribute("class","svg-snapline"),this._overlayLayerView.addOverlay(this.constructor.name,c,ft)}if(a.x-this._outerRect.left+a.width==e.x||t&&a.x-this._outerRect.left+a.width==e.x+t.width){let c=document.createElementNS("http://www.w3.org/2000/svg","line");c.setAttribute("x1",a.x-this._outerRect.x+a.width),c.setAttribute("x2",a.x-this._outerRect.x+a.width),c.setAttribute("y1",n),c.setAttribute("y2",o),c.setAttribute("class","svg-snapline"),this._overlayLayerView.addOverlay(this.constructor.name,c,ft)}if(t&&a.x-this._outerRect.left+a.width/2==e.x+t.width/2){let c=document.createElementNS("http://www.w3.org/2000/svg","line");c.setAttribute("x1",a.x-this._outerRect.x+a.width/2),c.setAttribute("x2",a.x-this._outerRect.x+a.width/2),c.setAttribute("y1",n),c.setAttribute("y2",o),c.setAttribute("class","svg-snapline"),this._overlayLayerView.addOverlay(this.constructor.name,c,ft)}let l=document.createElementNS("http://www.w3.org/2000/svg","rect");l.setAttribute("x",a.x-this._outerRect.x),l.setAttribute("width",a.width),l.setAttribute("y",a.y-this._outerRect.y),l.setAttribute("height",a.height),l.setAttribute("class","svg-snapline"),this._overlayLayerView.addOverlay(this.constructor.name,l,ft)}}if(r){let n=e.x,o=e.x;for(let a of r){let l=a.x-this._outerRect.left;n=n<l?n:l,o=o>l?o:l}for(let a of r){if(a.y-this._outerRect.top==e.y||t&&a.y-this._outerRect.top==e.y+t.height){let c=document.createElementNS("http://www.w3.org/2000/svg","line");c.setAttribute("x1",n),c.setAttribute("x2",o),c.setAttribute("y1",a.y-this._outerRect.y),c.setAttribute("y2",a.y-this._outerRect.y),c.setAttribute("class","svg-snapline"),this._overlayLayerView.addOverlay(this.constructor.name,c,ft)}if(a.y-this._outerRect.top+a.height==e.y||t&&a.y-this._outerRect.top+a.height==e.y+t.height){let c=document.createElementNS("http://www.w3.org/2000/svg","line");c.setAttribute("x1",n),c.setAttribute("x2",o),c.setAttribute("y1",a.y-this._outerRect.y+a.height),c.setAttribute("y2",a.y-this._outerRect.y+a.height),c.setAttribute("class","svg-snapline"),this._overlayLayerView.addOverlay(this.constructor.name,c,ft)}if(t&&a.y-this._outerRect.top+a.height/2==e.y+t.height/2){let c=document.createElementNS("http://www.w3.org/2000/svg","line");c.setAttribute("x1",n),c.setAttribute("x2",o),c.setAttribute("y1",a.y-this._outerRect.y+a.height/2),c.setAttribute("y2",a.y-this._outerRect.y+a.height/2),c.setAttribute("class","svg-snapline"),this._overlayLayerView.addOverlay(this.constructor.name,c,ft)}let l=document.createElementNS("http://www.w3.org/2000/svg","rect");l.setAttribute("x",a.x-this._outerRect.x),l.setAttribute("width",a.width),l.setAttribute("y",a.y-this._outerRect.y),l.setAttribute("height",a.height),l.setAttribute("class","svg-snapline"),this._overlayLayerView.addOverlay(this.constructor.name,l,ft)}}}};Qe();Ci();De();q();Z();De();Pt();function F(s,e){let t=e.get(s);return t||(t=new Map,e.set(s,t),t)}var mo=class s{designerCanvas;designItemsWithExtentions=new Set;_timeout;_appliedDesignerExtensions=new WeakMap;_shouldAppliedDesignerExtensions=new WeakMap;_lastApplyEventPerType=new WeakMap;_lastPrimarySelectionRefreshItem;constructor(e){bh(),this.designerCanvas=e,e.instanceServiceContainer.selectionService.onSelectionChanged.on(this._selectedElementsChanged.bind(this)),e.instanceServiceContainer.selectionService.onSelectionRefresh.on(this._selectedElementsRefresh.bind(this)),e.instanceServiceContainer.contentService.onContentChanged.on(this._contentChanged.bind(this)),e.serviceContainer.globalContext.onToolChanged.on(()=>{this.removeExtension(e.instanceServiceContainer.selectionService.primarySelection,w.PrimarySelectionRefreshed),this._lastPrimarySelectionRefreshItem=null})}connected(){this._timeout||(this._timeout=setTimeout(()=>this.refreshAllExtensionsTimeout(),20))}disconnected(){this._timeout&&clearTimeout(this._timeout),this._timeout=null}refreshAllExtensionsTimeout(){this.refreshAllAppliedExtentions(),this._timeout=setTimeout(()=>this.refreshAllExtensionsTimeout(),20)}_contentChanged(e){requestAnimationFrame(()=>{switch(e.changeType){case"added":this.applyExtensions(e.designItems,w.Permanent,null,!0);break;case"moved":this.refreshExtensions(e.designItems,w.Permanent);break;case"parsed":this.applyExtensions(Array.from(this.designerCanvas.rootDesignItem.children()),w.Permanent,null,!0);break;case"removed":this.removeExtensions(e.designItems,!0,w.Permanent);break}})}_selectedElementsChanged(e){if(this._lastPrimarySelectionRefreshItem=null,e.oldSelectedElements&&e.oldSelectedElements.length&&(this.removeExtension(e.oldSelectedElements[0],w.PrimarySelectionRefreshed),this.removeExtension(e.oldSelectedElements[0],w.PrimarySelection),this.removeExtension(e.oldSelectedElements[0],w.PrimarySelectionAndCanBeEntered),this.removeExtension(e.oldSelectedElements[0],w.OnlyOneItemSelected),this.removeExtensions(e.oldSelectedElements,!1,w.Selection),this.removeExtensions(e.oldSelectedElements,!1,w.MultipleItemsSelected),e.oldSelectedElements[0].parent)){let t=T.GetOrCreateDesignItem(e.oldSelectedElements[0].parent.element,e.oldSelectedElements[0].parent.element,this.designerCanvas.serviceContainer,this.designerCanvas.instanceServiceContainer);this.removeExtension(t,w.PrimarySelectionContainer),this.removeExtension(t,w.PrimarySelectionContainerAndCanBeEntered)}if(e.selectedElements&&e.selectedElements.length&&(this.applyExtensions(e.selectedElements,w.Selection,e.event),this.applyExtension(e.selectedElements[0],w.PrimarySelection,e.event),e.selectedElements.length===1?this.applyExtension(e.selectedElements[0],w.OnlyOneItemSelected,e.event):e.selectedElements.length>1&&this.applyExtension(e.selectedElements[0],w.MultipleItemsSelected,e.event),e.selectedElements[0].getPlacementService()?.isEnterableContainer(e.selectedElements[0])&&this.applyExtension(e.selectedElements[0],w.PrimarySelectionAndCanBeEntered,e.event),e.selectedElements[0].parent)){let t=T.GetOrCreateDesignItem(e.selectedElements[0].parent.element,e.selectedElements[0].parent.element,this.designerCanvas.serviceContainer,this.designerCanvas.instanceServiceContainer);this.applyExtension(t,w.PrimarySelectionContainer,e.event),t.getPlacementService()?.isEnterableContainer(t)&&this.applyExtension(t,w.PrimarySelectionContainerAndCanBeEntered,e.event)}}_selectedElementsRefresh(e){this.refreshAllAppliedExtentions(e.event),e.selectedElements&&e.selectedElements.length&&this._lastPrimarySelectionRefreshItem?.deref()===e.selectedElements[0]&&(this._appliedDesignerExtensions.get(e.selectedElements[0])?.get(w.PrimarySelectionRefreshed)||this.applyExtension(e.selectedElements[0],w.PrimarySelectionRefreshed,e.event)),this._lastPrimarySelectionRefreshItem=new WeakRef(e.selectedElements[0])}applyExtension(e,t,i,r=!1){if(e&&e.nodeType==E.Element){let n=this.designerCanvas.serviceContainer.designerExtensions.get(t),o=[];if(n){let a={};At();for(let l of n){let c=F(e,this._shouldAppliedDesignerExtensions).get(t);if(c||(c=[]),c.push(l),F(e,this._shouldAppliedDesignerExtensions).set(t,c),l.shouldExtend(this,this.designerCanvas,e)){let h=F(e,this._appliedDesignerExtensions).get(t);h||(h=[]);let d=l.getExtension(this,this.designerCanvas,e);try{d.extend(a,i),o.push(d),i?F(e,this._lastApplyEventPerType).set(t,i):F(e,this._lastApplyEventPerType).delete(t)}catch(p){console.error(p)}h.push(d),F(e,this._appliedDesignerExtensions).set(t,h),this.designItemsWithExtentions.add(e)}}}if(r)for(let a of e.children())this.applyExtension(a,t,i,r);return o}return null}applyExtensions(e,t,i,r=!1){if(this.designerCanvas.overlayLayer.startBatch(),e){let n=this.designerCanvas.serviceContainer.designerExtensions.get(t);if(n){let o={};At();for(let a of n)for(let l of e){let c=F(l,this._shouldAppliedDesignerExtensions).get(t);if(c||(c=[]),c.push(a),F(l,this._shouldAppliedDesignerExtensions).set(t,c),a.shouldExtend(this,this.designerCanvas,l)){let h=F(l,this._appliedDesignerExtensions).get(t);h||(h=[]);let d=a.getExtension(this,this.designerCanvas,l);try{d.extend(o,i),i?F(l,this._lastApplyEventPerType).set(t,i):F(l,this._lastApplyEventPerType).delete(t)}catch(p){console.error(p)}h.push(d),F(l,this._appliedDesignerExtensions).set(t,h),this.designItemsWithExtentions.add(l)}}}if(r)for(let o of e)this.applyExtensions(Array.from(o.children()),t,i,r)}this.designerCanvas.overlayLayer.endBatch()}applyExtensionInstance(e,t){let i=F(e,this._appliedDesignerExtensions).get(w.Directly);i||(i=[]);try{t.extend(null,null)}catch(r){console.error(r)}i.push(t),F(e,this._appliedDesignerExtensions).set(w.Directly,i),this.designItemsWithExtentions.add(e)}removeExtensionInstance(e,t){for(let i of F(e,this._appliedDesignerExtensions)){let r=i[1].indexOf(t);if(r>=0){try{t.dispose()}catch(n){console.error(n)}i[1].splice(r,1),i[1].length==0&&(F(e,this._appliedDesignerExtensions).delete(i[0]),F(e,this._shouldAppliedDesignerExtensions).delete(i[0])),F(e,this._appliedDesignerExtensions).size||this.designItemsWithExtentions.delete(e)}}}removeExtension(e,t){if(e)if(t){F(e,this._shouldAppliedDesignerExtensions).delete(t);let i=F(e,this._appliedDesignerExtensions).get(t);if(i){for(let r of i)try{r.dispose(),F(e,this._lastApplyEventPerType).delete(t)}catch(n){console.error(n)}F(e,this._appliedDesignerExtensions).delete(t),F(e,this._appliedDesignerExtensions).size||this.designItemsWithExtentions.delete(e)}}else{F(e,this._shouldAppliedDesignerExtensions).clear();for(let i of F(e,this._appliedDesignerExtensions))for(let r of i[1])try{r.dispose()}catch(n){console.error(n)}F(e,this._appliedDesignerExtensions).clear(),this.designItemsWithExtentions.delete(e)}}removeExtensions(e,t,i){if(e)if(i)for(let r of e){t&&r.hasChildren&&this.removeExtensions([...r.children()],!0,i),F(r,this._shouldAppliedDesignerExtensions).delete(i);let n=F(r,this._appliedDesignerExtensions).get(i);if(n){for(let o of n)try{o.dispose(),F(r,this._lastApplyEventPerType).delete(i)}catch(a){console.error(a)}F(r,this._appliedDesignerExtensions).delete(i),F(r,this._appliedDesignerExtensions).size||this.designItemsWithExtentions.delete(r)}}else for(let r of e){t&&r.hasChildren&&this.removeExtensions([...r.children()],!0,i),F(r,this._shouldAppliedDesignerExtensions).clear();for(let n of F(r,this._appliedDesignerExtensions))for(let o of n[1])try{o.dispose()}catch(a){console.error(a)}F(r,this._appliedDesignerExtensions).clear(),this.designItemsWithExtentions.delete(r)}}refreshExtension(e,t,i){if(!(this.designerCanvas.checkVisibility&&!this.designerCanvas.checkVisibility())&&e)if(t)if(!e.element.isConnected)this.removeExtension(e,t);else{let r=F(e,this._appliedDesignerExtensions).get(t);if(r){let n={};At();for(let o of r)try{o.refresh(n,i),i&&F(e,this._lastApplyEventPerType).set(t,i)}catch(a){console.error(a)}}}else{let r={};At();for(let n of F(e,this._appliedDesignerExtensions))for(let o of n[1])try{o.refresh(r,i)}catch(a){console.error(a)}}}refreshExtensions(e,t,i,r,n){if(this.designerCanvas.checkVisibility&&!this.designerCanvas.checkVisibility())return;this.designerCanvas.overlayLayer.startBatch();let o=performance.now();if(e)if(t){let a={};At();e:for(let l of e)if(!l.element.isConnected)this.removeExtension(l,t);else{let c=F(l,this._appliedDesignerExtensions).get(t);if(c)for(let h of c)try{if(h!=r&&h.refresh(a,i),n&&performance.now()-o>n){console.warn("refreshExtensions() took too long, stopped refreshing");break e}}catch(d){console.error(d)}}}else{let a={};At();e:for(let l of e)for(let c of F(l,this._appliedDesignerExtensions))for(let h of c[1])try{if(h!=r&&(h.refresh(a,i),i&&F(l,this._lastApplyEventPerType).set(t,i),n&&performance.now()-o>n)){console.warn("refreshExtensions() took too long, stopped refreshing");break e}}catch(d){console.error(d)}}this.designerCanvas.overlayLayer.endBatch()}refreshAllExtensions(e,t,i){this.designerCanvas.overlayLayer.startBatch(),e&&(this.refreshExtensions(e,w.Directly,i,t),this.refreshExtensions(e,w.Permanent,i,t),this.refreshExtensions(e,w.Selection,i,t),this.refreshExtensions(e,w.PrimarySelection,i,t),this.refreshExtensions(e,w.PrimarySelectionContainer,i,t),this.refreshExtensions(e,w.MouseOver,i,t),this.refreshExtensions(e,w.OnlyOneItemSelected,i,t),this.refreshExtensions(e,w.MultipleItemsSelected,i,t),this.refreshExtensions(e,w.ContainerDragOverAndCanBeEntered,i,t),this.refreshExtensions(e,w.ContainerDrag,i,t),this.refreshExtensions(e,w.Doubleclick,i,t),this.refreshExtensions(e,w.Placement,i,t),this.refreshExtensions(e,w.PrimarySelectionAndCanBeEntered,i,t),this.refreshExtensions(e,w.PrimarySelectionContainerAndCanBeEntered,i,t)),this.designerCanvas.overlayLayer.endBatch()}refreshAllAppliedExtentions(e){this.designerCanvas.fillCalculationrects(),this.refreshAllExtensions([...this.designItemsWithExtentions],null,e)}reapplyAllAppliedExtentions(e,t){this.designerCanvas.overlayLayer.startBatch();for(let i of s.getAllChildElements(this.designerCanvas.rootDesignItem))if(!e||e.includes(i)){let r=[...F(i,this._shouldAppliedDesignerExtensions).keys()];for(let n of r){let o=F(i,this._lastApplyEventPerType).get(n);this.removeExtension(i,n),(t==null||t.includes(n))&&this.applyExtension(i,n,o)}}this.designerCanvas.overlayLayer.endBatch()}static*getAllChildElements(e){if(e.nodeType==E.Element&&(yield e),e.hasChildren)for(let t of e.children())for(let i of s.getAllChildElements(t))yield i}};$e();Pe();X();import{css as gm,html as ym,BaseCustomWebComponentConstructorAppend as vm}from"@node-projects/base-custom-webcomponent";var ai=class s extends vm{static template=ym`
|
|
1246
|
+
<node-projects-web-component-designer-property-grid id="pg"></node-projects-web-component-designer-property-grid>`;propertyGrid;_type;_id;_content;_selectionChangedHandler;_instanceServiceContainer;_idRect;_contentRect;_innerRect;_propertiesService;_configButton;constructor(){super(),this._restoreCachedInititalValues(),this._type=this._getDomElement("type"),this._id=this._getDomElement("id"),this._content=this._getDomElement("content"),this.propertyGrid=this._getDomElement("pg"),this._idRect=this._getDomElement("idRect"),this._contentRect=this._getDomElement("contentRect"),this._innerRect=this._getDomElement("innerRect"),this._configButton=this._getDomElement("config"),this._configButton.onclick=async()=>{let i=await(await this.serviceContainer?.getLastServiceWhereAsync("configUiService",async r=>await r.hasConfigUi(this._instanceServiceContainer.selectionService.primarySelection))).getConfigUi(this._instanceServiceContainer.selectionService.primarySelection);this.serviceContainer.globalContext.showConfigClicked.emit({designItem:this._instanceServiceContainer.selectionService.primarySelection,configUi:i})},this._propertiesService=new so,this._idRect.oncontextmenu=t=>{t.preventDefault(),this._instanceServiceContainer.selectionService.primarySelection?.isRootItem||this._openContextMenu(t,this._instanceServiceContainer.selectionService.selectedElements,this._propertiesService.idProperty)},this._contentRect.oncontextmenu=t=>{t.preventDefault(),this._instanceServiceContainer.selectionService.primarySelection?.isRootItem||this._openContextMenu(t,this._instanceServiceContainer.selectionService.selectedElements,this._propertiesService.contentProperty)},this._innerRect.oncontextmenu=t=>{t.preventDefault(),this._instanceServiceContainer.selectionService.primarySelection?.isRootItem||this._openContextMenu(t,this._instanceServiceContainer.selectionService.selectedElements,this._propertiesService.innerHtmlProperty)},this._id.onkeydown=t=>{t.key=="Enter"?this._instanceServiceContainer.selectionService.primarySelection.id=this._id.value:t.key=="Escape"&&(this._id.value=this._instanceServiceContainer.selectionService.primarySelection?.id??"",t.preventDefault(),t.stopPropagation()),Ee.refreshIsSetElementAndEditorForDesignItems(this._idRect,this._propertiesService.idProperty,this._instanceServiceContainer.selectionService.selectedElements,this._propertiesService)},this._content.onkeydown=t=>{t.key=="Enter"?(this._instanceServiceContainer.selectionService.primarySelection.content=this._content.value,this._content.title=this._content.value):t.key=="Escape"&&(this._content.value=this._instanceServiceContainer.selectionService.primarySelection?.element?.textContent??"",t.preventDefault(),t.stopPropagation()),Ee.refreshIsSetElementAndEditorForDesignItems(this._contentRect,this._propertiesService.contentProperty,this._instanceServiceContainer.selectionService.selectedElements,this._propertiesService),Ee.refreshIsSetElementAndEditorForDesignItems(this._innerRect,this._propertiesService.innerHtmlProperty,this._instanceServiceContainer.selectionService.selectedElements,this._propertiesService)};let e;this._id.onfocus=t=>{e=this._instanceServiceContainer.selectionService.primarySelection},this._id.onblur=t=>{e&&(e.id=this._id.value),e=null,Ee.refreshIsSetElementAndEditorForDesignItems(this._idRect,this._propertiesService.idProperty,this._instanceServiceContainer.selectionService.selectedElements,this._propertiesService)}}set serviceContainer(e){this.propertyGrid.serviceContainer=e}set instanceServiceContainer(e){this._instanceServiceContainer=e,this._selectionChangedHandler?.dispose(),this._instanceServiceContainer?this._selectionChangedHandler=this._instanceServiceContainer.selectionService.onSelectionChanged.on(async t=>{this.propertyGrid.instanceServiceContainer=e,await lt(20),this._instanceServiceContainer.selectionService?.primarySelection?.isRootItem?(this._configButton.style.display="none",this._id.value="",this._content.value="",this._id.disabled=!0,this._content.disabled=!0,this._idRect.style.background="",this._contentRect.style.background="",this._innerRect.style.background="",this._type.value=":host"):(this._id.disabled=!1,this._content.disabled=!1,await this.serviceContainer?.getLastServiceWhereAsync("configUiService",r=>r.hasConfigUi(this._instanceServiceContainer.selectionService.primarySelection))?this._configButton.style.display="block":this._configButton.style.display="none",this._instanceServiceContainer.selectionService.primarySelection?.nodeType==E.Element?this._type.value=this._instanceServiceContainer.selectionService.primarySelection?.name??"":this._type.value=this._instanceServiceContainer.selectionService.primarySelection?.node?.nodeName??"",this._type.title=this._type.value,this._id.blur(),this._id.value=this._instanceServiceContainer.selectionService.primarySelection?.id??"",this._instanceServiceContainer.selectionService.primarySelection?.element?.nodeType!=E.Element?this._content.value=this._instanceServiceContainer.selectionService.primarySelection?.content??"":this._instanceServiceContainer.selectionService.primarySelection?.element?.children?.length<=0?this._content.value=this._instanceServiceContainer.selectionService.primarySelection?.content??"":this._content.value="",this._content.title=this._content.value,Ee.refreshIsSetElementAndEditorForDesignItems(this._idRect,this._propertiesService.idProperty,this._instanceServiceContainer.selectionService.selectedElements,this._propertiesService),Ee.refreshIsSetElementAndEditorForDesignItems(this._contentRect,this._propertiesService.contentProperty,this._instanceServiceContainer.selectionService.selectedElements,this._propertiesService),Ee.refreshIsSetElementAndEditorForDesignItems(this._innerRect,this._propertiesService.innerHtmlProperty,this._instanceServiceContainer.selectionService.selectedElements,this._propertiesService))}):(this._configButton.style.display="none",this._id.value="",this._content.value="",this._id.disabled=!0,this._content.disabled=!0,this._idRect.style.background="",this._contentRect.style.background="",this._innerRect.style.background="",this._type.value=":host"),this.propertyGrid.instanceServiceContainer=e}_openContextMenu(e,t,i){let r;this.propertyGrid.propertyContextMenuProvider&&(r=this.propertyGrid.propertyContextMenuProvider(t,i)),r||(r=i.service.getContextMenu(t,i)),he.show(r,e)}};customElements.define("node-projects-web-component-designer-property-grid-with-header",Bc);import{css as Pm,DomHelper as Im,html as km,BaseCustomWebComponentConstructorAppend as Dm}from"@node-projects/base-custom-webcomponent";ee();q();$();He();import{BaseCustomWebComponentLazyAppend as xm,css as _m,cssFromString as bm,DomHelper as Vc,html as wm,TypedEvent as rd}from"@node-projects/base-custom-webcomponent";X();var ft=I.Normal,po=class{snapOffset=5;_overlayLayerView;_containerItem;_positionsH=[];_positionsMiddleH=[];_positionsV=[];_positionsMiddleV=[];_outerRect;constructor(e){this._overlayLayerView=e}initialize(e){this._containerItem=e}clearSnaplines(){this._overlayLayerView.removeAllNodesWithClass&&this._overlayLayerView.removeAllNodesWithClass("svg-snapline"),this._positionsH=[],this._positionsMiddleH=[],this._positionsV=[],this._positionsMiddleV=[]}calculateSnaplines(e){this.clearSnaplines();let t=this._containerItem.serviceContainer.snaplinesProviderService.provideSnaplines(this._containerItem,e);this._outerRect=t.outerRect,this._positionsH=t.positionsH,this._positionsMiddleH=t.positionsMiddleH,this._positionsV=t.positionsV,this._positionsMiddleV=t.positionsMiddleV}snapToPosition(e,t,i){let r=this.snapOffset+1,n,o;for(let c=0;c<this._positionsH.length;c++){let h=Math.abs(this._positionsH[c][0]-e.x);(h<r||h===r&&n===void 0)&&(r=h,n=[],o=this._positionsH[c][0]);let d;t&&(d=Math.abs(e.x+t.width-this._positionsH[c][0]),(d<r||d===r&&n===void 0)&&(r=d,n=[],o=this._positionsH[c][0]-t.width)),h===r&&n.push(this._positionsH[c][1]),t&&d===r&&h!==r&&n.push(this._positionsH[c][1])}if(t)for(let c=0;c<this._positionsMiddleH.length;c++){let h=Math.abs(this._positionsMiddleH[c][0]-(e.x+t.width/2));(h<r||h===r&&n===void 0)&&(r=h,n=[],o=this._positionsMiddleH[c][0]-t.width/2),h===r&&n.push(this._positionsMiddleH[c][1])}r=this.snapOffset+1;let a,l;for(let c=0;c<this._positionsV.length;c++){let h=Math.abs(this._positionsV[c][0]-e.y);(h<r||h===r&&a===void 0)&&(r=h,a=[],l=this._positionsV[c][0]);let d;t&&(d=Math.abs(e.y+t.height-this._positionsV[c][0]),(d<r||d===r&&a===void 0)&&(r=d,a=[],l=this._positionsV[c][0]-t.height)),h===r&&a.push(this._positionsV[c][1]),t&&d===r&&h!==r&&a.push(this._positionsV[c][1])}if(t)for(let c=0;c<this._positionsMiddleV.length;c++){let h=Math.abs(this._positionsMiddleV[c][0]-(e.y+t.height/2));(h<r||h===r&&a===void 0)&&(r=h,a=[],l=this._positionsMiddleV[c][0]-t.height/2),h===r&&a.push(this._positionsMiddleV[c][1])}if(this._overlayLayerView.removeAllNodesWithClass("svg-snapline"),n!==void 0||a!==void 0){let c={x:n!==void 0?o:e.x,y:a!==void 0?l:e.y};return this.drawSnaplines(c,t,n,a),{x:n!==void 0?o:null,y:a!==void 0?l:null}}return{x:null,y:null}}drawSnaplines(e,t,i,r){if(i){let n=e.y,o=e.y;for(let a of i){let l=a.y-this._outerRect.top;n=n<l?n:l,o=o>l?o:l}for(let a of i){if(a.x-this._outerRect.left==e.x||t&&a.x-this._outerRect.left==e.x+t.width){let c=document.createElementNS("http://www.w3.org/2000/svg","line");c.setAttribute("x1",a.x-this._outerRect.x),c.setAttribute("x2",a.x-this._outerRect.x),c.setAttribute("y1",n),c.setAttribute("y2",o),c.setAttribute("class","svg-snapline"),this._overlayLayerView.addOverlay(this.constructor.name,c,ft)}if(a.x-this._outerRect.left+a.width==e.x||t&&a.x-this._outerRect.left+a.width==e.x+t.width){let c=document.createElementNS("http://www.w3.org/2000/svg","line");c.setAttribute("x1",a.x-this._outerRect.x+a.width),c.setAttribute("x2",a.x-this._outerRect.x+a.width),c.setAttribute("y1",n),c.setAttribute("y2",o),c.setAttribute("class","svg-snapline"),this._overlayLayerView.addOverlay(this.constructor.name,c,ft)}if(t&&a.x-this._outerRect.left+a.width/2==e.x+t.width/2){let c=document.createElementNS("http://www.w3.org/2000/svg","line");c.setAttribute("x1",a.x-this._outerRect.x+a.width/2),c.setAttribute("x2",a.x-this._outerRect.x+a.width/2),c.setAttribute("y1",n),c.setAttribute("y2",o),c.setAttribute("class","svg-snapline"),this._overlayLayerView.addOverlay(this.constructor.name,c,ft)}let l=document.createElementNS("http://www.w3.org/2000/svg","rect");l.setAttribute("x",a.x-this._outerRect.x),l.setAttribute("width",a.width),l.setAttribute("y",a.y-this._outerRect.y),l.setAttribute("height",a.height),l.setAttribute("class","svg-snapline"),this._overlayLayerView.addOverlay(this.constructor.name,l,ft)}}if(r){let n=e.x,o=e.x;for(let a of r){let l=a.x-this._outerRect.left;n=n<l?n:l,o=o>l?o:l}for(let a of r){if(a.y-this._outerRect.top==e.y||t&&a.y-this._outerRect.top==e.y+t.height){let c=document.createElementNS("http://www.w3.org/2000/svg","line");c.setAttribute("x1",n),c.setAttribute("x2",o),c.setAttribute("y1",a.y-this._outerRect.y),c.setAttribute("y2",a.y-this._outerRect.y),c.setAttribute("class","svg-snapline"),this._overlayLayerView.addOverlay(this.constructor.name,c,ft)}if(a.y-this._outerRect.top+a.height==e.y||t&&a.y-this._outerRect.top+a.height==e.y+t.height){let c=document.createElementNS("http://www.w3.org/2000/svg","line");c.setAttribute("x1",n),c.setAttribute("x2",o),c.setAttribute("y1",a.y-this._outerRect.y+a.height),c.setAttribute("y2",a.y-this._outerRect.y+a.height),c.setAttribute("class","svg-snapline"),this._overlayLayerView.addOverlay(this.constructor.name,c,ft)}if(t&&a.y-this._outerRect.top+a.height/2==e.y+t.height/2){let c=document.createElementNS("http://www.w3.org/2000/svg","line");c.setAttribute("x1",n),c.setAttribute("x2",o),c.setAttribute("y1",a.y-this._outerRect.y+a.height/2),c.setAttribute("y2",a.y-this._outerRect.y+a.height/2),c.setAttribute("class","svg-snapline"),this._overlayLayerView.addOverlay(this.constructor.name,c,ft)}let l=document.createElementNS("http://www.w3.org/2000/svg","rect");l.setAttribute("x",a.x-this._outerRect.x),l.setAttribute("width",a.width),l.setAttribute("y",a.y-this._outerRect.y),l.setAttribute("height",a.height),l.setAttribute("class","svg-snapline"),this._overlayLayerView.addOverlay(this.constructor.name,l,ft)}}}};Qe();Ci();De();q();Z();De();Pt();function F(s,e){let t=e.get(s);return t||(t=new Map,e.set(s,t),t)}var mo=class s{designerCanvas;designItemsWithExtentions=new Set;_timeout;_appliedDesignerExtensions=new WeakMap;_shouldAppliedDesignerExtensions=new WeakMap;_lastApplyEventPerType=new WeakMap;_lastPrimarySelectionRefreshItem;constructor(e){bh(),this.designerCanvas=e,e.instanceServiceContainer.selectionService.onSelectionChanged.on(this._selectedElementsChanged.bind(this)),e.instanceServiceContainer.selectionService.onSelectionRefresh.on(this._selectedElementsRefresh.bind(this)),e.instanceServiceContainer.contentService.onContentChanged.on(this._contentChanged.bind(this)),e.serviceContainer.globalContext.onToolChanged.on(()=>{this.removeExtension(e.instanceServiceContainer.selectionService.primarySelection,w.PrimarySelectionRefreshed),this._lastPrimarySelectionRefreshItem=null})}connected(){this._timeout||(this._timeout=setTimeout(()=>this.refreshAllExtensionsTimeout(),20))}disconnected(){this._timeout&&clearTimeout(this._timeout),this._timeout=null}refreshAllExtensionsTimeout(){this.refreshAllAppliedExtentions(),this._timeout=setTimeout(()=>this.refreshAllExtensionsTimeout(),20)}_contentChanged(e){requestAnimationFrame(()=>{switch(e.changeType){case"added":this.applyExtensions(e.designItems,w.Permanent,null,!0);break;case"moved":this.refreshExtensions(e.designItems,w.Permanent);break;case"parsed":this.applyExtensions(Array.from(this.designerCanvas.rootDesignItem.children()),w.Permanent,null,!0);break;case"removed":this.removeExtensions(e.designItems,!0,w.Permanent);break}})}_selectedElementsChanged(e){if(this._lastPrimarySelectionRefreshItem=null,e.oldSelectedElements&&e.oldSelectedElements.length&&(this.removeExtension(e.oldSelectedElements[0],w.PrimarySelectionRefreshed),this.removeExtension(e.oldSelectedElements[0],w.PrimarySelection),this.removeExtension(e.oldSelectedElements[0],w.PrimarySelectionAndCanBeEntered),this.removeExtension(e.oldSelectedElements[0],w.OnlyOneItemSelected),this.removeExtensions(e.oldSelectedElements,!1,w.Selection),this.removeExtensions(e.oldSelectedElements,!1,w.MultipleItemsSelected),e.oldSelectedElements[0].parent)){let t=T.GetOrCreateDesignItem(e.oldSelectedElements[0].parent.element,e.oldSelectedElements[0].parent.element,this.designerCanvas.serviceContainer,this.designerCanvas.instanceServiceContainer);this.removeExtension(t,w.PrimarySelectionContainer),this.removeExtension(t,w.PrimarySelectionContainerAndCanBeEntered)}if(e.selectedElements&&e.selectedElements.length&&(this.applyExtensions(e.selectedElements,w.Selection,e.event),this.applyExtension(e.selectedElements[0],w.PrimarySelection,e.event),e.selectedElements.length===1?this.applyExtension(e.selectedElements[0],w.OnlyOneItemSelected,e.event):e.selectedElements.length>1&&this.applyExtension(e.selectedElements[0],w.MultipleItemsSelected,e.event),e.selectedElements[0].getPlacementService()?.isEnterableContainer(e.selectedElements[0])&&this.applyExtension(e.selectedElements[0],w.PrimarySelectionAndCanBeEntered,e.event),e.selectedElements[0].parent)){let t=T.GetOrCreateDesignItem(e.selectedElements[0].parent.element,e.selectedElements[0].parent.element,this.designerCanvas.serviceContainer,this.designerCanvas.instanceServiceContainer);this.applyExtension(t,w.PrimarySelectionContainer,e.event),t.getPlacementService()?.isEnterableContainer(t)&&this.applyExtension(t,w.PrimarySelectionContainerAndCanBeEntered,e.event)}}_selectedElementsRefresh(e){this.refreshAllAppliedExtentions(e.event),e.selectedElements&&e.selectedElements.length&&this._lastPrimarySelectionRefreshItem?.deref()===e.selectedElements[0]&&(this._appliedDesignerExtensions.get(e.selectedElements[0])?.get(w.PrimarySelectionRefreshed)||this.applyExtension(e.selectedElements[0],w.PrimarySelectionRefreshed,e.event)),this._lastPrimarySelectionRefreshItem=new WeakRef(e.selectedElements[0])}applyExtension(e,t,i,r=!1){if(e&&e.nodeType==E.Element){let n=this.designerCanvas.serviceContainer.designerExtensions.get(t),o=[];if(n){let a={};At();for(let l of n){let c=F(e,this._shouldAppliedDesignerExtensions).get(t);if(c||(c=[]),c.push(l),F(e,this._shouldAppliedDesignerExtensions).set(t,c),l.shouldExtend(this,this.designerCanvas,e)){let h=F(e,this._appliedDesignerExtensions).get(t);h||(h=[]);let d=l.getExtension(this,this.designerCanvas,e);try{d.extend(a,i),o.push(d),i?F(e,this._lastApplyEventPerType).set(t,i):F(e,this._lastApplyEventPerType).delete(t)}catch(p){console.error(p)}h.push(d),F(e,this._appliedDesignerExtensions).set(t,h),this.designItemsWithExtentions.add(e)}}}if(r)for(let a of e.children())this.applyExtension(a,t,i,r);return o}return null}applyExtensions(e,t,i,r=!1){if(this.designerCanvas.overlayLayer.startBatch(),e){let n=this.designerCanvas.serviceContainer.designerExtensions.get(t);if(n){let o={};At();for(let a of n)for(let l of e){let c=F(l,this._shouldAppliedDesignerExtensions).get(t);if(c||(c=[]),c.push(a),F(l,this._shouldAppliedDesignerExtensions).set(t,c),a.shouldExtend(this,this.designerCanvas,l)){let h=F(l,this._appliedDesignerExtensions).get(t);h||(h=[]);let d=a.getExtension(this,this.designerCanvas,l);try{d.extend(o,i),i?F(l,this._lastApplyEventPerType).set(t,i):F(l,this._lastApplyEventPerType).delete(t)}catch(p){console.error(p)}h.push(d),F(l,this._appliedDesignerExtensions).set(t,h),this.designItemsWithExtentions.add(l)}}}if(r)for(let o of e)this.applyExtensions(Array.from(o.children()),t,i,r)}this.designerCanvas.overlayLayer.endBatch()}applyExtensionInstance(e,t){let i=F(e,this._appliedDesignerExtensions).get(w.Directly);i||(i=[]);try{t.extend(null,null)}catch(r){console.error(r)}i.push(t),F(e,this._appliedDesignerExtensions).set(w.Directly,i),this.designItemsWithExtentions.add(e)}removeExtensionInstance(e,t){for(let i of F(e,this._appliedDesignerExtensions)){let r=i[1].indexOf(t);if(r>=0){try{t.dispose()}catch(n){console.error(n)}i[1].splice(r,1),i[1].length==0&&(F(e,this._appliedDesignerExtensions).delete(i[0]),F(e,this._shouldAppliedDesignerExtensions).delete(i[0])),F(e,this._appliedDesignerExtensions).size||this.designItemsWithExtentions.delete(e)}}}removeExtension(e,t){if(e)if(t){F(e,this._shouldAppliedDesignerExtensions).delete(t);let i=F(e,this._appliedDesignerExtensions).get(t);if(i){for(let r of i)try{r.dispose(),F(e,this._lastApplyEventPerType).delete(t)}catch(n){console.error(n)}F(e,this._appliedDesignerExtensions).delete(t),F(e,this._appliedDesignerExtensions).size||this.designItemsWithExtentions.delete(e)}}else{F(e,this._shouldAppliedDesignerExtensions).clear();for(let i of F(e,this._appliedDesignerExtensions))for(let r of i[1])try{r.dispose()}catch(n){console.error(n)}F(e,this._appliedDesignerExtensions).clear(),this.designItemsWithExtentions.delete(e)}}removeExtensions(e,t,i){if(e)if(i)for(let r of e){t&&r.hasChildren&&this.removeExtensions([...r.children()],!0,i),F(r,this._shouldAppliedDesignerExtensions).delete(i);let n=F(r,this._appliedDesignerExtensions).get(i);if(n){for(let o of n)try{o.dispose(),F(r,this._lastApplyEventPerType).delete(i)}catch(a){console.error(a)}F(r,this._appliedDesignerExtensions).delete(i),F(r,this._appliedDesignerExtensions).size||this.designItemsWithExtentions.delete(r)}}else for(let r of e){t&&r.hasChildren&&this.removeExtensions([...r.children()],!0,i),F(r,this._shouldAppliedDesignerExtensions).clear();for(let n of F(r,this._appliedDesignerExtensions))for(let o of n[1])try{o.dispose()}catch(a){console.error(a)}F(r,this._appliedDesignerExtensions).clear(),this.designItemsWithExtentions.delete(r)}}refreshExtension(e,t,i){if(!(this.designerCanvas.checkVisibility&&!this.designerCanvas.checkVisibility())&&e)if(t)if(!e.element.isConnected)this.removeExtension(e,t);else{let r=F(e,this._appliedDesignerExtensions).get(t);if(r){let n={};At();for(let o of r)try{o.refresh(n,i),i&&F(e,this._lastApplyEventPerType).set(t,i)}catch(a){console.error(a)}}}else{let r={};At();for(let n of F(e,this._appliedDesignerExtensions))for(let o of n[1])try{o.refresh(r,i)}catch(a){console.error(a)}}}refreshExtensions(e,t,i,r,n){if(this.designerCanvas.checkVisibility&&!this.designerCanvas.checkVisibility())return;this.designerCanvas.overlayLayer.startBatch();let o=performance.now();if(e)if(t){let a={};At();e:for(let l of e)if(!l.element.isConnected)this.removeExtension(l,t);else{let c=F(l,this._appliedDesignerExtensions).get(t);if(c)for(let h of c)try{if(h!=r&&h.refresh(a,i),n&&performance.now()-o>n){console.warn("refreshExtensions() took too long, stopped refreshing");break e}}catch(d){console.error(d)}}}else{let a={};At();e:for(let l of e)for(let c of F(l,this._appliedDesignerExtensions))for(let h of c[1])try{if(h!=r&&(h.refresh(a,i),i&&F(l,this._lastApplyEventPerType).set(t,i),n&&performance.now()-o>n)){console.warn("refreshExtensions() took too long, stopped refreshing");break e}}catch(d){console.error(d)}}this.designerCanvas.overlayLayer.endBatch()}refreshAllExtensions(e,t,i){this.designerCanvas.overlayLayer.startBatch(),e&&(this.refreshExtensions(e,w.Directly,i,t),this.refreshExtensions(e,w.Permanent,i,t),this.refreshExtensions(e,w.Selection,i,t),this.refreshExtensions(e,w.PrimarySelection,i,t),this.refreshExtensions(e,w.PrimarySelectionContainer,i,t),this.refreshExtensions(e,w.MouseOver,i,t),this.refreshExtensions(e,w.OnlyOneItemSelected,i,t),this.refreshExtensions(e,w.MultipleItemsSelected,i,t),this.refreshExtensions(e,w.ContainerDragOverAndCanBeEntered,i,t),this.refreshExtensions(e,w.ContainerDrag,i,t),this.refreshExtensions(e,w.Doubleclick,i,t),this.refreshExtensions(e,w.Placement,i,t),this.refreshExtensions(e,w.PrimarySelectionAndCanBeEntered,i,t),this.refreshExtensions(e,w.PrimarySelectionContainerAndCanBeEntered,i,t)),this.designerCanvas.overlayLayer.endBatch()}refreshAllAppliedExtentions(e){this.designerCanvas.fillCalculationrects(),this.refreshAllExtensions([...this.designItemsWithExtentions],null,e)}reapplyAllAppliedExtentions(e,t){this.designerCanvas.overlayLayer.startBatch();for(let i of s.getAllChildElements(this.designerCanvas.rootDesignItem))if(!e||e.includes(i)){let r=[...F(i,this._shouldAppliedDesignerExtensions).keys()];for(let n of r){let o=F(i,this._lastApplyEventPerType).get(n);this.removeExtension(i,n),(t==null||t.includes(n))&&this.applyExtension(i,n,o)}}this.designerCanvas.overlayLayer.endBatch()}static*getAllChildElements(e){if(e.nodeType==E.Element&&(yield e),e.hasChildren)for(let t of e.children())for(let i of s.getAllChildElements(t))yield i}};$e();Pe();X();import{css as gm,html as ym,BaseCustomWebComponentConstructorAppend as vm}from"@node-projects/base-custom-webcomponent";var li=class s extends vm{static template=ym`
|
|
1247
1247
|
<svg id="svg" style="pointer-events: none;">
|
|
1248
1248
|
<defs id="defs"></defs>
|
|
1249
1249
|
<g id="background"></g>
|
|
@@ -1281,10 +1281,10 @@ declare global {
|
|
|
1281
1281
|
node-projects-image-button-list-selector img:active {
|
|
1282
1282
|
translate: 1px 1px
|
|
1283
1283
|
}
|
|
1284
|
-
`;static is="node-projects-overlay-layer-view";_serviceContainer;_svg;_gBackground;_gNormal;_gForeground;_defs;_id=0;constructor(e){super(),this._serviceContainer=e,this._svg=this._getDomElement("svg"),this._gBackground=this._getDomElement("background"),this._gNormal=this._getDomElement("normal"),this._gForeground=this._getDomElement("foreground"),this._defs=this._getDomElement("defs"),this._initialize()}_initialize(){let e=[s.style],t=new Set;for(let i of this._serviceContainer.designerExtensions)for(let r of i[1]){if(r.constructor.style)if(Array.isArray(r.constructor.style))for(let n of r.constructor.style)t.has(n)||(t.add(n),e.push(n));else t.has(r.constructor.style)||(t.add(r.constructor.style),e.push(r.constructor.style));if(r.style)if(Array.isArray(r.style))for(let n of r.style)t.has(n)||(t.add(n),e.push(n));else t.has(r.style)||(t.add(r.style),e.push(r.style));if(r.svgDefs){if(Array.isArray(r.svgDefs)){for(let n of r.svgDefs)if(!t.has(n)){t.add(n);let o=document.createElementNS("http://www.w3.org/2000/svg","defs");o.innerHTML=n;for(let a of[...o.children])this._defs.appendChild(a)}}else if(!t.has(r.svgDefs)){t.add(r.svgDefs);let n=document.createElementNS("http://www.w3.org/2000/svg","defs");n.innerHTML=r.svgDefs;for(let o of[...n.children])this._defs.appendChild(o)}}if(r.constructor.svgDefs){if(Array.isArray(r.constructor.svgDefs)){for(let n of r.constructor.svgDefs)if(!t.has(n)){t.add(n);let o=document.createElementNS("http://www.w3.org/2000/svg","defs");o.innerHTML=n;for(let a of[...o.children])this._defs.appendChild(a)}}else if(!t.has(r.constructor.svgDefs)){t.add(r.constructor.svgDefs);let n=document.createElementNS("http://www.w3.org/2000/svg","defs");n.innerHTML=r.constructor.svgDefs;for(let o of[...n.children])this._defs.appendChild(o)}}}for(let i of this._serviceContainer.designerPointerExtensions)if(i.style&&(t.has(i.style)||(t.add(i.style),e.push(i.style))),i.svgDefs&&!t.has(i.svgDefs)){t.add(i.svgDefs);let r=document.createElementNS("http://www.w3.org/2000/svg","defs");r.innerHTML=i.svgDefs;for(let n of[...r.children])this._defs.appendChild(n)}if(this._serviceContainer.overlayLayerViewAdditionalStyles)for(let i of this._serviceContainer.overlayLayerViewAdditionalStyles)t.has(i)||(t.add(i),e.push(i));this.shadowRoot.adoptedStyleSheets=e}backgroundFragment;foregroundFragment;normalFragment;batchCount=0;startBatch(){this.batchCount==0&&(this.backgroundFragment=document.createDocumentFragment(),this.foregroundFragment=document.createDocumentFragment(),this.normalFragment=document.createDocumentFragment()),this.batchCount++}endBatch(){this.batchCount--,this.batchCount==0&&(this.backgroundFragment.hasChildNodes&&this._gBackground.appendChild(this.backgroundFragment),this.foregroundFragment.hasChildNodes&&this._gForeground.appendChild(this.foregroundFragment),this.normalFragment.hasChildNodes&&this._gNormal.appendChild(this.normalFragment),this.backgroundFragment=null,this.foregroundFragment=null,this.normalFragment=null)}addOverlay(e,t,i=
|
|
1284
|
+
`;static is="node-projects-overlay-layer-view";_serviceContainer;_svg;_gBackground;_gNormal;_gForeground;_defs;_id=0;constructor(e){super(),this._serviceContainer=e,this._svg=this._getDomElement("svg"),this._gBackground=this._getDomElement("background"),this._gNormal=this._getDomElement("normal"),this._gForeground=this._getDomElement("foreground"),this._defs=this._getDomElement("defs"),this._initialize()}_initialize(){let e=[s.style],t=new Set;for(let i of this._serviceContainer.designerExtensions)for(let r of i[1]){if(r.constructor.style)if(Array.isArray(r.constructor.style))for(let n of r.constructor.style)t.has(n)||(t.add(n),e.push(n));else t.has(r.constructor.style)||(t.add(r.constructor.style),e.push(r.constructor.style));if(r.style)if(Array.isArray(r.style))for(let n of r.style)t.has(n)||(t.add(n),e.push(n));else t.has(r.style)||(t.add(r.style),e.push(r.style));if(r.svgDefs){if(Array.isArray(r.svgDefs)){for(let n of r.svgDefs)if(!t.has(n)){t.add(n);let o=document.createElementNS("http://www.w3.org/2000/svg","defs");o.innerHTML=n;for(let a of[...o.children])this._defs.appendChild(a)}}else if(!t.has(r.svgDefs)){t.add(r.svgDefs);let n=document.createElementNS("http://www.w3.org/2000/svg","defs");n.innerHTML=r.svgDefs;for(let o of[...n.children])this._defs.appendChild(o)}}if(r.constructor.svgDefs){if(Array.isArray(r.constructor.svgDefs)){for(let n of r.constructor.svgDefs)if(!t.has(n)){t.add(n);let o=document.createElementNS("http://www.w3.org/2000/svg","defs");o.innerHTML=n;for(let a of[...o.children])this._defs.appendChild(a)}}else if(!t.has(r.constructor.svgDefs)){t.add(r.constructor.svgDefs);let n=document.createElementNS("http://www.w3.org/2000/svg","defs");n.innerHTML=r.constructor.svgDefs;for(let o of[...n.children])this._defs.appendChild(o)}}}for(let i of this._serviceContainer.designerPointerExtensions)if(i.style&&(t.has(i.style)||(t.add(i.style),e.push(i.style))),i.svgDefs&&!t.has(i.svgDefs)){t.add(i.svgDefs);let r=document.createElementNS("http://www.w3.org/2000/svg","defs");r.innerHTML=i.svgDefs;for(let n of[...r.children])this._defs.appendChild(n)}if(this._serviceContainer.overlayLayerViewAdditionalStyles)for(let i of this._serviceContainer.overlayLayerViewAdditionalStyles)t.has(i)||(t.add(i),e.push(i));this.shadowRoot.adoptedStyleSheets=e}backgroundFragment;foregroundFragment;normalFragment;batchCount=0;startBatch(){this.batchCount==0&&(this.backgroundFragment=document.createDocumentFragment(),this.foregroundFragment=document.createDocumentFragment(),this.normalFragment=document.createDocumentFragment()),this.batchCount++}endBatch(){this.batchCount--,this.batchCount==0&&(this.backgroundFragment.hasChildNodes&&this._gBackground.appendChild(this.backgroundFragment),this.foregroundFragment.hasChildNodes&&this._gForeground.appendChild(this.foregroundFragment),this.normalFragment.hasChildNodes&&this._gNormal.appendChild(this.normalFragment),this.backgroundFragment=null,this.foregroundFragment=null,this.normalFragment=null)}addOverlay(e,t,i=I.Normal){switch(t.setAttribute("overlay-source",e),i){case I.Background:this.backgroundFragment?this.backgroundFragment.appendChild(t):this._gBackground.appendChild(t);break;case I.Foreground:this.foregroundFragment?this.foregroundFragment.appendChild(t):this._gForeground.appendChild(t);break;default:this.normalFragment?this.normalFragment.appendChild(t):this._gNormal.appendChild(t);break}}removeOverlay(e){try{e?.parentElement?.removeChild(e)}catch(t){console.error(t)}}removeAllNodesWithClass(e){let t=this._svg.querySelectorAll("."+e);for(let i of t)i.parentNode.removeChild(i)}removeAllOverlays(){let e=this._svg.querySelectorAll("svg > g > *");for(let t of e)t.parentNode.removeChild(t)}createPoint(){return this._svg.createSVGPoint()}drawGroup(e,t,i,r){return i||(i=document.createElementNS("http://www.w3.org/2000/svg","g"),this.addOverlay(e,i,r)),t&&i.setAttribute("class",t),i}drawLine(e,t,i,r,n,o,a,l){return a||(a=document.createElementNS("http://www.w3.org/2000/svg","line"),this.addOverlay(e,a,l)),a.setAttribute("x1",t),a.setAttribute("y1",i),a.setAttribute("x2",r),a.setAttribute("y2",n),o&&a.setAttribute("class",o),a}drawCircle(e,t,i,r,n,o,a){return o||(o=document.createElementNS("http://www.w3.org/2000/svg","circle"),this.addOverlay(e,o,a)),o.setAttribute("cx",t),o.setAttribute("cy",i),o.setAttribute("r",r),n&&o.setAttribute("class",n),o}drawRect(e,t,i,r,n,o,a,l){return a||(a=document.createElementNS("http://www.w3.org/2000/svg","rect"),this.addOverlay(e,a,l)),a.setAttribute("x",t),a.setAttribute("y",i),a.setAttribute("width",r),a.setAttribute("height",n),o&&a.setAttribute("class",o),a}drawPath(e,t,i,r,n){return r||(r=document.createElementNS("http://www.w3.org/2000/svg","path"),this.addOverlay(e,r,n)),r.setAttribute("d",t),i&&r.setAttribute("class",i),r}drawText(e,t,i,r,n,o,a){return o||(o=document.createElementNS("http://www.w3.org/2000/svg","text"),this.addOverlay(e,o,a)),o.setAttribute("x",i),o.setAttribute("y",r),o.textContent=t,n&&o.setAttribute("class",n),o}drawHTML(e,t,i,r,n,o,a,l,c){return l||(l=document.createElementNS("http://www.w3.org/2000/svg","foreignObject"),this.addOverlay(e,l,c)),l.setAttribute("x",i),l.setAttribute("y",r),l.setAttribute("width",n),l.setAttribute("height",o),typeof t=="string"?l.innerHTML=t:l.appendChild(t),a&&l.setAttribute("class",a),l}drawTextWithBackground(e,t,i,r,n,o,a,l){if(!a){let c=document.createElementNS("http://www.w3.org/2000/svg","filter");c.setAttribute("x","0"),c.setAttribute("y","0"),c.setAttribute("width","1"),c.setAttribute("height","1"),c.setAttribute("id","solid_"+ ++this._id);let h=document.createElementNS("http://www.w3.org/2000/svg","feFlood");h.setAttribute("flood-color",n),c.appendChild(h);let d=document.createElementNS("http://www.w3.org/2000/svg","feComposite");d.setAttribute("in","SourceGraphic"),d.setAttribute("operator","xor"),c.appendChild(d),this._defs.appendChild(c);let p=document.createElementNS("http://www.w3.org/2000/svg","text");p.setAttribute("filter","url(#solid_"+this._id+")");let g=document.createElementNS("http://www.w3.org/2000/svg","text");this.addOverlay(e,p,l),this.addOverlay(e,g,l),c.setAttribute("overlay-source",e),h.setAttribute("overlay-source",e),a=[c,h,p,g]}return a[2].setAttribute("x",i),a[3].setAttribute("x",i),a[2].setAttribute("y",r),a[3].setAttribute("y",r),a[2].textContent=t,a[3].textContent=t,o&&(a[2].setAttribute("class",o),a[3].setAttribute("class",o)),a}};customElements.define(li.is,li);at();Z();be();function id(s,e){let t=new s.CSSStyleSheet;return t.replaceSync(e),t}Pt();Ne();te();var Sm=bm`
|
|
1285
1285
|
* {
|
|
1286
1286
|
animation-play-state: paused !important;
|
|
1287
|
-
}`,
|
|
1287
|
+
}`,ci=class extends xm{serviceContainer;instanceServiceContainer;containerBoundingRect;outerRect;clickOverlay;_activeTool;_gridSize=10;get gridSize(){return this._gridSize}set gridSize(e){this._gridSize=e;let t=document.createElement("canvas"),i=t.getContext("2d");t.width=e*2,t.height=e*2;let r=e;for(let o=0;o<t.width;o+=r)for(let a=0;a<t.height;a+=r)i.fillStyle=(o+a)%(r*2)===0?"#e5e5e5":"white",i.fillRect(o,a,r,r);let n=t.toDataURL();this._backgroundImage="url("+n+")",this._canvas.style.backgroundImage!="none"&&(this._canvas.style.backgroundImage=this._backgroundImage)}pasteOffset=10;alignOnGrid=!1;alignOnSnap=!0;snapLines;overlayLayer;rootDesignItem;_currentPasteOffset=this.pasteOffset;_zoomFactor=1;_scaleFactor=1;_canvasOffset={x:0,y:0};_additionalStyle;_backgroundImage;_enableSelectTextNodesOnClick=!1;_moveGroup;_touchGestureHelper;get zoomFactor(){return this._zoomFactor}set zoomFactor(e){this._zoomFactor=e,this._zoomFactorChanged()}get scaleFactor(){return this._scaleFactor}get canvasOffset(){return this._canvasOffset}set canvasOffset(e){this._canvasOffset=e,this._zoomFactorChanged()}get canvasOffsetUnzoomed(){return{x:this._canvasOffset.x*this.zoomFactor,y:this._canvasOffset.y*this.zoomFactor}}set canvasOffsetUnzoomed(e){this.canvasOffset={x:e.x/this.zoomFactor,y:e.y/this.zoomFactor}}_pauseAnimations;get pauseAnimations(){return this._pauseAnimations}set pauseAnimations(e){this._pauseAnimations=e,this.applyAllStyles()}get containerOffset(){return this._useIframe?this._outercanvas2.getBoundingClientRect():{x:0,y:0}}raiseDesignItemsChanged(e,t,i){this.designItemsChanged&&this.designItemsChanged(e,t,i)}designItemsChanged;onContentChanged=new rd;onZoomFactorChanged=new rd;get canvas(){return this._canvas}_canvas;_canvasShadowRoot;_canvasContainer;_outercanvas2;_lastHoverDesignItem;_firstConnect;static style=_m`
|
|
1288
1288
|
:host {
|
|
1289
1289
|
display: block;
|
|
1290
1290
|
box-sizing: border-box;
|
|
@@ -1459,7 +1459,7 @@ declare global {
|
|
|
1459
1459
|
<button id="node-projects-designer-search-close"></button>
|
|
1460
1460
|
</div>
|
|
1461
1461
|
</div>
|
|
1462
|
-
`;extensionManager;_pointerextensions;_lastCopiedPrimaryItem;_ignoreEvent;_useIframe=!0;_iframe;_window;_resizeObserver;iframes;constructor(e=!1){super(),this._restoreCachedInititalValues(),Ea(),this._useIframe=e,this._canvas=this._getDomElement("node-projects-designer-canvas-canvas"),this._useIframe?(this._iframe=document.createElement("iframe"),this._iframe.setAttribute("sandbox","allow-same-origin"),this._iframe.setAttribute("scrolling","no"),this.iframes=[this._iframe],this._canvas.appendChild(this._iframe),requestAnimationFrame(()=>{this._window=this._iframe.contentWindow,Ea(this._iframe.contentWindow),this._canvasShadowRoot=this._iframe.contentWindow.document})):(this._window=window,this._canvasShadowRoot=this._canvas.attachShadow({mode:"open"})),this._canvasContainer=this._getDomElement("node-projects-designer-canvas-canvasContainer"),this._outercanvas2=this._getDomElement("node-projects-designer-canvas-outercanvas2"),this.clickOverlay=this._getDomElement("node-projects-designer-canvas-clickOverlay"),this.onKeyDown=this.onKeyDown.bind(this),this.onKeyUp=this.onKeyUp.bind(this),this._onDblClick=this._onDblClick.bind(this),this._pointerEventHandler=this._pointerEventHandler.bind(this),this._onWheel=this._onWheel.bind(this),this._getDomElement("node-projects-designer-search-close").onclick=()=>this._searchHideOverlay(),this._getDomElement("node-projects-designer-search-start").onclick=()=>this._searchRun(),this._getDomElement("node-projects-designer-search-container").onkeydown=t=>{t.key==="Enter"&&this._searchRun()},this.clickOverlay.oncontextmenu=t=>t.preventDefault(),this._resizeObserver=new ResizeObserver(()=>{this.extensionManager.refreshAllAppliedExtentions()}),this._resizeObserver.observe(this)}get designerWidth(){return this._canvasContainer.style.width}set designerWidth(e){this._canvasContainer.style.width=e,this._zoomFactorChanged()}get designerHeight(){return this._canvasContainer.style.height}set designerHeight(e){this._canvasContainer.style.height=e,this._zoomFactorChanged()}getDesignSurfaceDimensions(){let e={width:null,height:null},t=getComputedStyle(this._canvasContainer);return this._canvasContainer.style.width&&(e.width=parseFloat(t.width)),this._canvasContainer.style.height&&(e.height=parseFloat(t.height)),e}get designerOffsetWidth(){return this._canvasContainer.offsetWidth}get designerOffsetHeight(){return this._canvasContainer.offsetHeight}set additionalStyles(e){this._additionalStyle=e,this.applyAllStyles()}get additionalStyles(){return this._additionalStyle}applyAllStyles(){if(this._window){let e=[];this._additionalStyle&&e.push(...this._additionalStyle),this.instanceServiceContainer.stylesheetService&&e.push(...this.instanceServiceContainer.stylesheetService.getStylesheets().map(t=>id(this._window,oo.patchStylesheetSelectorForDesigner(t.content)))),this._pauseAnimations&&e.push(Sm),this._useIframe?this._iframe.contentWindow.document.adoptedStyleSheets=e:this._canvasShadowRoot.adoptedStyleSheets=e}else requestAnimationFrame(()=>this.applyAllStyles())}ignoreEvent(e){this._ignoreEvent=e}canExecuteCommand(e){let t=this.serviceContainer.modelCommandService;if(t){let i=t.canExecuteCommand(this,e);if(i!==null)return i}return e.type===S.undo?this.instanceServiceContainer.undoService.canUndo():e.type===S.redo?this.instanceServiceContainer.undoService.canRedo():e.type===S.setTool?this.serviceContainer.designerTools.has(e.parameter):e.type===S.paste?!0:e.type===S.copy||e.type===S.cut||e.type===S.delete?this.instanceServiceContainer.selectionService.primarySelection!=null&&!this.instanceServiceContainer.selectionService.primarySelection.isRootItem:!0}async executeCommand(e){let t=this.serviceContainer.modelCommandService;if(!(t&&await t.executeCommand(this,e)!=null))switch(e.type){case S.screenshot:if(ni.screenshotsEnabled||alert("you need to select current tab in next browser dialog, or screenshots will not work correctly"),this.instanceServiceContainer.selectionService.primarySelection){this.disableBackgroud();try{let a=this.instanceServiceContainer.selectionService.primarySelection.element,l=this.instanceServiceContainer.selectionService.selectedElements;this.instanceServiceContainer.selectionService.setSelectedElements(null),await lt(100);let c=await ni.takeScreenshot(a,a.clientWidth,a.clientHeight);await Ro(Fo(c),"screenshot.png"),this.instanceServiceContainer.selectionService.setSelectedElements(l)}catch(a){console.error(a)}this.enableBackground()}else{this.zoomToFit(),this.disableBackgroud();try{let a=this.rootDesignItem.element,l=this.instanceServiceContainer.selectionService.selectedElements;this.instanceServiceContainer.selectionService.setSelectedElements(null),await lt(100);let c=await ni.takeScreenshot(a,a.clientWidth,a.clientHeight);await Ro(Fo(c),"screenshot.png"),this.instanceServiceContainer.selectionService.setSelectedElements(l)}catch(a){console.error(a)}this.enableBackground()}break;case S.setTool:this.serviceContainer.globalContext.tool=this.serviceContainer.designerTools.get(e.parameter),this.extensionManager.reapplyAllAppliedExtentions();break;case S.setStrokeColor:this.serviceContainer.globalContext.strokeColor=e.parameter;break;case S.setFillBrush:this.serviceContainer.globalContext.fillBrush=e.parameter;break;case S.setStrokeThickness:this.serviceContainer.globalContext.strokeThickness=e.parameter;break;case S.delete:this.handleDeleteCommand();break;case S.undo:this.instanceServiceContainer.undoService.undo();break;case S.holdUndo:let i=this.instanceServiceContainer.undoService.getUndoEntryNames(20),r=Array.from(i).map((a,l)=>({title:"undo: "+a,action:()=>{for(let c=0;c<=l;c++)this.instanceServiceContainer.undoService.undo()}}));r.length>0&&he.show(r,e.event,{mode:"undo"});break;case S.redo:this.instanceServiceContainer.undoService.redo();break;case S.holdRedo:let n=this.instanceServiceContainer.undoService.getRedoEntryNames(20),o=Array.from(n).map((a,l)=>({title:"redo: "+a,action:()=>{for(let c=0;c<=l;c++)this.instanceServiceContainer.undoService.redo()}}));o.length>0&&he.show(o,e.event,{mode:"undo"});break;case S.copy:this.handleCopyCommand();break;case S.cut:this.handleCopyCommand(),this.handleDeleteCommand();break;case S.paste:this.handlePasteCommand(e.altKey==!0);break;case S.selectAll:this.handleSelectAll();break}}disableBackgroud(){this._canvasContainer.style.background="var(--node-projects-web-component-designer-screenshot-background, white)"}enableBackground(){this._canvasContainer.style.background=""}zoomToFit(){let t=0,i=0,r=0,n=0;this.canvasOffset={x:0,y:0},this.zoomFactor=1;for(let d of this.rootDesignItem.querySelectorAll("*"))if(d instanceof(d.ownerDocument.defaultView??window).Element){let p=W(d);r=r<p.x?r:p.x,n=n<p.y?n:p.y,t=t>p.x+p.width+10?t:p.x+p.width+10,i=i>p.y+p.height+10?i:p.y+p.height+10}let o=this.getBoundingClientRect();t-=o.x,i-=o.y;let a=o.width/(t/this.zoomFactor),l=o.height/(i/this.zoomFactor),c=this.getDesignSurfaceDimensions();c.width&&(a=o.width/c.width),c.height&&(l=o.height/c.height);let h=a<l?a:l;isNaN(h)||(this.zoomFactor=h)}handleSelectAll(){let e=Array.from(this.rootDesignItem.children(!0)).filter(i=>!i.isEmptyTextNode),t=this.instanceServiceContainer.selectionService.primarySelection;if(t){let i=e.indexOf(t);i>=0&&(e.splice(i,1),e.unshift(t))}this.instanceServiceContainer.selectionService.setSelectedElements(e)}async handleCopyCommand(){this._currentPasteOffset=this.pasteOffset,this._lastCopiedPrimaryItem=this.instanceServiceContainer.selectionService.primarySelection,await this.serviceContainer.copyPasteService.copyItems(this.instanceServiceContainer.selectionService.selectedElements)}async handlePasteCommand(e){let[t,i]=await this.serviceContainer.copyPasteService.getPasteItems(this.serviceContainer,this.instanceServiceContainer),r=this.rootDesignItem.openGroup("Insert"),n=this._lastCopiedPrimaryItem,o=this._currentPasteOffset+this.pasteOffset,a=this.rootDesignItem,l=n?.parent??this.instanceServiceContainer.selectionService.primarySelection;for(;l!=null;){let c=getComputedStyle(l.element),h;if(h=this.serviceContainer.getLastServiceWhere("containerService",d=>d.serviceForContainer(l,c)),h)if(h.canEnter(l,t)){a=l;break}else{l=l.parent;continue}}if(t){let c=this.getNormalizedElementCoordinates(a.element);for(let d=0;d<t.length;d++){let p=t[d],g=i?i[d]:null;this.instanceServiceContainer.undoService.execute(new oe(a,a.childCount,p)),!e&&g&&p.nodeType==E.Element&&(p.setStyle("left",g.x-c.x+this._currentPasteOffset+"px"),p.setStyle("top",g.y-c.y+this._currentPasteOffset+"px"))}let h=this.serviceContainer.intializationService;if(h)for(let d of t)h.init(d);this.instanceServiceContainer.selectionService.setSelectedElements(t)}r.commit(),this.snapLines.clearSnaplines(),this._lastCopiedPrimaryItem=n,this._currentPasteOffset=o}handleDeleteCommand(){let e=this.instanceServiceContainer.selectionService.selectedElements;this.serviceContainer.deletionService.removeItems(e),this.instanceServiceContainer.selectionService.setSelectedElements(null)}initialize(e){this.serviceContainer=e,this.instanceServiceContainer=new ho(this);let t=this.serviceContainer.getLastService("undoService");t&&this.instanceServiceContainer.register("undoService",t(this));let i=this.serviceContainer.getLastService("selectionService");i&&(this.instanceServiceContainer.register("selectionService",i(this)),this.instanceServiceContainer.selectionService.onSelectionChanged.on(()=>{this._lastCopiedPrimaryItem=null,this._currentPasteOffset=this.pasteOffset}));let r=this.serviceContainer.getLastService("designItemDocumentPositionService");r&&this.instanceServiceContainer.register("designItemDocumentPositionService",r(this)),this._useIframe?(this.rootDesignItem=T.GetOrCreateDesignItem(this._iframe,this._iframe,this.serviceContainer,this.instanceServiceContainer),requestAnimationFrame(()=>{this.rootDesignItem.updateChildrenFromNodesChildren()})):this.rootDesignItem=T.GetOrCreateDesignItem(this._canvas,this._canvas,this.serviceContainer,this.instanceServiceContainer);let n=this.serviceContainer.getLastService("contentService");n&&this.instanceServiceContainer.register("contentService",n(this));let o=this.serviceContainer.getLastService("stylesheetService");if(o){let a=o(this);this.instanceServiceContainer.register("stylesheetService",a),this.instanceServiceContainer.stylesheetService.stylesheetChanged.on(l=>{if(l.changeSource!="undo"){let c=new ao(this.instanceServiceContainer.stylesheetService,l.name,l.newStyle,l.oldStyle);this.instanceServiceContainer.undoService.execute(c),this.applyAllStyles()}else this.applyAllStyles()}),this.instanceServiceContainer.stylesheetService.stylesheetsChanged.on(()=>{this.applyAllStyles()})}if(e.instanceServiceContainerCreatedCallbacks?.length&&e.instanceServiceContainerCreatedCallbacks.forEach(a=>a(this.instanceServiceContainer)),this.extensionManager=new mo(this),this.overlayLayer=new ai(e),this.overlayLayer.style.pointerEvents="none",this.overlayLayer.style.setProperty("margin","0","important"),this.overlayLayer.style.setProperty("padding","0","important"),this.overlayLayer.style.setProperty("border","none","important"),this.clickOverlay.appendChild(this.overlayLayer),this.snapLines=new po(this.overlayLayer),this.snapLines.initialize(this.rootDesignItem),this.serviceContainer.designerPointerExtensions)for(let a of this.serviceContainer.designerPointerExtensions)this._pointerextensions||(this._pointerextensions=[]),this._pointerextensions.push(a.getExtension(this));if(this.children){let a=this.children;if(this.children.length==1&&this.children[0]instanceof HTMLSlotElement&&(a=this.children[0].assignedElements()),a?.length>0){let l=this.serviceContainer.getLastServiceWhere("htmlParserService",c=>c.constructor==ht);this.addDesignItems(l.createDesignItems(a,this.serviceContainer,this.instanceServiceContainer))}}this.serviceContainer.options.zoomDesignerBackground||requestAnimationFrame(()=>{this._resizeBackgroundGrid()}),this.isConnected&&this.extensionManager.connected()}connectedCallback(){this._firstConnect||(this._firstConnect=!0,this._touchGestureHelper=to.addTouchEvents(this.clickOverlay),this.clickOverlay.addEventListener(x.PointerDown,this._pointerEventHandler),this.clickOverlay.addEventListener(x.PointerMove,this._pointerEventHandler),this.clickOverlay.addEventListener(x.PointerUp,this._pointerEventHandler),this.clickOverlay.addEventListener(x.DragEnter,e=>this._onDragEnter(e)),this.clickOverlay.addEventListener(x.DragLeave,e=>this._onDragLeave(e)),this.clickOverlay.addEventListener(x.DragOver,e=>this._onDragOver(e)),this.clickOverlay.addEventListener(x.Drop,e=>this._onDrop(e)),this.clickOverlay.addEventListener(x.KeyDown,this.onKeyDown),this.clickOverlay.addEventListener(x.KeyUp,this.onKeyUp),this.clickOverlay.addEventListener(x.DblClick,this._onDblClick,!0),this.clickOverlay.addEventListener(x.Wheel,this._onWheel),this.clickOverlay.addEventListener("zoom",e=>{this.zoomFactor=this.zoomFactor+e.detail.diff/10}),this.clickOverlay.addEventListener("pan",e=>{let t={x:this.canvasOffset.x-e.detail.deltaX,y:this.canvasOffset.y-e.detail.deltaY};this.canvasOffset=t})),this.extensionManager&&this.extensionManager.connected()}disconnectedCallback(){this.extensionManager.disconnected()}_zoomFactorChanged(){this._canvasContainer.style.bottom=this._outercanvas2.offsetHeight>=this._canvasContainer.offsetHeight?"0":"",this._canvasContainer.style.right=this._outercanvas2.offsetWidth>=this._canvasContainer.offsetWidth?"0":"",this._updateTransform(),this.fillCalculationrects(),this.onZoomFactorChanged.emit(this._zoomFactor),this.serviceContainer.options.zoomDesignerBackground||this._resizeBackgroundGrid()}_resizeBackgroundGrid(){let r=2e3/this.canvas.getBoundingClientRect().width;this.canvas.style.backgroundSize=r.toString()+"%"}_updateTransform(){if(this._scaleFactor=this._zoomFactor,this._useIframe){let e=this._canvasOffset.x,t=this._canvasOffset.y;this._iframe.contentWindow.scrollTo(e*-1,t*-1),e+=this._iframe.contentWindow.scrollX,t+=this._iframe.contentWindow.scrollY,this._canvasContainer.style.transform="scale("+this._zoomFactor+") translate("+e+"px, "+t+"px)"}else this._canvasContainer.style.transform="scale("+this._zoomFactor+") translate("+(isNaN(this._canvasOffset.x)?"0":this._canvasOffset.x)+"px, "+(isNaN(this._canvasOffset.y)?"0":this._canvasOffset.y)+"px)";this._canvasContainer.style.transformOrigin="0 0",this.overlayLayer.style.transform=this._canvasContainer.style.transform,this.overlayLayer.style.transformOrigin="0 0",this.snapLines.clearSnaplines()}setDesignItems(e){this.instanceServiceContainer.undoService.clearTransactionstackIfNotEmpty();let t=new lo(e,[...this.rootDesignItem.children()]);this.instanceServiceContainer.undoService.execute(t)}_internalSetDesignItems(e){this.fillCalculationrects(),this.overlayLayer.removeAllOverlays(),Vc.removeAllChildnodes(this.overlayLayer);for(let t of[...this.rootDesignItem.children()])this.rootDesignItem._removeChildInternal(t);this.addDesignItems(e),this.lazyTriggerReparseDocumentStylesheets(),this.instanceServiceContainer.contentService.onContentChanged.emit({changeType:"parsed"}),this.instanceServiceContainer.selectionService._withoutUndoSetSelectedElements(null),setTimeout(()=>this.extensionManager.refreshAllAppliedExtentions(),50)}reparseTimeout;lazyTriggerReparseDocumentStylesheets(){this.reparseTimeout&&clearTimeout(this.reparseTimeout),this.reparseTimeout=setTimeout(async()=>{await this.reparseDocumentStylesheets(),clearTimeout(this.reparseTimeout)},20)}async reparseDocumentStylesheets(){if(this.instanceServiceContainer.stylesheetService){let e=this.rootDesignItem.querySelectorAll("style"),t=1,i=[...e].map(r=>({name:"<style> #"+(r.id?r.id+"("+t+++")":t++),content:T.GetDesignItem(r).content,designItem:T.GetDesignItem(r)}));await this.instanceServiceContainer.stylesheetService.setDocumentStylesheets(i)}}addDesignItems(e){if(e)for(let i of e)this.rootDesignItem._insertChildInternal(i);let t=this.serviceContainer.intializationService;if(t)for(let i of e)t.init(i);this.snapLines.clearSnaplines()}_onDragEnter(e){if(this.fillCalculationrects(),e.preventDefault(),e.dataTransfer.types.indexOf(Ct)>=0){let i=this.serviceContainer.bindableObjectDragDropService;if(i){let r=this.getElementAtPoint({x:e.x,y:e.y});this._lastDdElement!=r&&(i.dragLeave(this,e,this._lastDdElement),i.dragEnter(this,e,r),this._lastDdElement=r)}else this._lastDdElement=null}else{this._lastDdElement=null;let i=this.serviceContainer.dragDropService;i&&i.dragEnter(this,e)}}_onDragLeave(e){this.fillCalculationrects(),e.preventDefault(),this._canvas.classList.remove("dragFileActive");let t=this.serviceContainer.dragDropService;t&&t.dragLeave(this,e)}_lastDdElement=null;_onDragOver(e){if(e.preventDefault(),this.fillCalculationrects(),e.dataTransfer.types.length>0&&e.dataTransfer.types[0]=="Files"){let t=this.serviceContainer.externalDragDropService;if(t){let i=t.dragOver(e);e.dataTransfer.dropEffect=i,i!=="none"&&this._canvas.classList.add("dragFileActive")}}else if(e.dataTransfer.types.indexOf(Ct)>=0){let i=this.serviceContainer.bindableObjectDragDropService;if(i){let r=this.getElementAtPoint({x:e.x,y:e.y});this._lastDdElement!=r&&(i.dragLeave(this,e,this._lastDdElement),i.dragEnter(this,e,r),this._lastDdElement=r);let n=i.dragOver(this,e,r);e.dataTransfer.dropEffect=n}}else{let i=this.serviceContainer.dragDropService;i&&i.dragOver(this,e)}}async _onDrop(e){if(this.serviceContainer.globalContext.tool=this.serviceContainer.designerTools.get(U.Pointer),this._lastDdElement=null,e.preventDefault(),this._canvas.classList.remove("dragFileActive"),this.fillCalculationrects(),e.dataTransfer.files?.length>0){let t=this.serviceContainer.externalDragDropService;t&&t.drop(this,e)}else{let t=e.dataTransfer.getData(Ct);if(t){let i=JSON.parse(t),r=this.serviceContainer.bindableObjectDragDropService;if(r){let n=this.getElementAtPoint({x:e.x,y:e.y});r.drop(this,e,i,n)}}else{let i=this.serviceContainer.dragDropService;i&&(this.fillCalculationrects(),i.drop(this,e))}}}showDesignItemContextMenu(e,t){let i=[];for(let n of this.serviceContainer.designerContextMenuExtensions)n.shouldProvideContextmenu(t,this,e,"designer")&&i.push(...n.provideContextMenuItems(t,this,e,"designer"));let r=new he(i,null);return r.display(t),r}_onDblClick(e){e.preventDefault(),e.target!==this.overlayLayer&&(e.altKey||(this.serviceContainer.globalContext.tool==null||this.serviceContainer.globalContext.tool===this.serviceContainer.designerTools.get(U.Pointer))&&(this.extensionManager.removeExtension(this.instanceServiceContainer.selectionService.primarySelection,w.PrimarySelectionRefreshed),this.extensionManager.applyExtension(this.instanceServiceContainer.selectionService.primarySelection,w.Doubleclick,e)))}_searchShowOverlay(){let e=this._getDomElement("node-projects-designer-search-container");e.style.display="",this._getDomElement("node-projects-designer-search-input").focus()}_searchHideOverlay(){let e=this._getDomElement("node-projects-designer-search-container");e.style.display="none"}_searchRun(){let e=this._getDomElement("node-projects-designer-search-input");if(this._getDomElement("node-projects-designer-search-result").innerHTML="0 selected",e.value!=""){let t=this._canvasShadowRoot.querySelectorAll(e.value),i=[];for(let r=0;r<=t.length;r++)this._canvasShadowRoot.contains(t[r])&&i.push(T.GetDesignItem(t[r]));i.length>0&&(this.instanceServiceContainer.selectionService.setSelectedElements(i),this._getDomElement("node-projects-designer-search-result").innerHTML=i.length.toString()+" selected")}}onKeyUp(e){this._ignoreEvent!==e&&(this.activeTool?.keyboardEventHandler&&(this.activeTool.keyboardEventHandler(this,e,this.instanceServiceContainer.selectionService.primarySelection.element),e.defaultPrevented)||(this._moveGroup&&(this._moveGroup.commit(),this._moveGroup=null),e.preventDefault()))}onKeyDown(e){if(this._ignoreEvent!==e&&!(this.activeTool?.keyboardEventHandler&&(this.activeTool.keyboardEventHandler(this,e,this.instanceServiceContainer.selectionService.primarySelection.element),e.defaultPrevented))){if(j(e)&&e.key==="z"&&!e.shiftKey)this.executeCommand({type:S.undo,metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey});else if(j(e)&&e.key==="z"&&e.shiftKey)this.executeCommand({type:S.redo,metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey});else if(j(e)&&e.key==="y")this.executeCommand({type:S.redo,metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey});else if(j(e)&&e.key==="a")this.executeCommand({type:S.selectAll,metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey});else if(j(e)&&e.key==="c")this.executeCommand({type:S.copy,metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey});else if(j(e)&&e.key==="v")this.executeCommand({type:S.paste,metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey});else if(j(e)&&e.key==="x")this.executeCommand({type:S.cut,metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey});else if(j(e)&&e.key==="f")this._searchShowOverlay();else{if(!this.instanceServiceContainer.selectionService.primarySelection)return;let i=1;switch(e.shiftKey&&(i=10),e.key){case"Delete":case"Backspace":this.executeCommand({type:S.delete,metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey});break;case"ArrowDown":case"ArrowUp":case"ArrowLeft":case"ArrowRight":{this._moveGroup||(this._moveGroup=this.rootDesignItem.openGroup("move items"));let r={x:0,y:0};e.key=="ArrowDown"&&(r.y=-i),e.key=="ArrowUp"&&(r.y=i),e.key=="ArrowRight"&&(r.x=-i),e.key=="ArrowLeft"&&(r.x=i);for(let n of ne(this.instanceServiceContainer.selectionService.selectedElements)){let o=getComputedStyle(n.parent.element);n.serviceContainer.getLastServiceWhere("containerService",a=>a.serviceForContainer(n.parent,o)).moveElements([n],r,!1)}}break}}e.preventDefault()}}getNormalizedEventCoordinates(e){let t=(e.clientX-this.outerRect.x)/this.zoomFactor,i=this.containerBoundingRect.x-this.outerRect.x,r=(e.clientY-this.outerRect.y)/this.zoomFactor,n=this.containerBoundingRect.y-this.outerRect.y;return{x:t-i/this.zoomFactor,y:r-n/this.zoomFactor}}getViewportCoordinates(e){return{x:e.clientX-this.outerRect.x,y:e.clientY-this.outerRect.y}}getNormalizedTextNodeCoordinates(e,t){let i=document.createRange();i.selectNodeContents(e);let r=i.getBoundingClientRect(),n=this.containerOffset;return{x:n.x+(r.x-this.containerBoundingRect.x)/(t?1:this.scaleFactor),y:n.y+(r.y-this.containerBoundingRect.y)/(t?1:this.scaleFactor),width:r.width/(t?1:this.scaleFactor),height:r.height/(t?1:this.scaleFactor)}}getNormalizedElementCoordinates(e,t){if(e.nodeType==E.TextNode)return this.getNormalizedTextNodeCoordinates(e,t);let i=W(e),r=this.containerOffset;return{x:r.x+(i.x-this.containerBoundingRect.x)/(t?1:this.scaleFactor),y:r.y+(i.y-this.containerBoundingRect.y)/(t?1:this.scaleFactor),width:i.width/(t?1:this.scaleFactor),height:i.height/(t?1:this.scaleFactor)}}getNormalizedElementCoordinatesAndRealSizes(e){let t=this.getNormalizedElementCoordinates(e),i=getComputedStyle(e),r=t.width,n=t.height;return i.boxSizing!="border-box"&&(r=r-(parseFloat(i.borderLeft)+parseFloat(i.paddingLeft)+parseFloat(i.paddingRight)+parseFloat(i.borderRight)),n=n-(parseFloat(i.borderTop)+parseFloat(i.paddingTop)+parseFloat(i.paddingBottom)+parseFloat(i.borderBottom))),{...t,realWidth:r,realHeight:n}}getNormalizedOffsetInElement(e,t){let i=this.getNormalizedEventCoordinates(e),r=this.getNormalizedElementCoordinates(t);return{x:i.x-r.x,y:i.y-r.y}}transformPoint(e){if(this._useIframe){let t=this._canvasContainer.getBoundingClientRect();return{x:e.x-t.x,y:e.y-t.y}}return e}elementsFromPoint(e,t){let i=[],r=this.transformPoint({x:e,y:t}),n=this._canvasShadowRoot.elementsFromPoint(r.x,r.y);for(let o of n)o.getRootNode()===this._canvasShadowRoot&&i.push(o);return i}getElementAtPoint(e,t){let i=this.transformPoint(e),r=this._canvasShadowRoot.elementsFromPoint(i.x,i.y),n=null;for(let o=0;o<r.length;o++){if(n=r[o],t&&t(n)){n=null;continue}if(n.getRootNode()!==this._canvasShadowRoot){n=null;continue}if(!this.instanceServiceContainer.designContext.extensionOptions.selectUnhitableElements&&T.GetDesignItem(n).getStyleFromSheetOrLocal("pointer-events")=="none"){n=null;continue}break}return n}getDesignItemById(e){return T.GetDesignItem(this._canvasShadowRoot.getElementById(e))}querySelectorDesignItem(e){return T.GetDesignItem(this._canvasShadowRoot.querySelector(e))}querySelectorAllDesignItems(e){return[...this._canvasShadowRoot.querySelectorAll(e)].map(t=>T.GetDesignItem(t))}_hoverElement;showHoverExtension(e,t){let i=T.GetOrCreateDesignItem(e,e,this.serviceContainer,this.instanceServiceContainer);if(this._lastHoverDesignItem!=i&&(this._lastHoverDesignItem&&this.extensionManager.removeExtension(this._lastHoverDesignItem,w.MouseOver),i&&i!=this.rootDesignItem&&(!e.parentNode||Vc.getHost(e.parentNode)!==this.overlayLayer)&&this.extensionManager.applyExtension(i,w.MouseOver,t),this._lastHoverDesignItem=i),this.instanceServiceContainer.designContext.extensionOptions.simulateHoverOnHover&&this._hoverElement!==e){let r=this._hoverElement;for(;r&&r!==this._canvas;)r.removeAttribute(ct),r=r.parentElement;if(this._hoverElement=null,e){for(e.nodeType==E.TextNode&&(e=e.parentElement),r=e;r&&r!==this._canvas;)r.setAttribute(ct,""),r=r.parentElement;this._hoverElement=e}}}_onWheel(e){let t=this.getElementAtPoint({x:e.clientX,y:e.clientY});for(;t;){let i=getComputedStyle(t);if(i.overflowY==="scroll"||i.overflowY==="auto"){let r=t;r.scrollBy?r.scrollBy(e.deltaX,e.deltaY):(r.scrollLeft+=e.deltaX,r.scrollTop+=e.deltaY),e.stopPropagation();break}t=t.parentElement}}_pointerEventHandler(e,t=null){if(this._ignoreEvent===e||!this.serviceContainer||this._touchGestureHelper.multitouchEventActive)return;if(this.fillCalculationrects(),this._pointerextensions)for(let o of this._pointerextensions)o.refresh(e);let i;if(t)i=t;else if(i=this.serviceContainer.elementAtPointService.getElementAtPoint(this,{x:e.x,y:e.y}),!i)i=this._canvas;else if(this._enableSelectTextNodesOnClick){let o=this.getNormalizedEventCoordinates(e);for(let a of i.childNodes)if(a.nodeType==E.TextNode){let l=this.getNormalizedElementCoordinates(a);if(l.x<=o.x&&l.x+l.width>=o.x&&l.y<=o.y&&l.y+l.height>=o.y){i=a;break}}}if(this._activeTool){this._activeTool.pointerEventHandler(this,e,i);return}this.clickOverlay.style.cursor=this._canvas.style.cursor;let r=T.GetOrCreateDesignItem(i,i,this.serviceContainer,this.instanceServiceContainer);this.showHoverExtension(r.element,e),i&&Vc.getHost(i.parentNode)===this.overlayLayer&&(i=this.instanceServiceContainer.selectionService.primarySelection?.element??this._canvas);let n=this.serviceContainer.globalContext.tool??this.serviceContainer.designerTools.get(U.Pointer);n.pointerEventHandler(this,e,i),this._canvas.style.cursor=n.cursor}captureActiveTool(e){this._activeTool=e}releaseActiveTool(){this._activeTool=null}get activeTool(){return this.serviceContainer.globalContext.tool}fillCalculationrects(){this.containerBoundingRect=this._canvasContainer.getBoundingClientRect(),this.outerRect=this._outercanvas2.getBoundingClientRect()}removeOverlay(e){this.overlayLayer.removeOverlay(e)}zoomOntoRectangle(e,t){let i={x:e.x<t.x?e.x:t.x,y:e.y<t.y?e.y:t.y,width:Math.abs(e.x-t.x),height:Math.abs(e.y-t.y)},r=this.outerRect.width/i.width,n=this.outerRect.height/i.height,o=r>=n?n:r,a={x:i.width/2+i.x,y:i.height/2+i.y};this.zoomPoint(a,o)}zoomPoint(e,t){this.zoomFactor=t;let i={x:-e.x+this.outerRect.width/this.zoomFactor/2,y:-e.y+this.outerRect.height/this.zoomFactor/2};this.canvasOffset=i}zoomConvertEventToViewPortCoordinates(e){let t=this.containerBoundingRect.x-this.outerRect.x,i=this.containerBoundingRect.y-this.outerRect.y;return{x:(e.x+t/this.zoomFactor)*this.zoomFactor,y:(e.y+i/this.zoomFactor)*this.zoomFactor}}zoomTowardsPoint(e,t){let i=t/this.zoomFactor,r=this.zoomConvertEventToViewPortCoordinates(e),n={x:-(r.x*(i-1)+i*-this.canvasOffsetUnzoomed.x),y:-(r.y*(i-1)+i*-this.canvasOffsetUnzoomed.y)};this.zoomFactor=t,this.canvasOffsetUnzoomed=n}};customElements.define("node-projects-designer-canvas",li);Te();Ci();ee();Qe();We();import{BaseCustomWebComponentConstructorAppend as Cm,css as Em,html as Am}from"@node-projects/base-custom-webcomponent";var ji=class extends Cm{static style=Em`
|
|
1462
|
+
`;extensionManager;_pointerextensions;_lastCopiedPrimaryItem;_ignoreEvent;_useIframe=!0;_iframe;_window;_resizeObserver;iframes;constructor(e=!1){super(),this._restoreCachedInititalValues(),Ea(),this._useIframe=e,this._canvas=this._getDomElement("node-projects-designer-canvas-canvas"),this._useIframe?(this._iframe=document.createElement("iframe"),this._iframe.setAttribute("sandbox","allow-same-origin"),this._iframe.setAttribute("scrolling","no"),this.iframes=[this._iframe],this._canvas.appendChild(this._iframe),requestAnimationFrame(()=>{this._window=this._iframe.contentWindow,Ea(this._iframe.contentWindow),this._canvasShadowRoot=this._iframe.contentWindow.document})):(this._window=window,this._canvasShadowRoot=this._canvas.attachShadow({mode:"open"})),this._canvasContainer=this._getDomElement("node-projects-designer-canvas-canvasContainer"),this._outercanvas2=this._getDomElement("node-projects-designer-canvas-outercanvas2"),this.clickOverlay=this._getDomElement("node-projects-designer-canvas-clickOverlay"),this.onKeyDown=this.onKeyDown.bind(this),this.onKeyUp=this.onKeyUp.bind(this),this._onDblClick=this._onDblClick.bind(this),this._pointerEventHandler=this._pointerEventHandler.bind(this),this._onWheel=this._onWheel.bind(this),this._getDomElement("node-projects-designer-search-close").onclick=()=>this._searchHideOverlay(),this._getDomElement("node-projects-designer-search-start").onclick=()=>this._searchRun(),this._getDomElement("node-projects-designer-search-container").onkeydown=t=>{t.key==="Enter"&&this._searchRun()},this.clickOverlay.oncontextmenu=t=>t.preventDefault(),this._resizeObserver=new ResizeObserver(()=>{this.extensionManager.refreshAllAppliedExtentions()}),this._resizeObserver.observe(this)}get designerWidth(){return this._canvasContainer.style.width}set designerWidth(e){this._canvasContainer.style.width=e,this._zoomFactorChanged()}get designerHeight(){return this._canvasContainer.style.height}set designerHeight(e){this._canvasContainer.style.height=e,this._zoomFactorChanged()}getDesignSurfaceDimensions(){let e={width:null,height:null},t=getComputedStyle(this._canvasContainer);return this._canvasContainer.style.width&&(e.width=parseFloat(t.width)),this._canvasContainer.style.height&&(e.height=parseFloat(t.height)),e}get designerOffsetWidth(){return this._canvasContainer.offsetWidth}get designerOffsetHeight(){return this._canvasContainer.offsetHeight}set additionalStyles(e){this._additionalStyle=e,this.applyAllStyles()}get additionalStyles(){return this._additionalStyle}applyAllStyles(){if(this._window){let e=[];this._additionalStyle&&e.push(...this._additionalStyle),this.instanceServiceContainer.stylesheetService&&e.push(...this.instanceServiceContainer.stylesheetService.getStylesheets().map(t=>id(this._window,oo.patchStylesheetSelectorForDesigner(t.content)))),this._pauseAnimations&&e.push(Sm),this._useIframe?this._iframe.contentWindow.document.adoptedStyleSheets=e:this._canvasShadowRoot.adoptedStyleSheets=e}else requestAnimationFrame(()=>this.applyAllStyles())}ignoreEvent(e){this._ignoreEvent=e}canExecuteCommand(e){let t=this.serviceContainer.modelCommandService;if(t){let i=t.canExecuteCommand(this,e);if(i!==null)return i}return e.type===S.undo?this.instanceServiceContainer.undoService.canUndo():e.type===S.redo?this.instanceServiceContainer.undoService.canRedo():e.type===S.setTool?this.serviceContainer.designerTools.has(e.parameter):e.type===S.paste?!0:e.type===S.copy||e.type===S.cut||e.type===S.delete?this.instanceServiceContainer.selectionService.primarySelection!=null&&!this.instanceServiceContainer.selectionService.primarySelection.isRootItem:!0}async executeCommand(e){let t=this.serviceContainer.modelCommandService;if(!(t&&await t.executeCommand(this,e)!=null))switch(e.type){case S.screenshot:if(si.screenshotsEnabled||alert("you need to select current tab in next browser dialog, or screenshots will not work correctly"),this.instanceServiceContainer.selectionService.primarySelection){this.disableBackgroud();try{let a=this.instanceServiceContainer.selectionService.primarySelection.element,l=this.instanceServiceContainer.selectionService.selectedElements;this.instanceServiceContainer.selectionService.setSelectedElements(null),await lt(100);let c=await si.takeScreenshot(a,a.clientWidth,a.clientHeight);await Ro(Fo(c),"screenshot.png"),this.instanceServiceContainer.selectionService.setSelectedElements(l)}catch(a){console.error(a)}this.enableBackground()}else{this.zoomToFit(),this.disableBackgroud();try{let a=this.rootDesignItem.element,l=this.instanceServiceContainer.selectionService.selectedElements;this.instanceServiceContainer.selectionService.setSelectedElements(null),await lt(100);let c=await si.takeScreenshot(a,a.clientWidth,a.clientHeight);await Ro(Fo(c),"screenshot.png"),this.instanceServiceContainer.selectionService.setSelectedElements(l)}catch(a){console.error(a)}this.enableBackground()}break;case S.setTool:this.serviceContainer.globalContext.tool=this.serviceContainer.designerTools.get(e.parameter),this.extensionManager.reapplyAllAppliedExtentions();break;case S.setStrokeColor:this.serviceContainer.globalContext.strokeColor=e.parameter;break;case S.setFillBrush:this.serviceContainer.globalContext.fillBrush=e.parameter;break;case S.setStrokeThickness:this.serviceContainer.globalContext.strokeThickness=e.parameter;break;case S.delete:this.handleDeleteCommand();break;case S.undo:this.instanceServiceContainer.undoService.undo();break;case S.holdUndo:let i=this.instanceServiceContainer.undoService.getUndoEntryNames(20),r=Array.from(i).map((a,l)=>({title:"undo: "+a,action:()=>{for(let c=0;c<=l;c++)this.instanceServiceContainer.undoService.undo()}}));r.length>0&&he.show(r,e.event,{mode:"undo"});break;case S.redo:this.instanceServiceContainer.undoService.redo();break;case S.holdRedo:let n=this.instanceServiceContainer.undoService.getRedoEntryNames(20),o=Array.from(n).map((a,l)=>({title:"redo: "+a,action:()=>{for(let c=0;c<=l;c++)this.instanceServiceContainer.undoService.redo()}}));o.length>0&&he.show(o,e.event,{mode:"undo"});break;case S.copy:this.handleCopyCommand();break;case S.cut:this.handleCopyCommand(),this.handleDeleteCommand();break;case S.paste:this.handlePasteCommand(e.altKey==!0);break;case S.selectAll:this.handleSelectAll();break}}disableBackgroud(){this._canvasContainer.style.background="var(--node-projects-web-component-designer-screenshot-background, white)"}enableBackground(){this._canvasContainer.style.background=""}zoomToFit(){let t=0,i=0,r=0,n=0;this.canvasOffset={x:0,y:0},this.zoomFactor=1;for(let d of this.rootDesignItem.querySelectorAll("*"))if(d instanceof(d.ownerDocument.defaultView??window).Element){let p=W(d);r=r<p.x?r:p.x,n=n<p.y?n:p.y,t=t>p.x+p.width+10?t:p.x+p.width+10,i=i>p.y+p.height+10?i:p.y+p.height+10}let o=this.getBoundingClientRect();t-=o.x,i-=o.y;let a=o.width/(t/this.zoomFactor),l=o.height/(i/this.zoomFactor),c=this.getDesignSurfaceDimensions();c.width&&(a=o.width/c.width),c.height&&(l=o.height/c.height);let h=a<l?a:l;isNaN(h)||(this.zoomFactor=h)}handleSelectAll(){let e=Array.from(this.rootDesignItem.children(!0)).filter(i=>!i.isEmptyTextNode),t=this.instanceServiceContainer.selectionService.primarySelection;if(t){let i=e.indexOf(t);i>=0&&(e.splice(i,1),e.unshift(t))}this.instanceServiceContainer.selectionService.setSelectedElements(e)}async handleCopyCommand(){this._currentPasteOffset=this.pasteOffset,this._lastCopiedPrimaryItem=this.instanceServiceContainer.selectionService.primarySelection,await this.serviceContainer.copyPasteService.copyItems(this.instanceServiceContainer.selectionService.selectedElements)}async handlePasteCommand(e){let[t,i]=await this.serviceContainer.copyPasteService.getPasteItems(this.serviceContainer,this.instanceServiceContainer),r=this.rootDesignItem.openGroup("Insert"),n=this._lastCopiedPrimaryItem,o=this._currentPasteOffset+this.pasteOffset,a=this.rootDesignItem,l=n?.parent??this.instanceServiceContainer.selectionService.primarySelection;for(;l!=null;){let c=getComputedStyle(l.element),h;if(h=this.serviceContainer.getLastServiceWhere("containerService",d=>d.serviceForContainer(l,c)),h)if(h.canEnter(l,t)){a=l;break}else{l=l.parent;continue}}if(t){let c=this.getNormalizedElementCoordinates(a.element);for(let d=0;d<t.length;d++){let p=t[d],g=i?i[d]:null;this.instanceServiceContainer.undoService.execute(new oe(a,a.childCount,p)),!e&&g&&p.nodeType==E.Element&&(p.setStyle("left",g.x-c.x+this._currentPasteOffset+"px"),p.setStyle("top",g.y-c.y+this._currentPasteOffset+"px"))}let h=this.serviceContainer.intializationService;if(h)for(let d of t)h.init(d);this.instanceServiceContainer.selectionService.setSelectedElements(t)}r.commit(),this.snapLines.clearSnaplines(),this._lastCopiedPrimaryItem=n,this._currentPasteOffset=o}handleDeleteCommand(){let e=this.instanceServiceContainer.selectionService.selectedElements;this.serviceContainer.deletionService.removeItems(e),this.instanceServiceContainer.selectionService.setSelectedElements(null)}initialize(e){this.serviceContainer=e,this.instanceServiceContainer=new ho(this);let t=this.serviceContainer.getLastService("undoService");t&&this.instanceServiceContainer.register("undoService",t(this));let i=this.serviceContainer.getLastService("selectionService");i&&(this.instanceServiceContainer.register("selectionService",i(this)),this.instanceServiceContainer.selectionService.onSelectionChanged.on(()=>{this._lastCopiedPrimaryItem=null,this._currentPasteOffset=this.pasteOffset}));let r=this.serviceContainer.getLastService("designItemDocumentPositionService");r&&this.instanceServiceContainer.register("designItemDocumentPositionService",r(this)),this._useIframe?(this.rootDesignItem=T.GetOrCreateDesignItem(this._iframe,this._iframe,this.serviceContainer,this.instanceServiceContainer),requestAnimationFrame(()=>{this.rootDesignItem.updateChildrenFromNodesChildren()})):this.rootDesignItem=T.GetOrCreateDesignItem(this._canvas,this._canvas,this.serviceContainer,this.instanceServiceContainer);let n=this.serviceContainer.getLastService("contentService");n&&this.instanceServiceContainer.register("contentService",n(this));let o=this.serviceContainer.getLastService("stylesheetService");if(o){let a=o(this);this.instanceServiceContainer.register("stylesheetService",a),this.instanceServiceContainer.stylesheetService.stylesheetChanged.on(l=>{if(l.changeSource!="undo"){let c=new ao(this.instanceServiceContainer.stylesheetService,l.name,l.newStyle,l.oldStyle);this.instanceServiceContainer.undoService.execute(c),this.applyAllStyles()}else this.applyAllStyles()}),this.instanceServiceContainer.stylesheetService.stylesheetsChanged.on(()=>{this.applyAllStyles()})}if(e.instanceServiceContainerCreatedCallbacks?.length&&e.instanceServiceContainerCreatedCallbacks.forEach(a=>a(this.instanceServiceContainer)),this.extensionManager=new mo(this),this.overlayLayer=new li(e),this.overlayLayer.style.pointerEvents="none",this.overlayLayer.style.setProperty("margin","0","important"),this.overlayLayer.style.setProperty("padding","0","important"),this.overlayLayer.style.setProperty("border","none","important"),this.clickOverlay.appendChild(this.overlayLayer),this.snapLines=new po(this.overlayLayer),this.snapLines.initialize(this.rootDesignItem),this.serviceContainer.designerPointerExtensions)for(let a of this.serviceContainer.designerPointerExtensions)this._pointerextensions||(this._pointerextensions=[]),this._pointerextensions.push(a.getExtension(this));if(this.children){let a=this.children;if(this.children.length==1&&this.children[0]instanceof HTMLSlotElement&&(a=this.children[0].assignedElements()),a?.length>0){let l=this.serviceContainer.getLastServiceWhere("htmlParserService",c=>c.constructor==ht);this.addDesignItems(l.createDesignItems(a,this.serviceContainer,this.instanceServiceContainer))}}this.serviceContainer.options.zoomDesignerBackground||requestAnimationFrame(()=>{this._resizeBackgroundGrid()}),this.isConnected&&this.extensionManager.connected()}connectedCallback(){this._firstConnect||(this._firstConnect=!0,this._touchGestureHelper=to.addTouchEvents(this.clickOverlay),this.clickOverlay.addEventListener(x.PointerDown,this._pointerEventHandler),this.clickOverlay.addEventListener(x.PointerMove,this._pointerEventHandler),this.clickOverlay.addEventListener(x.PointerUp,this._pointerEventHandler),this.clickOverlay.addEventListener(x.DragEnter,e=>this._onDragEnter(e)),this.clickOverlay.addEventListener(x.DragLeave,e=>this._onDragLeave(e)),this.clickOverlay.addEventListener(x.DragOver,e=>this._onDragOver(e)),this.clickOverlay.addEventListener(x.Drop,e=>this._onDrop(e)),this.clickOverlay.addEventListener(x.KeyDown,this.onKeyDown),this.clickOverlay.addEventListener(x.KeyUp,this.onKeyUp),this.clickOverlay.addEventListener(x.DblClick,this._onDblClick,!0),this.clickOverlay.addEventListener(x.Wheel,this._onWheel),this.clickOverlay.addEventListener("zoom",e=>{this.zoomFactor=this.zoomFactor+e.detail.diff/10}),this.clickOverlay.addEventListener("pan",e=>{let t={x:this.canvasOffset.x-e.detail.deltaX,y:this.canvasOffset.y-e.detail.deltaY};this.canvasOffset=t})),this.extensionManager&&this.extensionManager.connected()}disconnectedCallback(){this.extensionManager.disconnected()}_zoomFactorChanged(){this._canvasContainer.style.bottom=this._outercanvas2.offsetHeight>=this._canvasContainer.offsetHeight?"0":"",this._canvasContainer.style.right=this._outercanvas2.offsetWidth>=this._canvasContainer.offsetWidth?"0":"",this._updateTransform(),this.fillCalculationrects(),this.onZoomFactorChanged.emit(this._zoomFactor),this.serviceContainer.options.zoomDesignerBackground||this._resizeBackgroundGrid()}_resizeBackgroundGrid(){let r=2e3/this.canvas.getBoundingClientRect().width;this.canvas.style.backgroundSize=r.toString()+"%"}_updateTransform(){if(this._scaleFactor=this._zoomFactor,this._useIframe){let e=this._canvasOffset.x,t=this._canvasOffset.y;this._iframe.contentWindow.scrollTo(e*-1,t*-1),e+=this._iframe.contentWindow.scrollX,t+=this._iframe.contentWindow.scrollY,this._canvasContainer.style.transform="scale("+this._zoomFactor+") translate("+e+"px, "+t+"px)"}else this._canvasContainer.style.transform="scale("+this._zoomFactor+") translate("+(isNaN(this._canvasOffset.x)?"0":this._canvasOffset.x)+"px, "+(isNaN(this._canvasOffset.y)?"0":this._canvasOffset.y)+"px)";this._canvasContainer.style.transformOrigin="0 0",this.overlayLayer.style.transform=this._canvasContainer.style.transform,this.overlayLayer.style.transformOrigin="0 0",this.snapLines.clearSnaplines()}setDesignItems(e){this.instanceServiceContainer.undoService.clearTransactionstackIfNotEmpty();let t=new lo(e,[...this.rootDesignItem.children()]);this.instanceServiceContainer.undoService.execute(t)}_internalSetDesignItems(e){this.fillCalculationrects(),this.overlayLayer.removeAllOverlays(),Vc.removeAllChildnodes(this.overlayLayer);for(let t of[...this.rootDesignItem.children()])this.rootDesignItem._removeChildInternal(t);this.addDesignItems(e),this.lazyTriggerReparseDocumentStylesheets(),this.instanceServiceContainer.contentService.onContentChanged.emit({changeType:"parsed"}),this.instanceServiceContainer.selectionService._withoutUndoSetSelectedElements(null),setTimeout(()=>this.extensionManager.refreshAllAppliedExtentions(),50)}reparseTimeout;lazyTriggerReparseDocumentStylesheets(){this.reparseTimeout&&clearTimeout(this.reparseTimeout),this.reparseTimeout=setTimeout(async()=>{await this.reparseDocumentStylesheets(),clearTimeout(this.reparseTimeout)},20)}async reparseDocumentStylesheets(){if(this.instanceServiceContainer.stylesheetService){let e=this.rootDesignItem.querySelectorAll("style"),t=1,i=[...e].map(r=>({name:"<style> #"+(r.id?r.id+"("+t+++")":t++),content:T.GetDesignItem(r).content,designItem:T.GetDesignItem(r)}));await this.instanceServiceContainer.stylesheetService.setDocumentStylesheets(i)}}addDesignItems(e){e&&this.rootDesignItem._insertChildsInternal(e);let t=this.serviceContainer.intializationService;if(t)for(let i of e)t.init(i);this.snapLines.clearSnaplines()}_onDragEnter(e){if(this.fillCalculationrects(),e.preventDefault(),e.dataTransfer.types.indexOf(Ct)>=0){let i=this.serviceContainer.bindableObjectDragDropService;if(i){let r=this.getElementAtPoint({x:e.x,y:e.y});this._lastDdElement!=r&&(i.dragLeave(this,e,this._lastDdElement),i.dragEnter(this,e,r),this._lastDdElement=r)}else this._lastDdElement=null}else{this._lastDdElement=null;let i=this.serviceContainer.dragDropService;i&&i.dragEnter(this,e)}}_onDragLeave(e){this.fillCalculationrects(),e.preventDefault(),this._canvas.classList.remove("dragFileActive");let t=this.serviceContainer.dragDropService;t&&t.dragLeave(this,e)}_lastDdElement=null;_onDragOver(e){if(e.preventDefault(),this.fillCalculationrects(),e.dataTransfer.types.length>0&&e.dataTransfer.types[0]=="Files"){let t=this.serviceContainer.externalDragDropService;if(t){let i=t.dragOver(e);e.dataTransfer.dropEffect=i,i!=="none"&&this._canvas.classList.add("dragFileActive")}}else if(e.dataTransfer.types.indexOf(Ct)>=0){let i=this.serviceContainer.bindableObjectDragDropService;if(i){let r=this.getElementAtPoint({x:e.x,y:e.y});this._lastDdElement!=r&&(i.dragLeave(this,e,this._lastDdElement),i.dragEnter(this,e,r),this._lastDdElement=r);let n=i.dragOver(this,e,r);e.dataTransfer.dropEffect=n}}else{let i=this.serviceContainer.dragDropService;i&&i.dragOver(this,e)}}async _onDrop(e){if(this.serviceContainer.globalContext.tool=this.serviceContainer.designerTools.get(U.Pointer),this._lastDdElement=null,e.preventDefault(),this._canvas.classList.remove("dragFileActive"),this.fillCalculationrects(),e.dataTransfer.files?.length>0){let t=this.serviceContainer.externalDragDropService;t&&t.drop(this,e)}else{let t=e.dataTransfer.getData(Ct);if(t){let i=JSON.parse(t),r=this.serviceContainer.bindableObjectDragDropService;if(r){let n=this.getElementAtPoint({x:e.x,y:e.y});r.drop(this,e,i,n)}}else{let i=this.serviceContainer.dragDropService;i&&(this.fillCalculationrects(),i.drop(this,e))}}}showDesignItemContextMenu(e,t){let i=[];for(let n of this.serviceContainer.designerContextMenuExtensions)n.shouldProvideContextmenu(t,this,e,"designer")&&i.push(...n.provideContextMenuItems(t,this,e,"designer"));let r=new he(i,null);return r.display(t),r}_onDblClick(e){e.preventDefault(),e.target!==this.overlayLayer&&(e.altKey||(this.serviceContainer.globalContext.tool==null||this.serviceContainer.globalContext.tool===this.serviceContainer.designerTools.get(U.Pointer))&&(this.extensionManager.removeExtension(this.instanceServiceContainer.selectionService.primarySelection,w.PrimarySelectionRefreshed),this.extensionManager.applyExtension(this.instanceServiceContainer.selectionService.primarySelection,w.Doubleclick,e)))}_searchShowOverlay(){let e=this._getDomElement("node-projects-designer-search-container");e.style.display="",this._getDomElement("node-projects-designer-search-input").focus()}_searchHideOverlay(){let e=this._getDomElement("node-projects-designer-search-container");e.style.display="none"}_searchRun(){let e=this._getDomElement("node-projects-designer-search-input");if(this._getDomElement("node-projects-designer-search-result").innerHTML="0 selected",e.value!=""){let t=this._canvasShadowRoot.querySelectorAll(e.value),i=[];for(let r=0;r<=t.length;r++)this._canvasShadowRoot.contains(t[r])&&i.push(T.GetDesignItem(t[r]));i.length>0&&(this.instanceServiceContainer.selectionService.setSelectedElements(i),this._getDomElement("node-projects-designer-search-result").innerHTML=i.length.toString()+" selected")}}onKeyUp(e){this._ignoreEvent!==e&&(this.activeTool?.keyboardEventHandler&&(this.activeTool.keyboardEventHandler(this,e,this.instanceServiceContainer.selectionService.primarySelection.element),e.defaultPrevented)||(this._moveGroup&&(this._moveGroup.commit(),this._moveGroup=null),e.preventDefault()))}onKeyDown(e){if(this._ignoreEvent!==e&&!(this.activeTool?.keyboardEventHandler&&(this.activeTool.keyboardEventHandler(this,e,this.instanceServiceContainer.selectionService.primarySelection.element),e.defaultPrevented))){if(j(e)&&e.key==="z"&&!e.shiftKey)this.executeCommand({type:S.undo,metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey});else if(j(e)&&e.key==="z"&&e.shiftKey)this.executeCommand({type:S.redo,metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey});else if(j(e)&&e.key==="y")this.executeCommand({type:S.redo,metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey});else if(j(e)&&e.key==="a")this.executeCommand({type:S.selectAll,metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey});else if(j(e)&&e.key==="c")this.executeCommand({type:S.copy,metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey});else if(j(e)&&e.key==="v")this.executeCommand({type:S.paste,metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey});else if(j(e)&&e.key==="x")this.executeCommand({type:S.cut,metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey});else if(j(e)&&e.key==="f")this._searchShowOverlay();else{if(!this.instanceServiceContainer.selectionService.primarySelection)return;let i=1;switch(e.shiftKey&&(i=10),e.key){case"Delete":case"Backspace":this.executeCommand({type:S.delete,metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey});break;case"ArrowDown":case"ArrowUp":case"ArrowLeft":case"ArrowRight":{this._moveGroup||(this._moveGroup=this.rootDesignItem.openGroup("move items"));let r={x:0,y:0};e.key=="ArrowDown"&&(r.y=-i),e.key=="ArrowUp"&&(r.y=i),e.key=="ArrowRight"&&(r.x=-i),e.key=="ArrowLeft"&&(r.x=i);for(let n of ne(this.instanceServiceContainer.selectionService.selectedElements)){let o=getComputedStyle(n.parent.element);n.serviceContainer.getLastServiceWhere("containerService",a=>a.serviceForContainer(n.parent,o)).moveElements([n],r,!1)}}break}}e.preventDefault()}}getNormalizedEventCoordinates(e){let t=(e.clientX-this.outerRect.x)/this.zoomFactor,i=this.containerBoundingRect.x-this.outerRect.x,r=(e.clientY-this.outerRect.y)/this.zoomFactor,n=this.containerBoundingRect.y-this.outerRect.y;return{x:t-i/this.zoomFactor,y:r-n/this.zoomFactor}}getViewportCoordinates(e){return{x:e.clientX-this.outerRect.x,y:e.clientY-this.outerRect.y}}getNormalizedTextNodeCoordinates(e,t){let i=document.createRange();i.selectNodeContents(e);let r=i.getBoundingClientRect(),n=this.containerOffset;return{x:n.x+(r.x-this.containerBoundingRect.x)/(t?1:this.scaleFactor),y:n.y+(r.y-this.containerBoundingRect.y)/(t?1:this.scaleFactor),width:r.width/(t?1:this.scaleFactor),height:r.height/(t?1:this.scaleFactor)}}getNormalizedElementCoordinates(e,t){if(e.nodeType==E.TextNode)return this.getNormalizedTextNodeCoordinates(e,t);let i=W(e),r=this.containerOffset;return{x:r.x+(i.x-this.containerBoundingRect.x)/(t?1:this.scaleFactor),y:r.y+(i.y-this.containerBoundingRect.y)/(t?1:this.scaleFactor),width:i.width/(t?1:this.scaleFactor),height:i.height/(t?1:this.scaleFactor)}}getNormalizedElementCoordinatesAndRealSizes(e){let t=this.getNormalizedElementCoordinates(e),i=getComputedStyle(e),r=t.width,n=t.height;return i.boxSizing!="border-box"&&(r=r-(parseFloat(i.borderLeft)+parseFloat(i.paddingLeft)+parseFloat(i.paddingRight)+parseFloat(i.borderRight)),n=n-(parseFloat(i.borderTop)+parseFloat(i.paddingTop)+parseFloat(i.paddingBottom)+parseFloat(i.borderBottom))),{...t,realWidth:r,realHeight:n}}getNormalizedOffsetInElement(e,t){let i=this.getNormalizedEventCoordinates(e),r=this.getNormalizedElementCoordinates(t);return{x:i.x-r.x,y:i.y-r.y}}transformPoint(e){if(this._useIframe){let t=this._canvasContainer.getBoundingClientRect();return{x:e.x-t.x,y:e.y-t.y}}return e}elementsFromPoint(e,t){let i=[],r=this.transformPoint({x:e,y:t}),n=this._canvasShadowRoot.elementsFromPoint(r.x,r.y);for(let o of n)o.getRootNode()===this._canvasShadowRoot&&i.push(o);return i}getElementAtPoint(e,t){let i=this.transformPoint(e),r=this._canvasShadowRoot.elementsFromPoint(i.x,i.y),n=null;for(let o=0;o<r.length;o++){if(n=r[o],t&&t(n)){n=null;continue}if(n.getRootNode()!==this._canvasShadowRoot){n=null;continue}if(!this.instanceServiceContainer.designContext.extensionOptions.selectUnhitableElements&&T.GetDesignItem(n).getStyleFromSheetOrLocal("pointer-events")=="none"){n=null;continue}break}return n}getDesignItemById(e){return T.GetDesignItem(this._canvasShadowRoot.getElementById(e))}querySelectorDesignItem(e){return T.GetDesignItem(this._canvasShadowRoot.querySelector(e))}querySelectorAllDesignItems(e){return[...this._canvasShadowRoot.querySelectorAll(e)].map(t=>T.GetDesignItem(t))}_hoverElement;showHoverExtension(e,t){let i=T.GetOrCreateDesignItem(e,e,this.serviceContainer,this.instanceServiceContainer);if(this._lastHoverDesignItem!=i&&(this._lastHoverDesignItem&&this.extensionManager.removeExtension(this._lastHoverDesignItem,w.MouseOver),i&&i!=this.rootDesignItem&&(!e.parentNode||Vc.getHost(e.parentNode)!==this.overlayLayer)&&this.extensionManager.applyExtension(i,w.MouseOver,t),this._lastHoverDesignItem=i),this.instanceServiceContainer.designContext.extensionOptions.simulateHoverOnHover&&this._hoverElement!==e){let r=this._hoverElement;for(;r&&r!==this._canvas;)r.removeAttribute(ct),r=r.parentElement;if(this._hoverElement=null,e){for(e.nodeType==E.TextNode&&(e=e.parentElement),r=e;r&&r!==this._canvas;)r.setAttribute(ct,""),r=r.parentElement;this._hoverElement=e}}}_onWheel(e){let t=this.getElementAtPoint({x:e.clientX,y:e.clientY});for(;t;){let i=getComputedStyle(t);if(i.overflowY==="scroll"||i.overflowY==="auto"){let r=t;r.scrollBy?r.scrollBy(e.deltaX,e.deltaY):(r.scrollLeft+=e.deltaX,r.scrollTop+=e.deltaY),e.stopPropagation();break}t=t.parentElement}}_pointerEventHandler(e,t=null){if(this._ignoreEvent===e||!this.serviceContainer||this._touchGestureHelper.multitouchEventActive)return;if(this.fillCalculationrects(),this._pointerextensions)for(let o of this._pointerextensions)o.refresh(e);let i;if(t)i=t;else if(i=this.serviceContainer.elementAtPointService.getElementAtPoint(this,{x:e.x,y:e.y}),!i)i=this._canvas;else if(this._enableSelectTextNodesOnClick){let o=this.getNormalizedEventCoordinates(e);for(let a of i.childNodes)if(a.nodeType==E.TextNode){let l=this.getNormalizedElementCoordinates(a);if(l.x<=o.x&&l.x+l.width>=o.x&&l.y<=o.y&&l.y+l.height>=o.y){i=a;break}}}if(this._activeTool){this._activeTool.pointerEventHandler(this,e,i);return}this.clickOverlay.style.cursor=this._canvas.style.cursor;let r=T.GetOrCreateDesignItem(i,i,this.serviceContainer,this.instanceServiceContainer);this.showHoverExtension(r.element,e),i&&Vc.getHost(i.parentNode)===this.overlayLayer&&(i=this.instanceServiceContainer.selectionService.primarySelection?.element??this._canvas);let n=this.serviceContainer.globalContext.tool??this.serviceContainer.designerTools.get(U.Pointer);n.pointerEventHandler(this,e,i),this._canvas.style.cursor=n.cursor}captureActiveTool(e){this._activeTool=e}releaseActiveTool(){this._activeTool=null}get activeTool(){return this.serviceContainer.globalContext.tool}fillCalculationrects(){this.containerBoundingRect=this._canvasContainer.getBoundingClientRect(),this.outerRect=this._outercanvas2.getBoundingClientRect()}removeOverlay(e){this.overlayLayer.removeOverlay(e)}zoomOntoRectangle(e,t){let i={x:e.x<t.x?e.x:t.x,y:e.y<t.y?e.y:t.y,width:Math.abs(e.x-t.x),height:Math.abs(e.y-t.y)},r=this.outerRect.width/i.width,n=this.outerRect.height/i.height,o=r>=n?n:r,a={x:i.width/2+i.x,y:i.height/2+i.y};this.zoomPoint(a,o)}zoomPoint(e,t){this.zoomFactor=t;let i={x:-e.x+this.outerRect.width/this.zoomFactor/2,y:-e.y+this.outerRect.height/this.zoomFactor/2};this.canvasOffset=i}zoomConvertEventToViewPortCoordinates(e){let t=this.containerBoundingRect.x-this.outerRect.x,i=this.containerBoundingRect.y-this.outerRect.y;return{x:(e.x+t/this.zoomFactor)*this.zoomFactor,y:(e.y+i/this.zoomFactor)*this.zoomFactor}}zoomTowardsPoint(e,t){let i=t/this.zoomFactor,r=this.zoomConvertEventToViewPortCoordinates(e),n={x:-(r.x*(i-1)+i*-this.canvasOffsetUnzoomed.x),y:-(r.y*(i-1)+i*-this.canvasOffsetUnzoomed.y)};this.zoomFactor=t,this.canvasOffsetUnzoomed=n}};customElements.define("node-projects-designer-canvas",ci);Te();Ci();ee();Qe();We();import{BaseCustomWebComponentConstructorAppend as Cm,css as Em,html as Am}from"@node-projects/base-custom-webcomponent";var ji=class extends Cm{static style=Em`
|
|
1463
1463
|
node-projects-designer-tools-buttons {
|
|
1464
1464
|
height: 100%;
|
|
1465
1465
|
width: 100%;
|
|
@@ -1584,7 +1584,7 @@ declare global {
|
|
|
1584
1584
|
right: 0;
|
|
1585
1585
|
position: absolute;
|
|
1586
1586
|
background: #f0f0f0;
|
|
1587
|
-
}`;static template=
|
|
1587
|
+
}`;static template=km`
|
|
1588
1588
|
<div id="outer">
|
|
1589
1589
|
<node-projects-plain-scrollbar id="s-hor" value="0.5" class="bottom-scroll"></node-projects-plain-scrollbar>
|
|
1590
1590
|
<node-projects-plain-scrollbar id="s-vert" value="0.5" orientation="vertical" class="right-scroll">
|
|
@@ -1603,7 +1603,7 @@ declare global {
|
|
|
1603
1603
|
<div title="snap to grid" id="alignGrid" class="toolbar-control snap-grid"></div>
|
|
1604
1604
|
<div title="snap to elements" id="alignSnap" class="toolbar-control snap-guide"></div>
|
|
1605
1605
|
</div>
|
|
1606
|
-
</div>`;constructor(e=!1){super(),this._restoreCachedInititalValues(),this._sVert=this._getDomElement("s-vert"),this._sHor=this._getDomElement("s-hor");let t=this._getDomElement("outer");this._designerCanvas=new li(e),this._designerCanvas.id="canvas",this._designerCanvas.appendChild(document.createElement("slot")),t.insertAdjacentElement("afterbegin",this._designerCanvas),this._toolbar=new ji,this._toolbar.id="tool-bar",this._sVert.insertAdjacentElement("afterend",this._toolbar),this._designerCanvas.onZoomFactorChanged.on(()=>{this._zoomInput.value=Math.round(this._designerCanvas.zoomFactor*100)+"%";let c=this.designerCanvas.canvasOffset,h=this.designerCanvas.designerOffsetWidth>this.designerCanvas.offsetWidth?this.designerCanvas.designerOffsetWidth:this.designerCanvas.offsetWidth,d=this.designerCanvas.designerOffsetHeight>this.designerCanvas.offsetHeight?this.designerCanvas.designerOffsetHeight:this.designerCanvas.offsetHeight;this._sHor.value=c.x/(-2*h)+.5,this._sVert.value=c.y/(-2*d)+.5}),this._zoomInput=this._getDomElement("zoomInput"),this._zoomInput.onkeydown=c=>{c.key=="Enter"&&(this._designerCanvas.zoomFactor=parseFloat(this._zoomInput.value)/100)},this._zoomInput.onblur=()=>{this._designerCanvas.zoomFactor=parseFloat(this._zoomInput.value)/100},this._zoomInput.onclick=this._zoomInput.select;let i=this._getDomElement("zoomIncrease");i.onclick=()=>{let c=this.designerCanvas.designerOffsetWidth>this.designerCanvas.offsetWidth?this.designerCanvas.designerOffsetWidth:this.designerCanvas.offsetWidth,h=this.designerCanvas.designerOffsetHeight>this.designerCanvas.offsetHeight?this.designerCanvas.designerOffsetHeight:this.designerCanvas.offsetHeight;this._designerCanvas.zoomFactor>.1?this._designerCanvas.zoomPoint({x:c/2,y:h/2},this._designerCanvas.zoomFactor+.1):this._designerCanvas.zoomPoint({x:c/2,y:h/2},this._designerCanvas.zoomFactor+.01)};let r=this._getDomElement("zoomDecrease");r.onclick=()=>{let c=this.designerCanvas.designerOffsetWidth>this.designerCanvas.offsetWidth?this.designerCanvas.designerOffsetWidth:this.designerCanvas.offsetWidth,h=this.designerCanvas.designerOffsetHeight>this.designerCanvas.offsetHeight?this.designerCanvas.designerOffsetHeight:this.designerCanvas.offsetHeight;this._designerCanvas.zoomFactor>.11?this._designerCanvas.zoomPoint({x:c/2,y:h/2},this._designerCanvas.zoomFactor-.1):this._designerCanvas.zoomPoint({x:c/2,y:h/2},this._designerCanvas.zoomFactor-.01),this._designerCanvas.zoomFactor<.001&&this._designerCanvas.zoomPoint({x:c/2,y:h/2},.001)};let n=this._getDomElement("zoomReset");n.onclick=()=>{this.zoomReset()};let o=this._getDomElement("zoomFit");o.onclick=()=>{this.zoomToFit()},this.addEventListener(x.Wheel,c=>this._onWheel(c));let a=this._getDomElement("alignSnap");a.onclick=()=>{this._designerCanvas.alignOnSnap=!this._designerCanvas.alignOnSnap,a.style.backgroundColor=this._designerCanvas.alignOnSnap?"deepskyblue":""},a.style.backgroundColor=this._designerCanvas.alignOnSnap?"deepskyblue":"",a.oncontextmenu=c=>{c.preventDefault()};let l=this._getDomElement("alignGrid");l.onclick=()=>{this._designerCanvas.alignOnGrid=!this._designerCanvas.alignOnGrid,l.style.backgroundColor=this._designerCanvas.alignOnGrid?"deepskyblue":""},l.style.backgroundColor=this._designerCanvas.alignOnGrid?"deepskyblue":"",l.oncontextmenu=c=>{c.preventDefault();let h=prompt("raster size",this.designerCanvas.gridSize.toString());if(h){let d=parseInt(h);d>0&&(this.designerCanvas.gridSize=d)}},this._lowertoolbar=this._getDomElement("lowertoolbar"),this._sVert.addEventListener("scrollbar-input",c=>this._onScrollbar(c)),this._sHor.addEventListener("scrollbar-input",c=>this._onScrollbar(c))}zoomReset(){this._designerCanvas.canvasOffset={x:0,y:0},this._designerCanvas.zoomFactor=1,this._sVert.value=.5,this._sHor.value=.5,this._zoomInput.value=Math.round(this._designerCanvas.zoomFactor*100)+"%"}zoomToFit(){this._designerCanvas.zoomToFit()}_onScrollbar(e){e?.detail=="incrementLarge"?e.target.value+=.25:e?.detail=="decrementLarge"?e.target.value-=.25:e?.detail=="incrementSmall"?e.target.value+=.05:e?.detail=="decrementSmall"&&(e.target.value-=.05);let t=this.designerCanvas.designerOffsetWidth>this.designerCanvas.offsetWidth?this.designerCanvas.designerOffsetWidth:this.designerCanvas.offsetWidth,i=this.designerCanvas.designerOffsetHeight>this.designerCanvas.offsetHeight?this.designerCanvas.designerOffsetHeight:this.designerCanvas.offsetHeight,r=t*(this._sHor.value-.5)*-2,n=i*(this._sVert.value-.5)*-2;this.designerCanvas.canvasOffset={x:r,y:n}}_onWheel(e){if(e.preventDefault(),e.ctrlKey){let t=this._designerCanvas.zoomFactor,i=e.deltaY<0?1:-1;t*=Math.exp(i*.2),t<.02&&(t=.02);let r=this.designerCanvas.getNormalizedEventCoordinates(e);this.designerCanvas.zoomTowardsPoint(r,t)}else e.shiftKey?(this._sHor.value+=e.deltaY/1e4,this._onScrollbar(null)):(this._sVert.value+=e.deltaY/1e4,this._onScrollbar(null),this._sHor.value+=e.deltaX/1e4,this._onScrollbar(null))}get designerWidth(){return this._designerCanvas.designerWidth}set designerWidth(e){this._designerCanvas.designerWidth=e}get designerHeight(){return this._designerCanvas.designerHeight}set designerHeight(e){this._designerCanvas.designerHeight=e}set additionalStyles(e){this._designerCanvas.additionalStyles=e}setDesignItems(e){this._designerCanvas.setDesignItems(e)}async executeCommand(e){this._designerCanvas.executeCommand(e)}canExecuteCommand(e){return this._designerCanvas.canExecuteCommand(e)}initialize(e){if(this.serviceContainer=e,this._designerCanvas.initialize(e),e.designViewConfigButtons)for(let t of e.designViewConfigButtons)for(let i of t.provideButtons(this,this._designerCanvas))this._lowertoolbar.appendChild(i);this._toolbar.initialize(this.serviceContainer,this)}getDesignerHTML(){return this._designerCanvas.rootDesignItem.childCount>0?K.ConvertToString(Array.from(this._designerCanvas.rootDesignItem.children()),!0,!0):""}async parseDesignerHTML(e,t=!1){let i=this.serviceContainer.htmlParserService;if(!e)this._designerCanvas.overlayLayer.removeAllOverlays(),km.removeAllChildnodes(this._designerCanvas.overlayLayer),this._designerCanvas.rootDesignItem.clearChildren();else{let r=await i.parse(e,this.serviceContainer,this.instanceServiceContainer,!1);t?this._designerCanvas._internalSetDesignItems(r):this._designerCanvas.setDesignItems(r)}}static wrapInDesigner(e,t){let i=new li;i.initialize(t);let r=i.serviceContainer.getLastServiceWhere("htmlParserService",n=>n.constructor==ht);return i.addDesignItems(r.createDesignItems(e,i.serviceContainer,i.instanceServiceContainer)),i}};customElements.define("node-projects-designer-view",Dt);var Hc=class extends Dt{constructor(){super()}async ready(){let e=await(await Promise.resolve().then(()=>(Js(),Lh))).default;this.initialize(e())}};customElements.define("node-projects-default-configured-designer-view",Hc);Te();Sl();xl();Al();_l();Cl();bl();Jl();Oc();Ii();wl();vl();El();Ql();We();$e();nc();wa();ll();cl();hl();za();Ma();Ba();ba();Fa();Ha();Ta();Mc();Nc();Le();X();De();J();ja();Ua();ua();fa();bc();wc();hc();Bl();ls();Ga();Wa();Pl();kl();Ka();xn();va();xa();ec();tc();lc();cc();J();Oe();ee();Oe();at();var uo=class extends N{_lastPos;_parentRect;_startPos;_circlePos;_originalPathPoint;_pathdata;_offsetSvg=10;_pathElement;_parentCoordinates;_startScrollOffset;_deltaScrollOffset;constructor(e,t,i){super(e,t,i)}extend(){this._parentRect=this.extendedItem.element.parentElement.getBoundingClientRect(),this._pathdata=this.extendedItem.node.getPathData({normalize:!1}),this._pathElement=this.extendedItem.node,this._lastPos={x:0,y:0},this._startScrollOffset=this.designerCanvas.canvasOffset,this._deltaScrollOffset||(this._deltaScrollOffset={x:0,y:0});for(let e of this._pathdata)switch(e.type){case"M":this._drawPathCircle(e.values[0],e.values[1],e,0),this._lastPos={x:e.values[0],y:e.values[1]};break;case"m":this._drawPathCircle(e.values[0]+this._lastPos.x,e.values[1]+this._lastPos.y,e,0),this._lastPos={x:e.values[0]+this._lastPos.x,y:e.values[1]+this._lastPos.y};break;case"L":this._drawPathCircle(e.values[0],e.values[1],e,0),this._lastPos={x:e.values[0],y:e.values[1]};break;case"l":this._drawPathCircle(e.values[0]+this._lastPos.x,e.values[1]+this._lastPos.y,e,0),this._lastPos={x:e.values[0]+this._lastPos.x,y:e.values[1]+this._lastPos.y};break;case"H":this._drawPathCircle(e.values[0],this._lastPos.y,e,0),this._lastPos={x:e.values[0],y:this._lastPos.y};break;case"h":this._drawPathCircle(e.values[0]+this._lastPos.x,this._lastPos.y,e,0),this._lastPos={x:e.values[0]+this._lastPos.x,y:this._lastPos.y};break;case"V":this._drawPathCircle(this._lastPos.x,e.values[0],e,0),this._lastPos={x:this._lastPos.x,y:e.values[0]};break;case"v":this._drawPathCircle(this._lastPos.x,e.values[0]+this._lastPos.y,e,0),this._lastPos={x:this._lastPos.x,y:e.values[0]+this._lastPos.y};break;case"Z":break;case"C":this._drawPathLine(this._lastPos.x,this._lastPos.y,e.values[0],e.values[1]),this._drawPathLine(e.values[4],e.values[5],e.values[2],e.values[3]),this._drawPathCircle(e.values[0],e.values[1],e,0),this._drawPathCircle(e.values[2],e.values[3],e,2),this._drawPathCircle(e.values[4],e.values[5],e,4),this._lastPos={x:e.values[4],y:e.values[5]};break;case"c":this._drawPathLine(this._lastPos.x,this._lastPos.y,e.values[0],e.values[1]),this._drawPathLine(this._lastPos.x+e.values[4],this._lastPos.y+e.values[5],e.values[2],e.values[3]),this._drawPathCircle(e.values[0],e.values[1],e,0),this._drawPathCircle(e.values[2],e.values[3],e,2),this._drawPathCircle(this._lastPos.x+e.values[4],this._lastPos.y+e.values[5],e,4),this._lastPos={x:e.values[4]+this._lastPos.x,y:e.values[5]+this._lastPos.y};break;case"S":this._drawPathCircle(e.values[0],e.values[1],e,0),this._drawPathCircle(e.values[2],e.values[3],e,2),this._drawPathLine(this._lastPos.x,this._lastPos.y,e.values[0],e.values[1]),this._drawPathLine(e.values[0],e.values[1],e.values[2],e.values[3]),this._lastPos={x:e.values[2],y:e.values[3]};break;case"s":this._drawPathCircle(e.values[0]+this._lastPos.x,e.values[1]+this._lastPos.y,e,0),this._drawPathCircle(e.values[2]+this._lastPos.x,e.values[3]+this._lastPos.y,e,2),this._drawPathLine(this._lastPos.x,this._lastPos.y,e.values[0]+this._lastPos.x,e.values[1]+this._lastPos.y),this._drawPathLine(e.values[0]+this._lastPos.x,e.values[1]+this._lastPos.y,e.values[2]+this._lastPos.x,e.values[3]+this._lastPos.y),this._lastPos={x:e.values[2]+this._lastPos.x,y:e.values[3]+this._lastPos.y};break;case"Q":this._drawPathLine(this._lastPos.x,this._lastPos.y,e.values[0],e.values[1]),this._drawPathLine(e.values[0],e.values[1],e.values[2],e.values[3]),this._drawPathCircle(e.values[0],e.values[1],e,0),this._drawPathCircle(e.values[2],e.values[3],e,2),this._lastPos={x:e.values[2],y:e.values[3]};break;case"T":this._drawPathCircle(e.values[0],e.values[1],e,0),this._lastPos={x:e.values[0],y:e.values[1]};break;case"A":this._drawPathCircle(e.values[0],e.values[1],e,0),this._drawPathCircle(e.values[5],e.values[6],e,5),this._lastPos={x:e.values[0],y:e.values[1]};break}}pointerEvent(e,t,i,r){e.stopPropagation();let n=this.designerCanvas.getNormalizedEventCoordinates(e);switch(e.type){case x.PointerDown:e.target.setPointerCapture(e.pointerId),this._startPos=n,this._circlePos={x:parseFloat(t.getAttribute("cx")),y:parseFloat(t.getAttribute("cy"))},this._originalPathPoint={x:i.values[r],y:i.values[r+1]},this._parentCoordinates=this.extendedItem.element.parentElement.getBoundingClientRect();break;case x.PointerMove:if(this._startPos&&e.buttons>0){this._deltaScrollOffset={x:this._startScrollOffset.x-this.designerCanvas.canvasOffset.x,y:this._startScrollOffset.y-this.designerCanvas.canvasOffset.y},this._lastPos={x:this._startPos.x,y:this._startPos.y};let o=n.x-this._lastPos.x+this._circlePos.x,a=n.y-this._lastPos.y+this._circlePos.y,l=o-this._circlePos.x,c=a-this._circlePos.y;e.shiftKey?Math.abs(l)>=Math.abs(c)?(i.values[r]=this._originalPathPoint.x+l,t.setAttribute("cx",(this._circlePos.x+l).toString()),i.values[r+1]=this._originalPathPoint.y,t.setAttribute("cy",this._circlePos.y.toString())):(i.values[r]=this._originalPathPoint.x,t.setAttribute("cx",this._circlePos.x.toString()),i.values[r+1]=this._originalPathPoint.y+c,t.setAttribute("cy",(this._circlePos.y+c).toString())):(i.values[r]=this._originalPathPoint.x+l,i.values[r+1]=this._originalPathPoint.y+c,i.type=="V"||i.type=="v"?(i.values[r]=this._originalPathPoint.x+c,t.setAttribute("cy",(this._circlePos.y+c).toString())):i.type=="H"||i.type=="h"?t.setAttribute("cy",(this._circlePos.x+l).toString()):(t.setAttribute("cx",(this._circlePos.x+l).toString()),t.setAttribute("cy",(this._circlePos.y+c).toString()))),this.designerCanvas.extensionManager.refreshAllExtensions([this.extendedItem],this),this.extendedItem.element.setAttribute("d",Me(this._pathdata))}break;case x.PointerUp:if(e.target.releasePointerCapture(e.pointerId),this._startPos=null,this._circlePos=null,this._lastPos=null,this.extendedItem.setAttribute("d",Me(this._pathdata)),getComputedStyle(this._pathElement.parentElement).position=="absolute"){let o=this.extendedItem.openGroup("rearrangeSvg"),a=this._pathdata;this._rearrangeSvgElement(),this._rearrangePointsFromElement(this._parentCoordinates,a),o.commit()}break}}_drawPathCircle(e,t,i,r){let n=this._drawCircle((this._parentRect.x-this.designerCanvas.containerBoundingRect.x)/this.designerCanvas.scaleFactor+e,(this._parentRect.y-this.designerCanvas.containerBoundingRect.y)/this.designerCanvas.scaleFactor+t,5/this.designerCanvas.scaleFactor,"svg-path");n.style.strokeWidth=(1/this.designerCanvas.zoomFactor).toString();let o={x:e,y:t},a=[],l=this._pathdata.indexOf(i);a.push({title:"delete point",action:()=>{this._pathdata.splice(l,1),l==0&&(this._pathdata[0].type="M"),this.extendedItem.setAttribute("d",Me(this._pathdata))}}),a.push({title:"insert point after",action:()=>{let c={type:"L",values:[i.values[0],i.values[1]]};this._pathdata.splice(l+1,0,c),this.extendedItem.setAttribute("d",Me(this._pathdata))}}),l!=0&&this._checkCircleIndex(i,o)&&a.push({title:"convert to quadratic b\xE9zier",action:()=>{let c=this._pathdata[l-1].values[0],h=this._pathdata[l-1].values[1];this._pathdata[l-1].type==="C"?(c=this._pathdata[l-1].values[4],h=this._pathdata[l-1].values[5]):this._pathdata[l-1].type==="Q"&&(c=this._pathdata[l-1].values[2],h=this._pathdata[l-1].values[3]);let d=this._pathdata[l].values[0],p=this._pathdata[l].values[1],g=(d+c)*.5,m=(p+h)*.5,f=Math.atan2(p-h,d-c)-Math.PI/2,b=50,_=g+b*Math.cos(f),C=m+b*Math.sin(f);this._pathdata[l].type="Q",this._pathdata[l].values[0]=_,this._pathdata[l].values[1]=C,this._pathdata[l].values[2]=d,this._pathdata[l].values[3]=p,this.extendedItem.setAttribute("d",Me(this._pathdata))}}),l!=0&&this._checkCircleIndex(i,o)&&a.push({title:"convert to cubic b\xE9zier",action:()=>{let c=this._pathdata[l-1].values[0],h=this._pathdata[l-1].values[1];this._pathdata[l-1].type==="C"?(c=this._pathdata[l-1].values[4],h=this._pathdata[l-1].values[5]):this._pathdata[l-1].type==="Q"&&(c=this._pathdata[l-1].values[2],h=this._pathdata[l-1].values[3]);let d=this._pathdata[l].values[0],p=this._pathdata[l].values[1],g=(d+c)*.5,m=(p+h)*.5,f=Math.atan2(p-h,d-c)-Math.PI/2,b=50,_=g+b*Math.cos(f),C=m+b*Math.sin(f);_=i.values[0]+2*(c-i.values[0])/3,C=i.values[1]+2*(h-i.values[1])/3;let I=e+2*(c-e)/3,P=t+2*(h-t)/3;this._pathdata[l].type="C",this._pathdata[l].values[0]=_,this._pathdata[l].values[1]=C,this._pathdata[l].values[2]=I,this._pathdata[l].values[3]=P,this._pathdata[l].values[4]=d,this._pathdata[l].values[5]=p,this.extendedItem.setAttribute("d",Me(this._pathdata))}}),n.addEventListener(x.PointerDown,c=>this.pointerEvent(c,n,i,r)),n.addEventListener(x.PointerMove,c=>this.pointerEvent(c,n,i,r)),n.addEventListener(x.PointerUp,c=>this.pointerEvent(c,n,i,r)),n.addEventListener(x.ContextMenu,c=>{c.preventDefault(),he.show(a,c)})}_drawPathLine(e,t,i,r){this._drawLine((this._parentRect.x-this.designerCanvas.containerBoundingRect.x)/this.designerCanvas.scaleFactor+e,(this._parentRect.y-this.designerCanvas.containerBoundingRect.y)/this.designerCanvas.scaleFactor+t,(this._parentRect.x-this.designerCanvas.containerBoundingRect.x)/this.designerCanvas.scaleFactor+i,(this._parentRect.y-this.designerCanvas.containerBoundingRect.y)/this.designerCanvas.scaleFactor+r,"svg-path-line")}_checkCircleIndex(e,t){switch(e.type){case"M":case"L":if(e.values[0]==t.x&&e.values[1]==t.y)return!0;break;case"Q":if(e.values[2]==t.x&&e.values[3]==t.y)return!0;break;case"C":if(e.values[4]==t.x&&e.values[5]==t.y)return!0;break}return!1}_rearrangeSvgElement(){let e=this.extendedItem.element.getBoundingClientRect(),t=(e.x-this.designerCanvas.containerBoundingRect.x)/this.designerCanvas.scaleFactor-this._offsetSvg,i=(e.y-this.designerCanvas.containerBoundingRect.y)/this.designerCanvas.scaleFactor-this._offsetSvg,r=e.height/this.designerCanvas.scaleFactor+2*this._offsetSvg,n=e.width/this.designerCanvas.scaleFactor+2*this._offsetSvg;this.extendedItem.element.parentElement.style.setProperty("left",t.toString()+"px"),this.extendedItem.element.parentElement.style.setProperty("top",i.toString()+"px"),this.extendedItem.element.parentElement.style.setProperty("height",Math.round(r).toString()+"px"),this.extendedItem.element.parentElement.style.setProperty("width",Math.round(n).toString()+"px")}_rearrangePointsFromElement(e,t){let i=this.extendedItem.element.parentElement.getBoundingClientRect(),r=(e.x-i.x)/this.designerCanvas.scaleFactor-this._deltaScrollOffset.x,n=(e.y-i.y)/this.designerCanvas.scaleFactor-this._deltaScrollOffset.y;for(let o=0;o<t.length;o++)t[o].values[0]=t[o].values[0]+r,t[o].values[1]=t[o].values[1]+n;this.extendedItem.element.setAttribute("d",Me(this._pathdata))}refresh(){this._removeAllOverlays(),this.extend()}dispose(){this._removeAllOverlays()}};ac();var nd=class{shouldExtend(e,t,i){return i.node instanceof SVGPathElement?Ps(i.node):!1}getExtension(e,t,i){return new uo(e,t,i)}};ga();ya();la();ca();Pa();ka();Ia();Da();Sa();Ca();pa();ma();Fl();zl();Pc();kc();fc();gc();mc();uc();Xl();Zl();ol();ki();Sc();Cc();vc();xc();dc();pc();$l();Gl();Hl();al();bt();sl();mr();_c();sc();Dc();dn();el();yc();Oa();Xa();Tc();Ra();ul();ml();Gn();yl();Na();gl();fl();Yl();Ec();Ic();aa();var fo=class extends Gt{extendedItem;constructor(e,t){super(e,t)}};X();import{css as Tm}from"@node-projects/base-custom-webcomponent";var go=class extends fo{_lineOffset=5;_lineLength=10;_circle;_line1;_line2;_line3;_line4;refresh(e){let t=this.designerCanvas.getNormalizedEventCoordinates(e);this._circle=this._drawCircle(t.x,t.y,1,"svg-cursor-line",this._circle,k.Foreground),this._line1=this._drawLine(t.x,t.y-this._lineOffset,t.x,t.y-this._lineOffset-this._lineLength,"svg-cursor-line",this._line1,k.Foreground),this._line2=this._drawLine(t.x,t.y+this._lineOffset,t.x,t.y+this._lineOffset+this._lineLength,"svg-cursor-line",this._line2,k.Foreground),this._line3=this._drawLine(t.x-this._lineOffset,t.y,t.x-this._lineOffset-this._lineLength,t.y,"svg-cursor-line",this._line3,k.Foreground),this._line4=this._drawLine(t.x+this._lineOffset,t.y,t.x+this._lineOffset+this._lineLength,t.y,"svg-cursor-line",this._line4,k.Foreground)}dispose(){super._removeAllOverlays()}style=Tm`
|
|
1606
|
+
</div>`;constructor(e=!1){super(),this._restoreCachedInititalValues(),this._sVert=this._getDomElement("s-vert"),this._sHor=this._getDomElement("s-hor");let t=this._getDomElement("outer");this._designerCanvas=new ci(e),this._designerCanvas.id="canvas",this._designerCanvas.appendChild(document.createElement("slot")),t.insertAdjacentElement("afterbegin",this._designerCanvas),this._toolbar=new ji,this._toolbar.id="tool-bar",this._sVert.insertAdjacentElement("afterend",this._toolbar),this._designerCanvas.onZoomFactorChanged.on(()=>{this._zoomInput.value=Math.round(this._designerCanvas.zoomFactor*100)+"%";let c=this.designerCanvas.canvasOffset,h=this.designerCanvas.designerOffsetWidth>this.designerCanvas.offsetWidth?this.designerCanvas.designerOffsetWidth:this.designerCanvas.offsetWidth,d=this.designerCanvas.designerOffsetHeight>this.designerCanvas.offsetHeight?this.designerCanvas.designerOffsetHeight:this.designerCanvas.offsetHeight;this._sHor.value=c.x/(-2*h)+.5,this._sVert.value=c.y/(-2*d)+.5}),this._zoomInput=this._getDomElement("zoomInput"),this._zoomInput.onkeydown=c=>{c.key=="Enter"&&(this._designerCanvas.zoomFactor=parseFloat(this._zoomInput.value)/100)},this._zoomInput.onblur=()=>{this._designerCanvas.zoomFactor=parseFloat(this._zoomInput.value)/100},this._zoomInput.onclick=this._zoomInput.select;let i=this._getDomElement("zoomIncrease");i.onclick=()=>{let c=this.designerCanvas.designerOffsetWidth>this.designerCanvas.offsetWidth?this.designerCanvas.designerOffsetWidth:this.designerCanvas.offsetWidth,h=this.designerCanvas.designerOffsetHeight>this.designerCanvas.offsetHeight?this.designerCanvas.designerOffsetHeight:this.designerCanvas.offsetHeight;this._designerCanvas.zoomFactor>.1?this._designerCanvas.zoomPoint({x:c/2,y:h/2},this._designerCanvas.zoomFactor+.1):this._designerCanvas.zoomPoint({x:c/2,y:h/2},this._designerCanvas.zoomFactor+.01)};let r=this._getDomElement("zoomDecrease");r.onclick=()=>{let c=this.designerCanvas.designerOffsetWidth>this.designerCanvas.offsetWidth?this.designerCanvas.designerOffsetWidth:this.designerCanvas.offsetWidth,h=this.designerCanvas.designerOffsetHeight>this.designerCanvas.offsetHeight?this.designerCanvas.designerOffsetHeight:this.designerCanvas.offsetHeight;this._designerCanvas.zoomFactor>.11?this._designerCanvas.zoomPoint({x:c/2,y:h/2},this._designerCanvas.zoomFactor-.1):this._designerCanvas.zoomPoint({x:c/2,y:h/2},this._designerCanvas.zoomFactor-.01),this._designerCanvas.zoomFactor<.001&&this._designerCanvas.zoomPoint({x:c/2,y:h/2},.001)};let n=this._getDomElement("zoomReset");n.onclick=()=>{this.zoomReset()};let o=this._getDomElement("zoomFit");o.onclick=()=>{this.zoomToFit()},this.addEventListener(x.Wheel,c=>this._onWheel(c));let a=this._getDomElement("alignSnap");a.onclick=()=>{this._designerCanvas.alignOnSnap=!this._designerCanvas.alignOnSnap,a.style.backgroundColor=this._designerCanvas.alignOnSnap?"deepskyblue":""},a.style.backgroundColor=this._designerCanvas.alignOnSnap?"deepskyblue":"",a.oncontextmenu=c=>{c.preventDefault()};let l=this._getDomElement("alignGrid");l.onclick=()=>{this._designerCanvas.alignOnGrid=!this._designerCanvas.alignOnGrid,l.style.backgroundColor=this._designerCanvas.alignOnGrid?"deepskyblue":""},l.style.backgroundColor=this._designerCanvas.alignOnGrid?"deepskyblue":"",l.oncontextmenu=c=>{c.preventDefault();let h=prompt("raster size",this.designerCanvas.gridSize.toString());if(h){let d=parseInt(h);d>0&&(this.designerCanvas.gridSize=d)}},this._lowertoolbar=this._getDomElement("lowertoolbar"),this._sVert.addEventListener("scrollbar-input",c=>this._onScrollbar(c)),this._sHor.addEventListener("scrollbar-input",c=>this._onScrollbar(c))}zoomReset(){this._designerCanvas.canvasOffset={x:0,y:0},this._designerCanvas.zoomFactor=1,this._sVert.value=.5,this._sHor.value=.5,this._zoomInput.value=Math.round(this._designerCanvas.zoomFactor*100)+"%"}zoomToFit(){this._designerCanvas.zoomToFit()}_onScrollbar(e){e?.detail=="incrementLarge"?e.target.value+=.25:e?.detail=="decrementLarge"?e.target.value-=.25:e?.detail=="incrementSmall"?e.target.value+=.05:e?.detail=="decrementSmall"&&(e.target.value-=.05);let t=this.designerCanvas.designerOffsetWidth>this.designerCanvas.offsetWidth?this.designerCanvas.designerOffsetWidth:this.designerCanvas.offsetWidth,i=this.designerCanvas.designerOffsetHeight>this.designerCanvas.offsetHeight?this.designerCanvas.designerOffsetHeight:this.designerCanvas.offsetHeight,r=t*(this._sHor.value-.5)*-2,n=i*(this._sVert.value-.5)*-2;this.designerCanvas.canvasOffset={x:r,y:n}}_onWheel(e){if(e.preventDefault(),e.ctrlKey){let t=this._designerCanvas.zoomFactor,i=e.deltaY<0?1:-1;t*=Math.exp(i*.2),t<.02&&(t=.02);let r=this.designerCanvas.getNormalizedEventCoordinates(e);this.designerCanvas.zoomTowardsPoint(r,t)}else e.shiftKey?(this._sHor.value+=e.deltaY/1e4,this._onScrollbar(null)):(this._sVert.value+=e.deltaY/1e4,this._onScrollbar(null),this._sHor.value+=e.deltaX/1e4,this._onScrollbar(null))}get designerWidth(){return this._designerCanvas.designerWidth}set designerWidth(e){this._designerCanvas.designerWidth=e}get designerHeight(){return this._designerCanvas.designerHeight}set designerHeight(e){this._designerCanvas.designerHeight=e}set additionalStyles(e){this._designerCanvas.additionalStyles=e}setDesignItems(e){this._designerCanvas.setDesignItems(e)}async executeCommand(e){this._designerCanvas.executeCommand(e)}canExecuteCommand(e){return this._designerCanvas.canExecuteCommand(e)}initialize(e){if(this.serviceContainer=e,this._designerCanvas.initialize(e),e.designViewConfigButtons)for(let t of e.designViewConfigButtons)for(let i of t.provideButtons(this,this._designerCanvas))this._lowertoolbar.appendChild(i);this._toolbar.initialize(this.serviceContainer,this)}getDesignerHTML(){return this._designerCanvas.rootDesignItem.childCount>0?K.ConvertToString(Array.from(this._designerCanvas.rootDesignItem.children()),!0,!0):""}async parseDesignerHTML(e,t=!1){let i=this.serviceContainer.htmlParserService;if(!e)this._designerCanvas.overlayLayer.removeAllOverlays(),Im.removeAllChildnodes(this._designerCanvas.overlayLayer),this._designerCanvas.rootDesignItem.clearChildren();else{let r=await i.parse(e,this.serviceContainer,this.instanceServiceContainer,!1);t?this._designerCanvas._internalSetDesignItems(r):this._designerCanvas.setDesignItems(r)}}static wrapInDesigner(e,t){let i=new ci;i.initialize(t);let r=i.serviceContainer.getLastServiceWhere("htmlParserService",n=>n.constructor==ht);return i.addDesignItems(r.createDesignItems(e,i.serviceContainer,i.instanceServiceContainer)),i}};customElements.define("node-projects-designer-view",Dt);var Hc=class extends Dt{constructor(){super()}async ready(){let e=await(await Promise.resolve().then(()=>(Js(),Lh))).default;this.initialize(e())}};customElements.define("node-projects-default-configured-designer-view",Hc);Te();Sl();xl();Al();_l();Cl();bl();Jl();Oc();ki();wl();vl();El();Ql();We();$e();nc();wa();ll();cl();hl();za();Ma();Ba();ba();Fa();Ha();Ta();Mc();Nc();Le();X();De();J();ja();Ua();ua();fa();bc();wc();hc();Bl();ls();Ga();Wa();Pl();Il();Ka();xn();va();xa();ec();tc();lc();cc();J();Oe();ee();Oe();at();var uo=class extends N{_lastPos;_parentRect;_startPos;_circlePos;_originalPathPoint;_pathdata;_offsetSvg=10;_pathElement;_parentCoordinates;_startScrollOffset;_deltaScrollOffset;constructor(e,t,i){super(e,t,i)}extend(){this._parentRect=this.extendedItem.element.parentElement.getBoundingClientRect(),this._pathdata=this.extendedItem.node.getPathData({normalize:!1}),this._pathElement=this.extendedItem.node,this._lastPos={x:0,y:0},this._startScrollOffset=this.designerCanvas.canvasOffset,this._deltaScrollOffset||(this._deltaScrollOffset={x:0,y:0});for(let e of this._pathdata)switch(e.type){case"M":this._drawPathCircle(e.values[0],e.values[1],e,0),this._lastPos={x:e.values[0],y:e.values[1]};break;case"m":this._drawPathCircle(e.values[0]+this._lastPos.x,e.values[1]+this._lastPos.y,e,0),this._lastPos={x:e.values[0]+this._lastPos.x,y:e.values[1]+this._lastPos.y};break;case"L":this._drawPathCircle(e.values[0],e.values[1],e,0),this._lastPos={x:e.values[0],y:e.values[1]};break;case"l":this._drawPathCircle(e.values[0]+this._lastPos.x,e.values[1]+this._lastPos.y,e,0),this._lastPos={x:e.values[0]+this._lastPos.x,y:e.values[1]+this._lastPos.y};break;case"H":this._drawPathCircle(e.values[0],this._lastPos.y,e,0),this._lastPos={x:e.values[0],y:this._lastPos.y};break;case"h":this._drawPathCircle(e.values[0]+this._lastPos.x,this._lastPos.y,e,0),this._lastPos={x:e.values[0]+this._lastPos.x,y:this._lastPos.y};break;case"V":this._drawPathCircle(this._lastPos.x,e.values[0],e,0),this._lastPos={x:this._lastPos.x,y:e.values[0]};break;case"v":this._drawPathCircle(this._lastPos.x,e.values[0]+this._lastPos.y,e,0),this._lastPos={x:this._lastPos.x,y:e.values[0]+this._lastPos.y};break;case"Z":break;case"C":this._drawPathLine(this._lastPos.x,this._lastPos.y,e.values[0],e.values[1]),this._drawPathLine(e.values[4],e.values[5],e.values[2],e.values[3]),this._drawPathCircle(e.values[0],e.values[1],e,0),this._drawPathCircle(e.values[2],e.values[3],e,2),this._drawPathCircle(e.values[4],e.values[5],e,4),this._lastPos={x:e.values[4],y:e.values[5]};break;case"c":this._drawPathLine(this._lastPos.x,this._lastPos.y,e.values[0],e.values[1]),this._drawPathLine(this._lastPos.x+e.values[4],this._lastPos.y+e.values[5],e.values[2],e.values[3]),this._drawPathCircle(e.values[0],e.values[1],e,0),this._drawPathCircle(e.values[2],e.values[3],e,2),this._drawPathCircle(this._lastPos.x+e.values[4],this._lastPos.y+e.values[5],e,4),this._lastPos={x:e.values[4]+this._lastPos.x,y:e.values[5]+this._lastPos.y};break;case"S":this._drawPathCircle(e.values[0],e.values[1],e,0),this._drawPathCircle(e.values[2],e.values[3],e,2),this._drawPathLine(this._lastPos.x,this._lastPos.y,e.values[0],e.values[1]),this._drawPathLine(e.values[0],e.values[1],e.values[2],e.values[3]),this._lastPos={x:e.values[2],y:e.values[3]};break;case"s":this._drawPathCircle(e.values[0]+this._lastPos.x,e.values[1]+this._lastPos.y,e,0),this._drawPathCircle(e.values[2]+this._lastPos.x,e.values[3]+this._lastPos.y,e,2),this._drawPathLine(this._lastPos.x,this._lastPos.y,e.values[0]+this._lastPos.x,e.values[1]+this._lastPos.y),this._drawPathLine(e.values[0]+this._lastPos.x,e.values[1]+this._lastPos.y,e.values[2]+this._lastPos.x,e.values[3]+this._lastPos.y),this._lastPos={x:e.values[2]+this._lastPos.x,y:e.values[3]+this._lastPos.y};break;case"Q":this._drawPathLine(this._lastPos.x,this._lastPos.y,e.values[0],e.values[1]),this._drawPathLine(e.values[0],e.values[1],e.values[2],e.values[3]),this._drawPathCircle(e.values[0],e.values[1],e,0),this._drawPathCircle(e.values[2],e.values[3],e,2),this._lastPos={x:e.values[2],y:e.values[3]};break;case"T":this._drawPathCircle(e.values[0],e.values[1],e,0),this._lastPos={x:e.values[0],y:e.values[1]};break;case"A":this._drawPathCircle(e.values[0],e.values[1],e,0),this._drawPathCircle(e.values[5],e.values[6],e,5),this._lastPos={x:e.values[0],y:e.values[1]};break}}pointerEvent(e,t,i,r){e.stopPropagation();let n=this.designerCanvas.getNormalizedEventCoordinates(e);switch(e.type){case x.PointerDown:e.target.setPointerCapture(e.pointerId),this._startPos=n,this._circlePos={x:parseFloat(t.getAttribute("cx")),y:parseFloat(t.getAttribute("cy"))},this._originalPathPoint={x:i.values[r],y:i.values[r+1]},this._parentCoordinates=this.extendedItem.element.parentElement.getBoundingClientRect();break;case x.PointerMove:if(this._startPos&&e.buttons>0){this._deltaScrollOffset={x:this._startScrollOffset.x-this.designerCanvas.canvasOffset.x,y:this._startScrollOffset.y-this.designerCanvas.canvasOffset.y},this._lastPos={x:this._startPos.x,y:this._startPos.y};let o=n.x-this._lastPos.x+this._circlePos.x,a=n.y-this._lastPos.y+this._circlePos.y,l=o-this._circlePos.x,c=a-this._circlePos.y;e.shiftKey?Math.abs(l)>=Math.abs(c)?(i.values[r]=this._originalPathPoint.x+l,t.setAttribute("cx",(this._circlePos.x+l).toString()),i.values[r+1]=this._originalPathPoint.y,t.setAttribute("cy",this._circlePos.y.toString())):(i.values[r]=this._originalPathPoint.x,t.setAttribute("cx",this._circlePos.x.toString()),i.values[r+1]=this._originalPathPoint.y+c,t.setAttribute("cy",(this._circlePos.y+c).toString())):(i.values[r]=this._originalPathPoint.x+l,i.values[r+1]=this._originalPathPoint.y+c,i.type=="V"||i.type=="v"?(i.values[r]=this._originalPathPoint.x+c,t.setAttribute("cy",(this._circlePos.y+c).toString())):i.type=="H"||i.type=="h"?t.setAttribute("cy",(this._circlePos.x+l).toString()):(t.setAttribute("cx",(this._circlePos.x+l).toString()),t.setAttribute("cy",(this._circlePos.y+c).toString()))),this.designerCanvas.extensionManager.refreshAllExtensions([this.extendedItem],this),this.extendedItem.element.setAttribute("d",Me(this._pathdata))}break;case x.PointerUp:if(e.target.releasePointerCapture(e.pointerId),this._startPos=null,this._circlePos=null,this._lastPos=null,this.extendedItem.setAttribute("d",Me(this._pathdata)),getComputedStyle(this._pathElement.parentElement).position=="absolute"){let o=this.extendedItem.openGroup("rearrangeSvg"),a=this._pathdata;this._rearrangeSvgElement(),this._rearrangePointsFromElement(this._parentCoordinates,a),o.commit()}break}}_drawPathCircle(e,t,i,r){let n=this._drawCircle((this._parentRect.x-this.designerCanvas.containerBoundingRect.x)/this.designerCanvas.scaleFactor+e,(this._parentRect.y-this.designerCanvas.containerBoundingRect.y)/this.designerCanvas.scaleFactor+t,5/this.designerCanvas.scaleFactor,"svg-path");n.style.strokeWidth=(1/this.designerCanvas.zoomFactor).toString();let o={x:e,y:t},a=[],l=this._pathdata.indexOf(i);a.push({title:"delete point",action:()=>{this._pathdata.splice(l,1),l==0&&(this._pathdata[0].type="M"),this.extendedItem.setAttribute("d",Me(this._pathdata))}}),a.push({title:"insert point after",action:()=>{let c={type:"L",values:[i.values[0],i.values[1]]};this._pathdata.splice(l+1,0,c),this.extendedItem.setAttribute("d",Me(this._pathdata))}}),l!=0&&this._checkCircleIndex(i,o)&&a.push({title:"convert to quadratic b\xE9zier",action:()=>{let c=this._pathdata[l-1].values[0],h=this._pathdata[l-1].values[1];this._pathdata[l-1].type==="C"?(c=this._pathdata[l-1].values[4],h=this._pathdata[l-1].values[5]):this._pathdata[l-1].type==="Q"&&(c=this._pathdata[l-1].values[2],h=this._pathdata[l-1].values[3]);let d=this._pathdata[l].values[0],p=this._pathdata[l].values[1],g=(d+c)*.5,m=(p+h)*.5,f=Math.atan2(p-h,d-c)-Math.PI/2,b=50,_=g+b*Math.cos(f),C=m+b*Math.sin(f);this._pathdata[l].type="Q",this._pathdata[l].values[0]=_,this._pathdata[l].values[1]=C,this._pathdata[l].values[2]=d,this._pathdata[l].values[3]=p,this.extendedItem.setAttribute("d",Me(this._pathdata))}}),l!=0&&this._checkCircleIndex(i,o)&&a.push({title:"convert to cubic b\xE9zier",action:()=>{let c=this._pathdata[l-1].values[0],h=this._pathdata[l-1].values[1];this._pathdata[l-1].type==="C"?(c=this._pathdata[l-1].values[4],h=this._pathdata[l-1].values[5]):this._pathdata[l-1].type==="Q"&&(c=this._pathdata[l-1].values[2],h=this._pathdata[l-1].values[3]);let d=this._pathdata[l].values[0],p=this._pathdata[l].values[1],g=(d+c)*.5,m=(p+h)*.5,f=Math.atan2(p-h,d-c)-Math.PI/2,b=50,_=g+b*Math.cos(f),C=m+b*Math.sin(f);_=i.values[0]+2*(c-i.values[0])/3,C=i.values[1]+2*(h-i.values[1])/3;let k=e+2*(c-e)/3,P=t+2*(h-t)/3;this._pathdata[l].type="C",this._pathdata[l].values[0]=_,this._pathdata[l].values[1]=C,this._pathdata[l].values[2]=k,this._pathdata[l].values[3]=P,this._pathdata[l].values[4]=d,this._pathdata[l].values[5]=p,this.extendedItem.setAttribute("d",Me(this._pathdata))}}),n.addEventListener(x.PointerDown,c=>this.pointerEvent(c,n,i,r)),n.addEventListener(x.PointerMove,c=>this.pointerEvent(c,n,i,r)),n.addEventListener(x.PointerUp,c=>this.pointerEvent(c,n,i,r)),n.addEventListener(x.ContextMenu,c=>{c.preventDefault(),he.show(a,c)})}_drawPathLine(e,t,i,r){this._drawLine((this._parentRect.x-this.designerCanvas.containerBoundingRect.x)/this.designerCanvas.scaleFactor+e,(this._parentRect.y-this.designerCanvas.containerBoundingRect.y)/this.designerCanvas.scaleFactor+t,(this._parentRect.x-this.designerCanvas.containerBoundingRect.x)/this.designerCanvas.scaleFactor+i,(this._parentRect.y-this.designerCanvas.containerBoundingRect.y)/this.designerCanvas.scaleFactor+r,"svg-path-line")}_checkCircleIndex(e,t){switch(e.type){case"M":case"L":if(e.values[0]==t.x&&e.values[1]==t.y)return!0;break;case"Q":if(e.values[2]==t.x&&e.values[3]==t.y)return!0;break;case"C":if(e.values[4]==t.x&&e.values[5]==t.y)return!0;break}return!1}_rearrangeSvgElement(){let e=this.extendedItem.element.getBoundingClientRect(),t=(e.x-this.designerCanvas.containerBoundingRect.x)/this.designerCanvas.scaleFactor-this._offsetSvg,i=(e.y-this.designerCanvas.containerBoundingRect.y)/this.designerCanvas.scaleFactor-this._offsetSvg,r=e.height/this.designerCanvas.scaleFactor+2*this._offsetSvg,n=e.width/this.designerCanvas.scaleFactor+2*this._offsetSvg;this.extendedItem.element.parentElement.style.setProperty("left",t.toString()+"px"),this.extendedItem.element.parentElement.style.setProperty("top",i.toString()+"px"),this.extendedItem.element.parentElement.style.setProperty("height",Math.round(r).toString()+"px"),this.extendedItem.element.parentElement.style.setProperty("width",Math.round(n).toString()+"px")}_rearrangePointsFromElement(e,t){let i=this.extendedItem.element.parentElement.getBoundingClientRect(),r=(e.x-i.x)/this.designerCanvas.scaleFactor-this._deltaScrollOffset.x,n=(e.y-i.y)/this.designerCanvas.scaleFactor-this._deltaScrollOffset.y;for(let o=0;o<t.length;o++)t[o].values[0]=t[o].values[0]+r,t[o].values[1]=t[o].values[1]+n;this.extendedItem.element.setAttribute("d",Me(this._pathdata))}refresh(){this._removeAllOverlays(),this.extend()}dispose(){this._removeAllOverlays()}};ac();var nd=class{shouldExtend(e,t,i){return i.node instanceof SVGPathElement?Ps(i.node):!1}getExtension(e,t,i){return new uo(e,t,i)}};ga();ya();la();ca();Pa();Ia();ka();Da();Sa();Ca();pa();ma();Fl();zl();Pc();Ic();fc();gc();mc();uc();Xl();Zl();ol();Ii();Sc();Cc();vc();xc();dc();pc();$l();Gl();Hl();al();bt();sl();mr();_c();sc();Dc();dn();el();yc();Oa();Xa();Tc();Ra();ul();ml();Gn();yl();Na();gl();fl();Yl();Ec();kc();aa();var fo=class extends Wt{extendedItem;constructor(e,t){super(e,t)}};X();import{css as Tm}from"@node-projects/base-custom-webcomponent";var go=class extends fo{_lineOffset=5;_lineLength=10;_circle;_line1;_line2;_line3;_line4;refresh(e){let t=this.designerCanvas.getNormalizedEventCoordinates(e);this._circle=this._drawCircle(t.x,t.y,1,"svg-cursor-line",this._circle,I.Foreground),this._line1=this._drawLine(t.x,t.y-this._lineOffset,t.x,t.y-this._lineOffset-this._lineLength,"svg-cursor-line",this._line1,I.Foreground),this._line2=this._drawLine(t.x,t.y+this._lineOffset,t.x,t.y+this._lineOffset+this._lineLength,"svg-cursor-line",this._line2,I.Foreground),this._line3=this._drawLine(t.x-this._lineOffset,t.y,t.x-this._lineOffset-this._lineLength,t.y,"svg-cursor-line",this._line3,I.Foreground),this._line4=this._drawLine(t.x+this._lineOffset,t.y,t.x+this._lineOffset+this._lineLength,t.y,"svg-cursor-line",this._line4,I.Foreground)}dispose(){super._removeAllOverlays()}style=Tm`
|
|
1607
1607
|
.svg-cursor-line { stroke: black; pointer-events: none }
|
|
1608
1608
|
`};import{css as Mm}from"@node-projects/base-custom-webcomponent";var sd=class{getExtension(e){return new go(e.extensionManager,e)}style=Mm`
|
|
1609
1609
|
.svg-cursor-line { stroke: black; pointer-events: none }
|
|
@@ -1901,5 +1901,5 @@ declare global {
|
|
|
1901
1901
|
height: 100%;
|
|
1902
1902
|
overflow: hidden;
|
|
1903
1903
|
}
|
|
1904
|
-
`}constructor(e,t,i=!1){super(),this.refreshInSplitViewDebounced=Qm(this.refreshInSplitView,200),this._serviceContainer=e,t!=null&&(this._content=t);let r=document.createElement("div");this._tabControl=new Ye,r.appendChild(this._tabControl),this.designerView=new Dt(i),this.designerView.setAttribute("exportparts","canvas"),this.designerView.slot="top",this._designerDiv=document.createElement("div"),this._tabControl.appendChild(this._designerDiv),this._designerDiv.title="Designer",this._designerDiv.appendChild(this.designerView),this.designerView.initialize(this._serviceContainer),this.designerView.instanceServiceContainer.documentContainer=this,this.designerView.instanceServiceContainer.selectionService.onSelectionChanged.on(n=>this.designerSelectionChanged(n)),this.designerView.designerCanvas.onContentChanged.on(()=>this.designerContentChanged()),this.codeView=new e.config.codeViewWidget,this.codeView.slot="bottom",this.codeView.style.position="relative",this._codeDiv=document.createElement("div"),this._tabControl.appendChild(this._codeDiv),this._codeDiv.title="Code",this._codeDiv.style.position="relative",this._codeDiv.appendChild(this.codeView),this.codeView.onTextChanged.on(n=>{this._disableChangeNotificationDesigner||(this._tabControl.selectedIndex===z.code||this._tabControl.selectedIndex===z.split)&&(this._disableChangeNotificationEditor=!0,this._content=n,this.refreshInSplitViewDebounced())}),this._splitDiv=new Ki,this._splitDiv.style.height="100%",this._splitDiv.title="Split",this._tabControl.appendChild(this._splitDiv),e.config.demoViewWidget&&(this.demoView=new e.config.demoViewWidget,this.demoView.title="Preview",this._tabControl.appendChild(this.demoView)),queueMicrotask(()=>{this.shadowRoot.appendChild(r),this._tabControl.selectedIndex=z.designer})}async refreshInSplitView(){try{await this.updateDesignerHtml()}catch(e){console.error(e)}this._disableChangeNotificationEditor=!1}get currentView(){return this._tabControl.selectedIndex==z.designer?"designer":this._tabControl.selectedIndex==z.split?"split":this._tabControl.selectedIndex==z.code?"code":this._tabControl.selectedIndex==z.preview?"preview":null}set currentView(e){e=="designer"&&(this._tabControl.selectedIndex=z.designer),e=="split"&&(this._tabControl.selectedIndex=z.split),e=="code"&&(this._tabControl.selectedIndex=z.code),e=="preview"&&(this._tabControl.selectedIndex=z.preview)}designerSelectionChanged(e){if(this._tabControl.selectedIndex===z.split){let t=this.instanceServiceContainer.selectionService.primarySelection;t&&this.designerView.instanceServiceContainer.designItemDocumentPositionService&&(this._selectionPosition=this.designerView.instanceServiceContainer.designItemDocumentPositionService.getPosition(t),this._selectionPosition&&this.codeView.setSelection(this._selectionPosition),this._selectionPosition=null)}}designerContentChanged(){if(this.onContentChanged.emit({source:this._contentChangeSource}),!this._disableChangeNotificationEditor){if(this._disableChangeNotificationDesigner=!0,this._tabControl.selectedIndex===z.code||this._tabControl.selectedIndex===z.split){let e=this.instanceServiceContainer.selectionService.primarySelection;this._content=this.designerView.getDesignerHTML(),this.codeView.update(this._content,this.designerView.instanceServiceContainer),e&&this.designerView.instanceServiceContainer.designItemDocumentPositionService&&(this._selectionPosition=this.designerView.instanceServiceContainer.designItemDocumentPositionService.getPosition(e),this._selectionPosition&&this.codeView.setSelection(this._selectionPosition),this._selectionPosition=null)}this._disableChangeNotificationDesigner=!1}}dispose(){this.codeView.dispose(),this.demoView.dispose()}executeCommand(e){this._tabControl.selectedIndex===z.designer||this._tabControl.selectedIndex===z.split?this.designerView.executeCommand(e):this._tabControl.selectedIndex===z.code?this.codeView.executeCommand(e):this._tabControl.selectedIndex===z.preview&&this.demoView.executeCommand(e)}canExecuteCommand(e){if(this._tabControl.selectedIndex===z.designer||this._tabControl.selectedIndex===z.split){if(this.designerView?.canExecuteCommand)return this.designerView.canExecuteCommand(e)}else if(this._tabControl.selectedIndex===z.code){if(this.codeView?.canExecuteCommand)return this.codeView.canExecuteCommand(e)}else if(this._tabControl.selectedIndex===z.preview&&this.demoView?.canExecuteCommand)return this.demoView.canExecuteCommand(e);return!1}async setContentAsync(e){this._content=e,this._tabControl&&(this._tabControl.selectedIndex===z.designer?await this.updateDesignerHtml():this._tabControl.selectedIndex===z.code?this.codeView.update(this._content,this.designerView.instanceServiceContainer):this._tabControl.selectedIndex===z.split||this._tabControl.selectedIndex===z.preview&&this.demoView.display(this._serviceContainer,this.designerView.instanceServiceContainer,this._content,this.additionalStyleString))}set content(e){this.setContentAsync(e)}get content(){return this._tabControl?(this._tabControl.selectedIndex===z.designer?this._content=this.designerView.getDesignerHTML():this._tabControl.selectedIndex===z.code&&(this._content=this.codeView.getText()),this._content):null}ready(){this._tabControl.onSelectedTabChanged.on(e=>{if(e.oldIndex===z.designer){let t=this.instanceServiceContainer.selectionService.primarySelection;this._content=this.designerView.getDesignerHTML(),this.designerView.instanceServiceContainer.designItemDocumentPositionService&&(this._selectionPosition=this.designerView.instanceServiceContainer.designItemDocumentPositionService.getPosition(t))}else e.oldIndex===z.code?this._content=this.codeView.getText():e.oldIndex===z.split?(this._designerDiv.appendChild(this.designerView),this._codeDiv.appendChild(this.codeView)):e.oldIndex===z.preview&&this.demoView?.stopDisplay&&this.demoView.stopDisplay();(e.newIndex===z.designer||e.newIndex===z.split)&&this.updateDesignerHtml(),(e.newIndex===z.code||e.newIndex===z.split)&&(this.codeView.update(this._content,this.designerView.instanceServiceContainer),this._selectionPosition&&(this.codeView.setSelection(this._selectionPosition),lt(20).then(t=>{this._selectionPosition&&this.codeView.setSelection(this._selectionPosition),this._selectionPosition=null})),e.changedViaClick&&this.codeView.focusEditor()),e.newIndex===z.split&&(this._splitDiv.appendChild(this.designerView),this._splitDiv.appendChild(this.codeView)),e.newIndex===z.preview&&this.demoView.display(this._serviceContainer,this.designerView.instanceServiceContainer,this._content,this.additionalStyleString),this._content&&(this._firstLoad=!1),this.onTabChanged.emit({oldTab:z[e.oldIndex],newTab:z[e.newIndex]})}),this._content&&(this.content=this._content,this._firstLoad=!1)}async updateDesignerHtml(){if(this._firstLoad)return this.designerView.parseDesignerHTML(this._content,this._firstLoad);if(this.designerView.getDesignerHTML()!=this._content){this._contentChangeSource="code",await this.designerView.parseDesignerHTML(this._content,this._firstLoad),this._contentChangeSource="designer";return}else this.instanceServiceContainer.undoService.clearTransactionstackIfNotEmpty(),this.designerView.designerCanvas.overlayLayer.removeAllOverlays(),this.designerView.designerCanvas.extensionManager.reapplyAllAppliedExtentions(null,[w.Permanent,w.Selection,w.PrimarySelection,w.PrimarySelectionContainer,w.OnlyOneItemSelected,w.MultipleItemsSelected])}get instanceServiceContainer(){return this.designerView.instanceServiceContainer}};customElements.define("node-projects-document-container",Kc);ee();_a();Qe();$();Js();export{no as AbsolutePlacementService,ut as AbstractBaseToolPopup,qt as AbstractCssPropertiesService,Ae as AbstractDesignViewConfigButton,fo as AbstractDesignerPointerExtension,N as AbstractExtension,zn as AbstractHtmlWriterService,Fe as AbstractPolymerLikePropertiesService,Y as AbstractPropertiesService,oo as AbstractStylesheetService,Ws as AlignItemsContextMenu,fn as AltToEnterContainerExtension,gn as AltToEnterContainerExtensionProvider,Bh as AlwaysAbsolutePlacementService,ei as ApplyFirstMachingExtensionProvider,Jn as AttachedPropertiesService,ui as AttributeChangeAction,Ni as AttributesPropertiesService,Dr as BaseCustomWebComponentPropertiesService,zh as BaseCustomWebcomponentBindingsService,Gh as BaseCustomWebcomponentDesignItemService,Q as BasePropertyEditor,Ot as BaseServiceContainer,Ce as BasicStackedToolbarExtension,js as BasicWebcomponentPropertiesService,Fh as BindableObjectType,Hi as BindingMode,M as BindingTarget,Qh as BindingsRefactorService,Ns as BlockToolbarExtension,Ls as BlockToolbarExtensionProvider,Cr as BooleanPropertyEditor,et as ButtonSeperatorProvider,ds as ChangeGroup,It as ChildContextMenu,Zs as ChildrenContextMenu,pi as CodeViewSimple,xr as ColorPropertyEditor,S as CommandType,Ie as CommonPropertiesService,it as ConditionExtensionProvider,so as ContentAndIdPropertiesService,fs as ContentService,he as ContextMenu,Vh as CopyPasteAsJsonService,on as CopyPasteContextMenu,Dn as CopyPasteService,lr as CssAttributeParser,$t as CssCombiner,Qt as CssCurrentPropertiesService,Jt as CssCustomPropertiesService,ar as CssEntry,Se as CssPropertiesService,Rt as CssStyleChangeAction,go as CursorLinePointerExtension,sd as CursorLinePointerExtensionProvider,_r as DatePropertyEditor,Gc as DebugView,Hc as DefaultConfiguredDesignerView,Ir as DefaultEditorTypesService,ht as DefaultHtmlParserService,vr as DefaultInstanceService,Tn as DefaultModelCommandService,Ve as DefaultPlacementService,qs as DeleteAction,Qs as DeletionService,hi as DemoView,T as DesignItem,vs as DesignItemDocumentPositionService,ri as DesignItemService,li as DesignerCanvas,Ye as DesignerTabControl,ji as DesignerToolbar,se as DesignerToolbarButton,Dt as DesignerView,Mn as DisplayGridExtension,kt as DisplayGridExtensionProvider,Kc as DocumentContainer,K as DomConverter,ws as DragDropService,Cs as DrawElementTool,Ln as DrawEllipsisTool,Rn as DrawLineTool,Xr as DrawPathTool,Nn as DrawRectTool,Zn as DrawToolButtonProvider,Ti as DrawToolPopup,ys as EditGridColumnRowSizesExtension,Fi as EditGridColumnRowSizesExtensionProvider,Yt as EditTextExtension,An as EditTextExtensionProvider,wn as ElementAtPointService,_e as ElementDisplayType,Rr as ElementDragTitleExtension,Fr as ElementDragTitleExtensionProvider,x as EventNames,fe as EventsService,mo as ExtensionManager,w as ExtensionType,En as ExternalDragDropService,Sn as FlexBoxPlacementService,Ms as FlexToolbarExtension,Os as FlexToolbarExtensionProvider,as as FlexboxExtension,cs as FlexboxExtensionDesignViewConfigButtons,Ri as FlexboxExtensionProvider,Ys as ForceCssContextMenu,Uh as FormatingHtmlWriterService,Qn as GrayOutDragOverContainerExtension,Oi as GrayOutDragOverContainerExtensionProvider,mn as GrayOutExtension,un as GrayOutExtensionProvider,es as GridAssignedRowColumnPropertyEditor,Hs as GridChildResizeExtension,Gs as GridChildResizeExtensionProvider,Rs as GridChildToolbarExtension,Fs as GridChildToolbarExtensionProvider,On as GridExtensionDesignViewConfigButtons,bn as GridPlacementService,Ds as GridToolbarExtension,Ts as GridToolbarExtensionProvider,Ur as HighlightElementExtension,Kr as HighlightElementExtensionProvider,Bn as HtmlWriterService,Hh as IframeDemoProviderService,Ar as ImageButtonListPropertyEditor,cr as IndentedTextWriter,oe as InsertAction,ot as InsertChildAction,ho as InstanceServiceContainer,yn as InvisibleElementExtension,hs as InvisibleElementExtensionDesignViewConfigButtons,vn as InvisibleElementExtensionProvider,_n as ItemsBelowContextMenu,Wh as JsonFileElementsService,br as JsonPropertyEditor,Zh as JsonPropertyPopupEditor,gs as JumpToElementContextMenu,$h as ListPropertiesService,Lr as Lit2PropertiesService,nr as LitElementPropertiesService,Kh as LitTsElementWriterService,cn as MagicWandSelectorTool,Hr as MarginExtension,Gr as MarginExtensionProvider,ti as MarginTool,As as MathMLElementsPropertiesService,ts as MetricsPropertyEditor,Xh as MultiplayerService,ln as MultipleItemsSelectedContextMenu,_s as MultipleSelectionRectExtension,bs as MultipleSelectionRectExtensionProvider,U as NamedTools,sr as NativeElementsPropertiesService,E as NodeType,Rh as NpmPackageLoader,wr as NumberPropertyEditor,eo as ObservedCustomElementsRegistry,Xs as OptionsContextMenuButton,k as OverlayLayer,ai as OverlayLayerView,Bs as PaddingExtension,Vs as PaddingExtensionProvider,ii as PaddingTool,Ui as PaletteElements,Wc as PaletteView,sn as PanTool,Hn as PathContextMenu,uo as PathExtension,nd as PathExtensionProvider,hn as PickColorTool,ss as PlacementExtension,os as PlacementExtensionProvider,bo as PlainScrollbar,le as PointerActionType,Yr as PointerTool,Yn as PointerToolButtonProvider,Di as PointerToolPopup,rr as PolymerPropertiesService,Wr as PositionExtension,jr as PositionExtensionProvider,io as PreDefinedElementsService,Us as PreviousElementSelectExtension,Ks as PreviousElementSelectExtensionProvider,R as PropertiesHelper,fr as PropertyChangeAction,zc as PropertyGrid,Ee as PropertyGridPropertyList,Bc as PropertyGridWithHeader,ns as PropertyGroupsService,y as PropertyType,Vn as RectContextMenu,Ei as RectangleSelectorTool,vo as RefactorView,G as RefreshMode,Jr as ResizeExtension,en as ResizeExtensionProvider,tn as RotateExtension,rn as RotateExtensionProvider,Un as RotateLeftAndRight,Es as RoundPixelsDesignViewConfigButton,or as SVGElementsPropertiesService,ni as Screenshot,Kn as SelectAllChildrenContextMenu,bi as SelectPropertyEditor,Zr as SelectionDefaultExtension,$r as SelectionDefaultExtensionProvider,us as SelectionService,Mi as SelectionToolPopup,qn as SelectorToolButtonProvider,we as SeperatorContextMenu,je as SeperatorToolProvider,Ji as ServiceContainer,lo as SetDesignItemsAction,Ss as SimpleDemoProviderService,Vi as SimpleToolButtonProvider,Cn as SnaplinesProviderService,ao as StylesheetChangedAction,dr as StylesheetServiceDesignViewConfigButtons,ks as SvgElementExtension,Is as SvgElementExtensionProvider,ur as TextContentChangeAction,Sr as TextPropertyEditor,Jh as TextRefactorService,pn as TextTool,$n as TextToolButtonProvider,kr as ThicknessPropertyEditor,zs as ToolbarExtensionsDesignViewConfigButtons,to as TouchGestureHelper,Br as TransformOriginExtension,Vr as TransformOriginExtensionProvider,xs as TransformToolButtonProvider,zi as TransformToolPopup,jc as TreeView,ps as UndoService,qh as UnkownElementsPropertiesService,V as ValueType,ro as WebcomponentManifestElementsService,jh as WebcomponentManifestEventsService,Yh as WebcomponentManifestParserService,si as WebcomponentManifestPropertiesService,an as ZMoveContextMenu,jn as ZoomToElementContextMenu,nn as ZoomTool,Xn as ZoomToolButtonProvider,bf as arraysEqual,v as assetsPath,Ue as basicStackedToolbarExtensionOverlayOptionName,mh as calculateAlpha,Be as calculateNormLegth,ir as calculateOuterRect,Fc as calculateSpecificity,p_ as copyTextToClipboard,Ai as copyToClipboard,Nh as createDefaultServiceContainer,Me as createPathD,Fo as dataURItoBlob,lh as deepValue,Ct as dragDropFormatNameBindingObject,Er as dragDropFormatNameElementDefinition,qo as dragDropFormatNamePropertyGrid,pr as enableStylesheetService,Ro as exportData,ne as filterChildPlaceItems,na as filterNonElementItems,Vl as flexboxExtensionShowOverlayOptionName,fi as forceActiveAttributeName,yi as forceFocusAttributeName,xi as forceFocusVisibleAttributeName,vi as forceFocusWithinAttributeName,ct as forceHoverAttributeName,gi as forceVisitedAttributeName,Su as getActiveElement,W as getBoundingClientRectAlsoForDisplayContents,sh as getContentBoxContentOffsets,Or as getDesignItemCurrentPos,nh as getElementDisplaytype,Cu as getElementOffsetParent,Eu as getElementOffsetsInContainer,Au as getElementsWindowOffsetWithoutSelfAndParentTransformations,kn as getFromClipboard,rh as getParentElementIncludingSlots,Pn as getTextFromClipboard,Pi as gridExtensionShowOverlayOptionName,j as hasCommandKey,Ft as hideAtDesignTimeAttributeName,zt as hideAtRunTimeAttributeName,wu as inDesigner,st as instanceOf,mi as instanceOfAny,Ya as invisibleElementExtensionShowOverlayOptionName,ah as isAppleDevice,tr as isEmptyTextNode,gr as isFirefox,xt as isInline,_t as isInlineAfter,St as lockAtDesignTimeAttributeName,uh as moveSVGPath,er as newElementFromString,Qr as normalizeToAbsolutePosition,Nr as placeDesignItem,zo as pointInRect,Ah as positionsJsonMime,_p as provideSnaplinesWithDistance,bp as provideSnaplinesWithDistanceDistance,de as removeLeading,wt as removeTrailing,_f as requestAnimationFramePromise,O as roundValue,Bo as setDeepValue,Ch as shadowrootGetSelection,lt as sleep,Ze as straightenLine,wh as switchContainer,_i as w3color,Eh as wrapSelectionInSpans};
|
|
1904
|
+
`}constructor(e,t,i=!1){super(),this.refreshInSplitViewDebounced=Qm(this.refreshInSplitView,200),this._serviceContainer=e,t!=null&&(this._content=t);let r=document.createElement("div");this._tabControl=new Ye,r.appendChild(this._tabControl),this.designerView=new Dt(i),this.designerView.setAttribute("exportparts","canvas"),this.designerView.slot="top",this._designerDiv=document.createElement("div"),this._tabControl.appendChild(this._designerDiv),this._designerDiv.title="Designer",this._designerDiv.appendChild(this.designerView),this.designerView.initialize(this._serviceContainer),this.designerView.instanceServiceContainer.documentContainer=this,this.designerView.instanceServiceContainer.selectionService.onSelectionChanged.on(n=>this.designerSelectionChanged(n)),this.designerView.designerCanvas.onContentChanged.on(()=>this.designerContentChanged()),this.codeView=new e.config.codeViewWidget,this.codeView.slot="bottom",this.codeView.style.position="relative",this._codeDiv=document.createElement("div"),this._tabControl.appendChild(this._codeDiv),this._codeDiv.title="Code",this._codeDiv.style.position="relative",this._codeDiv.appendChild(this.codeView),this.codeView.onTextChanged.on(n=>{this._disableChangeNotificationDesigner||(this._tabControl.selectedIndex===z.code||this._tabControl.selectedIndex===z.split)&&(this._disableChangeNotificationEditor=!0,this._content=n,this.refreshInSplitViewDebounced())}),this._splitDiv=new Ki,this._splitDiv.style.height="100%",this._splitDiv.title="Split",this._tabControl.appendChild(this._splitDiv),e.config.demoViewWidget&&(this.demoView=new e.config.demoViewWidget,this.demoView.title="Preview",this._tabControl.appendChild(this.demoView)),queueMicrotask(()=>{this.shadowRoot.appendChild(r),this._tabControl.selectedIndex=z.designer})}async refreshInSplitView(){try{await this.updateDesignerHtml()}catch(e){console.error(e)}this._disableChangeNotificationEditor=!1}get currentView(){return this._tabControl.selectedIndex==z.designer?"designer":this._tabControl.selectedIndex==z.split?"split":this._tabControl.selectedIndex==z.code?"code":this._tabControl.selectedIndex==z.preview?"preview":null}set currentView(e){e=="designer"&&(this._tabControl.selectedIndex=z.designer),e=="split"&&(this._tabControl.selectedIndex=z.split),e=="code"&&(this._tabControl.selectedIndex=z.code),e=="preview"&&(this._tabControl.selectedIndex=z.preview)}designerSelectionChanged(e){if(this._tabControl.selectedIndex===z.split){let t=this.instanceServiceContainer.selectionService.primarySelection;t&&this.designerView.instanceServiceContainer.designItemDocumentPositionService&&(this._selectionPosition=this.designerView.instanceServiceContainer.designItemDocumentPositionService.getPosition(t),this._selectionPosition&&this.codeView.setSelection(this._selectionPosition),this._selectionPosition=null)}}designerContentChanged(){if(this.onContentChanged.emit({source:this._contentChangeSource}),!this._disableChangeNotificationEditor){if(this._disableChangeNotificationDesigner=!0,this._tabControl.selectedIndex===z.code||this._tabControl.selectedIndex===z.split){let e=this.instanceServiceContainer.selectionService.primarySelection;this._content=this.designerView.getDesignerHTML(),this.codeView.update(this._content,this.designerView.instanceServiceContainer),e&&this.designerView.instanceServiceContainer.designItemDocumentPositionService&&(this._selectionPosition=this.designerView.instanceServiceContainer.designItemDocumentPositionService.getPosition(e),this._selectionPosition&&this.codeView.setSelection(this._selectionPosition),this._selectionPosition=null)}this._disableChangeNotificationDesigner=!1}}dispose(){this.codeView.dispose(),this.demoView.dispose()}executeCommand(e){this._tabControl.selectedIndex===z.designer||this._tabControl.selectedIndex===z.split?this.designerView.executeCommand(e):this._tabControl.selectedIndex===z.code?this.codeView.executeCommand(e):this._tabControl.selectedIndex===z.preview&&this.demoView.executeCommand(e)}canExecuteCommand(e){if(this._tabControl.selectedIndex===z.designer||this._tabControl.selectedIndex===z.split){if(this.designerView?.canExecuteCommand)return this.designerView.canExecuteCommand(e)}else if(this._tabControl.selectedIndex===z.code){if(this.codeView?.canExecuteCommand)return this.codeView.canExecuteCommand(e)}else if(this._tabControl.selectedIndex===z.preview&&this.demoView?.canExecuteCommand)return this.demoView.canExecuteCommand(e);return!1}async setContentAsync(e){this._content=e,this._tabControl&&(this._tabControl.selectedIndex===z.designer?await this.updateDesignerHtml():this._tabControl.selectedIndex===z.code?this.codeView.update(this._content,this.designerView.instanceServiceContainer):this._tabControl.selectedIndex===z.split||this._tabControl.selectedIndex===z.preview&&this.demoView.display(this._serviceContainer,this.designerView.instanceServiceContainer,this._content,this.additionalStyleString))}set content(e){this.setContentAsync(e)}get content(){return this._tabControl?(this._tabControl.selectedIndex===z.designer?this._content=this.designerView.getDesignerHTML():this._tabControl.selectedIndex===z.code&&(this._content=this.codeView.getText()),this._content):null}ready(){this._tabControl.onSelectedTabChanged.on(e=>{if(e.oldIndex===z.designer){let t=this.instanceServiceContainer.selectionService.primarySelection;this._content=this.designerView.getDesignerHTML(),this.designerView.instanceServiceContainer.designItemDocumentPositionService&&(this._selectionPosition=this.designerView.instanceServiceContainer.designItemDocumentPositionService.getPosition(t))}else e.oldIndex===z.code?this._content=this.codeView.getText():e.oldIndex===z.split?(this._designerDiv.appendChild(this.designerView),this._codeDiv.appendChild(this.codeView)):e.oldIndex===z.preview&&this.demoView?.stopDisplay&&this.demoView.stopDisplay();(e.newIndex===z.designer||e.newIndex===z.split)&&this.updateDesignerHtml(),(e.newIndex===z.code||e.newIndex===z.split)&&(this.codeView.update(this._content,this.designerView.instanceServiceContainer),this._selectionPosition&&(this.codeView.setSelection(this._selectionPosition),lt(20).then(t=>{this._selectionPosition&&this.codeView.setSelection(this._selectionPosition),this._selectionPosition=null})),e.changedViaClick&&this.codeView.focusEditor()),e.newIndex===z.split&&(this._splitDiv.appendChild(this.designerView),this._splitDiv.appendChild(this.codeView)),e.newIndex===z.preview&&this.demoView.display(this._serviceContainer,this.designerView.instanceServiceContainer,this._content,this.additionalStyleString),this._content&&(this._firstLoad=!1),this.onTabChanged.emit({oldTab:z[e.oldIndex],newTab:z[e.newIndex]})}),this._content&&(this.content=this._content,this._firstLoad=!1)}async updateDesignerHtml(){if(this._firstLoad)return this.designerView.parseDesignerHTML(this._content,this._firstLoad);if(this.designerView.getDesignerHTML()!=this._content){this._contentChangeSource="code",await this.designerView.parseDesignerHTML(this._content,this._firstLoad),this._contentChangeSource="designer";return}else this.instanceServiceContainer.undoService.clearTransactionstackIfNotEmpty(),this.designerView.designerCanvas.overlayLayer.removeAllOverlays(),this.designerView.designerCanvas.extensionManager.reapplyAllAppliedExtentions(null,[w.Permanent,w.Selection,w.PrimarySelection,w.PrimarySelectionContainer,w.OnlyOneItemSelected,w.MultipleItemsSelected])}get instanceServiceContainer(){return this.designerView.instanceServiceContainer}};customElements.define("node-projects-document-container",Kc);ee();_a();Qe();$();Js();export{no as AbsolutePlacementService,ut as AbstractBaseToolPopup,Qt as AbstractCssPropertiesService,Ae as AbstractDesignViewConfigButton,fo as AbstractDesignerPointerExtension,N as AbstractExtension,zn as AbstractHtmlWriterService,Fe as AbstractPolymerLikePropertiesService,Y as AbstractPropertiesService,oo as AbstractStylesheetService,Ws as AlignItemsContextMenu,fn as AltToEnterContainerExtension,gn as AltToEnterContainerExtensionProvider,Bh as AlwaysAbsolutePlacementService,ti as ApplyFirstMachingExtensionProvider,Jn as AttachedPropertiesService,fi as AttributeChangeAction,Ni as AttributesPropertiesService,Dr as BaseCustomWebComponentPropertiesService,zh as BaseCustomWebcomponentBindingsService,Gh as BaseCustomWebcomponentDesignItemService,Q as BasePropertyEditor,Ot as BaseServiceContainer,Ce as BasicStackedToolbarExtension,js as BasicWebcomponentPropertiesService,Fh as BindableObjectType,Hi as BindingMode,M as BindingTarget,Qh as BindingsRefactorService,Ns as BlockToolbarExtension,Ls as BlockToolbarExtensionProvider,Cr as BooleanPropertyEditor,et as ButtonSeperatorProvider,ds as ChangeGroup,kt as ChildContextMenu,Zs as ChildrenContextMenu,mi as CodeViewSimple,xr as ColorPropertyEditor,S as CommandType,ke as CommonPropertiesService,it as ConditionExtensionProvider,so as ContentAndIdPropertiesService,fs as ContentService,he as ContextMenu,Vh as CopyPasteAsJsonService,on as CopyPasteContextMenu,Dn as CopyPasteService,lr as CssAttributeParser,qt as CssCombiner,Jt as CssCurrentPropertiesService,ei as CssCustomPropertiesService,ar as CssEntry,Se as CssPropertiesService,Rt as CssStyleChangeAction,go as CursorLinePointerExtension,sd as CursorLinePointerExtensionProvider,_r as DatePropertyEditor,Gc as DebugView,Hc as DefaultConfiguredDesignerView,kr as DefaultEditorTypesService,ht as DefaultHtmlParserService,vr as DefaultInstanceService,Tn as DefaultModelCommandService,Ve as DefaultPlacementService,qs as DeleteAction,Qs as DeletionService,di as DemoView,T as DesignItem,vs as DesignItemDocumentPositionService,ni as DesignItemService,ci as DesignerCanvas,Ye as DesignerTabControl,ji as DesignerToolbar,se as DesignerToolbarButton,Dt as DesignerView,Mn as DisplayGridExtension,It as DisplayGridExtensionProvider,Kc as DocumentContainer,K as DomConverter,ws as DragDropService,Cs as DrawElementTool,Ln as DrawEllipsisTool,Rn as DrawLineTool,Xr as DrawPathTool,Nn as DrawRectTool,Zn as DrawToolButtonProvider,Ti as DrawToolPopup,ys as EditGridColumnRowSizesExtension,Fi as EditGridColumnRowSizesExtensionProvider,Xt as EditTextExtension,An as EditTextExtensionProvider,wn as ElementAtPointService,_e as ElementDisplayType,Rr as ElementDragTitleExtension,Fr as ElementDragTitleExtensionProvider,x as EventNames,ge as EventsService,mo as ExtensionManager,w as ExtensionType,En as ExternalDragDropService,Sn as FlexBoxPlacementService,Ms as FlexToolbarExtension,Os as FlexToolbarExtensionProvider,as as FlexboxExtension,cs as FlexboxExtensionDesignViewConfigButtons,Ri as FlexboxExtensionProvider,Ys as ForceCssContextMenu,Uh as FormatingHtmlWriterService,Qn as GrayOutDragOverContainerExtension,Oi as GrayOutDragOverContainerExtensionProvider,mn as GrayOutExtension,un as GrayOutExtensionProvider,es as GridAssignedRowColumnPropertyEditor,Hs as GridChildResizeExtension,Gs as GridChildResizeExtensionProvider,Rs as GridChildToolbarExtension,Fs as GridChildToolbarExtensionProvider,On as GridExtensionDesignViewConfigButtons,bn as GridPlacementService,Ds as GridToolbarExtension,Ts as GridToolbarExtensionProvider,Ur as HighlightElementExtension,Kr as HighlightElementExtensionProvider,Bn as HtmlWriterService,Hh as IframeDemoProviderService,Ar as ImageButtonListPropertyEditor,cr as IndentedTextWriter,oe as InsertAction,ot as InsertChildAction,ho as InstanceServiceContainer,yn as InvisibleElementExtension,hs as InvisibleElementExtensionDesignViewConfigButtons,vn as InvisibleElementExtensionProvider,_n as ItemsBelowContextMenu,Wh as JsonFileElementsService,br as JsonPropertyEditor,Zh as JsonPropertyPopupEditor,gs as JumpToElementContextMenu,$h as ListPropertiesService,Lr as Lit2PropertiesService,nr as LitElementPropertiesService,Kh as LitTsElementWriterService,cn as MagicWandSelectorTool,Hr as MarginExtension,Gr as MarginExtensionProvider,ii as MarginTool,As as MathMLElementsPropertiesService,ts as MetricsPropertyEditor,Xh as MultiplayerService,ln as MultipleItemsSelectedContextMenu,_s as MultipleSelectionRectExtension,bs as MultipleSelectionRectExtensionProvider,U as NamedTools,sr as NativeElementsPropertiesService,E as NodeType,Rh as NpmPackageLoader,wr as NumberPropertyEditor,eo as ObservedCustomElementsRegistry,Xs as OptionsContextMenuButton,I as OverlayLayer,li as OverlayLayerView,Bs as PaddingExtension,Vs as PaddingExtensionProvider,ri as PaddingTool,Ui as PaletteElements,Wc as PaletteView,sn as PanTool,Hn as PathContextMenu,uo as PathExtension,nd as PathExtensionProvider,hn as PickColorTool,ss as PlacementExtension,os as PlacementExtensionProvider,bo as PlainScrollbar,le as PointerActionType,Yr as PointerTool,Yn as PointerToolButtonProvider,Di as PointerToolPopup,rr as PolymerPropertiesService,Wr as PositionExtension,jr as PositionExtensionProvider,io as PreDefinedElementsService,Us as PreviousElementSelectExtension,Ks as PreviousElementSelectExtensionProvider,L as PropertiesHelper,fr as PropertyChangeAction,zc as PropertyGrid,Ee as PropertyGridPropertyList,Bc as PropertyGridWithHeader,ns as PropertyGroupsService,y as PropertyType,Vn as RectContextMenu,Ei as RectangleSelectorTool,vo as RefactorView,G as RefreshMode,Jr as ResizeExtension,en as ResizeExtensionProvider,tn as RotateExtension,rn as RotateExtensionProvider,Un as RotateLeftAndRight,Es as RoundPixelsDesignViewConfigButton,or as SVGElementsPropertiesService,si as Screenshot,Kn as SelectAllChildrenContextMenu,bi as SelectPropertyEditor,Zr as SelectionDefaultExtension,$r as SelectionDefaultExtensionProvider,us as SelectionService,Mi as SelectionToolPopup,qn as SelectorToolButtonProvider,we as SeperatorContextMenu,je as SeperatorToolProvider,Ji as ServiceContainer,lo as SetDesignItemsAction,Ss as SimpleDemoProviderService,Vi as SimpleToolButtonProvider,Cn as SnaplinesProviderService,ao as StylesheetChangedAction,dr as StylesheetServiceDesignViewConfigButtons,Is as SvgElementExtension,ks as SvgElementExtensionProvider,ur as TextContentChangeAction,Sr as TextPropertyEditor,Jh as TextRefactorService,pn as TextTool,$n as TextToolButtonProvider,Ir as ThicknessPropertyEditor,zs as ToolbarExtensionsDesignViewConfigButtons,to as TouchGestureHelper,Br as TransformOriginExtension,Vr as TransformOriginExtensionProvider,xs as TransformToolButtonProvider,zi as TransformToolPopup,jc as TreeView,ps as UndoService,qh as UnkownElementsPropertiesService,V as ValueType,ro as WebcomponentManifestElementsService,jh as WebcomponentManifestEventsService,Yh as WebcomponentManifestParserService,oi as WebcomponentManifestPropertiesService,an as ZMoveContextMenu,jn as ZoomToElementContextMenu,nn as ZoomTool,Xn as ZoomToolButtonProvider,bf as arraysEqual,v as assetsPath,Ue as basicStackedToolbarExtensionOverlayOptionName,mh as calculateAlpha,Be as calculateNormLegth,ir as calculateOuterRect,Fc as calculateSpecificity,p_ as copyTextToClipboard,Ai as copyToClipboard,Nh as createDefaultServiceContainer,Me as createPathD,Fo as dataURItoBlob,lh as deepValue,Ct as dragDropFormatNameBindingObject,Er as dragDropFormatNameElementDefinition,qo as dragDropFormatNamePropertyGrid,pr as enableStylesheetService,Ro as exportData,ne as filterChildPlaceItems,na as filterNonElementItems,Vl as flexboxExtensionShowOverlayOptionName,gi as forceActiveAttributeName,vi as forceFocusAttributeName,_i as forceFocusVisibleAttributeName,xi as forceFocusWithinAttributeName,ct as forceHoverAttributeName,yi as forceVisitedAttributeName,Su as getActiveElement,W as getBoundingClientRectAlsoForDisplayContents,sh as getContentBoxContentOffsets,Or as getDesignItemCurrentPos,nh as getElementDisplaytype,Cu as getElementOffsetParent,Eu as getElementOffsetsInContainer,Au as getElementsWindowOffsetWithoutSelfAndParentTransformations,In as getFromClipboard,rh as getParentElementIncludingSlots,Pn as getTextFromClipboard,Pi as gridExtensionShowOverlayOptionName,j as hasCommandKey,Ft as hideAtDesignTimeAttributeName,zt as hideAtRunTimeAttributeName,wu as inDesigner,st as instanceOf,ui as instanceOfAny,Ya as invisibleElementExtensionShowOverlayOptionName,ah as isAppleDevice,tr as isEmptyTextNode,gr as isFirefox,xt as isInline,_t as isInlineAfter,St as lockAtDesignTimeAttributeName,uh as moveSVGPath,er as newElementFromString,Qr as normalizeToAbsolutePosition,Nr as placeDesignItem,zo as pointInRect,Ah as positionsJsonMime,_p as provideSnaplinesWithDistance,bp as provideSnaplinesWithDistanceDistance,de as removeLeading,wt as removeTrailing,_f as requestAnimationFramePromise,O as roundValue,Bo as setDeepValue,Ch as shadowrootGetSelection,lt as sleep,Ze as straightenLine,wh as switchContainer,Bt as w3color,Eh as wrapSelectionInSpans};
|
|
1905
1905
|
// @license
|