diff --git a/dist/ueblueprint.js b/dist/ueblueprint.js index f9188b3..095fd64 100644 --- a/dist/ueblueprint.js +++ b/dist/ueblueprint.js @@ -1 +1,2354 @@ -class t{constructor(){this.nodes=new Array,this.expandGridSize=400,this.additional=[0,0],this.translateValue=[0,0],this.mousePosition=[0,0]}}const e=String.raw;class n{render(t){return""}getElements(t){let e=document.createElement("div");return e.innerHTML=this.render(t),e.childNodes}}class r extends n{header(t){return e`
`}overlay(){return e``}viewport(t){return e``}render(t){return e`${this.header(t)} ${this.overlay(t)} ${this.viewport(t)}`}}class i{constructor(t,e,n){if(this.target=t,this.blueprint=e,this.options=n,n?.wantsFocusCallback){let t=this;this.blueprintfocusHandler=e=>t.blueprintFocused(),this.blueprintunfocusHandler=e=>t.blueprintUnfocused(),this.blueprint.addEventListener("blueprintfocus",this.blueprintfocusHandler),this.blueprint.addEventListener("blueprintunfocus",this.blueprintunfocusHandler)}}unlistenDOMElement(){this.blueprint.removeEventListener("blueprintfocus",this.blueprintfocusHandler),this.blueprint.removeEventListener("blueprintunfocus",this.blueprintunfocusHandler)}blueprintFocused(){}blueprintUnfocused(){}}class s{static sanitize(t){return t instanceof Object&&(t instanceof Boolean||t instanceof Number||t instanceof String)?t.valueOf():t}constructor(t,e=!0,n){void 0===n&&(n=s.sanitize(new t)),this.value=n,this.showDefault=e,this.type=t}}class o{static clamp(t,e,n){return Math.min(Math.max(t,e),n)}static getScale(t){return getComputedStyle(t).getPropertyValue("--ueb-scale")}static objectSet(t,e,n,r=!1){if(e.constructor!=Array&&console.error("Expected keys to be an array."),1==e.length){if(r||e[0]in t)return t[e[0]]=n,!0}else if(e.length>0)return o.objectSet(t[e[0]],e.slice(1),n,r);return!1}static objectGet(t,e,n=null){return e.constructor!=Array&&console.error("Expected keys to be an array."),0!=e.length&&e[0]in t?1==e.length?t[e[0]]:o.objectGet(t[e[0]],e.slice(1),n):n}static equals(t,e){return(t=s.sanitize(t))===(e=s.sanitize(e))}static FirstCapital(t){return t.charAt(0).toUpperCase()+t.substring(1)}static getType(t){let e=t?.constructor;switch(e){case s:return t.type;case Function:return t;default:return e}}}class a extends i{constructor(t,e,n){super(t,e,n),this.movementSpace=this.blueprint?.getGridDOMElement()??document.documentElement}getLocation(t){const e=1/o.getScale(this.target),n=this.movementSpace.getBoundingClientRect();return[(t.clientX-n.x)*e,(t.clientY-n.y)*e]}}class u extends a{constructor(t,e,n){super(t,e,n),this.clickButton=n?.clickButton??0,this.exitAnyButton=n?.exitAnyButton??!0,this.moveEverywhere=n?.moveEverywhere??!1,this.looseTarget=n?.looseTarget??!1,this.started=!1,this.clickedPosition=[0,0];const r=this.moveEverywhere?document.documentElement:this.movementSpace;let i=this;this.mouseDownHandler=t=>{if(this.blueprint.setFocused(!0),t.button===i.clickButton)(i.looseTarget||t.target==t.currentTarget)&&(t.stopPropagation(),i.started=!1,r.addEventListener("mousemove",i.mouseStartedMovingHandler),document.addEventListener("mouseup",i.mouseUpHandler),i.clickedPosition=i.getLocation(t),i.clicked(i.clickedPosition));else i.exitAnyButton||i.mouseUpHandler(t)},this.mouseStartedMovingHandler=t=>{t.preventDefault(),t.stopPropagation(),r.removeEventListener("mousemove",i.mouseStartedMovingHandler),r.addEventListener("mousemove",i.mouseMoveHandler),i.startDrag(),i.started=!0},this.mouseMoveHandler=t=>{t.preventDefault(),t.stopPropagation();const e=i.getLocation(t),n=[t.movementX,t.movementY];i.dragTo(e,n)},this.mouseUpHandler=t=>{i.exitAnyButton&&t.button!=i.clickButton||(r.removeEventListener("mousemove",i.mouseStartedMovingHandler),r.removeEventListener("mousemove",i.mouseMoveHandler),document.removeEventListener("mouseup",i.mouseUpHandler),i.endDrag())},this.target.addEventListener("mousedown",this.mouseDownHandler),2==this.clickButton&&this.target.addEventListener("contextmenu",this.preventDefault)}preventDefault(t){t.preventDefault()}unlistenDOMElement(){super.unlistenDOMElement(),this.target.removeEventListener("mousedown",this.mouseDownHandler),2==this.clickButton&&this.target.removeEventListener("contextmenu",this.preventDefault),blueprintunfocusHandler}clicked(t){}startDrag(){}dragTo(t,e){}endDrag(){}}class l extends u{dragTo(t,e){this.blueprint.scrollDelta([-e[0],-e[1]])}}class c extends HTMLElement{constructor(t,e){super(),this.blueprint=null,this.entity=t,this.template=e}connectedCallback(){this.blueprint=this.closest("u-blueprint"),this.append(...this.template.getElements(this.entity))}}class h{constructor(t=(t=>t),e=null){this.array=new Uint32Array(e),this.comparisonValueSupplier=t,this.length=0,this.currentPosition=0}get(t){return t>=0&&t