@vertexvis/viewer 1.0.1-canary.1 → 1.0.1-canary.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js +1 -1
- package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-default-toolbar.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-default-toolbar.cjs.entry.js.map +1 -1
- package/dist/collection/components/scene-tree-table-cell/scene-tree-table-cell.js +1 -1
- package/dist/collection/components/scene-tree-table-cell/scene-tree-table-cell.js.map +1 -1
- package/dist/collection/components/viewer-default-toolbar/viewer-default-toolbar.js +1 -1
- package/dist/collection/components/viewer-default-toolbar/viewer-default-toolbar.js.map +1 -1
- package/dist/components/vertex-scene-tree-table-cell.js +1 -1
- package/dist/components/vertex-scene-tree-table-cell.js.map +1 -1
- package/dist/components/vertex-viewer-default-toolbar.js +1 -1
- package/dist/components/vertex-viewer-default-toolbar.js.map +1 -1
- package/dist/esm/vertex-scene-tree-table-cell.entry.js +1 -1
- package/dist/esm/vertex-scene-tree-table-cell.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-default-toolbar.entry.js +1 -1
- package/dist/esm/vertex-viewer-default-toolbar.entry.js.map +1 -1
- package/dist/viewer/{p-29af98bc.entry.js → p-30a17081.entry.js} +2 -2
- package/dist/viewer/p-30a17081.entry.js.map +1 -0
- package/dist/viewer/{p-1d684e83.entry.js → p-b273a7c6.entry.js} +2 -2
- package/dist/viewer/{p-1d684e83.entry.js.map → p-b273a7c6.entry.js.map} +1 -1
- package/dist/viewer/viewer.esm.js +1 -1
- package/package.json +7 -7
- package/dist/viewer/p-29af98bc.entry.js.map +0 -1
|
@@ -179,7 +179,7 @@ const SceneTreeTableCell = class {
|
|
|
179
179
|
return (index.h(index.Host, { key: '703090cacf3d026e220ead0a051d70b186fa056e', onPointerEnter: this.handleCellPointerEnter, onPointerLeave: this.handleCellPointerLeave, onPointerUp: this.handleCellPointerUp, onPointerDown: this.handleCellPointerDown, style: {
|
|
180
180
|
...hiddenStyle,
|
|
181
181
|
'background-color': backgroundColorStyle,
|
|
182
|
-
} }, index.h("div", { key: '25a45f3cebed75a1d0e469cce01e1cabec5450c4', class: "wrapper" }, index.h("div", { key: '7ba2f3c1b9a5551287f6683f87de841f0717e87b', class: "no-shrink" }, index.h("slot", { key: '04bd203d0e034aa4fce3a0b64d24718ab0ba50af', name: "left-gutter" })), showSpaceForExpansionIcon && (index.h("button", { key: '
|
|
182
|
+
} }, index.h("div", { key: '25a45f3cebed75a1d0e469cce01e1cabec5450c4', class: "wrapper" }, index.h("div", { key: '7ba2f3c1b9a5551287f6683f87de841f0717e87b', class: "no-shrink" }, index.h("slot", { key: '04bd203d0e034aa4fce3a0b64d24718ab0ba50af', name: "left-gutter" })), showSpaceForExpansionIcon && (index.h("button", { key: 'ee0ed0a97bdbac298bb1924a2501a7e1705c5875', class: "expand-btn no-shrink", "data-testid": 'expand-' + ((_a = this.node) === null || _a === void 0 ? void 0 : _a.name), onPointerUp: this.createActionPointerUpHandler(this.toggleExpansion) }, expansionIcon && (index.h("vertex-viewer-icon", { key: '0138a61ceca6200060602fcf5be186d8ef5b8439', class: "icon", name: expansionIcon, size: "sm" })))), showSpaceForEndItemIcon && (index.h("button", { key: '5f1376b4e28d62273f4f53f8fd61e83400dda8cb', class: "end-item-btn no-shrink", "data-testid": 'end-item-' + ((_b = this.node) === null || _b === void 0 ? void 0 : _b.name) }, endItemIcon && (index.h("vertex-viewer-icon", { key: '3760b8b0452208116b468bf662659365fa93397b', class: "end-item-icon", name: endItemIcon, size: "sm" })))), index.h("div", { key: 'b6af488cac898cee62c7c68c3ef159259e2029fb', class: "content" }, this.value != null && this.value.trim() !== '' ? (index.h("slot", null, this.displayValue())) : (index.h("slot", { name: "placeholder" }, this.placeholder))), this.isolateButton && (index.h("button", { key: 'c5feec7c3665c3983ec9c3754d2b3904276694ad', class: "isolate-btn no-shrink", "data-testid": 'isolate-btn-' + ((_c = this.node) === null || _c === void 0 ? void 0 : _c.name), onPointerUp: this.createActionPointerUpHandler(this.isolate) }, isolateIcon && (index.h("vertex-viewer-icon", { key: 'daa2a2697cfb21fbbf9ca975374d4108d4faeabb', class: "icon", name: "locate", size: "sm" })))), this.visibilityToggle && (index.h("button", { key: 'c3a99abe103595de749195893f7af1955db7e509', class: "visibility-btn no-shrink", "data-testid": 'visibility-btn-' + ((_d = this.node) === null || _d === void 0 ? void 0 : _d.name), onPointerUp: this.createActionPointerUpHandler(this.toggleVisibility) }, visibilityIcon && (index.h("vertex-viewer-icon", { key: 'f5cb997438de0d600447a217156748f903293432', class: "icon", name: visibilityIcon, size: "sm" })))), index.h("div", { key: '39c001c9af24fa30c5c42cfa844e9beb373e2ec3', class: "no-shrink" }, index.h("slot", { key: 'd412cf2de92b427282c9575a7d0cd505f23650a5', name: "right-gutter" })), !this.visibilityToggle && !this.isolateButton && (index.h("div", { key: 'e5aced5b74783ab256ab057794346f3bd49050a0', class: "column-spacer" })))));
|
|
183
183
|
}
|
|
184
184
|
toggleAttribute(attr, value) {
|
|
185
185
|
if (value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"vertex-scene-tree-table-cell.cjs.entry.js","mappings":"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","names":["blurElement","h","Host","Events.defaultEventConfig"],"sources":["src/components/scene-tree-table-cell/scene-tree-table-cell.css?tag=vertex-scene-tree-table-cell&encapsulation=shadow","src/components/scene-tree-table-cell/scene-tree-table-cell.tsx"],"sourcesContent":["@import url('../../css/button-reset.css');\n\n:host {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n\n /**\n * @prop --scene-tree-cell-background-hover: A CSS background of a cell when\n * hovered.\n */\n --scene-tree-cell-background-hover: var(--blue-200);\n\n /**\n * @prop --scene-tree-cell-background-selected: A CSS background color of a\n * cell when selected.\n */\n --scene-tree-cell-background-selected: var(--blue-300);\n\n /**\n * @prop --scene-tree-cell-text-positioning: A CSS text alignment\n * value that indicates how text should be positioned.\n */\n --scene-tree-cell-text-positioning: left;\n\n /**\n * @prop --scene-tree-cell-padding: CSS lengths that specifies the amount of\n * padding between the cell's border and content.\n */\n --scene-tree-cell-padding: 0.25rem 0;\n\n font-size: var(--scene-tree-default-font-size, unset);\n font-family: var(--scene-tree-default-font-family, unset);\n color: var(--scene-tree-default-font-color, #444444);\n}\n\n:host([is-hovered]) {\n background: var(--scene-tree-cell-background-hover);\n}\n\n:host([is-selected]) {\n background: var(--scene-tree-cell-background-selected);\n}\n\n.wrapper {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n padding: var(--scene-tree-cell-padding);\n}\n\n.content {\n width: 100%;\n text-align: var(--scene-tree-cell-text-positioning);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.column-spacer {\n width: var(--scene-tree-table-column-gap);\n}\n\n.expand-btn {\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 24px;\n min-height: 24px;\n}\n\n:host([is-leaf]) .expand-btn,\n:host([is-end-item]) .expand-btn {\n visibility: hidden;\n cursor: default;\n}\n\n.no-shrink {\n flex-shrink: 0;\n}\n\n.end-item-btn {\n cursor: default;\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 24px;\n min-height: 24px;\n}\n\n:host(:not([is-end-item])) .end-item-btn {\n visibility: hidden;\n cursor: default;\n}\n\n.end-item-icon {\n width: 14px;\n height: 14px;\n fill: var(--scene-tree-secondary-font-color, var(--neutral-600));\n}\n\n.visibility-btn,\n.isolate-btn {\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n}\n\n.icon {\n width: 14px;\n height: 14px;\n fill: var(--scene-tree-default-font-color, currentColor);\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n} from '@stencil/core';\nimport { Node } from '@vertexvis/scene-tree-protos/scenetree/protos/domain_pb';\nimport { Disposable } from '@vertexvis/utils';\n\nimport { Events } from '../../lib/types';\nimport { SceneTreeOperationHandler } from '../scene-tree/lib/handlers';\nimport { SceneTreeCellHoverController } from '../scene-tree-table-layout/lib/hover-controller';\nimport { ViewerIconName } from '../viewer-icon/viewer-icon';\nimport { blurElement } from './utils';\n\nexport interface SceneTreeTableCellEventDetails {\n node?: Node.AsObject;\n originalEvent: PointerEvent;\n}\n\n@Component({\n tag: 'vertex-scene-tree-table-cell',\n styleUrl: 'scene-tree-table-cell.css',\n shadow: true,\n})\nexport class SceneTreeTableCell {\n /**\n * The node data that is associated to the row that this cell belongs to.\n * Contains information related to if the node is expanded, visible, etc.\n */\n @Prop()\n public node?: Node.AsObject;\n\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 * The value to display in this cell.\n */\n @Prop()\n public value?: string;\n\n /**\n * The value to display in this cell if the `value` specified is\n * undefined. Defaults to \"--\".\n */\n @Prop()\n public placeholder = '--';\n\n /**\n * Whether to always show the requested icons in the cell. If false,\n * the icons will only appear when hovering over the cell.\n */\n @Prop()\n public alwaysShowIcons = false;\n\n /**\n * @internal\n */\n @Prop({ mutable: true })\n public hovered = false;\n\n /**\n * @internal\n */\n @Prop()\n public isScrolling?: boolean;\n\n /**\n * Indicates whether to display a button for toggling the expanded state of\n * the node associated with this cell.\n */\n @Prop()\n public expandToggle?: boolean;\n\n /**\n * Indicates whether to display an indicator that the node associated with\n * this cell is an end item.\n */\n @Prop()\n public endItemIndicator?: boolean;\n\n /**\n * Indicates whether to display a button for toggling the visibility state of\n * the node associated with this cell.\n */\n @Prop()\n public visibilityToggle?: boolean;\n\n /**\n * Indicates whether to display a button for isolating (show only + fly to)\n * the node associated with this cell.\n */\n @Prop()\n public isolateButton?: boolean;\n\n /**\n * An optional handler that will override this cell's default selection\n * behavior. The registered handler will receive the `pointerup` event,\n * the node data for the row this cell is associated with, and a reference\n * to the parent `<vertex-scene-tree>` element for performing operations.\n */\n @Prop()\n public selectionHandler?: SceneTreeOperationHandler;\n\n /**\n * An optional handler that will override this cell's default visibility\n * behavior. The registered handler will receive the `pointerup` event,\n * the node data for the row this cell is associated with, and a reference\n * to the parent `<vertex-scene-tree>` element for performing operations.\n */\n @Prop()\n public visibilityHandler?: SceneTreeOperationHandler;\n\n /**\n * An optional handler that will override this cell's default expansion\n * behavior. The registered handler will receive the `pointerup` event,\n * the node data for the row this cell is associated with, and a reference\n * to the parent `<vertex-scene-tree>` element for performing operations.\n */\n @Prop()\n public expansionHandler?: SceneTreeOperationHandler;\n\n /**\n * An optional handler that will override this cell's default isolate\n * behavior. The registered handler will receive the `pointerup` event,\n * the node data for the row this cell is associated with, and a reference\n * to the parent `<vertex-scene-tree>` element for performing operations.\n */\n @Prop()\n public isolateHandler?: SceneTreeOperationHandler;\n\n /**\n * @internal\n */\n @Prop()\n public hoverController?: SceneTreeCellHoverController;\n\n /**\n * An event that is emitted when a user requests to expand the node. This is\n * emitted even if interactions are disabled.\n */\n @Event({ bubbles: true })\n public expandToggled!: EventEmitter<SceneTreeTableCellEventDetails>;\n\n /**\n * An event that is emitted when a user requests to change the node's\n * visibility. This event is emitted even if interactions are disabled.\n */\n @Event({ bubbles: true })\n public visibilityToggled!: EventEmitter<SceneTreeTableCellEventDetails>;\n\n /**\n * An event that is emitted when a user requests to change the node's selection\n * state. This event is emitted even if interactions are disabled.\n */\n @Event({ bubbles: true })\n public selectionToggled!: EventEmitter<SceneTreeTableCellEventDetails>;\n\n /**\n * An event that is emitted when a user requests to isolate the node.\n * This event is emitted even if interactions are disabled.\n */\n @Event({ bubbles: true })\n public isolatePressed!: EventEmitter<SceneTreeTableCellEventDetails>;\n\n /**\n * Used for internals or testing.\n *\n * @private\n */\n @Event({ bubbles: true })\n public cellLoaded!: EventEmitter<void>;\n\n @Element()\n private hostEl!: HTMLElement;\n\n private hoverListener?: Disposable;\n\n private longPressTimer?: number;\n\n public componentDidLoad(): void {\n this.hoverListener = this.hoverController?.stateChanged((id?: string) => {\n this.hovered = id === this.node?.id?.hex;\n });\n\n this.cellLoaded.emit();\n this.clearLongPressTimer();\n }\n\n public disconnectedCallback(): void {\n this.hoverListener?.dispose();\n this.clearLongPressTimer();\n }\n\n public componentWillRender(): void {\n this.toggleAttribute('is-hovered', this.hovered);\n this.toggleAttribute('is-hidden', !this.node?.visible);\n this.toggleAttribute('is-selected', !!this.node?.selected);\n this.toggleAttribute('is-partial', !!this.node?.partiallyVisible);\n this.toggleAttribute('is-leaf', !!this.node?.isLeaf);\n this.toggleAttribute('is-end-item', !!this.node?.endItem);\n this.toggleAttribute('is-filter-hit', !!this.node?.filterHit);\n }\n\n public render(): h.JSX.IntrinsicElements {\n // Overrides the `.hydrated` visibility when we have nothing to display\n const hiddenStyle =\n this.node == null ? { visibility: 'hidden' } : undefined;\n const backgroundColorStyle = this.getBackgroundColorStyle();\n\n const endItemIcon = this.getEndItemIcon();\n const expansionIcon = this.getExpansionIcon();\n const isolateIcon = this.getIsolateIcon();\n const visibilityIcon = this.getVisibilityIcon();\n\n const showSpaceForExpansionIcon = this.expandToggle && !endItemIcon;\n const showSpaceForEndItemIcon = endItemIcon && !showSpaceForExpansionIcon;\n\n return (\n <Host\n onPointerEnter={this.handleCellPointerEnter}\n onPointerLeave={this.handleCellPointerLeave}\n onPointerUp={this.handleCellPointerUp}\n onPointerDown={this.handleCellPointerDown}\n style={{\n ...hiddenStyle,\n 'background-color': backgroundColorStyle,\n }}\n >\n <div class=\"wrapper\">\n <div class=\"no-shrink\">\n <slot name=\"left-gutter\" />\n </div>\n {showSpaceForExpansionIcon && (\n <button\n class=\"expand-btn no-shrink\"\n data-test-id={'expand-' + this.node?.name}\n onPointerUp={this.createActionPointerUpHandler(\n this.toggleExpansion\n )}\n >\n {expansionIcon && (\n <vertex-viewer-icon\n class=\"icon\"\n name={expansionIcon}\n size=\"sm\"\n />\n )}\n </button>\n )}\n\n {showSpaceForEndItemIcon && (\n <button\n class=\"end-item-btn no-shrink\"\n data-test-id={'end-item-' + this.node?.name}\n >\n {endItemIcon && (\n <vertex-viewer-icon\n class=\"end-item-icon\"\n name={endItemIcon}\n size=\"sm\"\n />\n )}\n </button>\n )}\n\n <div class=\"content\">\n {this.value != null && this.value.trim() !== '' ? (\n <slot>{this.displayValue()}</slot>\n ) : (\n <slot name=\"placeholder\">{this.placeholder}</slot>\n )}\n </div>\n {this.isolateButton && (\n <button\n class=\"isolate-btn no-shrink\"\n data-test-id={'isolate-btn-' + this.node?.name}\n onPointerUp={this.createActionPointerUpHandler(this.isolate)}\n >\n {isolateIcon && (\n <vertex-viewer-icon class=\"icon\" name=\"locate\" size=\"sm\" />\n )}\n </button>\n )}\n {this.visibilityToggle && (\n <button\n class=\"visibility-btn no-shrink\"\n data-test-id={'visibility-btn-' + this.node?.name}\n onPointerUp={this.createActionPointerUpHandler(\n this.toggleVisibility\n )}\n >\n {visibilityIcon && (\n <vertex-viewer-icon\n class=\"icon\"\n name={visibilityIcon}\n size=\"sm\"\n />\n )}\n </button>\n )}\n <div class=\"no-shrink\">\n <slot name=\"right-gutter\" />\n </div>\n {!this.visibilityToggle && !this.isolateButton && (\n <div class=\"column-spacer\" />\n )}\n </div>\n </Host>\n );\n }\n\n private displayValue = (): string => {\n const resp =\n this.value == null || this.value.trim() === ''\n ? this.placeholder\n : this.value;\n\n return resp;\n };\n\n private handleCellPointerEnter = (): void => {\n this.hoverController?.setHovered(this.node?.id?.hex);\n };\n\n private handleCellPointerLeave = (): void => {\n this.hoverController?.setHovered(undefined);\n };\n\n private handleCellPointerUp = (event: PointerEvent): void => {\n if (\n !this.isScrolling &&\n this.node != null &&\n this.tree != null &&\n this.longPressTimer != null\n ) {\n if (this.selectionHandler != null) {\n this.selectionHandler(event, this.node, this.tree);\n } else {\n this.performDefaultSelectionOperation(event);\n }\n this.selectionToggled.emit({ node: this.node, originalEvent: event });\n }\n this.clearLongPressTimer();\n };\n\n private handleCellPointerDown = (event: PointerEvent): void => {\n this.restartLongPressTimer();\n };\n\n private createActionPointerUpHandler = (\n action: (event: PointerEvent) => void\n ): ((event: PointerEvent) => void) => {\n return (event) => {\n // Blur the `hostEl` after a `preventDefault` to clear focus that\n // is left on the element after `pointerdown` event.\n event.preventDefault();\n event.stopPropagation();\n blurElement(this.hostEl);\n\n action(event);\n };\n };\n\n private toggleExpansion = async (event: PointerEvent): Promise<void> => {\n if (this.tree != null && this.node != null) {\n if (this.expansionHandler != null) {\n this.expansionHandler(event, this.node, this.tree);\n } else {\n await this.performDefaultExpansionOperation(this.node, this.tree);\n }\n this.expandToggled.emit({ node: this.node, originalEvent: event });\n }\n };\n\n private toggleVisibility = async (event: PointerEvent): Promise<void> => {\n if (this.tree != null && this.node != null) {\n if (this.visibilityHandler != null) {\n this.visibilityHandler(event, this.node, this.tree);\n } else {\n await this.performDefaultVisibilityOperation(this.node, this.tree);\n }\n this.visibilityToggled.emit({ node: this.node, originalEvent: event });\n }\n };\n\n private toggleAttribute(attr: string, value: boolean): void {\n if (value) {\n this.hostEl.setAttribute(attr, '');\n } else {\n this.hostEl.removeAttribute(attr);\n }\n }\n\n private isolate = async (event: PointerEvent): Promise<void> => {\n if (this.tree != null && this.node != null) {\n if (this.isolateHandler != null) {\n this.isolateHandler(event, this.node, this.tree);\n } else {\n await this.performDefaultIsolateOperation(this.node, this.tree);\n }\n this.isolatePressed.emit({ node: this.node, originalEvent: event });\n }\n };\n\n private performDefaultSelectionOperation = (event: PointerEvent): void => {\n if (!event.defaultPrevented && event.button === 0) {\n if ((event.ctrlKey || event.metaKey) && this.node?.selected) {\n this.tree?.deselectItem(this.node);\n } else if (this.node?.selected) {\n this.tree?.selectItem(this.node, {\n recurseParent: true,\n });\n } else if (!this.node?.selected) {\n this.tree?.selectItem(this.node, {\n append: event.ctrlKey || event.metaKey,\n range: event.shiftKey,\n });\n }\n }\n };\n\n private performDefaultVisibilityOperation = async (\n node: Node.AsObject,\n tree: HTMLVertexSceneTreeElement\n ): Promise<void> => {\n await tree.toggleItemVisibility(node);\n };\n\n private performDefaultIsolateOperation = async (\n node: Node.AsObject,\n tree: HTMLVertexSceneTreeElement\n ): Promise<void> => {\n await tree.isolateItem(node);\n };\n\n private performDefaultExpansionOperation = async (\n node: Node.AsObject,\n tree: HTMLVertexSceneTreeElement\n ): Promise<void> => {\n await tree.toggleExpandItem(node);\n };\n\n private clearLongPressTimer(): void {\n if (this.longPressTimer != null) {\n window.clearTimeout(this.longPressTimer);\n }\n this.longPressTimer = undefined;\n }\n\n private restartLongPressTimer(): void {\n this.clearLongPressTimer();\n this.longPressTimer = window.setTimeout(() => {\n this.clearLongPressTimer();\n }, Events.defaultEventConfig.longPressThreshold);\n }\n\n private getBackgroundColorStyle(): string {\n const backgroundColorStyle = this.getCssVariableWithFallbacks(\n `--scene-tree-row-background-color-depth-${this.node?.depth}`,\n '--scene-tree-row-background-color'\n );\n const selectedBackgroundColorStyle = this.getCssVariableWithFallbacks(\n '--scene-tree-selected-row-background-color',\n '--scene-tree-cell-background-selected'\n );\n const hoveredBackgroundColorStyle = this.getCssVariableWithFallbacks(\n '--scene-tree-hovered-row-background-color',\n '--scene-tree-cell-background-hover'\n );\n\n if (!!this.node?.selected) {\n return selectedBackgroundColorStyle;\n } else if (this.hovered) {\n return hoveredBackgroundColorStyle;\n }\n return backgroundColorStyle;\n }\n\n private getCssVariableWithFallbacks(\n variable: string,\n ...fallbacks: string[]\n ): string {\n const sequencedFallbacks = [...fallbacks].reverse();\n\n return [...sequencedFallbacks, variable].reduce(\n (res, s) => `var(${s}, ${res})`,\n 'unset'\n );\n }\n\n private getIsolateIcon(): ViewerIconName | undefined {\n if (this.hovered || this.alwaysShowIcons) {\n return 'locate';\n }\n return undefined;\n }\n\n private getExpansionIcon(): ViewerIconName | undefined {\n if (!this.node?.isLeaf && !this.node?.endItem) {\n return this.node?.expanded ? 'chevron-down' : 'chevron-right';\n }\n return undefined;\n }\n\n private getEndItemIcon(): ViewerIconName | undefined {\n // Return the end item icon for an item if it is set as an end item and either is not a leaf item\n // or matches the filter. Note that in the filtered view, an end item matching the filter will always be\n // marked as a leaf node because its children will be excluded from the search results and therefore\n // not present in the filtered tree.\n if (\n this.endItemIndicator &&\n this.node?.endItem &&\n (!this.node?.isLeaf || this.node?.filterHit)\n ) {\n return 'lock';\n }\n return undefined;\n }\n\n private getVisibilityIcon(): ViewerIconName | undefined {\n if (\n (this.hovered || this.alwaysShowIcons) &&\n !this.node?.partiallyVisible &&\n this.node?.visible\n ) {\n return 'eye-open';\n } else if (!this.node?.partiallyVisible && !this.node?.visible) {\n return 'eye-half';\n } else if (this.node?.partiallyVisible) {\n return 'eye-half-dotted';\n }\n return undefined;\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"vertex-scene-tree-table-cell.cjs.entry.js","mappings":"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","names":["blurElement","h","Host","Events.defaultEventConfig"],"sources":["src/components/scene-tree-table-cell/scene-tree-table-cell.css?tag=vertex-scene-tree-table-cell&encapsulation=shadow","src/components/scene-tree-table-cell/scene-tree-table-cell.tsx"],"sourcesContent":["@import url('../../css/button-reset.css');\n\n:host {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n\n /**\n * @prop --scene-tree-cell-background-hover: A CSS background of a cell when\n * hovered.\n */\n --scene-tree-cell-background-hover: var(--blue-200);\n\n /**\n * @prop --scene-tree-cell-background-selected: A CSS background color of a\n * cell when selected.\n */\n --scene-tree-cell-background-selected: var(--blue-300);\n\n /**\n * @prop --scene-tree-cell-text-positioning: A CSS text alignment\n * value that indicates how text should be positioned.\n */\n --scene-tree-cell-text-positioning: left;\n\n /**\n * @prop --scene-tree-cell-padding: CSS lengths that specifies the amount of\n * padding between the cell's border and content.\n */\n --scene-tree-cell-padding: 0.25rem 0;\n\n font-size: var(--scene-tree-default-font-size, unset);\n font-family: var(--scene-tree-default-font-family, unset);\n color: var(--scene-tree-default-font-color, #444444);\n}\n\n:host([is-hovered]) {\n background: var(--scene-tree-cell-background-hover);\n}\n\n:host([is-selected]) {\n background: var(--scene-tree-cell-background-selected);\n}\n\n.wrapper {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n padding: var(--scene-tree-cell-padding);\n}\n\n.content {\n width: 100%;\n text-align: var(--scene-tree-cell-text-positioning);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.column-spacer {\n width: var(--scene-tree-table-column-gap);\n}\n\n.expand-btn {\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 24px;\n min-height: 24px;\n}\n\n:host([is-leaf]) .expand-btn,\n:host([is-end-item]) .expand-btn {\n visibility: hidden;\n cursor: default;\n}\n\n.no-shrink {\n flex-shrink: 0;\n}\n\n.end-item-btn {\n cursor: default;\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 24px;\n min-height: 24px;\n}\n\n:host(:not([is-end-item])) .end-item-btn {\n visibility: hidden;\n cursor: default;\n}\n\n.end-item-icon {\n width: 14px;\n height: 14px;\n fill: var(--scene-tree-secondary-font-color, var(--neutral-600));\n}\n\n.visibility-btn,\n.isolate-btn {\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n}\n\n.icon {\n width: 14px;\n height: 14px;\n fill: var(--scene-tree-default-font-color, currentColor);\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n} from '@stencil/core';\nimport { Node } from '@vertexvis/scene-tree-protos/scenetree/protos/domain_pb';\nimport { Disposable } from '@vertexvis/utils';\n\nimport { Events } from '../../lib/types';\nimport { SceneTreeOperationHandler } from '../scene-tree/lib/handlers';\nimport { SceneTreeCellHoverController } from '../scene-tree-table-layout/lib/hover-controller';\nimport { ViewerIconName } from '../viewer-icon/viewer-icon';\nimport { blurElement } from './utils';\n\nexport interface SceneTreeTableCellEventDetails {\n node?: Node.AsObject;\n originalEvent: PointerEvent;\n}\n\n@Component({\n tag: 'vertex-scene-tree-table-cell',\n styleUrl: 'scene-tree-table-cell.css',\n shadow: true,\n})\nexport class SceneTreeTableCell {\n /**\n * The node data that is associated to the row that this cell belongs to.\n * Contains information related to if the node is expanded, visible, etc.\n */\n @Prop()\n public node?: Node.AsObject;\n\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 * The value to display in this cell.\n */\n @Prop()\n public value?: string;\n\n /**\n * The value to display in this cell if the `value` specified is\n * undefined. Defaults to \"--\".\n */\n @Prop()\n public placeholder = '--';\n\n /**\n * Whether to always show the requested icons in the cell. If false,\n * the icons will only appear when hovering over the cell.\n */\n @Prop()\n public alwaysShowIcons = false;\n\n /**\n * @internal\n */\n @Prop({ mutable: true })\n public hovered = false;\n\n /**\n * @internal\n */\n @Prop()\n public isScrolling?: boolean;\n\n /**\n * Indicates whether to display a button for toggling the expanded state of\n * the node associated with this cell.\n */\n @Prop()\n public expandToggle?: boolean;\n\n /**\n * Indicates whether to display an indicator that the node associated with\n * this cell is an end item.\n */\n @Prop()\n public endItemIndicator?: boolean;\n\n /**\n * Indicates whether to display a button for toggling the visibility state of\n * the node associated with this cell.\n */\n @Prop()\n public visibilityToggle?: boolean;\n\n /**\n * Indicates whether to display a button for isolating (show only + fly to)\n * the node associated with this cell.\n */\n @Prop()\n public isolateButton?: boolean;\n\n /**\n * An optional handler that will override this cell's default selection\n * behavior. The registered handler will receive the `pointerup` event,\n * the node data for the row this cell is associated with, and a reference\n * to the parent `<vertex-scene-tree>` element for performing operations.\n */\n @Prop()\n public selectionHandler?: SceneTreeOperationHandler;\n\n /**\n * An optional handler that will override this cell's default visibility\n * behavior. The registered handler will receive the `pointerup` event,\n * the node data for the row this cell is associated with, and a reference\n * to the parent `<vertex-scene-tree>` element for performing operations.\n */\n @Prop()\n public visibilityHandler?: SceneTreeOperationHandler;\n\n /**\n * An optional handler that will override this cell's default expansion\n * behavior. The registered handler will receive the `pointerup` event,\n * the node data for the row this cell is associated with, and a reference\n * to the parent `<vertex-scene-tree>` element for performing operations.\n */\n @Prop()\n public expansionHandler?: SceneTreeOperationHandler;\n\n /**\n * An optional handler that will override this cell's default isolate\n * behavior. The registered handler will receive the `pointerup` event,\n * the node data for the row this cell is associated with, and a reference\n * to the parent `<vertex-scene-tree>` element for performing operations.\n */\n @Prop()\n public isolateHandler?: SceneTreeOperationHandler;\n\n /**\n * @internal\n */\n @Prop()\n public hoverController?: SceneTreeCellHoverController;\n\n /**\n * An event that is emitted when a user requests to expand the node. This is\n * emitted even if interactions are disabled.\n */\n @Event({ bubbles: true })\n public expandToggled!: EventEmitter<SceneTreeTableCellEventDetails>;\n\n /**\n * An event that is emitted when a user requests to change the node's\n * visibility. This event is emitted even if interactions are disabled.\n */\n @Event({ bubbles: true })\n public visibilityToggled!: EventEmitter<SceneTreeTableCellEventDetails>;\n\n /**\n * An event that is emitted when a user requests to change the node's selection\n * state. This event is emitted even if interactions are disabled.\n */\n @Event({ bubbles: true })\n public selectionToggled!: EventEmitter<SceneTreeTableCellEventDetails>;\n\n /**\n * An event that is emitted when a user requests to isolate the node.\n * This event is emitted even if interactions are disabled.\n */\n @Event({ bubbles: true })\n public isolatePressed!: EventEmitter<SceneTreeTableCellEventDetails>;\n\n /**\n * Used for internals or testing.\n *\n * @private\n */\n @Event({ bubbles: true })\n public cellLoaded!: EventEmitter<void>;\n\n @Element()\n private hostEl!: HTMLElement;\n\n private hoverListener?: Disposable;\n\n private longPressTimer?: number;\n\n public componentDidLoad(): void {\n this.hoverListener = this.hoverController?.stateChanged((id?: string) => {\n this.hovered = id === this.node?.id?.hex;\n });\n\n this.cellLoaded.emit();\n this.clearLongPressTimer();\n }\n\n public disconnectedCallback(): void {\n this.hoverListener?.dispose();\n this.clearLongPressTimer();\n }\n\n public componentWillRender(): void {\n this.toggleAttribute('is-hovered', this.hovered);\n this.toggleAttribute('is-hidden', !this.node?.visible);\n this.toggleAttribute('is-selected', !!this.node?.selected);\n this.toggleAttribute('is-partial', !!this.node?.partiallyVisible);\n this.toggleAttribute('is-leaf', !!this.node?.isLeaf);\n this.toggleAttribute('is-end-item', !!this.node?.endItem);\n this.toggleAttribute('is-filter-hit', !!this.node?.filterHit);\n }\n\n public render(): h.JSX.IntrinsicElements {\n // Overrides the `.hydrated` visibility when we have nothing to display\n const hiddenStyle =\n this.node == null ? { visibility: 'hidden' } : undefined;\n const backgroundColorStyle = this.getBackgroundColorStyle();\n\n const endItemIcon = this.getEndItemIcon();\n const expansionIcon = this.getExpansionIcon();\n const isolateIcon = this.getIsolateIcon();\n const visibilityIcon = this.getVisibilityIcon();\n\n const showSpaceForExpansionIcon = this.expandToggle && !endItemIcon;\n const showSpaceForEndItemIcon = endItemIcon && !showSpaceForExpansionIcon;\n\n return (\n <Host\n onPointerEnter={this.handleCellPointerEnter}\n onPointerLeave={this.handleCellPointerLeave}\n onPointerUp={this.handleCellPointerUp}\n onPointerDown={this.handleCellPointerDown}\n style={{\n ...hiddenStyle,\n 'background-color': backgroundColorStyle,\n }}\n >\n <div class=\"wrapper\">\n <div class=\"no-shrink\">\n <slot name=\"left-gutter\" />\n </div>\n {showSpaceForExpansionIcon && (\n <button\n class=\"expand-btn no-shrink\"\n data-testid={'expand-' + this.node?.name}\n onPointerUp={this.createActionPointerUpHandler(\n this.toggleExpansion\n )}\n >\n {expansionIcon && (\n <vertex-viewer-icon\n class=\"icon\"\n name={expansionIcon}\n size=\"sm\"\n />\n )}\n </button>\n )}\n\n {showSpaceForEndItemIcon && (\n <button\n class=\"end-item-btn no-shrink\"\n data-testid={'end-item-' + this.node?.name}\n >\n {endItemIcon && (\n <vertex-viewer-icon\n class=\"end-item-icon\"\n name={endItemIcon}\n size=\"sm\"\n />\n )}\n </button>\n )}\n\n <div class=\"content\">\n {this.value != null && this.value.trim() !== '' ? (\n <slot>{this.displayValue()}</slot>\n ) : (\n <slot name=\"placeholder\">{this.placeholder}</slot>\n )}\n </div>\n {this.isolateButton && (\n <button\n class=\"isolate-btn no-shrink\"\n data-testid={'isolate-btn-' + this.node?.name}\n onPointerUp={this.createActionPointerUpHandler(this.isolate)}\n >\n {isolateIcon && (\n <vertex-viewer-icon class=\"icon\" name=\"locate\" size=\"sm\" />\n )}\n </button>\n )}\n {this.visibilityToggle && (\n <button\n class=\"visibility-btn no-shrink\"\n data-testid={'visibility-btn-' + this.node?.name}\n onPointerUp={this.createActionPointerUpHandler(\n this.toggleVisibility\n )}\n >\n {visibilityIcon && (\n <vertex-viewer-icon\n class=\"icon\"\n name={visibilityIcon}\n size=\"sm\"\n />\n )}\n </button>\n )}\n <div class=\"no-shrink\">\n <slot name=\"right-gutter\" />\n </div>\n {!this.visibilityToggle && !this.isolateButton && (\n <div class=\"column-spacer\" />\n )}\n </div>\n </Host>\n );\n }\n\n private displayValue = (): string => {\n const resp =\n this.value == null || this.value.trim() === ''\n ? this.placeholder\n : this.value;\n\n return resp;\n };\n\n private handleCellPointerEnter = (): void => {\n this.hoverController?.setHovered(this.node?.id?.hex);\n };\n\n private handleCellPointerLeave = (): void => {\n this.hoverController?.setHovered(undefined);\n };\n\n private handleCellPointerUp = (event: PointerEvent): void => {\n if (\n !this.isScrolling &&\n this.node != null &&\n this.tree != null &&\n this.longPressTimer != null\n ) {\n if (this.selectionHandler != null) {\n this.selectionHandler(event, this.node, this.tree);\n } else {\n this.performDefaultSelectionOperation(event);\n }\n this.selectionToggled.emit({ node: this.node, originalEvent: event });\n }\n this.clearLongPressTimer();\n };\n\n private handleCellPointerDown = (event: PointerEvent): void => {\n this.restartLongPressTimer();\n };\n\n private createActionPointerUpHandler = (\n action: (event: PointerEvent) => void\n ): ((event: PointerEvent) => void) => {\n return (event) => {\n // Blur the `hostEl` after a `preventDefault` to clear focus that\n // is left on the element after `pointerdown` event.\n event.preventDefault();\n event.stopPropagation();\n blurElement(this.hostEl);\n\n action(event);\n };\n };\n\n private toggleExpansion = async (event: PointerEvent): Promise<void> => {\n if (this.tree != null && this.node != null) {\n if (this.expansionHandler != null) {\n this.expansionHandler(event, this.node, this.tree);\n } else {\n await this.performDefaultExpansionOperation(this.node, this.tree);\n }\n this.expandToggled.emit({ node: this.node, originalEvent: event });\n }\n };\n\n private toggleVisibility = async (event: PointerEvent): Promise<void> => {\n if (this.tree != null && this.node != null) {\n if (this.visibilityHandler != null) {\n this.visibilityHandler(event, this.node, this.tree);\n } else {\n await this.performDefaultVisibilityOperation(this.node, this.tree);\n }\n this.visibilityToggled.emit({ node: this.node, originalEvent: event });\n }\n };\n\n private toggleAttribute(attr: string, value: boolean): void {\n if (value) {\n this.hostEl.setAttribute(attr, '');\n } else {\n this.hostEl.removeAttribute(attr);\n }\n }\n\n private isolate = async (event: PointerEvent): Promise<void> => {\n if (this.tree != null && this.node != null) {\n if (this.isolateHandler != null) {\n this.isolateHandler(event, this.node, this.tree);\n } else {\n await this.performDefaultIsolateOperation(this.node, this.tree);\n }\n this.isolatePressed.emit({ node: this.node, originalEvent: event });\n }\n };\n\n private performDefaultSelectionOperation = (event: PointerEvent): void => {\n if (!event.defaultPrevented && event.button === 0) {\n if ((event.ctrlKey || event.metaKey) && this.node?.selected) {\n this.tree?.deselectItem(this.node);\n } else if (this.node?.selected) {\n this.tree?.selectItem(this.node, {\n recurseParent: true,\n });\n } else if (!this.node?.selected) {\n this.tree?.selectItem(this.node, {\n append: event.ctrlKey || event.metaKey,\n range: event.shiftKey,\n });\n }\n }\n };\n\n private performDefaultVisibilityOperation = async (\n node: Node.AsObject,\n tree: HTMLVertexSceneTreeElement\n ): Promise<void> => {\n await tree.toggleItemVisibility(node);\n };\n\n private performDefaultIsolateOperation = async (\n node: Node.AsObject,\n tree: HTMLVertexSceneTreeElement\n ): Promise<void> => {\n await tree.isolateItem(node);\n };\n\n private performDefaultExpansionOperation = async (\n node: Node.AsObject,\n tree: HTMLVertexSceneTreeElement\n ): Promise<void> => {\n await tree.toggleExpandItem(node);\n };\n\n private clearLongPressTimer(): void {\n if (this.longPressTimer != null) {\n window.clearTimeout(this.longPressTimer);\n }\n this.longPressTimer = undefined;\n }\n\n private restartLongPressTimer(): void {\n this.clearLongPressTimer();\n this.longPressTimer = window.setTimeout(() => {\n this.clearLongPressTimer();\n }, Events.defaultEventConfig.longPressThreshold);\n }\n\n private getBackgroundColorStyle(): string {\n const backgroundColorStyle = this.getCssVariableWithFallbacks(\n `--scene-tree-row-background-color-depth-${this.node?.depth}`,\n '--scene-tree-row-background-color'\n );\n const selectedBackgroundColorStyle = this.getCssVariableWithFallbacks(\n '--scene-tree-selected-row-background-color',\n '--scene-tree-cell-background-selected'\n );\n const hoveredBackgroundColorStyle = this.getCssVariableWithFallbacks(\n '--scene-tree-hovered-row-background-color',\n '--scene-tree-cell-background-hover'\n );\n\n if (!!this.node?.selected) {\n return selectedBackgroundColorStyle;\n } else if (this.hovered) {\n return hoveredBackgroundColorStyle;\n }\n return backgroundColorStyle;\n }\n\n private getCssVariableWithFallbacks(\n variable: string,\n ...fallbacks: string[]\n ): string {\n const sequencedFallbacks = [...fallbacks].reverse();\n\n return [...sequencedFallbacks, variable].reduce(\n (res, s) => `var(${s}, ${res})`,\n 'unset'\n );\n }\n\n private getIsolateIcon(): ViewerIconName | undefined {\n if (this.hovered || this.alwaysShowIcons) {\n return 'locate';\n }\n return undefined;\n }\n\n private getExpansionIcon(): ViewerIconName | undefined {\n if (!this.node?.isLeaf && !this.node?.endItem) {\n return this.node?.expanded ? 'chevron-down' : 'chevron-right';\n }\n return undefined;\n }\n\n private getEndItemIcon(): ViewerIconName | undefined {\n // Return the end item icon for an item if it is set as an end item and either is not a leaf item\n // or matches the filter. Note that in the filtered view, an end item matching the filter will always be\n // marked as a leaf node because its children will be excluded from the search results and therefore\n // not present in the filtered tree.\n if (\n this.endItemIndicator &&\n this.node?.endItem &&\n (!this.node?.isLeaf || this.node?.filterHit)\n ) {\n return 'lock';\n }\n return undefined;\n }\n\n private getVisibilityIcon(): ViewerIconName | undefined {\n if (\n (this.hovered || this.alwaysShowIcons) &&\n !this.node?.partiallyVisible &&\n this.node?.visible\n ) {\n return 'eye-open';\n } else if (!this.node?.partiallyVisible && !this.node?.visible) {\n return 'eye-half';\n } else if (this.node?.partiallyVisible) {\n return 'eye-half-dotted';\n }\n return undefined;\n }\n}\n"],"version":3}
|
|
@@ -29,7 +29,7 @@ const ViewerDefaultToolbar = class {
|
|
|
29
29
|
this.animationMs = 1000;
|
|
30
30
|
}
|
|
31
31
|
render() {
|
|
32
|
-
return (index.h("vertex-viewer-toolbar", { key: '58781d25dbddb4e75f5be56d5ab0d9c2c232aee1', placement: this.placement, direction: this.direction }, index.h("vertex-viewer-toolbar-group", { key: '3c6f854f20b29bac33318c5aca11647f6f0c7396', class: "group", direction: this.direction, "data-direction": this.direction }, index.h("vertex-viewer-button", { key: '
|
|
32
|
+
return (index.h("vertex-viewer-toolbar", { key: '58781d25dbddb4e75f5be56d5ab0d9c2c232aee1', placement: this.placement, direction: this.direction }, index.h("vertex-viewer-toolbar-group", { key: '3c6f854f20b29bac33318c5aca11647f6f0c7396', class: "group", direction: this.direction, "data-direction": this.direction }, index.h("vertex-viewer-button", { key: '3924e02adb45e4117b083d626631e9ebcf2c2d87', class: "group-item btn", "data-testid": "fit-all-btn", onClick: () => this.viewAll() }, index.h("vertex-viewer-icon", { key: '4d336374e36dec5e7841cdc984773e4612282af8', class: "icon", name: "fit-all", size: "md" })))));
|
|
33
33
|
}
|
|
34
34
|
async viewAll() {
|
|
35
35
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"vertex-viewer-default-toolbar.cjs.entry.js","mappings":";;;;;;;AAAA,MAAM,uBAAuB,GAAG,MAAM,CAAC,siCAAsiC,CAAC;;MCUjkC,oBAAoB,GAAA,MAAA;AALjC,IAAA,WAAA,CAAA,OAAA,EAAA;;AAcE;;AAEG;AAEI,QAAA,IAAA,CAAA,SAAS,GAA2B,eAAe;AAE1D;;AAEG;AAEI,QAAA,IAAA,CAAA,SAAS,GAAgC,YAAY;AAE5D;;;AAGG;AAEI,QAAA,IAAA,CAAA,kBAAkB,GAAG,KAAK;AAEjC;;AAEG;AAEI,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI;AAgC1B;IA9BQ,MAAM,GAAA;QACX,QACEA,OAAA,CAAA,uBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAA,EAEzBA,OAAA,CAAA,6BAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAC,OAAO,EACb,SAAS,EAAE,IAAI,CAAC,SAAS,EAAA,gBAAA,EACT,IAAI,CAAC,SAAS,EAAA,EAE9BA,OAAA,CAAA,sBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAC,gBAAgB,EAAA,
|
|
1
|
+
{"file":"vertex-viewer-default-toolbar.cjs.entry.js","mappings":";;;;;;;AAAA,MAAM,uBAAuB,GAAG,MAAM,CAAC,siCAAsiC,CAAC;;MCUjkC,oBAAoB,GAAA,MAAA;AALjC,IAAA,WAAA,CAAA,OAAA,EAAA;;AAcE;;AAEG;AAEI,QAAA,IAAA,CAAA,SAAS,GAA2B,eAAe;AAE1D;;AAEG;AAEI,QAAA,IAAA,CAAA,SAAS,GAAgC,YAAY;AAE5D;;;AAGG;AAEI,QAAA,IAAA,CAAA,kBAAkB,GAAG,KAAK;AAEjC;;AAEG;AAEI,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI;AAgC1B;IA9BQ,MAAM,GAAA;QACX,QACEA,OAAA,CAAA,uBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAA,EAEzBA,OAAA,CAAA,6BAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAC,OAAO,EACb,SAAS,EAAE,IAAI,CAAC,SAAS,EAAA,gBAAA,EACT,IAAI,CAAC,SAAS,EAAA,EAE9BA,OAAA,CAAA,sBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAC,gBAAgB,EAAA,aAAA,EACV,aAAa,EACzB,OAAO,EAAE,MAAM,IAAI,CAAC,OAAO,EAAE,EAAA,EAE7BA,OAAA,CAAA,oBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAoB,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAA,CAAG,CACvC,CACK,CACR;;AAIpB,IAAA,MAAM,OAAO,GAAA;;AACnB,QAAA,MAAM,KAAK,GAAG,OAAM,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,KAAK,EAAE,CAAA;AACxC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC;AACrB,cAAE;cACA,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE;AACtC,QAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,MAAA,GAAA,MAAA,GAAL,KAAK,CAAE,MAAM,EAAA,CAAG,OAAO,EAAA,CAAG,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;;;;;;;","names":["h"],"sources":["src/components/viewer-default-toolbar/viewer-default-toolbar.css?tag=vertex-viewer-default-toolbar&encapsulation=shadow","src/components/viewer-default-toolbar/viewer-default-toolbar.tsx"],"sourcesContent":[":host {\n /**\n * @prop --viewer-toolbar-group-gap: The spacing between each toolbar group.\n * Defaults to `0.5rem`.\n */\n --viewer-toolbar-group-gap: 0.5rem;\n\n /**\n * @prop --viewer-toolbar-group-background: The background to apply to each\n * group in the toolbar. Defaults to `rgba(245, 245, 245, 0.95)`\n */\n --viewer-toolbar-group-background: rgba(245, 245, 245, 0.95);\n\n /**\n * @prop --viewer-toolbar-group-border-radius: The corner radius to apply to\n * each group in the toolbar. Defaults to `0.25rem`.\n */\n --viewer-toolbar-group-border-radius: 0.25rem;\n\n /**\n * @prop --viewer-toolbar-group-box-shadow: The shadow to apply to each group\n * in the toolbar. Defaults to `-1px 0 2px rgba(0, 0, 0, 0.12), 1px 0 2px rgba(0, 0, 0, 0.13)`.\n */\n --viewer-toolbar-group-box-shadow: -1px 0 2px rgba(0, 0, 0, 0.12),\n 1px 0 2px rgba(0, 0, 0, 0.13);\n\n /**\n * @prop --viewer-toolbar-group-padding: The padding to apply to each group in\n * the toolbar. Defaults to `0.25rem`.\n */\n --viewer-toolbar-group-padding: 0.25rem;\n\n /**\n * @prop --viewer-toolbar-group-item-gap: The spacing between each item within\n * a toolbar group. Defaults to `0.25rem`.\n */\n --viewer-toolbar-group-item-gap: 0.25rem;\n}\n\n.group {\n background: var(--viewer-toolbar-group-background);\n border-radius: var(--viewer-toolbar-group-border-radius);\n box-shadow: var(--viewer-toolbar-group-box-shadow);\n padding: var(--viewer-toolbar-group-padding);\n}\n\n.group[data-direction='horizontal']:not(:first-child) {\n margin-left: var(--viewer-toolbar-group-gap);\n}\n\n.group[data-direction='horizontal'] .group-item:not(:first-child) {\n margin-left: var(--viewer-toolbar-group-item-gap);\n}\n\n.group[data-direction='vertical']:not(:first-child) {\n margin-top: var(--viewer-toolbar-group-gap);\n}\n\n.group[data-direction='vertical'] .group-item:not(:first-child) {\n margin-top: var(--viewer-toolbar-group-item-gap);\n}\n\n.btn {\n color: var(--neutral-800);\n padding: 0.125rem;\n border-radius: 0.125rem;\n}\n\n.btn:hover {\n background: var(--neutral-300);\n}\n","import { Component, h, Prop } from '@stencil/core';\n\nimport { ViewerToolbarPlacement } from '../viewer-toolbar/types';\nimport { ViewerToolbarGroupDirection } from '../viewer-toolbar-group/types';\n\n@Component({\n tag: 'vertex-viewer-default-toolbar',\n styleUrl: 'viewer-default-toolbar.css',\n shadow: true,\n})\nexport class ViewerDefaultToolbar {\n /**\n * An instance of the viewer that operations will be performed on. If\n * contained within a `<vertex-viewer>` element, this property will\n * automatically be wired.\n */\n @Prop()\n public viewer?: HTMLVertexViewerElement;\n\n /**\n * Specifies where the toolbar is positioned.\n */\n @Prop()\n public placement: ViewerToolbarPlacement = 'bottom-center';\n\n /**\n * Specifies the direction that UI elements are placed.\n */\n @Prop()\n public direction: ViewerToolbarGroupDirection = 'horizontal';\n\n /**\n * Indicates whether animations will be used when performing camera\n * operations. Defaults to `true`.\n */\n @Prop()\n public animationsDisabled = false;\n\n /**\n * The duration of animations, in milliseconds. Defaults to `1000`.\n */\n @Prop()\n public animationMs = 1000;\n\n public render(): h.JSX.IntrinsicElements {\n return (\n <vertex-viewer-toolbar\n placement={this.placement}\n direction={this.direction}\n >\n <vertex-viewer-toolbar-group\n class=\"group\"\n direction={this.direction}\n data-direction={this.direction}\n >\n <vertex-viewer-button\n class=\"group-item btn\"\n data-testid=\"fit-all-btn\"\n onClick={() => this.viewAll()}\n >\n <vertex-viewer-icon class=\"icon\" name=\"fit-all\" size=\"md\" />\n </vertex-viewer-button>\n </vertex-viewer-toolbar-group>\n </vertex-viewer-toolbar>\n );\n }\n\n private async viewAll(): Promise<void> {\n const scene = await this.viewer?.scene();\n const animation = this.animationsDisabled\n ? undefined\n : { milliseconds: this.animationMs };\n scene?.camera().viewAll().render({ animation });\n }\n}\n"],"version":3}
|
|
@@ -162,7 +162,7 @@ export class SceneTreeTableCell {
|
|
|
162
162
|
return (h(Host, { key: '703090cacf3d026e220ead0a051d70b186fa056e', onPointerEnter: this.handleCellPointerEnter, onPointerLeave: this.handleCellPointerLeave, onPointerUp: this.handleCellPointerUp, onPointerDown: this.handleCellPointerDown, style: {
|
|
163
163
|
...hiddenStyle,
|
|
164
164
|
'background-color': backgroundColorStyle,
|
|
165
|
-
} }, h("div", { key: '25a45f3cebed75a1d0e469cce01e1cabec5450c4', class: "wrapper" }, h("div", { key: '7ba2f3c1b9a5551287f6683f87de841f0717e87b', class: "no-shrink" }, h("slot", { key: '04bd203d0e034aa4fce3a0b64d24718ab0ba50af', name: "left-gutter" })), showSpaceForExpansionIcon && (h("button", { key: '
|
|
165
|
+
} }, h("div", { key: '25a45f3cebed75a1d0e469cce01e1cabec5450c4', class: "wrapper" }, h("div", { key: '7ba2f3c1b9a5551287f6683f87de841f0717e87b', class: "no-shrink" }, h("slot", { key: '04bd203d0e034aa4fce3a0b64d24718ab0ba50af', name: "left-gutter" })), showSpaceForExpansionIcon && (h("button", { key: 'ee0ed0a97bdbac298bb1924a2501a7e1705c5875', class: "expand-btn no-shrink", "data-testid": 'expand-' + ((_a = this.node) === null || _a === void 0 ? void 0 : _a.name), onPointerUp: this.createActionPointerUpHandler(this.toggleExpansion) }, expansionIcon && (h("vertex-viewer-icon", { key: '0138a61ceca6200060602fcf5be186d8ef5b8439', class: "icon", name: expansionIcon, size: "sm" })))), showSpaceForEndItemIcon && (h("button", { key: '5f1376b4e28d62273f4f53f8fd61e83400dda8cb', class: "end-item-btn no-shrink", "data-testid": 'end-item-' + ((_b = this.node) === null || _b === void 0 ? void 0 : _b.name) }, endItemIcon && (h("vertex-viewer-icon", { key: '3760b8b0452208116b468bf662659365fa93397b', class: "end-item-icon", name: endItemIcon, size: "sm" })))), h("div", { key: 'b6af488cac898cee62c7c68c3ef159259e2029fb', class: "content" }, this.value != null && this.value.trim() !== '' ? (h("slot", null, this.displayValue())) : (h("slot", { name: "placeholder" }, this.placeholder))), this.isolateButton && (h("button", { key: 'c5feec7c3665c3983ec9c3754d2b3904276694ad', class: "isolate-btn no-shrink", "data-testid": 'isolate-btn-' + ((_c = this.node) === null || _c === void 0 ? void 0 : _c.name), onPointerUp: this.createActionPointerUpHandler(this.isolate) }, isolateIcon && (h("vertex-viewer-icon", { key: 'daa2a2697cfb21fbbf9ca975374d4108d4faeabb', class: "icon", name: "locate", size: "sm" })))), this.visibilityToggle && (h("button", { key: 'c3a99abe103595de749195893f7af1955db7e509', class: "visibility-btn no-shrink", "data-testid": 'visibility-btn-' + ((_d = this.node) === null || _d === void 0 ? void 0 : _d.name), onPointerUp: this.createActionPointerUpHandler(this.toggleVisibility) }, visibilityIcon && (h("vertex-viewer-icon", { key: 'f5cb997438de0d600447a217156748f903293432', class: "icon", name: visibilityIcon, size: "sm" })))), h("div", { key: '39c001c9af24fa30c5c42cfa844e9beb373e2ec3', class: "no-shrink" }, h("slot", { key: 'd412cf2de92b427282c9575a7d0cd505f23650a5', name: "right-gutter" })), !this.visibilityToggle && !this.isolateButton && (h("div", { key: 'e5aced5b74783ab256ab057794346f3bd49050a0', class: "column-spacer" })))));
|
|
166
166
|
}
|
|
167
167
|
toggleAttribute(attr, value) {
|
|
168
168
|
if (value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scene-tree-table-cell.js","sourceRoot":"","sources":["../../../../../src/components/scene-tree-table-cell/scene-tree-table-cell.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n} from '@stencil/core';\nimport { Node } from '@vertexvis/scene-tree-protos/scenetree/protos/domain_pb';\nimport { Disposable } from '@vertexvis/utils';\n\nimport { Events } from '../../lib/types';\nimport { SceneTreeOperationHandler } from '../scene-tree/lib/handlers';\nimport { SceneTreeCellHoverController } from '../scene-tree-table-layout/lib/hover-controller';\nimport { ViewerIconName } from '../viewer-icon/viewer-icon';\nimport { blurElement } from './utils';\n\nexport interface SceneTreeTableCellEventDetails {\n node?: Node.AsObject;\n originalEvent: PointerEvent;\n}\n\n@Component({\n tag: 'vertex-scene-tree-table-cell',\n styleUrl: 'scene-tree-table-cell.css',\n shadow: true,\n})\nexport class SceneTreeTableCell {\n /**\n * The node data that is associated to the row that this cell belongs to.\n * Contains information related to if the node is expanded, visible, etc.\n */\n @Prop()\n public node?: Node.AsObject;\n\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 * The value to display in this cell.\n */\n @Prop()\n public value?: string;\n\n /**\n * The value to display in this cell if the `value` specified is\n * undefined. Defaults to \"--\".\n */\n @Prop()\n public placeholder = '--';\n\n /**\n * Whether to always show the requested icons in the cell. If false,\n * the icons will only appear when hovering over the cell.\n */\n @Prop()\n public alwaysShowIcons = false;\n\n /**\n * @internal\n */\n @Prop({ mutable: true })\n public hovered = false;\n\n /**\n * @internal\n */\n @Prop()\n public isScrolling?: boolean;\n\n /**\n * Indicates whether to display a button for toggling the expanded state of\n * the node associated with this cell.\n */\n @Prop()\n public expandToggle?: boolean;\n\n /**\n * Indicates whether to display an indicator that the node associated with\n * this cell is an end item.\n */\n @Prop()\n public endItemIndicator?: boolean;\n\n /**\n * Indicates whether to display a button for toggling the visibility state of\n * the node associated with this cell.\n */\n @Prop()\n public visibilityToggle?: boolean;\n\n /**\n * Indicates whether to display a button for isolating (show only + fly to)\n * the node associated with this cell.\n */\n @Prop()\n public isolateButton?: boolean;\n\n /**\n * An optional handler that will override this cell's default selection\n * behavior. The registered handler will receive the `pointerup` event,\n * the node data for the row this cell is associated with, and a reference\n * to the parent `<vertex-scene-tree>` element for performing operations.\n */\n @Prop()\n public selectionHandler?: SceneTreeOperationHandler;\n\n /**\n * An optional handler that will override this cell's default visibility\n * behavior. The registered handler will receive the `pointerup` event,\n * the node data for the row this cell is associated with, and a reference\n * to the parent `<vertex-scene-tree>` element for performing operations.\n */\n @Prop()\n public visibilityHandler?: SceneTreeOperationHandler;\n\n /**\n * An optional handler that will override this cell's default expansion\n * behavior. The registered handler will receive the `pointerup` event,\n * the node data for the row this cell is associated with, and a reference\n * to the parent `<vertex-scene-tree>` element for performing operations.\n */\n @Prop()\n public expansionHandler?: SceneTreeOperationHandler;\n\n /**\n * An optional handler that will override this cell's default isolate\n * behavior. The registered handler will receive the `pointerup` event,\n * the node data for the row this cell is associated with, and a reference\n * to the parent `<vertex-scene-tree>` element for performing operations.\n */\n @Prop()\n public isolateHandler?: SceneTreeOperationHandler;\n\n /**\n * @internal\n */\n @Prop()\n public hoverController?: SceneTreeCellHoverController;\n\n /**\n * An event that is emitted when a user requests to expand the node. This is\n * emitted even if interactions are disabled.\n */\n @Event({ bubbles: true })\n public expandToggled!: EventEmitter<SceneTreeTableCellEventDetails>;\n\n /**\n * An event that is emitted when a user requests to change the node's\n * visibility. This event is emitted even if interactions are disabled.\n */\n @Event({ bubbles: true })\n public visibilityToggled!: EventEmitter<SceneTreeTableCellEventDetails>;\n\n /**\n * An event that is emitted when a user requests to change the node's selection\n * state. This event is emitted even if interactions are disabled.\n */\n @Event({ bubbles: true })\n public selectionToggled!: EventEmitter<SceneTreeTableCellEventDetails>;\n\n /**\n * An event that is emitted when a user requests to isolate the node.\n * This event is emitted even if interactions are disabled.\n */\n @Event({ bubbles: true })\n public isolatePressed!: EventEmitter<SceneTreeTableCellEventDetails>;\n\n /**\n * Used for internals or testing.\n *\n * @private\n */\n @Event({ bubbles: true })\n public cellLoaded!: EventEmitter<void>;\n\n @Element()\n private hostEl!: HTMLElement;\n\n private hoverListener?: Disposable;\n\n private longPressTimer?: number;\n\n public componentDidLoad(): void {\n this.hoverListener = this.hoverController?.stateChanged((id?: string) => {\n this.hovered = id === this.node?.id?.hex;\n });\n\n this.cellLoaded.emit();\n this.clearLongPressTimer();\n }\n\n public disconnectedCallback(): void {\n this.hoverListener?.dispose();\n this.clearLongPressTimer();\n }\n\n public componentWillRender(): void {\n this.toggleAttribute('is-hovered', this.hovered);\n this.toggleAttribute('is-hidden', !this.node?.visible);\n this.toggleAttribute('is-selected', !!this.node?.selected);\n this.toggleAttribute('is-partial', !!this.node?.partiallyVisible);\n this.toggleAttribute('is-leaf', !!this.node?.isLeaf);\n this.toggleAttribute('is-end-item', !!this.node?.endItem);\n this.toggleAttribute('is-filter-hit', !!this.node?.filterHit);\n }\n\n public render(): h.JSX.IntrinsicElements {\n // Overrides the `.hydrated` visibility when we have nothing to display\n const hiddenStyle =\n this.node == null ? { visibility: 'hidden' } : undefined;\n const backgroundColorStyle = this.getBackgroundColorStyle();\n\n const endItemIcon = this.getEndItemIcon();\n const expansionIcon = this.getExpansionIcon();\n const isolateIcon = this.getIsolateIcon();\n const visibilityIcon = this.getVisibilityIcon();\n\n const showSpaceForExpansionIcon = this.expandToggle && !endItemIcon;\n const showSpaceForEndItemIcon = endItemIcon && !showSpaceForExpansionIcon;\n\n return (\n <Host\n onPointerEnter={this.handleCellPointerEnter}\n onPointerLeave={this.handleCellPointerLeave}\n onPointerUp={this.handleCellPointerUp}\n onPointerDown={this.handleCellPointerDown}\n style={{\n ...hiddenStyle,\n 'background-color': backgroundColorStyle,\n }}\n >\n <div class=\"wrapper\">\n <div class=\"no-shrink\">\n <slot name=\"left-gutter\" />\n </div>\n {showSpaceForExpansionIcon && (\n <button\n class=\"expand-btn no-shrink\"\n data-test-id={'expand-' + this.node?.name}\n onPointerUp={this.createActionPointerUpHandler(\n this.toggleExpansion\n )}\n >\n {expansionIcon && (\n <vertex-viewer-icon\n class=\"icon\"\n name={expansionIcon}\n size=\"sm\"\n />\n )}\n </button>\n )}\n\n {showSpaceForEndItemIcon && (\n <button\n class=\"end-item-btn no-shrink\"\n data-test-id={'end-item-' + this.node?.name}\n >\n {endItemIcon && (\n <vertex-viewer-icon\n class=\"end-item-icon\"\n name={endItemIcon}\n size=\"sm\"\n />\n )}\n </button>\n )}\n\n <div class=\"content\">\n {this.value != null && this.value.trim() !== '' ? (\n <slot>{this.displayValue()}</slot>\n ) : (\n <slot name=\"placeholder\">{this.placeholder}</slot>\n )}\n </div>\n {this.isolateButton && (\n <button\n class=\"isolate-btn no-shrink\"\n data-test-id={'isolate-btn-' + this.node?.name}\n onPointerUp={this.createActionPointerUpHandler(this.isolate)}\n >\n {isolateIcon && (\n <vertex-viewer-icon class=\"icon\" name=\"locate\" size=\"sm\" />\n )}\n </button>\n )}\n {this.visibilityToggle && (\n <button\n class=\"visibility-btn no-shrink\"\n data-test-id={'visibility-btn-' + this.node?.name}\n onPointerUp={this.createActionPointerUpHandler(\n this.toggleVisibility\n )}\n >\n {visibilityIcon && (\n <vertex-viewer-icon\n class=\"icon\"\n name={visibilityIcon}\n size=\"sm\"\n />\n )}\n </button>\n )}\n <div class=\"no-shrink\">\n <slot name=\"right-gutter\" />\n </div>\n {!this.visibilityToggle && !this.isolateButton && (\n <div class=\"column-spacer\" />\n )}\n </div>\n </Host>\n );\n }\n\n private displayValue = (): string => {\n const resp =\n this.value == null || this.value.trim() === ''\n ? this.placeholder\n : this.value;\n\n return resp;\n };\n\n private handleCellPointerEnter = (): void => {\n this.hoverController?.setHovered(this.node?.id?.hex);\n };\n\n private handleCellPointerLeave = (): void => {\n this.hoverController?.setHovered(undefined);\n };\n\n private handleCellPointerUp = (event: PointerEvent): void => {\n if (\n !this.isScrolling &&\n this.node != null &&\n this.tree != null &&\n this.longPressTimer != null\n ) {\n if (this.selectionHandler != null) {\n this.selectionHandler(event, this.node, this.tree);\n } else {\n this.performDefaultSelectionOperation(event);\n }\n this.selectionToggled.emit({ node: this.node, originalEvent: event });\n }\n this.clearLongPressTimer();\n };\n\n private handleCellPointerDown = (event: PointerEvent): void => {\n this.restartLongPressTimer();\n };\n\n private createActionPointerUpHandler = (\n action: (event: PointerEvent) => void\n ): ((event: PointerEvent) => void) => {\n return (event) => {\n // Blur the `hostEl` after a `preventDefault` to clear focus that\n // is left on the element after `pointerdown` event.\n event.preventDefault();\n event.stopPropagation();\n blurElement(this.hostEl);\n\n action(event);\n };\n };\n\n private toggleExpansion = async (event: PointerEvent): Promise<void> => {\n if (this.tree != null && this.node != null) {\n if (this.expansionHandler != null) {\n this.expansionHandler(event, this.node, this.tree);\n } else {\n await this.performDefaultExpansionOperation(this.node, this.tree);\n }\n this.expandToggled.emit({ node: this.node, originalEvent: event });\n }\n };\n\n private toggleVisibility = async (event: PointerEvent): Promise<void> => {\n if (this.tree != null && this.node != null) {\n if (this.visibilityHandler != null) {\n this.visibilityHandler(event, this.node, this.tree);\n } else {\n await this.performDefaultVisibilityOperation(this.node, this.tree);\n }\n this.visibilityToggled.emit({ node: this.node, originalEvent: event });\n }\n };\n\n private toggleAttribute(attr: string, value: boolean): void {\n if (value) {\n this.hostEl.setAttribute(attr, '');\n } else {\n this.hostEl.removeAttribute(attr);\n }\n }\n\n private isolate = async (event: PointerEvent): Promise<void> => {\n if (this.tree != null && this.node != null) {\n if (this.isolateHandler != null) {\n this.isolateHandler(event, this.node, this.tree);\n } else {\n await this.performDefaultIsolateOperation(this.node, this.tree);\n }\n this.isolatePressed.emit({ node: this.node, originalEvent: event });\n }\n };\n\n private performDefaultSelectionOperation = (event: PointerEvent): void => {\n if (!event.defaultPrevented && event.button === 0) {\n if ((event.ctrlKey || event.metaKey) && this.node?.selected) {\n this.tree?.deselectItem(this.node);\n } else if (this.node?.selected) {\n this.tree?.selectItem(this.node, {\n recurseParent: true,\n });\n } else if (!this.node?.selected) {\n this.tree?.selectItem(this.node, {\n append: event.ctrlKey || event.metaKey,\n range: event.shiftKey,\n });\n }\n }\n };\n\n private performDefaultVisibilityOperation = async (\n node: Node.AsObject,\n tree: HTMLVertexSceneTreeElement\n ): Promise<void> => {\n await tree.toggleItemVisibility(node);\n };\n\n private performDefaultIsolateOperation = async (\n node: Node.AsObject,\n tree: HTMLVertexSceneTreeElement\n ): Promise<void> => {\n await tree.isolateItem(node);\n };\n\n private performDefaultExpansionOperation = async (\n node: Node.AsObject,\n tree: HTMLVertexSceneTreeElement\n ): Promise<void> => {\n await tree.toggleExpandItem(node);\n };\n\n private clearLongPressTimer(): void {\n if (this.longPressTimer != null) {\n window.clearTimeout(this.longPressTimer);\n }\n this.longPressTimer = undefined;\n }\n\n private restartLongPressTimer(): void {\n this.clearLongPressTimer();\n this.longPressTimer = window.setTimeout(() => {\n this.clearLongPressTimer();\n }, Events.defaultEventConfig.longPressThreshold);\n }\n\n private getBackgroundColorStyle(): string {\n const backgroundColorStyle = this.getCssVariableWithFallbacks(\n `--scene-tree-row-background-color-depth-${this.node?.depth}`,\n '--scene-tree-row-background-color'\n );\n const selectedBackgroundColorStyle = this.getCssVariableWithFallbacks(\n '--scene-tree-selected-row-background-color',\n '--scene-tree-cell-background-selected'\n );\n const hoveredBackgroundColorStyle = this.getCssVariableWithFallbacks(\n '--scene-tree-hovered-row-background-color',\n '--scene-tree-cell-background-hover'\n );\n\n if (!!this.node?.selected) {\n return selectedBackgroundColorStyle;\n } else if (this.hovered) {\n return hoveredBackgroundColorStyle;\n }\n return backgroundColorStyle;\n }\n\n private getCssVariableWithFallbacks(\n variable: string,\n ...fallbacks: string[]\n ): string {\n const sequencedFallbacks = [...fallbacks].reverse();\n\n return [...sequencedFallbacks, variable].reduce(\n (res, s) => `var(${s}, ${res})`,\n 'unset'\n );\n }\n\n private getIsolateIcon(): ViewerIconName | undefined {\n if (this.hovered || this.alwaysShowIcons) {\n return 'locate';\n }\n return undefined;\n }\n\n private getExpansionIcon(): ViewerIconName | undefined {\n if (!this.node?.isLeaf && !this.node?.endItem) {\n return this.node?.expanded ? 'chevron-down' : 'chevron-right';\n }\n return undefined;\n }\n\n private getEndItemIcon(): ViewerIconName | undefined {\n // Return the end item icon for an item if it is set as an end item and either is not a leaf item\n // or matches the filter. Note that in the filtered view, an end item matching the filter will always be\n // marked as a leaf node because its children will be excluded from the search results and therefore\n // not present in the filtered tree.\n if (\n this.endItemIndicator &&\n this.node?.endItem &&\n (!this.node?.isLeaf || this.node?.filterHit)\n ) {\n return 'lock';\n }\n return undefined;\n }\n\n private getVisibilityIcon(): ViewerIconName | undefined {\n if (\n (this.hovered || this.alwaysShowIcons) &&\n !this.node?.partiallyVisible &&\n this.node?.visible\n ) {\n return 'eye-open';\n } else if (!this.node?.partiallyVisible && !this.node?.visible) {\n return 'eye-half';\n } else if (this.node?.partiallyVisible) {\n return 'eye-half-dotted';\n }\n return undefined;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"scene-tree-table-cell.js","sourceRoot":"","sources":["../../../../../src/components/scene-tree-table-cell/scene-tree-table-cell.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n} from '@stencil/core';\nimport { Node } from '@vertexvis/scene-tree-protos/scenetree/protos/domain_pb';\nimport { Disposable } from '@vertexvis/utils';\n\nimport { Events } from '../../lib/types';\nimport { SceneTreeOperationHandler } from '../scene-tree/lib/handlers';\nimport { SceneTreeCellHoverController } from '../scene-tree-table-layout/lib/hover-controller';\nimport { ViewerIconName } from '../viewer-icon/viewer-icon';\nimport { blurElement } from './utils';\n\nexport interface SceneTreeTableCellEventDetails {\n node?: Node.AsObject;\n originalEvent: PointerEvent;\n}\n\n@Component({\n tag: 'vertex-scene-tree-table-cell',\n styleUrl: 'scene-tree-table-cell.css',\n shadow: true,\n})\nexport class SceneTreeTableCell {\n /**\n * The node data that is associated to the row that this cell belongs to.\n * Contains information related to if the node is expanded, visible, etc.\n */\n @Prop()\n public node?: Node.AsObject;\n\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 * The value to display in this cell.\n */\n @Prop()\n public value?: string;\n\n /**\n * The value to display in this cell if the `value` specified is\n * undefined. Defaults to \"--\".\n */\n @Prop()\n public placeholder = '--';\n\n /**\n * Whether to always show the requested icons in the cell. If false,\n * the icons will only appear when hovering over the cell.\n */\n @Prop()\n public alwaysShowIcons = false;\n\n /**\n * @internal\n */\n @Prop({ mutable: true })\n public hovered = false;\n\n /**\n * @internal\n */\n @Prop()\n public isScrolling?: boolean;\n\n /**\n * Indicates whether to display a button for toggling the expanded state of\n * the node associated with this cell.\n */\n @Prop()\n public expandToggle?: boolean;\n\n /**\n * Indicates whether to display an indicator that the node associated with\n * this cell is an end item.\n */\n @Prop()\n public endItemIndicator?: boolean;\n\n /**\n * Indicates whether to display a button for toggling the visibility state of\n * the node associated with this cell.\n */\n @Prop()\n public visibilityToggle?: boolean;\n\n /**\n * Indicates whether to display a button for isolating (show only + fly to)\n * the node associated with this cell.\n */\n @Prop()\n public isolateButton?: boolean;\n\n /**\n * An optional handler that will override this cell's default selection\n * behavior. The registered handler will receive the `pointerup` event,\n * the node data for the row this cell is associated with, and a reference\n * to the parent `<vertex-scene-tree>` element for performing operations.\n */\n @Prop()\n public selectionHandler?: SceneTreeOperationHandler;\n\n /**\n * An optional handler that will override this cell's default visibility\n * behavior. The registered handler will receive the `pointerup` event,\n * the node data for the row this cell is associated with, and a reference\n * to the parent `<vertex-scene-tree>` element for performing operations.\n */\n @Prop()\n public visibilityHandler?: SceneTreeOperationHandler;\n\n /**\n * An optional handler that will override this cell's default expansion\n * behavior. The registered handler will receive the `pointerup` event,\n * the node data for the row this cell is associated with, and a reference\n * to the parent `<vertex-scene-tree>` element for performing operations.\n */\n @Prop()\n public expansionHandler?: SceneTreeOperationHandler;\n\n /**\n * An optional handler that will override this cell's default isolate\n * behavior. The registered handler will receive the `pointerup` event,\n * the node data for the row this cell is associated with, and a reference\n * to the parent `<vertex-scene-tree>` element for performing operations.\n */\n @Prop()\n public isolateHandler?: SceneTreeOperationHandler;\n\n /**\n * @internal\n */\n @Prop()\n public hoverController?: SceneTreeCellHoverController;\n\n /**\n * An event that is emitted when a user requests to expand the node. This is\n * emitted even if interactions are disabled.\n */\n @Event({ bubbles: true })\n public expandToggled!: EventEmitter<SceneTreeTableCellEventDetails>;\n\n /**\n * An event that is emitted when a user requests to change the node's\n * visibility. This event is emitted even if interactions are disabled.\n */\n @Event({ bubbles: true })\n public visibilityToggled!: EventEmitter<SceneTreeTableCellEventDetails>;\n\n /**\n * An event that is emitted when a user requests to change the node's selection\n * state. This event is emitted even if interactions are disabled.\n */\n @Event({ bubbles: true })\n public selectionToggled!: EventEmitter<SceneTreeTableCellEventDetails>;\n\n /**\n * An event that is emitted when a user requests to isolate the node.\n * This event is emitted even if interactions are disabled.\n */\n @Event({ bubbles: true })\n public isolatePressed!: EventEmitter<SceneTreeTableCellEventDetails>;\n\n /**\n * Used for internals or testing.\n *\n * @private\n */\n @Event({ bubbles: true })\n public cellLoaded!: EventEmitter<void>;\n\n @Element()\n private hostEl!: HTMLElement;\n\n private hoverListener?: Disposable;\n\n private longPressTimer?: number;\n\n public componentDidLoad(): void {\n this.hoverListener = this.hoverController?.stateChanged((id?: string) => {\n this.hovered = id === this.node?.id?.hex;\n });\n\n this.cellLoaded.emit();\n this.clearLongPressTimer();\n }\n\n public disconnectedCallback(): void {\n this.hoverListener?.dispose();\n this.clearLongPressTimer();\n }\n\n public componentWillRender(): void {\n this.toggleAttribute('is-hovered', this.hovered);\n this.toggleAttribute('is-hidden', !this.node?.visible);\n this.toggleAttribute('is-selected', !!this.node?.selected);\n this.toggleAttribute('is-partial', !!this.node?.partiallyVisible);\n this.toggleAttribute('is-leaf', !!this.node?.isLeaf);\n this.toggleAttribute('is-end-item', !!this.node?.endItem);\n this.toggleAttribute('is-filter-hit', !!this.node?.filterHit);\n }\n\n public render(): h.JSX.IntrinsicElements {\n // Overrides the `.hydrated` visibility when we have nothing to display\n const hiddenStyle =\n this.node == null ? { visibility: 'hidden' } : undefined;\n const backgroundColorStyle = this.getBackgroundColorStyle();\n\n const endItemIcon = this.getEndItemIcon();\n const expansionIcon = this.getExpansionIcon();\n const isolateIcon = this.getIsolateIcon();\n const visibilityIcon = this.getVisibilityIcon();\n\n const showSpaceForExpansionIcon = this.expandToggle && !endItemIcon;\n const showSpaceForEndItemIcon = endItemIcon && !showSpaceForExpansionIcon;\n\n return (\n <Host\n onPointerEnter={this.handleCellPointerEnter}\n onPointerLeave={this.handleCellPointerLeave}\n onPointerUp={this.handleCellPointerUp}\n onPointerDown={this.handleCellPointerDown}\n style={{\n ...hiddenStyle,\n 'background-color': backgroundColorStyle,\n }}\n >\n <div class=\"wrapper\">\n <div class=\"no-shrink\">\n <slot name=\"left-gutter\" />\n </div>\n {showSpaceForExpansionIcon && (\n <button\n class=\"expand-btn no-shrink\"\n data-testid={'expand-' + this.node?.name}\n onPointerUp={this.createActionPointerUpHandler(\n this.toggleExpansion\n )}\n >\n {expansionIcon && (\n <vertex-viewer-icon\n class=\"icon\"\n name={expansionIcon}\n size=\"sm\"\n />\n )}\n </button>\n )}\n\n {showSpaceForEndItemIcon && (\n <button\n class=\"end-item-btn no-shrink\"\n data-testid={'end-item-' + this.node?.name}\n >\n {endItemIcon && (\n <vertex-viewer-icon\n class=\"end-item-icon\"\n name={endItemIcon}\n size=\"sm\"\n />\n )}\n </button>\n )}\n\n <div class=\"content\">\n {this.value != null && this.value.trim() !== '' ? (\n <slot>{this.displayValue()}</slot>\n ) : (\n <slot name=\"placeholder\">{this.placeholder}</slot>\n )}\n </div>\n {this.isolateButton && (\n <button\n class=\"isolate-btn no-shrink\"\n data-testid={'isolate-btn-' + this.node?.name}\n onPointerUp={this.createActionPointerUpHandler(this.isolate)}\n >\n {isolateIcon && (\n <vertex-viewer-icon class=\"icon\" name=\"locate\" size=\"sm\" />\n )}\n </button>\n )}\n {this.visibilityToggle && (\n <button\n class=\"visibility-btn no-shrink\"\n data-testid={'visibility-btn-' + this.node?.name}\n onPointerUp={this.createActionPointerUpHandler(\n this.toggleVisibility\n )}\n >\n {visibilityIcon && (\n <vertex-viewer-icon\n class=\"icon\"\n name={visibilityIcon}\n size=\"sm\"\n />\n )}\n </button>\n )}\n <div class=\"no-shrink\">\n <slot name=\"right-gutter\" />\n </div>\n {!this.visibilityToggle && !this.isolateButton && (\n <div class=\"column-spacer\" />\n )}\n </div>\n </Host>\n );\n }\n\n private displayValue = (): string => {\n const resp =\n this.value == null || this.value.trim() === ''\n ? this.placeholder\n : this.value;\n\n return resp;\n };\n\n private handleCellPointerEnter = (): void => {\n this.hoverController?.setHovered(this.node?.id?.hex);\n };\n\n private handleCellPointerLeave = (): void => {\n this.hoverController?.setHovered(undefined);\n };\n\n private handleCellPointerUp = (event: PointerEvent): void => {\n if (\n !this.isScrolling &&\n this.node != null &&\n this.tree != null &&\n this.longPressTimer != null\n ) {\n if (this.selectionHandler != null) {\n this.selectionHandler(event, this.node, this.tree);\n } else {\n this.performDefaultSelectionOperation(event);\n }\n this.selectionToggled.emit({ node: this.node, originalEvent: event });\n }\n this.clearLongPressTimer();\n };\n\n private handleCellPointerDown = (event: PointerEvent): void => {\n this.restartLongPressTimer();\n };\n\n private createActionPointerUpHandler = (\n action: (event: PointerEvent) => void\n ): ((event: PointerEvent) => void) => {\n return (event) => {\n // Blur the `hostEl` after a `preventDefault` to clear focus that\n // is left on the element after `pointerdown` event.\n event.preventDefault();\n event.stopPropagation();\n blurElement(this.hostEl);\n\n action(event);\n };\n };\n\n private toggleExpansion = async (event: PointerEvent): Promise<void> => {\n if (this.tree != null && this.node != null) {\n if (this.expansionHandler != null) {\n this.expansionHandler(event, this.node, this.tree);\n } else {\n await this.performDefaultExpansionOperation(this.node, this.tree);\n }\n this.expandToggled.emit({ node: this.node, originalEvent: event });\n }\n };\n\n private toggleVisibility = async (event: PointerEvent): Promise<void> => {\n if (this.tree != null && this.node != null) {\n if (this.visibilityHandler != null) {\n this.visibilityHandler(event, this.node, this.tree);\n } else {\n await this.performDefaultVisibilityOperation(this.node, this.tree);\n }\n this.visibilityToggled.emit({ node: this.node, originalEvent: event });\n }\n };\n\n private toggleAttribute(attr: string, value: boolean): void {\n if (value) {\n this.hostEl.setAttribute(attr, '');\n } else {\n this.hostEl.removeAttribute(attr);\n }\n }\n\n private isolate = async (event: PointerEvent): Promise<void> => {\n if (this.tree != null && this.node != null) {\n if (this.isolateHandler != null) {\n this.isolateHandler(event, this.node, this.tree);\n } else {\n await this.performDefaultIsolateOperation(this.node, this.tree);\n }\n this.isolatePressed.emit({ node: this.node, originalEvent: event });\n }\n };\n\n private performDefaultSelectionOperation = (event: PointerEvent): void => {\n if (!event.defaultPrevented && event.button === 0) {\n if ((event.ctrlKey || event.metaKey) && this.node?.selected) {\n this.tree?.deselectItem(this.node);\n } else if (this.node?.selected) {\n this.tree?.selectItem(this.node, {\n recurseParent: true,\n });\n } else if (!this.node?.selected) {\n this.tree?.selectItem(this.node, {\n append: event.ctrlKey || event.metaKey,\n range: event.shiftKey,\n });\n }\n }\n };\n\n private performDefaultVisibilityOperation = async (\n node: Node.AsObject,\n tree: HTMLVertexSceneTreeElement\n ): Promise<void> => {\n await tree.toggleItemVisibility(node);\n };\n\n private performDefaultIsolateOperation = async (\n node: Node.AsObject,\n tree: HTMLVertexSceneTreeElement\n ): Promise<void> => {\n await tree.isolateItem(node);\n };\n\n private performDefaultExpansionOperation = async (\n node: Node.AsObject,\n tree: HTMLVertexSceneTreeElement\n ): Promise<void> => {\n await tree.toggleExpandItem(node);\n };\n\n private clearLongPressTimer(): void {\n if (this.longPressTimer != null) {\n window.clearTimeout(this.longPressTimer);\n }\n this.longPressTimer = undefined;\n }\n\n private restartLongPressTimer(): void {\n this.clearLongPressTimer();\n this.longPressTimer = window.setTimeout(() => {\n this.clearLongPressTimer();\n }, Events.defaultEventConfig.longPressThreshold);\n }\n\n private getBackgroundColorStyle(): string {\n const backgroundColorStyle = this.getCssVariableWithFallbacks(\n `--scene-tree-row-background-color-depth-${this.node?.depth}`,\n '--scene-tree-row-background-color'\n );\n const selectedBackgroundColorStyle = this.getCssVariableWithFallbacks(\n '--scene-tree-selected-row-background-color',\n '--scene-tree-cell-background-selected'\n );\n const hoveredBackgroundColorStyle = this.getCssVariableWithFallbacks(\n '--scene-tree-hovered-row-background-color',\n '--scene-tree-cell-background-hover'\n );\n\n if (!!this.node?.selected) {\n return selectedBackgroundColorStyle;\n } else if (this.hovered) {\n return hoveredBackgroundColorStyle;\n }\n return backgroundColorStyle;\n }\n\n private getCssVariableWithFallbacks(\n variable: string,\n ...fallbacks: string[]\n ): string {\n const sequencedFallbacks = [...fallbacks].reverse();\n\n return [...sequencedFallbacks, variable].reduce(\n (res, s) => `var(${s}, ${res})`,\n 'unset'\n );\n }\n\n private getIsolateIcon(): ViewerIconName | undefined {\n if (this.hovered || this.alwaysShowIcons) {\n return 'locate';\n }\n return undefined;\n }\n\n private getExpansionIcon(): ViewerIconName | undefined {\n if (!this.node?.isLeaf && !this.node?.endItem) {\n return this.node?.expanded ? 'chevron-down' : 'chevron-right';\n }\n return undefined;\n }\n\n private getEndItemIcon(): ViewerIconName | undefined {\n // Return the end item icon for an item if it is set as an end item and either is not a leaf item\n // or matches the filter. Note that in the filtered view, an end item matching the filter will always be\n // marked as a leaf node because its children will be excluded from the search results and therefore\n // not present in the filtered tree.\n if (\n this.endItemIndicator &&\n this.node?.endItem &&\n (!this.node?.isLeaf || this.node?.filterHit)\n ) {\n return 'lock';\n }\n return undefined;\n }\n\n private getVisibilityIcon(): ViewerIconName | undefined {\n if (\n (this.hovered || this.alwaysShowIcons) &&\n !this.node?.partiallyVisible &&\n this.node?.visible\n ) {\n return 'eye-open';\n } else if (!this.node?.partiallyVisible && !this.node?.visible) {\n return 'eye-half';\n } else if (this.node?.partiallyVisible) {\n return 'eye-half-dotted';\n }\n return undefined;\n }\n}\n"]}
|
|
@@ -23,7 +23,7 @@ export class ViewerDefaultToolbar {
|
|
|
23
23
|
this.animationMs = 1000;
|
|
24
24
|
}
|
|
25
25
|
render() {
|
|
26
|
-
return (h("vertex-viewer-toolbar", { key: '58781d25dbddb4e75f5be56d5ab0d9c2c232aee1', placement: this.placement, direction: this.direction }, h("vertex-viewer-toolbar-group", { key: '3c6f854f20b29bac33318c5aca11647f6f0c7396', class: "group", direction: this.direction, "data-direction": this.direction }, h("vertex-viewer-button", { key: '
|
|
26
|
+
return (h("vertex-viewer-toolbar", { key: '58781d25dbddb4e75f5be56d5ab0d9c2c232aee1', placement: this.placement, direction: this.direction }, h("vertex-viewer-toolbar-group", { key: '3c6f854f20b29bac33318c5aca11647f6f0c7396', class: "group", direction: this.direction, "data-direction": this.direction }, h("vertex-viewer-button", { key: '3924e02adb45e4117b083d626631e9ebcf2c2d87', class: "group-item btn", "data-testid": "fit-all-btn", onClick: () => this.viewAll() }, h("vertex-viewer-icon", { key: '4d336374e36dec5e7841cdc984773e4612282af8', class: "icon", name: "fit-all", size: "md" })))));
|
|
27
27
|
}
|
|
28
28
|
async viewAll() {
|
|
29
29
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewer-default-toolbar.js","sourceRoot":"","sources":["../../../../../src/components/viewer-default-toolbar/viewer-default-toolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAUnD,MAAM,OAAO,oBAAoB;IALjC;QAcE;;WAEG;QAEI,cAAS,GAA2B,eAAe,CAAC;QAE3D;;WAEG;QAEI,cAAS,GAAgC,YAAY,CAAC;QAE7D;;;WAGG;QAEI,uBAAkB,GAAG,KAAK,CAAC;QAElC;;WAEG;QAEI,gBAAW,GAAG,IAAI,CAAC;KAgC3B;IA9BQ,MAAM;QACX,OAAO,CACL,8EACE,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YAEzB,oFACE,KAAK,EAAC,OAAO,EACb,SAAS,EAAE,IAAI,CAAC,SAAS,oBACT,IAAI,CAAC,SAAS;gBAE9B,6EACE,KAAK,EAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"viewer-default-toolbar.js","sourceRoot":"","sources":["../../../../../src/components/viewer-default-toolbar/viewer-default-toolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAUnD,MAAM,OAAO,oBAAoB;IALjC;QAcE;;WAEG;QAEI,cAAS,GAA2B,eAAe,CAAC;QAE3D;;WAEG;QAEI,cAAS,GAAgC,YAAY,CAAC;QAE7D;;;WAGG;QAEI,uBAAkB,GAAG,KAAK,CAAC;QAElC;;WAEG;QAEI,gBAAW,GAAG,IAAI,CAAC;KAgC3B;IA9BQ,MAAM;QACX,OAAO,CACL,8EACE,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YAEzB,oFACE,KAAK,EAAC,OAAO,EACb,SAAS,EAAE,IAAI,CAAC,SAAS,oBACT,IAAI,CAAC,SAAS;gBAE9B,6EACE,KAAK,EAAC,gBAAgB,iBACV,aAAa,EACzB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;oBAE7B,2EAAoB,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,GAAG,CACvC,CACK,CACR,CACzB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,OAAO;;QACnB,MAAM,KAAK,GAAG,MAAM,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK,EAAE,CAAA,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB;YACvC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAClD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Prop } from '@stencil/core';\n\nimport { ViewerToolbarPlacement } from '../viewer-toolbar/types';\nimport { ViewerToolbarGroupDirection } from '../viewer-toolbar-group/types';\n\n@Component({\n tag: 'vertex-viewer-default-toolbar',\n styleUrl: 'viewer-default-toolbar.css',\n shadow: true,\n})\nexport class ViewerDefaultToolbar {\n /**\n * An instance of the viewer that operations will be performed on. If\n * contained within a `<vertex-viewer>` element, this property will\n * automatically be wired.\n */\n @Prop()\n public viewer?: HTMLVertexViewerElement;\n\n /**\n * Specifies where the toolbar is positioned.\n */\n @Prop()\n public placement: ViewerToolbarPlacement = 'bottom-center';\n\n /**\n * Specifies the direction that UI elements are placed.\n */\n @Prop()\n public direction: ViewerToolbarGroupDirection = 'horizontal';\n\n /**\n * Indicates whether animations will be used when performing camera\n * operations. Defaults to `true`.\n */\n @Prop()\n public animationsDisabled = false;\n\n /**\n * The duration of animations, in milliseconds. Defaults to `1000`.\n */\n @Prop()\n public animationMs = 1000;\n\n public render(): h.JSX.IntrinsicElements {\n return (\n <vertex-viewer-toolbar\n placement={this.placement}\n direction={this.direction}\n >\n <vertex-viewer-toolbar-group\n class=\"group\"\n direction={this.direction}\n data-direction={this.direction}\n >\n <vertex-viewer-button\n class=\"group-item btn\"\n data-testid=\"fit-all-btn\"\n onClick={() => this.viewAll()}\n >\n <vertex-viewer-icon class=\"icon\" name=\"fit-all\" size=\"md\" />\n </vertex-viewer-button>\n </vertex-viewer-toolbar-group>\n </vertex-viewer-toolbar>\n );\n }\n\n private async viewAll(): Promise<void> {\n const scene = await this.viewer?.scene();\n const animation = this.animationsDisabled\n ? undefined\n : { milliseconds: this.animationMs };\n scene?.camera().viewAll().render({ animation });\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Copyright (c) 2026 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import{t as e,p as i,H as t,d as s,h as n,e as o}from"./p-ZULAHtnQ.js";import{d as l}from"./p-CPk-nchx.js";import"./p-BJuOy00U.js";import{b as d}from"./p-DC86ZXai.js";import{d as r}from"./p-CvJ3Zscf.js";const a=()=>`button{border:none;background:transparent;cursor:pointer;margin:0;padding:0}:host{display:flex;align-items:center;box-sizing:border-box;--scene-tree-cell-background-hover:var(--blue-200);--scene-tree-cell-background-selected:var(--blue-300);--scene-tree-cell-text-positioning:left;--scene-tree-cell-padding:0.25rem 0;font-size:var(--scene-tree-default-font-size, unset);font-family:var(--scene-tree-default-font-family, unset);color:var(--scene-tree-default-font-color, #444444)}:host([is-hovered]){background:var(--scene-tree-cell-background-hover)}:host([is-selected]){background:var(--scene-tree-cell-background-selected)}.wrapper{display:flex;align-items:center;box-sizing:border-box;width:100%;height:100%;padding:var(--scene-tree-cell-padding)}.content{width:100%;text-align:var(--scene-tree-cell-text-positioning);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.column-spacer{width:var(--scene-tree-table-column-gap)}.expand-btn{cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:24px;min-height:24px}:host([is-leaf]) .expand-btn,:host([is-end-item]) .expand-btn{visibility:hidden;cursor:default}.no-shrink{flex-shrink:0}.end-item-btn{cursor:default;display:flex;align-items:center;justify-content:center;min-width:24px;min-height:24px}:host(:not([is-end-item])) .end-item-btn{visibility:hidden;cursor:default}.end-item-icon{width:14px;height:14px;fill:var(--scene-tree-secondary-font-color, var(--neutral-600))}.visibility-btn,.isolate-btn{cursor:pointer;display:flex;align-items:center;justify-content:center;width:20px;height:20px}.icon{width:14px;height:14px;fill:var(--scene-tree-default-font-color, currentColor)}`;const h=i(class e extends t{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.expandToggled=s(this,"expandToggled");this.visibilityToggled=s(this,"visibilityToggled");this.selectionToggled=s(this,"selectionToggled");this.isolatePressed=s(this,"isolatePressed");this.cellLoaded=s(this,"cellLoaded");this.placeholder="--";this.alwaysShowIcons=false;this.hovered=false;this.displayValue=()=>{const e=this.value==null||this.value.trim()===""?this.placeholder:this.value;return e};this.handleCellPointerEnter=()=>{var e,i,t;(e=this.hoverController)===null||e===void 0?void 0:e.setHovered((t=(i=this.node)===null||i===void 0?void 0:i.id)===null||t===void 0?void 0:t.hex)};this.handleCellPointerLeave=()=>{var e;(e=this.hoverController)===null||e===void 0?void 0:e.setHovered(undefined)};this.handleCellPointerUp=e=>{if(!this.isScrolling&&this.node!=null&&this.tree!=null&&this.longPressTimer!=null){if(this.selectionHandler!=null){this.selectionHandler(e,this.node,this.tree)}else{this.performDefaultSelectionOperation(e)}this.selectionToggled.emit({node:this.node,originalEvent:e})}this.clearLongPressTimer()};this.handleCellPointerDown=e=>{this.restartLongPressTimer()};this.createActionPointerUpHandler=e=>i=>{i.preventDefault();i.stopPropagation();d(this.hostEl);e(i)};this.toggleExpansion=async e=>{if(this.tree!=null&&this.node!=null){if(this.expansionHandler!=null){this.expansionHandler(e,this.node,this.tree)}else{await this.performDefaultExpansionOperation(this.node,this.tree)}this.expandToggled.emit({node:this.node,originalEvent:e})}};this.toggleVisibility=async e=>{if(this.tree!=null&&this.node!=null){if(this.visibilityHandler!=null){this.visibilityHandler(e,this.node,this.tree)}else{await this.performDefaultVisibilityOperation(this.node,this.tree)}this.visibilityToggled.emit({node:this.node,originalEvent:e})}};this.isolate=async e=>{if(this.tree!=null&&this.node!=null){if(this.isolateHandler!=null){this.isolateHandler(e,this.node,this.tree)}else{await this.performDefaultIsolateOperation(this.node,this.tree)}this.isolatePressed.emit({node:this.node,originalEvent:e})}};this.performDefaultSelectionOperation=e=>{var i,t,s,n,o,l;if(!e.defaultPrevented&&e.button===0){if((e.ctrlKey||e.metaKey)&&((i=this.node)===null||i===void 0?void 0:i.selected)){(t=this.tree)===null||t===void 0?void 0:t.deselectItem(this.node)}else if((s=this.node)===null||s===void 0?void 0:s.selected){(n=this.tree)===null||n===void 0?void 0:n.selectItem(this.node,{recurseParent:true})}else if(!((o=this.node)===null||o===void 0?void 0:o.selected)){(l=this.tree)===null||l===void 0?void 0:l.selectItem(this.node,{append:e.ctrlKey||e.metaKey,range:e.shiftKey})}}};this.performDefaultVisibilityOperation=async(e,i)=>{await i.toggleItemVisibility(e)};this.performDefaultIsolateOperation=async(e,i)=>{await i.isolateItem(e)};this.performDefaultExpansionOperation=async(e,i)=>{await i.toggleExpandItem(e)}}componentDidLoad(){var e;this.hoverListener=(e=this.hoverController)===null||e===void 0?void 0:e.stateChanged((e=>{var i,t;this.hovered=e===((t=(i=this.node)===null||i===void 0?void 0:i.id)===null||t===void 0?void 0:t.hex)}));this.cellLoaded.emit();this.clearLongPressTimer()}disconnectedCallback(){var e;(e=this.hoverListener)===null||e===void 0?void 0:e.dispose();this.clearLongPressTimer()}componentWillRender(){var e,i,t,s,n,o;this.toggleAttribute("is-hovered",this.hovered);this.toggleAttribute("is-hidden",!((e=this.node)===null||e===void 0?void 0:e.visible));this.toggleAttribute("is-selected",!!((i=this.node)===null||i===void 0?void 0:i.selected));this.toggleAttribute("is-partial",!!((t=this.node)===null||t===void 0?void 0:t.partiallyVisible));this.toggleAttribute("is-leaf",!!((s=this.node)===null||s===void 0?void 0:s.isLeaf));this.toggleAttribute("is-end-item",!!((n=this.node)===null||n===void 0?void 0:n.endItem));this.toggleAttribute("is-filter-hit",!!((o=this.node)===null||o===void 0?void 0:o.filterHit))}render(){var e,i,t,s;const l=this.node==null?{visibility:"hidden"}:undefined;const d=this.getBackgroundColorStyle();const r=this.getEndItemIcon();const a=this.getExpansionIcon();const h=this.getIsolateIcon();const c=this.getVisibilityIcon();const v=this.expandToggle&&!r;const u=r&&!v;return n(o,{key:"703090cacf3d026e220ead0a051d70b186fa056e",onPointerEnter:this.handleCellPointerEnter,onPointerLeave:this.handleCellPointerLeave,onPointerUp:this.handleCellPointerUp,onPointerDown:this.handleCellPointerDown,style:{...l,"background-color":d}},n("div",{key:"25a45f3cebed75a1d0e469cce01e1cabec5450c4",class:"wrapper"},n("div",{key:"7ba2f3c1b9a5551287f6683f87de841f0717e87b",class:"no-shrink"},n("slot",{key:"04bd203d0e034aa4fce3a0b64d24718ab0ba50af",name:"left-gutter"})),v&&n("button",{key:"9dfa16123e24eeb90e208aa0d5936b9bacd9d8f4",class:"expand-btn no-shrink","data-test-id":"expand-"+((e=this.node)===null||e===void 0?void 0:e.name),onPointerUp:this.createActionPointerUpHandler(this.toggleExpansion)},a&&n("vertex-viewer-icon",{key:"dd3c2a86b90d627b3234b76075dafef393418945",class:"icon",name:a,size:"sm"})),u&&n("button",{key:"4ba96f6f5d8c0ec7559698b11bfa798a695f8504",class:"end-item-btn no-shrink","data-test-id":"end-item-"+((i=this.node)===null||i===void 0?void 0:i.name)},r&&n("vertex-viewer-icon",{key:"57f13de85747c6b1534ea0523e48d73b18125524",class:"end-item-icon",name:r,size:"sm"})),n("div",{key:"0757b6b02df6b48a90b8eaedf3755756f64e53c3",class:"content"},this.value!=null&&this.value.trim()!==""?n("slot",null,this.displayValue()):n("slot",{name:"placeholder"},this.placeholder)),this.isolateButton&&n("button",{key:"780fc0d60ddf630f9f2f60579bb9f9d25decf59c",class:"isolate-btn no-shrink","data-test-id":"isolate-btn-"+((t=this.node)===null||t===void 0?void 0:t.name),onPointerUp:this.createActionPointerUpHandler(this.isolate)},h&&n("vertex-viewer-icon",{key:"14c460641f97b7486d5393274a1ac53aad8dc62f",class:"icon",name:"locate",size:"sm"})),this.visibilityToggle&&n("button",{key:"b2455e14dc5325e713e2eab8730c7f5d9526336f",class:"visibility-btn no-shrink","data-test-id":"visibility-btn-"+((s=this.node)===null||s===void 0?void 0:s.name),onPointerUp:this.createActionPointerUpHandler(this.toggleVisibility)},c&&n("vertex-viewer-icon",{key:"2c761416d88693cea84490468680c1d39ed27d36",class:"icon",name:c,size:"sm"})),n("div",{key:"a5728a0c22cea6fea12e3a4b54a4f07e5ccbf768",class:"no-shrink"},n("slot",{key:"76cc87ec6b2f154324de09f261d4337d6c81ae0c",name:"right-gutter"})),!this.visibilityToggle&&!this.isolateButton&&n("div",{key:"477726d5ac236b87eecaa5652f67d65a7c28108f",class:"column-spacer"})))}toggleAttribute(e,i){if(i){this.hostEl.setAttribute(e,"")}else{this.hostEl.removeAttribute(e)}}clearLongPressTimer(){if(this.longPressTimer!=null){window.clearTimeout(this.longPressTimer)}this.longPressTimer=undefined}restartLongPressTimer(){this.clearLongPressTimer();this.longPressTimer=window.setTimeout((()=>{this.clearLongPressTimer()}),l.longPressThreshold)}getBackgroundColorStyle(){var e,i;const t=this.getCssVariableWithFallbacks(`--scene-tree-row-background-color-depth-${(e=this.node)===null||e===void 0?void 0:e.depth}`,"--scene-tree-row-background-color");const s=this.getCssVariableWithFallbacks("--scene-tree-selected-row-background-color","--scene-tree-cell-background-selected");const n=this.getCssVariableWithFallbacks("--scene-tree-hovered-row-background-color","--scene-tree-cell-background-hover");if(!!((i=this.node)===null||i===void 0?void 0:i.selected)){return s}else if(this.hovered){return n}return t}getCssVariableWithFallbacks(e,...i){const t=[...i].reverse();return[...t,e].reduce(((e,i)=>`var(${i}, ${e})`),"unset")}getIsolateIcon(){if(this.hovered||this.alwaysShowIcons){return"locate"}return undefined}getExpansionIcon(){var e,i,t;if(!((e=this.node)===null||e===void 0?void 0:e.isLeaf)&&!((i=this.node)===null||i===void 0?void 0:i.endItem)){return((t=this.node)===null||t===void 0?void 0:t.expanded)?"chevron-down":"chevron-right"}return undefined}getEndItemIcon(){var e,i,t;if(this.endItemIndicator&&((e=this.node)===null||e===void 0?void 0:e.endItem)&&(!((i=this.node)===null||i===void 0?void 0:i.isLeaf)||((t=this.node)===null||t===void 0?void 0:t.filterHit))){return"lock"}return undefined}getVisibilityIcon(){var e,i,t,s,n;if((this.hovered||this.alwaysShowIcons)&&!((e=this.node)===null||e===void 0?void 0:e.partiallyVisible)&&((i=this.node)===null||i===void 0?void 0:i.visible)){return"eye-open"}else if(!((t=this.node)===null||t===void 0?void 0:t.partiallyVisible)&&!((s=this.node)===null||s===void 0?void 0:s.visible)){return"eye-half"}else if((n=this.node)===null||n===void 0?void 0:n.partiallyVisible){return"eye-half-dotted"}return undefined}get hostEl(){return this}static get style(){return a()}},[257,"vertex-scene-tree-table-cell",{node:[16],tree:[16],value:[1],placeholder:[1],alwaysShowIcons:[4,"always-show-icons"],hovered:[1028],isScrolling:[4,"is-scrolling"],expandToggle:[4,"expand-toggle"],endItemIndicator:[4,"end-item-indicator"],visibilityToggle:[4,"visibility-toggle"],isolateButton:[4,"isolate-button"],selectionHandler:[16],visibilityHandler:[16],expansionHandler:[16],isolateHandler:[16],hoverController:[16]}]);function c(){if(typeof customElements==="undefined"){return}const i=["vertex-scene-tree-table-cell","vertex-viewer-icon"];i.forEach((i=>{switch(i){case"vertex-scene-tree-table-cell":if(!customElements.get(e(i))){customElements.define(e(i),h)}break;case"vertex-viewer-icon":if(!customElements.get(e(i))){r()}break}}))}c();const v=h;const u=c;export{v as VertexSceneTreeTableCell,u as defineCustomElement};
|
|
4
|
+
import{t as e,p as i,H as t,d as s,h as n,e as o}from"./p-ZULAHtnQ.js";import{d as l}from"./p-CPk-nchx.js";import"./p-BJuOy00U.js";import{b as r}from"./p-DC86ZXai.js";import{d}from"./p-CvJ3Zscf.js";const a=()=>`button{border:none;background:transparent;cursor:pointer;margin:0;padding:0}:host{display:flex;align-items:center;box-sizing:border-box;--scene-tree-cell-background-hover:var(--blue-200);--scene-tree-cell-background-selected:var(--blue-300);--scene-tree-cell-text-positioning:left;--scene-tree-cell-padding:0.25rem 0;font-size:var(--scene-tree-default-font-size, unset);font-family:var(--scene-tree-default-font-family, unset);color:var(--scene-tree-default-font-color, #444444)}:host([is-hovered]){background:var(--scene-tree-cell-background-hover)}:host([is-selected]){background:var(--scene-tree-cell-background-selected)}.wrapper{display:flex;align-items:center;box-sizing:border-box;width:100%;height:100%;padding:var(--scene-tree-cell-padding)}.content{width:100%;text-align:var(--scene-tree-cell-text-positioning);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.column-spacer{width:var(--scene-tree-table-column-gap)}.expand-btn{cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:24px;min-height:24px}:host([is-leaf]) .expand-btn,:host([is-end-item]) .expand-btn{visibility:hidden;cursor:default}.no-shrink{flex-shrink:0}.end-item-btn{cursor:default;display:flex;align-items:center;justify-content:center;min-width:24px;min-height:24px}:host(:not([is-end-item])) .end-item-btn{visibility:hidden;cursor:default}.end-item-icon{width:14px;height:14px;fill:var(--scene-tree-secondary-font-color, var(--neutral-600))}.visibility-btn,.isolate-btn{cursor:pointer;display:flex;align-items:center;justify-content:center;width:20px;height:20px}.icon{width:14px;height:14px;fill:var(--scene-tree-default-font-color, currentColor)}`;const h=i(class e extends t{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.expandToggled=s(this,"expandToggled");this.visibilityToggled=s(this,"visibilityToggled");this.selectionToggled=s(this,"selectionToggled");this.isolatePressed=s(this,"isolatePressed");this.cellLoaded=s(this,"cellLoaded");this.placeholder="--";this.alwaysShowIcons=false;this.hovered=false;this.displayValue=()=>{const e=this.value==null||this.value.trim()===""?this.placeholder:this.value;return e};this.handleCellPointerEnter=()=>{var e,i,t;(e=this.hoverController)===null||e===void 0?void 0:e.setHovered((t=(i=this.node)===null||i===void 0?void 0:i.id)===null||t===void 0?void 0:t.hex)};this.handleCellPointerLeave=()=>{var e;(e=this.hoverController)===null||e===void 0?void 0:e.setHovered(undefined)};this.handleCellPointerUp=e=>{if(!this.isScrolling&&this.node!=null&&this.tree!=null&&this.longPressTimer!=null){if(this.selectionHandler!=null){this.selectionHandler(e,this.node,this.tree)}else{this.performDefaultSelectionOperation(e)}this.selectionToggled.emit({node:this.node,originalEvent:e})}this.clearLongPressTimer()};this.handleCellPointerDown=e=>{this.restartLongPressTimer()};this.createActionPointerUpHandler=e=>i=>{i.preventDefault();i.stopPropagation();r(this.hostEl);e(i)};this.toggleExpansion=async e=>{if(this.tree!=null&&this.node!=null){if(this.expansionHandler!=null){this.expansionHandler(e,this.node,this.tree)}else{await this.performDefaultExpansionOperation(this.node,this.tree)}this.expandToggled.emit({node:this.node,originalEvent:e})}};this.toggleVisibility=async e=>{if(this.tree!=null&&this.node!=null){if(this.visibilityHandler!=null){this.visibilityHandler(e,this.node,this.tree)}else{await this.performDefaultVisibilityOperation(this.node,this.tree)}this.visibilityToggled.emit({node:this.node,originalEvent:e})}};this.isolate=async e=>{if(this.tree!=null&&this.node!=null){if(this.isolateHandler!=null){this.isolateHandler(e,this.node,this.tree)}else{await this.performDefaultIsolateOperation(this.node,this.tree)}this.isolatePressed.emit({node:this.node,originalEvent:e})}};this.performDefaultSelectionOperation=e=>{var i,t,s,n,o,l;if(!e.defaultPrevented&&e.button===0){if((e.ctrlKey||e.metaKey)&&((i=this.node)===null||i===void 0?void 0:i.selected)){(t=this.tree)===null||t===void 0?void 0:t.deselectItem(this.node)}else if((s=this.node)===null||s===void 0?void 0:s.selected){(n=this.tree)===null||n===void 0?void 0:n.selectItem(this.node,{recurseParent:true})}else if(!((o=this.node)===null||o===void 0?void 0:o.selected)){(l=this.tree)===null||l===void 0?void 0:l.selectItem(this.node,{append:e.ctrlKey||e.metaKey,range:e.shiftKey})}}};this.performDefaultVisibilityOperation=async(e,i)=>{await i.toggleItemVisibility(e)};this.performDefaultIsolateOperation=async(e,i)=>{await i.isolateItem(e)};this.performDefaultExpansionOperation=async(e,i)=>{await i.toggleExpandItem(e)}}componentDidLoad(){var e;this.hoverListener=(e=this.hoverController)===null||e===void 0?void 0:e.stateChanged((e=>{var i,t;this.hovered=e===((t=(i=this.node)===null||i===void 0?void 0:i.id)===null||t===void 0?void 0:t.hex)}));this.cellLoaded.emit();this.clearLongPressTimer()}disconnectedCallback(){var e;(e=this.hoverListener)===null||e===void 0?void 0:e.dispose();this.clearLongPressTimer()}componentWillRender(){var e,i,t,s,n,o;this.toggleAttribute("is-hovered",this.hovered);this.toggleAttribute("is-hidden",!((e=this.node)===null||e===void 0?void 0:e.visible));this.toggleAttribute("is-selected",!!((i=this.node)===null||i===void 0?void 0:i.selected));this.toggleAttribute("is-partial",!!((t=this.node)===null||t===void 0?void 0:t.partiallyVisible));this.toggleAttribute("is-leaf",!!((s=this.node)===null||s===void 0?void 0:s.isLeaf));this.toggleAttribute("is-end-item",!!((n=this.node)===null||n===void 0?void 0:n.endItem));this.toggleAttribute("is-filter-hit",!!((o=this.node)===null||o===void 0?void 0:o.filterHit))}render(){var e,i,t,s;const l=this.node==null?{visibility:"hidden"}:undefined;const r=this.getBackgroundColorStyle();const d=this.getEndItemIcon();const a=this.getExpansionIcon();const h=this.getIsolateIcon();const c=this.getVisibilityIcon();const v=this.expandToggle&&!d;const u=d&&!v;return n(o,{key:"703090cacf3d026e220ead0a051d70b186fa056e",onPointerEnter:this.handleCellPointerEnter,onPointerLeave:this.handleCellPointerLeave,onPointerUp:this.handleCellPointerUp,onPointerDown:this.handleCellPointerDown,style:{...l,"background-color":r}},n("div",{key:"25a45f3cebed75a1d0e469cce01e1cabec5450c4",class:"wrapper"},n("div",{key:"7ba2f3c1b9a5551287f6683f87de841f0717e87b",class:"no-shrink"},n("slot",{key:"04bd203d0e034aa4fce3a0b64d24718ab0ba50af",name:"left-gutter"})),v&&n("button",{key:"ee0ed0a97bdbac298bb1924a2501a7e1705c5875",class:"expand-btn no-shrink","data-testid":"expand-"+((e=this.node)===null||e===void 0?void 0:e.name),onPointerUp:this.createActionPointerUpHandler(this.toggleExpansion)},a&&n("vertex-viewer-icon",{key:"0138a61ceca6200060602fcf5be186d8ef5b8439",class:"icon",name:a,size:"sm"})),u&&n("button",{key:"5f1376b4e28d62273f4f53f8fd61e83400dda8cb",class:"end-item-btn no-shrink","data-testid":"end-item-"+((i=this.node)===null||i===void 0?void 0:i.name)},d&&n("vertex-viewer-icon",{key:"3760b8b0452208116b468bf662659365fa93397b",class:"end-item-icon",name:d,size:"sm"})),n("div",{key:"b6af488cac898cee62c7c68c3ef159259e2029fb",class:"content"},this.value!=null&&this.value.trim()!==""?n("slot",null,this.displayValue()):n("slot",{name:"placeholder"},this.placeholder)),this.isolateButton&&n("button",{key:"c5feec7c3665c3983ec9c3754d2b3904276694ad",class:"isolate-btn no-shrink","data-testid":"isolate-btn-"+((t=this.node)===null||t===void 0?void 0:t.name),onPointerUp:this.createActionPointerUpHandler(this.isolate)},h&&n("vertex-viewer-icon",{key:"daa2a2697cfb21fbbf9ca975374d4108d4faeabb",class:"icon",name:"locate",size:"sm"})),this.visibilityToggle&&n("button",{key:"c3a99abe103595de749195893f7af1955db7e509",class:"visibility-btn no-shrink","data-testid":"visibility-btn-"+((s=this.node)===null||s===void 0?void 0:s.name),onPointerUp:this.createActionPointerUpHandler(this.toggleVisibility)},c&&n("vertex-viewer-icon",{key:"f5cb997438de0d600447a217156748f903293432",class:"icon",name:c,size:"sm"})),n("div",{key:"39c001c9af24fa30c5c42cfa844e9beb373e2ec3",class:"no-shrink"},n("slot",{key:"d412cf2de92b427282c9575a7d0cd505f23650a5",name:"right-gutter"})),!this.visibilityToggle&&!this.isolateButton&&n("div",{key:"e5aced5b74783ab256ab057794346f3bd49050a0",class:"column-spacer"})))}toggleAttribute(e,i){if(i){this.hostEl.setAttribute(e,"")}else{this.hostEl.removeAttribute(e)}}clearLongPressTimer(){if(this.longPressTimer!=null){window.clearTimeout(this.longPressTimer)}this.longPressTimer=undefined}restartLongPressTimer(){this.clearLongPressTimer();this.longPressTimer=window.setTimeout((()=>{this.clearLongPressTimer()}),l.longPressThreshold)}getBackgroundColorStyle(){var e,i;const t=this.getCssVariableWithFallbacks(`--scene-tree-row-background-color-depth-${(e=this.node)===null||e===void 0?void 0:e.depth}`,"--scene-tree-row-background-color");const s=this.getCssVariableWithFallbacks("--scene-tree-selected-row-background-color","--scene-tree-cell-background-selected");const n=this.getCssVariableWithFallbacks("--scene-tree-hovered-row-background-color","--scene-tree-cell-background-hover");if(!!((i=this.node)===null||i===void 0?void 0:i.selected)){return s}else if(this.hovered){return n}return t}getCssVariableWithFallbacks(e,...i){const t=[...i].reverse();return[...t,e].reduce(((e,i)=>`var(${i}, ${e})`),"unset")}getIsolateIcon(){if(this.hovered||this.alwaysShowIcons){return"locate"}return undefined}getExpansionIcon(){var e,i,t;if(!((e=this.node)===null||e===void 0?void 0:e.isLeaf)&&!((i=this.node)===null||i===void 0?void 0:i.endItem)){return((t=this.node)===null||t===void 0?void 0:t.expanded)?"chevron-down":"chevron-right"}return undefined}getEndItemIcon(){var e,i,t;if(this.endItemIndicator&&((e=this.node)===null||e===void 0?void 0:e.endItem)&&(!((i=this.node)===null||i===void 0?void 0:i.isLeaf)||((t=this.node)===null||t===void 0?void 0:t.filterHit))){return"lock"}return undefined}getVisibilityIcon(){var e,i,t,s,n;if((this.hovered||this.alwaysShowIcons)&&!((e=this.node)===null||e===void 0?void 0:e.partiallyVisible)&&((i=this.node)===null||i===void 0?void 0:i.visible)){return"eye-open"}else if(!((t=this.node)===null||t===void 0?void 0:t.partiallyVisible)&&!((s=this.node)===null||s===void 0?void 0:s.visible)){return"eye-half"}else if((n=this.node)===null||n===void 0?void 0:n.partiallyVisible){return"eye-half-dotted"}return undefined}get hostEl(){return this}static get style(){return a()}},[257,"vertex-scene-tree-table-cell",{node:[16],tree:[16],value:[1],placeholder:[1],alwaysShowIcons:[4,"always-show-icons"],hovered:[1028],isScrolling:[4,"is-scrolling"],expandToggle:[4,"expand-toggle"],endItemIndicator:[4,"end-item-indicator"],visibilityToggle:[4,"visibility-toggle"],isolateButton:[4,"isolate-button"],selectionHandler:[16],visibilityHandler:[16],expansionHandler:[16],isolateHandler:[16],hoverController:[16]}]);function c(){if(typeof customElements==="undefined"){return}const i=["vertex-scene-tree-table-cell","vertex-viewer-icon"];i.forEach((i=>{switch(i){case"vertex-scene-tree-table-cell":if(!customElements.get(e(i))){customElements.define(e(i),h)}break;case"vertex-viewer-icon":if(!customElements.get(e(i))){d()}break}}))}c();const v=h;const u=c;export{v as VertexSceneTreeTableCell,u as defineCustomElement};
|
|
5
5
|
//# sourceMappingURL=vertex-scene-tree-table-cell.js.map
|