@oicl/openbridge-webcomponents 0.0.20260411072018 → 0.0.20260414105212

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/ar/building-blocks/poi/poi-base.d.ts.map +1 -1
  2. package/dist/ar/building-blocks/poi/poi-base.js +1 -1
  3. package/dist/ar/building-blocks/poi/poi-base.js.map +1 -1
  4. package/dist/ar/building-blocks/poi-button/poi-button.css.js +27 -37
  5. package/dist/ar/building-blocks/poi-button/poi-button.css.js.map +1 -1
  6. package/dist/ar/building-blocks/poi-button/poi-button.d.ts.map +1 -1
  7. package/dist/ar/building-blocks/poi-button/poi-button.js +11 -5
  8. package/dist/ar/building-blocks/poi-button/poi-button.js.map +1 -1
  9. package/dist/ar/building-blocks/poi-graphic-line/poi-graphic-line.css.js +7 -7
  10. package/dist/ar/building-blocks/poi-graphic-line/poi-graphic-line.d.ts +1 -1
  11. package/dist/ar/building-blocks/poi-graphic-line/poi-graphic-line.d.ts.map +1 -1
  12. package/dist/ar/building-blocks/poi-graphic-line/poi-graphic-line.js +7 -3
  13. package/dist/ar/building-blocks/poi-graphic-line/poi-graphic-line.js.map +1 -1
  14. package/dist/ar/building-blocks/poi-header/poi-header.js +3 -3
  15. package/dist/ar/building-blocks/poi-header/poi-header.js.map +1 -1
  16. package/dist/ar/building-blocks/poi-line/poi-line.css.js +12 -7
  17. package/dist/ar/building-blocks/poi-line/poi-line.css.js.map +1 -1
  18. package/dist/ar/building-blocks/poi-line/poi-line.d.ts +2 -2
  19. package/dist/ar/building-blocks/poi-line/poi-line.d.ts.map +1 -1
  20. package/dist/ar/building-blocks/poi-line/poi-line.js +4 -5
  21. package/dist/ar/building-blocks/poi-line/poi-line.js.map +1 -1
  22. package/dist/ar/building-blocks/poi-object/poi-object.css.js +0 -8
  23. package/dist/ar/building-blocks/poi-object/poi-object.css.js.map +1 -1
  24. package/dist/ar/building-blocks/poi-object/poi-object.d.ts +4 -1
  25. package/dist/ar/building-blocks/poi-object/poi-object.d.ts.map +1 -1
  26. package/dist/ar/building-blocks/poi-object/poi-object.js +19 -1
  27. package/dist/ar/building-blocks/poi-object/poi-object.js.map +1 -1
  28. package/dist/ar/building-blocks/poi-pointer/poi-pointer.css.js +1 -14
  29. package/dist/ar/building-blocks/poi-pointer/poi-pointer.css.js.map +1 -1
  30. package/dist/ar/building-blocks/poi-pointer/poi-pointer.d.ts.map +1 -1
  31. package/dist/ar/building-blocks/poi-pointer/poi-pointer.js +4 -4
  32. package/dist/ar/building-blocks/poi-pointer/poi-pointer.js.map +1 -1
  33. package/dist/ar/building-blocks/poi-selection-frame/poi-selection-frame.css.js +20 -20
  34. package/dist/ar/building-blocks/poi-selection-frame/poi-selection-frame.d.ts +4 -1
  35. package/dist/ar/building-blocks/poi-selection-frame/poi-selection-frame.d.ts.map +1 -1
  36. package/dist/ar/building-blocks/poi-selection-frame/poi-selection-frame.js +33 -4
  37. package/dist/ar/building-blocks/poi-selection-frame/poi-selection-frame.js.map +1 -1
  38. package/dist/ar/building-blocks/ruler-pointer/ruler-pointer.js +1 -1
  39. package/dist/ar/building-blocks/ruler-pointer/ruler-pointer.js.map +1 -1
  40. package/dist/ar/poi-controller/poi-controller.d.ts +1 -1
  41. package/dist/ar/poi-controller/poi-controller.js +1 -1
  42. package/dist/ar/poi-controller/poi-controller.js.map +1 -1
  43. package/dist/ar/poi-group/poi-group.d.ts.map +1 -1
  44. package/dist/ar/poi-group/poi-group.js +1 -1
  45. package/dist/ar/poi-group/poi-group.js.map +1 -1
  46. package/dist/ar/poi-layer/poi-layer.css.js +1 -1
  47. package/dist/ar/poi-layer/poi-layer.d.ts +2 -1
  48. package/dist/ar/poi-layer/poi-layer.d.ts.map +1 -1
  49. package/dist/ar/poi-layer/poi-layer.js +8 -3
  50. package/dist/ar/poi-layer/poi-layer.js.map +1 -1
  51. package/dist/ar/poi-layer-stack/poi-layer-stack.d.ts +2 -1
  52. package/dist/ar/poi-layer-stack/poi-layer-stack.d.ts.map +1 -1
  53. package/dist/ar/poi-layer-stack/poi-layer-stack.js +12 -3
  54. package/dist/ar/poi-layer-stack/poi-layer-stack.js.map +1 -1
  55. package/dist/components/slider/slider.css.js +62 -18
  56. package/dist/components/slider/slider.css.js.map +1 -1
  57. package/dist/components/slider/slider.d.ts +1 -0
  58. package/dist/components/slider/slider.d.ts.map +1 -1
  59. package/dist/components/slider/slider.js +13 -2
  60. package/dist/components/slider/slider.js.map +1 -1
  61. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"poi-base.d.ts","sourceRoot":"","sources":["../../../../src/ar/building-blocks/poi/poi-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"poi-base.d.ts","sourceRoot":"","sources":["../../../../src/ar/building-blocks/poi/poi-base.ts"],"names":[],"mappings":"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"}
@@ -423,7 +423,7 @@ __decorateClass([
423
423
  property({ type: String })
424
424
  ], ObcPoiBase.prototype, "type");
425
425
  __decorateClass([
426
- property({ type: String, reflect: true })
426
+ property({ type: String })
427
427
  ], ObcPoiBase.prototype, "value");
428
428
  __decorateClass([
429
429
  property({ type: String })
@@ -1 +1 @@
1
- {"version":3,"file":"poi-base.js","sources":["../../../../src/ar/building-blocks/poi/poi-base.ts"],"sourcesContent":["import {LitElement, TemplateResult, html, unsafeCSS} from 'lit';\nimport {property} from 'lit/decorators.js';\nimport componentStyle from './poi-base.css?inline';\nimport './poi.js';\nimport {\n ObcPoiButtonType,\n ObcPoiButtonDataItem,\n} from '../poi-button/poi-button.js';\nimport {ObcPoiHeaderState} from '../poi-header/poi-header.js';\nimport {ObcPoiState, ObcPoiType, ObcPoiValue} from './poi.js';\nimport {\n ObcPoiPointerState,\n ObcPoiPointerType,\n} from '../poi-pointer/poi-pointer.js';\nimport {POI_ATTR, Poi, PoiDataVisualRectPreference} from './poi.js';\nexport {ObcPoiValue as PoiBaseValue};\nexport {PoiDataVisualRectPreference as PoiBaseVisualRectPreference};\n\n/** @internal */\ntype VisualElementPreference =\n | PoiDataVisualRectPreference.Group\n | PoiDataVisualRectPreference.Anchor\n | PoiDataVisualRectPreference.Size;\n\nfunction stripWhitespaceTextNodes(el: Element): void {\n for (const node of Array.from(el.childNodes)) {\n if (\n node.nodeType === Node.TEXT_NODE &&\n (node.textContent ?? '').trim() === ''\n ) {\n node.remove();\n }\n }\n}\n\nconst X_FILTER_CUTOFF_HZ = 16;\nconst X_FILTER_DEADBAND_PX = 0.1;\nconst X_MOVING_HINT_MS = 120;\nconst VALID_POI_TYPES = new Set(Object.values(ObcPoiType));\nconst VALID_POI_STATES = new Set(Object.values(ObcPoiState));\n\n/**\n * Shared base class for top-level POI variant components (`obc-poi-data`,\n * `obc-poi-aton`, `obc-poi-vessel`).\n *\n * Implements `Poi` and contains all positioning, X-filter,\n * layout-change dispatch, and visual-query logic so that each variant\n * only needs to override `renderContent()` and `getVisualNodes()`.\n */\nexport class ObcPoiBase extends LitElement implements Poi {\n private headerObserver?: MutationObserver;\n\n override connectedCallback() {\n stripWhitespaceTextNodes(this);\n super.connectedCallback();\n this.setAttribute(POI_ATTR, '');\n this.setupHeaderObserver();\n }\n\n /* ---------- POI marker properties ---------- */\n\n @property({type: String}) type: ObcPoiType = ObcPoiType.Line;\n @property({type: String, reflect: true}) value: ObcPoiValue =\n ObcPoiValue.Unchecked;\n @property({type: String}) state: ObcPoiState = ObcPoiState.Enabled;\n @property({type: Boolean}) selected = false;\n @property({type: String, attribute: 'button-type'})\n buttonType = ObcPoiButtonType.Button;\n @property({type: Boolean, attribute: 'overlap-opaque'})\n overlapOpaque = false;\n @property({attribute: false})\n data: ObcPoiButtonDataItem[] = [];\n @property({type: Boolean, attribute: 'has-header'}) hasHeader = false;\n @property({type: String, attribute: 'header-content'}) headerContent = '';\n @property({type: Boolean}) hasPointer = false;\n @property({type: String, attribute: 'pointer-type'})\n pointerType: ObcPoiPointerType | null = null;\n @property({type: String, attribute: 'pointer-state'})\n pointerState: ObcPoiPointerState | null = null;\n @property({type: Number}) relativeDirection = 0;\n\n /* ---------- Poi — position ---------- */\n\n @property({type: Number}) x = 0;\n @property({type: Number}) y = 192;\n @property({type: Number, attribute: 'button-y'}) buttonY: number | null =\n null;\n @property({type: Boolean, attribute: 'fixed-target'}) fixedTarget = false;\n @property({type: Number, attribute: 'button-offset-x'}) buttonOffsetX = 0;\n @property({type: Number, attribute: 'target-offset-x'}) targetOffsetX = 0;\n @property({type: Number, attribute: 'box-width'}) boxWidth: number | null =\n null;\n @property({type: Number, attribute: 'box-height'}) boxHeight: number | null =\n null;\n @property({type: Number, attribute: 'line-compensation-y'})\n lineCompensationY = 0;\n @property({type: Number, attribute: 'outside-angle'}) outsideAngle = 315;\n @property({type: Boolean, attribute: 'animate-position'})\n animatePosition = false;\n\n /* ---------- X-filter state ---------- */\n\n private filteredX = 0;\n private xFilterTarget = 0;\n private xFilterInitialized = false;\n private lastXFilterTimestampMs = 0;\n private xFilterRaf = 0;\n private xMovingHintTimeout: number | null = null;\n\n /* ---------- Layout change ---------- */\n\n private dispatchLayoutChange() {\n this.dispatchEvent(\n new CustomEvent('obc-poi-data-layout-change', {\n bubbles: true,\n composed: true,\n })\n );\n }\n\n /* ---------- X filter (low-pass) ---------- */\n\n private stepXFilter = (nowMs: number) => {\n this.xFilterRaf = 0;\n if (!this.isConnected || !this.xFilterInitialized) {\n return;\n }\n\n const dtSeconds =\n this.lastXFilterTimestampMs > 0\n ? Math.min(\n 0.25,\n Math.max(1 / 120, (nowMs - this.lastXFilterTimestampMs) / 1000)\n )\n : 1 / 60;\n this.lastXFilterTimestampMs = nowMs;\n\n const alpha = 1 - Math.exp(-2 * Math.PI * X_FILTER_CUTOFF_HZ * dtSeconds);\n const delta = this.xFilterTarget - this.filteredX;\n const nextX =\n Math.abs(delta) <= X_FILTER_DEADBAND_PX\n ? this.xFilterTarget\n : this.filteredX + delta * alpha;\n const changed = Math.abs(nextX - this.filteredX) > 1e-6;\n this.filteredX = nextX;\n if (changed) {\n this.style.setProperty('--obc-poi-data-x', `${this.filteredX}px`);\n this.dispatchLayoutChange();\n }\n\n const settled =\n Math.abs(this.xFilterTarget - this.filteredX) <= X_FILTER_DEADBAND_PX;\n\n if (settled) {\n this.filteredX = this.xFilterTarget;\n this.style.setProperty('--obc-poi-data-x', `${this.filteredX}px`);\n this.lastXFilterTimestampMs = 0;\n this.markXMoving();\n return;\n }\n\n this.markXMoving();\n this.xFilterRaf = requestAnimationFrame(this.stepXFilter);\n };\n\n private syncXFilterTarget(nextX: number) {\n this.xFilterTarget = nextX;\n\n if (!this.xFilterInitialized) {\n this.xFilterInitialized = true;\n this.filteredX = nextX;\n this.style.setProperty('--obc-poi-data-x', `${this.filteredX}px`);\n this.markXMoving();\n return;\n }\n\n if (Math.abs(nextX - this.filteredX) <= X_FILTER_DEADBAND_PX) {\n this.filteredX = this.xFilterTarget;\n this.style.setProperty('--obc-poi-data-x', `${this.filteredX}px`);\n if (this.xFilterRaf) {\n cancelAnimationFrame(this.xFilterRaf);\n this.xFilterRaf = 0;\n }\n this.lastXFilterTimestampMs = 0;\n this.markXMoving();\n return;\n }\n\n if (!this.xFilterRaf) {\n this.lastXFilterTimestampMs = 0;\n this.markXMoving();\n this.xFilterRaf = requestAnimationFrame(this.stepXFilter);\n }\n }\n\n private markXMoving() {\n this.setAttribute('data-x-moving', 'true');\n if (this.xMovingHintTimeout !== null) {\n window.clearTimeout(this.xMovingHintTimeout);\n }\n this.xMovingHintTimeout = window.setTimeout(() => {\n this.removeAttribute('data-x-moving');\n this.xMovingHintTimeout = null;\n }, X_MOVING_HINT_MS);\n }\n\n /* ---------- Lifecycle ---------- */\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.headerObserver?.disconnect();\n this.headerObserver = undefined;\n if (this.xFilterRaf) {\n cancelAnimationFrame(this.xFilterRaf);\n this.xFilterRaf = 0;\n }\n this.lastXFilterTimestampMs = 0;\n if (this.xMovingHintTimeout !== null) {\n window.clearTimeout(this.xMovingHintTimeout);\n this.xMovingHintTimeout = null;\n }\n }\n\n private setupHeaderObserver() {\n this.headerObserver?.disconnect();\n this.headerObserver = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.type === 'childList') {\n this.syncHeaderContent();\n this.syncHeaderState();\n return;\n }\n if (\n mutation.type === 'attributes' &&\n mutation.target instanceof HTMLElement &&\n mutation.target.getAttribute('slot') === 'header'\n ) {\n this.syncHeaderContent();\n this.syncHeaderState();\n return;\n }\n }\n });\n this.headerObserver.observe(this, {\n childList: true,\n attributes: true,\n attributeFilter: ['slot'],\n });\n }\n\n override updated(changedProperties: Map<string, unknown>) {\n if (changedProperties.has('x')) {\n this.syncXFilterTarget(Number.isFinite(this.x) ? this.x : 0);\n }\n if (\n changedProperties.has('buttonY') ||\n changedProperties.has('y') ||\n changedProperties.has('fixedTarget') ||\n changedProperties.has('lineCompensationY') ||\n changedProperties.has('selected') ||\n changedProperties.has('type')\n ) {\n this.updatePosition();\n }\n if (\n changedProperties.has('x') ||\n changedProperties.has('buttonY') ||\n changedProperties.has('y') ||\n changedProperties.has('buttonOffsetX') ||\n changedProperties.has('targetOffsetX') ||\n changedProperties.has('lineCompensationY') ||\n changedProperties.has('fixedTarget') ||\n changedProperties.has('selected') ||\n changedProperties.has('type')\n ) {\n this.dispatchLayoutChange();\n }\n this.syncHeaderContent();\n this.syncHeaderState();\n }\n\n protected override firstUpdated(_changedProperties: Map<string, unknown>) {\n this.syncHeaderContent();\n this.syncHeaderState();\n }\n\n /* ---------- Vertical positioning ---------- */\n\n private updatePosition() {\n if (this.fixedTarget) {\n if (typeof this.buttonY === 'number' && Number.isFinite(this.buttonY)) {\n this.style.top = `${this.buttonY - this.effectiveLineLength}px`;\n } else {\n this.style.removeProperty('top');\n }\n } else if (\n typeof this.buttonY === 'number' &&\n Number.isFinite(this.buttonY)\n ) {\n this.style.top = `${this.buttonY}px`;\n } else {\n this.style.removeProperty('top');\n }\n }\n\n protected get selectedVerticalOffset(): number {\n if (!this.selected) {\n return 0;\n }\n const offset = getComputedStyle(this).getPropertyValue(\n '--obc-poi-target-selected-vertical-offset'\n );\n const parsed = Number.parseFloat(offset);\n return Number.isFinite(parsed) ? parsed : 0;\n }\n\n protected get layerVerticalOffset(): number {\n const offset = getComputedStyle(this).getPropertyValue(\n '--obc-poi-target-layer-vertical-offset'\n );\n const parsed = Number.parseFloat(offset);\n return Number.isFinite(parsed) ? parsed : 0;\n }\n\n protected get resolvedPoiType(): ObcPoiType {\n return VALID_POI_TYPES.has(this.type as ObcPoiType)\n ? (this.type as ObcPoiType)\n : ObcPoiType.Line;\n }\n\n protected get resolvedPoiState(): ObcPoiState {\n return VALID_POI_STATES.has(this.state as ObcPoiState)\n ? (this.state as ObcPoiState)\n : ObcPoiState.Enabled;\n }\n\n /* ---------- Poi — visual query ---------- */\n\n /**\n * Override in each variant to query the correct inner component tag names.\n * Returns the poi wrapper element and poi-button element from the shadow DOM.\n */\n protected getVisualNodes(): {\n poi: HTMLElement | null;\n button: HTMLElement | null;\n wrapper: HTMLElement | null;\n buttonWrapper: HTMLElement | null;\n } {\n return this.queryVisualNodes('obc-poi', 'obc-poi-button');\n }\n\n /**\n * Helper for common `getVisualNodes()` pattern: query poi tag in own shadow,\n * then button tag. When the button is slotted into poi (aton/vessel variants),\n * it lives in this variant's shadow root. When using the fallback (data variant),\n * it lives inside poi's shadow root.\n */\n protected queryVisualNodes(poiTag: string, buttonTag: string) {\n const poi = this.shadowRoot?.querySelector(poiTag) as HTMLElement | null;\n const button = (this.shadowRoot?.querySelector(buttonTag) ??\n poi?.shadowRoot?.querySelector(buttonTag)) as HTMLElement | null;\n const buttonShadow = button?.shadowRoot ?? null;\n const buttonWrapper = buttonShadow?.querySelector(\n '.button-wrapper'\n ) as HTMLElement | null;\n const wrapper = buttonShadow?.querySelector(\n '.wrapper'\n ) as HTMLElement | null;\n return {poi, button, wrapper, buttonWrapper};\n }\n\n public getVisualRect(\n preference: PoiDataVisualRectPreference = PoiDataVisualRectPreference.Largest\n ): DOMRect {\n const {poi, button, wrapper, buttonWrapper} = this.getVisualNodes();\n const candidates = [wrapper, buttonWrapper, button, poi].filter(\n (element): element is HTMLElement => !!element\n );\n\n if (preference === PoiDataVisualRectPreference.Group) {\n const hasDataWrapper = wrapper?.classList.contains('has-data') ?? false;\n return (\n (hasDataWrapper ? wrapper?.getBoundingClientRect() : null) ??\n buttonWrapper?.getBoundingClientRect() ??\n wrapper?.getBoundingClientRect() ??\n button?.getBoundingClientRect() ??\n poi?.getBoundingClientRect() ??\n this.getBoundingClientRect()\n );\n }\n\n if (preference === PoiDataVisualRectPreference.Anchor) {\n return (\n buttonWrapper?.getBoundingClientRect() ??\n button?.getBoundingClientRect() ??\n wrapper?.getBoundingClientRect() ??\n poi?.getBoundingClientRect() ??\n this.getBoundingClientRect()\n );\n }\n\n if (preference === PoiDataVisualRectPreference.Size) {\n return (\n wrapper?.getBoundingClientRect() ??\n buttonWrapper?.getBoundingClientRect() ??\n button?.getBoundingClientRect() ??\n poi?.getBoundingClientRect() ??\n this.getBoundingClientRect()\n );\n }\n\n if (candidates.length === 0) {\n return this.getBoundingClientRect();\n }\n\n const candidateRects = candidates.map((element) =>\n element.getBoundingClientRect()\n );\n return candidateRects.reduce((best, rect) =>\n rect.height > best.height ? rect : best\n );\n }\n\n public getVisualElement(\n preference: VisualElementPreference = PoiDataVisualRectPreference.Size\n ): HTMLElement {\n const {poi, button, wrapper, buttonWrapper} = this.getVisualNodes();\n\n if (preference === PoiDataVisualRectPreference.Group) {\n const hasDataWrapper = wrapper?.classList.contains('has-data') ?? false;\n return (\n (hasDataWrapper ? wrapper : null) ??\n buttonWrapper ??\n wrapper ??\n button ??\n poi ??\n this\n );\n }\n\n if (preference === PoiDataVisualRectPreference.Anchor) {\n return buttonWrapper ?? button ?? wrapper ?? poi ?? this;\n }\n\n return wrapper ?? buttonWrapper ?? button ?? poi ?? this;\n }\n\n public getPointerElement(): HTMLElement | null {\n const {poi} = this.getVisualNodes();\n return (\n (poi?.shadowRoot?.querySelector(\n 'obc-poi-pointer.pointer'\n ) as HTMLElement | null) ?? null\n );\n }\n\n /* ---------- Render helpers ---------- */\n\n /** Computed effective line length accounting for compensation and vertical offsets. */\n protected get effectiveLineLength(): number {\n const resolvedPoiType = this.resolvedPoiType;\n const lineLength = Number.isFinite(this.y) ? this.y : 0;\n const lineCompensation = Number.isFinite(this.lineCompensationY)\n ? this.lineCompensationY\n : 0;\n const totalVerticalOffset =\n this.selectedVerticalOffset + this.layerVerticalOffset;\n return resolvedPoiType === ObcPoiType.Line ||\n resolvedPoiType === ObcPoiType.Offset\n ? lineLength + lineCompensation + totalVerticalOffset\n : lineLength;\n }\n\n /** Computed effective local button Y offset. */\n protected get effectiveLocalButtonY(): number {\n const totalVerticalOffset =\n this.selectedVerticalOffset + this.layerVerticalOffset;\n return -totalVerticalOffset;\n }\n\n /**\n * Override in each variant to render the button slot content\n * placed inside `<obc-poi>`. The base class provides the outer\n * `<obc-poi>` wrapper with all shared property bindings.\n */\n protected renderButtonSlot(): TemplateResult {\n return html`\n <obc-poi-button\n slot=\"button\"\n exportparts=\"icon\"\n .relativeDirection=${this.relativeDirection}\n .selected=${this.selected}\n .hasHeader=${this.hasHeader}\n .headerContent=${this.headerContent}\n .state=${this.resolvedPoiState}\n .value=${this.value}\n .overlapOpaque=${this.overlapOpaque}\n .type=${this.buttonType}\n .data=${this.data}\n >\n <slot></slot>\n </obc-poi-button>\n `;\n }\n\n protected get resolvedHeaderState(): ObcPoiHeaderState {\n switch (this.resolvedPoiState) {\n case ObcPoiState.Caution:\n return ObcPoiHeaderState.Caution;\n case ObcPoiState.Warning:\n return ObcPoiHeaderState.Warning;\n case ObcPoiState.Alarm:\n return ObcPoiHeaderState.Alarm;\n case ObcPoiState.Enabled:\n default:\n return this.selected\n ? ObcPoiHeaderState.Selected\n : ObcPoiHeaderState.Enabled;\n }\n }\n\n private syncHeaderContent() {\n const headerChildren = Array.from(this.children).filter(\n (child): child is HTMLElement =>\n child instanceof HTMLElement && child.getAttribute('slot') === 'header'\n );\n\n if (headerChildren.length === 0 && !this.hasHeader) {\n return;\n }\n\n if (\n headerChildren.length > 0 &&\n !this.hasHeader &&\n this.closest('obc-poi-layer-stack') === null\n ) {\n this.hasHeader = true;\n }\n\n const target = (this.shadowRoot?.querySelector('[slot=\"button\"]') ??\n this.shadowRoot?.querySelector('obc-poi')) as HTMLElement | null;\n if (!target) {\n return;\n }\n\n for (const child of headerChildren) {\n if (child.parentElement !== target) {\n target.appendChild(child);\n }\n this.applyHeaderState(child);\n }\n }\n\n private applyHeaderState(root: ParentNode) {\n const headers = [\n ...(root instanceof Element && root.matches('obc-poi-header')\n ? [root]\n : []),\n ...root.querySelectorAll('obc-poi-header'),\n ] as HTMLElement[];\n\n for (const header of headers) {\n (header as {state?: ObcPoiHeaderState}).state = this.resolvedHeaderState;\n header.setAttribute('state', this.resolvedHeaderState);\n }\n }\n\n private syncHeaderState() {\n this.applyHeaderState(this.renderRoot);\n }\n\n override render() {\n return html`\n <obc-poi\n exportparts=\"icon\"\n .type=${this.resolvedPoiType}\n .value=${this.value}\n .state=${this.resolvedPoiState}\n .x=${0}\n .y=${this.effectiveLineLength}\n .buttonY=${this.effectiveLocalButtonY}\n .fixedTarget=${false}\n .outsideAngle=${this.outsideAngle}\n .hasPointer=${this.hasPointer}\n .hasHeader=${this.hasHeader}\n .headerContent=${this.headerContent}\n .animatePosition=${this.animatePosition}\n .relativeDirection=${this.relativeDirection}\n .buttonType=${this.buttonType}\n .overlapOpaque=${this.overlapOpaque}\n .pointerType=${this.pointerType}\n .pointerState=${this.pointerState}\n .selected=${this.selected}\n .data=${this.data}\n .buttonOffsetX=${this.buttonOffsetX}\n .targetOffsetX=${this.targetOffsetX}\n .boxWidth=${this.boxWidth}\n .boxHeight=${this.boxHeight}\n >\n ${this.renderButtonSlot()}\n </obc-poi>\n `;\n }\n\n static override styles = [unsafeCSS(componentStyle)];\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"poi-base.js","sources":["../../../../src/ar/building-blocks/poi/poi-base.ts"],"sourcesContent":["import {LitElement, TemplateResult, html, unsafeCSS} from 'lit';\nimport {property} from 'lit/decorators.js';\nimport componentStyle from './poi-base.css?inline';\nimport './poi.js';\nimport {\n ObcPoiButtonType,\n ObcPoiButtonDataItem,\n} from '../poi-button/poi-button.js';\nimport {ObcPoiHeaderState} from '../poi-header/poi-header.js';\nimport {ObcPoiState, ObcPoiType, ObcPoiValue} from './poi.js';\nimport {\n ObcPoiPointerState,\n ObcPoiPointerType,\n} from '../poi-pointer/poi-pointer.js';\nimport {POI_ATTR, Poi, PoiDataVisualRectPreference} from './poi.js';\nexport {ObcPoiValue as PoiBaseValue};\nexport {PoiDataVisualRectPreference as PoiBaseVisualRectPreference};\n\n/** @internal */\ntype VisualElementPreference =\n | PoiDataVisualRectPreference.Group\n | PoiDataVisualRectPreference.Anchor\n | PoiDataVisualRectPreference.Size;\n\nfunction stripWhitespaceTextNodes(el: Element): void {\n for (const node of Array.from(el.childNodes)) {\n if (\n node.nodeType === Node.TEXT_NODE &&\n (node.textContent ?? '').trim() === ''\n ) {\n node.remove();\n }\n }\n}\n\nconst X_FILTER_CUTOFF_HZ = 16;\nconst X_FILTER_DEADBAND_PX = 0.1;\nconst X_MOVING_HINT_MS = 120;\nconst VALID_POI_TYPES = new Set(Object.values(ObcPoiType));\nconst VALID_POI_STATES = new Set(Object.values(ObcPoiState));\n\n/**\n * Shared base class for top-level POI variant components (`obc-poi-data`,\n * `obc-poi-aton`, `obc-poi-vessel`).\n *\n * Implements `Poi` and contains all positioning, X-filter,\n * layout-change dispatch, and visual-query logic so that each variant\n * only needs to override `renderContent()` and `getVisualNodes()`.\n */\nexport class ObcPoiBase extends LitElement implements Poi {\n private headerObserver?: MutationObserver;\n\n override connectedCallback() {\n stripWhitespaceTextNodes(this);\n super.connectedCallback();\n this.setAttribute(POI_ATTR, '');\n this.setupHeaderObserver();\n }\n\n /* ---------- POI marker properties ---------- */\n\n @property({type: String}) type: ObcPoiType = ObcPoiType.Line;\n @property({type: String}) value: ObcPoiValue = ObcPoiValue.Unchecked;\n @property({type: String}) state: ObcPoiState = ObcPoiState.Enabled;\n @property({type: Boolean}) selected = false;\n @property({type: String, attribute: 'button-type'})\n buttonType = ObcPoiButtonType.Button;\n @property({type: Boolean, attribute: 'overlap-opaque'})\n overlapOpaque = false;\n @property({attribute: false})\n data: ObcPoiButtonDataItem[] = [];\n @property({type: Boolean, attribute: 'has-header'}) hasHeader = false;\n @property({type: String, attribute: 'header-content'}) headerContent = '';\n @property({type: Boolean}) hasPointer = false;\n @property({type: String, attribute: 'pointer-type'})\n pointerType: ObcPoiPointerType | null = null;\n @property({type: String, attribute: 'pointer-state'})\n pointerState: ObcPoiPointerState | null = null;\n @property({type: Number}) relativeDirection = 0;\n\n /* ---------- Poi — position ---------- */\n\n @property({type: Number}) x = 0;\n @property({type: Number}) y = 192;\n @property({type: Number, attribute: 'button-y'}) buttonY: number | null =\n null;\n @property({type: Boolean, attribute: 'fixed-target'}) fixedTarget = false;\n @property({type: Number, attribute: 'button-offset-x'}) buttonOffsetX = 0;\n @property({type: Number, attribute: 'target-offset-x'}) targetOffsetX = 0;\n @property({type: Number, attribute: 'box-width'}) boxWidth: number | null =\n null;\n @property({type: Number, attribute: 'box-height'}) boxHeight: number | null =\n null;\n @property({type: Number, attribute: 'line-compensation-y'})\n lineCompensationY = 0;\n @property({type: Number, attribute: 'outside-angle'}) outsideAngle = 315;\n @property({type: Boolean, attribute: 'animate-position'})\n animatePosition = false;\n\n /* ---------- X-filter state ---------- */\n\n private filteredX = 0;\n private xFilterTarget = 0;\n private xFilterInitialized = false;\n private lastXFilterTimestampMs = 0;\n private xFilterRaf = 0;\n private xMovingHintTimeout: number | null = null;\n\n /* ---------- Layout change ---------- */\n\n private dispatchLayoutChange() {\n this.dispatchEvent(\n new CustomEvent('obc-poi-data-layout-change', {\n bubbles: true,\n composed: true,\n })\n );\n }\n\n /* ---------- X filter (low-pass) ---------- */\n\n private stepXFilter = (nowMs: number) => {\n this.xFilterRaf = 0;\n if (!this.isConnected || !this.xFilterInitialized) {\n return;\n }\n\n const dtSeconds =\n this.lastXFilterTimestampMs > 0\n ? Math.min(\n 0.25,\n Math.max(1 / 120, (nowMs - this.lastXFilterTimestampMs) / 1000)\n )\n : 1 / 60;\n this.lastXFilterTimestampMs = nowMs;\n\n const alpha = 1 - Math.exp(-2 * Math.PI * X_FILTER_CUTOFF_HZ * dtSeconds);\n const delta = this.xFilterTarget - this.filteredX;\n const nextX =\n Math.abs(delta) <= X_FILTER_DEADBAND_PX\n ? this.xFilterTarget\n : this.filteredX + delta * alpha;\n const changed = Math.abs(nextX - this.filteredX) > 1e-6;\n this.filteredX = nextX;\n if (changed) {\n this.style.setProperty('--obc-poi-data-x', `${this.filteredX}px`);\n this.dispatchLayoutChange();\n }\n\n const settled =\n Math.abs(this.xFilterTarget - this.filteredX) <= X_FILTER_DEADBAND_PX;\n\n if (settled) {\n this.filteredX = this.xFilterTarget;\n this.style.setProperty('--obc-poi-data-x', `${this.filteredX}px`);\n this.lastXFilterTimestampMs = 0;\n this.markXMoving();\n return;\n }\n\n this.markXMoving();\n this.xFilterRaf = requestAnimationFrame(this.stepXFilter);\n };\n\n private syncXFilterTarget(nextX: number) {\n this.xFilterTarget = nextX;\n\n if (!this.xFilterInitialized) {\n this.xFilterInitialized = true;\n this.filteredX = nextX;\n this.style.setProperty('--obc-poi-data-x', `${this.filteredX}px`);\n this.markXMoving();\n return;\n }\n\n if (Math.abs(nextX - this.filteredX) <= X_FILTER_DEADBAND_PX) {\n this.filteredX = this.xFilterTarget;\n this.style.setProperty('--obc-poi-data-x', `${this.filteredX}px`);\n if (this.xFilterRaf) {\n cancelAnimationFrame(this.xFilterRaf);\n this.xFilterRaf = 0;\n }\n this.lastXFilterTimestampMs = 0;\n this.markXMoving();\n return;\n }\n\n if (!this.xFilterRaf) {\n this.lastXFilterTimestampMs = 0;\n this.markXMoving();\n this.xFilterRaf = requestAnimationFrame(this.stepXFilter);\n }\n }\n\n private markXMoving() {\n this.setAttribute('data-x-moving', 'true');\n if (this.xMovingHintTimeout !== null) {\n window.clearTimeout(this.xMovingHintTimeout);\n }\n this.xMovingHintTimeout = window.setTimeout(() => {\n this.removeAttribute('data-x-moving');\n this.xMovingHintTimeout = null;\n }, X_MOVING_HINT_MS);\n }\n\n /* ---------- Lifecycle ---------- */\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.headerObserver?.disconnect();\n this.headerObserver = undefined;\n if (this.xFilterRaf) {\n cancelAnimationFrame(this.xFilterRaf);\n this.xFilterRaf = 0;\n }\n this.lastXFilterTimestampMs = 0;\n if (this.xMovingHintTimeout !== null) {\n window.clearTimeout(this.xMovingHintTimeout);\n this.xMovingHintTimeout = null;\n }\n }\n\n private setupHeaderObserver() {\n this.headerObserver?.disconnect();\n this.headerObserver = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.type === 'childList') {\n this.syncHeaderContent();\n this.syncHeaderState();\n return;\n }\n if (\n mutation.type === 'attributes' &&\n mutation.target instanceof HTMLElement &&\n mutation.target.getAttribute('slot') === 'header'\n ) {\n this.syncHeaderContent();\n this.syncHeaderState();\n return;\n }\n }\n });\n this.headerObserver.observe(this, {\n childList: true,\n attributes: true,\n attributeFilter: ['slot'],\n });\n }\n\n override updated(changedProperties: Map<string, unknown>) {\n if (changedProperties.has('x')) {\n this.syncXFilterTarget(Number.isFinite(this.x) ? this.x : 0);\n }\n if (\n changedProperties.has('buttonY') ||\n changedProperties.has('y') ||\n changedProperties.has('fixedTarget') ||\n changedProperties.has('lineCompensationY') ||\n changedProperties.has('selected') ||\n changedProperties.has('type')\n ) {\n this.updatePosition();\n }\n if (\n changedProperties.has('x') ||\n changedProperties.has('buttonY') ||\n changedProperties.has('y') ||\n changedProperties.has('buttonOffsetX') ||\n changedProperties.has('targetOffsetX') ||\n changedProperties.has('lineCompensationY') ||\n changedProperties.has('fixedTarget') ||\n changedProperties.has('selected') ||\n changedProperties.has('type')\n ) {\n this.dispatchLayoutChange();\n }\n this.syncHeaderContent();\n this.syncHeaderState();\n }\n\n protected override firstUpdated(_changedProperties: Map<string, unknown>) {\n this.syncHeaderContent();\n this.syncHeaderState();\n }\n\n /* ---------- Vertical positioning ---------- */\n\n private updatePosition() {\n if (this.fixedTarget) {\n if (typeof this.buttonY === 'number' && Number.isFinite(this.buttonY)) {\n this.style.top = `${this.buttonY - this.effectiveLineLength}px`;\n } else {\n this.style.removeProperty('top');\n }\n } else if (\n typeof this.buttonY === 'number' &&\n Number.isFinite(this.buttonY)\n ) {\n this.style.top = `${this.buttonY}px`;\n } else {\n this.style.removeProperty('top');\n }\n }\n\n protected get selectedVerticalOffset(): number {\n if (!this.selected) {\n return 0;\n }\n const offset = getComputedStyle(this).getPropertyValue(\n '--obc-poi-target-selected-vertical-offset'\n );\n const parsed = Number.parseFloat(offset);\n return Number.isFinite(parsed) ? parsed : 0;\n }\n\n protected get layerVerticalOffset(): number {\n const offset = getComputedStyle(this).getPropertyValue(\n '--obc-poi-target-layer-vertical-offset'\n );\n const parsed = Number.parseFloat(offset);\n return Number.isFinite(parsed) ? parsed : 0;\n }\n\n protected get resolvedPoiType(): ObcPoiType {\n return VALID_POI_TYPES.has(this.type as ObcPoiType)\n ? (this.type as ObcPoiType)\n : ObcPoiType.Line;\n }\n\n protected get resolvedPoiState(): ObcPoiState {\n return VALID_POI_STATES.has(this.state as ObcPoiState)\n ? (this.state as ObcPoiState)\n : ObcPoiState.Enabled;\n }\n\n /* ---------- Poi — visual query ---------- */\n\n /**\n * Override in each variant to query the correct inner component tag names.\n * Returns the poi wrapper element and poi-button element from the shadow DOM.\n */\n protected getVisualNodes(): {\n poi: HTMLElement | null;\n button: HTMLElement | null;\n wrapper: HTMLElement | null;\n buttonWrapper: HTMLElement | null;\n } {\n return this.queryVisualNodes('obc-poi', 'obc-poi-button');\n }\n\n /**\n * Helper for common `getVisualNodes()` pattern: query poi tag in own shadow,\n * then button tag. When the button is slotted into poi (aton/vessel variants),\n * it lives in this variant's shadow root. When using the fallback (data variant),\n * it lives inside poi's shadow root.\n */\n protected queryVisualNodes(poiTag: string, buttonTag: string) {\n const poi = this.shadowRoot?.querySelector(poiTag) as HTMLElement | null;\n const button = (this.shadowRoot?.querySelector(buttonTag) ??\n poi?.shadowRoot?.querySelector(buttonTag)) as HTMLElement | null;\n const buttonShadow = button?.shadowRoot ?? null;\n const buttonWrapper = buttonShadow?.querySelector(\n '.button-wrapper'\n ) as HTMLElement | null;\n const wrapper = buttonShadow?.querySelector(\n '.wrapper'\n ) as HTMLElement | null;\n return {poi, button, wrapper, buttonWrapper};\n }\n\n public getVisualRect(\n preference: PoiDataVisualRectPreference = PoiDataVisualRectPreference.Largest\n ): DOMRect {\n const {poi, button, wrapper, buttonWrapper} = this.getVisualNodes();\n const candidates = [wrapper, buttonWrapper, button, poi].filter(\n (element): element is HTMLElement => !!element\n );\n\n if (preference === PoiDataVisualRectPreference.Group) {\n const hasDataWrapper = wrapper?.classList.contains('has-data') ?? false;\n return (\n (hasDataWrapper ? wrapper?.getBoundingClientRect() : null) ??\n buttonWrapper?.getBoundingClientRect() ??\n wrapper?.getBoundingClientRect() ??\n button?.getBoundingClientRect() ??\n poi?.getBoundingClientRect() ??\n this.getBoundingClientRect()\n );\n }\n\n if (preference === PoiDataVisualRectPreference.Anchor) {\n return (\n buttonWrapper?.getBoundingClientRect() ??\n button?.getBoundingClientRect() ??\n wrapper?.getBoundingClientRect() ??\n poi?.getBoundingClientRect() ??\n this.getBoundingClientRect()\n );\n }\n\n if (preference === PoiDataVisualRectPreference.Size) {\n return (\n wrapper?.getBoundingClientRect() ??\n buttonWrapper?.getBoundingClientRect() ??\n button?.getBoundingClientRect() ??\n poi?.getBoundingClientRect() ??\n this.getBoundingClientRect()\n );\n }\n\n if (candidates.length === 0) {\n return this.getBoundingClientRect();\n }\n\n const candidateRects = candidates.map((element) =>\n element.getBoundingClientRect()\n );\n return candidateRects.reduce((best, rect) =>\n rect.height > best.height ? rect : best\n );\n }\n\n public getVisualElement(\n preference: VisualElementPreference = PoiDataVisualRectPreference.Size\n ): HTMLElement {\n const {poi, button, wrapper, buttonWrapper} = this.getVisualNodes();\n\n if (preference === PoiDataVisualRectPreference.Group) {\n const hasDataWrapper = wrapper?.classList.contains('has-data') ?? false;\n return (\n (hasDataWrapper ? wrapper : null) ??\n buttonWrapper ??\n wrapper ??\n button ??\n poi ??\n this\n );\n }\n\n if (preference === PoiDataVisualRectPreference.Anchor) {\n return buttonWrapper ?? button ?? wrapper ?? poi ?? this;\n }\n\n return wrapper ?? buttonWrapper ?? button ?? poi ?? this;\n }\n\n public getPointerElement(): HTMLElement | null {\n const {poi} = this.getVisualNodes();\n return (\n (poi?.shadowRoot?.querySelector(\n 'obc-poi-pointer.pointer'\n ) as HTMLElement | null) ?? null\n );\n }\n\n /* ---------- Render helpers ---------- */\n\n /** Computed effective line length accounting for compensation and vertical offsets. */\n protected get effectiveLineLength(): number {\n const resolvedPoiType = this.resolvedPoiType;\n const lineLength = Number.isFinite(this.y) ? this.y : 0;\n const lineCompensation = Number.isFinite(this.lineCompensationY)\n ? this.lineCompensationY\n : 0;\n const totalVerticalOffset =\n this.selectedVerticalOffset + this.layerVerticalOffset;\n return resolvedPoiType === ObcPoiType.Line ||\n resolvedPoiType === ObcPoiType.Offset\n ? lineLength + lineCompensation + totalVerticalOffset\n : lineLength;\n }\n\n /** Computed effective local button Y offset. */\n protected get effectiveLocalButtonY(): number {\n const totalVerticalOffset =\n this.selectedVerticalOffset + this.layerVerticalOffset;\n return -totalVerticalOffset;\n }\n\n /**\n * Override in each variant to render the button slot content\n * placed inside `<obc-poi>`. The base class provides the outer\n * `<obc-poi>` wrapper with all shared property bindings.\n */\n protected renderButtonSlot(): TemplateResult {\n return html`\n <obc-poi-button\n slot=\"button\"\n exportparts=\"icon\"\n .relativeDirection=${this.relativeDirection}\n .selected=${this.selected}\n .hasHeader=${this.hasHeader}\n .headerContent=${this.headerContent}\n .state=${this.resolvedPoiState}\n .value=${this.value}\n .overlapOpaque=${this.overlapOpaque}\n .type=${this.buttonType}\n .data=${this.data}\n >\n <slot></slot>\n </obc-poi-button>\n `;\n }\n\n protected get resolvedHeaderState(): ObcPoiHeaderState {\n switch (this.resolvedPoiState) {\n case ObcPoiState.Caution:\n return ObcPoiHeaderState.Caution;\n case ObcPoiState.Warning:\n return ObcPoiHeaderState.Warning;\n case ObcPoiState.Alarm:\n return ObcPoiHeaderState.Alarm;\n case ObcPoiState.Enabled:\n default:\n return this.selected\n ? ObcPoiHeaderState.Selected\n : ObcPoiHeaderState.Enabled;\n }\n }\n\n private syncHeaderContent() {\n const headerChildren = Array.from(this.children).filter(\n (child): child is HTMLElement =>\n child instanceof HTMLElement && child.getAttribute('slot') === 'header'\n );\n\n if (headerChildren.length === 0 && !this.hasHeader) {\n return;\n }\n\n if (\n headerChildren.length > 0 &&\n !this.hasHeader &&\n this.closest('obc-poi-layer-stack') === null\n ) {\n this.hasHeader = true;\n }\n\n const target = (this.shadowRoot?.querySelector('[slot=\"button\"]') ??\n this.shadowRoot?.querySelector('obc-poi')) as HTMLElement | null;\n if (!target) {\n return;\n }\n\n for (const child of headerChildren) {\n if (child.parentElement !== target) {\n target.appendChild(child);\n }\n this.applyHeaderState(child);\n }\n }\n\n private applyHeaderState(root: ParentNode) {\n const headers = [\n ...(root instanceof Element && root.matches('obc-poi-header')\n ? [root]\n : []),\n ...root.querySelectorAll('obc-poi-header'),\n ] as HTMLElement[];\n\n for (const header of headers) {\n (header as {state?: ObcPoiHeaderState}).state = this.resolvedHeaderState;\n header.setAttribute('state', this.resolvedHeaderState);\n }\n }\n\n private syncHeaderState() {\n this.applyHeaderState(this.renderRoot);\n }\n\n override render() {\n return html`\n <obc-poi\n exportparts=\"icon\"\n .type=${this.resolvedPoiType}\n .value=${this.value}\n .state=${this.resolvedPoiState}\n .x=${0}\n .y=${this.effectiveLineLength}\n .buttonY=${this.effectiveLocalButtonY}\n .fixedTarget=${false}\n .outsideAngle=${this.outsideAngle}\n .hasPointer=${this.hasPointer}\n .hasHeader=${this.hasHeader}\n .headerContent=${this.headerContent}\n .animatePosition=${this.animatePosition}\n .relativeDirection=${this.relativeDirection}\n .buttonType=${this.buttonType}\n .overlapOpaque=${this.overlapOpaque}\n .pointerType=${this.pointerType}\n .pointerState=${this.pointerState}\n .selected=${this.selected}\n .data=${this.data}\n .buttonOffsetX=${this.buttonOffsetX}\n .targetOffsetX=${this.targetOffsetX}\n .boxWidth=${this.boxWidth}\n .boxHeight=${this.boxHeight}\n >\n ${this.renderButtonSlot()}\n </obc-poi>\n `;\n }\n\n static override styles = [unsafeCSS(componentStyle)];\n}\n"],"names":[],"mappings":"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"}
@@ -25,7 +25,7 @@ const compentStyle = css`
25
25
  --obc-poi-surface-shadow: 0px 2px 6px 0px rgba(0, 0, 0, 0.5);
26
26
  }
27
27
 
28
- :host([overlap-opaque]) {
28
+ .wrapper.overlap-opaque {
29
29
  --obc-poi-overlap-object-bg: #fff;
30
30
  --obc-poi-overlap-object-border: var(--overlay-border-outline-color);
31
31
  --obc-poi-overlap-wrapper-opacity: 1;
@@ -80,14 +80,14 @@ const compentStyle = css`
80
80
 
81
81
  /* Overlap state styles - applied via visual state */
82
82
 
83
- :host([value="overlapped"]) .wrapper {
83
+ .wrapper.value-overlapped {
84
84
  --obc-poi-overlap-elements-opacity: 0;
85
85
  --obc-poi-label-opacity: 0;
86
86
  --obc-poi-label-visibility: hidden;
87
87
  --obc-poi-overlap-pointer-events: none;
88
88
  }
89
89
 
90
- :is(:host([value="overlapped"]) .wrapper) .poi-object {
90
+ .wrapper.value-overlapped .poi-object {
91
91
  --overlay-container-background-color: var(--obc-poi-overlap-object-bg);
92
92
  --overlay-border-outline-color: var(--obc-poi-overlap-object-border);
93
93
  }
@@ -322,8 +322,7 @@ const compentStyle = css`
322
322
  transition: none;
323
323
  }
324
324
 
325
- :host([value="overlapped"]) .wrapper.has-data,
326
- :host(:not([value="overlapped"])) .wrapper.has-data {
325
+ .wrapper.has-data {
327
326
  transition:
328
327
  opacity var(--obc-poi-opacity-transition-duration) ease-out,
329
328
  box-shadow var(--obc-poi-transition-duration) ease-out,
@@ -341,80 +340,71 @@ const compentStyle = css`
341
340
  /* Explicit interaction fallback for POI frame. Keeps behavior even if mixin output changes. */
342
341
 
343
342
  @media (hover: hover) {
344
- :host(:not([value="overlapped"]))
345
- .wrapper:not(.has-data):hover
343
+ .wrapper:not(.value-overlapped):not(.has-data):hover
346
344
  .poi-object::part(background-frame) {
347
345
  background-color: var(--flat-hover-background-color);
348
346
  }
349
347
  }
350
348
 
351
- :host(:not([value="overlapped"]))
352
- .wrapper:not(.has-data):active
349
+ .wrapper:not(.value-overlapped):not(.has-data):active
353
350
  .poi-object::part(background-frame) {
354
351
  background-color: var(--flat-pressed-background-color);
355
352
  }
356
353
 
357
- :host(:not([value="overlapped"]))
358
- .wrapper:not(.has-data):focus-visible
354
+ .wrapper:not(.value-overlapped):not(.has-data):focus-visible
359
355
  .poi-object::part(background-frame) {
360
356
  outline-color: var(--border-focus-color);
361
357
  outline-width: var(--global-size-spacing-border-weight-focusframe);
362
358
  outline-style: solid;
363
359
  }
364
360
 
365
- :host([layout="inline"]) .wrapper {
361
+ .wrapper.layout-inline {
366
362
  transform: translate(-50%, -100%);
367
363
  }
368
364
 
369
365
  /* Overlap alert color styles */
370
366
 
371
- .alert-caution:is(:host([value="overlapped"]) .wrapper) {
367
+ .wrapper.value-overlapped.alert-caution {
372
368
  --overlay-container-background-color: var(--alert-caution-color, #ffdb42);
373
369
  --overlay-border-outline-color: var(--alert-caution-outline-color);
374
370
  }
375
371
 
376
- .alert-caution:is(:host([value="overlapped"]) .wrapper) .poi-object {
372
+ .wrapper.value-overlapped.alert-caution .poi-object {
377
373
  --overlay-container-background-color: var(--alert-caution-color, #ffdb42);
378
374
  --overlay-border-outline-color: var(--alert-caution-outline-color);
379
375
  }
380
376
 
381
- .alert-warning:is(:host([value="overlapped"]) .wrapper) {
377
+ .wrapper.value-overlapped.alert-warning {
382
378
  --overlay-container-background-color: var(--alert-warning-color, #fe9413);
383
379
  --overlay-border-outline-color: var(--alert-warning-outline-color);
384
380
  }
385
381
 
386
- .alert-warning:is(:host([value="overlapped"]) .wrapper) .poi-object {
382
+ .wrapper.value-overlapped.alert-warning .poi-object {
387
383
  --overlay-container-background-color: var(--alert-warning-color, #fe9413);
388
384
  --overlay-border-outline-color: var(--alert-warning-outline-color);
389
385
  }
390
386
 
391
- .alert-alarm:is(:host([value="overlapped"]) .wrapper) {
387
+ .wrapper.value-overlapped.alert-alarm {
392
388
  --overlay-container-background-color: var(--alert-alarm-color, #e30019);
393
389
  --overlay-border-outline-color: var(--alert-alarm-outline-color);
394
390
  }
395
391
 
396
- .alert-alarm:is(:host([value="overlapped"]) .wrapper) .poi-object {
392
+ .wrapper.value-overlapped.alert-alarm .poi-object {
397
393
  --overlay-container-background-color: var(--alert-alarm-color, #e30019);
398
394
  --overlay-border-outline-color: var(--alert-alarm-outline-color);
399
395
  }
400
396
 
401
- :host([value="overlapped"])
402
- .wrapper.alert-caution
403
- .poi-object::part(background-frame) {
397
+ .wrapper.value-overlapped.alert-caution .poi-object::part(background-frame) {
404
398
  background-color: var(--alert-caution-color, #ffdb42);
405
399
  border-color: var(--alert-caution-outline-color);
406
400
  }
407
401
 
408
- :host([value="overlapped"])
409
- .wrapper.alert-warning
410
- .poi-object::part(background-frame) {
402
+ .wrapper.value-overlapped.alert-warning .poi-object::part(background-frame) {
411
403
  background-color: var(--alert-warning-color, #fe9413);
412
404
  border-color: var(--alert-warning-outline-color);
413
405
  }
414
406
 
415
- :host([value="overlapped"])
416
- .wrapper.alert-alarm
417
- .poi-object::part(background-frame) {
407
+ .wrapper.value-overlapped.alert-alarm .poi-object::part(background-frame) {
418
408
  background-color: var(--alert-alarm-color, #e30019);
419
409
  border-color: var(--alert-alarm-outline-color);
420
410
  }
@@ -499,7 +489,7 @@ const compentStyle = css`
499
489
 
500
490
  /* Overlap state for has-data variant - keep layout, hide values */
501
491
 
502
- :host([value="overlapped"]) .wrapper.has-data {
492
+ .wrapper.value-overlapped.has-data {
503
493
  --obc-poi-overlapped-data-bg: var(--overlay-container-background-color);
504
494
  --obc-poi-overlapped-data-border: var(--overlay-border-outline-color);
505
495
  opacity: var(--obc-poi-overlap-data-opacity, 0.6);
@@ -507,48 +497,48 @@ const compentStyle = css`
507
497
  box-shadow: var(--obc-poi-surface-shadow);
508
498
  }
509
499
 
510
- :is(:host([value="overlapped"]) .wrapper.has-data) .button-wrapper {
500
+ .wrapper.value-overlapped.has-data .button-wrapper {
511
501
  visibility: hidden;
512
502
  pointer-events: none;
513
503
  }
514
504
 
515
- :is(:host([value="overlapped"]) .wrapper.has-data) .data-wrapper,:is(:host([value="overlapped"]) .wrapper.has-data) .relation-wrapper,:is(:host([value="overlapped"]) .wrapper.has-data) .button-wrapper .poi-object,:is(:host([value="overlapped"]) .wrapper.has-data) .button-wrapper .selection-frame {
505
+ .wrapper.value-overlapped.has-data .data-wrapper,.wrapper.value-overlapped.has-data .relation-wrapper,.wrapper.value-overlapped.has-data .button-wrapper .poi-object,.wrapper.value-overlapped.has-data .button-wrapper .selection-frame {
516
506
  opacity: 0;
517
507
  pointer-events: none;
518
508
  }
519
509
 
520
- :is(:host([value="overlapped"]) .wrapper.has-data) .poi-object {
510
+ .wrapper.value-overlapped.has-data .poi-object {
521
511
  --overlay-container-background-color: var(--obc-poi-overlapped-data-bg);
522
512
  --overlay-border-outline-color: var(--obc-poi-overlapped-data-border);
523
513
  }
524
514
 
525
- :host([value="overlapped"]) .wrapper:not(.has-data) {
515
+ .wrapper.value-overlapped:not(.has-data) {
526
516
  opacity: var(--obc-poi-overlap-wrapper-opacity, 0.6);
527
517
  }
528
518
 
529
- :host([value="overlapped"]) .wrapper.has-data.alert-caution {
519
+ .wrapper.value-overlapped.has-data.alert-caution {
530
520
  background: var(--alert-caution-color, #ffdb42);
531
521
  border-color: var(--alert-caution-outline-color);
532
522
  }
533
523
 
534
- :host([value="overlapped"]) .wrapper.has-data.alert-warning {
524
+ .wrapper.value-overlapped.has-data.alert-warning {
535
525
  background: var(--alert-warning-color, #fe9413);
536
526
  border-color: var(--alert-warning-outline-color);
537
527
  }
538
528
 
539
- :host([value="overlapped"]) .wrapper.has-data.alert-alarm {
529
+ .wrapper.value-overlapped.has-data.alert-alarm {
540
530
  background: var(--alert-alarm-color, #e30019);
541
531
  border-color: var(--alert-alarm-outline-color);
542
532
  }
543
533
 
544
- :host([value="overlapped"]:not([layout="inline"])) .wrapper.has-data {
534
+ .wrapper.value-overlapped:not(.layout-inline).has-data {
545
535
  width: var(--maneuvering-components-poi-button-touch-target, 48px);
546
536
  min-width: var(--maneuvering-components-poi-button-touch-target, 48px);
547
537
  max-width: var(--maneuvering-components-poi-button-touch-target, 48px);
548
538
  height: 96px;
549
539
  }
550
540
 
551
- :host([layout="inline"][value="overlapped"]) .wrapper.has-data {
541
+ .wrapper.layout-inline.value-overlapped.has-data {
552
542
  padding-top: 0;
553
543
  height: var(--obc-poi-group-overlap-height, auto);
554
544
  transform: translate(
@@ -1 +1 @@
1
- {"version":3,"file":"poi-button.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"poi-button.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"poi-button.d.ts","sourceRoot":"","sources":["../../../../src/ar/building-blocks/poi-button/poi-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAQ,OAAO,EAAY,MAAM,KAAK,CAAC;AAKzD,OAAO,6BAA6B,CAAC;AAErC,OAAO,EACL,iBAAiB,EAEjB,gBAAgB,EACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACzB,MAAM,+CAA+C,CAAC;AACvD,OAAO,+CAA+C,CAAC;AAEvD,oBAAY,gBAAgB;IAC1B,MAAM,WAAW;IACjB,QAAQ,aAAa;CACtB;AAED,oBAAY,kBAAkB;IAC5B,QAAQ,aAAa;IACrB,MAAM,WAAW;CAClB;AAED,oBAAY,iBAAiB;IAC3B,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,oBAAY,oBAAoB;IAC9B,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,UAAU,eAAe;CAC1B;AASD,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACrC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACtC,uBAAuB,GAAE,MAA+C,GACvE,gBAAgB,CAgBlB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,qBACa,YAAa,SAAQ,UAAU;IAChB,iBAAiB,SAAK;IACrB,QAAQ,UAAS;IACH,MAAM,EAAE,kBAAkB,CACrC;IAE9B,SAAS,UAAS;IAElB,KAAK,EAAE,iBAAiB,CAA6B;IAErD,KAAK,EAAE,oBAAoB,CAAkC;IAE7D,aAAa,UAAS;IACI,IAAI,mBAA2B;IAC9B,eAAe,UAAS;IACR,IAAI,EAAE,oBAAoB,EAAE,CAAM;IAClD,WAAW,UAAS;IACQ,aAAa,SAAM;IAC1E,OAAO,CAAC,qBAAqB,CAAC,CAAmB;IAExC,iBAAiB;IAKjB,oBAAoB;IAM7B,OAAO,CAAC,0BAA0B;IA0BlC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,OAAO,KAAK,gBAAgB,GAK3B;IAED,OAAO,KAAK,mBAAmB,GAY9B;IAED,OAAO,KAAK,gBAAgB,GAE3B;IAED,OAAO,KAAK,yBAAyB,GAEpC;IAED,OAAO,CAAC,sBAAsB;IA2B9B,OAAO,CAAC,sBAAsB,CAE5B;cAEiB,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAInE,SAAS,CAAC,YAAY;IAwBtB,SAAS,KAAK,aAAa,IAAI,gBAAgB,CAI9C;IAED,SAAS,KAAK,cAAc,IAAI,iBAAiB,CA6BhD;IAED,SAAS,KAAK,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE7D;IAEQ,MAAM;IAOf,SAAS,CAAC,eAAe;IAqBzB,SAAS,CAAC,YAAY;IAsBtB,SAAS,CAAC,cAAc;IAyCxB,SAAS,KAAK,kBAAkB,IAAI,wBAAwB,CAI3D;IAED,SAAS,KAAK,mBAAmB,IAAI,yBAAyB,CAI7D;IAED,SAAS,CAAC,oBAAoB;IAc9B,OAAgB,MAAM,0BAA2B;CAClD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,YAAY,CAAC;KAChC;CACF"}
1
+ {"version":3,"file":"poi-button.d.ts","sourceRoot":"","sources":["../../../../src/ar/building-blocks/poi-button/poi-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAQ,OAAO,EAAY,MAAM,KAAK,CAAC;AAKzD,OAAO,6BAA6B,CAAC;AAErC,OAAO,EACL,iBAAiB,EAEjB,gBAAgB,EACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACzB,MAAM,+CAA+C,CAAC;AACvD,OAAO,+CAA+C,CAAC;AAEvD,oBAAY,gBAAgB;IAC1B,MAAM,WAAW;IACjB,QAAQ,aAAa;CACtB;AAED,oBAAY,kBAAkB;IAC5B,QAAQ,aAAa;IACrB,MAAM,WAAW;CAClB;AAED,oBAAY,iBAAiB;IAC3B,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,oBAAY,oBAAoB;IAC9B,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,UAAU,eAAe;CAC1B;AASD,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACrC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACtC,uBAAuB,GAAE,MAA+C,GACvE,gBAAgB,CAgBlB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,qBACa,YAAa,SAAQ,UAAU;IAChB,iBAAiB,SAAK;IACrB,QAAQ,UAAS;IAClB,MAAM,EAAE,kBAAkB,CACtB;IAE9B,SAAS,UAAS;IAElB,KAAK,EAAE,iBAAiB,CAA6B;IAErD,KAAK,EAAE,oBAAoB,CAAkC;IAE7D,aAAa,UAAS;IACI,IAAI,mBAA2B;IAC9B,eAAe,UAAS;IACR,IAAI,EAAE,oBAAoB,EAAE,CAAM;IAClD,WAAW,UAAS;IACQ,aAAa,SAAM;IAC1E,OAAO,CAAC,qBAAqB,CAAC,CAAmB;IAExC,iBAAiB;IAKjB,oBAAoB;IAM7B,OAAO,CAAC,0BAA0B;IA0BlC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,OAAO,KAAK,gBAAgB,GAK3B;IAED,OAAO,KAAK,mBAAmB,GAY9B;IAED,OAAO,KAAK,gBAAgB,GAE3B;IAED,OAAO,KAAK,yBAAyB,GAEpC;IAED,OAAO,CAAC,sBAAsB;IA2B9B,OAAO,CAAC,sBAAsB,CAE5B;cAEiB,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAInE,SAAS,CAAC,YAAY;IAwBtB,SAAS,KAAK,aAAa,IAAI,gBAAgB,CAI9C;IAED,SAAS,KAAK,cAAc,IAAI,iBAAiB,CA6BhD;IAED,SAAS,KAAK,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE7D;IAEQ,MAAM;IAOf,SAAS,CAAC,eAAe;IAqBzB,SAAS,CAAC,YAAY;IAyBtB,SAAS,CAAC,cAAc;IA4CxB,SAAS,KAAK,kBAAkB,IAAI,wBAAwB,CAI3D;IAED,SAAS,KAAK,mBAAmB,IAAI,yBAAyB,CAI7D;IAED,SAAS,CAAC,oBAAoB;IAc9B,OAAgB,MAAM,0BAA2B;CAClD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,YAAY,CAAC;KAChC;CACF"}
@@ -239,6 +239,9 @@ let ObcPoiButton = class extends LitElement {
239
239
  selected: this.selected,
240
240
  [`alert-${this.alertClassSuffix}`]: true,
241
241
  [`type-${this.type}`]: true,
242
+ [`value-${this.value}`]: true,
243
+ [`layout-${this.layout}`]: true,
244
+ "overlap-opaque": this.overlapOpaque,
242
245
  expanded: this.inExpandedGroup,
243
246
  ...this.wrapperVariantClasses
244
247
  })}
@@ -262,6 +265,9 @@ let ObcPoiButton = class extends LitElement {
262
265
  "has-header": this.hasHeader && (this.hasHeaderContent || this.hasGeneratedHeaderContent),
263
266
  [`alert-${this.alertClassSuffix}`]: true,
264
267
  [`type-${this.type}`]: true,
268
+ [`value-${this.value}`]: true,
269
+ [`layout-${this.layout}`]: true,
270
+ "overlap-opaque": this.overlapOpaque,
265
271
  expanded: this.inExpandedGroup,
266
272
  ...this.wrapperVariantClasses
267
273
  })}
@@ -313,19 +319,19 @@ __decorateClass([
313
319
  property({ type: Boolean })
314
320
  ], ObcPoiButton.prototype, "selected", 2);
315
321
  __decorateClass([
316
- property({ type: String, reflect: true })
322
+ property({ type: String })
317
323
  ], ObcPoiButton.prototype, "layout", 2);
318
324
  __decorateClass([
319
- property({ type: Boolean, reflect: true, attribute: "has-header" })
325
+ property({ type: Boolean })
320
326
  ], ObcPoiButton.prototype, "hasHeader", 2);
321
327
  __decorateClass([
322
- property({ type: String, reflect: true })
328
+ property({ type: String })
323
329
  ], ObcPoiButton.prototype, "state", 2);
324
330
  __decorateClass([
325
- property({ type: String, reflect: true })
331
+ property({ type: String })
326
332
  ], ObcPoiButton.prototype, "value", 2);
327
333
  __decorateClass([
328
- property({ type: Boolean, reflect: true, attribute: "overlap-opaque" })
334
+ property({ type: Boolean })
329
335
  ], ObcPoiButton.prototype, "overlapOpaque", 2);
330
336
  __decorateClass([
331
337
  property({ type: String })
@@ -1 +1 @@
1
- {"version":3,"file":"poi-button.js","sources":["../../../../src/ar/building-blocks/poi-button/poi-button.ts"],"sourcesContent":["import {LitElement, html, nothing, unsafeCSS} from 'lit';\nimport {property} from 'lit/decorators.js';\nimport compentStyle from './poi-button.css?inline';\nimport {classMap} from 'lit/directives/class-map.js';\nimport {customElement} from '../../../decorator.js';\nimport '../poi-header/poi-header.js';\nimport {ObcPoiHeaderState, ObcPoiHeaderType} from '../poi-header/poi-header.js';\nimport {\n ObcPoiObjectState,\n ObcPoiObjectStyle,\n ObcPoiObjectType,\n} from '../poi-object/poi-object.js';\nimport {\n ObcPoiSelectionFrameState,\n ObcPoiSelectionFrameType,\n} from '../poi-selection-frame/poi-selection-frame.js';\nimport '../poi-selection-frame/poi-selection-frame.js';\n\nexport enum ObcPoiButtonType {\n Button = 'button',\n Enhanced = 'enhanced',\n}\n\nexport enum ObcPoiButtonLayout {\n Anchored = 'anchored',\n Inline = 'inline',\n}\n\nexport enum ObcPoiButtonState {\n Enabled = 'enabled',\n Caution = 'caution',\n Warning = 'warning',\n Alarm = 'alarm',\n}\n\nexport enum PoiButtonVisualState {\n Unchecked = 'unchecked',\n Checked = 'checked',\n Activated = 'activated',\n Overlapped = 'overlapped',\n}\n\nconst BUTTON_TOUCH_TARGET_PX = 48;\nconst ENHANCED_TOUCH_TARGET_PX = 64;\nconst DEFAULT_ENHANCED_BOX_AREA_THRESHOLD_PX =\n (BUTTON_TOUCH_TARGET_PX * BUTTON_TOUCH_TARGET_PX +\n ENHANCED_TOUCH_TARGET_PX * ENHANCED_TOUCH_TARGET_PX) /\n 2;\n\nexport function resolvePoiButtonTypeFromBoxSize(\n boxWidthPx: number | null | undefined,\n boxHeightPx: number | null | undefined,\n enhancedAreaThresholdPx: number = DEFAULT_ENHANCED_BOX_AREA_THRESHOLD_PX\n): ObcPoiButtonType {\n const width = Number(boxWidthPx);\n const height = Number(boxHeightPx);\n if (\n !Number.isFinite(width) ||\n !Number.isFinite(height) ||\n width <= 0 ||\n height <= 0\n ) {\n return ObcPoiButtonType.Button;\n }\n\n const area = width * height;\n return area >= enhancedAreaThresholdPx\n ? ObcPoiButtonType.Enhanced\n : ObcPoiButtonType.Button;\n}\n\nexport interface ObcPoiButtonDataItem {\n value: string;\n label: string;\n unit: string;\n}\n\n/**\n * `<obc-poi-button>` - Marker button component that renders an icon target with optional header and data rows.\n *\n * ## Overview\n * Use this component when you need a button-style marker that can show stateful framing and optional metric rows.\n * Keywords/synonyms: marker button, target button, icon target, POI button.\n *\n * ## Features/Variants\n * - `type` (default `button`): `button` or `enhanced` size.\n * - `layout` (default `anchored`): `anchored` or `inline`.\n * - `value` (default `unchecked`): `unchecked`, `checked`, `activated`, `overlapped`.\n * - `overlapOpaque` (default `false`): controls overlapped opacity mode (`false` = translucent, `true` = opaque).\n * - `state` (default `enabled`): `enabled`, `caution`, `warning`, `alarm`.\n * - `selected` (default `false`): shows selection frame in anchored layout.\n * - `relativeDirection` (default `0`): rotates default-slot icon content in degrees.\n * - `data` (default `[]`): when non-empty, renders value/label/unit rows.\n * - `hasHeader` + `header` slot: renders a header area and syncs slotted `obc-poi-header` state.\n * - `hasRelation` (default `false`): enables optional relation content in data mode.\n * - `inExpandedGroup` (default `false`): applies `expanded` CSS class.\n * - TODO(designer): Confirm intended UX semantics for `inExpandedGroup` beyond styling.\n *\n * ## Usage Guidelines\n * - Use `layout=\"anchored\"` for standalone marker buttons.\n * - Use `layout=\"inline\"` when this component is embedded in a larger marker composition.\n * - Provide `data` for metric display variants.\n * - Enable `hasRelation` only when relation slot content is provided.\n *\n * ## Slots/Content\n * - Default slot: Icon/content rendered inside `obc-poi-object`.\n * - `header`: Optional header content rendered above the marker body.\n * - `relation`: Optional relation icon/content rendered when `hasRelation` is true in data mode.\n *\n * ## Events\n * This component does not emit custom events.\n * Native `click` is available from the internal `<button>`.\n *\n * ## Best Practices\n * - Keep `value`, `state`, and `selected` synchronized to avoid conflicting visual states.\n * - Prefer enum values for `type`, `layout`, `state`, and `value`.\n *\n * ## Example\n * ```html\n * <obc-poi-button type=\"button\" layout=\"anchored\" value=\"checked\" selected>\n * <obi-placeholder></obi-placeholder>\n * <obc-poi-header slot=\"header\" content=\"1\"></obc-poi-header>\n * </obc-poi-button>\n * ```\n *\n * @slot - Icon/content rendered inside `obc-poi-object`.\n * @slot header - Optional header content rendered above the marker body.\n * @slot relation - Optional relation icon/content in data mode when `hasRelation` is true.\n */\n@customElement('obc-poi-button')\nexport class ObcPoiButton extends LitElement {\n @property({type: Number}) relativeDirection = 0;\n @property({type: Boolean}) selected = false;\n @property({type: String, reflect: true}) layout: ObcPoiButtonLayout =\n ObcPoiButtonLayout.Anchored;\n @property({type: Boolean, reflect: true, attribute: 'has-header'})\n hasHeader = false;\n @property({type: String, reflect: true})\n state: ObcPoiButtonState = ObcPoiButtonState.Enabled;\n @property({type: String, reflect: true})\n value: PoiButtonVisualState = PoiButtonVisualState.Unchecked;\n @property({type: Boolean, reflect: true, attribute: 'overlap-opaque'})\n overlapOpaque = false;\n @property({type: String}) type = ObcPoiButtonType.Button;\n @property({type: Boolean}) inExpandedGroup = false;\n @property({type: Array, attribute: false}) data: ObcPoiButtonDataItem[] = [];\n @property({type: Boolean}) hasRelation = false;\n @property({type: String, attribute: 'header-content'}) headerContent = '';\n private headerContentObserver?: MutationObserver;\n\n override connectedCallback() {\n super.connectedCallback();\n this.setupHeaderContentObserver();\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.headerContentObserver?.disconnect();\n this.headerContentObserver = undefined;\n }\n\n private setupHeaderContentObserver() {\n this.headerContentObserver?.disconnect();\n this.headerContentObserver = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.type === 'childList') {\n this.requestUpdate();\n return;\n }\n if (\n mutation.type === 'attributes' &&\n mutation.target instanceof HTMLElement &&\n mutation.target.getAttribute('slot') === 'header'\n ) {\n this.requestUpdate();\n return;\n }\n }\n });\n this.headerContentObserver.observe(this, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['slot'],\n });\n }\n\n get hasData(): boolean {\n return this.data.length > 0;\n }\n\n private get alertClassSuffix(): string {\n if (this.state === ObcPoiButtonState.Enabled) {\n return 'none';\n }\n return this.state;\n }\n\n private get resolvedHeaderState(): ObcPoiHeaderState {\n switch (this.state) {\n case ObcPoiButtonState.Caution:\n return ObcPoiHeaderState.Caution;\n case ObcPoiButtonState.Warning:\n return ObcPoiHeaderState.Warning;\n case ObcPoiButtonState.Alarm:\n return ObcPoiHeaderState.Alarm;\n case ObcPoiButtonState.Enabled:\n default:\n return ObcPoiHeaderState.Selected;\n }\n }\n\n private get hasHeaderContent(): boolean {\n return this.querySelector('[slot=\"header\"]') !== null;\n }\n\n private get hasGeneratedHeaderContent(): boolean {\n return this.headerContent.trim().length > 0;\n }\n\n private syncSlottedHeaderState() {\n const headerSlot = this.renderRoot.querySelector(\n 'slot[name=\"header\"]'\n ) as HTMLSlotElement | null;\n if (!headerSlot) {\n return;\n }\n\n const state = this.resolvedHeaderState;\n const assigned = headerSlot.assignedElements({flatten: true});\n const headers = new Set<HTMLElement>();\n\n for (const element of assigned) {\n if (element.matches('obc-poi-header')) {\n headers.add(element as HTMLElement);\n }\n for (const nested of element.querySelectorAll('obc-poi-header')) {\n headers.add(nested as HTMLElement);\n }\n }\n\n for (const header of headers) {\n (header as {state?: string}).state = state;\n header.setAttribute('state', state);\n }\n }\n\n private handleHeaderSlotChange = () => {\n this.syncSlottedHeaderState();\n };\n\n protected override updated(_changedProperties: Map<string, unknown>) {\n this.syncSlottedHeaderState();\n }\n\n protected renderHeader() {\n if (\n !this.hasHeader ||\n (!this.hasHeaderContent && !this.hasGeneratedHeaderContent)\n ) {\n return nothing;\n }\n\n return html`\n <div class=\"id-label\">\n ${this.hasHeaderContent\n ? html`<slot\n name=\"header\"\n @slotchange=${this.handleHeaderSlotChange}\n ></slot>`\n : html`<obc-poi-header\n .content=${this.headerContent}\n .state=${this.resolvedHeaderState}\n .type=${ObcPoiHeaderType.Id}\n ></obc-poi-header>`}\n </div>\n `;\n }\n\n protected get poiObjectType(): ObcPoiObjectType {\n return this.type === ObcPoiButtonType.Enhanced\n ? ObcPoiObjectType.Large\n : ObcPoiObjectType.Regular;\n }\n\n protected get poiObjectState(): ObcPoiObjectState {\n if (this.value === PoiButtonVisualState.Overlapped) {\n return ObcPoiObjectState.Overlapped;\n }\n\n if (this.state === ObcPoiButtonState.Caution)\n return ObcPoiObjectState.Caution;\n if (this.state === ObcPoiButtonState.Warning)\n return ObcPoiObjectState.Warning;\n if (this.state === ObcPoiButtonState.Alarm) return ObcPoiObjectState.Alarm;\n\n if (this.hasData) {\n if (this.value === PoiButtonVisualState.Activated) {\n return ObcPoiObjectState.Activated;\n }\n if (this.value === PoiButtonVisualState.Checked) {\n return ObcPoiObjectState.StaticChecked;\n }\n return ObcPoiObjectState.StaticUnchecked;\n }\n\n if (this.value === PoiButtonVisualState.Activated) {\n return ObcPoiObjectState.Activated;\n }\n if (this.value === PoiButtonVisualState.Checked) {\n return ObcPoiObjectState.Checked;\n }\n\n return ObcPoiObjectState.Unchecked;\n }\n\n protected get wrapperVariantClasses(): Record<string, boolean> {\n return {};\n }\n\n override render() {\n if (this.hasData) {\n return this.renderWithData();\n }\n return this.renderButton();\n }\n\n protected renderPoiObject() {\n return html`\n <obc-poi-object\n class=\"poi-object\"\n .type=${this.poiObjectType}\n .objectStyle=${ObcPoiObjectStyle.Regular}\n .state=${this.poiObjectState}\n .interactive=${false}\n exportparts=\"icon\"\n >\n <span\n class=\"icon\"\n part=\"icon\"\n style=\"transform: rotate(${this.relativeDirection}deg);\"\n >\n <slot></slot>\n </span>\n </obc-poi-object>\n `;\n }\n\n protected renderButton() {\n return html`\n <button\n type=\"button\"\n class=${classMap({\n wrapper: true,\n selected: this.selected,\n [`alert-${this.alertClassSuffix}`]: true,\n [`type-${this.type}`]: true,\n expanded: this.inExpandedGroup,\n ...this.wrapperVariantClasses,\n })}\n >\n ${this.renderHeader()}\n <div class=\"button-wrapper\">\n ${this.renderSelectionFrame()} ${this.renderPoiObject()}\n <div class=\"alert-ring\"></div>\n </div>\n </button>\n `;\n }\n\n protected renderWithData() {\n return html`\n <button\n type=\"button\"\n class=${classMap({\n wrapper: true,\n 'has-data': true,\n selected: this.selected,\n 'has-header':\n this.hasHeader &&\n (this.hasHeaderContent || this.hasGeneratedHeaderContent),\n [`alert-${this.alertClassSuffix}`]: true,\n [`type-${this.type}`]: true,\n expanded: this.inExpandedGroup,\n ...this.wrapperVariantClasses,\n })}\n >\n ${this.renderHeader()}\n <div class=\"data-wrapper\">\n ${this.data.map(\n (item) =>\n html`<div class=\"data\">\n <div class=\"value\">${item.value}</div>\n <div class=\"label\">${item.label}</div>\n <div class=\"unit\">${item.unit}</div>\n </div>`\n )}\n </div>\n <div class=\"button-wrapper\">\n ${this.renderSelectionFrame()} ${this.renderPoiObject()}\n </div>\n ${this.hasRelation\n ? html`<div class=\"relation-wrapper\" part=\"relation-wrapper\">\n <slot name=\"relation\" class=\"relation\" part=\"relation\"></slot>\n </div>`\n : nothing}\n <div class=\"alert-ring\"></div>\n </button>\n `;\n }\n\n protected get selectionFrameType(): ObcPoiSelectionFrameType {\n return this.type === ObcPoiButtonType.Enhanced\n ? ObcPoiSelectionFrameType.Enhanced\n : ObcPoiSelectionFrameType.Button;\n }\n\n protected get selectionFrameState(): ObcPoiSelectionFrameState {\n return this.state === ObcPoiButtonState.Enabled\n ? ObcPoiSelectionFrameState.Regular\n : ObcPoiSelectionFrameState.Alert;\n }\n\n protected renderSelectionFrame() {\n if (!this.selected || this.layout === ObcPoiButtonLayout.Inline) {\n return nothing;\n }\n\n return html`\n <obc-poi-selection-frame\n class=\"selection-frame\"\n .type=${this.selectionFrameType}\n .state=${this.selectionFrameState}\n ></obc-poi-selection-frame>\n `;\n }\n\n static override styles = unsafeCSS(compentStyle);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'obc-poi-button': ObcPoiButton;\n }\n}\n"],"names":["ObcPoiButtonType","ObcPoiButtonLayout","ObcPoiButtonState","PoiButtonVisualState"],"mappings":"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"}
1
+ {"version":3,"file":"poi-button.js","sources":["../../../../src/ar/building-blocks/poi-button/poi-button.ts"],"sourcesContent":["import {LitElement, html, nothing, unsafeCSS} from 'lit';\nimport {property} from 'lit/decorators.js';\nimport compentStyle from './poi-button.css?inline';\nimport {classMap} from 'lit/directives/class-map.js';\nimport {customElement} from '../../../decorator.js';\nimport '../poi-header/poi-header.js';\nimport {ObcPoiHeaderState, ObcPoiHeaderType} from '../poi-header/poi-header.js';\nimport {\n ObcPoiObjectState,\n ObcPoiObjectStyle,\n ObcPoiObjectType,\n} from '../poi-object/poi-object.js';\nimport {\n ObcPoiSelectionFrameState,\n ObcPoiSelectionFrameType,\n} from '../poi-selection-frame/poi-selection-frame.js';\nimport '../poi-selection-frame/poi-selection-frame.js';\n\nexport enum ObcPoiButtonType {\n Button = 'button',\n Enhanced = 'enhanced',\n}\n\nexport enum ObcPoiButtonLayout {\n Anchored = 'anchored',\n Inline = 'inline',\n}\n\nexport enum ObcPoiButtonState {\n Enabled = 'enabled',\n Caution = 'caution',\n Warning = 'warning',\n Alarm = 'alarm',\n}\n\nexport enum PoiButtonVisualState {\n Unchecked = 'unchecked',\n Checked = 'checked',\n Activated = 'activated',\n Overlapped = 'overlapped',\n}\n\nconst BUTTON_TOUCH_TARGET_PX = 48;\nconst ENHANCED_TOUCH_TARGET_PX = 64;\nconst DEFAULT_ENHANCED_BOX_AREA_THRESHOLD_PX =\n (BUTTON_TOUCH_TARGET_PX * BUTTON_TOUCH_TARGET_PX +\n ENHANCED_TOUCH_TARGET_PX * ENHANCED_TOUCH_TARGET_PX) /\n 2;\n\nexport function resolvePoiButtonTypeFromBoxSize(\n boxWidthPx: number | null | undefined,\n boxHeightPx: number | null | undefined,\n enhancedAreaThresholdPx: number = DEFAULT_ENHANCED_BOX_AREA_THRESHOLD_PX\n): ObcPoiButtonType {\n const width = Number(boxWidthPx);\n const height = Number(boxHeightPx);\n if (\n !Number.isFinite(width) ||\n !Number.isFinite(height) ||\n width <= 0 ||\n height <= 0\n ) {\n return ObcPoiButtonType.Button;\n }\n\n const area = width * height;\n return area >= enhancedAreaThresholdPx\n ? ObcPoiButtonType.Enhanced\n : ObcPoiButtonType.Button;\n}\n\nexport interface ObcPoiButtonDataItem {\n value: string;\n label: string;\n unit: string;\n}\n\n/**\n * `<obc-poi-button>` - Marker button component that renders an icon target with optional header and data rows.\n *\n * ## Overview\n * Use this component when you need a button-style marker that can show stateful framing and optional metric rows.\n * Keywords/synonyms: marker button, target button, icon target, POI button.\n *\n * ## Features/Variants\n * - `type` (default `button`): `button` or `enhanced` size.\n * - `layout` (default `anchored`): `anchored` or `inline`.\n * - `value` (default `unchecked`): `unchecked`, `checked`, `activated`, `overlapped`.\n * - `overlapOpaque` (default `false`): controls overlapped opacity mode (`false` = translucent, `true` = opaque).\n * - `state` (default `enabled`): `enabled`, `caution`, `warning`, `alarm`.\n * - `selected` (default `false`): shows selection frame in anchored layout.\n * - `relativeDirection` (default `0`): rotates default-slot icon content in degrees.\n * - `data` (default `[]`): when non-empty, renders value/label/unit rows.\n * - `hasHeader` + `header` slot: renders a header area and syncs slotted `obc-poi-header` state.\n * - `hasRelation` (default `false`): enables optional relation content in data mode.\n * - `inExpandedGroup` (default `false`): applies `expanded` CSS class.\n * - TODO(designer): Confirm intended UX semantics for `inExpandedGroup` beyond styling.\n *\n * ## Usage Guidelines\n * - Use `layout=\"anchored\"` for standalone marker buttons.\n * - Use `layout=\"inline\"` when this component is embedded in a larger marker composition.\n * - Provide `data` for metric display variants.\n * - Enable `hasRelation` only when relation slot content is provided.\n *\n * ## Slots/Content\n * - Default slot: Icon/content rendered inside `obc-poi-object`.\n * - `header`: Optional header content rendered above the marker body.\n * - `relation`: Optional relation icon/content rendered when `hasRelation` is true in data mode.\n *\n * ## Events\n * This component does not emit custom events.\n * Native `click` is available from the internal `<button>`.\n *\n * ## Best Practices\n * - Keep `value`, `state`, and `selected` synchronized to avoid conflicting visual states.\n * - Prefer enum values for `type`, `layout`, `state`, and `value`.\n *\n * ## Example\n * ```html\n * <obc-poi-button type=\"button\" layout=\"anchored\" value=\"checked\" selected>\n * <obi-placeholder></obi-placeholder>\n * <obc-poi-header slot=\"header\" content=\"1\"></obc-poi-header>\n * </obc-poi-button>\n * ```\n *\n * @slot - Icon/content rendered inside `obc-poi-object`.\n * @slot header - Optional header content rendered above the marker body.\n * @slot relation - Optional relation icon/content in data mode when `hasRelation` is true.\n */\n@customElement('obc-poi-button')\nexport class ObcPoiButton extends LitElement {\n @property({type: Number}) relativeDirection = 0;\n @property({type: Boolean}) selected = false;\n @property({type: String}) layout: ObcPoiButtonLayout =\n ObcPoiButtonLayout.Anchored;\n @property({type: Boolean})\n hasHeader = false;\n @property({type: String})\n state: ObcPoiButtonState = ObcPoiButtonState.Enabled;\n @property({type: String})\n value: PoiButtonVisualState = PoiButtonVisualState.Unchecked;\n @property({type: Boolean})\n overlapOpaque = false;\n @property({type: String}) type = ObcPoiButtonType.Button;\n @property({type: Boolean}) inExpandedGroup = false;\n @property({type: Array, attribute: false}) data: ObcPoiButtonDataItem[] = [];\n @property({type: Boolean}) hasRelation = false;\n @property({type: String, attribute: 'header-content'}) headerContent = '';\n private headerContentObserver?: MutationObserver;\n\n override connectedCallback() {\n super.connectedCallback();\n this.setupHeaderContentObserver();\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.headerContentObserver?.disconnect();\n this.headerContentObserver = undefined;\n }\n\n private setupHeaderContentObserver() {\n this.headerContentObserver?.disconnect();\n this.headerContentObserver = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.type === 'childList') {\n this.requestUpdate();\n return;\n }\n if (\n mutation.type === 'attributes' &&\n mutation.target instanceof HTMLElement &&\n mutation.target.getAttribute('slot') === 'header'\n ) {\n this.requestUpdate();\n return;\n }\n }\n });\n this.headerContentObserver.observe(this, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['slot'],\n });\n }\n\n get hasData(): boolean {\n return this.data.length > 0;\n }\n\n private get alertClassSuffix(): string {\n if (this.state === ObcPoiButtonState.Enabled) {\n return 'none';\n }\n return this.state;\n }\n\n private get resolvedHeaderState(): ObcPoiHeaderState {\n switch (this.state) {\n case ObcPoiButtonState.Caution:\n return ObcPoiHeaderState.Caution;\n case ObcPoiButtonState.Warning:\n return ObcPoiHeaderState.Warning;\n case ObcPoiButtonState.Alarm:\n return ObcPoiHeaderState.Alarm;\n case ObcPoiButtonState.Enabled:\n default:\n return ObcPoiHeaderState.Selected;\n }\n }\n\n private get hasHeaderContent(): boolean {\n return this.querySelector('[slot=\"header\"]') !== null;\n }\n\n private get hasGeneratedHeaderContent(): boolean {\n return this.headerContent.trim().length > 0;\n }\n\n private syncSlottedHeaderState() {\n const headerSlot = this.renderRoot.querySelector(\n 'slot[name=\"header\"]'\n ) as HTMLSlotElement | null;\n if (!headerSlot) {\n return;\n }\n\n const state = this.resolvedHeaderState;\n const assigned = headerSlot.assignedElements({flatten: true});\n const headers = new Set<HTMLElement>();\n\n for (const element of assigned) {\n if (element.matches('obc-poi-header')) {\n headers.add(element as HTMLElement);\n }\n for (const nested of element.querySelectorAll('obc-poi-header')) {\n headers.add(nested as HTMLElement);\n }\n }\n\n for (const header of headers) {\n (header as {state?: string}).state = state;\n header.setAttribute('state', state);\n }\n }\n\n private handleHeaderSlotChange = () => {\n this.syncSlottedHeaderState();\n };\n\n protected override updated(_changedProperties: Map<string, unknown>) {\n this.syncSlottedHeaderState();\n }\n\n protected renderHeader() {\n if (\n !this.hasHeader ||\n (!this.hasHeaderContent && !this.hasGeneratedHeaderContent)\n ) {\n return nothing;\n }\n\n return html`\n <div class=\"id-label\">\n ${this.hasHeaderContent\n ? html`<slot\n name=\"header\"\n @slotchange=${this.handleHeaderSlotChange}\n ></slot>`\n : html`<obc-poi-header\n .content=${this.headerContent}\n .state=${this.resolvedHeaderState}\n .type=${ObcPoiHeaderType.Id}\n ></obc-poi-header>`}\n </div>\n `;\n }\n\n protected get poiObjectType(): ObcPoiObjectType {\n return this.type === ObcPoiButtonType.Enhanced\n ? ObcPoiObjectType.Large\n : ObcPoiObjectType.Regular;\n }\n\n protected get poiObjectState(): ObcPoiObjectState {\n if (this.value === PoiButtonVisualState.Overlapped) {\n return ObcPoiObjectState.Overlapped;\n }\n\n if (this.state === ObcPoiButtonState.Caution)\n return ObcPoiObjectState.Caution;\n if (this.state === ObcPoiButtonState.Warning)\n return ObcPoiObjectState.Warning;\n if (this.state === ObcPoiButtonState.Alarm) return ObcPoiObjectState.Alarm;\n\n if (this.hasData) {\n if (this.value === PoiButtonVisualState.Activated) {\n return ObcPoiObjectState.Activated;\n }\n if (this.value === PoiButtonVisualState.Checked) {\n return ObcPoiObjectState.StaticChecked;\n }\n return ObcPoiObjectState.StaticUnchecked;\n }\n\n if (this.value === PoiButtonVisualState.Activated) {\n return ObcPoiObjectState.Activated;\n }\n if (this.value === PoiButtonVisualState.Checked) {\n return ObcPoiObjectState.Checked;\n }\n\n return ObcPoiObjectState.Unchecked;\n }\n\n protected get wrapperVariantClasses(): Record<string, boolean> {\n return {};\n }\n\n override render() {\n if (this.hasData) {\n return this.renderWithData();\n }\n return this.renderButton();\n }\n\n protected renderPoiObject() {\n return html`\n <obc-poi-object\n class=\"poi-object\"\n .type=${this.poiObjectType}\n .objectStyle=${ObcPoiObjectStyle.Regular}\n .state=${this.poiObjectState}\n .interactive=${false}\n exportparts=\"icon\"\n >\n <span\n class=\"icon\"\n part=\"icon\"\n style=\"transform: rotate(${this.relativeDirection}deg);\"\n >\n <slot></slot>\n </span>\n </obc-poi-object>\n `;\n }\n\n protected renderButton() {\n return html`\n <button\n type=\"button\"\n class=${classMap({\n wrapper: true,\n selected: this.selected,\n [`alert-${this.alertClassSuffix}`]: true,\n [`type-${this.type}`]: true,\n [`value-${this.value}`]: true,\n [`layout-${this.layout}`]: true,\n 'overlap-opaque': this.overlapOpaque,\n expanded: this.inExpandedGroup,\n ...this.wrapperVariantClasses,\n })}\n >\n ${this.renderHeader()}\n <div class=\"button-wrapper\">\n ${this.renderSelectionFrame()} ${this.renderPoiObject()}\n <div class=\"alert-ring\"></div>\n </div>\n </button>\n `;\n }\n\n protected renderWithData() {\n return html`\n <button\n type=\"button\"\n class=${classMap({\n wrapper: true,\n 'has-data': true,\n selected: this.selected,\n 'has-header':\n this.hasHeader &&\n (this.hasHeaderContent || this.hasGeneratedHeaderContent),\n [`alert-${this.alertClassSuffix}`]: true,\n [`type-${this.type}`]: true,\n [`value-${this.value}`]: true,\n [`layout-${this.layout}`]: true,\n 'overlap-opaque': this.overlapOpaque,\n expanded: this.inExpandedGroup,\n ...this.wrapperVariantClasses,\n })}\n >\n ${this.renderHeader()}\n <div class=\"data-wrapper\">\n ${this.data.map(\n (item) =>\n html`<div class=\"data\">\n <div class=\"value\">${item.value}</div>\n <div class=\"label\">${item.label}</div>\n <div class=\"unit\">${item.unit}</div>\n </div>`\n )}\n </div>\n <div class=\"button-wrapper\">\n ${this.renderSelectionFrame()} ${this.renderPoiObject()}\n </div>\n ${this.hasRelation\n ? html`<div class=\"relation-wrapper\" part=\"relation-wrapper\">\n <slot name=\"relation\" class=\"relation\" part=\"relation\"></slot>\n </div>`\n : nothing}\n <div class=\"alert-ring\"></div>\n </button>\n `;\n }\n\n protected get selectionFrameType(): ObcPoiSelectionFrameType {\n return this.type === ObcPoiButtonType.Enhanced\n ? ObcPoiSelectionFrameType.Enhanced\n : ObcPoiSelectionFrameType.Button;\n }\n\n protected get selectionFrameState(): ObcPoiSelectionFrameState {\n return this.state === ObcPoiButtonState.Enabled\n ? ObcPoiSelectionFrameState.Regular\n : ObcPoiSelectionFrameState.Alert;\n }\n\n protected renderSelectionFrame() {\n if (!this.selected || this.layout === ObcPoiButtonLayout.Inline) {\n return nothing;\n }\n\n return html`\n <obc-poi-selection-frame\n class=\"selection-frame\"\n .type=${this.selectionFrameType}\n .state=${this.selectionFrameState}\n ></obc-poi-selection-frame>\n `;\n }\n\n static override styles = unsafeCSS(compentStyle);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'obc-poi-button': ObcPoiButton;\n }\n}\n"],"names":["ObcPoiButtonType","ObcPoiButtonLayout","ObcPoiButtonState","PoiButtonVisualState"],"mappings":"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"}
@@ -13,33 +13,33 @@ const componentStyle = css`
13
13
  --obc-poi-line-current-dash-array: var(--obc-poi-line-dash-array);
14
14
  }
15
15
 
16
- :host([line-style="selected"]),
17
- :host([line-style="enhanced"]) {
16
+ .wrapper.line-style-selected,
17
+ .wrapper.line-style-enhanced {
18
18
  --obc-poi-line-line-color: var(--overlay-element-active-color);
19
19
  --obc-poi-line-outline-color: var(--element-active-color);
20
20
  }
21
21
 
22
- :host([line-style="alarm"]) {
22
+ .wrapper.line-style-alarm {
23
23
  --obc-poi-line-line-color: var(--alert-alarm-color);
24
24
  --obc-poi-line-outline-color: var(--on-alarm-color);
25
25
  }
26
26
 
27
- :host([line-style="caution"]) {
27
+ .wrapper.line-style-caution {
28
28
  --obc-poi-line-line-color: var(--alert-caution-color);
29
29
  --obc-poi-line-outline-color: var(--alert-caution-outline-color);
30
30
  }
31
31
 
32
- :host([line-style="warning"]) {
32
+ .wrapper.line-style-warning {
33
33
  --obc-poi-line-line-color: var(--alert-warning-color);
34
34
  --obc-poi-line-outline-color: var(--on-warning-color);
35
35
  }
36
36
 
37
- :host([line-style="route"]) {
37
+ .wrapper.line-style-route {
38
38
  --obc-poi-line-line-color: var(--instrument-enhanced-secondary-color);
39
39
  --obc-poi-line-outline-color: var(--overlay-element-active-color);
40
40
  }
41
41
 
42
- :host([line-type="dashed"][line-style="route"]) {
42
+ .wrapper.line-type-dashed.line-style-route {
43
43
  --obc-poi-line-line-color: var(--base-blue-500);
44
44
  --obc-poi-line-outline-color: var(--base-blue-050);
45
45
  --obc-poi-line-current-dash-array: var(--obc-poi-line-route-dash-array);
@@ -79,7 +79,7 @@ export declare const POI_VISUAL_VARIANTS: Array<{
79
79
  * ## Example
80
80
  *
81
81
  * ```html
82
- * <obc-poi-graphic-line line-height="96" line-style="enhanced" line-type="regular" offset="0"></obc-poi-graphic-line>
82
+ * <obc-poi-graphic-line .lineStyle=${POIStyle.Enhanced} .lineType=${POILineType.Regular} .lineHeight=${96} .offset=${0}></obc-poi-graphic-line>
83
83
  * ```
84
84
  */
85
85
  export declare class ObcPoiGraphicLine extends LitElement {
@@ -1 +1 @@
1
- {"version":3,"file":"poi-graphic-line.d.ts","sourceRoot":"","sources":["../../../../src/ar/building-blocks/poi-graphic-line/poi-graphic-line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAuB,MAAM,KAAK,CAAC;AAOrD,oBAAY,QAAQ;IAClB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,CAAC;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC5C,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,CACnC,QAAQ,EACR,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,QAAQ,CACpC,CAAC;AAqHF,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,eAAe,CAkBzE;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,QAAQ,GAAG,MAAM,EACxB,QAAQ,GAAE,WAAW,GAAG,MAA4B,GACnD,aAAa,CAKf;AAED,eAAO,MAAM,iBAAiB,EAAE,QAAQ,EAOvC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,WAAW,EAG9C,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC;IACtC,KAAK,EAAE,QAAQ,CAAC;IAChB,IAAI,EAAE,WAAW,CAAC;CACnB,CAiDA,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,qBACa,iBAAkB,SAAQ,UAAU;IAC/C,OAAO,CAAC,MAAM,CAAC,UAAU,CAAK;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwD;IACxD,UAAU,EAAE,MAAM,CAAM;IACxB,SAAS,EAAE,MAAM,CAAK;IAEhD,SAAS,EAAE,QAAQ,CAAqB;IAExC,QAAQ,EAAE,WAAW,CAAuB;IAClB,MAAM,EAAE,MAAM,CAAK;IACpC,MAAM;IAef,OAAgB,MAAM,0BAA6B;CACpD;AAED,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,UAAU,EACV,SAAa,EACb,WAAW,EACX,MAAM,EACN,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,aAAa,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,wCA2JA;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,sBAAsB,EAAE,iBAAiB,CAAC;KAC3C;CACF"}
1
+ {"version":3,"file":"poi-graphic-line.d.ts","sourceRoot":"","sources":["../../../../src/ar/building-blocks/poi-graphic-line/poi-graphic-line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAuB,MAAM,KAAK,CAAC;AAOrD,oBAAY,QAAQ;IAClB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,CAAC;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC5C,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,CACnC,QAAQ,EACR,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,QAAQ,CACpC,CAAC;AAqHF,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,eAAe,CAkBzE;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,QAAQ,GAAG,MAAM,EACxB,QAAQ,GAAE,WAAW,GAAG,MAA4B,GACnD,aAAa,CAKf;AAED,eAAO,MAAM,iBAAiB,EAAE,QAAQ,EAOvC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,WAAW,EAG9C,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC;IACtC,KAAK,EAAE,QAAQ,CAAC;IAChB,IAAI,EAAE,WAAW,CAAC;CACnB,CAiDA,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,qBACa,iBAAkB,SAAQ,UAAU;IAC/C,OAAO,CAAC,MAAM,CAAC,UAAU,CAAK;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwD;IACxD,UAAU,EAAE,MAAM,CAAM;IACxB,SAAS,EAAE,MAAM,CAAK;IAEhD,SAAS,EAAE,QAAQ,CAAqB;IAExC,QAAQ,EAAE,WAAW,CAAuB;IAClB,MAAM,EAAE,MAAM,CAAK;IACpC,MAAM;IAmBf,OAAgB,MAAM,0BAA6B;CACpD;AAED,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,UAAU,EACV,SAAa,EACb,WAAW,EACX,MAAM,EACN,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,aAAa,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,wCA2JA;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,sBAAsB,EAAE,iBAAiB,CAAC;KAC3C;CACF"}