@vertexvis/viewer 0.17.5-testing.3 → 0.17.5-testing.5

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.
Files changed (37) hide show
  1. package/dist/cjs/{controller-4e9ef328.js → controller-c7c4f333.js} +6 -6
  2. package/dist/cjs/controller-c7c4f333.js.map +1 -0
  3. package/dist/cjs/index.cjs.js +1 -1
  4. package/dist/cjs/vertex-scene-tree-search_3.cjs.entry.js +8 -0
  5. package/dist/cjs/vertex-scene-tree-search_3.cjs.entry.js.map +1 -1
  6. package/dist/cjs/vertex-scene-tree.cjs.entry.js +1 -1
  7. package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js +1 -1
  8. package/dist/collection/components/scene-tree/lib/controller.js +5 -5
  9. package/dist/collection/components/scene-tree/lib/controller.js.map +1 -1
  10. package/dist/collection/components/scene-tree-table-layout/scene-tree-table-layout.js +14 -1
  11. package/dist/collection/components/scene-tree-table-layout/scene-tree-table-layout.js.map +1 -1
  12. package/dist/custom-elements/index.js +13 -5
  13. package/dist/custom-elements/index.js.map +1 -1
  14. package/dist/esm/{controller-53f803d9.js → controller-bbcc1700.js} +6 -6
  15. package/dist/esm/controller-bbcc1700.js.map +1 -0
  16. package/dist/esm/index.js +1 -1
  17. package/dist/esm/index.mjs +1 -1
  18. package/dist/esm/vertex-scene-tree-search_3.entry.js +8 -0
  19. package/dist/esm/vertex-scene-tree-search_3.entry.js.map +1 -1
  20. package/dist/esm/vertex-scene-tree.entry.js +1 -1
  21. package/dist/esm/vertex-viewer-pin-group.entry.js +1 -1
  22. package/dist/types/components/scene-tree-table-layout/scene-tree-table-layout.d.ts +1 -0
  23. package/dist/viewer/index.esm.js +1 -1
  24. package/dist/viewer/{p-921ec41b.js → p-3d19b37e.js} +2 -2
  25. package/dist/viewer/p-3d19b37e.js.map +1 -0
  26. package/dist/viewer/{p-1815d19b.entry.js → p-6114701c.entry.js} +2 -2
  27. package/dist/viewer/{p-073d15e9.entry.js → p-951a2e08.entry.js} +2 -2
  28. package/dist/viewer/p-951a2e08.entry.js.map +1 -0
  29. package/dist/viewer/{p-9b8dae4a.entry.js → p-d256624d.entry.js} +2 -2
  30. package/dist/viewer/viewer.esm.js +1 -1
  31. package/package.json +7 -7
  32. package/dist/cjs/controller-4e9ef328.js.map +0 -1
  33. package/dist/esm/controller-53f803d9.js.map +0 -1
  34. package/dist/viewer/p-073d15e9.entry.js.map +0 -1
  35. package/dist/viewer/p-921ec41b.js.map +0 -1
  36. /package/dist/viewer/{p-1815d19b.entry.js.map → p-6114701c.entry.js.map} +0 -0
  37. /package/dist/viewer/{p-9b8dae4a.entry.js.map → p-d256624d.entry.js.map} +0 -0
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Copyright (c) 2023 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import{h as i,F as t,r as n}from"./p-50533a46.js";import{p as o,m as e,v as s}from"./p-71fbe522.js";import"./p-921ec41b.js";import"./p-3a256fe9.js";import"./p-259a4bef.js";import"./p-6320532c.js";import"./p-39eab85b.js";import"./p-e1d82323.js";import{V as r}from"./p-1bb66e64.js";import{g as a,i as l,b as p,P as h,a as d,c as v}from"./p-3fb73dd5.js";import{c}from"./p-9fe3f791.js";import"./p-9acf99ad.js";import"./p-7f54de9d.js";import"./p-d45df0c0.js";import"./p-c5381b4a.js";import"./p-7578885f.js";const u=({pin:n,selected:o})=>{const{primaryColor:e}=a(n);return i(t,null,p(n)&&i("div",{id:"pin-anchor",class:c("pin-anchor",{selected:o}),style:{background:e}}),l(n)&&i("vertex-viewer-icon",{name:"pin-fill",size:"lg",class:c("pin",{"pin-selected":o}),style:{color:e}}))};function b(i,t,n){const e={x:i.x+n.width/2,y:i.y};const s={x:i.x+n.width/2,y:i.y+n.height};const r={x:i.x+n.width,y:i.y+n.height/2};const a={x:i.x,y:i.y+n.height/2};const l=[e,s,a,r];const p=l.map((i=>o.distance(i,t)));const h=p.indexOf(Math.min(...p));return l[h]}const w=":host{--viewer-annotations-pin-primary-color:var(--blue-700);--viewer-annotations-pin-accent-color:var(--blue-200);--viewer-annotations-pin-dot-color:var(--viewer-annotations-pin-primary-color);--viewer-annotations-pin-color:var(--viewer-annotations-pin-primary-color);--viewer-annotations-pin-font-size:0.75rem;--viewer-annotations-pin-selected-stroke:var(--white);--viewer-annotations-pin-selected-border:2px solid var(--white);--viewer-annotations-pin-label-border:2px solid var(--black);--viewer-annotations-pin-selected-stroke:var(--white);font-size:var(--viewer-annotations-pin-font-size);position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;pointer-events:none}.pin-anchor{position:absolute;border-radius:50%;transform:translate(-50%, -50%);display:block;width:9px;height:9px;box-sizing:border-box;border:var(--viewer-annotations-pin-label-border);background:var(--viewer-annotations-pin-dot-color);pointer-events:auto;cursor:pointer}.selected{width:13px;height:13px;border:var(--viewer-annotations-pin-selected-border)}.pin{color:var(--viewer-annotations-pin-color);cursor:pointer}.pin-selected{stroke-width:1;stroke:var(--viewer-annotations-pin-selected-stroke)}";const m=class{constructor(i){n(this,i);this.matrix=e.makeIdentity();this.projectionViewMatrix=e.makeIdentity();this.pinModel=new h;this.selected=false;this.invalidateStateCounter=0;this.invalidateState=()=>{this.invalidateStateCounter=this.invalidateStateCounter+1}}componentDidLoad(){var i;this.setLabelObserver();if(this.pinController==null){this.pinController=new d(this.pinModel)}if(this.selected){(i=this.labelEl)===null||i===void 0?void 0:i.setFocus()}}disconnectedCallback(){var i,t;(i=this.labelEl)===null||i===void 0?void 0:i.removeEventListener("labelChanged",this.invalidateState);(t=this.resizeObserver)===null||t===void 0?void 0:t.disconnect()}render(){var n;if(this.pin==null){throw new Error("Unable to draw pin")}const{pinPoint:o,labelPoint:e}=this.computePinPoints(this.pin);return i(t,null,i("vertex-viewer-dom-element",{"data-testid":`drawn-pin-${this.pin.id}`,position:this.pin.worldPosition,onPointerDown:i=>{if(i.buttons!==2){i.stopPropagation()}this.selectPin();this.handleAnchorPointerDown()}},i(u,{pin:this.pin,selected:this.selected})),p(this.pin)&&i(t,null,i("vertex-viewer-pin-label-line",{id:`pin-label-line-${(n=this.pin)===null||n===void 0?void 0:n.id}`,pinPoint:o,pin:this.pin,labelPoint:e,onPointerDown:()=>this.selectPin()}),i("vertex-viewer-pin-label",{pin:this.pin,ref:i=>this.labelEl=i,elementBounds:this.elementBounds,pinController:this.pinController,onPointerDown:()=>this.selectPin()})))}setLabelObserver(){if(this.labelEl!=null){this.labelEl.addEventListener("labelChanged",this.invalidateState);this.resizeObserver=new ResizeObserver((()=>this.invalidateState()));this.resizeObserver.observe(this.labelEl)}}computePinPoints(i){if(this.elementBounds!=null&&this.pin!=null){return p(this.pin)&&this.pin.label.point!=null?this.computeTextPinPoints(this.pin,this.elementBounds):this.computeDefaultPinPoints(this.pin,this.elementBounds)}return{pinPoint:i.worldPosition}}computeDefaultPinPoints(i,t){return{pinPoint:this.getFromWorldPosition(i.worldPosition,this.projectionViewMatrix,t)}}computeTextPinPoints(i,t){var n,o,e,s;const{pinPoint:r}=this.computeDefaultPinPoints(i,t);const a=v(i.label.point,t);const l=((o=(n=this.labelEl)===null||n===void 0?void 0:n.firstElementChild)===null||o===void 0?void 0:o.clientWidth)||0;const p=((s=(e=this.labelEl)===null||e===void 0?void 0:e.firstElementChild)===null||s===void 0?void 0:s.clientHeight)||0;return{pinPoint:r,labelPoint:b(a,r,{width:l,height:p})}}handleAnchorPointerDown(){var i,t;if(this.elementBounds!=null&&((i=this.pinController)===null||i===void 0?void 0:i.getToolMode())==="edit"&&this.pin!=null){(t=this.pinController)===null||t===void 0?void 0:t.setDraggable({id:this.pin.id})}}selectPin(){var i,t;(i=this.pinController)===null||i===void 0?void 0:i.setSelectedPinId((t=this.pin)===null||t===void 0?void 0:t.id)}getFromWorldPosition(i,t,n){const o=s.transformMatrix(i,t);return r.fromDimensions(n).transformVectorToViewport(o)}};m.style=w;export{m as vertex_viewer_pin_group};
5
- //# sourceMappingURL=p-1815d19b.entry.js.map
4
+ import{h as i,F as t,r as n}from"./p-50533a46.js";import{p as o,m as e,v as s}from"./p-71fbe522.js";import"./p-3d19b37e.js";import"./p-3a256fe9.js";import"./p-259a4bef.js";import"./p-6320532c.js";import"./p-39eab85b.js";import"./p-e1d82323.js";import{V as r}from"./p-1bb66e64.js";import{g as a,i as l,b as p,P as h,a as d,c as v}from"./p-3fb73dd5.js";import{c}from"./p-9fe3f791.js";import"./p-9acf99ad.js";import"./p-7f54de9d.js";import"./p-d45df0c0.js";import"./p-c5381b4a.js";import"./p-7578885f.js";const u=({pin:n,selected:o})=>{const{primaryColor:e}=a(n);return i(t,null,p(n)&&i("div",{id:"pin-anchor",class:c("pin-anchor",{selected:o}),style:{background:e}}),l(n)&&i("vertex-viewer-icon",{name:"pin-fill",size:"lg",class:c("pin",{"pin-selected":o}),style:{color:e}}))};function b(i,t,n){const e={x:i.x+n.width/2,y:i.y};const s={x:i.x+n.width/2,y:i.y+n.height};const r={x:i.x+n.width,y:i.y+n.height/2};const a={x:i.x,y:i.y+n.height/2};const l=[e,s,a,r];const p=l.map((i=>o.distance(i,t)));const h=p.indexOf(Math.min(...p));return l[h]}const w=":host{--viewer-annotations-pin-primary-color:var(--blue-700);--viewer-annotations-pin-accent-color:var(--blue-200);--viewer-annotations-pin-dot-color:var(--viewer-annotations-pin-primary-color);--viewer-annotations-pin-color:var(--viewer-annotations-pin-primary-color);--viewer-annotations-pin-font-size:0.75rem;--viewer-annotations-pin-selected-stroke:var(--white);--viewer-annotations-pin-selected-border:2px solid var(--white);--viewer-annotations-pin-label-border:2px solid var(--black);--viewer-annotations-pin-selected-stroke:var(--white);font-size:var(--viewer-annotations-pin-font-size);position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;pointer-events:none}.pin-anchor{position:absolute;border-radius:50%;transform:translate(-50%, -50%);display:block;width:9px;height:9px;box-sizing:border-box;border:var(--viewer-annotations-pin-label-border);background:var(--viewer-annotations-pin-dot-color);pointer-events:auto;cursor:pointer}.selected{width:13px;height:13px;border:var(--viewer-annotations-pin-selected-border)}.pin{color:var(--viewer-annotations-pin-color);cursor:pointer}.pin-selected{stroke-width:1;stroke:var(--viewer-annotations-pin-selected-stroke)}";const m=class{constructor(i){n(this,i);this.matrix=e.makeIdentity();this.projectionViewMatrix=e.makeIdentity();this.pinModel=new h;this.selected=false;this.invalidateStateCounter=0;this.invalidateState=()=>{this.invalidateStateCounter=this.invalidateStateCounter+1}}componentDidLoad(){var i;this.setLabelObserver();if(this.pinController==null){this.pinController=new d(this.pinModel)}if(this.selected){(i=this.labelEl)===null||i===void 0?void 0:i.setFocus()}}disconnectedCallback(){var i,t;(i=this.labelEl)===null||i===void 0?void 0:i.removeEventListener("labelChanged",this.invalidateState);(t=this.resizeObserver)===null||t===void 0?void 0:t.disconnect()}render(){var n;if(this.pin==null){throw new Error("Unable to draw pin")}const{pinPoint:o,labelPoint:e}=this.computePinPoints(this.pin);return i(t,null,i("vertex-viewer-dom-element",{"data-testid":`drawn-pin-${this.pin.id}`,position:this.pin.worldPosition,onPointerDown:i=>{if(i.buttons!==2){i.stopPropagation()}this.selectPin();this.handleAnchorPointerDown()}},i(u,{pin:this.pin,selected:this.selected})),p(this.pin)&&i(t,null,i("vertex-viewer-pin-label-line",{id:`pin-label-line-${(n=this.pin)===null||n===void 0?void 0:n.id}`,pinPoint:o,pin:this.pin,labelPoint:e,onPointerDown:()=>this.selectPin()}),i("vertex-viewer-pin-label",{pin:this.pin,ref:i=>this.labelEl=i,elementBounds:this.elementBounds,pinController:this.pinController,onPointerDown:()=>this.selectPin()})))}setLabelObserver(){if(this.labelEl!=null){this.labelEl.addEventListener("labelChanged",this.invalidateState);this.resizeObserver=new ResizeObserver((()=>this.invalidateState()));this.resizeObserver.observe(this.labelEl)}}computePinPoints(i){if(this.elementBounds!=null&&this.pin!=null){return p(this.pin)&&this.pin.label.point!=null?this.computeTextPinPoints(this.pin,this.elementBounds):this.computeDefaultPinPoints(this.pin,this.elementBounds)}return{pinPoint:i.worldPosition}}computeDefaultPinPoints(i,t){return{pinPoint:this.getFromWorldPosition(i.worldPosition,this.projectionViewMatrix,t)}}computeTextPinPoints(i,t){var n,o,e,s;const{pinPoint:r}=this.computeDefaultPinPoints(i,t);const a=v(i.label.point,t);const l=((o=(n=this.labelEl)===null||n===void 0?void 0:n.firstElementChild)===null||o===void 0?void 0:o.clientWidth)||0;const p=((s=(e=this.labelEl)===null||e===void 0?void 0:e.firstElementChild)===null||s===void 0?void 0:s.clientHeight)||0;return{pinPoint:r,labelPoint:b(a,r,{width:l,height:p})}}handleAnchorPointerDown(){var i,t;if(this.elementBounds!=null&&((i=this.pinController)===null||i===void 0?void 0:i.getToolMode())==="edit"&&this.pin!=null){(t=this.pinController)===null||t===void 0?void 0:t.setDraggable({id:this.pin.id})}}selectPin(){var i,t;(i=this.pinController)===null||i===void 0?void 0:i.setSelectedPinId((t=this.pin)===null||t===void 0?void 0:t.id)}getFromWorldPosition(i,t,n){const o=s.transformMatrix(i,t);return r.fromDimensions(n).transformVectorToViewport(o)}};m.style=w;export{m as vertex_viewer_pin_group};
5
+ //# sourceMappingURL=p-6114701c.entry.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Copyright (c) 2023 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import{r as t,c as i,h as s,H as e,g as n}from"./p-50533a46.js";import{c as o}from"./p-9fe3f791.js";import{d as r,r as h}from"./p-f3383096.js";import{j as l,p as a}from"./p-71fbe522.js";import{a as c}from"./p-8867dab6.js";import{i as d}from"./p-c5381b4a.js";import{E as u}from"./p-7f54de9d.js";import"./p-9acf99ad.js";const v="button{border:none;background:transparent;cursor:pointer;margin:0;padding:0}:host{--scene-tree-search-search-icon-offset:8px;--scene-tree-search-clear-button-offset:8px;--scene-tree-search-input-padding:0.5rem 32px;--scene-tree-search-input-border:none;--scene-tree-search-input-border-radius:0.25rem;--scene-tree-search-input-background:none;--scene-tree-search-focused-input-background:var(--neutral-200);--scene-tree-search-focused-input-outline:none;display:block;width:100%;font-size:0.875rem}.root{width:100%;position:relative}.input{background:var(--scene-tree-search-input-background);border:var(--scene-tree-search-input-border);border-radius:var(--scene-tree-search-input-border-radius);box-sizing:border-box;font-size:inherit;padding:var(--scene-tree-search-input-padding);outline:none;width:100%}.input.background{background:var(--scene-tree-search-focused-input-background);outline:var(--scene-tree-search-focused-input-outline)}.overlay{position:absolute;top:0;bottom:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.overlay-clear{display:none;right:var(--scene-tree-search-clear-button-offset)}.overlay-clear.show{display:flex}.icon{color:var(--neutral-700)}.icon-search{position:absolute;left:var(--scene-tree-search-search-icon-offset);pointer-events:none}.clear-btn{display:flex;align-items:center;justify-content:center;pointer-events:initial;cursor:pointer}.clear-btn:hover{color:var(--neutral-800)}.clear-btn:disabled{pointer-events:none;opacity:0.5}";const f=class{constructor(s){t(this,s);this.search=i(this,"search",7);this.debounce=350;this.disabled=false;this.placeholder=undefined;this.value="";this.focused=false;this.isSearching=false;this.handleTextInput=t=>{const i=t.target;this.value=i.value;this.search.emit(this.value)};this.handleTextFocus=()=>{this.focused=true};this.handleTextBlur=()=>{this.focused=false};this.handleClear=t=>{t.preventDefault();this.value="";this.search.emit(this.value);this.setFocus()}}async setFocus(){var t,i;if(typeof((t=this.inputEl)===null||t===void 0?void 0:t.focus)==="function"){(i=this.inputEl)===null||i===void 0?void 0:i.focus()}}controllerChanged(t){this.setupController()}componentDidLoad(){this.handleDebounceChanged();this.setupController()}disconnectedCallback(){var t;(t=this.onStateChangeDisposable)===null||t===void 0?void 0:t.dispose()}render(){return s(e,null,s("div",{class:"root"},s("div",{class:"overlay icon icon-search"},s("slot",{name:"search-icon"},this.isSearching?s("vertex-viewer-spinner",{slot:"search-icon",size:"xs"}):s("vertex-viewer-icon",{name:"search",size:"sm"}))),s("input",{class:o("input",{background:this.focused||this.value.length>0}),type:"text",ref:t=>this.inputEl=t,placeholder:this.placeholder,disabled:this.disabled,value:this.value,onInput:this.handleTextInput,onFocus:this.handleTextFocus,onBlur:this.handleTextBlur}),s("div",{class:o("overlay overlay-clear",{show:this.value.length>0})},s("button",{class:"clear-btn icon",tabIndex:-1,onMouseDown:this.handleClear,disabled:this.disabled},s("slot",{name:"clear-icon"},s("vertex-viewer-icon",{name:"close-circle",size:"sm"}))))))}handleDebounceChanged(){this.search=r(this.search,this.debounce)}setupController(){var t,i;(t=this.onStateChangeDisposable)===null||t===void 0?void 0:t.dispose();this.onStateChangeDisposable=(i=this.controller)===null||i===void 0?void 0:i.onStateChange.on((t=>{this.isSearching=t.isSearching}))}static get watchers(){return{controller:["controllerChanged"]}}};f.style=v;function p(t){return t.toLowerCase()}var m=[/([a-z0-9])([A-Z])/g,/([A-Z])([A-Z][a-z])/g];var b=/[^A-Z0-9]+/gi;function w(t,i){if(i===void 0){i={}}var s=i.splitRegexp,e=s===void 0?m:s,n=i.stripRegexp,o=n===void 0?b:n,r=i.transform,h=r===void 0?p:r,l=i.delimiter,a=l===void 0?" ":l;var c=g(g(t,e,"$1\0$2"),o,"\0");var d=0;var u=c.length;while(c.charAt(d)==="\0")d++;while(c.charAt(u-1)==="\0")u--;return c.slice(d,u).split("\0").map(h).join(a)}function g(t,i,s){if(i instanceof RegExp)return t.replace(i,s);return i.reduce((function(t,i){return t.replace(i,s)}),t)}function y(t,i){var s=t.charAt(0);var e=t.substr(1).toLowerCase();if(i>0&&s>="0"&&s<="9"){return"_"+s+e}return""+s.toUpperCase()+e}function x(t,i){if(i===void 0){i={}}return w(t,l({delimiter:"",transform:y},i))}function z(t,i){if(i===0)return t.toLowerCase();return y(t,i)}function $(t,i){if(i===void 0){i={}}return x(t,l({transform:z},i))}const C=/{{(.+)}}/;class D{constructor(t){this.bindings=t}bind(t){this.bindings.forEach((i=>i.bind(t)))}}class j{constructor(t,i){this.node=t;this.expr=i}}class k extends j{constructor(t,i){super(t,i)}bind(t){const i=H(t,this.expr);if(i!==this.node.textContent){this.node.textContent=i}}}class M extends j{constructor(t,i,s){super(t,i);this.attr=s}bind(t){const i=H(t,this.expr);const s=this.node.getAttribute(this.attr);if(s!==i){this.node.setAttribute(this.attr,i)}}}class E extends j{constructor(t,i,s){super(t,i);this.prop=s}bind(t){const i=A(t,this.expr);const s=this.node[this.prop];if(s!==i){this.node[this.prop]=i}}}class L extends j{constructor(t,i,s){super(t,i);this.eventName=s}bind(t){var i;const s=_(this.expr);if(s!=null){(i=this.disposable)===null||i===void 0?void 0:i.dispose();const e=W(t,s,true);this.node.addEventListener(this.eventName,e);this.disposable={dispose:()=>{this.node.removeEventListener(this.eventName,e)}}}}}function R(t){const i=[];if(t.nodeType===Node.ELEMENT_NODE){const s=t;const e=T(s);e.forEach((t=>{if(t.name.startsWith("event:")){const e=$(t.name.replace("event:",""));i.push(new L(s,t.value,e))}else if(t.name.startsWith("attr:")){i.push(new M(s,t.value,t.name.replace("attr:","")))}else if(t.name.startsWith("prop:")){const e=$(t.name.replace("prop:",""));i.push(new E(s,t.value,e))}}))}else if(t.nodeType===Node.TEXT_NODE&&t.textContent!=null&&C.test(t.textContent)){i.push(new k(t,t.textContent))}for(let s=0;s<t.childNodes.length;s++){i.push(...R(t.childNodes[s]))}return i}function T(t){return Array.from(t.attributes).filter((t=>C.test(t.value)))}function _(t){const i=C.exec(t);return i!=null?i[1]:undefined}function H(t,i){const s=_(i);if(s!=null){const e=W(t,s,true);return i.replace(`{{${s}}}`,e===null||e===void 0?void 0:e.toString())}else{return i}}function A(t,i){const s=_(i);if(s!=null){const i=W(t,s,true);return i}else{return i}}function W(t,i,s=false){const[e,...n]=i.split(".");if(s&&n.length===0){return t}else if(s&&n.length>0){return W(t,n.join("."),false)}else{const i=t[e];if(n.length>0){return W(i,n.join("."),false)}else{return i}}}class I{constructor(t,i){this.container=t;this.elementFactory=i;this.instanceMap=new Map;this.elements=[]}swapHeadToTail(t){const i=this.elements.splice(0,t);this.elements.splice(this.elements.length,0,...i);return this.elements.concat()}swapTailToHead(t){const i=this.elements.splice(-t,t);this.elements.splice(0,0,...i);return this.elements.concat()}updateElements(t){const i=t-this.elements.length;if(i>0){for(let t=0;t<i;t++){this.createElement()}}else{for(let t=0;t<-i;t++){this.deleteElement()}}return this.elements.concat()}updateData(t){this.elements.forEach(((i,s)=>{const e=this.instanceMap.get(i);const n=t(s);e===null||e===void 0?void 0:e.bindings.bind(n)}))}updateElementFactory(t){this.elementFactory=t;this.updateElements(0)}iterateElements(t){this.elements.forEach(((i,s)=>{const e=this.instanceMap.get(i);t(i,e.bindings,s)}))}createElement(){const t=this.elementFactory();this.elements.push(t.element);this.instanceMap.set(t.element,t);this.container.append(t.element);return t}deleteElement(){const t=this.elements.pop();if(t!=null){this.instanceMap.delete(t);t.remove()}}}function O(t){const i=t.content.cloneNode(true);const s=i.firstElementChild;const e=new D(R(i));return{element:s,bindings:e}}function P(t){var i;return(i=t.getBoundingClientRect().top)!==null&&i!==void 0?i:0}function N(t){return t.clientWidth}function V(t,i,s){t.scrollTo(Object.assign({top:i},s))}class Z{constructor(){this.onStateChange=new u}setHovered(t){this.onStateChange.emit(t)}stateChanged(t){return this.onStateChange.on(t)}}function F(t,i,s=200){window.clearTimeout(i);return window.setTimeout(t,s)}const B=":host{position:relative;display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden;font-size:0.825rem;--scene-tree-table-row-padding:2px 0px;--scene-tree-table-column-gap:0.5rem;--scene-tree-table-column-resize-cursor:col-resize}.header{position:relative;display:grid;width:100%;border-bottom:var(--scene-tree-toolbar-separator)}.table{position:relative;display:grid;width:100%;height:100%;overflow:auto}.resize-overlay{position:absolute;top:0;cursor:var(--scene-tree-table-column-resize-cursor);z-index:1000;width:100%;height:100%}.divider-overlay{position:absolute;top:0;display:grid;pointer-events:none;z-index:2000;width:100%;height:100%}";const S=class{constructor(s){t(this,s);this.layoutRendered=i(this,"layoutRendered",7);this.rows=[];this.totalRows=0;this.rowHeight=24;this.overScanCount=25;this.layoutOffset=0;this.scrollOffset=0;this.viewportStartIndex=0;this.viewportEndIndex=0;this.columnGridLayout="1fr";this.columnGridFixedLayout="";this.isComputingCellHeight=true;this.isScrolling=false;this.stateMap={viewportRows:[],columnWidths:[],columnWidthPercentages:[]};this.lastStartIndex=0;this.columnElements=[];this.cellHoverController=new Z;this.layoutColumns=()=>{const t=this.viewportEndIndex-this.viewportStartIndex+1;const i=this.viewportStartIndex-this.lastStartIndex;this.lastStartIndex=this.viewportStartIndex;this.iterateColumns(((s,e,n)=>{e.updateElements(t);if(i>0){e.swapHeadToTail(i)}else{e.swapTailToHead(-i)}s.style.minHeight=`${this.rowHeight*this.totalRows}px`;const o=n===0?t=>`calc(${t} * 0.5rem)`:()=>`0`;e.iterateElements(((t,i,s)=>{const e=this.stateMap.viewportRows[s];if(d(e)){this.updateCell(e,t,i,s,o)}}))}))};this.updateCell=(t,i,s,e,n)=>{i.style.position="absolute";i.style.top=`${(this.viewportStartIndex+e)*this.rowHeight}px`;i.style.boxSizing="border-box";i.style.height=`${this.rowHeight}px`;i.style.width="100%";i.style.paddingLeft=n(t.node.depth);i.tree=this.tree;i.node=t.node;i.hoverController=this.cellHoverController;i.isScrolling=this.isScrolling;s.bind(t)};this.updateLayoutPosition=()=>{h((()=>{if(this.tableElement!=null){this.layoutOffset=P(this.tableElement)}}))};this.recomputeColumnWidths=()=>{const t=this.getLayoutWidth();if(t!=null&&this.stateMap.columnWidths.length===this.stateMap.columnWidthPercentages.length){this.stateMap.columnWidths=this.stateMap.columnWidthPercentages.map((i=>i*t))}};this.recomputeColumnPercentages=()=>{const t=this.getLayoutWidth();if(t!=null&&this.stateMap.columnWidths.length===this.stateMap.columnWidthPercentages.length){this.stateMap.columnWidthPercentages=this.stateMap.columnWidths.map((i=>i/t))}};this.computeInitialColumnWidths=()=>{this.stateMap.columnWidths=this.columnElements.map((t=>{var i;return(i=t.initialWidth)!==null&&i!==void 0?i:100}));const t=this.getLayoutWidth();if(t!=null){this.stateMap.columnWidthPercentages=this.columnElements.map((i=>{var s;return((s=i.initialWidth)!==null&&s!==void 0?s:100)/t}))}};this.updateColumnElements=()=>{this.columnElements=Array.from(this.hostEl.querySelectorAll("vertex-scene-tree-table-column"))};this.computeCellHeight=async()=>{var t;if(this.isComputingCellHeight&&this.columnElements.length>0){const i={index:0,node:{id:{hex:""},name:"Dummy row",expanded:false,selected:false,visible:false,partiallyVisible:false,isLeaf:false,depth:0,columnsList:[],filterHit:false,phantom:false,endItem:false},metadata:{},data:{}};const{bindings:s,element:e}=this.createColumnCellInstance(this.columnElements[0]);s.bind(i);e.style.visibility="hidden";(t=this.columnElements[0])===null||t===void 0?void 0:t.appendChild(e);if(typeof e.componentOnReady==="function"){await e.componentOnReady()}let n=e.clientHeight;let o=0;while(n===0&&o<10){n=await new Promise((t=>{setTimeout((()=>t(e.getBoundingClientRect().height)),5)}));o=o+1}this.rowHeight=n!==null&&n!==void 0?n:this.rowHeight;e.remove();this.isComputingCellHeight=false}};this.computeHeaderHeight=()=>{var t;if(this.stateMap.headerHeight==null){this.stateMap.headerHeight=(t=this.headerElement)===null||t===void 0?void 0:t.getBoundingClientRect().height;this.hostEl.style.setProperty("--header-height",`${this.stateMap.headerHeight}px`)}};this.computeColumnGridLayout=()=>{if(this.stateMap.columnWidths.length===0){this.stateMap.columnWidths=this.columnElements.map((t=>{var i;return(i=t.initialWidth)!==null&&i!==void 0?i:100}))}const t=this.getLayoutWidth();if(t!=null){if(this.stateMap.columnWidthPercentages.length===0){this.stateMap.columnWidthPercentages=this.columnElements.map((i=>{var s;return((s=i.initialWidth)!==null&&s!==void 0?s:100)/t}))}}this.columnGridLayout=`${this.stateMap.columnWidths.slice(0,-1).reduce(((t,i)=>`${t} ${i}px`),"")} 1fr`;this.columnGridFixedLayout=`${this.stateMap.columnWidths.reduce(((t,i)=>`${t} ${i}px`),"")}`};this.bindHeaderData=()=>{if(this.stateMap.headerInstances==null){this.stateMap.headerInstances=this.columnElements.map(((t,i)=>{var s;const e=this.createHeaderInstance(t);if(e!=null){e.element.style.paddingRight=i===this.columnElements.length-1?`0`:`var(--scene-tree-table-column-gap)`;e.element.slot="header";e.element.style.gridColumnStart=`${i+1}`;e.element.style.gridColumnEnd=`${i+2}`;(s=this.hostEl)===null||s===void 0?void 0:s.appendChild(e.element)}return e})).filter((t=>t!=null))}if(this.stateMap.headerDividerInstances==null){this.stateMap.headerDividerInstances=this.columnElements.slice(0,-1).map(((t,i)=>{var s;const e=this.createDividerInstance();e.element.slot="divider";e.element.style.position="absolute";e.element.style.right="0";e.element.style.pointerEvents="auto";e.element.style.gridColumnStart=`${i+1}`;e.element.style.gridColumnEnd=`${i+2}`;(s=this.hostEl)===null||s===void 0?void 0:s.appendChild(e.element);return e}))}};this.rebindHeaderData=()=>{var t,i;this.removeDividerDragListeners();(t=this.stateMap.headerInstances)===null||t===void 0?void 0:t.forEach((t=>t.element.remove()));(i=this.stateMap.headerDividerInstances)===null||i===void 0?void 0:i.forEach((t=>t.element.remove()));this.stateMap.headerInstances=undefined;this.stateMap.headerDividerInstances=undefined;this.bindHeaderData();this.addDividerDragListeners()};this.createDividerPointerDownHandler=t=>i=>{var s,e;i.preventDefault();i.stopPropagation();this.lastDividerPointerPosition=a.create(Math.floor(i.clientX),Math.floor(i.clientY));this.resizingColumnIndex=t;(e=(s=this.stateMap.headerDividerInstances)===null||s===void 0?void 0:s[t])===null||e===void 0?void 0:e.element.classList.add("dragging");window.addEventListener("pointermove",this.handleDividerPointerMove);window.addEventListener("pointerup",this.handleDividerPointerUp)};this.handleDividerPointerMove=t=>{const i=a.create(Math.floor(t.clientX),Math.floor(t.clientY));if(this.lastDividerPointerPosition!=null&&this.resizingColumnIndex!=null){const t=a.subtract(this.lastDividerPointerPosition,i);if(Math.abs(t.x)>=1&&this.isValidResize(t,this.resizingColumnIndex)){this.stateMap.columnWidths[this.resizingColumnIndex]-=t.x;if(this.resizingColumnIndex+1<this.stateMap.columnWidths.length){this.stateMap.columnWidths[this.resizingColumnIndex+1]+=t.x}this.lastDividerPointerPosition=i;this.computeColumnGridLayout()}}};this.handleDividerPointerUp=()=>{var t,i;if(this.resizingColumnIndex!=null){(i=(t=this.stateMap.headerDividerInstances)===null||t===void 0?void 0:t[this.resizingColumnIndex])===null||i===void 0?void 0:i.element.classList.remove("dragging")}this.lastDividerPointerPosition=undefined;this.resizingColumnIndex=undefined;this.recomputeColumnPercentages();window.removeEventListener("pointermove",this.handleDividerPointerMove);window.removeEventListener("pointerup",this.handleDividerPointerUp)};this.isValidResize=(t,i)=>{var s,e,n,o;const r=this.columnElements[i];const h=this.columnElements[i+1];const l=this.stateMap.columnWidths[i];const a=this.stateMap.columnWidths[i+1];const c=(s=r.minWidth)!==null&&s!==void 0?s:0;const d=(e=r.maxWidth)!==null&&e!==void 0?e:Number.MAX_SAFE_INTEGER;const u=(n=h.minWidth)!==null&&n!==void 0?n:0;const v=(o=h.maxWidth)!==null&&o!==void 0?o:Number.MAX_SAFE_INTEGER;const f=l-t.x>c&&l-t.x<d;const p=h!=null?a+t.x>u&&a+t.x<v:true;return f&&p};this.handleScrollChanged=t=>{this.isScrolling=true;this.scrollTimer=F((()=>{this.isScrolling=false}),this.scrollTimer);this.scrollOffset=t.target.scrollTop;this.computeAndUpdateViewportRows()}}componentWillLoad(){this.updateColumnElements();this.createPools();this.headerResizeObserver=new ResizeObserver((()=>{this.stateMap.headerHeight=undefined;this.computeHeaderHeight();this.updateLayoutPosition()}));this.resizeObserver=new ResizeObserver((()=>{this.updateLayoutPosition();this.clearLayoutHeight();this.clearLayoutWidth();this.recomputeColumnWidths();this.computeColumnGridLayout()}))}componentDidLoad(){var t,i,s;this.computeColumnGridLayout();this.ensureDividerTemplateDefined();this.computeCellHeight();this.computeHeaderHeight();this.computeInitialColumnWidths();this.rebindHeaderData();(t=this.tableElement)===null||t===void 0?void 0:t.addEventListener("scroll",this.handleScrollChanged,{passive:true});if(this.headerElement!=null){(i=this.headerResizeObserver)===null||i===void 0?void 0:i.observe(this.headerElement)}(s=this.resizeObserver)===null||s===void 0?void 0:s.observe(this.hostEl)}async componentWillRender(){await this.computeAndUpdateViewportRows()}componentDidRender(){this.layoutColumns();this.layoutRendered.emit()}disconnectedCallback(){var t,i,s;(t=this.tableElement)===null||t===void 0?void 0:t.removeEventListener("scroll",this.handleScrollChanged);this.removeDividerDragListeners();(i=this.headerResizeObserver)===null||i===void 0?void 0:i.disconnect();(s=this.resizeObserver)===null||s===void 0?void 0:s.disconnect();this.stateMap.columnWidths=[];this.stateMap.columnWidthPercentages=[]}async scrollToPosition(t,i){if(this.tableElement!=null){V(this.tableElement,t,i)}}render(){return s(e,null,s("div",{class:"header",ref:t=>this.headerElement=t,style:{gridTemplateColumns:this.columnGridFixedLayout,display:this.columnElements.length<=1?"none":"grid"}},s("slot",{name:"header"})),s("div",{class:"table",ref:t=>this.tableElement=t,style:{gridTemplateColumns:this.columnGridLayout}},s("slot",{onSlotchange:()=>{this.ensureDividerTemplateDefined();this.updateColumnElements();this.recreateColumnPools();this.computeInitialColumnWidths();this.rebindHeaderData();this.computeColumnGridLayout()}})),s("div",{class:"divider-overlay",style:{gridTemplateColumns:this.columnGridFixedLayout}},s("slot",{name:"divider"})),this.resizingColumnIndex!=null&&s("div",{class:"resize-overlay"}))}computeViewportRows(){const t=this.getLayoutHeight();if(t!=null){const i=Math.ceil(t/this.rowHeight);const s=Math.floor(this.scrollOffset/this.rowHeight);const e=s+i;const n=Math.max(0,s-this.overScanCount);const o=Math.min(this.totalRows-1,e+this.overScanCount);const r=this.getViewportRows(n,o);this.viewportStartIndex=n;this.viewportEndIndex=o;this.stateMap.viewportRows=r}}async computeAndUpdateViewportRows(){var t;this.computeViewportRows();if(((t=this.controller)===null||t===void 0?void 0:t.isConnected)&&this.viewportStartIndex>=0&&this.viewportEndIndex>=0){await this.controller.updateActiveRowRange(this.viewportStartIndex,this.viewportEndIndex)}}createPools(){if(this.stateMap.columnElementPools==null){this.stateMap.columnElementPools=this.columnElements.reduce(((t,i)=>t.set(i,new I(i,(()=>this.createColumnCellInstance(i))))),new WeakMap)}}recreateColumnPools(){this.columnElements.forEach((t=>{var i,s,e;if(((i=this.stateMap.columnElementPools)===null||i===void 0?void 0:i.get(t))==null){(s=this.stateMap.columnElementPools)===null||s===void 0?void 0:s.set(t,new I(t,(()=>this.createColumnCellInstance(t))))}else{(e=this.stateMap.columnElementPools.get(t))===null||e===void 0?void 0:e.updateElementFactory((()=>this.createColumnCellInstance(t)))}}))}iterateColumns(t){this.columnElements.forEach(((i,s)=>{var e;const n=(e=this.stateMap.columnElementPools)===null||e===void 0?void 0:e.get(i);if(n!=null){t(i,n,s)}else{throw new Error("Cannot find pool for column")}}))}ensureDividerTemplateDefined(){const t=this.hostEl.querySelector('template[slot="divider"]');if(t==null){const t=document.createElement("template");t.slot="divider";t.innerHTML=`\n <vertex-scene-tree-table-resize-divider slot="divider">\n </vertex-scene-tree-table-resize-divider>\n `;this.hostEl.appendChild(t)}}createHeaderInstance(t){const i=t.querySelector('template[slot="header"]');if(i!=null){return O(i)}}createDividerInstance(){const t=this.hostEl.querySelector('template[slot="divider"]');if(t!=null){return O(t)}else{throw new Error("Table is missing divider template element")}}createColumnCellInstance(t){const i=t.querySelector('template:not([slot="header"])');if(i!=null){return O(i)}else{throw new Error("Column is missing cell template element")}}addDividerDragListeners(){var t;this.stateMap.headerDividerListeners=(t=this.stateMap.headerDividerInstances)===null||t===void 0?void 0:t.map(((t,i)=>{const s=this.createDividerPointerDownHandler(i);t.element.addEventListener("pointerdown",s);return s}))}removeDividerDragListeners(){var t;if(this.stateMap.headerDividerListeners!=null){const i=this.stateMap.headerDividerListeners;(t=this.stateMap.headerDividerInstances)===null||t===void 0?void 0:t.forEach(((t,s)=>{const e=i[s];if(e!=null){t.element.removeEventListener("pointerdown",e)}}));this.stateMap.headerDividerListeners=undefined}}getViewportRows(t,i){const s=this.rows.slice(t,i+1);return s.map((t=>t!=null?this.populateRowData(t):t))}populateRowData(t){var i;if(this.rowData!=null&&t!=null){const s=((i=this.rowData)===null||i===void 0?void 0:i.call(this,t))||{};return Object.assign(Object.assign({},t),{data:s})}else{return t}}getLayoutHeight(){if(this.layoutHeight==null&&this.tableElement!=null){this.layoutHeight=c(this.tableElement)}return this.layoutHeight}getLayoutWidth(){if(this.layoutWidth==null){const t=N(this.hostEl);if(t>0){this.layoutWidth=t}}return this.layoutWidth}clearLayoutHeight(){this.layoutHeight=undefined}clearLayoutWidth(){this.layoutWidth=undefined}get hostEl(){return n(this)}};S.style=B;const U=":host{--scene-tree-toolbar-content-gap:8px;display:flex;padding:0.5rem}.content{display:flex;align-items:center}.content-primary{width:100%}::slotted(:not(:first-child)){margin-left:var(--scene-tree-toolbar-content-gap)}";const q=class{constructor(i){t(this,i)}render(){return s(e,null,s("div",{class:"content"},s("slot",{name:"before"})),s("div",{class:"content content-primary"},s("slot",null)),s("div",{class:"content"},s("slot",{name:"after"})))}};q.style=U;export{f as vertex_scene_tree_search,S as vertex_scene_tree_table_layout,q as vertex_scene_tree_toolbar};
5
- //# sourceMappingURL=p-073d15e9.entry.js.map
4
+ import{r as t,c as i,h as s,H as e,g as n}from"./p-50533a46.js";import{c as o}from"./p-9fe3f791.js";import{d as r,r as h}from"./p-f3383096.js";import{j as l,p as a}from"./p-71fbe522.js";import{a as c}from"./p-8867dab6.js";import{i as d}from"./p-c5381b4a.js";import{E as u}from"./p-7f54de9d.js";import"./p-9acf99ad.js";const v="button{border:none;background:transparent;cursor:pointer;margin:0;padding:0}:host{--scene-tree-search-search-icon-offset:8px;--scene-tree-search-clear-button-offset:8px;--scene-tree-search-input-padding:0.5rem 32px;--scene-tree-search-input-border:none;--scene-tree-search-input-border-radius:0.25rem;--scene-tree-search-input-background:none;--scene-tree-search-focused-input-background:var(--neutral-200);--scene-tree-search-focused-input-outline:none;display:block;width:100%;font-size:0.875rem}.root{width:100%;position:relative}.input{background:var(--scene-tree-search-input-background);border:var(--scene-tree-search-input-border);border-radius:var(--scene-tree-search-input-border-radius);box-sizing:border-box;font-size:inherit;padding:var(--scene-tree-search-input-padding);outline:none;width:100%}.input.background{background:var(--scene-tree-search-focused-input-background);outline:var(--scene-tree-search-focused-input-outline)}.overlay{position:absolute;top:0;bottom:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.overlay-clear{display:none;right:var(--scene-tree-search-clear-button-offset)}.overlay-clear.show{display:flex}.icon{color:var(--neutral-700)}.icon-search{position:absolute;left:var(--scene-tree-search-search-icon-offset);pointer-events:none}.clear-btn{display:flex;align-items:center;justify-content:center;pointer-events:initial;cursor:pointer}.clear-btn:hover{color:var(--neutral-800)}.clear-btn:disabled{pointer-events:none;opacity:0.5}";const f=class{constructor(s){t(this,s);this.search=i(this,"search",7);this.debounce=350;this.disabled=false;this.placeholder=undefined;this.value="";this.focused=false;this.isSearching=false;this.handleTextInput=t=>{const i=t.target;this.value=i.value;this.search.emit(this.value)};this.handleTextFocus=()=>{this.focused=true};this.handleTextBlur=()=>{this.focused=false};this.handleClear=t=>{t.preventDefault();this.value="";this.search.emit(this.value);this.setFocus()}}async setFocus(){var t,i;if(typeof((t=this.inputEl)===null||t===void 0?void 0:t.focus)==="function"){(i=this.inputEl)===null||i===void 0?void 0:i.focus()}}controllerChanged(t){this.setupController()}componentDidLoad(){this.handleDebounceChanged();this.setupController()}disconnectedCallback(){var t;(t=this.onStateChangeDisposable)===null||t===void 0?void 0:t.dispose()}render(){return s(e,null,s("div",{class:"root"},s("div",{class:"overlay icon icon-search"},s("slot",{name:"search-icon"},this.isSearching?s("vertex-viewer-spinner",{slot:"search-icon",size:"xs"}):s("vertex-viewer-icon",{name:"search",size:"sm"}))),s("input",{class:o("input",{background:this.focused||this.value.length>0}),type:"text",ref:t=>this.inputEl=t,placeholder:this.placeholder,disabled:this.disabled,value:this.value,onInput:this.handleTextInput,onFocus:this.handleTextFocus,onBlur:this.handleTextBlur}),s("div",{class:o("overlay overlay-clear",{show:this.value.length>0})},s("button",{class:"clear-btn icon",tabIndex:-1,onMouseDown:this.handleClear,disabled:this.disabled},s("slot",{name:"clear-icon"},s("vertex-viewer-icon",{name:"close-circle",size:"sm"}))))))}handleDebounceChanged(){this.search=r(this.search,this.debounce)}setupController(){var t,i;(t=this.onStateChangeDisposable)===null||t===void 0?void 0:t.dispose();this.onStateChangeDisposable=(i=this.controller)===null||i===void 0?void 0:i.onStateChange.on((t=>{this.isSearching=t.isSearching}))}static get watchers(){return{controller:["controllerChanged"]}}};f.style=v;function p(t){return t.toLowerCase()}var m=[/([a-z0-9])([A-Z])/g,/([A-Z])([A-Z][a-z])/g];var w=/[^A-Z0-9]+/gi;function b(t,i){if(i===void 0){i={}}var s=i.splitRegexp,e=s===void 0?m:s,n=i.stripRegexp,o=n===void 0?w:n,r=i.transform,h=r===void 0?p:r,l=i.delimiter,a=l===void 0?" ":l;var c=g(g(t,e,"$1\0$2"),o,"\0");var d=0;var u=c.length;while(c.charAt(d)==="\0")d++;while(c.charAt(u-1)==="\0")u--;return c.slice(d,u).split("\0").map(h).join(a)}function g(t,i,s){if(i instanceof RegExp)return t.replace(i,s);return i.reduce((function(t,i){return t.replace(i,s)}),t)}function y(t,i){var s=t.charAt(0);var e=t.substr(1).toLowerCase();if(i>0&&s>="0"&&s<="9"){return"_"+s+e}return""+s.toUpperCase()+e}function x(t,i){if(i===void 0){i={}}return b(t,l({delimiter:"",transform:y},i))}function z(t,i){if(i===0)return t.toLowerCase();return y(t,i)}function C(t,i){if(i===void 0){i={}}return x(t,l({transform:z},i))}const $=/{{(.+)}}/;class R{constructor(t){this.bindings=t}bind(t){this.bindings.forEach((i=>i.bind(t)))}}class D{constructor(t,i){this.node=t;this.expr=i}}class j extends D{constructor(t,i){super(t,i)}bind(t){const i=H(t,this.expr);if(i!==this.node.textContent){this.node.textContent=i}}}class k extends D{constructor(t,i,s){super(t,i);this.attr=s}bind(t){const i=H(t,this.expr);const s=this.node.getAttribute(this.attr);if(s!==i){this.node.setAttribute(this.attr,i)}}}class M extends D{constructor(t,i,s){super(t,i);this.prop=s}bind(t){const i=P(t,this.expr);const s=this.node[this.prop];if(s!==i){this.node[this.prop]=i}}}class E extends D{constructor(t,i,s){super(t,i);this.eventName=s}bind(t){var i;const s=_(this.expr);if(s!=null){(i=this.disposable)===null||i===void 0?void 0:i.dispose();const e=V(t,s,true);this.node.addEventListener(this.eventName,e);this.disposable={dispose:()=>{this.node.removeEventListener(this.eventName,e)}}}}}function L(t){const i=[];if(t.nodeType===Node.ELEMENT_NODE){const s=t;const e=T(s);e.forEach((t=>{if(t.name.startsWith("event:")){const e=C(t.name.replace("event:",""));i.push(new E(s,t.value,e))}else if(t.name.startsWith("attr:")){i.push(new k(s,t.value,t.name.replace("attr:","")))}else if(t.name.startsWith("prop:")){const e=C(t.name.replace("prop:",""));i.push(new M(s,t.value,e))}}))}else if(t.nodeType===Node.TEXT_NODE&&t.textContent!=null&&$.test(t.textContent)){i.push(new j(t,t.textContent))}for(let s=0;s<t.childNodes.length;s++){i.push(...L(t.childNodes[s]))}return i}function T(t){return Array.from(t.attributes).filter((t=>$.test(t.value)))}function _(t){const i=$.exec(t);return i!=null?i[1]:undefined}function H(t,i){const s=_(i);if(s!=null){const e=V(t,s,true);return i.replace(`{{${s}}}`,e===null||e===void 0?void 0:e.toString())}else{return i}}function P(t,i){const s=_(i);if(s!=null){const i=V(t,s,true);return i}else{return i}}function V(t,i,s=false){const[e,...n]=i.split(".");if(s&&n.length===0){return t}else if(s&&n.length>0){return V(t,n.join("."),false)}else{const i=t[e];if(n.length>0){return V(i,n.join("."),false)}else{return i}}}class A{constructor(t,i){this.container=t;this.elementFactory=i;this.instanceMap=new Map;this.elements=[]}swapHeadToTail(t){const i=this.elements.splice(0,t);this.elements.splice(this.elements.length,0,...i);return this.elements.concat()}swapTailToHead(t){const i=this.elements.splice(-t,t);this.elements.splice(0,0,...i);return this.elements.concat()}updateElements(t){const i=t-this.elements.length;if(i>0){for(let t=0;t<i;t++){this.createElement()}}else{for(let t=0;t<-i;t++){this.deleteElement()}}return this.elements.concat()}updateData(t){this.elements.forEach(((i,s)=>{const e=this.instanceMap.get(i);const n=t(s);e===null||e===void 0?void 0:e.bindings.bind(n)}))}updateElementFactory(t){this.elementFactory=t;this.updateElements(0)}iterateElements(t){this.elements.forEach(((i,s)=>{const e=this.instanceMap.get(i);t(i,e.bindings,s)}))}createElement(){const t=this.elementFactory();this.elements.push(t.element);this.instanceMap.set(t.element,t);this.container.append(t.element);return t}deleteElement(){const t=this.elements.pop();if(t!=null){this.instanceMap.delete(t);t.remove()}}}function W(t){const i=t.content.cloneNode(true);const s=i.firstElementChild;const e=new R(L(i));return{element:s,bindings:e}}function I(t){var i;return(i=t.getBoundingClientRect().top)!==null&&i!==void 0?i:0}function O(t){return t.clientWidth}function N(t,i,s){t.scrollTo(Object.assign({top:i},s))}class Z{constructor(){this.onStateChange=new u}setHovered(t){this.onStateChange.emit(t)}stateChanged(t){return this.onStateChange.on(t)}}function F(t,i,s=200){window.clearTimeout(i);return window.setTimeout(t,s)}const B=":host{position:relative;display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden;font-size:0.825rem;--scene-tree-table-row-padding:2px 0px;--scene-tree-table-column-gap:0.5rem;--scene-tree-table-column-resize-cursor:col-resize}.header{position:relative;display:grid;width:100%;border-bottom:var(--scene-tree-toolbar-separator)}.table{position:relative;display:grid;width:100%;height:100%;overflow:auto}.resize-overlay{position:absolute;top:0;cursor:var(--scene-tree-table-column-resize-cursor);z-index:1000;width:100%;height:100%}.divider-overlay{position:absolute;top:0;display:grid;pointer-events:none;z-index:2000;width:100%;height:100%}";const S=class{constructor(s){t(this,s);this.layoutRendered=i(this,"layoutRendered",7);this.rows=[];this.totalRows=0;this.rowHeight=24;this.overScanCount=25;this.layoutOffset=0;this.scrollOffset=0;this.viewportStartIndex=0;this.viewportEndIndex=0;this.columnGridLayout="1fr";this.columnGridFixedLayout="";this.isComputingCellHeight=true;this.isScrolling=false;this.stateMap={viewportRows:[],columnWidths:[],columnWidthPercentages:[]};this.lastStartIndex=0;this.columnElements=[];this.cellHoverController=new Z;this.layoutColumns=()=>{const t=this.viewportEndIndex-this.viewportStartIndex+1;const i=this.viewportStartIndex-this.lastStartIndex;this.lastStartIndex=this.viewportStartIndex;this.iterateColumns(((s,e,n)=>{e.updateElements(t);if(i>0){e.swapHeadToTail(i)}else{e.swapTailToHead(-i)}s.style.minHeight=`${this.rowHeight*this.totalRows}px`;const o=n===0?t=>`calc(${t} * 0.5rem)`:()=>`0`;e.iterateElements(((t,i,s)=>{const e=this.stateMap.viewportRows[s];if(d(e)){this.updateCell(e,t,i,s,o)}}))}))};this.updateCell=(t,i,s,e,n)=>{i.style.position="absolute";i.style.top=`${(this.viewportStartIndex+e)*this.rowHeight}px`;i.style.boxSizing="border-box";i.style.height=`${this.rowHeight}px`;i.style.width="100%";i.style.paddingLeft=n(t.node.depth);i.tree=this.tree;i.node=t.node;i.hoverController=this.cellHoverController;i.isScrolling=this.isScrolling;s.bind(t)};this.updateLayoutPosition=()=>{h((()=>{if(this.tableElement!=null){this.layoutOffset=I(this.tableElement)}}))};this.recomputeColumnWidths=()=>{const t=this.getLayoutWidth();if(t!=null&&this.stateMap.columnWidths.length===this.stateMap.columnWidthPercentages.length){this.stateMap.columnWidths=this.stateMap.columnWidthPercentages.map((i=>i*t))}};this.recomputeColumnPercentages=()=>{const t=this.getLayoutWidth();if(t!=null&&this.stateMap.columnWidths.length===this.stateMap.columnWidthPercentages.length){this.stateMap.columnWidthPercentages=this.stateMap.columnWidths.map((i=>i/t))}};this.computeInitialColumnWidths=()=>{this.stateMap.columnWidths=this.columnElements.map((t=>{var i;return(i=t.initialWidth)!==null&&i!==void 0?i:100}));const t=this.getLayoutWidth();if(t!=null){this.stateMap.columnWidthPercentages=this.columnElements.map((i=>{var s;return((s=i.initialWidth)!==null&&s!==void 0?s:100)/t}))}};this.updateColumnElements=()=>{this.columnElements=Array.from(this.hostEl.querySelectorAll("vertex-scene-tree-table-column"))};this.computeCellHeight=async()=>{var t;if(this.isComputingCellHeight&&this.columnElements.length>0){const i={index:0,node:{id:{hex:""},name:"Dummy row",expanded:false,selected:false,visible:false,partiallyVisible:false,isLeaf:false,depth:0,columnsList:[],filterHit:false,phantom:false,endItem:false},metadata:{},data:{}};const{bindings:s,element:e}=this.createColumnCellInstance(this.columnElements[0]);s.bind(i);e.style.visibility="hidden";(t=this.columnElements[0])===null||t===void 0?void 0:t.appendChild(e);if(typeof e.componentOnReady==="function"){await e.componentOnReady()}let n=e.clientHeight;let o=0;while(n===0&&o<10){n=await new Promise((t=>{setTimeout((()=>t(e.getBoundingClientRect().height)),5)}));o=o+1}this.rowHeight=n!==null&&n!==void 0?n:this.rowHeight;e.remove();this.isComputingCellHeight=false}};this.computeHeaderHeight=()=>{var t;if(this.stateMap.headerHeight==null){this.stateMap.headerHeight=(t=this.headerElement)===null||t===void 0?void 0:t.getBoundingClientRect().height;this.hostEl.style.setProperty("--header-height",`${this.stateMap.headerHeight}px`)}};this.computeColumnGridLayout=()=>{if(this.stateMap.columnWidths.length===0){this.stateMap.columnWidths=this.columnElements.map((t=>{var i;return(i=t.initialWidth)!==null&&i!==void 0?i:100}))}const t=this.getLayoutWidth();if(t!=null){if(this.stateMap.columnWidthPercentages.length===0){this.stateMap.columnWidthPercentages=this.columnElements.map((i=>{var s;return((s=i.initialWidth)!==null&&s!==void 0?s:100)/t}))}}this.columnGridLayout=`${this.stateMap.columnWidths.slice(0,-1).reduce(((t,i)=>`${t} ${i}px`),"")} 1fr`;this.columnGridFixedLayout=`${this.stateMap.columnWidths.reduce(((t,i)=>`${t} ${i}px`),"")}`};this.bindHeaderData=()=>{if(this.stateMap.headerInstances==null){this.stateMap.headerInstances=this.columnElements.map(((t,i)=>{var s;const e=this.createHeaderInstance(t);if(e!=null){e.element.style.paddingRight=i===this.columnElements.length-1?`0`:`var(--scene-tree-table-column-gap)`;e.element.slot="header";e.element.style.gridColumnStart=`${i+1}`;e.element.style.gridColumnEnd=`${i+2}`;(s=this.hostEl)===null||s===void 0?void 0:s.appendChild(e.element)}return e})).filter((t=>t!=null))}if(this.stateMap.headerDividerInstances==null){this.stateMap.headerDividerInstances=this.columnElements.slice(0,-1).map(((t,i)=>{var s;const e=this.createDividerInstance();e.element.slot="divider";e.element.style.position="absolute";e.element.style.right="0";e.element.style.pointerEvents="auto";e.element.style.gridColumnStart=`${i+1}`;e.element.style.gridColumnEnd=`${i+2}`;(s=this.hostEl)===null||s===void 0?void 0:s.appendChild(e.element);return e}))}};this.rebindHeaderData=()=>{var t,i;this.removeDividerDragListeners();(t=this.stateMap.headerInstances)===null||t===void 0?void 0:t.forEach((t=>t.element.remove()));(i=this.stateMap.headerDividerInstances)===null||i===void 0?void 0:i.forEach((t=>t.element.remove()));this.stateMap.headerInstances=undefined;this.stateMap.headerDividerInstances=undefined;this.bindHeaderData();this.addDividerDragListeners()};this.createDividerPointerDownHandler=t=>i=>{var s,e;i.preventDefault();i.stopPropagation();this.lastDividerPointerPosition=a.create(Math.floor(i.clientX),Math.floor(i.clientY));this.resizingColumnIndex=t;(e=(s=this.stateMap.headerDividerInstances)===null||s===void 0?void 0:s[t])===null||e===void 0?void 0:e.element.classList.add("dragging");window.addEventListener("pointermove",this.handleDividerPointerMove);window.addEventListener("pointerup",this.handleDividerPointerUp)};this.handleDividerPointerMove=t=>{const i=a.create(Math.floor(t.clientX),Math.floor(t.clientY));if(this.lastDividerPointerPosition!=null&&this.resizingColumnIndex!=null){const t=a.subtract(this.lastDividerPointerPosition,i);if(Math.abs(t.x)>=1&&this.isValidResize(t,this.resizingColumnIndex)){this.stateMap.columnWidths[this.resizingColumnIndex]-=t.x;if(this.resizingColumnIndex+1<this.stateMap.columnWidths.length){this.stateMap.columnWidths[this.resizingColumnIndex+1]+=t.x}this.lastDividerPointerPosition=i;this.computeColumnGridLayout()}}};this.handleDividerPointerUp=()=>{var t,i;if(this.resizingColumnIndex!=null){(i=(t=this.stateMap.headerDividerInstances)===null||t===void 0?void 0:t[this.resizingColumnIndex])===null||i===void 0?void 0:i.element.classList.remove("dragging")}this.lastDividerPointerPosition=undefined;this.resizingColumnIndex=undefined;this.recomputeColumnPercentages();window.removeEventListener("pointermove",this.handleDividerPointerMove);window.removeEventListener("pointerup",this.handleDividerPointerUp)};this.isValidResize=(t,i)=>{var s,e,n,o;const r=this.columnElements[i];const h=this.columnElements[i+1];const l=this.stateMap.columnWidths[i];const a=this.stateMap.columnWidths[i+1];const c=(s=r.minWidth)!==null&&s!==void 0?s:0;const d=(e=r.maxWidth)!==null&&e!==void 0?e:Number.MAX_SAFE_INTEGER;const u=(n=h.minWidth)!==null&&n!==void 0?n:0;const v=(o=h.maxWidth)!==null&&o!==void 0?o:Number.MAX_SAFE_INTEGER;const f=l-t.x>c&&l-t.x<d;const p=h!=null?a+t.x>u&&a+t.x<v:true;return f&&p};this.handleScrollChanged=t=>{this.isScrolling=true;this.scrollTimer=F((()=>{this.isScrolling=false}),this.scrollTimer);this.scrollOffset=t.target.scrollTop;this.computeAndUpdateViewportRows()}}componentWillLoad(){this.updateColumnElements();this.createPools();this.headerResizeObserver=new ResizeObserver((()=>{this.stateMap.headerHeight=undefined;this.computeHeaderHeight();this.updateLayoutPosition()}));this.resizeObserver=new ResizeObserver((()=>{this.updateLayoutPosition();this.clearLayoutHeight();this.clearLayoutWidth();this.recomputeColumnWidths();this.computeColumnGridLayout()}))}componentDidLoad(){var t,i,s;this.computeColumnGridLayout();this.ensureDividerTemplateDefined();this.computeCellHeight();this.computeHeaderHeight();this.computeInitialColumnWidths();this.rebindHeaderData();(t=this.tableElement)===null||t===void 0?void 0:t.addEventListener("scroll",this.handleScrollChanged,{passive:true});if(this.headerElement!=null){(i=this.headerResizeObserver)===null||i===void 0?void 0:i.observe(this.headerElement)}(s=this.resizeObserver)===null||s===void 0?void 0:s.observe(this.hostEl)}async componentWillRender(){await this.computeAndUpdateViewportRows()}componentDidRender(){this.layoutColumns();this.layoutRendered.emit()}disconnectedCallback(){var t,i,s;(t=this.tableElement)===null||t===void 0?void 0:t.removeEventListener("scroll",this.handleScrollChanged);this.removeDividerDragListeners();(i=this.headerResizeObserver)===null||i===void 0?void 0:i.disconnect();(s=this.resizeObserver)===null||s===void 0?void 0:s.disconnect();this.stateMap.columnWidths=[];this.stateMap.columnWidthPercentages=[]}async handleViewportRowsPropsChanged(){await this.computeAndUpdateViewportRows()}async scrollToPosition(t,i){if(this.tableElement!=null){N(this.tableElement,t,i)}}render(){return s(e,null,s("div",{class:"header",ref:t=>this.headerElement=t,style:{gridTemplateColumns:this.columnGridFixedLayout,display:this.columnElements.length<=1?"none":"grid"}},s("slot",{name:"header"})),s("div",{class:"table",ref:t=>this.tableElement=t,style:{gridTemplateColumns:this.columnGridLayout}},s("slot",{onSlotchange:()=>{this.ensureDividerTemplateDefined();this.updateColumnElements();this.recreateColumnPools();this.computeInitialColumnWidths();this.rebindHeaderData();this.computeColumnGridLayout()}})),s("div",{class:"divider-overlay",style:{gridTemplateColumns:this.columnGridFixedLayout}},s("slot",{name:"divider"})),this.resizingColumnIndex!=null&&s("div",{class:"resize-overlay"}))}computeViewportRows(){const t=this.getLayoutHeight();if(t!=null){const i=Math.ceil(t/this.rowHeight);const s=Math.floor(this.scrollOffset/this.rowHeight);const e=s+i;const n=Math.max(0,s-this.overScanCount);const o=Math.min(this.totalRows-1,e+this.overScanCount);const r=this.getViewportRows(n,o);this.viewportStartIndex=n;this.viewportEndIndex=o;this.stateMap.viewportRows=r}}async computeAndUpdateViewportRows(){var t;this.computeViewportRows();if(((t=this.controller)===null||t===void 0?void 0:t.isConnected)&&this.viewportStartIndex>=0&&this.viewportEndIndex>=0){await this.controller.updateActiveRowRange(this.viewportStartIndex,this.viewportEndIndex)}}createPools(){if(this.stateMap.columnElementPools==null){this.stateMap.columnElementPools=this.columnElements.reduce(((t,i)=>t.set(i,new A(i,(()=>this.createColumnCellInstance(i))))),new WeakMap)}}recreateColumnPools(){this.columnElements.forEach((t=>{var i,s,e;if(((i=this.stateMap.columnElementPools)===null||i===void 0?void 0:i.get(t))==null){(s=this.stateMap.columnElementPools)===null||s===void 0?void 0:s.set(t,new A(t,(()=>this.createColumnCellInstance(t))))}else{(e=this.stateMap.columnElementPools.get(t))===null||e===void 0?void 0:e.updateElementFactory((()=>this.createColumnCellInstance(t)))}}))}iterateColumns(t){this.columnElements.forEach(((i,s)=>{var e;const n=(e=this.stateMap.columnElementPools)===null||e===void 0?void 0:e.get(i);if(n!=null){t(i,n,s)}else{throw new Error("Cannot find pool for column")}}))}ensureDividerTemplateDefined(){const t=this.hostEl.querySelector('template[slot="divider"]');if(t==null){const t=document.createElement("template");t.slot="divider";t.innerHTML=`\n <vertex-scene-tree-table-resize-divider slot="divider">\n </vertex-scene-tree-table-resize-divider>\n `;this.hostEl.appendChild(t)}}createHeaderInstance(t){const i=t.querySelector('template[slot="header"]');if(i!=null){return W(i)}}createDividerInstance(){const t=this.hostEl.querySelector('template[slot="divider"]');if(t!=null){return W(t)}else{throw new Error("Table is missing divider template element")}}createColumnCellInstance(t){const i=t.querySelector('template:not([slot="header"])');if(i!=null){return W(i)}else{throw new Error("Column is missing cell template element")}}addDividerDragListeners(){var t;this.stateMap.headerDividerListeners=(t=this.stateMap.headerDividerInstances)===null||t===void 0?void 0:t.map(((t,i)=>{const s=this.createDividerPointerDownHandler(i);t.element.addEventListener("pointerdown",s);return s}))}removeDividerDragListeners(){var t;if(this.stateMap.headerDividerListeners!=null){const i=this.stateMap.headerDividerListeners;(t=this.stateMap.headerDividerInstances)===null||t===void 0?void 0:t.forEach(((t,s)=>{const e=i[s];if(e!=null){t.element.removeEventListener("pointerdown",e)}}));this.stateMap.headerDividerListeners=undefined}}getViewportRows(t,i){const s=this.rows.slice(t,i+1);return s.map((t=>t!=null?this.populateRowData(t):t))}populateRowData(t){var i;if(this.rowData!=null&&t!=null){const s=((i=this.rowData)===null||i===void 0?void 0:i.call(this,t))||{};return Object.assign(Object.assign({},t),{data:s})}else{return t}}getLayoutHeight(){if(this.layoutHeight==null&&this.tableElement!=null){this.layoutHeight=c(this.tableElement)}return this.layoutHeight}getLayoutWidth(){if(this.layoutWidth==null){const t=O(this.hostEl);if(t>0){this.layoutWidth=t}}return this.layoutWidth}clearLayoutHeight(){this.layoutHeight=undefined}clearLayoutWidth(){this.layoutWidth=undefined}get hostEl(){return n(this)}static get watchers(){return{rows:["handleViewportRowsPropsChanged"],totalRows:["handleViewportRowsPropsChanged"],rowHeight:["handleViewportRowsPropsChanged"]}}};S.style=B;const U=":host{--scene-tree-toolbar-content-gap:8px;display:flex;padding:0.5rem}.content{display:flex;align-items:center}.content-primary{width:100%}::slotted(:not(:first-child)){margin-left:var(--scene-tree-toolbar-content-gap)}";const q=class{constructor(i){t(this,i)}render(){return s(e,null,s("div",{class:"content"},s("slot",{name:"before"})),s("div",{class:"content content-primary"},s("slot",null)),s("div",{class:"content"},s("slot",{name:"after"})))}};q.style=U;export{f as vertex_scene_tree_search,S as vertex_scene_tree_table_layout,q as vertex_scene_tree_toolbar};
5
+ //# sourceMappingURL=p-951a2e08.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["src/components/scene-tree-search/scene-tree-search.css?tag=vertex-scene-tree-search&encapsulation=shadow","src/components/scene-tree-search/scene-tree-search.tsx","../html-templates/dist/bundle.esm.js","src/components/scene-tree-table-layout/lib/dom.ts","src/components/scene-tree-table-layout/lib/hover-controller.ts","src/components/scene-tree-table-layout/lib/window.ts","src/components/scene-tree-table-layout/scene-tree-table-layout.css?tag=vertex-scene-tree-table-layout&encapsulation=shadow","src/components/scene-tree-table-layout/scene-tree-table-layout.tsx","src/components/scene-tree-toolbar/scene-tree-toolbar.css?tag=vertex-scene-tree-toolbar&encapsulation=shadow","src/components/scene-tree-toolbar/scene-tree-toolbar.tsx"],"names":["sceneTreeSearchCss","SceneTreeSearch","[object Object]","hostRef","this","debounce","disabled","placeholder","undefined","value","focused","isSearching","handleTextInput","event","input","target","search","emit","handleTextFocus","handleTextBlur","handleClear","preventDefault","setFocus","_a","inputEl","focus","_b","controller","setupController","handleDebounceChanged","onStateChangeDisposable","dispose","h","Host","class","name","slot","size","classNames","background","length","type","ref","onInput","onFocus","onBlur","show","tabIndex","onMouseDown","debounceEvent","onStateChange","on","state","lowerCase","str","toLowerCase","DEFAULT_SPLIT_REGEXP","DEFAULT_STRIP_REGEXP","noCase","options","splitRegexp","stripRegexp","_c","transform","_d","delimiter","result","replace","start","end","charAt","slice","split","map","join","re","RegExp","reduce","pascalCaseTransform","index","firstChar","lowerChars","substr","toUpperCase","pascalCase","__assign","camelCaseTransform","camelCase","bindingRegEx","CollectionBinding","bindings","data","forEach","binding","bind","NodeBinding","node","expr","TextNodeBinding","super","newContent","replaceBindingString","textContent","AttributeBinding","attr","newValue","oldValue","getAttribute","setAttribute","PropertyBinding","prop","replaceBinding","EventHandlerBinding","eventName","path","extractBindingPath","disposable","listener","getBindableValue","addEventListener","removeEventListener","generateBindings","nodeType","Node","ELEMENT_NODE","el","bindableAttributes","getBindableAttributes","startsWith","push","propName","TEXT_NODE","test","i","childNodes","element","Array","from","attributes","filter","exec","toString","isHead","head","tail","ElementPool","container","elementFactory","instanceMap","Map","elements","count","sliced","splice","concat","diff","createElement","deleteElement","f","instance","get","updateElements","set","append","pop","delete","remove","generateInstanceFromTemplate","template","fragment","content","cloneNode","firstElementChild","getSceneTreeTableOffsetTop","getBoundingClientRect","top","getSceneTreeTableViewportWidth","clientWidth","scrollToTop","scrollTo","Object","assign","SceneTreeCellHoverController","EventDispatcher","id","restartTimeout","fn","existingTimeout","delay","window","clearTimeout","setTimeout","sceneTreeTableLayoutCss","SceneTreeTableLayout","rows","totalRows","rowHeight","overScanCount","layoutOffset","scrollOffset","viewportStartIndex","viewportEndIndex","columnGridLayout","columnGridFixedLayout","isComputingCellHeight","isScrolling","stateMap","viewportRows","columnWidths","columnWidthPercentages","lastStartIndex","columnElements","cellHoverController","layoutColumns","visibleRowCount","iterateColumns","col","pool","colIndex","swapHeadToTail","swapTailToHead","style","minHeight","cellPaddingLeft","depth","iterateElements","rowIndex","row","isLoadedRow","updateCell","cell","position","boxSizing","height","width","paddingLeft","tree","hoverController","updateLayoutPosition","readDOM","tableElement","recomputeColumnWidths","layoutWidth","getLayoutWidth","w","recomputeColumnPercentages","computeInitialColumnWidths","c","initialWidth","updateColumnElements","hostEl","querySelectorAll","computeCellHeight","async","dummyData","hex","expanded","selected","visible","partiallyVisible","isLeaf","columnsList","filterHit","phantom","endItem","metadata","createColumnCellInstance","visibility","appendChild","componentOnReady","clientHeight","attempts","Promise","resolve","computeHeaderHeight","headerHeight","headerElement","setProperty","computeColumnGridLayout","res","bindHeaderData","headerInstances","createHeaderInstance","paddingRight","gridColumnStart","gridColumnEnd","headerDividerInstances","_","createDividerInstance","right","pointerEvents","rebindHeaderData","removeDividerDragListeners","addDividerDragListeners","createDividerPointerDownHandler","stopPropagation","lastDividerPointerPosition","Point","create","Math","floor","clientX","clientY","resizingColumnIndex","classList","add","handleDividerPointerMove","handleDividerPointerUp","current","subtract","abs","x","isValidResize","currentColumn","nextColumn","currentWidth","nextWidth","currentMinWidth","minWidth","currentMaxWidth","maxWidth","Number","MAX_SAFE_INTEGER","nextMinWidth","nextMaxWidth","currentIsValid","nextIsValid","handleScrollChanged","scrollTimer","scrollTop","computeAndUpdateViewportRows","createPools","headerResizeObserver","ResizeObserver","resizeObserver","clearLayoutHeight","clearLayoutWidth","ensureDividerTemplateDefined","passive","observe","layoutRendered","disconnect","gridTemplateColumns","display","onSlotchange","recreateColumnPools","viewportHeight","getLayoutHeight","viewportCount","ceil","startIndex","max","endIndex","min","getViewportRows","computeViewportRows","isConnected","updateActiveRowRange","columnElementPools","WeakMap","updateElementFactory","column","Error","querySelector","defaultDividerTemplate","document","innerHTML","headerDividerListeners","d","listeners","populateRowData","rowData","call","layoutHeight","getSceneTreeViewportHeight","computedWidth","sceneTreeToolbarCss","SceneTreeToolbar"],"mappings":"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","sourcesContent":["@import url('../../css/button-reset.css');\n\n:host {\n /**\n * @prop --scene-tree-search-search-icon-offset: A CSS length that specifies\n * the horizontal offset of the search icon\n */\n --scene-tree-search-search-icon-offset: 8px;\n\n /**\n * @prop --scene-tree-search-clear-button-offset: A CSS length that specifies\n * the horizontal offset of the clear button.\n */\n --scene-tree-search-clear-button-offset: 8px;\n\n /**\n * @prop --scene-tree-search-input-padding: A CSS padding value that specifies\n * horizontal and vertical lengths of the internal text input.\n */\n --scene-tree-search-input-padding: 0.5rem 32px;\n\n /**\n * @prop --scene-tree-search-input-border: A CSS border value that specifies\n * the border of the internal text input.\n */\n --scene-tree-search-input-border: none;\n\n /**\n * @prop --scene-tree-search-input-border-radius: A CSS length that specifies\n * the radius of the internal text input.\n */\n --scene-tree-search-input-border-radius: 0.25rem;\n\n /**\n * @prop --scene-tree-search-input-background: A CSS background that specifies\n * the background color or image of the internal text input.\n */\n --scene-tree-search-input-background: none;\n\n /**\n * @prop --scene-tree-search-focused-input-background: A CSS background value\n * that specifies the background of the internal text input when focused.\n */\n --scene-tree-search-focused-input-background: var(--neutral-200);\n\n /**\n * @prop --scene-tree-search-focused-input-outline: A CSS outline value that\n * specifies the outline of the internal text input when focused.\n */\n --scene-tree-search-focused-input-outline: none;\n\n display: block;\n width: 100%;\n font-size: 0.875rem;\n}\n\n.root {\n width: 100%;\n position: relative;\n}\n\n.input {\n background: var(--scene-tree-search-input-background);\n border: var(--scene-tree-search-input-border);\n border-radius: var(--scene-tree-search-input-border-radius);\n box-sizing: border-box;\n font-size: inherit;\n padding: var(--scene-tree-search-input-padding);\n outline: none;\n width: 100%;\n}\n\n.input.background {\n background: var(--scene-tree-search-focused-input-background);\n outline: var(--scene-tree-search-focused-input-outline);\n}\n\n.overlay {\n position: absolute;\n top: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: none;\n}\n\n.overlay-clear {\n display: none;\n right: var(--scene-tree-search-clear-button-offset);\n}\n\n.overlay-clear.show {\n display: flex;\n}\n\n.icon {\n color: var(--neutral-700);\n}\n\n.icon-search {\n position: absolute;\n left: var(--scene-tree-search-search-icon-offset);\n pointer-events: none;\n}\n\n.clear-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: initial;\n cursor: pointer;\n}\n.clear-btn:hover {\n color: var(--neutral-800);\n}\n.clear-btn:disabled {\n pointer-events: none;\n opacity: 0.5;\n}","import {\n Component,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { Disposable } from '@vertexvis/utils';\nimport classNames from 'classnames';\n\nimport { debounceEvent } from '../../lib/stencil';\nimport { SceneTreeController } from '../scene-tree/lib/controller';\n\n/**\n * @slot search-icon - A slot that replaces the component's default search icon.\n * @slot clear-icon - A slot that replaces the component's default clear icon.\n */\n@Component({\n tag: 'vertex-scene-tree-search',\n styleUrl: 'scene-tree-search.css',\n shadow: true,\n})\nexport class SceneTreeSearch {\n /**\n * Specifies the delay, in milliseconds, to emit `search` events after user\n * input.\n */\n @Prop()\n public debounce = 350;\n\n /**\n * If `true`, disables user interaction of the component.\n */\n @Prop()\n public disabled = false;\n\n /**\n * Placeholder text if `value` is empty.\n */\n @Prop()\n public placeholder?: string = undefined;\n\n /**\n * The scene tree controller\n */\n @Prop()\n public controller?: SceneTreeController;\n\n /**\n * The current text value of the component. Value is updated on user\n * interaction.\n */\n @Prop({ mutable: true })\n public value = '';\n\n /**\n * An event that is emitted when a user has inputted or cleared the search\n * term. The event may be delayed according to the current `debounce` value.\n */\n @Event({ bubbles: true })\n public search!: EventEmitter<string>;\n\n @State()\n private focused = false;\n\n @State()\n private isSearching = false;\n\n private inputEl?: HTMLInputElement;\n private onStateChangeDisposable?: Disposable;\n\n /**\n * Gives focus to the the component's internal text input.\n */\n @Method()\n public async setFocus(): Promise<void> {\n // HTMLInputElement.focus() doesn't exist in tests.\n if (typeof this.inputEl?.focus === 'function') {\n this.inputEl?.focus();\n }\n }\n\n /**\n * @ignore\n */\n @Watch('controller')\n public controllerChanged(controller: SceneTreeController): void {\n this.setupController();\n }\n\n /**\n * @ignore\n */\n protected componentDidLoad(): void {\n this.handleDebounceChanged();\n\n this.setupController();\n }\n\n /**\n * @ignore\n */\n protected disconnectedCallback(): void {\n this.onStateChangeDisposable?.dispose();\n }\n\n /**\n * @ignore\n */\n protected render(): h.JSX.IntrinsicElements {\n return (\n <Host>\n <div class=\"root\">\n <div class=\"overlay icon icon-search\">\n <slot name=\"search-icon\">\n {this.isSearching ? (\n <vertex-viewer-spinner slot=\"search-icon\" size=\"xs\" />\n ) : (\n <vertex-viewer-icon name=\"search\" size=\"sm\" />\n )}\n </slot>\n </div>\n\n <input\n class={classNames('input', {\n background: this.focused || this.value.length > 0,\n })}\n type=\"text\"\n ref={(ref) => (this.inputEl = ref)}\n placeholder={this.placeholder}\n disabled={this.disabled}\n value={this.value}\n onInput={this.handleTextInput}\n onFocus={this.handleTextFocus}\n onBlur={this.handleTextBlur}\n />\n\n <div\n class={classNames('overlay overlay-clear', {\n show: this.value.length > 0,\n })}\n >\n <button\n class=\"clear-btn icon\"\n tabIndex={-1}\n onMouseDown={this.handleClear}\n disabled={this.disabled}\n >\n <slot name=\"clear-icon\">\n <vertex-viewer-icon name=\"close-circle\" size=\"sm\" />\n </slot>\n </button>\n </div>\n </div>\n </Host>\n );\n }\n\n private handleTextInput = (event: Event): void => {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n this.search.emit(this.value);\n };\n\n private handleTextFocus = (): void => {\n this.focused = true;\n };\n\n private handleTextBlur = (): void => {\n this.focused = false;\n };\n\n private handleClear = (event: MouseEvent): void => {\n event.preventDefault();\n\n this.value = '';\n this.search.emit(this.value);\n this.setFocus();\n };\n\n private handleDebounceChanged(): void {\n this.search = debounceEvent(this.search, this.debounce);\n }\n\n private setupController(): void {\n this.onStateChangeDisposable?.dispose();\n\n this.onStateChangeDisposable = this.controller?.onStateChange.on(\n (state) => {\n this.isSearching = state.isSearching;\n }\n );\n }\n}\n","import { __assign } from 'tslib';\n\n/**\n * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt\n */\n/**\n * Lower case as a function.\n */\nfunction lowerCase(str) {\n return str.toLowerCase();\n}\n\n// Support camel case (\"camelCase\" -> \"camel Case\" and \"CAMELCase\" -> \"CAMEL Case\").\nvar DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];\n// Remove all non-word characters.\nvar DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;\n/**\n * Normalize the string into something other libraries can manipulate easier.\n */\nfunction noCase(input, options) {\n if (options === void 0) { options = {}; }\n var _a = options.splitRegexp, splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a, _b = options.stripRegexp, stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b, _c = options.transform, transform = _c === void 0 ? lowerCase : _c, _d = options.delimiter, delimiter = _d === void 0 ? \" \" : _d;\n var result = replace(replace(input, splitRegexp, \"$1\\0$2\"), stripRegexp, \"\\0\");\n var start = 0;\n var end = result.length;\n // Trim the delimiter from around the output string.\n while (result.charAt(start) === \"\\0\")\n start++;\n while (result.charAt(end - 1) === \"\\0\")\n end--;\n // Transform each token independently.\n return result.slice(start, end).split(\"\\0\").map(transform).join(delimiter);\n}\n/**\n * Replace `re` in the input string with the replacement value.\n */\nfunction replace(input, re, value) {\n if (re instanceof RegExp)\n return input.replace(re, value);\n return re.reduce(function (input, re) { return input.replace(re, value); }, input);\n}\n\nfunction pascalCaseTransform(input, index) {\n var firstChar = input.charAt(0);\n var lowerChars = input.substr(1).toLowerCase();\n if (index > 0 && firstChar >= \"0\" && firstChar <= \"9\") {\n return \"_\" + firstChar + lowerChars;\n }\n return \"\" + firstChar.toUpperCase() + lowerChars;\n}\nfunction pascalCase(input, options) {\n if (options === void 0) { options = {}; }\n return noCase(input, __assign({ delimiter: \"\", transform: pascalCaseTransform }, options));\n}\n\nfunction camelCaseTransform(input, index) {\n if (index === 0)\n return input.toLowerCase();\n return pascalCaseTransform(input, index);\n}\nfunction camelCase(input, options) {\n if (options === void 0) { options = {}; }\n return pascalCase(input, __assign({ transform: camelCaseTransform }, options));\n}\n\nconst bindingRegEx = /{{(.+)}}/;\r\nclass CollectionBinding {\r\n constructor(bindings) {\r\n this.bindings = bindings;\r\n }\r\n bind(data) {\r\n this.bindings.forEach((binding) => binding.bind(data));\r\n }\r\n}\r\nclass NodeBinding {\r\n constructor(node, expr) {\r\n this.node = node;\r\n this.expr = expr;\r\n }\r\n}\r\nclass TextNodeBinding extends NodeBinding {\r\n constructor(node, expr) {\r\n super(node, expr);\r\n }\r\n bind(data) {\r\n const newContent = replaceBindingString(data, this.expr);\r\n if (newContent !== this.node.textContent) {\r\n this.node.textContent = newContent;\r\n }\r\n }\r\n}\r\nclass AttributeBinding extends NodeBinding {\r\n constructor(node, expr, attr) {\r\n super(node, expr);\r\n this.attr = attr;\r\n }\r\n bind(data) {\r\n const newValue = replaceBindingString(data, this.expr);\r\n const oldValue = this.node.getAttribute(this.attr);\r\n if (oldValue !== newValue) {\r\n this.node.setAttribute(this.attr, newValue);\r\n }\r\n }\r\n}\r\nclass PropertyBinding extends NodeBinding {\r\n constructor(node, expr, prop) {\r\n super(node, expr);\r\n this.prop = prop;\r\n }\r\n bind(data) {\r\n const newValue = replaceBinding(data, this.expr);\r\n /* eslint-disable @typescript-eslint/no-explicit-any */\r\n const oldValue = this.node[this.prop];\r\n if (oldValue !== newValue) {\r\n this.node[this.prop] = newValue;\r\n }\r\n /* eslint-enable @typescript-eslint/no-explicit-any */\r\n }\r\n}\r\nclass EventHandlerBinding extends NodeBinding {\r\n constructor(node, expr, eventName) {\r\n super(node, expr);\r\n this.eventName = eventName;\r\n }\r\n bind(data) {\r\n var _a;\r\n const path = extractBindingPath(this.expr);\r\n if (path != null) {\r\n (_a = this.disposable) === null || _a === void 0 ? void 0 : _a.dispose();\r\n const listener = getBindableValue(data, path, true);\r\n this.node.addEventListener(this.eventName, listener);\r\n this.disposable = {\r\n dispose: () => {\r\n this.node.removeEventListener(this.eventName, listener);\r\n },\r\n };\r\n }\r\n }\r\n}\r\nfunction generateBindings(node) {\r\n const bindings = [];\r\n if (node.nodeType === Node.ELEMENT_NODE) {\r\n const el = node;\r\n const bindableAttributes = getBindableAttributes(el);\r\n bindableAttributes.forEach((attr) => {\r\n if (attr.name.startsWith('event:')) {\r\n const eventName = camelCase(attr.name.replace('event:', ''));\r\n bindings.push(new EventHandlerBinding(el, attr.value, eventName));\r\n }\r\n else if (attr.name.startsWith('attr:')) {\r\n bindings.push(new AttributeBinding(el, attr.value, attr.name.replace('attr:', '')));\r\n }\r\n else if (attr.name.startsWith('prop:')) {\r\n const propName = camelCase(attr.name.replace('prop:', ''));\r\n bindings.push(new PropertyBinding(el, attr.value, propName));\r\n }\r\n });\r\n }\r\n else if (node.nodeType === Node.TEXT_NODE &&\r\n node.textContent != null &&\r\n bindingRegEx.test(node.textContent)) {\r\n bindings.push(new TextNodeBinding(node, node.textContent));\r\n }\r\n for (let i = 0; i < node.childNodes.length; i++) {\r\n bindings.push(...generateBindings(node.childNodes[i]));\r\n }\r\n return bindings;\r\n}\r\nfunction getBindableAttributes(element) {\r\n return Array.from(element.attributes).filter((attr) => bindingRegEx.test(attr.value));\r\n}\r\nfunction extractBindingPath(expr) {\r\n const result = bindingRegEx.exec(expr);\r\n return result != null ? result[1] : undefined;\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction replaceBindingString(data, expr) {\r\n const path = extractBindingPath(expr);\r\n if (path != null) {\r\n const value = getBindableValue(data, path, true);\r\n return expr.replace(`{{${path}}}`, value === null || value === void 0 ? void 0 : value.toString());\r\n }\r\n else {\r\n return expr;\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction replaceBinding(data, expr) {\r\n const path = extractBindingPath(expr);\r\n if (path != null) {\r\n const value = getBindableValue(data, path, true);\r\n return value;\r\n }\r\n else {\r\n return expr;\r\n }\r\n}\r\nfunction getBindableValue(\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\ndata, path, isHead = false\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n) {\r\n const [head, ...tail] = path.split('.');\r\n if (isHead && tail.length === 0) {\r\n return data;\r\n }\r\n else if (isHead && tail.length > 0) {\r\n return getBindableValue(data, tail.join('.'), false);\r\n }\r\n else {\r\n const value = data[head];\r\n if (tail.length > 0) {\r\n return getBindableValue(value, tail.join('.'), false);\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n}\n\nclass ElementPool {\r\n constructor(container, elementFactory) {\r\n this.container = container;\r\n this.elementFactory = elementFactory;\r\n this.instanceMap = new Map();\r\n this.elements = [];\r\n }\r\n swapHeadToTail(count) {\r\n const sliced = this.elements.splice(0, count);\r\n this.elements.splice(this.elements.length, 0, ...sliced);\r\n return this.elements.concat();\r\n }\r\n swapTailToHead(count) {\r\n const sliced = this.elements.splice(-count, count);\r\n this.elements.splice(0, 0, ...sliced);\r\n return this.elements.concat();\r\n }\r\n updateElements(count) {\r\n const diff = count - this.elements.length;\r\n if (diff > 0) {\r\n for (let i = 0; i < diff; i++) {\r\n this.createElement();\r\n }\r\n }\r\n else {\r\n for (let i = 0; i < -diff; i++) {\r\n this.deleteElement();\r\n }\r\n }\r\n return this.elements.concat();\r\n }\r\n updateData(f) {\r\n this.elements.forEach((el, i) => {\r\n const instance = this.instanceMap.get(el);\r\n const data = f(i);\r\n instance === null || instance === void 0 ? void 0 : instance.bindings.bind(data);\r\n });\r\n }\r\n updateElementFactory(elementFactory) {\r\n this.elementFactory = elementFactory;\r\n this.updateElements(0);\r\n }\r\n iterateElements(f) {\r\n this.elements.forEach((el, i) => {\r\n const instance = this.instanceMap.get(el);\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n f(el, instance.bindings, i);\r\n });\r\n }\r\n createElement() {\r\n const instance = this.elementFactory();\r\n this.elements.push(instance.element);\r\n this.instanceMap.set(instance.element, instance);\r\n this.container.append(instance.element);\r\n return instance;\r\n }\r\n deleteElement() {\r\n const element = this.elements.pop();\r\n if (element != null) {\r\n this.instanceMap.delete(element);\r\n element.remove();\r\n }\r\n }\r\n}\n\nfunction append(container, element, data) {\r\n const bindings = new CollectionBinding(generateBindings(element));\r\n bindings.bind(data);\r\n container.appendChild(element);\r\n const created = container.lastElementChild;\r\n if (created != null) {\r\n return { element: created, bindings };\r\n }\r\n else {\r\n throw new Error('Failed to append element');\r\n }\r\n}\r\nfunction generateInstanceFromTemplate(template) {\r\n const fragment = template.content.cloneNode(true);\r\n const element = fragment.firstElementChild;\r\n const bindings = new CollectionBinding(generateBindings(fragment));\r\n return { element, bindings };\r\n}\n\nexport { AttributeBinding, CollectionBinding, ElementPool, EventHandlerBinding, NodeBinding, PropertyBinding, TextNodeBinding, append, generateBindings, generateInstanceFromTemplate };\n//# sourceMappingURL=bundle.esm.js.map\n","export type DomScrollToOptions = ScrollToOptions;\n\nexport function getSceneTreeTableOffsetTop(el: HTMLElement): number {\n return el.getBoundingClientRect().top ?? 0;\n}\n\nexport function getSceneTreeTableViewportWidth(el: HTMLElement): number {\n return el.clientWidth;\n}\n\nexport function scrollToTop(\n el: HTMLElement,\n top: number,\n options: Pick<DomScrollToOptions, 'behavior'>\n): void {\n el.scrollTo({ top, ...options });\n}\n","import { Disposable, EventDispatcher, Listener } from '@vertexvis/utils';\n\nexport class SceneTreeCellHoverController {\n public onStateChange = new EventDispatcher<string | undefined>();\n\n public setHovered(id?: string): void {\n this.onStateChange.emit(id);\n }\n\n public stateChanged(listener: Listener<string | undefined>): Disposable {\n return this.onStateChange.on(listener);\n }\n}\n","export function restartTimeout(\n fn: VoidFunction,\n existingTimeout?: number,\n delay = 200\n): number {\n window.clearTimeout(existingTimeout);\n return window.setTimeout(fn, delay);\n}\n",":host {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n overflow: hidden;\n font-size: 0.825rem;\n\n /**\n * @prop --scene-tree-table-row-padding: CSS lengths that specifies the amount of\n * padding between the row's border and content.\n */\n --scene-tree-table-row-padding: 2px 0px;\n\n /**\n * @prop --scene-tree-table-column-gap: CSS length that specifies the amount of\n * padding between columns in the table.\n */\n --scene-tree-table-column-gap: 0.5rem;\n\n /**\n * @prop --scene-tree-table-column-resize-cursor: A CSS cursor value that will\n * be displayed when resizing a column. Defaults to `col-resize`.\n */\n --scene-tree-table-column-resize-cursor: col-resize;\n}\n\n.header {\n position: relative;\n display: grid;\n width: 100%;\n border-bottom: var(--scene-tree-toolbar-separator);\n}\n\n.table {\n position: relative;\n display: grid;\n width: 100%;\n height: 100%;\n overflow: auto;\n}\n\n.resize-overlay {\n position: absolute;\n top: 0;\n cursor: var(--scene-tree-table-column-resize-cursor);\n z-index: 1000;\n width: 100%;\n height: 100%;\n}\n\n.divider-overlay {\n position: absolute;\n top: 0;\n display: grid;\n pointer-events: none;\n z-index: 2000;\n width: 100%;\n height: 100%;\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { Point } from '@vertexvis/geometry';\nimport {\n Binding,\n ElementPool,\n generateInstanceFromTemplate,\n InstancedTemplate,\n} from '@vertexvis/html-templates';\n\nimport { readDOM } from '../../lib/stencil';\nimport { SceneTreeController } from '../scene-tree/lib/controller';\nimport { getSceneTreeViewportHeight } from '../scene-tree/lib/dom';\nimport { isLoadedRow, LoadedRow, Row } from '../scene-tree/lib/row';\nimport { RowDataProvider } from '../scene-tree/types';\nimport {\n DomScrollToOptions,\n getSceneTreeTableOffsetTop,\n getSceneTreeTableViewportWidth,\n scrollToTop,\n} from './lib/dom';\nimport { SceneTreeCellHoverController } from './lib/hover-controller';\nimport { restartTimeout } from './lib/window';\n\ninterface StateMap {\n columnElementPools?: WeakMap<\n HTMLVertexSceneTreeTableColumnElement,\n ElementPool\n >;\n headerInstances?: Array<InstancedTemplate<HTMLElement>>;\n headerDividerInstances?: Array<InstancedTemplate<HTMLElement>>;\n headerDividerListeners?: Array<(event: PointerEvent) => void>;\n\n viewportRows: Row[];\n\n headerHeight?: number;\n columnWidths: number[];\n columnWidthPercentages: number[];\n}\n\n@Component({\n tag: 'vertex-scene-tree-table-layout',\n styleUrl: 'scene-tree-table-layout.css',\n shadow: true,\n})\nexport class SceneTreeTableLayout {\n /**\n * A reference to the scene tree to perform operations for interactions. Such\n * as expansion, visibility and selection.\n */\n @Prop()\n public tree?: HTMLVertexSceneTreeElement;\n\n /**\n * @internal\n */\n @Prop()\n public controller?: SceneTreeController;\n\n /**\n * @internal\n */\n @Prop()\n public rows: Row[] = [];\n\n /**\n * @internal\n */\n @Prop()\n public totalRows = 0;\n\n /**\n * @internal\n */\n @Prop({ mutable: true })\n public rowHeight = 24;\n\n /**\n * The number of offscreen rows above and below the viewport to render. Having\n * a higher number reduces the chance of the browser not displaying a row\n * while scrolling.\n *\n * This prop will be automatically populated based on the `overScanCount` prop\n * specified in the parent `<vertex-scene-tree />` element.\n */\n @Prop()\n public overScanCount = 25;\n\n /**\n * A callback that is invoked immediately before a row is about to rendered.\n * This callback can return additional data that can be bound to in a\n * template.\n *\n * This prop will be automatically populated based on the `rowData` prop\n * specified in the parent `<vertex-scene-tree />` element.\n *\n * @example\n *\n * ```html\n * <script>\n * const table = document.querySelector('vertex-scene-tree-table');\n * table.rowData = (row) => {\n * return { func: () => console.log('row', row.node.name) };\n * }\n * </script>\n *\n * <vertex-scene-tree>\n * <vertex-scene-tree-table>\n * <vertex-scene-tree-table-column>\n * <template>\n * <button event:click=\"{{row.data.func}}\">Hi</button>\n * </template>\n * </vertex-scene-tree-table-column>\n * </vertex-scene-tree-table>\n * </vertex-scene-tree>\n * ```\n */\n @Prop()\n public rowData?: RowDataProvider;\n\n /**\n * @internal\n */\n @Prop({ mutable: true })\n public layoutOffset = 0;\n\n /**\n * @internal\n */\n @Prop({ mutable: true })\n public scrollOffset = 0;\n\n /**\n * @internal\n */\n @Prop({ mutable: true })\n public layoutHeight?: number;\n\n /**\n * @internal\n */\n @Prop({ mutable: true })\n public layoutWidth?: number;\n\n /**\n * @internal\n */\n @Prop({ mutable: true })\n public viewportStartIndex = 0;\n\n /**\n * @internal\n */\n @Prop({ mutable: true })\n public viewportEndIndex = 0;\n\n /**\n * @internal\n */\n @Event()\n public layoutRendered!: EventEmitter<void>;\n\n @Element()\n private hostEl!: HTMLElement;\n\n @State()\n private columnGridLayout = '1fr';\n\n @State()\n private columnGridFixedLayout = '';\n\n @State()\n private isComputingCellHeight = true;\n\n @State()\n private lastDividerPointerPosition?: Point.Point;\n\n @State()\n private resizingColumnIndex?: number;\n\n @State()\n private isScrolling = false;\n\n @State()\n private scrollTimer: number | undefined;\n\n /**\n * This stores internal state that you want to preserve across live-reloads,\n * but shouldn't trigger a refresh if the data changes. Marking this with\n * @State to allow to preserve state across live-reloads.\n */\n @State()\n private stateMap: StateMap = {\n viewportRows: [],\n columnWidths: [],\n columnWidthPercentages: [],\n };\n\n private lastStartIndex = 0;\n private resizeObserver?: ResizeObserver;\n private headerResizeObserver?: ResizeObserver;\n\n private tableElement?: HTMLDivElement;\n private headerElement?: HTMLDivElement;\n private columnElements: HTMLVertexSceneTreeTableColumnElement[] = [];\n\n private cellHoverController = new SceneTreeCellHoverController();\n\n public componentWillLoad(): void {\n this.updateColumnElements();\n this.createPools();\n\n this.headerResizeObserver = new ResizeObserver(() => {\n this.stateMap.headerHeight = undefined;\n this.computeHeaderHeight();\n this.updateLayoutPosition();\n });\n\n this.resizeObserver = new ResizeObserver(() => {\n this.updateLayoutPosition();\n this.clearLayoutHeight();\n this.clearLayoutWidth();\n this.recomputeColumnWidths();\n this.computeColumnGridLayout();\n });\n }\n\n public componentDidLoad(): void {\n this.computeColumnGridLayout();\n this.ensureDividerTemplateDefined();\n this.computeCellHeight();\n this.computeHeaderHeight();\n this.computeInitialColumnWidths();\n this.rebindHeaderData();\n\n this.tableElement?.addEventListener('scroll', this.handleScrollChanged, {\n passive: true,\n });\n\n if (this.headerElement != null) {\n this.headerResizeObserver?.observe(this.headerElement);\n }\n\n this.resizeObserver?.observe(this.hostEl);\n }\n\n public async componentWillRender(): Promise<void> {\n await this.computeAndUpdateViewportRows();\n }\n\n public componentDidRender(): void {\n this.layoutColumns();\n\n this.layoutRendered.emit();\n }\n\n public disconnectedCallback(): void {\n this.tableElement?.removeEventListener('scroll', this.handleScrollChanged);\n this.removeDividerDragListeners();\n this.headerResizeObserver?.disconnect();\n this.resizeObserver?.disconnect();\n this.stateMap.columnWidths = [];\n this.stateMap.columnWidthPercentages = [];\n }\n\n @Watch('rows')\n @Watch('totalRows')\n @Watch('rowHeight')\n protected async handleViewportRowsPropsChanged(): Promise<void> {\n await this.computeAndUpdateViewportRows();\n }\n\n /**\n * Scrolls the table to the provided top value.\n *\n * @param top The position to scroll to.\n * @param options A set of options to configure the scrolling behavior.\n */\n @Method()\n public async scrollToPosition(\n top: number,\n options: Pick<DomScrollToOptions, 'behavior'>\n ): Promise<void> {\n if (this.tableElement != null) {\n scrollToTop(this.tableElement, top, options);\n }\n }\n\n public render(): h.JSX.IntrinsicElements {\n return (\n <Host>\n <div\n class=\"header\"\n ref={(ref) => (this.headerElement = ref)}\n style={{\n gridTemplateColumns: this.columnGridFixedLayout,\n display: this.columnElements.length <= 1 ? 'none' : 'grid',\n }}\n >\n <slot name=\"header\" />\n </div>\n <div\n class=\"table\"\n ref={(ref) => (this.tableElement = ref)}\n style={{\n gridTemplateColumns: this.columnGridLayout,\n }}\n >\n <slot\n onSlotchange={() => {\n this.ensureDividerTemplateDefined();\n this.updateColumnElements();\n this.recreateColumnPools();\n this.computeInitialColumnWidths();\n this.rebindHeaderData();\n this.computeColumnGridLayout();\n }}\n />\n </div>\n <div\n class=\"divider-overlay\"\n style={{\n gridTemplateColumns: this.columnGridFixedLayout,\n }}\n >\n <slot name=\"divider\" />\n </div>\n {this.resizingColumnIndex != null && <div class=\"resize-overlay\" />}\n </Host>\n );\n }\n\n private computeViewportRows(): void {\n const viewportHeight = this.getLayoutHeight();\n if (viewportHeight != null) {\n const viewportCount = Math.ceil(viewportHeight / this.rowHeight);\n\n const viewportStartIndex = Math.floor(this.scrollOffset / this.rowHeight);\n const viewportEndIndex = viewportStartIndex + viewportCount;\n\n const startIndex = Math.max(0, viewportStartIndex - this.overScanCount);\n const endIndex = Math.min(\n this.totalRows - 1,\n viewportEndIndex + this.overScanCount\n );\n\n const rows = this.getViewportRows(startIndex, endIndex);\n\n this.viewportStartIndex = startIndex;\n this.viewportEndIndex = endIndex;\n this.stateMap.viewportRows = rows;\n }\n }\n\n private async computeAndUpdateViewportRows(): Promise<void> {\n this.computeViewportRows();\n\n if (\n this.controller?.isConnected &&\n this.viewportStartIndex >= 0 &&\n this.viewportEndIndex >= 0\n ) {\n await this.controller.updateActiveRowRange(\n this.viewportStartIndex,\n this.viewportEndIndex\n );\n }\n }\n\n private layoutColumns = (): void => {\n const visibleRowCount = this.viewportEndIndex - this.viewportStartIndex + 1;\n const diff = this.viewportStartIndex - this.lastStartIndex;\n this.lastStartIndex = this.viewportStartIndex;\n\n this.iterateColumns((col, pool, colIndex) => {\n pool.updateElements(visibleRowCount);\n\n if (diff > 0) {\n pool.swapHeadToTail(diff);\n } else {\n pool.swapTailToHead(-diff);\n }\n\n col.style.minHeight = `${this.rowHeight * this.totalRows}px`;\n\n const cellPaddingLeft =\n colIndex === 0\n ? (depth: number) => `calc(${depth} * 0.5rem)`\n : () => `0`;\n\n pool.iterateElements((el, binding, rowIndex) => {\n const row = this.stateMap.viewportRows[rowIndex];\n\n if (isLoadedRow(row)) {\n this.updateCell(row, el, binding, rowIndex, cellPaddingLeft);\n }\n });\n });\n };\n\n private updateCell = (\n row: LoadedRow,\n cell: HTMLElement,\n binding: Binding,\n rowIndex: number,\n cellPaddingLeft: (depth: number) => string\n ): void => {\n cell.style.position = 'absolute';\n cell.style.top = `${\n (this.viewportStartIndex + rowIndex) * this.rowHeight\n }px`;\n cell.style.boxSizing = 'border-box';\n cell.style.height = `${this.rowHeight}px`;\n cell.style.width = '100%';\n cell.style.paddingLeft = cellPaddingLeft(row.node.depth);\n\n /* eslint-disable @typescript-eslint/no-explicit-any */\n (cell as any).tree = this.tree;\n (cell as any).node = row.node;\n (cell as any).hoverController = this.cellHoverController;\n (cell as any).isScrolling = this.isScrolling;\n /* eslint-enable @typescript-eslint/no-explicit-any */\n\n binding.bind(row);\n };\n\n private updateLayoutPosition = (): void => {\n readDOM(() => {\n if (this.tableElement != null) {\n this.layoutOffset = getSceneTreeTableOffsetTop(this.tableElement);\n }\n });\n };\n\n private recomputeColumnWidths = (): void => {\n const layoutWidth = this.getLayoutWidth();\n if (\n layoutWidth != null &&\n this.stateMap.columnWidths.length ===\n this.stateMap.columnWidthPercentages.length\n ) {\n this.stateMap.columnWidths = this.stateMap.columnWidthPercentages.map(\n (w) => w * layoutWidth\n );\n }\n };\n\n private recomputeColumnPercentages = (): void => {\n const layoutWidth = this.getLayoutWidth();\n if (\n layoutWidth != null &&\n this.stateMap.columnWidths.length ===\n this.stateMap.columnWidthPercentages.length\n ) {\n this.stateMap.columnWidthPercentages = this.stateMap.columnWidths.map(\n (w) => w / layoutWidth\n );\n }\n };\n\n private computeInitialColumnWidths = (): void => {\n this.stateMap.columnWidths = this.columnElements.map(\n (c) => c.initialWidth ?? 100\n );\n\n const layoutWidth = this.getLayoutWidth();\n if (layoutWidth != null) {\n this.stateMap.columnWidthPercentages = this.columnElements.map(\n (c) => (c.initialWidth ?? 100) / layoutWidth\n );\n }\n };\n\n private updateColumnElements = (): void => {\n this.columnElements = Array.from(\n this.hostEl.querySelectorAll('vertex-scene-tree-table-column')\n ) as Array<HTMLVertexSceneTreeTableColumnElement>;\n };\n\n private createPools(): void {\n if (this.stateMap.columnElementPools == null) {\n this.stateMap.columnElementPools = this.columnElements.reduce(\n (map, c) =>\n map.set(\n c,\n new ElementPool(c, () => this.createColumnCellInstance(c))\n ),\n new WeakMap()\n );\n }\n }\n\n private recreateColumnPools(): void {\n this.columnElements.forEach((c) => {\n if (this.stateMap.columnElementPools?.get(c) == null) {\n this.stateMap.columnElementPools?.set(\n c,\n new ElementPool(c, () => this.createColumnCellInstance(c))\n );\n } else {\n this.stateMap.columnElementPools\n .get(c)\n ?.updateElementFactory(() => this.createColumnCellInstance(c));\n }\n });\n }\n\n private iterateColumns(\n f: (\n column: HTMLVertexSceneTreeTableColumnElement,\n pool: ElementPool,\n index: number\n ) => void\n ): void {\n this.columnElements.forEach((column, i) => {\n const pool = this.stateMap.columnElementPools?.get(column);\n if (pool != null) {\n f(column, pool, i);\n } else {\n throw new Error('Cannot find pool for column');\n }\n });\n }\n\n private ensureDividerTemplateDefined(): void {\n const template = this.hostEl.querySelector(\n 'template[slot=\"divider\"]'\n ) as HTMLTemplateElement;\n if (template == null) {\n const defaultDividerTemplate = document.createElement('template');\n defaultDividerTemplate.slot = 'divider';\n defaultDividerTemplate.innerHTML = `\n <vertex-scene-tree-table-resize-divider slot=\"divider\">\n </vertex-scene-tree-table-resize-divider>\n `;\n this.hostEl.appendChild(defaultDividerTemplate);\n }\n }\n\n private createHeaderInstance(\n column: HTMLVertexSceneTreeTableColumnElement\n ): InstancedTemplate<HTMLElement> | undefined {\n const template = column.querySelector(\n 'template[slot=\"header\"]'\n ) as HTMLTemplateElement;\n if (template != null) {\n return generateInstanceFromTemplate(template);\n }\n }\n\n private createDividerInstance(): InstancedTemplate<HTMLElement> {\n const template = this.hostEl.querySelector(\n 'template[slot=\"divider\"]'\n ) as HTMLTemplateElement;\n if (template != null) {\n return generateInstanceFromTemplate(template);\n } else {\n throw new Error('Table is missing divider template element');\n }\n }\n\n private createColumnCellInstance(\n column: HTMLVertexSceneTreeTableColumnElement\n ): InstancedTemplate<HTMLElement> {\n const template = column.querySelector(\n 'template:not([slot=\"header\"])'\n ) as HTMLTemplateElement;\n if (template != null) {\n return generateInstanceFromTemplate(template);\n } else {\n throw new Error('Column is missing cell template element');\n }\n }\n\n private computeCellHeight = async (): Promise<void> => {\n if (this.isComputingCellHeight && this.columnElements.length > 0) {\n const dummyData: LoadedRow = {\n index: 0,\n node: {\n id: { hex: '' },\n name: 'Dummy row',\n expanded: false,\n selected: false,\n visible: false,\n partiallyVisible: false,\n isLeaf: false,\n depth: 0,\n columnsList: [],\n filterHit: false,\n phantom: false,\n endItem: false,\n },\n metadata: {},\n data: {},\n };\n const { bindings, element } = this.createColumnCellInstance(\n this.columnElements[0]\n );\n bindings.bind(dummyData);\n element.style.visibility = 'hidden';\n\n this.columnElements[0]?.appendChild(element);\n\n /* eslint-disable @typescript-eslint/no-explicit-any */\n if (typeof (element as any).componentOnReady === 'function') {\n await (element as any).componentOnReady();\n }\n /* eslint-enable @typescript-eslint/no-explicit-any */\n\n let height = element.clientHeight;\n let attempts = 0;\n\n while (height === 0 && attempts < 10) {\n height = await new Promise((resolve) => {\n setTimeout(() => resolve(element.getBoundingClientRect().height), 5);\n });\n attempts = attempts + 1;\n }\n this.rowHeight = height ?? this.rowHeight;\n element.remove();\n this.isComputingCellHeight = false;\n }\n };\n\n private computeHeaderHeight = (): void => {\n if (this.stateMap.headerHeight == null) {\n this.stateMap.headerHeight =\n this.headerElement?.getBoundingClientRect().height;\n this.hostEl.style.setProperty(\n '--header-height',\n `${this.stateMap.headerHeight}px`\n );\n }\n };\n\n private computeColumnGridLayout = (): void => {\n if (this.stateMap.columnWidths.length === 0) {\n this.stateMap.columnWidths = this.columnElements.map(\n (c) => c.initialWidth ?? 100\n );\n }\n\n const layoutWidth = this.getLayoutWidth();\n if (layoutWidth != null) {\n if (this.stateMap.columnWidthPercentages.length === 0) {\n this.stateMap.columnWidthPercentages = this.columnElements.map(\n (c) => (c.initialWidth ?? 100) / layoutWidth\n );\n }\n }\n\n /**\n * This layout uses `1fr` instead of the final column width to\n * allow the final column to shrink when a scrollbar appears.\n *\n * This flex behavior is not desired for the header and divider\n * elements since they are not scrollable, and `columnGridFixedLayout`\n * should be used instead.\n */\n this.columnGridLayout = `${this.stateMap.columnWidths\n .slice(0, -1)\n .reduce((res, w) => `${res} ${w}px`, '')} 1fr`;\n\n this.columnGridFixedLayout = `${this.stateMap.columnWidths.reduce(\n (res, w) => `${res} ${w}px`,\n ''\n )}`;\n };\n\n private bindHeaderData = (): void => {\n if (this.stateMap.headerInstances == null) {\n this.stateMap.headerInstances = this.columnElements\n .map((c, i) => {\n const instance = this.createHeaderInstance(c);\n\n if (instance != null) {\n instance.element.style.paddingRight =\n i === this.columnElements.length - 1\n ? `0`\n : `var(--scene-tree-table-column-gap)`;\n instance.element.slot = 'header';\n instance.element.style.gridColumnStart = `${i + 1}`;\n instance.element.style.gridColumnEnd = `${i + 2}`;\n this.hostEl?.appendChild(instance.element);\n }\n\n return instance;\n })\n .filter((i) => i != null) as Array<InstancedTemplate<HTMLElement>>;\n }\n\n if (this.stateMap.headerDividerInstances == null) {\n this.stateMap.headerDividerInstances = this.columnElements\n .slice(0, -1)\n .map((_, i) => {\n const instance = this.createDividerInstance();\n\n instance.element.slot = 'divider';\n instance.element.style.position = 'absolute';\n instance.element.style.right = '0';\n instance.element.style.pointerEvents = 'auto';\n instance.element.style.gridColumnStart = `${i + 1}`;\n instance.element.style.gridColumnEnd = `${i + 2}`;\n this.hostEl?.appendChild(instance.element);\n\n return instance;\n });\n }\n };\n\n private rebindHeaderData = (): void => {\n this.removeDividerDragListeners();\n\n this.stateMap.headerInstances?.forEach((i) => i.element.remove());\n this.stateMap.headerDividerInstances?.forEach((i) => i.element.remove());\n this.stateMap.headerInstances = undefined;\n this.stateMap.headerDividerInstances = undefined;\n\n this.bindHeaderData();\n this.addDividerDragListeners();\n };\n\n private addDividerDragListeners(): void {\n this.stateMap.headerDividerListeners =\n this.stateMap.headerDividerInstances?.map((d, i) => {\n const listener = this.createDividerPointerDownHandler(i);\n\n d.element.addEventListener('pointerdown', listener);\n\n return listener;\n });\n }\n\n private removeDividerDragListeners(): void {\n if (this.stateMap.headerDividerListeners != null) {\n const listeners = this.stateMap.headerDividerListeners;\n\n this.stateMap.headerDividerInstances?.forEach((d, i) => {\n const listener = listeners[i];\n if (listener != null) {\n d.element.removeEventListener('pointerdown', listener);\n }\n });\n this.stateMap.headerDividerListeners = undefined;\n }\n }\n\n private createDividerPointerDownHandler = (\n index: number\n ): ((event: PointerEvent) => void) => {\n return (event: PointerEvent): void => {\n event.preventDefault();\n event.stopPropagation();\n\n this.lastDividerPointerPosition = Point.create(\n Math.floor(event.clientX),\n Math.floor(event.clientY)\n );\n this.resizingColumnIndex = index;\n this.stateMap.headerDividerInstances?.[index]?.element.classList.add(\n 'dragging'\n );\n\n window.addEventListener('pointermove', this.handleDividerPointerMove);\n window.addEventListener('pointerup', this.handleDividerPointerUp);\n };\n };\n\n private handleDividerPointerMove = (event: PointerEvent): void => {\n const current = Point.create(\n Math.floor(event.clientX),\n Math.floor(event.clientY)\n );\n\n if (\n this.lastDividerPointerPosition != null &&\n this.resizingColumnIndex != null\n ) {\n const diff = Point.subtract(this.lastDividerPointerPosition, current);\n\n if (\n Math.abs(diff.x) >= 1 &&\n this.isValidResize(diff, this.resizingColumnIndex)\n ) {\n this.stateMap.columnWidths[this.resizingColumnIndex] -= diff.x;\n\n if (this.resizingColumnIndex + 1 < this.stateMap.columnWidths.length) {\n this.stateMap.columnWidths[this.resizingColumnIndex + 1] += diff.x;\n }\n\n this.lastDividerPointerPosition = current;\n this.computeColumnGridLayout();\n }\n }\n };\n\n private handleDividerPointerUp = (): void => {\n if (this.resizingColumnIndex != null) {\n this.stateMap.headerDividerInstances?.[\n this.resizingColumnIndex\n ]?.element.classList.remove('dragging');\n }\n this.lastDividerPointerPosition = undefined;\n this.resizingColumnIndex = undefined;\n\n this.recomputeColumnPercentages();\n\n window.removeEventListener('pointermove', this.handleDividerPointerMove);\n window.removeEventListener('pointerup', this.handleDividerPointerUp);\n };\n\n private isValidResize = (diff: Point.Point, index: number): boolean => {\n const currentColumn = this.columnElements[index];\n const nextColumn = this.columnElements[index + 1];\n const currentWidth = this.stateMap.columnWidths[index];\n const nextWidth = this.stateMap.columnWidths[index + 1];\n const currentMinWidth = currentColumn.minWidth ?? 0;\n const currentMaxWidth = currentColumn.maxWidth ?? Number.MAX_SAFE_INTEGER;\n const nextMinWidth = nextColumn.minWidth ?? 0;\n const nextMaxWidth = nextColumn.maxWidth ?? Number.MAX_SAFE_INTEGER;\n\n const currentIsValid =\n currentWidth - diff.x > currentMinWidth &&\n currentWidth - diff.x < currentMaxWidth;\n const nextIsValid =\n nextColumn != null\n ? nextWidth + diff.x > nextMinWidth && nextWidth + diff.x < nextMaxWidth\n : true;\n\n return currentIsValid && nextIsValid;\n };\n\n private handleScrollChanged = (event: Event): void => {\n this.isScrolling = true;\n\n this.scrollTimer = restartTimeout(() => {\n this.isScrolling = false;\n }, this.scrollTimer);\n\n this.scrollOffset = (event.target as HTMLElement).scrollTop;\n this.computeAndUpdateViewportRows();\n };\n\n private getViewportRows(startIndex: number, endIndex: number): Row[] {\n const rows = this.rows.slice(startIndex, endIndex + 1);\n return rows.map((row) => (row != null ? this.populateRowData(row) : row));\n }\n\n private populateRowData(row: Row): Row {\n if (this.rowData != null && row != null) {\n const data = this.rowData?.(row) || {};\n return { ...row, data };\n } else {\n return row;\n }\n }\n\n private getLayoutHeight(): number | undefined {\n if (this.layoutHeight == null && this.tableElement != null) {\n this.layoutHeight = getSceneTreeViewportHeight(this.tableElement);\n }\n return this.layoutHeight;\n }\n\n private getLayoutWidth(): number | undefined {\n if (this.layoutWidth == null) {\n const computedWidth = getSceneTreeTableViewportWidth(this.hostEl);\n if (computedWidth > 0) {\n this.layoutWidth = computedWidth;\n }\n }\n return this.layoutWidth;\n }\n\n private clearLayoutHeight(): void {\n this.layoutHeight = undefined;\n }\n\n private clearLayoutWidth(): void {\n this.layoutWidth = undefined;\n }\n}\n",":host {\n /**\n * @prop --scene-tree-toolbar-content-gap: A CSS length that specifies the\n * horizontal gap between slots.\n */\n --scene-tree-toolbar-content-gap: 8px;\n\n display: flex;\n padding: 0.5rem;\n}\n\n.content {\n display: flex;\n align-items: center;\n}\n\n.content-primary {\n width: 100%;\n}\n\n::slotted(:not(:first-child)) {\n margin-left: var(--scene-tree-toolbar-content-gap);\n}\n","import { Component, h, Host } from '@stencil/core';\n\n/**\n * @slot The primary content that will be placed in the center of the toolbar\n * and stretch to container's available width.\n * @slot before - Content that is placed before the primary content.\n * @slot after - Content that is placed after the primary content.\n */\n@Component({\n tag: 'vertex-scene-tree-toolbar',\n styleUrl: 'scene-tree-toolbar.css',\n shadow: true,\n})\nexport class SceneTreeToolbar {\n protected render(): h.JSX.IntrinsicElements {\n return (\n <Host>\n <div class=\"content\">\n <slot name=\"before\" />\n </div>\n <div class=\"content content-primary\">\n <slot />\n </div>\n <div class=\"content\">\n <slot name=\"after\" />\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Copyright (c) 2023 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import{h as e,F as t,r as i,c as s,f as n,H as o,g as r}from"./p-50533a46.js";import{o as a}from"./p-71fbe522.js";import{a as l,w as d,S as c,b as h,c as u}from"./p-921ec41b.js";import{p}from"./p-8343e598.js";import{g as f}from"./p-8867dab6.js";import{i as v}from"./p-c5381b4a.js";import"./p-6320532c.js";import"./p-9acf99ad.js";import"./p-7f54de9d.js";import"./p-d45df0c0.js";import"./p-d727045f.js";import"./p-39eab85b.js";import"./p-7578885f.js";import"./p-e1d82323.js";window.requestIdleCallback=window.requestIdleCallback||function(e){var t=Date.now();return setTimeout((function(){e({didTimeout:false,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})}),1)};window.cancelIdleCallback=window.cancelIdleCallback||function(e){clearTimeout(e)};function w(e){return e!=null&&e.nodeName==="VERTEX-SCENE-TREE-TABLE-CELL"}const m=({details:i},s)=>e("div",{class:"error"},e("div",{class:"error-section error-message"},e("span",null,i.message),i.link&&e(t,null,e("span",null," See our "),e("a",{href:i.link,target:"_blank"},"documentation")," ",e("span",null," for more information."))),e("div",{class:"error-section"},s));async function y(e,t,{suppliedCorrelationId:i}={}){const s=await e.scene();return s.items((e=>e.where((e=>e.withItemId(t))).show())).execute({suppliedCorrelationId:i})}async function b(e,t,{suppliedCorrelationId:i}={}){const s=await e.scene();return s.items((e=>e.where((e=>e.withItemId(t))).hide())).execute({suppliedCorrelationId:i})}async function g(e,t,{append:i=false,suppliedCorrelationId:s}){const n=await e.scene();return n.items((e=>[...i?[]:[e.where((e=>e.all())).deselect()],e.where((e=>e.withItemId(t))).select()])).execute({suppliedCorrelationId:s})}async function x(e,t,i,{append:s=true,suppliedCorrelationId:n}){const o=await e.scene();return o.items((e=>[...s?[]:[e.where((e=>e.all())).deselect()],e.where((e=>e.withSceneTreeRange({start:t,end:i}))).select()])).execute({suppliedCorrelationId:n})}async function C(e,t,i,s,{append:n=false,suppliedCorrelationId:o}){const r=await e.scene();return r.items((e=>[...n?[]:[e.where((e=>e.all())).deselect()],e.where((e=>e.withMetadata(t,i,s))).select()])).execute({suppliedCorrelationId:o})}async function E(e,t,{suppliedCorrelationId:i}={}){const s=await e.scene();return s.items((e=>e.where((e=>e.withItemId(t))).deselect())).execute({suppliedCorrelationId:i})}const I="button{border:none;background:transparent;cursor:pointer;margin:0;padding:0}.button{padding:0.5rem;border-radius:0.25rem}.button-secondary{color:var(--neutral-800);background-color:var(--neutral-300)}.button-secondary:hover{color:var(--neutral-900)}.button-secondary:hover:enabled{box-shadow:0 2px 2px rgb(0 0 0 / 20%)}.button-secondary:disabled{opacity:0.8}.button-secondary:hover:disabled{cursor:not-allowed}:host{--scene-tree-toolbar-separator:1px solid var(--neutral-300);width:300px;height:100%;user-select:none;-webkit-user-select:none;cursor:default;display:flex;flex-direction:column}.rows-scroll{position:relative;height:var(--scene-tree-row-height, 0);flex-grow:1}.rows{position:relative}.row{position:absolute;display:flex;align-items:center;width:100%;height:var(--scene-tree-row-height);padding:var(--scene-tree-row-padding);box-sizing:border-box}.row:hover{background-color:var(--scene-tree-row-hover-color)}.row.is-selected{background-color:var(--scene-tree-row-selected-color)}.expand-toggle{cursor:pointer;width:16px}.row-text{margin-left:0.25rem;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.visibility-btn{display:flex;align-items:center;visibility:hidden;padding:4px}.visibility-btn.is-hidden{visibility:visible}.row:hover .visibility-btn{visibility:visible}.error,.empty-results{display:flex;flex-direction:column;align-items:center;font-size:0.875rem;width:100%;height:100%;padding:1rem;box-sizing:border-box;justify-content:center}.error-section{margin-top:1rem}.error-message{text-align:center}.search-toolbar,slot[name='header']::slotted(*){border-bottom:var(--scene-tree-toolbar-separator)}slot[name='footer']::slotted(:not(:last-child)){border-top:var(--scene-tree-toolbar-separator)}.header{display:flex;flex-direction:column}.footer{display:flex;flex-direction:column}.loading{position:absolute;top:150px;left:50%;transform:translate(-50%, -50%);text-align:center}";const R=25;const M=class{constructor(e){i(this,e);this.connectionError=s(this,"connectionError",7);this.firstRowRendered=s(this,"firstRowRendered",7);this.overScanCount=25;this.configEnv="platprod";this.metadataSearchExactMatch=false;this.metadataSearchKeys=[];this.metadataKeys=[];this.rows=[];this.totalRows=0;this.showLoader=false;this.showEmptyResults=false;this.stateMap={componentLoaded:false};this.attemptingRetry=false;this.firstCellRendered=false}async invalidateRows(){n(this.getLayoutElement())}async scrollToIndex(e,t={}){const{animate:i,position:s="middle"}=t;const n=Math.max(0,Math.min(e,this.totalRows));const o=this.getScrollToPosition(n,s);this.getLayoutElement().scrollToPosition(o,{behavior:i?"smooth":undefined})}async scrollToItem(e,t={}){var i;const s=this.totalRows;const n=await((i=this.controller)===null||i===void 0?void 0:i.expandParentNodes(e));if(n!=null&&s!==this.totalRows){return new Promise((e=>{const i=this.getLayoutElement();const s=async()=>{i.removeEventListener("layoutRendered",s);await this.scrollToIndex(n,t);e()};i.addEventListener("layoutRendered",s)}))}else if(n!=null){await this.scrollToIndex(n,t)}}async expandAll(){var e;await((e=this.controller)===null||e===void 0?void 0:e.expandAll())}async collapseAll(){var e;await((e=this.controller)===null||e===void 0?void 0:e.collapseAll())}async expandItem(e){await this.performRowOperation(e,(async({id:e,node:t})=>{var i;if(!t.expanded){await((i=this.controller)===null||i===void 0?void 0:i.expandNode(e))}}))}async collapseItem(e){await this.performRowOperation(e,(async({id:e,node:t})=>{var i;if(t.expanded){await((i=this.controller)===null||i===void 0?void 0:i.collapseNode(e))}}))}async toggleExpandItem(e){await this.performRowOperation(e,(async({node:e})=>{if(e.expanded){await this.collapseItem(e)}else{await this.expandItem(e)}}))}async toggleItemVisibility(e){await this.performRowOperation(e,(async({viewer:e,id:t,node:i})=>{if(i.visible||i.partiallyVisible){await b(e,t)}else{await y(e,t)}}))}async hideItem(e){await this.performRowOperation(e,(async({viewer:e,id:t,node:i})=>{if(i.visible){await b(e,t)}}))}async showItem(e){await this.performRowOperation(e,(async({viewer:e,id:t,node:i})=>{if(!i.visible){await y(e,t)}}))}async selectItem(e,t={}){var{recurseParent:i}=t,s=a(t,["recurseParent"]);await this.performRowOperation(e,(async({viewer:e,id:t})=>{var n,o,r,a;const l=await((n=this.controller)===null||n===void 0?void 0:n.fetchNodeAncestors(t))||[];const d=(o=this.stateMap.selectionPath)===null||o===void 0?void 0:o.includes(t);if(i&&d){const e=l.find((({selected:e})=>!e));if(e!=null){await this.selectItem(e,s);this.lastSelectedItemId=t}}else if(s.range&&this.lastSelectedItemId!=null){const i=await((r=this.controller)===null||r===void 0?void 0:r.expandParentNodes(t));const n=await((a=this.controller)===null||a===void 0?void 0:a.expandParentNodes(this.lastSelectedItemId));if(n&&i){const t=Math.min(n,i);const o=Math.max(n,i);await x(e,t,o,s)}}else{await g(e,t,s);this.lastSelectedItemId=t}this.stateMap.selectionPath=[...l.map((({id:e})=>(e===null||e===void 0?void 0:e.hex)||"")),t]}))}async deselectItem(e){await this.performRowOperation(e,(async({viewer:e,id:t,node:i})=>{if(i.selected){this.lastSelectedItemId=undefined;await E(e,t)}}))}async getRowAtIndex(e){return this.rows[e]}async getRowForEvent(e){const{clientY:t,target:i}=e;if(i!=null&&this.errorDetails==null&&f(this.el,i)&&w(i)){return this.getRowAtClientY(t)}else{return undefined}}getRowAtClientY(e){const t=this.getLayoutElement();const i=t.layoutOffset;const s=Math.floor((e-i+t.scrollOffset)/t.rowHeight);return this.getRowAtIndex(s)}async filterItems(e,t={}){var i;return(i=this.controller)===null||i===void 0?void 0:i.filter(e,t)}async selectFilteredItems(e,t){if(this.viewer!=null){const i=this.metadataSearchKeys.length>0?this.metadataSearchKeys:this.metadataKeys;if(i.length===0){console.warn("No metadata keys were found to perform the selection. Defaulting to ['VERTEX_SCENE_ITEM_NAME']")}const s=i.length>0?i:["VERTEX_SCENE_ITEM_NAME"];await C(this.viewer,e,s,this.metadataSearchExactMatch,Object.assign({append:false},t))}}async fetchMetadataKeys(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.fetchMetadataKeys())!==null&&t!==void 0?t:[]}disconnectedCallback(){var e,t;(e=this.stateMap.viewerDisposable)===null||e===void 0?void 0:e.dispose();(t=this.controller)===null||t===void 0?void 0:t.cancel()}componentWillLoad(){var e;if(this.controller==null){const{sceneTreeHost:t}=this.getConfig().network;const i=new l(t,this.getConfig().flags.grpcUseStreamingWebSocketTransport?{transport:d}:undefined);this.controller=new c(i,100);(e=this.controller)===null||e===void 0?void 0:e.setMetadataKeys(this.metadataKeys)}this.stateMap.onStateChangeDisposable=this.controller.onStateChange.on((e=>this.handleControllerStateChange(e)));this.connectToViewer()}async componentDidLoad(){var e;this.ensureLayoutDefined();this.updateLayoutElement();const t=this.getLayoutElement();const i=new ResizeObserver((()=>{this.invalidateRows()}));i.observe(t);this.stateMap.resizeObserver=i;this.stateMap.componentLoaded=true;(e=this.controller)===null||e===void 0?void 0:e.setMetadataKeys(this.metadataKeys);if(this.viewer==null){this.errorDetails=new h("MISSING_VIEWER",u.MISSING_VIEWER)}}componentWillRender(){this.updateLayoutElement()}render(){return e(o,null,e("div",{class:"header"},e("slot",{name:"header"},e("vertex-scene-tree-toolbar",{class:"search-toolbar"},e("vertex-scene-tree-search",{controller:this.controller})))),this.errorDetails!=null&&this.renderError(this.errorDetails),this.errorDetails==null&&e("div",{class:"rows-scroll"},this.showLoader&&e("slot",{name:"loading"},e("vertex-viewer-spinner",{class:"loading",size:"md"})),this.showEmptyResults&&e("slot",{name:"empty-results"},e("div",{class:"empty-results"},"No Results Found.")),e("slot",null)),e("div",{class:"footer"},e("slot",{name:"footer"})))}renderError(t){if(t.code!==u.SCENE_TREE_DISABLED){return e(m,{details:t},e("button",{class:"button button-secondary",onClick:()=>this.retryConnectToViewer(),disabled:this.attemptingRetry},"Retry"))}else{return e(m,{details:t})}}handleViewerChanged(e,t){if(!this.stateMap.componentLoaded){return}this.connectToViewer()}handleControllerChanged(e){var t;if(!this.stateMap.componentLoaded){return}(t=this.stateMap.onStateChangeDisposable)===null||t===void 0?void 0:t.dispose();this.stateMap.onStateChangeDisposable=e.onStateChange.on((e=>this.handleControllerStateChange(e)));e.setMetadataKeys(this.metadataKeys)}handleMetadataKeysChanged(){var e;(e=this.controller)===null||e===void 0?void 0:e.setMetadataKeys(this.metadataKeys)}retryConnectToViewer(){this.attemptingRetry=true;this.errorDetails=undefined;this.connectToViewer()}connectToViewer(){var e,t;(e=this.stateMap.viewerDisposable)===null||e===void 0?void 0:e.dispose();if(this.viewer==null&&this.viewerSelector!=null){this.viewer=document.querySelector(this.viewerSelector)}if(this.viewer!=null){this.stateMap.viewerDisposable=(t=this.controller)===null||t===void 0?void 0:t.connectToViewer(this.viewer)}else{this.attemptingRetry=false}}scheduleClearUnusedData(){if(this.stateMap.idleCallbackId!=null){window.cancelIdleCallback(this.stateMap.idleCallbackId)}this.stateMap.idleCallbackId=window.requestIdleCallback((e=>{var t,i,s;const n=(t=e.timeRemaining)===null||t===void 0?void 0:t.call(e);if(n==null||n>=R){const e=this.getLayoutElement();const t=e.viewportStartIndex;const n=e.viewportEndIndex;const[o,r]=((i=this.controller)===null||i===void 0?void 0:i.getPageIndexesForRange(t,n))||[];if(o!=null&&r!=null){(s=this.controller)===null||s===void 0?void 0:s.invalidatePagesOutsideRange(o,r,50)}}else{this.scheduleClearUnusedData()}}))}handleControllerStateChange(e){this.showLoader=!!e.shouldShowLoading;this.showEmptyResults=!!e.shouldShowEmptyResults;this.rows=e.rows;this.totalRows=e.totalRows;if(e.connection.type==="failure"){this.errorDetails=e.connection.details;this.connectionError.emit(e.connection.details)}else if(e.connection.type==="disconnected"){this.errorDetails=new h("DISCONNECTED",u.DISCONNECTED)}else{this.errorDetails=undefined}if(e.connection.type==="connected"||e.connection.type==="failure"){this.attemptingRetry=false}}async performRowOperation(e,t){const i=typeof e==="number"?this.rows[e]:e;if(i==null){throw new Error(`Cannot perform scene tree operation. Row not found.`)}const s=v(i)?i.node:i;if(s.id==null){throw new Error(`Cannot perform scene tree operation. ID is undefined.`)}if(this.viewer==null){throw new Error(`Cannot perform scene tree operation. Cannot get reference to viewer.`)}await t({viewer:this.viewer,id:s.id.hex,node:s})}async handleSearch(e){const t=this.metadataSearchKeys.length>0?this.metadataSearchKeys:this.metadataKeys;try{await this.filterItems(e.detail,{columns:t,exactMatch:this.metadataSearchExactMatch})}catch(e){console.error("Failed to filter tree with exception: ",e)}}async handleCellLoaded(){if(!this.firstCellRendered&&this.rows.length>0){this.firstCellRendered=true;this.firstRowRendered.emit()}}getScrollToPosition(e,t){var i;const s=this.getLayoutElement();const n=Math.max(0,Math.min(e,this.totalRows-1));const o=(i=s.layoutHeight)!==null&&i!==void 0?i:0;const r=s.rowHeight;if(t==="start"){return n*r}else if(t==="middle"){const e=n*r+r/2;return e-o/2}else{const e=n*r+r;return e-o}}getConfig(){return p(this.configEnv,this.config)}ensureLayoutDefined(){let e=this.el.querySelector("vertex-scene-tree-table-layout");if(e==null){e=document.createElement("vertex-scene-tree-table-layout");e.innerHTML=`\n <vertex-scene-tree-table-column>\n <template>\n <vertex-scene-tree-table-cell prop:value="{{row.node.name}}" expand-toggle visibility-toggle></vertex-scene-tree-table-cell>\n </template>\n </vertex-scene-tree-table-column>\n `;this.el.appendChild(e)}this.stateMap.layoutEl=e}updateLayoutElement(){const e=this.stateMap.layoutEl;if(e!=null){e.rows=this.rows;e.tree=this.el;e.totalRows=this.totalRows;e.controller=this.controller;e.rowData=this.rowData}else if(!this.stateMap.componentLoaded&&this.totalRows>0){console.debug("Scene tree has rows, but the component has not yet rendered")}}getLayoutElement(){if(this.stateMap.layoutEl!=null){return this.stateMap.layoutEl}else{throw new Error("Layout element is undefined")}}get el(){return r(this)}static get watchers(){return{viewer:["handleViewerChanged"],controller:["handleControllerChanged"],metadataKeys:["handleMetadataKeysChanged"]}}};M.style=I;export{M as vertex_scene_tree};
5
- //# sourceMappingURL=p-9b8dae4a.entry.js.map
4
+ import{h as e,F as t,r as i,c as s,f as n,H as o,g as r}from"./p-50533a46.js";import{o as a}from"./p-71fbe522.js";import{a as l,w as d,S as h,b as c,c as u}from"./p-3d19b37e.js";import{p}from"./p-8343e598.js";import{g as f}from"./p-8867dab6.js";import{i as v}from"./p-c5381b4a.js";import"./p-6320532c.js";import"./p-9acf99ad.js";import"./p-7f54de9d.js";import"./p-d45df0c0.js";import"./p-d727045f.js";import"./p-39eab85b.js";import"./p-7578885f.js";import"./p-e1d82323.js";window.requestIdleCallback=window.requestIdleCallback||function(e){var t=Date.now();return setTimeout((function(){e({didTimeout:false,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})}),1)};window.cancelIdleCallback=window.cancelIdleCallback||function(e){clearTimeout(e)};function w(e){return e!=null&&e.nodeName==="VERTEX-SCENE-TREE-TABLE-CELL"}const m=({details:i},s)=>e("div",{class:"error"},e("div",{class:"error-section error-message"},e("span",null,i.message),i.link&&e(t,null,e("span",null," See our "),e("a",{href:i.link,target:"_blank"},"documentation")," ",e("span",null," for more information."))),e("div",{class:"error-section"},s));async function y(e,t,{suppliedCorrelationId:i}={}){const s=await e.scene();return s.items((e=>e.where((e=>e.withItemId(t))).show())).execute({suppliedCorrelationId:i})}async function b(e,t,{suppliedCorrelationId:i}={}){const s=await e.scene();return s.items((e=>e.where((e=>e.withItemId(t))).hide())).execute({suppliedCorrelationId:i})}async function g(e,t,{append:i=false,suppliedCorrelationId:s}){const n=await e.scene();return n.items((e=>[...i?[]:[e.where((e=>e.all())).deselect()],e.where((e=>e.withItemId(t))).select()])).execute({suppliedCorrelationId:s})}async function x(e,t,i,{append:s=true,suppliedCorrelationId:n}){const o=await e.scene();return o.items((e=>[...s?[]:[e.where((e=>e.all())).deselect()],e.where((e=>e.withSceneTreeRange({start:t,end:i}))).select()])).execute({suppliedCorrelationId:n})}async function C(e,t,i,s,{append:n=false,suppliedCorrelationId:o}){const r=await e.scene();return r.items((e=>[...n?[]:[e.where((e=>e.all())).deselect()],e.where((e=>e.withMetadata(t,i,s))).select()])).execute({suppliedCorrelationId:o})}async function E(e,t,{suppliedCorrelationId:i}={}){const s=await e.scene();return s.items((e=>e.where((e=>e.withItemId(t))).deselect())).execute({suppliedCorrelationId:i})}const I="button{border:none;background:transparent;cursor:pointer;margin:0;padding:0}.button{padding:0.5rem;border-radius:0.25rem}.button-secondary{color:var(--neutral-800);background-color:var(--neutral-300)}.button-secondary:hover{color:var(--neutral-900)}.button-secondary:hover:enabled{box-shadow:0 2px 2px rgb(0 0 0 / 20%)}.button-secondary:disabled{opacity:0.8}.button-secondary:hover:disabled{cursor:not-allowed}:host{--scene-tree-toolbar-separator:1px solid var(--neutral-300);width:300px;height:100%;user-select:none;-webkit-user-select:none;cursor:default;display:flex;flex-direction:column}.rows-scroll{position:relative;height:var(--scene-tree-row-height, 0);flex-grow:1}.rows{position:relative}.row{position:absolute;display:flex;align-items:center;width:100%;height:var(--scene-tree-row-height);padding:var(--scene-tree-row-padding);box-sizing:border-box}.row:hover{background-color:var(--scene-tree-row-hover-color)}.row.is-selected{background-color:var(--scene-tree-row-selected-color)}.expand-toggle{cursor:pointer;width:16px}.row-text{margin-left:0.25rem;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.visibility-btn{display:flex;align-items:center;visibility:hidden;padding:4px}.visibility-btn.is-hidden{visibility:visible}.row:hover .visibility-btn{visibility:visible}.error,.empty-results{display:flex;flex-direction:column;align-items:center;font-size:0.875rem;width:100%;height:100%;padding:1rem;box-sizing:border-box;justify-content:center}.error-section{margin-top:1rem}.error-message{text-align:center}.search-toolbar,slot[name='header']::slotted(*){border-bottom:var(--scene-tree-toolbar-separator)}slot[name='footer']::slotted(:not(:last-child)){border-top:var(--scene-tree-toolbar-separator)}.header{display:flex;flex-direction:column}.footer{display:flex;flex-direction:column}.loading{position:absolute;top:150px;left:50%;transform:translate(-50%, -50%);text-align:center}";const R=25;const M=class{constructor(e){i(this,e);this.connectionError=s(this,"connectionError",7);this.firstRowRendered=s(this,"firstRowRendered",7);this.overScanCount=25;this.configEnv="platprod";this.metadataSearchExactMatch=false;this.metadataSearchKeys=[];this.metadataKeys=[];this.rows=[];this.totalRows=0;this.showLoader=false;this.showEmptyResults=false;this.stateMap={componentLoaded:false};this.attemptingRetry=false;this.firstCellRendered=false}async invalidateRows(){n(this.getLayoutElement())}async scrollToIndex(e,t={}){const{animate:i,position:s="middle"}=t;const n=Math.max(0,Math.min(e,this.totalRows));const o=this.getScrollToPosition(n,s);this.getLayoutElement().scrollToPosition(o,{behavior:i?"smooth":undefined})}async scrollToItem(e,t={}){var i;const s=this.totalRows;const n=await((i=this.controller)===null||i===void 0?void 0:i.expandParentNodes(e));if(n!=null&&s!==this.totalRows){return new Promise((e=>{const i=this.getLayoutElement();const s=async()=>{i.removeEventListener("layoutRendered",s);await this.scrollToIndex(n,t);e()};i.addEventListener("layoutRendered",s)}))}else if(n!=null){await this.scrollToIndex(n,t)}}async expandAll(){var e;await((e=this.controller)===null||e===void 0?void 0:e.expandAll())}async collapseAll(){var e;await((e=this.controller)===null||e===void 0?void 0:e.collapseAll())}async expandItem(e){await this.performRowOperation(e,(async({id:e,node:t})=>{var i;if(!t.expanded){await((i=this.controller)===null||i===void 0?void 0:i.expandNode(e))}}))}async collapseItem(e){await this.performRowOperation(e,(async({id:e,node:t})=>{var i;if(t.expanded){await((i=this.controller)===null||i===void 0?void 0:i.collapseNode(e))}}))}async toggleExpandItem(e){await this.performRowOperation(e,(async({node:e})=>{if(e.expanded){await this.collapseItem(e)}else{await this.expandItem(e)}}))}async toggleItemVisibility(e){await this.performRowOperation(e,(async({viewer:e,id:t,node:i})=>{if(i.visible||i.partiallyVisible){await b(e,t)}else{await y(e,t)}}))}async hideItem(e){await this.performRowOperation(e,(async({viewer:e,id:t,node:i})=>{if(i.visible){await b(e,t)}}))}async showItem(e){await this.performRowOperation(e,(async({viewer:e,id:t,node:i})=>{if(!i.visible){await y(e,t)}}))}async selectItem(e,t={}){var{recurseParent:i}=t,s=a(t,["recurseParent"]);await this.performRowOperation(e,(async({viewer:e,id:t})=>{var n,o,r,a;const l=await((n=this.controller)===null||n===void 0?void 0:n.fetchNodeAncestors(t))||[];const d=(o=this.stateMap.selectionPath)===null||o===void 0?void 0:o.includes(t);if(i&&d){const e=l.find((({selected:e})=>!e));if(e!=null){await this.selectItem(e,s);this.lastSelectedItemId=t}}else if(s.range&&this.lastSelectedItemId!=null){const i=await((r=this.controller)===null||r===void 0?void 0:r.expandParentNodes(t));const n=await((a=this.controller)===null||a===void 0?void 0:a.expandParentNodes(this.lastSelectedItemId));if(n&&i){const t=Math.min(n,i);const o=Math.max(n,i);await x(e,t,o,s)}}else{await g(e,t,s);this.lastSelectedItemId=t}this.stateMap.selectionPath=[...l.map((({id:e})=>(e===null||e===void 0?void 0:e.hex)||"")),t]}))}async deselectItem(e){await this.performRowOperation(e,(async({viewer:e,id:t,node:i})=>{if(i.selected){this.lastSelectedItemId=undefined;await E(e,t)}}))}async getRowAtIndex(e){return this.rows[e]}async getRowForEvent(e){const{clientY:t,target:i}=e;if(i!=null&&this.errorDetails==null&&f(this.el,i)&&w(i)){return this.getRowAtClientY(t)}else{return undefined}}getRowAtClientY(e){const t=this.getLayoutElement();const i=t.layoutOffset;const s=Math.floor((e-i+t.scrollOffset)/t.rowHeight);return this.getRowAtIndex(s)}async filterItems(e,t={}){var i;return(i=this.controller)===null||i===void 0?void 0:i.filter(e,t)}async selectFilteredItems(e,t){if(this.viewer!=null){const i=this.metadataSearchKeys.length>0?this.metadataSearchKeys:this.metadataKeys;if(i.length===0){console.warn("No metadata keys were found to perform the selection. Defaulting to ['VERTEX_SCENE_ITEM_NAME']")}const s=i.length>0?i:["VERTEX_SCENE_ITEM_NAME"];await C(this.viewer,e,s,this.metadataSearchExactMatch,Object.assign({append:false},t))}}async fetchMetadataKeys(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.fetchMetadataKeys())!==null&&t!==void 0?t:[]}disconnectedCallback(){var e,t;(e=this.stateMap.viewerDisposable)===null||e===void 0?void 0:e.dispose();(t=this.controller)===null||t===void 0?void 0:t.cancel()}componentWillLoad(){var e;if(this.controller==null){const{sceneTreeHost:t}=this.getConfig().network;const i=new l(t,this.getConfig().flags.grpcUseStreamingWebSocketTransport?{transport:d}:undefined);this.controller=new h(i,100);(e=this.controller)===null||e===void 0?void 0:e.setMetadataKeys(this.metadataKeys)}this.stateMap.onStateChangeDisposable=this.controller.onStateChange.on((e=>this.handleControllerStateChange(e)));this.connectToViewer()}async componentDidLoad(){var e;this.ensureLayoutDefined();this.updateLayoutElement();const t=this.getLayoutElement();const i=new ResizeObserver((()=>{this.invalidateRows()}));i.observe(t);this.stateMap.resizeObserver=i;this.stateMap.componentLoaded=true;(e=this.controller)===null||e===void 0?void 0:e.setMetadataKeys(this.metadataKeys);if(this.viewer==null){this.errorDetails=new c("MISSING_VIEWER",u.MISSING_VIEWER)}}componentWillRender(){this.updateLayoutElement()}render(){return e(o,null,e("div",{class:"header"},e("slot",{name:"header"},e("vertex-scene-tree-toolbar",{class:"search-toolbar"},e("vertex-scene-tree-search",{controller:this.controller})))),this.errorDetails!=null&&this.renderError(this.errorDetails),this.errorDetails==null&&e("div",{class:"rows-scroll"},this.showLoader&&e("slot",{name:"loading"},e("vertex-viewer-spinner",{class:"loading",size:"md"})),this.showEmptyResults&&e("slot",{name:"empty-results"},e("div",{class:"empty-results"},"No Results Found.")),e("slot",null)),e("div",{class:"footer"},e("slot",{name:"footer"})))}renderError(t){if(t.code!==u.SCENE_TREE_DISABLED){return e(m,{details:t},e("button",{class:"button button-secondary",onClick:()=>this.retryConnectToViewer(),disabled:this.attemptingRetry},"Retry"))}else{return e(m,{details:t})}}handleViewerChanged(e,t){if(!this.stateMap.componentLoaded){return}this.connectToViewer()}handleControllerChanged(e){var t;if(!this.stateMap.componentLoaded){return}(t=this.stateMap.onStateChangeDisposable)===null||t===void 0?void 0:t.dispose();this.stateMap.onStateChangeDisposable=e.onStateChange.on((e=>this.handleControllerStateChange(e)));e.setMetadataKeys(this.metadataKeys)}handleMetadataKeysChanged(){var e;(e=this.controller)===null||e===void 0?void 0:e.setMetadataKeys(this.metadataKeys)}retryConnectToViewer(){this.attemptingRetry=true;this.errorDetails=undefined;this.connectToViewer()}connectToViewer(){var e,t;(e=this.stateMap.viewerDisposable)===null||e===void 0?void 0:e.dispose();if(this.viewer==null&&this.viewerSelector!=null){this.viewer=document.querySelector(this.viewerSelector)}if(this.viewer!=null){this.stateMap.viewerDisposable=(t=this.controller)===null||t===void 0?void 0:t.connectToViewer(this.viewer)}else{this.attemptingRetry=false}}scheduleClearUnusedData(){if(this.stateMap.idleCallbackId!=null){window.cancelIdleCallback(this.stateMap.idleCallbackId)}this.stateMap.idleCallbackId=window.requestIdleCallback((e=>{var t,i,s;const n=(t=e.timeRemaining)===null||t===void 0?void 0:t.call(e);if(n==null||n>=R){const e=this.getLayoutElement();const t=e.viewportStartIndex;const n=e.viewportEndIndex;const[o,r]=((i=this.controller)===null||i===void 0?void 0:i.getPageIndexesForRange(t,n))||[];if(o!=null&&r!=null){(s=this.controller)===null||s===void 0?void 0:s.invalidatePagesOutsideRange(o,r,50)}}else{this.scheduleClearUnusedData()}}))}handleControllerStateChange(e){this.showLoader=!!e.shouldShowLoading;this.showEmptyResults=!!e.shouldShowEmptyResults;this.rows=e.rows;this.totalRows=e.totalRows;if(e.connection.type==="failure"){this.errorDetails=e.connection.details;this.connectionError.emit(e.connection.details)}else if(e.connection.type==="disconnected"){this.errorDetails=new c("DISCONNECTED",u.DISCONNECTED)}else{this.errorDetails=undefined}if(e.connection.type==="connected"||e.connection.type==="failure"){this.attemptingRetry=false}}async performRowOperation(e,t){const i=typeof e==="number"?this.rows[e]:e;if(i==null){throw new Error(`Cannot perform scene tree operation. Row not found.`)}const s=v(i)?i.node:i;if(s.id==null){throw new Error(`Cannot perform scene tree operation. ID is undefined.`)}if(this.viewer==null){throw new Error(`Cannot perform scene tree operation. Cannot get reference to viewer.`)}await t({viewer:this.viewer,id:s.id.hex,node:s})}async handleSearch(e){const t=this.metadataSearchKeys.length>0?this.metadataSearchKeys:this.metadataKeys;try{await this.filterItems(e.detail,{columns:t,exactMatch:this.metadataSearchExactMatch})}catch(e){console.error("Failed to filter tree with exception: ",e)}}async handleCellLoaded(){if(!this.firstCellRendered&&this.rows.length>0){this.firstCellRendered=true;this.firstRowRendered.emit()}}getScrollToPosition(e,t){var i;const s=this.getLayoutElement();const n=Math.max(0,Math.min(e,this.totalRows-1));const o=(i=s.layoutHeight)!==null&&i!==void 0?i:0;const r=s.rowHeight;if(t==="start"){return n*r}else if(t==="middle"){const e=n*r+r/2;return e-o/2}else{const e=n*r+r;return e-o}}getConfig(){return p(this.configEnv,this.config)}ensureLayoutDefined(){let e=this.el.querySelector("vertex-scene-tree-table-layout");if(e==null){e=document.createElement("vertex-scene-tree-table-layout");e.innerHTML=`\n <vertex-scene-tree-table-column>\n <template>\n <vertex-scene-tree-table-cell prop:value="{{row.node.name}}" expand-toggle visibility-toggle></vertex-scene-tree-table-cell>\n </template>\n </vertex-scene-tree-table-column>\n `;this.el.appendChild(e)}this.stateMap.layoutEl=e}updateLayoutElement(){const e=this.stateMap.layoutEl;if(e!=null){e.rows=this.rows;e.tree=this.el;e.totalRows=this.totalRows;e.controller=this.controller;e.rowData=this.rowData}else if(!this.stateMap.componentLoaded&&this.totalRows>0){console.debug("Scene tree has rows, but the component has not yet rendered")}}getLayoutElement(){if(this.stateMap.layoutEl!=null){return this.stateMap.layoutEl}else{throw new Error("Layout element is undefined")}}get el(){return r(this)}static get watchers(){return{viewer:["handleViewerChanged"],controller:["handleControllerChanged"],metadataKeys:["handleMetadataKeysChanged"]}}};M.style=I;export{M as vertex_scene_tree};
5
+ //# sourceMappingURL=p-d256624d.entry.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Copyright (c) 2023 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import{d as e,N as t,w as r,p as a,b as i}from"./p-50533a46.js";import{g as o}from"./p-146e5d45.js";import"./p-9acf99ad.js";const n=e=>`__sc_import_${e.replace(/\s|-/g,"_")}`;const s=()=>{const i=Array.from(e.querySelectorAll("script")).find((e=>new RegExp(`/${t}(\\.esm)?\\.js($|\\?|#)`).test(e.src)||e.getAttribute("data-stencil-namespace")===t));const o="";const n={};if(o!==""){n.resourcesUrl=new URL(".",o).href}else{n.resourcesUrl=new URL(".",new URL(i.getAttribute("data-resources-url")||i.src,r.location.href)).href;{l(n.resourcesUrl,i)}if(!r.customElements){return __sc_import_viewer("./p-1afa84ed.js").then((()=>n))}}return a(n)};const l=(a,i)=>{const o=n(t);try{r[o]=new Function("w",`return import(w);//${Math.random()}`)}catch(t){const n=new Map;r[o]=t=>{const s=new URL(t,a).href;let l=n.get(s);if(!l){const t=e.createElement("script");t.type="module";t.crossOrigin=i.crossOrigin;t.src=URL.createObjectURL(new Blob([`import * as m from '${s}'; window.${o}.m = m;`],{type:"application/javascript"}));l=new Promise((e=>{t.onload=()=>{e(r[o].m);t.remove()}}));n.set(s,l);e.head.appendChild(t)}return l}}};s().then((e=>{o();return i(JSON.parse('[["p-c86537d8",[[1,"vertex-viewer-pin-tool",{"pinController":[1040],"pinModel":[16],"viewer":[16],"tool":[1025],"mode":[1025],"primaryColor":[1025,"primary-color"],"accentColor":[1025,"accent-color"],"pins":[32],"selectedPinId":[32],"elementBounds":[32],"projectionViewMatrix":[32]}]]],["p-9b8dae4a",[[1,"vertex-scene-tree",{"overScanCount":[2,"over-scan-count"],"viewerSelector":[1,"viewer-selector"],"viewer":[1040],"rowData":[16],"config":[1],"configEnv":[1,"config-env"],"controller":[1040],"metadataSearchExactMatch":[1028,"metadata-search-exact-match"],"metadataSearchKeys":[1040],"metadataKeys":[16],"rows":[32],"totalRows":[32],"showLoader":[32],"showEmptyResults":[32],"stateMap":[32],"errorDetails":[32],"attemptingRetry":[32],"invalidateRows":[64],"scrollToIndex":[64],"scrollToItem":[64],"expandAll":[64],"collapseAll":[64],"expandItem":[64],"collapseItem":[64],"toggleExpandItem":[64],"toggleItemVisibility":[64],"hideItem":[64],"showItem":[64],"selectItem":[64],"deselectItem":[64],"getRowAtIndex":[64],"getRowForEvent":[64],"getRowAtClientY":[64],"filterItems":[64],"selectFilteredItems":[64],"fetchMetadataKeys":[64]},[[0,"search","handleSearch"],[0,"cellLoaded","handleCellLoaded"]]]]],["p-a96559b7",[[1,"vertex-viewer-default-toolbar",{"viewer":[16],"placement":[1],"direction":[1],"animationsDisabled":[4,"animations-disabled"],"animationMs":[2,"animation-ms"]}]]],["p-6bc3cc72",[[1,"vertex-viewer-markup",{"arrowTemplateId":[1,"arrow-template-id"],"circleTemplateId":[1,"circle-template-id"],"freeformTemplateId":[1,"freeform-template-id"],"tool":[1],"disabled":[4],"viewer":[16],"selectedMarkupId":[1025,"selected-markup-id"],"selectNew":[4,"select-new"],"toSelectMarkupId":[32],"pointerDownPosition":[32],"addMarkup":[64],"removeMarkup":[64],"getMarkupElements":[64],"getMarkupElement":[64]},[[0,"markupEnd","handleMarkupEnd"],[1,"pointerdown","handleMarkupPointerDown"]]]]],["p-eaebbc17",[[1,"vertex-viewer-markup-tool",{"arrowTemplateId":[1,"arrow-template-id"],"circleTemplateId":[1,"circle-template-id"],"freeformTemplateId":[1,"freeform-template-id"],"tool":[1],"disabled":[4],"viewer":[16],"stateMap":[32],"reset":[64]}]]],["p-db20c73f",[[1,"vertex-viewer-view-cube",{"xPositiveLabel":[1,"x-positive-label"],"xNegativeLabel":[1,"x-negative-label"],"yPositiveLabel":[1,"y-positive-label"],"yNegativeLabel":[1,"y-negative-label"],"zPositiveLabel":[1,"z-positive-label"],"zNegativeLabel":[1,"z-negative-label"],"standardViewsOff":[4,"standard-views-off"],"animationDuration":[2,"animation-duration"],"triadOff":[4,"triad-off"],"worldOrientation":[1040],"camera":[1040],"viewer":[16],"boxLength":[32],"triadPosition":[32]}]]],["p-09e5e359",[[1,"vertex-viewer-measurement-distance",{"start":[1040],"startJson":[1,"start-json"],"end":[1040],"endJson":[1,"end-json"],"distance":[1026],"showAxisReferenceLines":[4,"show-axis-reference-lines"],"snapDistance":[2,"snap-distance"],"units":[1],"fractionalDigits":[2,"fractional-digits"],"labelFormatter":[16],"anchorLabelOffset":[2,"anchor-label-offset"],"lineCapLength":[2,"line-cap-length"],"mode":[513],"interactingAnchor":[1537,"interacting-anchor"],"invalid":[1540],"camera":[16],"hitProvider":[16],"indicatorPt":[1040],"viewer":[16],"measurementModel":[16],"viewport":[32],"elementBounds":[32],"interactionCount":[32],"internalCamera":[32],"invalidateStateCounter":[32],"stateMap":[32],"measurementUnits":[32],"computeElementMetrics":[64]}]]],["p-74a05d8a",[[1,"vertex-viewer-measurement-precise",{"measurementModel":[16],"measurementOverlays":[16],"measurementController":[1040],"measurableEntityTypes":[16],"viewer":[16],"configEnv":[1,"config-env"],"config":[1]}]]],["p-4851305f",[[1,"vertex-viewer-box-query-tool",{"viewer":[16],"controller":[1040],"model":[1040],"operationType":[1,"operation-type"],"mode":[1],"details":[32]}]]],["p-59f38a92",[[1,"vertex-scene-tree-table-cell",{"node":[16],"tree":[16],"value":[1],"placeholder":[1],"hovered":[1028],"isScrolling":[4,"is-scrolling"],"expandToggle":[4,"expand-toggle"],"visibilityToggle":[4,"visibility-toggle"],"selectionHandler":[16],"visibilityHandler":[16],"expansionHandler":[16],"hoverController":[16]}]]],["p-7e6ce60f",[[1,"vertex-scene-tree-table-column",{"initialWidth":[2,"initial-width"],"minWidth":[2,"min-width"],"maxWidth":[2,"max-width"]}]]],["p-f10a020b",[[1,"vertex-scene-tree-table-header"]]],["p-1ec5dc51",[[1,"vertex-scene-tree-table-resize-divider",{"dragging":[32]}]]],["p-e9a6f6ff",[[1,"vertex-scene-tree-toolbar-group"]]],["p-27a5034e",[[1,"vertex-viewer",{"src":[1],"clientId":[1,"client-id"],"deviceId":[1025,"device-id"],"config":[1],"configEnv":[1,"config-env"],"resolvedConfig":[1040],"cameraControls":[4,"camera-controls"],"cameraType":[1537,"camera-type"],"keyboardControls":[4,"keyboard-controls"],"rotateAroundTapPoint":[4,"rotate-around-tap-point"],"token":[1025],"depthBuffers":[1,"depth-buffers"],"experimentalGhostingOpacity":[2,"experimental-ghosting-opacity"],"phantom":[16],"noDefaultLights":[4,"no-default-lights"],"experimentalRenderingOptions":[1,"experimental-rendering-options"],"featureLines":[16],"selectionHighlighting":[16],"featureHighlighting":[16],"featureMaps":[1,"feature-maps"],"resizeDebounce":[2,"resize-debounce"],"frame":[1040],"stream":[1040],"stencilBuffer":[1040],"viewport":[1040],"dimensions":[32],"hostDimensions":[32],"errorMessage":[32],"cursor":[32],"stateMap":[32],"dispatchFrameDrawn":[64],"registerInteractionHandler":[64],"registerTapKeyInteraction":[64],"getInteractionTarget_DEPRECATED":[64],"addCursor":[64],"getInteractionHandlers":[64],"getKeyInteractions":[64],"getBaseInteractionHandler":[64],"getJwt":[64],"load":[64],"unload":[64],"scene":[64],"isSceneReady":[64]},[[0,"tap","handleTapEvent"]]]]],["p-e758a466",[[1,"vertex-viewer-hit-result-indicator",{"viewer":[16],"position":[1040],"normal":[1040]}]]],["p-4af3e01d",[[1,"vertex-viewer-measurement-details",{"measurementModel":[16],"measurementOverlays":[16],"measurementOutcome":[1040],"distanceUnits":[1,"distance-units"],"angleUnits":[1,"angle-units"],"fractionalDigits":[2,"fractional-digits"],"distanceFormatter":[16],"angleFormatter":[16],"areaFormatter":[16],"resultTypes":[16],"overlay":[32],"distanceMeasurementUnits":[32],"angleMeasurementUnits":[32],"areaMeasurementUnits":[32]}]]],["p-37490ee0",[[1,"vertex-viewer-transform-widget",{"viewer":[16],"position":[1040],"rotation":[1040],"controller":[1040],"xRotationDisabled":[1028,"x-rotation-disabled"],"yRotationDisabled":[1028,"y-rotation-disabled"],"zRotationDisabled":[1028,"z-rotation-disabled"],"xTranslationDisabled":[1028,"x-translation-disabled"],"yTranslationDisabled":[1028,"y-translation-disabled"],"zTranslationDisabled":[1028,"z-translation-disabled"],"hovered":[1040]}]]],["p-369cf923",[[1,"vertex-viewer-icon",{"name":[1],"size":[1]}]]],["p-1815d19b",[[0,"vertex-viewer-pin-group",{"pin":[16],"matrix":[1040],"projectionViewMatrix":[16],"elementBounds":[1040],"pinModel":[16],"pinController":[16],"selected":[4],"invalidateStateCounter":[32]}]]],["p-88fd3d19",[[1,"vertex-viewer-dom-group",{"position":[1040],"positionJson":[1,"position"],"rotation":[1040],"rotationJson":[1,"rotation"],"quaternion":[1040],"quaternionJson":[1,"quaternion"],"scale":[1040],"scaleJson":[1,"scale"],"matrix":[1040]}]]],["p-87d386a1",[[1,"vertex-viewer-spinner",{"size":[1]}]]],["p-073d15e9",[[1,"vertex-scene-tree-search",{"debounce":[2],"disabled":[4],"placeholder":[1],"controller":[16],"value":[1025],"focused":[32],"isSearching":[32],"setFocus":[64]}],[1,"vertex-scene-tree-table-layout",{"tree":[16],"controller":[16],"rows":[16],"totalRows":[2,"total-rows"],"rowHeight":[1026,"row-height"],"overScanCount":[2,"over-scan-count"],"rowData":[16],"layoutOffset":[1026,"layout-offset"],"scrollOffset":[1026,"scroll-offset"],"layoutHeight":[1026,"layout-height"],"layoutWidth":[1026,"layout-width"],"viewportStartIndex":[1026,"viewport-start-index"],"viewportEndIndex":[1026,"viewport-end-index"],"columnGridLayout":[32],"columnGridFixedLayout":[32],"isComputingCellHeight":[32],"lastDividerPointerPosition":[32],"resizingColumnIndex":[32],"isScrolling":[32],"scrollTimer":[32],"stateMap":[32],"scrollToPosition":[64]}],[1,"vertex-scene-tree-toolbar"]]],["p-be6b15b3",[[1,"vertex-viewer-layer",{"stretchOff":[516,"stretch-off"]}]]],["p-13bf559e",[[1,"vertex-viewer-toolbar",{"placement":[1],"direction":[1]}],[1,"vertex-viewer-button"],[1,"vertex-viewer-toolbar-group",{"direction":[1]}]]],["p-f13b7f7b",[[0,"vertex-viewer-pin-label",{"pin":[16],"elementBounds":[16],"value":[1025],"pinController":[16],"focused":[32],"computedScreenPosition":[32],"textareaRows":[32],"contentElBounds":[32],"setFocus":[64]}],[0,"vertex-viewer-pin-label-line",{"pinPoint":[16],"labelPoint":[16],"pin":[16]}]]],["p-f8a49c7f",[[1,"vertex-viewer-measurement-overlays",{"measurementOverlays":[16],"camera":[1040],"viewer":[16],"overlays":[32]}],[1,"vertex-viewer-measurement-line",{"start":[16],"end":[16],"capLength":[2,"cap-length"],"pointerEvents":[1,"pointer-events"]}]]],["p-c7922391",[[1,"vertex-viewer-dom-renderer",{"drawMode":[1,"draw-mode"],"viewer":[16],"camera":[1040],"depthBuffer":[1040],"viewport":[32],"invalidateFrameCounter":[32]},[[0,"propertyChange","handlePropertyChange"]]],[1,"vertex-viewer-dom-element",{"position":[1040],"positionJson":[1,"position"],"rotation":[1040],"rotationJson":[1,"rotation"],"quaternion":[1040],"quaternionJson":[1,"quaternion"],"scale":[1040],"scaleJson":[1,"scale"],"matrix":[1040],"occlusionOff":[4,"occlusion-off"],"occluded":[516],"billboardOff":[4,"billboard-off"],"interactionsOff":[516,"interactions-off"]}]]],["p-5742c9cd",[[1,"vertex-viewer-markup-arrow",{"start":[1040],"startJson":[1,"start"],"end":[1040],"endJson":[1,"end"],"mode":[513],"viewer":[16],"elementBounds":[32],"dispose":[64]}],[1,"vertex-viewer-markup-circle",{"bounds":[1040],"boundsJson":[1,"bounds"],"mode":[513],"viewer":[16],"elementBounds":[32],"dispose":[64]}],[1,"vertex-viewer-markup-freeform",{"points":[1040],"pointsJson":[1,"points"],"bounds":[1040],"boundsJson":[1,"bounds"],"mode":[513],"viewer":[16],"elementBounds":[32],"screenPoints":[32],"dispose":[64]}]]]]'),e)}));
4
+ import{d as e,N as t,w as r,p as a,b as i}from"./p-50533a46.js";import{g as o}from"./p-146e5d45.js";import"./p-9acf99ad.js";const n=e=>`__sc_import_${e.replace(/\s|-/g,"_")}`;const s=()=>{const i=Array.from(e.querySelectorAll("script")).find((e=>new RegExp(`/${t}(\\.esm)?\\.js($|\\?|#)`).test(e.src)||e.getAttribute("data-stencil-namespace")===t));const o="";const n={};if(o!==""){n.resourcesUrl=new URL(".",o).href}else{n.resourcesUrl=new URL(".",new URL(i.getAttribute("data-resources-url")||i.src,r.location.href)).href;{l(n.resourcesUrl,i)}if(!r.customElements){return __sc_import_viewer("./p-1afa84ed.js").then((()=>n))}}return a(n)};const l=(a,i)=>{const o=n(t);try{r[o]=new Function("w",`return import(w);//${Math.random()}`)}catch(t){const n=new Map;r[o]=t=>{const s=new URL(t,a).href;let l=n.get(s);if(!l){const t=e.createElement("script");t.type="module";t.crossOrigin=i.crossOrigin;t.src=URL.createObjectURL(new Blob([`import * as m from '${s}'; window.${o}.m = m;`],{type:"application/javascript"}));l=new Promise((e=>{t.onload=()=>{e(r[o].m);t.remove()}}));n.set(s,l);e.head.appendChild(t)}return l}}};s().then((e=>{o();return i(JSON.parse('[["p-c86537d8",[[1,"vertex-viewer-pin-tool",{"pinController":[1040],"pinModel":[16],"viewer":[16],"tool":[1025],"mode":[1025],"primaryColor":[1025,"primary-color"],"accentColor":[1025,"accent-color"],"pins":[32],"selectedPinId":[32],"elementBounds":[32],"projectionViewMatrix":[32]}]]],["p-d256624d",[[1,"vertex-scene-tree",{"overScanCount":[2,"over-scan-count"],"viewerSelector":[1,"viewer-selector"],"viewer":[1040],"rowData":[16],"config":[1],"configEnv":[1,"config-env"],"controller":[1040],"metadataSearchExactMatch":[1028,"metadata-search-exact-match"],"metadataSearchKeys":[1040],"metadataKeys":[16],"rows":[32],"totalRows":[32],"showLoader":[32],"showEmptyResults":[32],"stateMap":[32],"errorDetails":[32],"attemptingRetry":[32],"invalidateRows":[64],"scrollToIndex":[64],"scrollToItem":[64],"expandAll":[64],"collapseAll":[64],"expandItem":[64],"collapseItem":[64],"toggleExpandItem":[64],"toggleItemVisibility":[64],"hideItem":[64],"showItem":[64],"selectItem":[64],"deselectItem":[64],"getRowAtIndex":[64],"getRowForEvent":[64],"getRowAtClientY":[64],"filterItems":[64],"selectFilteredItems":[64],"fetchMetadataKeys":[64]},[[0,"search","handleSearch"],[0,"cellLoaded","handleCellLoaded"]]]]],["p-a96559b7",[[1,"vertex-viewer-default-toolbar",{"viewer":[16],"placement":[1],"direction":[1],"animationsDisabled":[4,"animations-disabled"],"animationMs":[2,"animation-ms"]}]]],["p-6bc3cc72",[[1,"vertex-viewer-markup",{"arrowTemplateId":[1,"arrow-template-id"],"circleTemplateId":[1,"circle-template-id"],"freeformTemplateId":[1,"freeform-template-id"],"tool":[1],"disabled":[4],"viewer":[16],"selectedMarkupId":[1025,"selected-markup-id"],"selectNew":[4,"select-new"],"toSelectMarkupId":[32],"pointerDownPosition":[32],"addMarkup":[64],"removeMarkup":[64],"getMarkupElements":[64],"getMarkupElement":[64]},[[0,"markupEnd","handleMarkupEnd"],[1,"pointerdown","handleMarkupPointerDown"]]]]],["p-eaebbc17",[[1,"vertex-viewer-markup-tool",{"arrowTemplateId":[1,"arrow-template-id"],"circleTemplateId":[1,"circle-template-id"],"freeformTemplateId":[1,"freeform-template-id"],"tool":[1],"disabled":[4],"viewer":[16],"stateMap":[32],"reset":[64]}]]],["p-db20c73f",[[1,"vertex-viewer-view-cube",{"xPositiveLabel":[1,"x-positive-label"],"xNegativeLabel":[1,"x-negative-label"],"yPositiveLabel":[1,"y-positive-label"],"yNegativeLabel":[1,"y-negative-label"],"zPositiveLabel":[1,"z-positive-label"],"zNegativeLabel":[1,"z-negative-label"],"standardViewsOff":[4,"standard-views-off"],"animationDuration":[2,"animation-duration"],"triadOff":[4,"triad-off"],"worldOrientation":[1040],"camera":[1040],"viewer":[16],"boxLength":[32],"triadPosition":[32]}]]],["p-09e5e359",[[1,"vertex-viewer-measurement-distance",{"start":[1040],"startJson":[1,"start-json"],"end":[1040],"endJson":[1,"end-json"],"distance":[1026],"showAxisReferenceLines":[4,"show-axis-reference-lines"],"snapDistance":[2,"snap-distance"],"units":[1],"fractionalDigits":[2,"fractional-digits"],"labelFormatter":[16],"anchorLabelOffset":[2,"anchor-label-offset"],"lineCapLength":[2,"line-cap-length"],"mode":[513],"interactingAnchor":[1537,"interacting-anchor"],"invalid":[1540],"camera":[16],"hitProvider":[16],"indicatorPt":[1040],"viewer":[16],"measurementModel":[16],"viewport":[32],"elementBounds":[32],"interactionCount":[32],"internalCamera":[32],"invalidateStateCounter":[32],"stateMap":[32],"measurementUnits":[32],"computeElementMetrics":[64]}]]],["p-74a05d8a",[[1,"vertex-viewer-measurement-precise",{"measurementModel":[16],"measurementOverlays":[16],"measurementController":[1040],"measurableEntityTypes":[16],"viewer":[16],"configEnv":[1,"config-env"],"config":[1]}]]],["p-4851305f",[[1,"vertex-viewer-box-query-tool",{"viewer":[16],"controller":[1040],"model":[1040],"operationType":[1,"operation-type"],"mode":[1],"details":[32]}]]],["p-59f38a92",[[1,"vertex-scene-tree-table-cell",{"node":[16],"tree":[16],"value":[1],"placeholder":[1],"hovered":[1028],"isScrolling":[4,"is-scrolling"],"expandToggle":[4,"expand-toggle"],"visibilityToggle":[4,"visibility-toggle"],"selectionHandler":[16],"visibilityHandler":[16],"expansionHandler":[16],"hoverController":[16]}]]],["p-7e6ce60f",[[1,"vertex-scene-tree-table-column",{"initialWidth":[2,"initial-width"],"minWidth":[2,"min-width"],"maxWidth":[2,"max-width"]}]]],["p-f10a020b",[[1,"vertex-scene-tree-table-header"]]],["p-1ec5dc51",[[1,"vertex-scene-tree-table-resize-divider",{"dragging":[32]}]]],["p-e9a6f6ff",[[1,"vertex-scene-tree-toolbar-group"]]],["p-27a5034e",[[1,"vertex-viewer",{"src":[1],"clientId":[1,"client-id"],"deviceId":[1025,"device-id"],"config":[1],"configEnv":[1,"config-env"],"resolvedConfig":[1040],"cameraControls":[4,"camera-controls"],"cameraType":[1537,"camera-type"],"keyboardControls":[4,"keyboard-controls"],"rotateAroundTapPoint":[4,"rotate-around-tap-point"],"token":[1025],"depthBuffers":[1,"depth-buffers"],"experimentalGhostingOpacity":[2,"experimental-ghosting-opacity"],"phantom":[16],"noDefaultLights":[4,"no-default-lights"],"experimentalRenderingOptions":[1,"experimental-rendering-options"],"featureLines":[16],"selectionHighlighting":[16],"featureHighlighting":[16],"featureMaps":[1,"feature-maps"],"resizeDebounce":[2,"resize-debounce"],"frame":[1040],"stream":[1040],"stencilBuffer":[1040],"viewport":[1040],"dimensions":[32],"hostDimensions":[32],"errorMessage":[32],"cursor":[32],"stateMap":[32],"dispatchFrameDrawn":[64],"registerInteractionHandler":[64],"registerTapKeyInteraction":[64],"getInteractionTarget_DEPRECATED":[64],"addCursor":[64],"getInteractionHandlers":[64],"getKeyInteractions":[64],"getBaseInteractionHandler":[64],"getJwt":[64],"load":[64],"unload":[64],"scene":[64],"isSceneReady":[64]},[[0,"tap","handleTapEvent"]]]]],["p-e758a466",[[1,"vertex-viewer-hit-result-indicator",{"viewer":[16],"position":[1040],"normal":[1040]}]]],["p-4af3e01d",[[1,"vertex-viewer-measurement-details",{"measurementModel":[16],"measurementOverlays":[16],"measurementOutcome":[1040],"distanceUnits":[1,"distance-units"],"angleUnits":[1,"angle-units"],"fractionalDigits":[2,"fractional-digits"],"distanceFormatter":[16],"angleFormatter":[16],"areaFormatter":[16],"resultTypes":[16],"overlay":[32],"distanceMeasurementUnits":[32],"angleMeasurementUnits":[32],"areaMeasurementUnits":[32]}]]],["p-37490ee0",[[1,"vertex-viewer-transform-widget",{"viewer":[16],"position":[1040],"rotation":[1040],"controller":[1040],"xRotationDisabled":[1028,"x-rotation-disabled"],"yRotationDisabled":[1028,"y-rotation-disabled"],"zRotationDisabled":[1028,"z-rotation-disabled"],"xTranslationDisabled":[1028,"x-translation-disabled"],"yTranslationDisabled":[1028,"y-translation-disabled"],"zTranslationDisabled":[1028,"z-translation-disabled"],"hovered":[1040]}]]],["p-369cf923",[[1,"vertex-viewer-icon",{"name":[1],"size":[1]}]]],["p-6114701c",[[0,"vertex-viewer-pin-group",{"pin":[16],"matrix":[1040],"projectionViewMatrix":[16],"elementBounds":[1040],"pinModel":[16],"pinController":[16],"selected":[4],"invalidateStateCounter":[32]}]]],["p-88fd3d19",[[1,"vertex-viewer-dom-group",{"position":[1040],"positionJson":[1,"position"],"rotation":[1040],"rotationJson":[1,"rotation"],"quaternion":[1040],"quaternionJson":[1,"quaternion"],"scale":[1040],"scaleJson":[1,"scale"],"matrix":[1040]}]]],["p-87d386a1",[[1,"vertex-viewer-spinner",{"size":[1]}]]],["p-951a2e08",[[1,"vertex-scene-tree-search",{"debounce":[2],"disabled":[4],"placeholder":[1],"controller":[16],"value":[1025],"focused":[32],"isSearching":[32],"setFocus":[64]}],[1,"vertex-scene-tree-table-layout",{"tree":[16],"controller":[16],"rows":[16],"totalRows":[2,"total-rows"],"rowHeight":[1026,"row-height"],"overScanCount":[2,"over-scan-count"],"rowData":[16],"layoutOffset":[1026,"layout-offset"],"scrollOffset":[1026,"scroll-offset"],"layoutHeight":[1026,"layout-height"],"layoutWidth":[1026,"layout-width"],"viewportStartIndex":[1026,"viewport-start-index"],"viewportEndIndex":[1026,"viewport-end-index"],"columnGridLayout":[32],"columnGridFixedLayout":[32],"isComputingCellHeight":[32],"lastDividerPointerPosition":[32],"resizingColumnIndex":[32],"isScrolling":[32],"scrollTimer":[32],"stateMap":[32],"scrollToPosition":[64]}],[1,"vertex-scene-tree-toolbar"]]],["p-be6b15b3",[[1,"vertex-viewer-layer",{"stretchOff":[516,"stretch-off"]}]]],["p-13bf559e",[[1,"vertex-viewer-toolbar",{"placement":[1],"direction":[1]}],[1,"vertex-viewer-button"],[1,"vertex-viewer-toolbar-group",{"direction":[1]}]]],["p-f13b7f7b",[[0,"vertex-viewer-pin-label",{"pin":[16],"elementBounds":[16],"value":[1025],"pinController":[16],"focused":[32],"computedScreenPosition":[32],"textareaRows":[32],"contentElBounds":[32],"setFocus":[64]}],[0,"vertex-viewer-pin-label-line",{"pinPoint":[16],"labelPoint":[16],"pin":[16]}]]],["p-f8a49c7f",[[1,"vertex-viewer-measurement-overlays",{"measurementOverlays":[16],"camera":[1040],"viewer":[16],"overlays":[32]}],[1,"vertex-viewer-measurement-line",{"start":[16],"end":[16],"capLength":[2,"cap-length"],"pointerEvents":[1,"pointer-events"]}]]],["p-c7922391",[[1,"vertex-viewer-dom-renderer",{"drawMode":[1,"draw-mode"],"viewer":[16],"camera":[1040],"depthBuffer":[1040],"viewport":[32],"invalidateFrameCounter":[32]},[[0,"propertyChange","handlePropertyChange"]]],[1,"vertex-viewer-dom-element",{"position":[1040],"positionJson":[1,"position"],"rotation":[1040],"rotationJson":[1,"rotation"],"quaternion":[1040],"quaternionJson":[1,"quaternion"],"scale":[1040],"scaleJson":[1,"scale"],"matrix":[1040],"occlusionOff":[4,"occlusion-off"],"occluded":[516],"billboardOff":[4,"billboard-off"],"interactionsOff":[516,"interactions-off"]}]]],["p-5742c9cd",[[1,"vertex-viewer-markup-arrow",{"start":[1040],"startJson":[1,"start"],"end":[1040],"endJson":[1,"end"],"mode":[513],"viewer":[16],"elementBounds":[32],"dispose":[64]}],[1,"vertex-viewer-markup-circle",{"bounds":[1040],"boundsJson":[1,"bounds"],"mode":[513],"viewer":[16],"elementBounds":[32],"dispose":[64]}],[1,"vertex-viewer-markup-freeform",{"points":[1040],"pointsJson":[1,"points"],"bounds":[1040],"boundsJson":[1,"bounds"],"mode":[513],"viewer":[16],"elementBounds":[32],"screenPoints":[32],"dispose":[64]}]]]]'),e)}));
5
5
  //# sourceMappingURL=viewer.esm.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vertexvis/viewer",
3
- "version": "0.17.5-testing.3",
3
+ "version": "0.17.5-testing.5",
4
4
  "description": "The Vertex SDK for viewing models.",
5
5
  "license": "MIT",
6
6
  "author": "Vertex Developers <support@vertexvis.com> (https://developer.vertexvis.com)",
@@ -50,12 +50,12 @@
50
50
  "@stencil/core": "^2.16.1",
51
51
  "@types/classnames": "^2.3.1",
52
52
  "@vertexvis/frame-streaming-protos": "^0.10.4",
53
- "@vertexvis/geometry": "0.17.5-testing.3",
54
- "@vertexvis/html-templates": "0.17.5-testing.3",
53
+ "@vertexvis/geometry": "0.17.5-testing.5",
54
+ "@vertexvis/html-templates": "0.17.5-testing.5",
55
55
  "@vertexvis/scene-tree-protos": "^0.1.18",
56
56
  "@vertexvis/scene-view-protos": "^0.1.8",
57
- "@vertexvis/stream-api": "0.17.5-testing.3",
58
- "@vertexvis/utils": "0.17.5-testing.3",
57
+ "@vertexvis/stream-api": "0.17.5-testing.5",
58
+ "@vertexvis/utils": "0.17.5-testing.5",
59
59
  "@vertexvis/web-workers": "^0.1.0",
60
60
  "camel-case": "^4.1.2",
61
61
  "classnames": "^2.3.1",
@@ -81,7 +81,7 @@
81
81
  "@vertexvis/eslint-config-vertexvis-typescript": "^0.5.0",
82
82
  "@vertexvis/rollup-plugin-web-workers": "^0.1.0",
83
83
  "@vertexvis/typescript-config-vertexvis": "1.1.0",
84
- "@vertexwebsdk/build": "0.17.5-testing.3",
84
+ "@vertexwebsdk/build": "0.17.5-testing.5",
85
85
  "abortcontroller-polyfill": "^1.7.3",
86
86
  "chance": "^1.1.8",
87
87
  "eslint": "^8.17.0",
@@ -96,5 +96,5 @@
96
96
  "typedoc": "^0.22.17",
97
97
  "typescript": "^4.5.4"
98
98
  },
99
- "gitHead": "cd150fbe50b3c463c93a94b9d1da64daf341cdf6"
99
+ "gitHead": "536e22adc1bb96123777c67ddd6535882087ea6f"
100
100
  }