@vertexvis/viewer 0.18.1-testing.0 → 0.18.1

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 (28) hide show
  1. package/dist/cjs/{controller-ee852f01.js → controller-f3275c6a.js} +3 -3
  2. package/dist/cjs/{controller-ee852f01.js.map → controller-f3275c6a.js.map} +1 -1
  3. package/dist/cjs/index.cjs.js +1 -1
  4. package/dist/cjs/vertex-scene-tree.cjs.entry.js +1 -1
  5. package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js +1 -1
  6. package/dist/collection/components/scene-tree/lib/controller.js +2 -2
  7. package/dist/collection/components/scene-tree/lib/controller.js.map +1 -1
  8. package/dist/collection/testing/fixtures.js +4 -0
  9. package/dist/collection/testing/fixtures.js.map +1 -1
  10. package/dist/custom-elements/index.js +2 -2
  11. package/dist/custom-elements/index.js.map +1 -1
  12. package/dist/esm/{controller-ea698f9b.js → controller-449d5b37.js} +3 -3
  13. package/dist/esm/{controller-ea698f9b.js.map → controller-449d5b37.js.map} +1 -1
  14. package/dist/esm/index.js +1 -1
  15. package/dist/esm/index.mjs +1 -1
  16. package/dist/esm/vertex-scene-tree.entry.js +1 -1
  17. package/dist/esm/vertex-viewer-pin-group.entry.js +1 -1
  18. package/dist/types/testing/fixtures.d.ts +1 -0
  19. package/dist/viewer/index.esm.js +1 -1
  20. package/dist/viewer/{p-2ce1d5a7.entry.js → p-126b66b2.entry.js} +2 -2
  21. package/dist/viewer/{p-2cca6daa.entry.js → p-1a352fbe.entry.js} +2 -2
  22. package/dist/viewer/{p-bb131c4a.js → p-50cbe36b.js} +2 -2
  23. package/dist/viewer/{p-bb131c4a.js.map → p-50cbe36b.js.map} +1 -1
  24. package/dist/viewer/viewer.esm.js +1 -1
  25. package/package.json +8 -7
  26. package/readme.md +4 -4
  27. /package/dist/viewer/{p-2ce1d5a7.entry.js.map → p-126b66b2.entry.js.map} +0 -0
  28. /package/dist/viewer/{p-2cca6daa.entry.js.map → p-1a352fbe.entry.js.map} +0 -0
package/dist/esm/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2023 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  export { c as ColorMaterial, l as LoadableResource, S as Scene, a as SynchronizedClock } from './scene-2e0df828.js';
5
- export { S as SceneTreeController } from './controller-ea698f9b.js';
5
+ export { S as SceneTreeController } from './controller-449d5b37.js';
6
6
  export { f as fromNodeProto, i as isLoadedRow } from './row-6d4f9dcc.js';
7
7
  export { C as CursorManager, b as boxQueryCursor, l as labelPinCursor, m as measurementCursor, a as measurementWithArrowCursor, p as pinCursor } from './cursors-74998736.js';
8
8
  export { M as MeasurementController, a as MeasurementEntity } from './entities-c1acb573.js';
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2023 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  export { c as ColorMaterial, l as LoadableResource, S as Scene, a as SynchronizedClock } from './scene-2e0df828.js';
5
- export { S as SceneTreeController } from './controller-ea698f9b.js';
5
+ export { S as SceneTreeController } from './controller-449d5b37.js';
6
6
  export { f as fromNodeProto, i as isLoadedRow } from './row-6d4f9dcc.js';
7
7
  export { C as CursorManager, b as boxQueryCursor, l as labelPinCursor, m as measurementCursor, a as measurementWithArrowCursor, p as pinCursor } from './cursors-74998736.js';
8
8
  export { M as MeasurementController, a as MeasurementEntity } from './entities-c1acb573.js';
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { h, F as Fragment, r as registerInstance, c as createEvent, f as forceUpdate, H as Host, g as getElement } from './index-fd7d7b68.js';
5
5
  import { o as __rest } from './bundle.esm-92fd4246.js';
6
- import { a as SceneTreeAPIClient_1, w as webSocketSubscriptionTransportFactory, S as SceneTreeController, b as SceneTreeErrorDetails, c as SceneTreeErrorCode } from './controller-ea698f9b.js';
6
+ import { a as SceneTreeAPIClient_1, w as webSocketSubscriptionTransportFactory, S as SceneTreeController, b as SceneTreeErrorDetails, c as SceneTreeErrorCode } from './controller-449d5b37.js';
7
7
  import { p as parseConfig } from './config-2b2e3f66.js';
8
8
  import { g as getSceneTreeContainsElement } from './dom-758547c9.js';
9
9
  import { i as isLoadedRow } from './row-6d4f9dcc.js';
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { h, F as Fragment, r as registerInstance } from './index-fd7d7b68.js';
5
5
  import { p as point, m as matrix4, v as vector3 } from './bundle.esm-92fd4246.js';
6
- import './controller-ea698f9b.js';
6
+ import './controller-449d5b37.js';
7
7
  import './cursors-74998736.js';
8
8
  import './mapper-bdfe63be.js';
9
9
  import './wrappers_pb-975c7885.js';
@@ -7,6 +7,7 @@ import { RaycasterLike } from '../lib/scenes/raycaster';
7
7
  import { DepthBuffer, FeatureMap, Frame, FrameCameraBase, ImageAttributesLike, StencilBuffer, Viewport } from '../lib/types';
8
8
  export declare const drawFramePayloadPerspective: DrawFramePayload;
9
9
  export declare const drawFramePayloadOrthographic: DrawFramePayload;
10
+ export declare function copyDrawFramePayloadPerspective(payload: DrawFramePayload, partial: Partial<DrawFramePayload>): DrawFramePayload;
10
11
  export declare function makePerspectiveFrame(payload?: DrawFramePayload): Frame;
11
12
  export declare function makeOrthographicFrame(): Frame;
12
13
  export declare function makeImagePng(width: number, height: number): Uint8Array;
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Copyright (c) 2023 Vertex Software LLC. All rights reserved.
3
3
  */
4
- export{c as ColorMaterial,l as LoadableResource,S as Scene,a as SynchronizedClock}from"./p-5e8d61d9.js";export{S as SceneTreeController}from"./p-bb131c4a.js";export{f as fromNodeProto,i as isLoadedRow}from"./p-c5381b4a.js";export{C as CursorManager,b as boxQueryCursor,l as labelPinCursor,m as measurementCursor,a as measurementWithArrowCursor,p as pinCursor}from"./p-3a256fe9.js";export{M as MeasurementController,a as MeasurementEntity}from"./p-878d06e9.js";export{M as MeasurementModel}from"./p-867331de.js";export{M as MeasurementOverlayManager}from"./p-db85855d.js";export{m as makeMinimumDistanceResult}from"./p-99f8e7e0.js";export{A as AngleUnits,f as AreaUnits,D as DistanceUnits,F as FrameCameraBase,a as ReceivedFrame,b as ReceivedFrameImage,c as ReceivedFrameScene,d as ReceivedOrthographicCamera,e as ReceivedPerspectiveCamera}from"./p-d80260e3.js";export{E as EntityType}from"./p-e1d82323.js";export{A as ArrowMarkup,C as CircleMarkup,F as FreeformMarkup}from"./p-39d1f26c.js";export{V as Viewport}from"./p-1bb66e64.js";import{v as r,q as o,m as s}from"./p-71fbe522.js";export{T as TransformController}from"./p-4025ad8d.js";export{V as VolumeIntersectionQueryController}from"./p-3ef0121f.js";import"./p-7f54de9d.js";import"./p-d45df0c0.js";import"./p-7578885f.js";import"./p-6320532c.js";import"./p-9acf99ad.js";import"./p-9f177e78.js";const t=.9999;function n(e){const o=r.create(0,e.z,-e.y);const a=r.create(-e.z,0,e.x);const s=r.magnitudeSquared(o)>r.magnitudeSquared(a)?o:a;return r.normalize(r.cross(e,s))}function u(e,a){const p=r.dot(e,a);if(p>t){const r=n(e);const a=o.fromAxisAngle(r,Math.PI);return s.makeRotation(a)}else if(p<=-t){return s.makeIdentity()}else{const t=r.angleTo(a,e);const n=r.normalize(r.cross(e,a));return s.makeRotation(o.fromAxisAngle(n,t+Math.PI))}}function j(e,o,a,t){const n=u(e,a);const p=s.makeTranslation(t);return s.multiply(s.multiply(p,n),s.makeTranslation(r.negate(o)))}const x=Object.freeze({__proto__:null,ALMOST_ONE:t,calculateOrthogonalCoordinate:n,computeRotationMatrix:u,computeTransformationDelta:j});export{x as TransformationDelta};
4
+ export{c as ColorMaterial,l as LoadableResource,S as Scene,a as SynchronizedClock}from"./p-5e8d61d9.js";export{S as SceneTreeController}from"./p-50cbe36b.js";export{f as fromNodeProto,i as isLoadedRow}from"./p-c5381b4a.js";export{C as CursorManager,b as boxQueryCursor,l as labelPinCursor,m as measurementCursor,a as measurementWithArrowCursor,p as pinCursor}from"./p-3a256fe9.js";export{M as MeasurementController,a as MeasurementEntity}from"./p-878d06e9.js";export{M as MeasurementModel}from"./p-867331de.js";export{M as MeasurementOverlayManager}from"./p-db85855d.js";export{m as makeMinimumDistanceResult}from"./p-99f8e7e0.js";export{A as AngleUnits,f as AreaUnits,D as DistanceUnits,F as FrameCameraBase,a as ReceivedFrame,b as ReceivedFrameImage,c as ReceivedFrameScene,d as ReceivedOrthographicCamera,e as ReceivedPerspectiveCamera}from"./p-d80260e3.js";export{E as EntityType}from"./p-e1d82323.js";export{A as ArrowMarkup,C as CircleMarkup,F as FreeformMarkup}from"./p-39d1f26c.js";export{V as Viewport}from"./p-1bb66e64.js";import{v as r,q as o,m as s}from"./p-71fbe522.js";export{T as TransformController}from"./p-4025ad8d.js";export{V as VolumeIntersectionQueryController}from"./p-3ef0121f.js";import"./p-7f54de9d.js";import"./p-d45df0c0.js";import"./p-7578885f.js";import"./p-6320532c.js";import"./p-9acf99ad.js";import"./p-9f177e78.js";const t=.9999;function n(e){const o=r.create(0,e.z,-e.y);const a=r.create(-e.z,0,e.x);const s=r.magnitudeSquared(o)>r.magnitudeSquared(a)?o:a;return r.normalize(r.cross(e,s))}function u(e,a){const p=r.dot(e,a);if(p>t){const r=n(e);const a=o.fromAxisAngle(r,Math.PI);return s.makeRotation(a)}else if(p<=-t){return s.makeIdentity()}else{const t=r.angleTo(a,e);const n=r.normalize(r.cross(e,a));return s.makeRotation(o.fromAxisAngle(n,t+Math.PI))}}function j(e,o,a,t){const n=u(e,a);const p=s.makeTranslation(t);return s.multiply(s.multiply(p,n),s.makeTranslation(r.negate(o)))}const x=Object.freeze({__proto__:null,ALMOST_ONE:t,calculateOrthogonalCoordinate:n,computeRotationMatrix:u,computeTransformationDelta:j});export{x as TransformationDelta};
5
5
  //# sourceMappingURL=index.esm.js.map
@@ -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-bb131c4a.js";import"./p-3a256fe9.js";import"./p-9f177e78.js";import"./p-6320532c.js";import"./p-d80260e3.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-2ce1d5a7.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-50cbe36b.js";import"./p-3a256fe9.js";import"./p-9f177e78.js";import"./p-6320532c.js";import"./p-d80260e3.js";import"./p-e1d82323.js";import{V as r}from"./p-1bb66e64.js";import{g as l,i as a,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}=l(n);return i(t,null,p(n)&&i("div",{id:"pin-anchor",class:c("pin-anchor",{selected:o}),style:{background:e}}),a(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 l={x:i.x,y:i.y+n.height/2};const a=[e,s,l,r];const p=a.map((i=>o.distance(i,t)));const h=p.indexOf(Math.min(...p));return a[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 l=v(i.label.point,t);const a=((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(l,r,{width:a,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-126b66b2.entry.js.map
@@ -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-bb131c4a.js";import{p}from"./p-0de95c4d.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-d80260e3.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-2cca6daa.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 c,b as h,c as u}from"./p-50cbe36b.js";import{p}from"./p-0de95c4d.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-d80260e3.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-1a352fbe.entry.js.map