@oicl/openbridge-webcomponents 2.0.0-next.54 → 2.0.0-next.56
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/bundle/openbridge-webcomponents.bundle.js +34 -12
- package/bundle/openbridge-webcomponents.bundle.js.map +1 -1
- package/custom-elements.json +67 -0
- package/dist/automation/automation-tank/automation-tank.d.ts +11 -0
- package/dist/automation/automation-tank/automation-tank.d.ts.map +1 -1
- package/dist/automation/automation-tank/automation-tank.js.map +1 -1
- package/dist/integration-systems/integration-bar/integration-bar.css.js +9 -2
- package/dist/integration-systems/integration-bar/integration-bar.css.js.map +1 -1
- package/dist/navigation-instruments/readout/readout.css.js +5 -1
- package/dist/navigation-instruments/readout/readout.css.js.map +1 -1
- package/dist/navigation-instruments/readout/readout.d.ts.map +1 -1
- package/dist/navigation-instruments/readout/readout.js +1 -0
- package/dist/navigation-instruments/readout/readout.js.map +1 -1
- package/dist/navigation-instruments/readout-list-item/readout-list-item.css.js +2 -5
- package/dist/navigation-instruments/readout-list-item/readout-list-item.css.js.map +1 -1
- package/dist/navigation-instruments/readout-list-item/readout-list-item.d.ts +1 -0
- package/dist/navigation-instruments/readout-list-item/readout-list-item.d.ts.map +1 -1
- package/dist/navigation-instruments/readout-list-item/readout-list-item.js +10 -4
- package/dist/navigation-instruments/readout-list-item/readout-list-item.js.map +1 -1
- package/dist/navigation-instruments/readout-setpoint/readout-setpoint.d.ts +1 -0
- package/dist/navigation-instruments/readout-setpoint/readout-setpoint.d.ts.map +1 -1
- package/dist/navigation-instruments/readout-setpoint/readout-setpoint.js +7 -0
- package/dist/navigation-instruments/readout-setpoint/readout-setpoint.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readout.js","sources":["../../../src/navigation-instruments/readout/readout.ts"],"sourcesContent":["import {LitElement, html, nothing, unsafeCSS} from 'lit';\nimport {property, query, state} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport componentStyle from './readout.css?inline';\nimport {customElement} from '../../decorator.js';\nimport '../../components/context-menu-input/context-menu-input.js';\nimport {\n ContextMenuType,\n type ContextMenuOption,\n type ObcContextMenuInputItemClickEvent,\n} from '../../components/context-menu-input/context-menu-input.js';\nimport {Priority} from '../types.js';\nimport '../../icons/icon-input-right.js';\nimport '../../icons/icon-placeholder.js';\nimport {\n ReadoutAdviceState,\n ReadoutAdviceFormat,\n} from '../readout-advice/readout-advice.js';\nimport '../readout-advice/readout-advice.js';\nimport {\n renderReadoutLabelZone,\n renderReadoutMetaZone,\n renderReadoutUnitZone,\n} from './readout-meta.js';\nimport {\n ReadoutSourceType,\n renderReadoutSource,\n supportsReadoutSourcePicker,\n} from './readout-source.js';\nimport {\n ReadoutSetpointMode,\n ReadoutSetpointFormat,\n ReadoutSetpointVariant,\n ReadoutSetpointSize,\n} from '../readout-setpoint/readout-setpoint.js';\nimport '../readout-setpoint/readout-setpoint.js';\n\nexport enum ReadoutVariant {\n regular = 'regular',\n enhanced = 'enhanced',\n stack = 'stack',\n}\n\nexport enum ReadoutAlertState {\n none = 'none',\n lowIntegrity = 'low-integrity',\n invalid = 'invalid',\n caution = 'caution',\n warning = 'warning',\n alarm = 'alarm',\n}\n\nexport enum ReadoutSetpointInteraction {\n alwaysVisible = 'always-visible',\n flipFlop = 'flip-flop',\n popUp = 'pop-up',\n}\n\nexport enum ReadoutDirection {\n vertical = 'vertical',\n horizontal = 'horizontal',\n}\n\nexport enum ReadoutStackVerticalAlignment {\n left = 'left',\n center = 'center',\n vertical = 'vertical',\n}\n\nexport {ReadoutSourceType};\n\n/**\n * `<obc-readout>` – A component for displaying navigation instrument data.\n *\n * This component is used to show a primary value, optional advice and setpoint segments, units, a label, and a source (e.g., GPS, Gyro).\n * It supports different readout styles, horizontal/vertical layouts, and configurable numeric formatting.\n *\n * ### Features\n * - **Readout Styles:** Supports `regular`, `enhanced`, and `stack` presentations.\n * - **Segments:** Optional advice, setpoint, and leading icon display in addition to the main value.\n * - **Source:** Optional source display with `small`, `regular`, `delta`, and `flyout` variants.\n * - **Source Picker:** Optional source selection with a dropdown and context menu.\n * - **Formatting:** Customizable integer and fraction digits, dashed fallback values, and optional zero padding.\n * - **Layouts:** Can be oriented horizontally or vertically, with optional dividers and segment spacing controls.\n *\n * ### Slots\n * | Slot Name | Purpose |\n * |---------------------|----------------------------------------------------------------------------|\n * | advice | Replaces the fallback advice segment when `hasAdvice` is true. |\n * | advice-icon | Replaces the fallback advice icon when `hasAdvice` is true. |\n * | setpoint | Replaces the fallback setpoint segment when `hasSetpoint` is true. |\n * | setpoint-icon | Replaces the fallback setpoint icon when `hasSetpoint` is true. |\n * | leading-icon | Replaces the fallback leading icon beside the main value. |\n * | value | Replaces the formatted main value content. |\n * | label | Replaces the label content. |\n * | unit | Replaces the unit content. |\n * | source | Replaces the source row content. |\n * | src-picker-content | Content for the source picker context menu (e.g., a list of sources). |\n *\n * @fires source-flyout-click {CustomEvent<{src: string, sourceType?: ReadoutSourceType}>} Fired when the source row is clicked while `sourceType=\"flyout\"`.\n * @fires source-change {CustomEvent<{value: string, label?: string}>} Fired when a source picker option is selected.\n *\n * @slot advice - Replaces the fallback advice segment.\n * @slot advice-icon - Replaces the fallback advice icon.\n * @slot setpoint - Replaces the fallback setpoint segment.\n * @slot setpoint-icon - Replaces the fallback setpoint icon.\n * @slot leading-icon - Replaces the fallback leading icon beside the value.\n * @slot value - Replaces the formatted main value content.\n * @slot label - Replaces the label content.\n * @slot unit - Replaces the unit content.\n * @slot source - Replaces the source row content.\n * @slot src-picker-content - Provides the source picker context menu content.\n */\n@customElement('obc-readout')\nexport class ObcReadout extends LitElement {\n @property({type: Number}) value?: number;\n @property({type: Boolean}) hasSetpoint = false;\n @property({type: Number}) setpointValue?: number;\n @property({type: String}) variant: ReadoutVariant = ReadoutVariant.regular;\n @property({type: Boolean}) hasDegree = false;\n @property({type: String}) label = '';\n @property({type: String}) unit?: string;\n @property({type: String}) src?: string;\n @property({type: Boolean}) off = false;\n @property({type: String}) valuePriority?: Priority;\n @property({type: String}) alertState: ReadoutAlertState =\n ReadoutAlertState.none;\n @property({type: String}) setpointInteraction: ReadoutSetpointInteraction =\n ReadoutSetpointInteraction.alwaysVisible;\n @property({type: String}) direction: ReadoutDirection =\n ReadoutDirection.vertical;\n\n /**\n * Override the size of the setpoint segment (when `hasSetpoint` is true).\n *\n * - In `alwaysVisible` and `popUp` interaction modes: any size value applies.\n * - In `flipFlop` mode: the override is honored only when strictly smaller\n * than the variant's base size (medium for `regular`, large for\n * `enhanced`/`stack`). Larger overrides are ignored, falling back to the\n * default secondary size to preserve the flip-flop visual effect and\n * prevent setpoint/value overlap.\n *\n * When unset, the setpoint size is derived from `variant` (and adjusted for\n * multi-line formats).\n */\n @property({type: String}) setpointSize?: ReadoutSetpointSize;\n @property({type: String})\n alignment: ReadoutStackVerticalAlignment =\n ReadoutStackVerticalAlignment.vertical;\n @property({type: Boolean}) hug = false;\n @property({type: Boolean}) hasSetpointDivider = false;\n @property({type: Boolean}) hasSourceDivider = false;\n @property({type: Boolean}) showZeroPadding = false;\n @property({type: Number}) fractionDigits = 0;\n @property({type: Number}) minValueLength = 0;\n @property({type: Boolean}) valueHasHintedZeros = false;\n\n @property({type: Boolean}) labelOnly = false;\n @property({type: Boolean}) hasSrcPicker = false;\n @property({type: Number}) sourceDeltaValue = 0;\n @property({type: String}) sourceType?: ReadoutSourceType;\n @property({type: Boolean}) hasLeadingIcon = false;\n\n @property({type: Boolean, attribute: false}) sourceHug = true;\n @property({type: Boolean}) hasSourceLeadingIcon = false;\n @property({type: Boolean, attribute: false}) hasSourceTrailingIcon = true;\n @property({type: Boolean}) hasAdvice = false;\n @property({type: Number}) adviceValue?: number;\n @property({type: String}) adviceFormat: ReadoutAdviceFormat =\n ReadoutAdviceFormat.regular;\n @property({type: String}) adviceState: ReadoutAdviceState =\n ReadoutAdviceState.enabled;\n @property({type: Number}) adviceSecondaryValue: number | undefined =\n undefined;\n @property({type: String}) adviceDescription = '';\n @property({type: Boolean}) adviceHasHintedZeros = false;\n @property({type: String}) setpointFormat: ReadoutSetpointFormat =\n ReadoutSetpointFormat.regular;\n @property({type: Number}) setpointSecondaryValue: number | undefined =\n undefined;\n @property({type: String}) setpointDescription = '';\n @property({type: Boolean}) setpointHasHintedZeros = false;\n\n @state()\n private deferredSetpointHidePhase: 'none' | 'hiding' | 'hidden' = 'none';\n @state() private sourcePickerContentVisible = false;\n @state() private sourcePickerOptions: ContextMenuOption[] = [];\n\n @query('slot[name=\"src-picker-content\"]')\n private sourcePickerSlot?: HTMLSlotElement;\n\n private readonly onWindowPointerDown = (event: PointerEvent) => {\n if (!this.sourcePickerContentVisible) {\n return;\n }\n\n const path = event.composedPath();\n if (path.includes(this)) {\n return;\n }\n\n this.sourcePickerContentVisible = false;\n };\n\n private deferredSetpointHideTimer: number | undefined;\n\n private hasCompletedFirstUpdate = false;\n\n private get isHorizontal() {\n return this.direction === ReadoutDirection.horizontal;\n }\n\n private get isVertical() {\n return this.direction === ReadoutDirection.vertical;\n }\n\n private get isEnhanced() {\n return this.variant === ReadoutVariant.enhanced;\n }\n\n private get isStack() {\n return this.variant === ReadoutVariant.stack;\n }\n\n private get hasSrc() {\n return this.src !== undefined && this.src.trim() !== '';\n }\n\n private get showAdviceDivider() {\n return this.isHorizontal && this.hasAdvice && this.hasSetpoint;\n }\n\n private get showSetpointDivider() {\n return (\n this.hasSetpointDivider &&\n this.hasSetpoint &&\n (this.setpointRendered || this.setpointLayoutReserved)\n );\n }\n\n private get showSourceDivider() {\n return this.hasSourceDivider && this.hasSrc;\n }\n\n private get showUnitZone() {\n return this.variant === ReadoutVariant.regular && this.isHorizontal;\n }\n\n private get shouldRenderReadoutMetaZone(): boolean {\n return Boolean(this.label || this.unit || this.labelOnly);\n }\n\n private resolvedValueMode(): ReadoutSetpointMode | undefined {\n if (!this.setpointInteractionRendered) {\n return undefined;\n }\n\n if (!this.isHorizontal) {\n return undefined;\n }\n\n if (this.interactionMode === ReadoutSetpointInteraction.alwaysVisible) {\n return ReadoutSetpointMode.setpoint;\n }\n\n if (this.interactionMode === ReadoutSetpointInteraction.popUp) {\n return undefined;\n }\n\n return undefined;\n }\n\n private resolvedSetpointModeForInteraction():\n | ReadoutSetpointMode\n | undefined {\n if (this.isHorizontal) {\n if (this.interactionMode === ReadoutSetpointInteraction.alwaysVisible) {\n return undefined;\n }\n\n if (this.interactionMode === ReadoutSetpointInteraction.popUp) {\n return ReadoutSetpointMode.setpoint;\n }\n }\n\n return undefined;\n }\n\n private resolveSetpointFormat(): ReadoutSetpointFormat | undefined {\n return this.setpointFormat;\n }\n\n private get interactionMode(): ReadoutSetpointInteraction {\n return this.setpointInteraction;\n }\n\n private get isSetpointReached(): boolean {\n return this.value === this.setpointValue;\n }\n\n private get flipFlopValueFocused(): boolean {\n return (\n this.interactionMode === ReadoutSetpointInteraction.flipFlop &&\n this.isSetpointReached\n );\n }\n\n private get flipFlopSetpointFocused(): boolean {\n return (\n this.interactionMode === ReadoutSetpointInteraction.flipFlop &&\n !this.isSetpointReached\n );\n }\n\n private get shouldHideSetpointForInteraction(): boolean {\n if (!this.setpointInteractionEnabled) {\n return false;\n }\n\n if (this.interactionMode === ReadoutSetpointInteraction.alwaysVisible) {\n return false;\n }\n\n if (this.interactionMode === ReadoutSetpointInteraction.popUp) {\n return (\n this.isSetpointReached && this.deferredSetpointHidePhase === 'hidden'\n );\n }\n\n return false;\n }\n\n private resolvedSetpointVisible(): boolean {\n if (!this.hasSetpoint) {\n return false;\n }\n\n return true;\n }\n\n private get setpointInteractionEnabled(): boolean {\n return this.resolvedSetpointVisible();\n }\n\n private get setpointRendered(): boolean {\n return (\n this.resolvedSetpointVisible() && !this.shouldHideSetpointForInteraction\n );\n }\n\n private get setpointInteractionRendered(): boolean {\n return this.setpointInteractionEnabled && this.setpointRendered;\n }\n\n private get setpointLayoutReserved(): boolean {\n if (\n !this.setpointInteractionEnabled ||\n this.interactionMode !== ReadoutSetpointInteraction.popUp\n ) {\n return false;\n }\n\n if (this.isHorizontal && this.deferredSetpointHidePhase === 'hidden') {\n return false;\n }\n\n return true;\n }\n\n private get hasInteractiveSetpointContext(): boolean {\n if (this.interactionMode === ReadoutSetpointInteraction.flipFlop) {\n return this.hasSetpoint;\n }\n\n if (this.setpointInteractionRendered || this.setpointLayoutReserved) {\n return true;\n }\n\n return (\n this.setpointInteractionEnabled &&\n this.isHorizontal &&\n this.interactionMode === ReadoutSetpointInteraction.popUp &&\n this.deferredSetpointHidePhase === 'hidden'\n );\n }\n\n private get resolvedSetpointPriority(): Priority {\n return this.resolvedValuePriority ?? Priority.regular;\n }\n\n private get baseSize(): ReadoutSetpointSize {\n return this.variant === ReadoutVariant.regular\n ? ReadoutSetpointSize.medium\n : ReadoutSetpointSize.large;\n }\n\n private stepDownSize(size: ReadoutSetpointSize): ReadoutSetpointSize {\n switch (size) {\n case ReadoutSetpointSize.large:\n return ReadoutSetpointSize.medium;\n case ReadoutSetpointSize.medium:\n return ReadoutSetpointSize.regular;\n case ReadoutSetpointSize.regular:\n return ReadoutSetpointSize.small;\n default:\n return ReadoutSetpointSize.small;\n }\n }\n\n private static readonly READOUT_SETPOINT_SIZE_ORDER: ReadoutSetpointSize[] = [\n ReadoutSetpointSize.small,\n ReadoutSetpointSize.regular,\n ReadoutSetpointSize.medium,\n ReadoutSetpointSize.large,\n ];\n\n private sizeRank(size: ReadoutSetpointSize): number {\n return ObcReadout.READOUT_SETPOINT_SIZE_ORDER.indexOf(size);\n }\n\n private get isMultiLineSetpointFormat(): boolean {\n return (\n this.setpointFormat === ReadoutSetpointFormat.description ||\n this.setpointFormat === ReadoutSetpointFormat.range\n );\n }\n\n private get resolvedSetpointSegmentSize(): ReadoutSetpointSize {\n if (this.interactionMode === ReadoutSetpointInteraction.flipFlop) {\n if (this.flipFlopSetpointFocused) {\n return this.baseSize;\n }\n\n const secondarySize =\n this.variant === ReadoutVariant.regular\n ? ReadoutSetpointSize.small\n : this.stepDownSize(this.baseSize);\n\n if (\n this.setpointSize &&\n this.sizeRank(this.setpointSize) < this.sizeRank(this.baseSize)\n ) {\n return this.setpointSize;\n }\n\n return secondarySize;\n }\n\n if (this.setpointSize) {\n return this.setpointSize;\n }\n\n if (\n this.isMultiLineSetpointFormat &&\n this.variant !== ReadoutVariant.regular\n ) {\n return this.stepDownSize(this.baseSize);\n }\n\n return this.baseSize;\n }\n\n private get resolvedValueSetpointSize(): ReadoutSetpointSize {\n if (this.interactionMode === ReadoutSetpointInteraction.flipFlop) {\n const secondarySize =\n this.variant === ReadoutVariant.regular\n ? ReadoutSetpointSize.small\n : this.stepDownSize(this.baseSize);\n return this.flipFlopValueFocused ? this.baseSize : secondarySize;\n }\n\n return this.baseSize;\n }\n\n private get resolvedValuePriority(): Priority | undefined {\n if (this.valuePriority) {\n return this.valuePriority;\n }\n\n if (!this.hasInteractiveSetpointContext) {\n return this.variant === ReadoutVariant.enhanced\n ? Priority.enhanced\n : undefined;\n }\n\n if (this.interactionMode === ReadoutSetpointInteraction.alwaysVisible) {\n return Priority.enhanced;\n }\n\n if (this.interactionMode === ReadoutSetpointInteraction.flipFlop) {\n return Priority.enhanced;\n }\n\n if (this.interactionMode === ReadoutSetpointInteraction.popUp) {\n return Priority.enhanced;\n }\n\n if (this.variant === ReadoutVariant.enhanced) {\n return Priority.enhanced;\n }\n\n return undefined;\n }\n\n /**\n * Segment size mapping for nested setpoint/advice segments.\n *\n * Mapping table (variant × direction):\n * - regular × vertical → regular\n * - regular × horizontal → regular\n * - enhanced × vertical → medium\n * - enhanced × horizontal→ medium\n * - stack × vertical → medium\n * - stack × horizontal → medium\n *\n * Rationale:\n * - Container must not rely on segment defaults (which are `small`).\n * - `regular` presentation uses regular-sized segments.\n * - `enhanced/stack` presentations use a larger segment baseline.\n */\n private get resolvedSegmentSize(): ReadoutSetpointSize {\n return this.variant === ReadoutVariant.regular\n ? ReadoutSetpointSize.regular\n : ReadoutSetpointSize.medium;\n }\n\n /**\n * Container-level layout decision for nested setpoint/advice segments.\n *\n * - **Enhanced**: nested segments use full-width layout (`hugContent` off)\n * regardless of readout `hug` (icon at the left edge, value at the right).\n * - **Regular / stack**: nested segments follow readout `hug` — compact when\n * `hug` is true, stretched when `hug` is false.\n */\n private get shouldHugNestedSegments(): boolean {\n if (this.variant === ReadoutVariant.enhanced) {\n return false;\n }\n\n return this.hug;\n }\n\n private get resolvedSourceType(): ReadoutSourceType {\n if (this.sourceType) {\n return this.sourceType;\n }\n\n return this.variant === ReadoutVariant.regular ||\n ((this.variant === ReadoutVariant.enhanced ||\n this.variant === ReadoutVariant.stack) &&\n this.isVertical)\n ? ReadoutSourceType.small\n : ReadoutSourceType.regular;\n }\n\n private getSourcePickerNavigationItems() {\n const assignedElements =\n this.sourcePickerSlot?.assignedElements({flatten: true}) ?? [];\n\n return assignedElements.flatMap((element) => {\n if (!(element instanceof HTMLElement)) {\n return [];\n }\n\n if (element.localName === 'obc-navigation-item') {\n return [element];\n }\n\n return Array.from(element.querySelectorAll('obc-navigation-item'));\n });\n }\n\n private createSourcePickerOptionIcon(element: HTMLElement) {\n const iconElement = element.querySelector('[slot=\"icon\"]');\n\n if (!(iconElement instanceof HTMLElement)) {\n return undefined;\n }\n\n return html`${iconElement.cloneNode(true)}`;\n }\n\n private getSourcePickerItemInfo(item: HTMLElement, index: number) {\n const itemWithValues = item as HTMLElement & {\n label?: string;\n value?: string;\n };\n const itemLabel = itemWithValues.label || item.getAttribute('label') || '';\n const itemValue =\n item.getAttribute('data-value') ||\n itemWithValues.value ||\n item.getAttribute('value') ||\n itemLabel ||\n `source-option-${index}`;\n\n return {itemLabel, itemValue};\n }\n\n private findSourcePickerOptionElement(value: string) {\n const navigationItems = this.getSourcePickerNavigationItems();\n for (const [index, item] of navigationItems.entries()) {\n const {itemValue} = this.getSourcePickerItemInfo(item, index);\n if (itemValue === value) {\n return item;\n }\n }\n return undefined;\n }\n\n private syncSourcePickerOptions() {\n const navigationItems = this.getSourcePickerNavigationItems();\n\n this.sourcePickerOptions = navigationItems.map((item, index) => {\n const {itemLabel, itemValue} = this.getSourcePickerItemInfo(item, index);\n\n return {\n value: itemValue,\n label: itemLabel,\n icon: this.createSourcePickerOptionIcon(item),\n };\n });\n }\n\n private handleSourcePickerItemClick(\n event: ObcContextMenuInputItemClickEvent\n ) {\n this.dispatchEvent(\n new CustomEvent('source-change', {\n bubbles: true,\n composed: true,\n detail: {\n value: event.detail.value,\n label: event.detail.option?.label,\n },\n })\n );\n this.findSourcePickerOptionElement(event.detail.value)?.click();\n this.sourcePickerContentVisible = false;\n }\n\n override updated(changedProperties: Map<string, unknown>) {\n super.updated(changedProperties);\n\n if (changedProperties.has('sourcePickerContentVisible')) {\n // TODO: Implement this in html instead.\n if (this.sourcePickerContentVisible) {\n window.addEventListener('pointerdown', this.onWindowPointerDown, true);\n } else {\n window.removeEventListener(\n 'pointerdown',\n this.onWindowPointerDown,\n true\n );\n }\n }\n\n if (\n !(\n changedProperties.has('value') ||\n changedProperties.has('setpointValue') ||\n changedProperties.has('hasSetpoint') ||\n changedProperties.has('setpointInteraction')\n )\n ) {\n return;\n }\n\n if (this.interactionMode !== ReadoutSetpointInteraction.popUp) {\n this.deferredSetpointHidePhase = 'none';\n window.clearTimeout(this.deferredSetpointHideTimer);\n this.deferredSetpointHideTimer = undefined;\n return;\n }\n\n const shouldHideSetpoint = this.hasSetpoint && this.isSetpointReached;\n\n if (!this.hasCompletedFirstUpdate) {\n this.deferredSetpointHidePhase = shouldHideSetpoint ? 'hidden' : 'none';\n return;\n }\n\n if (!shouldHideSetpoint) {\n this.deferredSetpointHidePhase = 'none';\n window.clearTimeout(this.deferredSetpointHideTimer);\n this.deferredSetpointHideTimer = undefined;\n return;\n }\n\n if (this.deferredSetpointHidePhase !== 'none') {\n return;\n }\n\n this.deferredSetpointHidePhase = 'hiding';\n window.clearTimeout(this.deferredSetpointHideTimer);\n this.deferredSetpointHideTimer = window.setTimeout(() => {\n this.deferredSetpointHidePhase = 'hidden';\n this.deferredSetpointHideTimer = undefined;\n }, 160);\n }\n\n override firstUpdated() {\n this.hasCompletedFirstUpdate = true;\n }\n\n private renderAdvice() {\n if (!this.hasAdvice) {\n return nothing;\n }\n\n const adviceSegmentSize =\n this.variant === ReadoutVariant.regular && this.isHorizontal\n ? this.resolvedSetpointSegmentSize\n : this.resolvedSegmentSize;\n\n return html`\n <div class=\"readout-segment-wrapper readout-advice\" part=\"advice-wrapper\">\n <slot name=\"advice\">\n <obc-readout-advice\n data-obc-value-typography=${this.variant ===\n ReadoutVariant.regular && this.isVertical\n ? 'medium'\n : nothing}\n .readoutStyle=${this.variant}\n .direction=${this.direction}\n .size=${adviceSegmentSize}\n .hugContent=${this.shouldHugNestedSegments}\n .priority=${this.resolvedValuePriority}\n .format=${this.adviceFormat}\n .state=${this.adviceState}\n .value=${this.adviceValue}\n .secondaryValue=${this.adviceSecondaryValue}\n .description=${this.adviceDescription}\n .minValueLength=${this.minValueLength}\n .hasHintedZeros=${this.adviceHasHintedZeros}\n .fractionDigits=${this.fractionDigits}\n .hasDegree=${this.hasDegree}\n >\n <slot name=\"advice-icon\" slot=\"icon\">\n <obi-placeholder slot=\"icon\"></obi-placeholder>\n </slot>\n </obc-readout-advice>\n </slot>\n </div>\n `;\n }\n\n private renderSetpoint() {\n if (!this.hasSetpoint) {\n return nothing;\n }\n\n if (!this.setpointRendered && !this.setpointLayoutReserved) {\n return nothing;\n }\n\n const setpointReadoutStyle =\n this.isHorizontal &&\n this.interactionMode === ReadoutSetpointInteraction.alwaysVisible\n ? ReadoutVariant.regular\n : this.variant;\n const setpointMode = this.resolvedSetpointModeForInteraction();\n\n return html`\n <div\n class=${classMap({\n 'readout-segment-wrapper': true,\n 'readout-setpoint': true,\n 'setpoint-hiding':\n this.interactionMode === ReadoutSetpointInteraction.popUp &&\n this.deferredSetpointHidePhase === 'hiding',\n 'setpoint-hidden':\n this.interactionMode === ReadoutSetpointInteraction.popUp &&\n this.deferredSetpointHidePhase === 'hidden',\n 'setpoint-active':\n this.setpointInteractionEnabled &&\n this.interactionMode === ReadoutSetpointInteraction.popUp,\n })}\n part=\"setpoint-wrapper\"\n >\n <slot name=\"setpoint\">\n <obc-readout-setpoint\n data-obc-value-typography=${this.variant ===\n ReadoutVariant.regular &&\n this.isVertical &&\n this.resolvedSetpointSegmentSize === ReadoutSetpointSize.medium\n ? 'medium'\n : nothing}\n ?data-obc-tabular-nums=${this.interactionMode ===\n ReadoutSetpointInteraction.flipFlop}\n .readoutStyle=${setpointReadoutStyle}\n .direction=${this.direction}\n .size=${this.resolvedSetpointSegmentSize}\n .format=${this.resolveSetpointFormat()}\n .mode=${setpointMode}\n .priority=${this.resolvedSetpointPriority}\n .hugContent=${this.shouldHugNestedSegments}\n .value=${this.setpointValue}\n .secondaryValue=${this.setpointSecondaryValue}\n .description=${this.setpointDescription}\n .minValueLength=${this.minValueLength}\n .hasHintedZeros=${this.setpointHasHintedZeros}\n .fractionDigits=${this.fractionDigits}\n .hasDegree=${this.hasDegree}\n >\n <slot name=\"setpoint-icon\" slot=\"icon\">\n <obi-input-right slot=\"icon\"></obi-input-right>\n </slot>\n </obc-readout-setpoint>\n </slot>\n </div>\n `;\n }\n\n private renderSetpointDivider() {\n if (!this.showSetpointDivider) {\n return nothing;\n }\n\n return html`<div class=\"setpoint-divider\" part=\"setpoint-divider\"></div>`;\n }\n\n private renderAdviceDivider() {\n if (!this.showAdviceDivider) {\n return nothing;\n }\n\n return html`<div class=\"advice-divider\" part=\"advice-divider\"></div>`;\n }\n\n private renderSourceDivider() {\n if (!this.showSourceDivider) {\n return nothing;\n }\n\n return html`<div class=\"source-divider\" part=\"source-divider\"></div>`;\n }\n\n private renderValueZone() {\n return html`\n <div\n class=${classMap({\n 'readout-segment-wrapper': true,\n 'readout-value-wrapper': true,\n 'value-active':\n this.setpointInteractionRendered &&\n (this.interactionMode ===\n ReadoutSetpointInteraction.alwaysVisible ||\n this.flipFlopValueFocused),\n })}\n part=\"value-wrapper\"\n >\n ${this.renderValueInput()}\n </div>\n `;\n }\n\n private renderSource() {\n if (!this.hasSrc) {\n return nothing;\n }\n\n return renderReadoutSource({\n hasSrc: this.hasSrc,\n hasSrcPicker:\n this.hasSrcPicker &&\n supportsReadoutSourcePicker(this.resolvedSourceType),\n src: this.src ?? '',\n sourceDeltaValue: this.sourceDeltaValue,\n sourceType: this.resolvedSourceType,\n readoutType: this.variant,\n readoutDirection: this.direction,\n sourceHug: this.sourceHug,\n hasSourceLeadingIcon: this.hasSourceLeadingIcon,\n hasSourceTrailingIcon: this.hasSourceTrailingIcon,\n fractionDigits: this.fractionDigits,\n onTogglePicker: () => {\n this.sourcePickerContentVisible = !this.sourcePickerContentVisible;\n },\n onFlyoutClick: () => {\n this.dispatchEvent(\n new CustomEvent('source-flyout-click', {\n bubbles: true,\n composed: true,\n detail: {\n src: this.src ?? '',\n sourceType: this.resolvedSourceType,\n },\n })\n );\n },\n });\n }\n\n private renderSourcePickerContent() {\n if (\n !(\n this.hasSrcPicker &&\n supportsReadoutSourcePicker(this.resolvedSourceType)\n ) ||\n !this.sourcePickerContentVisible\n ) {\n return nothing;\n }\n\n return html`\n <obc-context-menu-input\n .type=${ContextMenuType.Regular}\n .options=${this.sourcePickerOptions}\n .selectedValues=${this.src ? [this.src] : []}\n class=\"source-picker-content\"\n @item-click=${this.handleSourcePickerItemClick}\n @close=${() => {\n this.sourcePickerContentVisible = false;\n }}\n ></obc-context-menu-input>\n `;\n }\n\n private renderSourcePickerSlot() {\n return html`\n <slot\n name=\"src-picker-content\"\n hidden\n @slotchange=${this.syncSourcePickerOptions}\n ></slot>\n `;\n }\n\n private renderValueInput() {\n const elevateValueTypography =\n this.variant === ReadoutVariant.regular && this.isVertical;\n const valuePriority = this.resolvedValuePriority;\n const scopeValuePriority = valuePriority === Priority.enhanced;\n const valueReadoutStyle =\n (this.hasInteractiveSetpointContext &&\n this.interactionMode === ReadoutSetpointInteraction.flipFlop) ||\n (this.hasInteractiveSetpointContext &&\n this.isHorizontal &&\n this.interactionMode === ReadoutSetpointInteraction.popUp)\n ? ReadoutVariant.regular\n : this.variant;\n const valueMode = this.resolvedValueMode();\n\n return html`\n <obc-readout-setpoint\n .variant=${ReadoutSetpointVariant.value}\n .readoutStyle=${valueReadoutStyle}\n .direction=${this.direction}\n .size=${this.resolvedValueSetpointSize}\n .mode=${valueMode}\n .hugContent=${this.shouldHugNestedSegments}\n data-obc-value-typography=${elevateValueTypography ? 'medium' : nothing}\n ?data-obc-tabular-nums=${this.interactionMode ===\n ReadoutSetpointInteraction.flipFlop}\n ?data-obc-priority-scoped=${scopeValuePriority}\n .priority=${valuePriority}\n .value=${this.value}\n .showZeroPadding=${this.showZeroPadding}\n .minValueLength=${this.minValueLength}\n .fractionDigits=${this.fractionDigits}\n .hasHintedZeros=${this.valueHasHintedZeros}\n .hasDegree=${this.hasDegree}\n .off=${this.off}\n >\n ${this.hasLeadingIcon\n ? html`\n <slot name=\"leading-icon\" slot=\"icon\">\n <obi-placeholder slot=\"icon\"></obi-placeholder>\n </slot>\n `\n : nothing}\n ${this.querySelector('[slot=\"value\"]') !== null\n ? html`<slot name=\"value\" slot=\"value\"></slot>`\n : nothing}\n </obc-readout-setpoint>\n `;\n }\n\n private renderHorizontalValueUnitZone(hasUnit: boolean) {\n return html`\n <div\n class=\"readout-segment-wrapper readout-value-unit-wrapper\"\n part=\"value-unit-wrapper\"\n >\n ${this.renderValueInput()}\n ${hasUnit && this.unit ? renderReadoutUnitZone(this.unit) : nothing}\n </div>\n `;\n }\n\n private renderHorizontalLayout() {\n return html`\n <div\n class=\"readout-segment-wrapper readout-horizontal-layout\"\n part=\"horizontal-layout\"\n >\n ${this.variant === ReadoutVariant.regular && this.isHorizontal\n ? renderReadoutLabelZone(this.label)\n : nothing}\n ${this.isEnhanced &&\n this.isHorizontal &&\n this.shouldRenderReadoutMetaZone\n ? renderReadoutMetaZone({\n labelValue: this.label,\n unitValue: this.unit,\n })\n : nothing}\n <div\n class=\"readout-segment-wrapper readout-inline-value-wrapper\"\n part=\"inline-value-wrapper\"\n >\n ${this.hasAdvice ? this.renderAdvice() : nothing}\n ${this.hasAdvice ? this.renderAdviceDivider() : nothing}\n ${this.renderSetpoint()} ${this.renderSetpointDivider()}\n ${this.showUnitZone\n ? this.renderHorizontalValueUnitZone(true)\n : html`${this.renderValueInput()}`}\n ${this.isStack &&\n this.isHorizontal &&\n this.shouldRenderReadoutMetaZone\n ? renderReadoutMetaZone({\n labelValue: this.label,\n unitValue: this.unit,\n })\n : nothing}\n ${this.hasSrc ? this.renderSourceDivider() : nothing}\n ${this.hasSrc ? this.renderSource() : nothing}\n </div>\n </div>\n `;\n }\n\n override render() {\n return html`\n <div\n class=${classMap({\n readout: true,\n [this.variant]: true,\n [this.direction]: true,\n 'alignment-left': this.alignment === 'left',\n 'alignment-center': this.alignment === 'center',\n 'alignment-vertical': this.alignment === 'vertical',\n 'interaction-always-visible':\n this.interactionMode === ReadoutSetpointInteraction.alwaysVisible,\n 'interaction-flip-flop':\n this.setpointInteractionEnabled &&\n this.interactionMode === ReadoutSetpointInteraction.flipFlop,\n 'interaction-pop-up':\n this.setpointInteractionEnabled &&\n this.interactionMode === ReadoutSetpointInteraction.popUp,\n 'focus-setpoint':\n this.setpointInteractionEnabled && this.flipFlopSetpointFocused,\n 'focus-value':\n this.setpointInteractionEnabled && this.flipFlopValueFocused,\n 'alert-none': this.alertState === ReadoutAlertState.none,\n 'alert-low-integrity':\n this.alertState === ReadoutAlertState.lowIntegrity,\n 'alert-invalid': this.alertState === ReadoutAlertState.invalid,\n 'alert-caution': this.alertState === ReadoutAlertState.caution,\n 'alert-warning': this.alertState === ReadoutAlertState.warning,\n 'alert-alarm': this.alertState === ReadoutAlertState.alarm,\n 'has-source': this.hasSrc,\n 'has-setpoint': this.hasSetpoint,\n 'has-setpoint-button':\n this.isHorizontal &&\n this.setpointFormat === ReadoutSetpointFormat.button,\n 'no-hug': !this.hug,\n 'label-only': this.labelOnly,\n })}\n >\n ${!this.labelOnly && this.isVertical ? this.renderAdvice() : nothing}\n ${!this.labelOnly && this.isVertical ? this.renderSetpoint() : nothing}\n ${!this.labelOnly && this.isVertical ? this.renderValueZone() : nothing}\n ${(this.labelOnly || this.isVertical) &&\n this.shouldRenderReadoutMetaZone\n ? renderReadoutMetaZone({\n labelValue: this.label,\n unitValue: this.unit,\n })\n : nothing}\n ${!this.labelOnly && this.hasSrc && this.isVertical\n ? this.renderSource()\n : nothing}\n ${!this.labelOnly && this.isHorizontal\n ? this.renderHorizontalLayout()\n : nothing}\n ${this.renderSourcePickerSlot()}\n </div>\n ${this.renderSourcePickerContent()}\n `;\n }\n\n static override styles = unsafeCSS(componentStyle);\n\n override disconnectedCallback() {\n window.removeEventListener('pointerdown', this.onWindowPointerDown, true);\n window.clearTimeout(this.deferredSetpointHideTimer);\n super.disconnectedCallback();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'obc-readout': ObcReadout;\n }\n}\n"],"names":["ReadoutVariant","ReadoutAlertState","ReadoutSetpointInteraction","ReadoutDirection","ReadoutStackVerticalAlignment"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAqCO,IAAK,mCAAAA,oBAAL;AACLA,kBAAA,SAAA,IAAU;AACVA,kBAAA,UAAA,IAAW;AACXA,kBAAA,OAAA,IAAQ;AAHE,SAAAA;AAAA,GAAA,kBAAA,CAAA,CAAA;AAML,IAAK,sCAAAC,uBAAL;AACLA,qBAAA,MAAA,IAAO;AACPA,qBAAA,cAAA,IAAe;AACfA,qBAAA,SAAA,IAAU;AACVA,qBAAA,SAAA,IAAU;AACVA,qBAAA,SAAA,IAAU;AACVA,qBAAA,OAAA,IAAQ;AANE,SAAAA;AAAA,GAAA,qBAAA,CAAA,CAAA;AASL,IAAK,+CAAAC,gCAAL;AACLA,8BAAA,eAAA,IAAgB;AAChBA,8BAAA,UAAA,IAAW;AACXA,8BAAA,OAAA,IAAQ;AAHE,SAAAA;AAAA,GAAA,8BAAA,CAAA,CAAA;AAML,IAAK,qCAAAC,sBAAL;AACLA,oBAAA,UAAA,IAAW;AACXA,oBAAA,YAAA,IAAa;AAFH,SAAAA;AAAA,GAAA,oBAAA,CAAA,CAAA;AAKL,IAAK,kDAAAC,mCAAL;AACLA,iCAAA,MAAA,IAAO;AACPA,iCAAA,QAAA,IAAS;AACTA,iCAAA,UAAA,IAAW;AAHD,SAAAA;AAAA,GAAA,iCAAA,CAAA,CAAA;AAmDL,IAAM,aAAN,cAAyB,WAAW;AAAA,EAApC,cAAA;AAAA,UAAA,GAAA,SAAA;AAEsB,SAAA,cAAc;AAEf,SAAA,UAA0B;AACzB,SAAA,YAAY;AACb,SAAA,QAAQ;AAGP,SAAA,MAAM;AAEP,SAAA,aACxB;AACwB,SAAA,sBACxB;AACwB,SAAA,YACxB;AAiBF,SAAA,YACE;AACyB,SAAA,MAAM;AACN,SAAA,qBAAqB;AACrB,SAAA,mBAAmB;AACnB,SAAA,kBAAkB;AACnB,SAAA,iBAAiB;AACjB,SAAA,iBAAiB;AAChB,SAAA,sBAAsB;AAEtB,SAAA,YAAY;AACZ,SAAA,eAAe;AAChB,SAAA,mBAAmB;AAElB,SAAA,iBAAiB;AAEC,SAAA,YAAY;AAC9B,SAAA,uBAAuB;AACL,SAAA,wBAAwB;AAC1C,SAAA,YAAY;AAEb,SAAA,eACxB,oBAAoB;AACI,SAAA,cACxB,mBAAmB;AACK,SAAA,uBACxB;AACwB,SAAA,oBAAoB;AACnB,SAAA,uBAAuB;AACxB,SAAA,iBACxB,sBAAsB;AACE,SAAA,yBACxB;AACwB,SAAA,sBAAsB;AACrB,SAAA,yBAAyB;AAGpD,SAAQ,4BAA0D;AACzD,SAAQ,6BAA6B;AACrC,SAAQ,sBAA2C,CAAA;AAK5D,SAAiB,sBAAsB,CAAC,UAAwB;AAC9D,UAAI,CAAC,KAAK,4BAA4B;AACpC;AAAA,MACF;AAEA,YAAM,OAAO,MAAM,aAAA;AACnB,UAAI,KAAK,SAAS,IAAI,GAAG;AACvB;AAAA,MACF;AAEA,WAAK,6BAA6B;AAAA,IACpC;AAIA,SAAQ,0BAA0B;AAAA,EAAA;AAAA,EAElC,IAAY,eAAe;AACzB,WAAO,KAAK,cAAc;AAAA,EAC5B;AAAA,EAEA,IAAY,aAAa;AACvB,WAAO,KAAK,cAAc;AAAA,EAC5B;AAAA,EAEA,IAAY,aAAa;AACvB,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EAEA,IAAY,UAAU;AACpB,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EAEA,IAAY,SAAS;AACnB,WAAO,KAAK,QAAQ,UAAa,KAAK,IAAI,WAAW;AAAA,EACvD;AAAA,EAEA,IAAY,oBAAoB;AAC9B,WAAO,KAAK,gBAAgB,KAAK,aAAa,KAAK;AAAA,EACrD;AAAA,EAEA,IAAY,sBAAsB;AAChC,WACE,KAAK,sBACL,KAAK,gBACJ,KAAK,oBAAoB,KAAK;AAAA,EAEnC;AAAA,EAEA,IAAY,oBAAoB;AAC9B,WAAO,KAAK,oBAAoB,KAAK;AAAA,EACvC;AAAA,EAEA,IAAY,eAAe;AACzB,WAAO,KAAK,YAAY,aAA0B,KAAK;AAAA,EACzD;AAAA,EAEA,IAAY,8BAAuC;AACjD,WAAO,QAAQ,KAAK,SAAS,KAAK,QAAQ,KAAK,SAAS;AAAA,EAC1D;AAAA,EAEQ,oBAAqD;AAC3D,QAAI,CAAC,KAAK,6BAA6B;AACrC,aAAO;AAAA,IACT;AAEA,QAAI,CAAC,KAAK,cAAc;AACtB,aAAO;AAAA,IACT;AAEA,QAAI,KAAK,oBAAoB,kBAA0C;AACrE,aAAO,oBAAoB;AAAA,IAC7B;AAEA,QAAI,KAAK,oBAAoB,UAAkC;AAC7D,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAAA,EAEQ,qCAEM;AACZ,QAAI,KAAK,cAAc;AACrB,UAAI,KAAK,oBAAoB,kBAA0C;AACrE,eAAO;AAAA,MACT;AAEA,UAAI,KAAK,oBAAoB,UAAkC;AAC7D,eAAO,oBAAoB;AAAA,MAC7B;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEQ,wBAA2D;AACjE,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAY,kBAA8C;AACxD,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAY,oBAA6B;AACvC,WAAO,KAAK,UAAU,KAAK;AAAA,EAC7B;AAAA,EAEA,IAAY,uBAAgC;AAC1C,WACE,KAAK,oBAAoB,eACzB,KAAK;AAAA,EAET;AAAA,EAEA,IAAY,0BAAmC;AAC7C,WACE,KAAK,oBAAoB,eACzB,CAAC,KAAK;AAAA,EAEV;AAAA,EAEA,IAAY,mCAA4C;AACtD,QAAI,CAAC,KAAK,4BAA4B;AACpC,aAAO;AAAA,IACT;AAEA,QAAI,KAAK,oBAAoB,kBAA0C;AACrE,aAAO;AAAA,IACT;AAEA,QAAI,KAAK,oBAAoB,UAAkC;AAC7D,aACE,KAAK,qBAAqB,KAAK,8BAA8B;AAAA,IAEjE;AAEA,WAAO;AAAA,EACT;AAAA,EAEQ,0BAAmC;AACzC,QAAI,CAAC,KAAK,aAAa;AACrB,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,IAAY,6BAAsC;AAChD,WAAO,KAAK,wBAAA;AAAA,EACd;AAAA,EAEA,IAAY,mBAA4B;AACtC,WACE,KAAK,6BAA6B,CAAC,KAAK;AAAA,EAE5C;AAAA,EAEA,IAAY,8BAAuC;AACjD,WAAO,KAAK,8BAA8B,KAAK;AAAA,EACjD;AAAA,EAEA,IAAY,yBAAkC;AAC5C,QACE,CAAC,KAAK,8BACN,KAAK,oBAAoB,UACzB;AACA,aAAO;AAAA,IACT;AAEA,QAAI,KAAK,gBAAgB,KAAK,8BAA8B,UAAU;AACpE,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,IAAY,gCAAyC;AACnD,QAAI,KAAK,oBAAoB,aAAqC;AAChE,aAAO,KAAK;AAAA,IACd;AAEA,QAAI,KAAK,+BAA+B,KAAK,wBAAwB;AACnE,aAAO;AAAA,IACT;AAEA,WACE,KAAK,8BACL,KAAK,gBACL,KAAK,oBAAoB,YACzB,KAAK,8BAA8B;AAAA,EAEvC;AAAA,EAEA,IAAY,2BAAqC;AAC/C,WAAO,KAAK,yBAAyB,SAAS;AAAA,EAChD;AAAA,EAEA,IAAY,WAAgC;AAC1C,WAAO,KAAK,YAAY,YACpB,oBAAoB,SACpB,oBAAoB;AAAA,EAC1B;AAAA,EAEQ,aAAa,MAAgD;AACnE,YAAQ,MAAA;AAAA,MACN,KAAK,oBAAoB;AACvB,eAAO,oBAAoB;AAAA,MAC7B,KAAK,oBAAoB;AACvB,eAAO,oBAAoB;AAAA,MAC7B,KAAK,oBAAoB;AACvB,eAAO,oBAAoB;AAAA,MAC7B;AACE,eAAO,oBAAoB;AAAA,IAAA;AAAA,EAEjC;AAAA,EASQ,SAAS,MAAmC;AAClD,WAAO,WAAW,4BAA4B,QAAQ,IAAI;AAAA,EAC5D;AAAA,EAEA,IAAY,4BAAqC;AAC/C,WACE,KAAK,mBAAmB,sBAAsB,eAC9C,KAAK,mBAAmB,sBAAsB;AAAA,EAElD;AAAA,EAEA,IAAY,8BAAmD;AAC7D,QAAI,KAAK,oBAAoB,aAAqC;AAChE,UAAI,KAAK,yBAAyB;AAChC,eAAO,KAAK;AAAA,MACd;AAEA,YAAM,gBACJ,KAAK,YAAY,YACb,oBAAoB,QACpB,KAAK,aAAa,KAAK,QAAQ;AAErC,UACE,KAAK,gBACL,KAAK,SAAS,KAAK,YAAY,IAAI,KAAK,SAAS,KAAK,QAAQ,GAC9D;AACA,eAAO,KAAK;AAAA,MACd;AAEA,aAAO;AAAA,IACT;AAEA,QAAI,KAAK,cAAc;AACrB,aAAO,KAAK;AAAA,IACd;AAEA,QACE,KAAK,6BACL,KAAK,YAAY,WACjB;AACA,aAAO,KAAK,aAAa,KAAK,QAAQ;AAAA,IACxC;AAEA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAY,4BAAiD;AAC3D,QAAI,KAAK,oBAAoB,aAAqC;AAChE,YAAM,gBACJ,KAAK,YAAY,YACb,oBAAoB,QACpB,KAAK,aAAa,KAAK,QAAQ;AACrC,aAAO,KAAK,uBAAuB,KAAK,WAAW;AAAA,IACrD;AAEA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAY,wBAA8C;AACxD,QAAI,KAAK,eAAe;AACtB,aAAO,KAAK;AAAA,IACd;AAEA,QAAI,CAAC,KAAK,+BAA+B;AACvC,aAAO,KAAK,YAAY,aACpB,SAAS,WACT;AAAA,IACN;AAEA,QAAI,KAAK,oBAAoB,kBAA0C;AACrE,aAAO,SAAS;AAAA,IAClB;AAEA,QAAI,KAAK,oBAAoB,aAAqC;AAChE,aAAO,SAAS;AAAA,IAClB;AAEA,QAAI,KAAK,oBAAoB,UAAkC;AAC7D,aAAO,SAAS;AAAA,IAClB;AAEA,QAAI,KAAK,YAAY,YAAyB;AAC5C,aAAO,SAAS;AAAA,IAClB;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBA,IAAY,sBAA2C;AACrD,WAAO,KAAK,YAAY,YACpB,oBAAoB,UACpB,oBAAoB;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,IAAY,0BAAmC;AAC7C,QAAI,KAAK,YAAY,YAAyB;AAC5C,aAAO;AAAA,IACT;AAEA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAY,qBAAwC;AAClD,QAAI,KAAK,YAAY;AACnB,aAAO,KAAK;AAAA,IACd;AAEA,WAAO,KAAK,YAAY,cACpB,KAAK,YAAY,cACjB,KAAK,YAAY,YACjB,KAAK,aACL,kBAAkB,QAClB,kBAAkB;AAAA,EACxB;AAAA,EAEQ,iCAAiC;AACvC,UAAM,mBACJ,KAAK,kBAAkB,iBAAiB,EAAC,SAAS,KAAA,CAAK,KAAK,CAAA;AAE9D,WAAO,iBAAiB,QAAQ,CAAC,YAAY;AAC3C,UAAI,EAAE,mBAAmB,cAAc;AACrC,eAAO,CAAA;AAAA,MACT;AAEA,UAAI,QAAQ,cAAc,uBAAuB;AAC/C,eAAO,CAAC,OAAO;AAAA,MACjB;AAEA,aAAO,MAAM,KAAK,QAAQ,iBAAiB,qBAAqB,CAAC;AAAA,IACnE,CAAC;AAAA,EACH;AAAA,EAEQ,6BAA6B,SAAsB;AACzD,UAAM,cAAc,QAAQ,cAAc,eAAe;AAEzD,QAAI,EAAE,uBAAuB,cAAc;AACzC,aAAO;AAAA,IACT;AAEA,WAAO,OAAO,YAAY,UAAU,IAAI,CAAC;AAAA,EAC3C;AAAA,EAEQ,wBAAwB,MAAmB,OAAe;AAChE,UAAM,iBAAiB;AAIvB,UAAM,YAAY,eAAe,SAAS,KAAK,aAAa,OAAO,KAAK;AACxE,UAAM,YACJ,KAAK,aAAa,YAAY,KAC9B,eAAe,SACf,KAAK,aAAa,OAAO,KACzB,aACA,iBAAiB,KAAK;AAExB,WAAO,EAAC,WAAW,UAAA;AAAA,EACrB;AAAA,EAEQ,8BAA8B,OAAe;AACnD,UAAM,kBAAkB,KAAK,+BAAA;AAC7B,eAAW,CAAC,OAAO,IAAI,KAAK,gBAAgB,WAAW;AACrD,YAAM,EAAC,UAAA,IAAa,KAAK,wBAAwB,MAAM,KAAK;AAC5D,UAAI,cAAc,OAAO;AACvB,eAAO;AAAA,MACT;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEQ,0BAA0B;AAChC,UAAM,kBAAkB,KAAK,+BAAA;AAE7B,SAAK,sBAAsB,gBAAgB,IAAI,CAAC,MAAM,UAAU;AAC9D,YAAM,EAAC,WAAW,UAAA,IAAa,KAAK,wBAAwB,MAAM,KAAK;AAEvE,aAAO;AAAA,QACL,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM,KAAK,6BAA6B,IAAI;AAAA,MAAA;AAAA,IAEhD,CAAC;AAAA,EACH;AAAA,EAEQ,4BACN,OACA;AACA,SAAK;AAAA,MACH,IAAI,YAAY,iBAAiB;AAAA,QAC/B,SAAS;AAAA,QACT,UAAU;AAAA,QACV,QAAQ;AAAA,UACN,OAAO,MAAM,OAAO;AAAA,UACpB,OAAO,MAAM,OAAO,QAAQ;AAAA,QAAA;AAAA,MAC9B,CACD;AAAA,IAAA;AAEH,SAAK,8BAA8B,MAAM,OAAO,KAAK,GAAG,MAAA;AACxD,SAAK,6BAA6B;AAAA,EACpC;AAAA,EAES,QAAQ,mBAAyC;AACxD,UAAM,QAAQ,iBAAiB;AAE/B,QAAI,kBAAkB,IAAI,4BAA4B,GAAG;AAEvD,UAAI,KAAK,4BAA4B;AACnC,eAAO,iBAAiB,eAAe,KAAK,qBAAqB,IAAI;AAAA,MACvE,OAAO;AACL,eAAO;AAAA,UACL;AAAA,UACA,KAAK;AAAA,UACL;AAAA,QAAA;AAAA,MAEJ;AAAA,IACF;AAEA,QACE,EACE,kBAAkB,IAAI,OAAO,KAC7B,kBAAkB,IAAI,eAAe,KACrC,kBAAkB,IAAI,aAAa,KACnC,kBAAkB,IAAI,qBAAqB,IAE7C;AACA;AAAA,IACF;AAEA,QAAI,KAAK,oBAAoB,UAAkC;AAC7D,WAAK,4BAA4B;AACjC,aAAO,aAAa,KAAK,yBAAyB;AAClD,WAAK,4BAA4B;AACjC;AAAA,IACF;AAEA,UAAM,qBAAqB,KAAK,eAAe,KAAK;AAEpD,QAAI,CAAC,KAAK,yBAAyB;AACjC,WAAK,4BAA4B,qBAAqB,WAAW;AACjE;AAAA,IACF;AAEA,QAAI,CAAC,oBAAoB;AACvB,WAAK,4BAA4B;AACjC,aAAO,aAAa,KAAK,yBAAyB;AAClD,WAAK,4BAA4B;AACjC;AAAA,IACF;AAEA,QAAI,KAAK,8BAA8B,QAAQ;AAC7C;AAAA,IACF;AAEA,SAAK,4BAA4B;AACjC,WAAO,aAAa,KAAK,yBAAyB;AAClD,SAAK,4BAA4B,OAAO,WAAW,MAAM;AACvD,WAAK,4BAA4B;AACjC,WAAK,4BAA4B;AAAA,IACnC,GAAG,GAAG;AAAA,EACR;AAAA,EAES,eAAe;AACtB,SAAK,0BAA0B;AAAA,EACjC;AAAA,EAEQ,eAAe;AACrB,QAAI,CAAC,KAAK,WAAW;AACnB,aAAO;AAAA,IACT;AAEA,UAAM,oBACJ,KAAK,YAAY,aAA0B,KAAK,eAC5C,KAAK,8BACL,KAAK;AAEX,WAAO;AAAA;AAAA;AAAA;AAAA,wCAI6B,KAAK,YAC/B,aAA0B,KAAK,aAC7B,WACA,OAAO;AAAA,4BACK,KAAK,OAAO;AAAA,yBACf,KAAK,SAAS;AAAA,oBACnB,iBAAiB;AAAA,0BACX,KAAK,uBAAuB;AAAA,wBAC9B,KAAK,qBAAqB;AAAA,sBAC5B,KAAK,YAAY;AAAA,qBAClB,KAAK,WAAW;AAAA,qBAChB,KAAK,WAAW;AAAA,8BACP,KAAK,oBAAoB;AAAA,2BAC5B,KAAK,iBAAiB;AAAA,8BACnB,KAAK,cAAc;AAAA,8BACnB,KAAK,oBAAoB;AAAA,8BACzB,KAAK,cAAc;AAAA,yBACxB,KAAK,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASrC;AAAA,EAEQ,iBAAiB;AACvB,QAAI,CAAC,KAAK,aAAa;AACrB,aAAO;AAAA,IACT;AAEA,QAAI,CAAC,KAAK,oBAAoB,CAAC,KAAK,wBAAwB;AAC1D,aAAO;AAAA,IACT;AAEA,UAAM,uBACJ,KAAK,gBACL,KAAK,oBAAoB,mBACrB,YACA,KAAK;AACX,UAAM,eAAe,KAAK,mCAAA;AAE1B,WAAO;AAAA;AAAA,gBAEK,SAAS;AAAA,MACf,2BAA2B;AAAA,MAC3B,oBAAoB;AAAA,MACpB,mBACE,KAAK,oBAAoB,YACzB,KAAK,8BAA8B;AAAA,MACrC,mBACE,KAAK,oBAAoB,YACzB,KAAK,8BAA8B;AAAA,MACrC,mBACE,KAAK,8BACL,KAAK,oBAAoB;AAAA;AAAA,IAAA,CAC5B,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,wCAK8B,KAAK,YAC/B,aACF,KAAK,cACL,KAAK,gCAAgC,oBAAoB,SACrD,WACA,OAAO;AAAA,qCACc,KAAK,oBAC9B,WAAA;AAAA,4BACgB,oBAAoB;AAAA,yBACvB,KAAK,SAAS;AAAA,oBACnB,KAAK,2BAA2B;AAAA,sBAC9B,KAAK,uBAAuB;AAAA,oBAC9B,YAAY;AAAA,wBACR,KAAK,wBAAwB;AAAA,0BAC3B,KAAK,uBAAuB;AAAA,qBACjC,KAAK,aAAa;AAAA,8BACT,KAAK,sBAAsB;AAAA,2BAC9B,KAAK,mBAAmB;AAAA,8BACrB,KAAK,cAAc;AAAA,8BACnB,KAAK,sBAAsB;AAAA,8BAC3B,KAAK,cAAc;AAAA,yBACxB,KAAK,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASrC;AAAA,EAEQ,wBAAwB;AAC9B,QAAI,CAAC,KAAK,qBAAqB;AAC7B,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAAA,EAEQ,sBAAsB;AAC5B,QAAI,CAAC,KAAK,mBAAmB;AAC3B,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAAA,EAEQ,sBAAsB;AAC5B,QAAI,CAAC,KAAK,mBAAmB;AAC3B,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAAA,EAEQ,kBAAkB;AACxB,WAAO;AAAA;AAAA,gBAEK,SAAS;AAAA,MACf,2BAA2B;AAAA,MAC3B,yBAAyB;AAAA,MACzB,gBACE,KAAK,gCACJ,KAAK,oBACJ,oBACA,KAAK;AAAA,IAAA,CACV,CAAC;AAAA;AAAA;AAAA,UAGA,KAAK,kBAAkB;AAAA;AAAA;AAAA,EAG/B;AAAA,EAEQ,eAAe;AACrB,QAAI,CAAC,KAAK,QAAQ;AAChB,aAAO;AAAA,IACT;AAEA,WAAO,oBAAoB;AAAA,MACzB,QAAQ,KAAK;AAAA,MACb,cACE,KAAK,gBACL,4BAA4B,KAAK,kBAAkB;AAAA,MACrD,KAAK,KAAK,OAAO;AAAA,MACjB,kBAAkB,KAAK;AAAA,MACvB,YAAY,KAAK;AAAA,MACjB,aAAa,KAAK;AAAA,MAClB,kBAAkB,KAAK;AAAA,MACvB,WAAW,KAAK;AAAA,MAChB,sBAAsB,KAAK;AAAA,MAC3B,uBAAuB,KAAK;AAAA,MAC5B,gBAAgB,KAAK;AAAA,MACrB,gBAAgB,MAAM;AACpB,aAAK,6BAA6B,CAAC,KAAK;AAAA,MAC1C;AAAA,MACA,eAAe,MAAM;AACnB,aAAK;AAAA,UACH,IAAI,YAAY,uBAAuB;AAAA,YACrC,SAAS;AAAA,YACT,UAAU;AAAA,YACV,QAAQ;AAAA,cACN,KAAK,KAAK,OAAO;AAAA,cACjB,YAAY,KAAK;AAAA,YAAA;AAAA,UACnB,CACD;AAAA,QAAA;AAAA,MAEL;AAAA,IAAA,CACD;AAAA,EACH;AAAA,EAEQ,4BAA4B;AAClC,QACE,EACE,KAAK,gBACL,4BAA4B,KAAK,kBAAkB,MAErD,CAAC,KAAK,4BACN;AACA,aAAO;AAAA,IACT;AAEA,WAAO;AAAA;AAAA,gBAEK,gBAAgB,OAAO;AAAA,mBACpB,KAAK,mBAAmB;AAAA,0BACjB,KAAK,MAAM,CAAC,KAAK,GAAG,IAAI,CAAA,CAAE;AAAA;AAAA,sBAE9B,KAAK,2BAA2B;AAAA,iBACrC,MAAM;AACb,WAAK,6BAA6B;AAAA,IACpC,CAAC;AAAA;AAAA;AAAA,EAGP;AAAA,EAEQ,yBAAyB;AAC/B,WAAO;AAAA;AAAA;AAAA;AAAA,sBAIW,KAAK,uBAAuB;AAAA;AAAA;AAAA,EAGhD;AAAA,EAEQ,mBAAmB;AACzB,UAAM,yBACJ,KAAK,YAAY,aAA0B,KAAK;AAClD,UAAM,gBAAgB,KAAK;AAC3B,UAAM,qBAAqB,kBAAkB,SAAS;AACtD,UAAM,oBACH,KAAK,iCACJ,KAAK,oBAAoB,eAC1B,KAAK,iCACJ,KAAK,gBACL,KAAK,oBAAoB,WACvB,YACA,KAAK;AACX,UAAM,YAAY,KAAK,kBAAA;AAEvB,WAAO;AAAA;AAAA,mBAEQ,uBAAuB,KAAK;AAAA,wBACvB,iBAAiB;AAAA,qBACpB,KAAK,SAAS;AAAA,gBACnB,KAAK,yBAAyB;AAAA,gBAC9B,SAAS;AAAA,sBACH,KAAK,uBAAuB;AAAA,oCACd,yBAAyB,WAAW,OAAO;AAAA,iCAC9C,KAAK,oBAC9B,WAAA;AAAA,oCAC4B,kBAAkB;AAAA,oBAClC,aAAa;AAAA,iBAChB,KAAK,KAAK;AAAA,2BACA,KAAK,eAAe;AAAA,0BACrB,KAAK,cAAc;AAAA,0BACnB,KAAK,cAAc;AAAA,0BACnB,KAAK,mBAAmB;AAAA,qBAC7B,KAAK,SAAS;AAAA,eACpB,KAAK,GAAG;AAAA;AAAA,UAEb,KAAK,iBACH;AAAA;AAAA;AAAA;AAAA,gBAKA,OAAO;AAAA,UACT,KAAK,cAAc,gBAAgB,MAAM,OACvC,gDACA,OAAO;AAAA;AAAA;AAAA,EAGjB;AAAA,EAEQ,8BAA8B,SAAkB;AACtD,WAAO;AAAA;AAAA;AAAA;AAAA;AAAA,UAKD,KAAK,kBAAkB;AAAA,UACvB,WAAW,KAAK,OAAO,sBAAsB,KAAK,IAAI,IAAI,OAAO;AAAA;AAAA;AAAA,EAGzE;AAAA,EAEQ,yBAAyB;AAC/B,WAAO;AAAA;AAAA;AAAA;AAAA;AAAA,UAKD,KAAK,YAAY,aAA0B,KAAK,eAC9C,uBAAuB,KAAK,KAAK,IACjC,OAAO;AAAA,UACT,KAAK,cACP,KAAK,gBACL,KAAK,8BACD,sBAAsB;AAAA,MACpB,YAAY,KAAK;AAAA,MACjB,WAAW,KAAK;AAAA,IAAA,CACjB,IACD,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,YAKP,KAAK,YAAY,KAAK,aAAA,IAAiB,OAAO;AAAA,YAC9C,KAAK,YAAY,KAAK,oBAAA,IAAwB,OAAO;AAAA,YACrD,KAAK,eAAA,CAAgB,IAAI,KAAK,uBAAuB;AAAA,YACrD,KAAK,eACH,KAAK,8BAA8B,IAAI,IACvC,OAAO,KAAK,iBAAA,CAAkB,EAAE;AAAA,YAClC,KAAK,WACP,KAAK,gBACL,KAAK,8BACD,sBAAsB;AAAA,MACpB,YAAY,KAAK;AAAA,MACjB,WAAW,KAAK;AAAA,IAAA,CACjB,IACD,OAAO;AAAA,YACT,KAAK,SAAS,KAAK,oBAAA,IAAwB,OAAO;AAAA,YAClD,KAAK,SAAS,KAAK,aAAA,IAAiB,OAAO;AAAA;AAAA;AAAA;AAAA,EAIrD;AAAA,EAES,SAAS;AAChB,WAAO;AAAA;AAAA,gBAEK,SAAS;AAAA,MACf,SAAS;AAAA,MACT,CAAC,KAAK,OAAO,GAAG;AAAA,MAChB,CAAC,KAAK,SAAS,GAAG;AAAA,MAClB,kBAAkB,KAAK,cAAc;AAAA,MACrC,oBAAoB,KAAK,cAAc;AAAA,MACvC,sBAAsB,KAAK,cAAc;AAAA,MACzC,8BACE,KAAK,oBAAoB;AAAA,MAC3B,yBACE,KAAK,8BACL,KAAK,oBAAoB;AAAA,MAC3B,sBACE,KAAK,8BACL,KAAK,oBAAoB;AAAA,MAC3B,kBACE,KAAK,8BAA8B,KAAK;AAAA,MAC1C,eACE,KAAK,8BAA8B,KAAK;AAAA,MAC1C,cAAc,KAAK,eAAe;AAAA,MAClC,uBACE,KAAK,eAAe;AAAA,MACtB,iBAAiB,KAAK,eAAe;AAAA,MACrC,iBAAiB,KAAK,eAAe;AAAA,MACrC,iBAAiB,KAAK,eAAe;AAAA,MACrC,eAAe,KAAK,eAAe;AAAA,MACnC,cAAc,KAAK;AAAA,MACnB,gBAAgB,KAAK;AAAA,MACrB,uBACE,KAAK,gBACL,KAAK,mBAAmB,sBAAsB;AAAA,MAChD,UAAU,CAAC,KAAK;AAAA,MAChB,cAAc,KAAK;AAAA,IAAA,CACpB,CAAC;AAAA;AAAA,UAEA,CAAC,KAAK,aAAa,KAAK,aAAa,KAAK,aAAA,IAAiB,OAAO;AAAA,UAClE,CAAC,KAAK,aAAa,KAAK,aAAa,KAAK,eAAA,IAAmB,OAAO;AAAA,UACpE,CAAC,KAAK,aAAa,KAAK,aAAa,KAAK,gBAAA,IAAoB,OAAO;AAAA,WACpE,KAAK,aAAa,KAAK,eAC1B,KAAK,8BACD,sBAAsB;AAAA,MACpB,YAAY,KAAK;AAAA,MACjB,WAAW,KAAK;AAAA,IAAA,CACjB,IACD,OAAO;AAAA,UACT,CAAC,KAAK,aAAa,KAAK,UAAU,KAAK,aACrC,KAAK,aAAA,IACL,OAAO;AAAA,UACT,CAAC,KAAK,aAAa,KAAK,eACtB,KAAK,uBAAA,IACL,OAAO;AAAA,UACT,KAAK,wBAAwB;AAAA;AAAA,QAE/B,KAAK,2BAA2B;AAAA;AAAA,EAEtC;AAAA,EAIS,uBAAuB;AAC9B,WAAO,oBAAoB,eAAe,KAAK,qBAAqB,IAAI;AACxE,WAAO,aAAa,KAAK,yBAAyB;AAClD,UAAM,qBAAA;AAAA,EACR;AACF;AAz9Ba,WAuSa,8BAAqD;AAAA,EAC3E,oBAAoB;AAAA,EACpB,oBAAoB;AAAA,EACpB,oBAAoB;AAAA,EACpB,oBAAoB;AACtB;AA5SW,WAk9BK,SAAS,UAAU,cAAc;AAj9BvB,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAA,CAAO;AAAA,GADb,WACe,WAAA,SAAA,CAAA;AACC,gBAAA;AAAA,EAA1B,SAAS,EAAC,MAAM,QAAA,CAAQ;AAAA,GAFd,WAEgB,WAAA,eAAA,CAAA;AACD,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAA,CAAO;AAAA,GAHb,WAGe,WAAA,iBAAA,CAAA;AACA,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAA,CAAO;AAAA,GAJb,WAIe,WAAA,WAAA,CAAA;AACC,gBAAA;AAAA,EAA1B,SAAS,EAAC,MAAM,QAAA,CAAQ;AAAA,GALd,WAKgB,WAAA,aAAA,CAAA;AACD,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAA,CAAO;AAAA,GANb,WAMe,WAAA,SAAA,CAAA;AACA,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAA,CAAO;AAAA,GAPb,WAOe,WAAA,QAAA,CAAA;AACA,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAA,CAAO;AAAA,GARb,WAQe,WAAA,OAAA,CAAA;AACC,gBAAA;AAAA,EAA1B,SAAS,EAAC,MAAM,QAAA,CAAQ;AAAA,GATd,WASgB,WAAA,OAAA,CAAA;AACD,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAA,CAAO;AAAA,GAVb,WAUe,WAAA,iBAAA,CAAA;AACA,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAA,CAAO;AAAA,GAXb,WAWe,WAAA,cAAA,CAAA;AAEA,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAA,CAAO;AAAA,GAbb,WAae,WAAA,uBAAA,CAAA;AAEA,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAA,CAAO;AAAA,GAfb,WAee,WAAA,aAAA,CAAA;AAgBA,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAA,CAAO;AAAA,GA/Bb,WA+Be,WAAA,gBAAA,CAAA;AAE1B,gBAAA;AAAA,EADC,SAAS,EAAC,MAAM,OAAA,CAAO;AAAA,GAhCb,WAiCX,WAAA,aAAA,CAAA;AAE2B,gBAAA;AAAA,EAA1B,SAAS,EAAC,MAAM,QAAA,CAAQ;AAAA,GAnCd,WAmCgB,WAAA,OAAA,CAAA;AACA,gBAAA;AAAA,EAA1B,SAAS,EAAC,MAAM,QAAA,CAAQ;AAAA,GApCd,WAoCgB,WAAA,sBAAA,CAAA;AACA,gBAAA;AAAA,EAA1B,SAAS,EAAC,MAAM,QAAA,CAAQ;AAAA,GArCd,WAqCgB,WAAA,oBAAA,CAAA;AACA,gBAAA;AAAA,EAA1B,SAAS,EAAC,MAAM,QAAA,CAAQ;AAAA,GAtCd,WAsCgB,WAAA,mBAAA,CAAA;AACD,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAA,CAAO;AAAA,GAvCb,WAuCe,WAAA,kBAAA,CAAA;AACA,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAA,CAAO;AAAA,GAxCb,WAwCe,WAAA,kBAAA,CAAA;AACC,gBAAA;AAAA,EAA1B,SAAS,EAAC,MAAM,QAAA,CAAQ;AAAA,GAzCd,WAyCgB,WAAA,uBAAA,CAAA;AAEA,gBAAA;AAAA,EAA1B,SAAS,EAAC,MAAM,QAAA,CAAQ;AAAA,GA3Cd,WA2CgB,WAAA,aAAA,CAAA;AACA,gBAAA;AAAA,EAA1B,SAAS,EAAC,MAAM,QAAA,CAAQ;AAAA,GA5Cd,WA4CgB,WAAA,gBAAA,CAAA;AACD,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAA,CAAO;AAAA,GA7Cb,WA6Ce,WAAA,oBAAA,CAAA;AACA,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAA,CAAO;AAAA,GA9Cb,WA8Ce,WAAA,cAAA,CAAA;AACC,gBAAA;AAAA,EAA1B,SAAS,EAAC,MAAM,QAAA,CAAQ;AAAA,GA/Cd,WA+CgB,WAAA,kBAAA,CAAA;AAEkB,gBAAA;AAAA,EAA5C,SAAS,EAAC,MAAM,SAAS,WAAW,OAAM;AAAA,GAjDhC,WAiDkC,WAAA,aAAA,CAAA;AAClB,gBAAA;AAAA,EAA1B,SAAS,EAAC,MAAM,QAAA,CAAQ;AAAA,GAlDd,WAkDgB,WAAA,wBAAA,CAAA;AACkB,gBAAA;AAAA,EAA5C,SAAS,EAAC,MAAM,SAAS,WAAW,OAAM;AAAA,GAnDhC,WAmDkC,WAAA,yBAAA,CAAA;AAClB,gBAAA;AAAA,EAA1B,SAAS,EAAC,MAAM,QAAA,CAAQ;AAAA,GApDd,WAoDgB,WAAA,aAAA,CAAA;AACD,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAA,CAAO;AAAA,GArDb,WAqDe,WAAA,eAAA,CAAA;AACA,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAA,CAAO;AAAA,GAtDb,WAsDe,WAAA,gBAAA,CAAA;AAEA,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAA,CAAO;AAAA,GAxDb,WAwDe,WAAA,eAAA,CAAA;AAEA,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAA,CAAO;AAAA,GA1Db,WA0De,WAAA,wBAAA,CAAA;AAEA,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAA,CAAO;AAAA,GA5Db,WA4De,WAAA,qBAAA,CAAA;AACC,gBAAA;AAAA,EAA1B,SAAS,EAAC,MAAM,QAAA,CAAQ;AAAA,GA7Dd,WA6DgB,WAAA,wBAAA,CAAA;AACD,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAA,CAAO;AAAA,GA9Db,WA8De,WAAA,kBAAA,CAAA;AAEA,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAA,CAAO;AAAA,GAhEb,WAgEe,WAAA,0BAAA,CAAA;AAEA,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAA,CAAO;AAAA,GAlEb,WAkEe,WAAA,uBAAA,CAAA;AACC,gBAAA;AAAA,EAA1B,SAAS,EAAC,MAAM,QAAA,CAAQ;AAAA,GAnEd,WAmEgB,WAAA,0BAAA,CAAA;AAGnB,gBAAA;AAAA,EADP,MAAA;AAAM,GArEI,WAsEH,WAAA,6BAAA,CAAA;AACS,gBAAA;AAAA,EAAhB,MAAA;AAAM,GAvEI,WAuEM,WAAA,8BAAA,CAAA;AACA,gBAAA;AAAA,EAAhB,MAAA;AAAM,GAxEI,WAwEM,WAAA,uBAAA,CAAA;AAGT,gBAAA;AAAA,EADP,MAAM,iCAAiC;AAAA,GA1E7B,WA2EH,WAAA,oBAAA,CAAA;AA3EG,aAAN,gBAAA;AAAA,EADN,cAAc,aAAa;AAAA,GACf,UAAA;"}
|
|
1
|
+
{"version":3,"file":"readout.js","sources":["../../../src/navigation-instruments/readout/readout.ts"],"sourcesContent":["import {LitElement, html, nothing, unsafeCSS} from 'lit';\nimport {property, query, state} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport componentStyle from './readout.css?inline';\nimport {customElement} from '../../decorator.js';\nimport '../../components/context-menu-input/context-menu-input.js';\nimport {\n ContextMenuType,\n type ContextMenuOption,\n type ObcContextMenuInputItemClickEvent,\n} from '../../components/context-menu-input/context-menu-input.js';\nimport {Priority} from '../types.js';\nimport '../../icons/icon-input-right.js';\nimport '../../icons/icon-placeholder.js';\nimport {\n ReadoutAdviceState,\n ReadoutAdviceFormat,\n} from '../readout-advice/readout-advice.js';\nimport '../readout-advice/readout-advice.js';\nimport {\n renderReadoutLabelZone,\n renderReadoutMetaZone,\n renderReadoutUnitZone,\n} from './readout-meta.js';\nimport {\n ReadoutSourceType,\n renderReadoutSource,\n supportsReadoutSourcePicker,\n} from './readout-source.js';\nimport {\n ReadoutSetpointMode,\n ReadoutSetpointFormat,\n ReadoutSetpointVariant,\n ReadoutSetpointSize,\n} from '../readout-setpoint/readout-setpoint.js';\nimport '../readout-setpoint/readout-setpoint.js';\n\nexport enum ReadoutVariant {\n regular = 'regular',\n enhanced = 'enhanced',\n stack = 'stack',\n}\n\nexport enum ReadoutAlertState {\n none = 'none',\n lowIntegrity = 'low-integrity',\n invalid = 'invalid',\n caution = 'caution',\n warning = 'warning',\n alarm = 'alarm',\n}\n\nexport enum ReadoutSetpointInteraction {\n alwaysVisible = 'always-visible',\n flipFlop = 'flip-flop',\n popUp = 'pop-up',\n}\n\nexport enum ReadoutDirection {\n vertical = 'vertical',\n horizontal = 'horizontal',\n}\n\nexport enum ReadoutStackVerticalAlignment {\n left = 'left',\n center = 'center',\n vertical = 'vertical',\n}\n\nexport {ReadoutSourceType};\n\n/**\n * `<obc-readout>` – A component for displaying navigation instrument data.\n *\n * This component is used to show a primary value, optional advice and setpoint segments, units, a label, and a source (e.g., GPS, Gyro).\n * It supports different readout styles, horizontal/vertical layouts, and configurable numeric formatting.\n *\n * ### Features\n * - **Readout Styles:** Supports `regular`, `enhanced`, and `stack` presentations.\n * - **Segments:** Optional advice, setpoint, and leading icon display in addition to the main value.\n * - **Source:** Optional source display with `small`, `regular`, `delta`, and `flyout` variants.\n * - **Source Picker:** Optional source selection with a dropdown and context menu.\n * - **Formatting:** Customizable integer and fraction digits, dashed fallback values, and optional zero padding.\n * - **Layouts:** Can be oriented horizontally or vertically, with optional dividers and segment spacing controls.\n *\n * ### Slots\n * | Slot Name | Purpose |\n * |---------------------|----------------------------------------------------------------------------|\n * | advice | Replaces the fallback advice segment when `hasAdvice` is true. |\n * | advice-icon | Replaces the fallback advice icon when `hasAdvice` is true. |\n * | setpoint | Replaces the fallback setpoint segment when `hasSetpoint` is true. |\n * | setpoint-icon | Replaces the fallback setpoint icon when `hasSetpoint` is true. |\n * | leading-icon | Replaces the fallback leading icon beside the main value. |\n * | value | Replaces the formatted main value content. |\n * | label | Replaces the label content. |\n * | unit | Replaces the unit content. |\n * | source | Replaces the source row content. |\n * | src-picker-content | Content for the source picker context menu (e.g., a list of sources). |\n *\n * @fires source-flyout-click {CustomEvent<{src: string, sourceType?: ReadoutSourceType}>} Fired when the source row is clicked while `sourceType=\"flyout\"`.\n * @fires source-change {CustomEvent<{value: string, label?: string}>} Fired when a source picker option is selected.\n *\n * @slot advice - Replaces the fallback advice segment.\n * @slot advice-icon - Replaces the fallback advice icon.\n * @slot setpoint - Replaces the fallback setpoint segment.\n * @slot setpoint-icon - Replaces the fallback setpoint icon.\n * @slot leading-icon - Replaces the fallback leading icon beside the value.\n * @slot value - Replaces the formatted main value content.\n * @slot label - Replaces the label content.\n * @slot unit - Replaces the unit content.\n * @slot source - Replaces the source row content.\n * @slot src-picker-content - Provides the source picker context menu content.\n */\n@customElement('obc-readout')\nexport class ObcReadout extends LitElement {\n @property({type: Number}) value?: number;\n @property({type: Boolean}) hasSetpoint = false;\n @property({type: Number}) setpointValue?: number;\n @property({type: String}) variant: ReadoutVariant = ReadoutVariant.regular;\n @property({type: Boolean}) hasDegree = false;\n @property({type: String}) label = '';\n @property({type: String}) unit?: string;\n @property({type: String}) src?: string;\n @property({type: Boolean}) off = false;\n @property({type: String}) valuePriority?: Priority;\n @property({type: String}) alertState: ReadoutAlertState =\n ReadoutAlertState.none;\n @property({type: String}) setpointInteraction: ReadoutSetpointInteraction =\n ReadoutSetpointInteraction.alwaysVisible;\n @property({type: String}) direction: ReadoutDirection =\n ReadoutDirection.vertical;\n\n /**\n * Override the size of the setpoint segment (when `hasSetpoint` is true).\n *\n * - In `alwaysVisible` and `popUp` interaction modes: any size value applies.\n * - In `flipFlop` mode: the override is honored only when strictly smaller\n * than the variant's base size (medium for `regular`, large for\n * `enhanced`/`stack`). Larger overrides are ignored, falling back to the\n * default secondary size to preserve the flip-flop visual effect and\n * prevent setpoint/value overlap.\n *\n * When unset, the setpoint size is derived from `variant` (and adjusted for\n * multi-line formats).\n */\n @property({type: String}) setpointSize?: ReadoutSetpointSize;\n @property({type: String})\n alignment: ReadoutStackVerticalAlignment =\n ReadoutStackVerticalAlignment.vertical;\n @property({type: Boolean}) hug = false;\n @property({type: Boolean}) hasSetpointDivider = false;\n @property({type: Boolean}) hasSourceDivider = false;\n @property({type: Boolean}) showZeroPadding = false;\n @property({type: Number}) fractionDigits = 0;\n @property({type: Number}) minValueLength = 0;\n @property({type: Boolean}) valueHasHintedZeros = false;\n\n @property({type: Boolean}) labelOnly = false;\n @property({type: Boolean}) hasSrcPicker = false;\n @property({type: Number}) sourceDeltaValue = 0;\n @property({type: String}) sourceType?: ReadoutSourceType;\n @property({type: Boolean}) hasLeadingIcon = false;\n\n @property({type: Boolean, attribute: false}) sourceHug = true;\n @property({type: Boolean}) hasSourceLeadingIcon = false;\n @property({type: Boolean, attribute: false}) hasSourceTrailingIcon = true;\n @property({type: Boolean}) hasAdvice = false;\n @property({type: Number}) adviceValue?: number;\n @property({type: String}) adviceFormat: ReadoutAdviceFormat =\n ReadoutAdviceFormat.regular;\n @property({type: String}) adviceState: ReadoutAdviceState =\n ReadoutAdviceState.enabled;\n @property({type: Number}) adviceSecondaryValue: number | undefined =\n undefined;\n @property({type: String}) adviceDescription = '';\n @property({type: Boolean}) adviceHasHintedZeros = false;\n @property({type: String}) setpointFormat: ReadoutSetpointFormat =\n ReadoutSetpointFormat.regular;\n @property({type: Number}) setpointSecondaryValue: number | undefined =\n undefined;\n @property({type: String}) setpointDescription = '';\n @property({type: Boolean}) setpointHasHintedZeros = false;\n\n @state()\n private deferredSetpointHidePhase: 'none' | 'hiding' | 'hidden' = 'none';\n @state() private sourcePickerContentVisible = false;\n @state() private sourcePickerOptions: ContextMenuOption[] = [];\n\n @query('slot[name=\"src-picker-content\"]')\n private sourcePickerSlot?: HTMLSlotElement;\n\n private readonly onWindowPointerDown = (event: PointerEvent) => {\n if (!this.sourcePickerContentVisible) {\n return;\n }\n\n const path = event.composedPath();\n if (path.includes(this)) {\n return;\n }\n\n this.sourcePickerContentVisible = false;\n };\n\n private deferredSetpointHideTimer: number | undefined;\n\n private hasCompletedFirstUpdate = false;\n\n private get isHorizontal() {\n return this.direction === ReadoutDirection.horizontal;\n }\n\n private get isVertical() {\n return this.direction === ReadoutDirection.vertical;\n }\n\n private get isEnhanced() {\n return this.variant === ReadoutVariant.enhanced;\n }\n\n private get isStack() {\n return this.variant === ReadoutVariant.stack;\n }\n\n private get hasSrc() {\n return this.src !== undefined && this.src.trim() !== '';\n }\n\n private get showAdviceDivider() {\n return this.isHorizontal && this.hasAdvice && this.hasSetpoint;\n }\n\n private get showSetpointDivider() {\n return (\n this.hasSetpointDivider &&\n this.hasSetpoint &&\n (this.setpointRendered || this.setpointLayoutReserved)\n );\n }\n\n private get showSourceDivider() {\n return this.hasSourceDivider && this.hasSrc;\n }\n\n private get showUnitZone() {\n return this.variant === ReadoutVariant.regular && this.isHorizontal;\n }\n\n private get shouldRenderReadoutMetaZone(): boolean {\n return Boolean(this.label || this.unit || this.labelOnly);\n }\n\n private resolvedValueMode(): ReadoutSetpointMode | undefined {\n if (!this.setpointInteractionRendered) {\n return undefined;\n }\n\n if (!this.isHorizontal) {\n return undefined;\n }\n\n if (this.interactionMode === ReadoutSetpointInteraction.alwaysVisible) {\n return ReadoutSetpointMode.setpoint;\n }\n\n if (this.interactionMode === ReadoutSetpointInteraction.popUp) {\n return undefined;\n }\n\n return undefined;\n }\n\n private resolvedSetpointModeForInteraction():\n | ReadoutSetpointMode\n | undefined {\n if (this.isHorizontal) {\n if (this.interactionMode === ReadoutSetpointInteraction.alwaysVisible) {\n return undefined;\n }\n\n if (this.interactionMode === ReadoutSetpointInteraction.popUp) {\n return ReadoutSetpointMode.setpoint;\n }\n }\n\n return undefined;\n }\n\n private resolveSetpointFormat(): ReadoutSetpointFormat | undefined {\n return this.setpointFormat;\n }\n\n private get interactionMode(): ReadoutSetpointInteraction {\n return this.setpointInteraction;\n }\n\n private get isSetpointReached(): boolean {\n return this.value === this.setpointValue;\n }\n\n private get flipFlopValueFocused(): boolean {\n return (\n this.interactionMode === ReadoutSetpointInteraction.flipFlop &&\n this.isSetpointReached\n );\n }\n\n private get flipFlopSetpointFocused(): boolean {\n return (\n this.interactionMode === ReadoutSetpointInteraction.flipFlop &&\n !this.isSetpointReached\n );\n }\n\n private get shouldHideSetpointForInteraction(): boolean {\n if (!this.setpointInteractionEnabled) {\n return false;\n }\n\n if (this.interactionMode === ReadoutSetpointInteraction.alwaysVisible) {\n return false;\n }\n\n if (this.interactionMode === ReadoutSetpointInteraction.popUp) {\n return (\n this.isSetpointReached && this.deferredSetpointHidePhase === 'hidden'\n );\n }\n\n return false;\n }\n\n private resolvedSetpointVisible(): boolean {\n if (!this.hasSetpoint) {\n return false;\n }\n\n return true;\n }\n\n private get setpointInteractionEnabled(): boolean {\n return this.resolvedSetpointVisible();\n }\n\n private get setpointRendered(): boolean {\n return (\n this.resolvedSetpointVisible() && !this.shouldHideSetpointForInteraction\n );\n }\n\n private get setpointInteractionRendered(): boolean {\n return this.setpointInteractionEnabled && this.setpointRendered;\n }\n\n private get setpointLayoutReserved(): boolean {\n if (\n !this.setpointInteractionEnabled ||\n this.interactionMode !== ReadoutSetpointInteraction.popUp\n ) {\n return false;\n }\n\n if (this.isHorizontal && this.deferredSetpointHidePhase === 'hidden') {\n return false;\n }\n\n return true;\n }\n\n private get hasInteractiveSetpointContext(): boolean {\n if (this.interactionMode === ReadoutSetpointInteraction.flipFlop) {\n return this.hasSetpoint;\n }\n\n if (this.setpointInteractionRendered || this.setpointLayoutReserved) {\n return true;\n }\n\n return (\n this.setpointInteractionEnabled &&\n this.isHorizontal &&\n this.interactionMode === ReadoutSetpointInteraction.popUp &&\n this.deferredSetpointHidePhase === 'hidden'\n );\n }\n\n private get resolvedSetpointPriority(): Priority {\n return this.resolvedValuePriority ?? Priority.regular;\n }\n\n private get baseSize(): ReadoutSetpointSize {\n return this.variant === ReadoutVariant.regular\n ? ReadoutSetpointSize.medium\n : ReadoutSetpointSize.large;\n }\n\n private stepDownSize(size: ReadoutSetpointSize): ReadoutSetpointSize {\n switch (size) {\n case ReadoutSetpointSize.large:\n return ReadoutSetpointSize.medium;\n case ReadoutSetpointSize.medium:\n return ReadoutSetpointSize.regular;\n case ReadoutSetpointSize.regular:\n return ReadoutSetpointSize.small;\n default:\n return ReadoutSetpointSize.small;\n }\n }\n\n private static readonly READOUT_SETPOINT_SIZE_ORDER: ReadoutSetpointSize[] = [\n ReadoutSetpointSize.small,\n ReadoutSetpointSize.regular,\n ReadoutSetpointSize.medium,\n ReadoutSetpointSize.large,\n ];\n\n private sizeRank(size: ReadoutSetpointSize): number {\n return ObcReadout.READOUT_SETPOINT_SIZE_ORDER.indexOf(size);\n }\n\n private get isMultiLineSetpointFormat(): boolean {\n return (\n this.setpointFormat === ReadoutSetpointFormat.description ||\n this.setpointFormat === ReadoutSetpointFormat.range\n );\n }\n\n private get resolvedSetpointSegmentSize(): ReadoutSetpointSize {\n if (this.interactionMode === ReadoutSetpointInteraction.flipFlop) {\n if (this.flipFlopSetpointFocused) {\n return this.baseSize;\n }\n\n const secondarySize =\n this.variant === ReadoutVariant.regular\n ? ReadoutSetpointSize.small\n : this.stepDownSize(this.baseSize);\n\n if (\n this.setpointSize &&\n this.sizeRank(this.setpointSize) < this.sizeRank(this.baseSize)\n ) {\n return this.setpointSize;\n }\n\n return secondarySize;\n }\n\n if (this.setpointSize) {\n return this.setpointSize;\n }\n\n if (\n this.isMultiLineSetpointFormat &&\n this.variant !== ReadoutVariant.regular\n ) {\n return this.stepDownSize(this.baseSize);\n }\n\n return this.baseSize;\n }\n\n private get resolvedValueSetpointSize(): ReadoutSetpointSize {\n if (this.interactionMode === ReadoutSetpointInteraction.flipFlop) {\n const secondarySize =\n this.variant === ReadoutVariant.regular\n ? ReadoutSetpointSize.small\n : this.stepDownSize(this.baseSize);\n return this.flipFlopValueFocused ? this.baseSize : secondarySize;\n }\n\n return this.baseSize;\n }\n\n private get resolvedValuePriority(): Priority | undefined {\n if (this.valuePriority) {\n return this.valuePriority;\n }\n\n if (!this.hasInteractiveSetpointContext) {\n return this.variant === ReadoutVariant.enhanced\n ? Priority.enhanced\n : undefined;\n }\n\n if (this.interactionMode === ReadoutSetpointInteraction.alwaysVisible) {\n return Priority.enhanced;\n }\n\n if (this.interactionMode === ReadoutSetpointInteraction.flipFlop) {\n return Priority.enhanced;\n }\n\n if (this.interactionMode === ReadoutSetpointInteraction.popUp) {\n return Priority.enhanced;\n }\n\n if (this.variant === ReadoutVariant.enhanced) {\n return Priority.enhanced;\n }\n\n return undefined;\n }\n\n /**\n * Segment size mapping for nested setpoint/advice segments.\n *\n * Mapping table (variant × direction):\n * - regular × vertical → regular\n * - regular × horizontal → regular\n * - enhanced × vertical → medium\n * - enhanced × horizontal→ medium\n * - stack × vertical → medium\n * - stack × horizontal → medium\n *\n * Rationale:\n * - Container must not rely on segment defaults (which are `small`).\n * - `regular` presentation uses regular-sized segments.\n * - `enhanced/stack` presentations use a larger segment baseline.\n */\n private get resolvedSegmentSize(): ReadoutSetpointSize {\n return this.variant === ReadoutVariant.regular\n ? ReadoutSetpointSize.regular\n : ReadoutSetpointSize.medium;\n }\n\n /**\n * Container-level layout decision for nested setpoint/advice segments.\n *\n * - **Enhanced**: nested segments use full-width layout (`hugContent` off)\n * regardless of readout `hug` (icon at the left edge, value at the right).\n * - **Regular / stack**: nested segments follow readout `hug` — compact when\n * `hug` is true, stretched when `hug` is false.\n */\n private get shouldHugNestedSegments(): boolean {\n if (this.variant === ReadoutVariant.enhanced) {\n return false;\n }\n\n return this.hug;\n }\n\n private get resolvedSourceType(): ReadoutSourceType {\n if (this.sourceType) {\n return this.sourceType;\n }\n\n return this.variant === ReadoutVariant.regular ||\n ((this.variant === ReadoutVariant.enhanced ||\n this.variant === ReadoutVariant.stack) &&\n this.isVertical)\n ? ReadoutSourceType.small\n : ReadoutSourceType.regular;\n }\n\n private getSourcePickerNavigationItems() {\n const assignedElements =\n this.sourcePickerSlot?.assignedElements({flatten: true}) ?? [];\n\n return assignedElements.flatMap((element) => {\n if (!(element instanceof HTMLElement)) {\n return [];\n }\n\n if (element.localName === 'obc-navigation-item') {\n return [element];\n }\n\n return Array.from(element.querySelectorAll('obc-navigation-item'));\n });\n }\n\n private createSourcePickerOptionIcon(element: HTMLElement) {\n const iconElement = element.querySelector('[slot=\"icon\"]');\n\n if (!(iconElement instanceof HTMLElement)) {\n return undefined;\n }\n\n return html`${iconElement.cloneNode(true)}`;\n }\n\n private getSourcePickerItemInfo(item: HTMLElement, index: number) {\n const itemWithValues = item as HTMLElement & {\n label?: string;\n value?: string;\n };\n const itemLabel = itemWithValues.label || item.getAttribute('label') || '';\n const itemValue =\n item.getAttribute('data-value') ||\n itemWithValues.value ||\n item.getAttribute('value') ||\n itemLabel ||\n `source-option-${index}`;\n\n return {itemLabel, itemValue};\n }\n\n private findSourcePickerOptionElement(value: string) {\n const navigationItems = this.getSourcePickerNavigationItems();\n for (const [index, item] of navigationItems.entries()) {\n const {itemValue} = this.getSourcePickerItemInfo(item, index);\n if (itemValue === value) {\n return item;\n }\n }\n return undefined;\n }\n\n private syncSourcePickerOptions() {\n const navigationItems = this.getSourcePickerNavigationItems();\n\n this.sourcePickerOptions = navigationItems.map((item, index) => {\n const {itemLabel, itemValue} = this.getSourcePickerItemInfo(item, index);\n\n return {\n value: itemValue,\n label: itemLabel,\n icon: this.createSourcePickerOptionIcon(item),\n };\n });\n }\n\n private handleSourcePickerItemClick(\n event: ObcContextMenuInputItemClickEvent\n ) {\n this.dispatchEvent(\n new CustomEvent('source-change', {\n bubbles: true,\n composed: true,\n detail: {\n value: event.detail.value,\n label: event.detail.option?.label,\n },\n })\n );\n this.findSourcePickerOptionElement(event.detail.value)?.click();\n this.sourcePickerContentVisible = false;\n }\n\n override updated(changedProperties: Map<string, unknown>) {\n super.updated(changedProperties);\n\n if (changedProperties.has('sourcePickerContentVisible')) {\n // TODO: Implement this in html instead.\n if (this.sourcePickerContentVisible) {\n window.addEventListener('pointerdown', this.onWindowPointerDown, true);\n } else {\n window.removeEventListener(\n 'pointerdown',\n this.onWindowPointerDown,\n true\n );\n }\n }\n\n if (\n !(\n changedProperties.has('value') ||\n changedProperties.has('setpointValue') ||\n changedProperties.has('hasSetpoint') ||\n changedProperties.has('setpointInteraction')\n )\n ) {\n return;\n }\n\n if (this.interactionMode !== ReadoutSetpointInteraction.popUp) {\n this.deferredSetpointHidePhase = 'none';\n window.clearTimeout(this.deferredSetpointHideTimer);\n this.deferredSetpointHideTimer = undefined;\n return;\n }\n\n const shouldHideSetpoint = this.hasSetpoint && this.isSetpointReached;\n\n if (!this.hasCompletedFirstUpdate) {\n this.deferredSetpointHidePhase = shouldHideSetpoint ? 'hidden' : 'none';\n return;\n }\n\n if (!shouldHideSetpoint) {\n this.deferredSetpointHidePhase = 'none';\n window.clearTimeout(this.deferredSetpointHideTimer);\n this.deferredSetpointHideTimer = undefined;\n return;\n }\n\n if (this.deferredSetpointHidePhase !== 'none') {\n return;\n }\n\n this.deferredSetpointHidePhase = 'hiding';\n window.clearTimeout(this.deferredSetpointHideTimer);\n this.deferredSetpointHideTimer = window.setTimeout(() => {\n this.deferredSetpointHidePhase = 'hidden';\n this.deferredSetpointHideTimer = undefined;\n }, 160);\n }\n\n override firstUpdated() {\n this.hasCompletedFirstUpdate = true;\n }\n\n private renderAdvice() {\n if (!this.hasAdvice) {\n return nothing;\n }\n\n const adviceSegmentSize =\n this.variant === ReadoutVariant.regular && this.isHorizontal\n ? this.resolvedSetpointSegmentSize\n : this.resolvedSegmentSize;\n\n return html`\n <div class=\"readout-segment-wrapper readout-advice\" part=\"advice-wrapper\">\n <slot name=\"advice\">\n <obc-readout-advice\n data-obc-value-typography=${this.variant ===\n ReadoutVariant.regular && this.isVertical\n ? 'medium'\n : nothing}\n .readoutStyle=${this.variant}\n .direction=${this.direction}\n .size=${adviceSegmentSize}\n .hugContent=${this.shouldHugNestedSegments}\n .priority=${this.resolvedValuePriority}\n .format=${this.adviceFormat}\n .state=${this.adviceState}\n .value=${this.adviceValue}\n .secondaryValue=${this.adviceSecondaryValue}\n .description=${this.adviceDescription}\n .minValueLength=${this.minValueLength}\n .hasHintedZeros=${this.adviceHasHintedZeros}\n .fractionDigits=${this.fractionDigits}\n .hasDegree=${this.hasDegree}\n >\n <slot name=\"advice-icon\" slot=\"icon\">\n <obi-placeholder slot=\"icon\"></obi-placeholder>\n </slot>\n </obc-readout-advice>\n </slot>\n </div>\n `;\n }\n\n private renderSetpoint() {\n if (!this.hasSetpoint) {\n return nothing;\n }\n\n if (!this.setpointRendered && !this.setpointLayoutReserved) {\n return nothing;\n }\n\n const setpointReadoutStyle =\n this.isHorizontal &&\n this.interactionMode === ReadoutSetpointInteraction.alwaysVisible\n ? ReadoutVariant.regular\n : this.variant;\n const setpointMode = this.resolvedSetpointModeForInteraction();\n\n return html`\n <div\n class=${classMap({\n 'readout-segment-wrapper': true,\n 'readout-setpoint': true,\n 'setpoint-hiding':\n this.interactionMode === ReadoutSetpointInteraction.popUp &&\n this.deferredSetpointHidePhase === 'hiding',\n 'setpoint-hidden':\n this.interactionMode === ReadoutSetpointInteraction.popUp &&\n this.deferredSetpointHidePhase === 'hidden',\n 'setpoint-active':\n this.setpointInteractionEnabled &&\n this.interactionMode === ReadoutSetpointInteraction.popUp,\n })}\n part=\"setpoint-wrapper\"\n >\n <slot name=\"setpoint\">\n <obc-readout-setpoint\n .reserveSpaceForIcon=${this.alignment !==\n ReadoutStackVerticalAlignment.center}\n data-obc-value-typography=${this.variant ===\n ReadoutVariant.regular &&\n this.isVertical &&\n this.resolvedSetpointSegmentSize === ReadoutSetpointSize.medium\n ? 'medium'\n : nothing}\n ?data-obc-tabular-nums=${this.interactionMode ===\n ReadoutSetpointInteraction.flipFlop}\n .readoutStyle=${setpointReadoutStyle}\n .direction=${this.direction}\n .size=${this.resolvedSetpointSegmentSize}\n .format=${this.resolveSetpointFormat()}\n .mode=${setpointMode}\n .priority=${this.resolvedSetpointPriority}\n .hugContent=${this.shouldHugNestedSegments}\n .value=${this.setpointValue}\n .secondaryValue=${this.setpointSecondaryValue}\n .description=${this.setpointDescription}\n .minValueLength=${this.minValueLength}\n .hasHintedZeros=${this.setpointHasHintedZeros}\n .fractionDigits=${this.fractionDigits}\n .hasDegree=${this.hasDegree}\n >\n <slot name=\"setpoint-icon\" slot=\"icon\">\n <obi-input-right slot=\"icon\"></obi-input-right>\n </slot>\n </obc-readout-setpoint>\n </slot>\n </div>\n `;\n }\n\n private renderSetpointDivider() {\n if (!this.showSetpointDivider) {\n return nothing;\n }\n\n return html`<div class=\"setpoint-divider\" part=\"setpoint-divider\"></div>`;\n }\n\n private renderAdviceDivider() {\n if (!this.showAdviceDivider) {\n return nothing;\n }\n\n return html`<div class=\"advice-divider\" part=\"advice-divider\"></div>`;\n }\n\n private renderSourceDivider() {\n if (!this.showSourceDivider) {\n return nothing;\n }\n\n return html`<div class=\"source-divider\" part=\"source-divider\"></div>`;\n }\n\n private renderValueZone() {\n return html`\n <div\n class=${classMap({\n 'readout-segment-wrapper': true,\n 'readout-value-wrapper': true,\n 'value-active':\n this.setpointInteractionRendered &&\n (this.interactionMode ===\n ReadoutSetpointInteraction.alwaysVisible ||\n this.flipFlopValueFocused),\n })}\n part=\"value-wrapper\"\n >\n ${this.renderValueInput()}\n </div>\n `;\n }\n\n private renderSource() {\n if (!this.hasSrc) {\n return nothing;\n }\n\n return renderReadoutSource({\n hasSrc: this.hasSrc,\n hasSrcPicker:\n this.hasSrcPicker &&\n supportsReadoutSourcePicker(this.resolvedSourceType),\n src: this.src ?? '',\n sourceDeltaValue: this.sourceDeltaValue,\n sourceType: this.resolvedSourceType,\n readoutType: this.variant,\n readoutDirection: this.direction,\n sourceHug: this.sourceHug,\n hasSourceLeadingIcon: this.hasSourceLeadingIcon,\n hasSourceTrailingIcon: this.hasSourceTrailingIcon,\n fractionDigits: this.fractionDigits,\n onTogglePicker: () => {\n this.sourcePickerContentVisible = !this.sourcePickerContentVisible;\n },\n onFlyoutClick: () => {\n this.dispatchEvent(\n new CustomEvent('source-flyout-click', {\n bubbles: true,\n composed: true,\n detail: {\n src: this.src ?? '',\n sourceType: this.resolvedSourceType,\n },\n })\n );\n },\n });\n }\n\n private renderSourcePickerContent() {\n if (\n !(\n this.hasSrcPicker &&\n supportsReadoutSourcePicker(this.resolvedSourceType)\n ) ||\n !this.sourcePickerContentVisible\n ) {\n return nothing;\n }\n\n return html`\n <obc-context-menu-input\n .type=${ContextMenuType.Regular}\n .options=${this.sourcePickerOptions}\n .selectedValues=${this.src ? [this.src] : []}\n class=\"source-picker-content\"\n @item-click=${this.handleSourcePickerItemClick}\n @close=${() => {\n this.sourcePickerContentVisible = false;\n }}\n ></obc-context-menu-input>\n `;\n }\n\n private renderSourcePickerSlot() {\n return html`\n <slot\n name=\"src-picker-content\"\n hidden\n @slotchange=${this.syncSourcePickerOptions}\n ></slot>\n `;\n }\n\n private renderValueInput() {\n const elevateValueTypography =\n this.variant === ReadoutVariant.regular && this.isVertical;\n const valuePriority = this.resolvedValuePriority;\n const scopeValuePriority = valuePriority === Priority.enhanced;\n const valueReadoutStyle =\n (this.hasInteractiveSetpointContext &&\n this.interactionMode === ReadoutSetpointInteraction.flipFlop) ||\n (this.hasInteractiveSetpointContext &&\n this.isHorizontal &&\n this.interactionMode === ReadoutSetpointInteraction.popUp)\n ? ReadoutVariant.regular\n : this.variant;\n const valueMode = this.resolvedValueMode();\n\n return html`\n <obc-readout-setpoint\n .variant=${ReadoutSetpointVariant.value}\n .readoutStyle=${valueReadoutStyle}\n .direction=${this.direction}\n .size=${this.resolvedValueSetpointSize}\n .mode=${valueMode}\n .hugContent=${this.shouldHugNestedSegments}\n data-obc-value-typography=${elevateValueTypography ? 'medium' : nothing}\n ?data-obc-tabular-nums=${this.interactionMode ===\n ReadoutSetpointInteraction.flipFlop}\n ?data-obc-priority-scoped=${scopeValuePriority}\n .priority=${valuePriority}\n .value=${this.value}\n .showZeroPadding=${this.showZeroPadding}\n .minValueLength=${this.minValueLength}\n .fractionDigits=${this.fractionDigits}\n .hasHintedZeros=${this.valueHasHintedZeros}\n .hasDegree=${this.hasDegree}\n .off=${this.off}\n >\n ${this.hasLeadingIcon\n ? html`\n <slot name=\"leading-icon\" slot=\"icon\">\n <obi-placeholder slot=\"icon\"></obi-placeholder>\n </slot>\n `\n : nothing}\n ${this.querySelector('[slot=\"value\"]') !== null\n ? html`<slot name=\"value\" slot=\"value\"></slot>`\n : nothing}\n </obc-readout-setpoint>\n `;\n }\n\n private renderHorizontalValueUnitZone(hasUnit: boolean) {\n return html`\n <div\n class=\"readout-segment-wrapper readout-value-unit-wrapper\"\n part=\"value-unit-wrapper\"\n >\n ${this.renderValueInput()}\n ${hasUnit && this.unit ? renderReadoutUnitZone(this.unit) : nothing}\n </div>\n `;\n }\n\n private renderHorizontalLayout() {\n return html`\n <div\n class=\"readout-segment-wrapper readout-horizontal-layout\"\n part=\"horizontal-layout\"\n >\n ${this.variant === ReadoutVariant.regular && this.isHorizontal\n ? renderReadoutLabelZone(this.label)\n : nothing}\n ${this.isEnhanced &&\n this.isHorizontal &&\n this.shouldRenderReadoutMetaZone\n ? renderReadoutMetaZone({\n labelValue: this.label,\n unitValue: this.unit,\n })\n : nothing}\n <div\n class=\"readout-segment-wrapper readout-inline-value-wrapper\"\n part=\"inline-value-wrapper\"\n >\n ${this.hasAdvice ? this.renderAdvice() : nothing}\n ${this.hasAdvice ? this.renderAdviceDivider() : nothing}\n ${this.renderSetpoint()} ${this.renderSetpointDivider()}\n ${this.showUnitZone\n ? this.renderHorizontalValueUnitZone(true)\n : html`${this.renderValueInput()}`}\n ${this.isStack &&\n this.isHorizontal &&\n this.shouldRenderReadoutMetaZone\n ? renderReadoutMetaZone({\n labelValue: this.label,\n unitValue: this.unit,\n })\n : nothing}\n ${this.hasSrc ? this.renderSourceDivider() : nothing}\n ${this.hasSrc ? this.renderSource() : nothing}\n </div>\n </div>\n `;\n }\n\n override render() {\n return html`\n <div\n class=${classMap({\n readout: true,\n [this.variant]: true,\n [this.direction]: true,\n 'alignment-left': this.alignment === 'left',\n 'alignment-center': this.alignment === 'center',\n 'alignment-vertical': this.alignment === 'vertical',\n 'interaction-always-visible':\n this.interactionMode === ReadoutSetpointInteraction.alwaysVisible,\n 'interaction-flip-flop':\n this.setpointInteractionEnabled &&\n this.interactionMode === ReadoutSetpointInteraction.flipFlop,\n 'interaction-pop-up':\n this.setpointInteractionEnabled &&\n this.interactionMode === ReadoutSetpointInteraction.popUp,\n 'focus-setpoint':\n this.setpointInteractionEnabled && this.flipFlopSetpointFocused,\n 'focus-value':\n this.setpointInteractionEnabled && this.flipFlopValueFocused,\n 'alert-none': this.alertState === ReadoutAlertState.none,\n 'alert-low-integrity':\n this.alertState === ReadoutAlertState.lowIntegrity,\n 'alert-invalid': this.alertState === ReadoutAlertState.invalid,\n 'alert-caution': this.alertState === ReadoutAlertState.caution,\n 'alert-warning': this.alertState === ReadoutAlertState.warning,\n 'alert-alarm': this.alertState === ReadoutAlertState.alarm,\n 'has-source': this.hasSrc,\n 'has-setpoint': this.hasSetpoint,\n 'has-setpoint-button':\n this.isHorizontal &&\n this.setpointFormat === ReadoutSetpointFormat.button,\n 'no-hug': !this.hug,\n 'label-only': this.labelOnly,\n })}\n >\n ${!this.labelOnly && this.isVertical ? this.renderAdvice() : nothing}\n ${!this.labelOnly && this.isVertical ? this.renderSetpoint() : nothing}\n ${!this.labelOnly && this.isVertical ? this.renderValueZone() : nothing}\n ${(this.labelOnly || this.isVertical) &&\n this.shouldRenderReadoutMetaZone\n ? renderReadoutMetaZone({\n labelValue: this.label,\n unitValue: this.unit,\n })\n : nothing}\n ${!this.labelOnly && this.hasSrc && this.isVertical\n ? this.renderSource()\n : nothing}\n ${!this.labelOnly && this.isHorizontal\n ? this.renderHorizontalLayout()\n : nothing}\n ${this.renderSourcePickerSlot()}\n </div>\n ${this.renderSourcePickerContent()}\n `;\n }\n\n static override styles = unsafeCSS(componentStyle);\n\n override disconnectedCallback() {\n window.removeEventListener('pointerdown', this.onWindowPointerDown, true);\n window.clearTimeout(this.deferredSetpointHideTimer);\n super.disconnectedCallback();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'obc-readout': ObcReadout;\n }\n}\n"],"names":["ReadoutVariant","ReadoutAlertState","ReadoutSetpointInteraction","ReadoutDirection","ReadoutStackVerticalAlignment"],"mappings":"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"}
|
|
@@ -9,17 +9,14 @@ const componentStyle = css`
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
:host {
|
|
12
|
-
display:
|
|
13
|
-
|
|
14
|
-
width: max-content;
|
|
15
|
-
max-width: none;
|
|
12
|
+
display: block;
|
|
13
|
+
width: 100%;
|
|
16
14
|
}
|
|
17
15
|
|
|
18
16
|
.root {
|
|
19
17
|
display: inline-flex;
|
|
20
18
|
align-items: flex-end;
|
|
21
19
|
border-radius: var(--global-border-radius-border-radius-base);
|
|
22
|
-
max-width: none;
|
|
23
20
|
width: 100%;
|
|
24
21
|
}
|
|
25
22
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readout-list-item.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"readout-list-item.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -70,6 +70,7 @@ export declare class ObcReadoutListItem extends LitElement {
|
|
|
70
70
|
showZeroPadding: boolean;
|
|
71
71
|
minValueLength: number;
|
|
72
72
|
hasHintedZeros: boolean;
|
|
73
|
+
labelOnly: boolean;
|
|
73
74
|
private get resolvedMainValueSize();
|
|
74
75
|
private get resolvedValueSize();
|
|
75
76
|
private get resolvedValueTypography();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readout-list-item.d.ts","sourceRoot":"","sources":["../../../src/navigation-instruments/readout-list-item/readout-list-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAA2B,MAAM,KAAK,CAAC;AAQzD,OAAO,yCAAyC,CAAC;AACjD,OAAO,iCAAiC,CAAC;AAGzC,oBAAY,yBAAyB;IACnC,IAAI,SAAS;IACb,YAAY,kBAAkB;IAC9B,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,oBAAY,mBAAmB;IAC7B,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AAED,oBAAY,uBAAuB;IACjC,YAAY,kBAAkB;IAC9B,WAAW,iBAAiB;IAC5B,UAAU,gBAAgB;CAC3B;AAED,oBAAY,uBAAuB;IACjC,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,gBAAgB,uBAAuB;CACxC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBACa,kBAAmB,SAAQ,UAAU;IACtB,IAAI,EAAE,mBAAmB,CACxB;IAE3B,QAAQ,EAAE,uBAAuB,CAAwC;IAEzE,QAAQ,EAAE,uBAAuB,CAAmC;IAEpE,UAAU,EAAE,yBAAyB,CAAkC;IAE7C,KAAK,SAAM;IACX,IAAI,SAAM;IACV,GAAG,SAAM;IAET,KAAK,EAAE,MAAM,GAAG,SAAS,CAAa;IACtC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAa;IAE7C,WAAW,UAAS;IAEpB,SAAS,UAAS;IAClB,OAAO,UAAS;IAChB,QAAQ,UAAS;IACjB,SAAS,UAAS;IAClB,cAAc,UAAS;IACvB,YAAY,UAAS;IAEtB,cAAc,SAAK;IAClB,eAAe,UAAS;IAEzB,cAAc,SAAK;IAClB,cAAc,UAAS;
|
|
1
|
+
{"version":3,"file":"readout-list-item.d.ts","sourceRoot":"","sources":["../../../src/navigation-instruments/readout-list-item/readout-list-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAA2B,MAAM,KAAK,CAAC;AAQzD,OAAO,yCAAyC,CAAC;AACjD,OAAO,iCAAiC,CAAC;AAGzC,oBAAY,yBAAyB;IACnC,IAAI,SAAS;IACb,YAAY,kBAAkB;IAC9B,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,oBAAY,mBAAmB;IAC7B,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AAED,oBAAY,uBAAuB;IACjC,YAAY,kBAAkB;IAC9B,WAAW,iBAAiB;IAC5B,UAAU,gBAAgB;CAC3B;AAED,oBAAY,uBAAuB;IACjC,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,gBAAgB,uBAAuB;CACxC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBACa,kBAAmB,SAAQ,UAAU;IACtB,IAAI,EAAE,mBAAmB,CACxB;IAE3B,QAAQ,EAAE,uBAAuB,CAAwC;IAEzE,QAAQ,EAAE,uBAAuB,CAAmC;IAEpE,UAAU,EAAE,yBAAyB,CAAkC;IAE7C,KAAK,SAAM;IACX,IAAI,SAAM;IACV,GAAG,SAAM;IAET,KAAK,EAAE,MAAM,GAAG,SAAS,CAAa;IACtC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAa;IAE7C,WAAW,UAAS;IAEpB,SAAS,UAAS;IAClB,OAAO,UAAS;IAChB,QAAQ,UAAS;IACjB,SAAS,UAAS;IAClB,cAAc,UAAS;IACvB,YAAY,UAAS;IAEtB,cAAc,SAAK;IAClB,eAAe,UAAS;IAEzB,cAAc,SAAK;IAClB,cAAc,UAAS;IAEvB,SAAS,UAAS;IAE7C,OAAO,KAAK,qBAAqB,GAMhC;IAED,OAAO,KAAK,iBAAiB,GAe5B;IAED,OAAO,KAAK,uBAAuB,GA0BlC;IAED,OAAO,KAAK,oBAAoB,GAa/B;IAED,OAAO,KAAK,sBAAsB,GAWjC;IAED,OAAO,KAAK,kBAAkB,GAI7B;IAED,OAAO,KAAK,wBAAwB,GASnC;IAED,OAAO,KAAK,oBAAoB,GAQ/B;IAED,OAAO,KAAK,mBAAmB,GAI9B;IAED,OAAO,KAAK,2BAA2B,GAKtC;IAED,OAAO,KAAK,0BAA0B,GAKrC;IAED,OAAO,CAAC,oBAAoB;IA+C5B,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,cAAc;IA0BtB,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,oBAAoB;IAanB,MAAM;IA2Cf,OAAgB,MAAM,0BAA6B;CACpD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,uBAAuB,EAAE,kBAAkB,CAAC;KAC7C;CACF"}
|
|
@@ -67,6 +67,7 @@ let ObcReadoutListItem = class extends LitElement {
|
|
|
67
67
|
this.showZeroPadding = false;
|
|
68
68
|
this.minValueLength = 0;
|
|
69
69
|
this.hasHintedZeros = false;
|
|
70
|
+
this.labelOnly = false;
|
|
70
71
|
}
|
|
71
72
|
get resolvedMainValueSize() {
|
|
72
73
|
return this.size === "enhanced" ? ReadoutSetpointSize.large : this.size === "priority" ? ReadoutSetpointSize.medium : ReadoutSetpointSize.regular;
|
|
@@ -283,11 +284,13 @@ let ObcReadoutListItem = class extends LitElement {
|
|
|
283
284
|
${this.renderLabelContainer()}
|
|
284
285
|
</div>
|
|
285
286
|
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
287
|
+
${this.labelOnly ? nothing : html`
|
|
288
|
+
<div class="value-container" part="value-container">
|
|
289
|
+
${this.renderValue()} ${this.renderTrailingUnit()}
|
|
290
|
+
</div>
|
|
289
291
|
|
|
290
|
-
|
|
292
|
+
${this.renderTrailingSource()}
|
|
293
|
+
`}
|
|
291
294
|
</div>
|
|
292
295
|
</div>
|
|
293
296
|
`;
|
|
@@ -354,6 +357,9 @@ __decorateClass([
|
|
|
354
357
|
__decorateClass([
|
|
355
358
|
property({ type: Boolean })
|
|
356
359
|
], ObcReadoutListItem.prototype, "hasHintedZeros", 2);
|
|
360
|
+
__decorateClass([
|
|
361
|
+
property({ type: Boolean })
|
|
362
|
+
], ObcReadoutListItem.prototype, "labelOnly", 2);
|
|
357
363
|
ObcReadoutListItem = __decorateClass([
|
|
358
364
|
customElement("obc-readout-list-item")
|
|
359
365
|
], ObcReadoutListItem);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readout-list-item.js","sources":["../../../src/navigation-instruments/readout-list-item/readout-list-item.ts"],"sourcesContent":["import {LitElement, html, nothing, unsafeCSS} from 'lit';\nimport {property} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport componentStyle from './readout-list-item.css?inline';\nimport {customElement} from '../../decorator.js';\nimport {ReadoutSetpointSize} from '../readout-setpoint/readout-setpoint.js';\nimport {ReadoutSetpointValueTypography} from '../readout-setpoint/readout-setpoint.js';\nimport {Priority} from '../types.js';\nimport '../readout-setpoint/readout-setpoint.js';\nimport '../../icons/icon-input-right.js';\nimport {ReadoutSetpointMode} from '../readout-setpoint/readout-setpoint.js';\n\nexport enum ReadoutListItemAlertState {\n none = 'none',\n lowIntegrity = 'low-integrity',\n invalid = 'invalid',\n caution = 'caution',\n warning = 'warning',\n alarm = 'alarm',\n}\n\nexport enum ReadoutListItemSize {\n base = 'base',\n priority = 'priority',\n enhanced = 'enhanced',\n}\n\nexport enum ReadoutListItemStacking {\n trailingUnit = 'trailing-unit',\n leadingUnit = 'leading-unit',\n leadingSrc = 'leading-src',\n}\n\nexport enum ReadoutListItemPriority {\n regular = 'regular',\n enhanced = 'enhanced',\n setpoint = 'setpoint',\n setpointFlipFlop = 'setpoint-flip-flop',\n}\n\n/**\n * `<obc-readout-list-item>` – A compact inline readout row for lists.\n *\n * Renders a compact label/value/unit composition with a dedicated size scale and stacking modes for unit and source placement. Use it when you need dense, consistent readout rows in tables or lists without bringing in the full `<obc-readout>` segment layout.\n *\n * ### Features\n * - **Sizes:** `base`, `priority`, and `enhanced` typography/padding scales.\n * - **Stacking modes:** `trailing-unit`, `leading-unit`, and `leading-src` control where unit/source appear relative to the label/value.\n * - **Priority styling:** `priority` controls emphasis and setpoint presentation (`regular`, `enhanced`, `setpoint`, `setpoint-flip-flop`).\n * - **Alert states:** Supports `alertState` styling for integrity/invalid and attention states (`caution`, `warning`, `alarm`).\n * - **Formatting:** Supports numeric formatting, fixed-length width templates, hinted zeros, and optional degree suffix (`°`).\n *\n * ### Usage Guidelines\n * Use this component for dense readouts in list contexts. Prefer `<obc-readout>` when you need multi-segment advice/setpoint/source composition, rich layouts, or source picker/flyout behavior.\n *\n * ### Slots\n * | Slot Name | Renders When | Purpose |\n * |---------------|--------------------------|---------|\n * | leading-icon | `hasLeadingIcon` is true | Optional leading icon before the label. |\n * | value-icon | `hasValueIcon` is true | Optional icon next to the value. |\n *\n * @slot leading-icon - Optional leading icon before the label.\n * @slot value-icon - Optional icon next to the value.\n */\n@customElement('obc-readout-list-item')\nexport class ObcReadoutListItem extends LitElement {\n @property({type: String}) size: ReadoutListItemSize =\n ReadoutListItemSize.base;\n @property({type: String})\n stacking: ReadoutListItemStacking = ReadoutListItemStacking.trailingUnit;\n @property({type: String})\n priority: ReadoutListItemPriority = ReadoutListItemPriority.regular;\n @property({type: String})\n alertState: ReadoutListItemAlertState = ReadoutListItemAlertState.none;\n\n @property({type: String}) label = '';\n @property({type: String}) unit = '';\n @property({type: String}) src = '';\n\n @property({type: Number}) value: number | undefined = undefined;\n @property({type: Number}) setpointValue: number | undefined = undefined;\n\n @property({type: Boolean}) hasSetpoint = false;\n\n @property({type: Boolean}) hasDegree = false;\n @property({type: Boolean}) hasUnit = false;\n @property({type: Boolean}) hasLabel = false;\n @property({type: Boolean}) hasSource = false;\n @property({type: Boolean}) hasLeadingIcon = false;\n @property({type: Boolean}) hasValueIcon = false;\n\n @property({type: Number}) fractionDigits = 0;\n @property({type: Boolean}) showZeroPadding = false;\n\n @property({type: Number}) minValueLength = 0;\n @property({type: Boolean}) hasHintedZeros = false;\n\n private get resolvedMainValueSize(): ReadoutSetpointSize {\n return this.size === ReadoutListItemSize.enhanced\n ? ReadoutSetpointSize.large\n : this.size === ReadoutListItemSize.priority\n ? ReadoutSetpointSize.medium\n : ReadoutSetpointSize.regular;\n }\n\n private get resolvedValueSize(): ReadoutSetpointSize {\n if (this.priority === ReadoutListItemPriority.setpointFlipFlop) {\n if (this.size === ReadoutListItemSize.priority) {\n return ReadoutSetpointSize.small;\n }\n\n if (this.size === ReadoutListItemSize.enhanced) {\n return ReadoutSetpointSize.regular;\n }\n }\n\n if (this.size === ReadoutListItemSize.enhanced) {\n return ReadoutSetpointSize.large;\n }\n return ReadoutSetpointSize.regular;\n }\n\n private get resolvedValueTypography():\n | ReadoutSetpointValueTypography\n | undefined {\n if (\n this.priority === ReadoutListItemPriority.setpointFlipFlop &&\n this.resolvedValueSize === ReadoutSetpointSize.small\n ) {\n return undefined;\n }\n\n if (\n this.priority === ReadoutListItemPriority.setpointFlipFlop &&\n this.size === ReadoutListItemSize.enhanced\n ) {\n return ReadoutSetpointValueTypography.regular;\n }\n\n switch (this.size) {\n case ReadoutListItemSize.enhanced:\n return ReadoutSetpointValueTypography.large;\n case ReadoutListItemSize.priority:\n return ReadoutSetpointValueTypography.medium;\n case ReadoutListItemSize.base:\n default:\n return ReadoutSetpointValueTypography.regular;\n }\n }\n\n private get resolvedSetpointSize(): ReadoutSetpointSize {\n if (!this.hasSetpoint) {\n return ReadoutSetpointSize.small;\n }\n\n if (\n this.priority === ReadoutListItemPriority.setpoint ||\n this.priority === ReadoutListItemPriority.setpointFlipFlop\n ) {\n return this.resolvedMainValueSize;\n }\n\n return ReadoutSetpointSize.small;\n }\n\n private get resolvedActualPriority(): Priority {\n if (\n this.priority === ReadoutListItemPriority.enhanced ||\n (this.priority === ReadoutListItemPriority.setpoint &&\n !this.hasSetpoint) ||\n this.priority === ReadoutListItemPriority.setpointFlipFlop\n ) {\n return Priority.enhanced;\n }\n\n return Priority.regular;\n }\n\n private get resolvedActualMode(): ReadoutSetpointMode {\n return this.priority === ReadoutListItemPriority.enhanced\n ? ReadoutSetpointMode.setpoint\n : ReadoutSetpointMode.display;\n }\n\n private get resolvedSetpointPriority(): Priority {\n if (\n !this.hasSetpoint ||\n this.priority === ReadoutListItemPriority.regular\n ) {\n return Priority.regular;\n }\n\n return Priority.enhanced;\n }\n\n private get resolvedSetpointMode(): ReadoutSetpointMode {\n if (\n this.hasSetpoint &&\n this.priority === ReadoutListItemPriority.setpoint\n ) {\n return ReadoutSetpointMode.setpoint;\n }\n return ReadoutSetpointMode.display;\n }\n\n private get showsTrailingSource(): boolean {\n return (\n this.hasSource && this.stacking !== ReadoutListItemStacking.leadingSrc\n );\n }\n\n private get stacksLeadingUnitVertically(): boolean {\n return (\n this.stacking === ReadoutListItemStacking.leadingUnit &&\n this.size === ReadoutListItemSize.enhanced\n );\n }\n\n private get stacksLeadingSrcVertically(): boolean {\n return (\n this.stacking === ReadoutListItemStacking.leadingSrc &&\n this.size === ReadoutListItemSize.enhanced\n );\n }\n\n private renderLabelContainer() {\n if (!this.hasLabel) {\n return nothing;\n }\n\n const showsLeadingUnit =\n this.stacking === ReadoutListItemStacking.leadingUnit && this.hasUnit;\n const showsLeadingSrc =\n this.stacking === ReadoutListItemStacking.leadingSrc && this.hasSource;\n\n if (showsLeadingUnit && !this.stacksLeadingUnitVertically) {\n return html`\n <div class=\"label-inline\" part=\"label-inline\">\n <div class=\"label\" part=\"label\">${this.label}</div>\n <div class=\"unit unit-leading\" part=\"unit-leading\">${this.unit}</div>\n </div>\n `;\n }\n\n if (showsLeadingSrc && !this.stacksLeadingSrcVertically) {\n return html`\n <div class=\"label-inline\" part=\"label-inline\">\n <div class=\"label\" part=\"label\">${this.label}</div>\n <div class=\"source source-inline\" part=\"source-inline\">\n ${this.src}\n </div>\n </div>\n `;\n }\n\n return html`\n <div class=\"label-stack\" part=\"label-stack\">\n <div class=\"label\" part=\"label\">${this.label}</div>\n ${showsLeadingUnit\n ? html`<div class=\"unit unit-leading\" part=\"unit-leading\">\n ${this.unit}\n </div>`\n : nothing}\n ${showsLeadingSrc\n ? html`<div class=\"source source-inline\" part=\"source-inline\">\n ${this.src}\n </div>`\n : nothing}\n </div>\n `;\n }\n\n private renderValueIconSlot() {\n if (!this.hasValueIcon) {\n return nothing;\n }\n return html`<span class=\"value-icon\" slot=\"icon\" aria-hidden=\"true\">\n <slot name=\"value-icon\"></slot>\n </span>`;\n }\n\n private renderSetpoint() {\n if (!this.hasSetpoint) {\n return nothing;\n }\n\n return html`\n <obc-readout-setpoint\n .variant=${'setpoint'}\n .readoutStyle=${'regular'}\n .direction=${'horizontal'}\n .size=${this.resolvedSetpointSize}\n .priority=${this.resolvedSetpointPriority}\n .mode=${this.resolvedSetpointMode}\n .hugContent=${true}\n .value=${this.setpointValue}\n .showZeroPadding=${this.showZeroPadding}\n .fractionDigits=${this.fractionDigits}\n .minValueLength=${this.minValueLength}\n .hasHintedZeros=${this.hasHintedZeros}\n .hasDegree=${this.hasDegree}\n >\n <obi-input-right slot=\"icon\"></obi-input-right>\n </obc-readout-setpoint>\n `;\n }\n\n private renderActualValue() {\n return html`\n <obc-readout-setpoint\n .variant=${'value'}\n .readoutStyle=${'regular'}\n .direction=${'horizontal'}\n .size=${this.resolvedValueSize}\n .valueTypography=${this.resolvedValueTypography ?? undefined}\n .priority=${this.resolvedActualPriority}\n .mode=${this.resolvedActualMode}\n .hugContent=${true}\n .value=${this.value}\n .showZeroPadding=${this.showZeroPadding}\n .fractionDigits=${this.fractionDigits}\n .minValueLength=${this.minValueLength}\n .hasHintedZeros=${this.hasHintedZeros}\n .hasDegree=${this.hasDegree}\n >\n ${this.renderValueIconSlot()}\n </obc-readout-setpoint>\n `;\n }\n\n private renderValue() {\n return html`\n <div class=\"value-wrap\" part=\"value-wrap\">\n ${this.hasSetpoint\n ? html`<div class=\"value-cluster\" part=\"value-cluster\">\n ${this.renderSetpoint()} ${this.renderActualValue()}\n </div>`\n : this.renderActualValue()}\n </div>\n `;\n }\n\n private renderTrailingUnit() {\n if (\n !this.hasUnit ||\n this.stacking === ReadoutListItemStacking.leadingUnit\n ) {\n return nothing;\n }\n\n return html`<div class=\"unit unit-trailing\" part=\"unit-trailing\">\n ${this.unit}\n </div>`;\n }\n\n private renderTrailingSource() {\n if (!this.showsTrailingSource) {\n return nothing;\n }\n\n return html`\n <div class=\"divider\" part=\"divider\" aria-hidden=\"true\"></div>\n <div class=\"source source-trailing\" part=\"source-trailing\">\n ${this.src}\n </div>\n `;\n }\n\n override render() {\n return html`\n <div\n class=${classMap({\n root: true,\n [`size-${this.size}`]: true,\n [`stacking-${this.stacking}`]: true,\n 'priority-enhanced':\n this.priority === ReadoutListItemPriority.enhanced,\n 'priority-setpoint':\n this.priority === ReadoutListItemPriority.setpoint,\n 'priority-setpoint-flip-flop':\n this.priority === ReadoutListItemPriority.setpointFlipFlop,\n [`alert-${this.alertState}`]: true,\n 'has-leading-icon': this.hasLeadingIcon,\n 'has-value-icon': this.hasValueIcon,\n })}\n part=\"root\"\n >\n <div class=\"content\" part=\"content\">\n <div class=\"label-container\" part=\"label-container\">\n ${this.hasLeadingIcon\n ? html`<span class=\"leading-icon\" aria-hidden=\"true\"\n ><slot name=\"leading-icon\"></slot\n ></span>`\n : nothing}\n ${this.renderLabelContainer()}\n </div>\n\n <div class=\"value-container\" part=\"value-container\">\n ${this.renderValue()} ${this.renderTrailingUnit()}\n </div>\n\n ${this.renderTrailingSource()}\n </div>\n </div>\n `;\n }\n\n static override styles = unsafeCSS(componentStyle);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'obc-readout-list-item': ObcReadoutListItem;\n }\n}\n"],"names":["ReadoutListItemAlertState","ReadoutListItemSize","ReadoutListItemStacking","ReadoutListItemPriority"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"readout-list-item.js","sources":["../../../src/navigation-instruments/readout-list-item/readout-list-item.ts"],"sourcesContent":["import {LitElement, html, nothing, unsafeCSS} from 'lit';\nimport {property} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport componentStyle from './readout-list-item.css?inline';\nimport {customElement} from '../../decorator.js';\nimport {ReadoutSetpointSize} from '../readout-setpoint/readout-setpoint.js';\nimport {ReadoutSetpointValueTypography} from '../readout-setpoint/readout-setpoint.js';\nimport {Priority} from '../types.js';\nimport '../readout-setpoint/readout-setpoint.js';\nimport '../../icons/icon-input-right.js';\nimport {ReadoutSetpointMode} from '../readout-setpoint/readout-setpoint.js';\n\nexport enum ReadoutListItemAlertState {\n none = 'none',\n lowIntegrity = 'low-integrity',\n invalid = 'invalid',\n caution = 'caution',\n warning = 'warning',\n alarm = 'alarm',\n}\n\nexport enum ReadoutListItemSize {\n base = 'base',\n priority = 'priority',\n enhanced = 'enhanced',\n}\n\nexport enum ReadoutListItemStacking {\n trailingUnit = 'trailing-unit',\n leadingUnit = 'leading-unit',\n leadingSrc = 'leading-src',\n}\n\nexport enum ReadoutListItemPriority {\n regular = 'regular',\n enhanced = 'enhanced',\n setpoint = 'setpoint',\n setpointFlipFlop = 'setpoint-flip-flop',\n}\n\n/**\n * `<obc-readout-list-item>` – A compact inline readout row for lists.\n *\n * Renders a compact label/value/unit composition with a dedicated size scale and stacking modes for unit and source placement. Use it when you need dense, consistent readout rows in tables or lists without bringing in the full `<obc-readout>` segment layout.\n *\n * ### Features\n * - **Sizes:** `base`, `priority`, and `enhanced` typography/padding scales.\n * - **Stacking modes:** `trailing-unit`, `leading-unit`, and `leading-src` control where unit/source appear relative to the label/value.\n * - **Priority styling:** `priority` controls emphasis and setpoint presentation (`regular`, `enhanced`, `setpoint`, `setpoint-flip-flop`).\n * - **Alert states:** Supports `alertState` styling for integrity/invalid and attention states (`caution`, `warning`, `alarm`).\n * - **Formatting:** Supports numeric formatting, fixed-length width templates, hinted zeros, and optional degree suffix (`°`).\n *\n * ### Usage Guidelines\n * Use this component for dense readouts in list contexts. Prefer `<obc-readout>` when you need multi-segment advice/setpoint/source composition, rich layouts, or source picker/flyout behavior.\n *\n * ### Slots\n * | Slot Name | Renders When | Purpose |\n * |---------------|--------------------------|---------|\n * | leading-icon | `hasLeadingIcon` is true | Optional leading icon before the label. |\n * | value-icon | `hasValueIcon` is true | Optional icon next to the value. |\n *\n * @slot leading-icon - Optional leading icon before the label.\n * @slot value-icon - Optional icon next to the value.\n */\n@customElement('obc-readout-list-item')\nexport class ObcReadoutListItem extends LitElement {\n @property({type: String}) size: ReadoutListItemSize =\n ReadoutListItemSize.base;\n @property({type: String})\n stacking: ReadoutListItemStacking = ReadoutListItemStacking.trailingUnit;\n @property({type: String})\n priority: ReadoutListItemPriority = ReadoutListItemPriority.regular;\n @property({type: String})\n alertState: ReadoutListItemAlertState = ReadoutListItemAlertState.none;\n\n @property({type: String}) label = '';\n @property({type: String}) unit = '';\n @property({type: String}) src = '';\n\n @property({type: Number}) value: number | undefined = undefined;\n @property({type: Number}) setpointValue: number | undefined = undefined;\n\n @property({type: Boolean}) hasSetpoint = false;\n\n @property({type: Boolean}) hasDegree = false;\n @property({type: Boolean}) hasUnit = false;\n @property({type: Boolean}) hasLabel = false;\n @property({type: Boolean}) hasSource = false;\n @property({type: Boolean}) hasLeadingIcon = false;\n @property({type: Boolean}) hasValueIcon = false;\n\n @property({type: Number}) fractionDigits = 0;\n @property({type: Boolean}) showZeroPadding = false;\n\n @property({type: Number}) minValueLength = 0;\n @property({type: Boolean}) hasHintedZeros = false;\n\n @property({type: Boolean}) labelOnly = false;\n\n private get resolvedMainValueSize(): ReadoutSetpointSize {\n return this.size === ReadoutListItemSize.enhanced\n ? ReadoutSetpointSize.large\n : this.size === ReadoutListItemSize.priority\n ? ReadoutSetpointSize.medium\n : ReadoutSetpointSize.regular;\n }\n\n private get resolvedValueSize(): ReadoutSetpointSize {\n if (this.priority === ReadoutListItemPriority.setpointFlipFlop) {\n if (this.size === ReadoutListItemSize.priority) {\n return ReadoutSetpointSize.small;\n }\n\n if (this.size === ReadoutListItemSize.enhanced) {\n return ReadoutSetpointSize.regular;\n }\n }\n\n if (this.size === ReadoutListItemSize.enhanced) {\n return ReadoutSetpointSize.large;\n }\n return ReadoutSetpointSize.regular;\n }\n\n private get resolvedValueTypography():\n | ReadoutSetpointValueTypography\n | undefined {\n if (\n this.priority === ReadoutListItemPriority.setpointFlipFlop &&\n this.resolvedValueSize === ReadoutSetpointSize.small\n ) {\n return undefined;\n }\n\n if (\n this.priority === ReadoutListItemPriority.setpointFlipFlop &&\n this.size === ReadoutListItemSize.enhanced\n ) {\n return ReadoutSetpointValueTypography.regular;\n }\n\n switch (this.size) {\n case ReadoutListItemSize.enhanced:\n return ReadoutSetpointValueTypography.large;\n case ReadoutListItemSize.priority:\n return ReadoutSetpointValueTypography.medium;\n case ReadoutListItemSize.base:\n default:\n return ReadoutSetpointValueTypography.regular;\n }\n }\n\n private get resolvedSetpointSize(): ReadoutSetpointSize {\n if (!this.hasSetpoint) {\n return ReadoutSetpointSize.small;\n }\n\n if (\n this.priority === ReadoutListItemPriority.setpoint ||\n this.priority === ReadoutListItemPriority.setpointFlipFlop\n ) {\n return this.resolvedMainValueSize;\n }\n\n return ReadoutSetpointSize.small;\n }\n\n private get resolvedActualPriority(): Priority {\n if (\n this.priority === ReadoutListItemPriority.enhanced ||\n (this.priority === ReadoutListItemPriority.setpoint &&\n !this.hasSetpoint) ||\n this.priority === ReadoutListItemPriority.setpointFlipFlop\n ) {\n return Priority.enhanced;\n }\n\n return Priority.regular;\n }\n\n private get resolvedActualMode(): ReadoutSetpointMode {\n return this.priority === ReadoutListItemPriority.enhanced\n ? ReadoutSetpointMode.setpoint\n : ReadoutSetpointMode.display;\n }\n\n private get resolvedSetpointPriority(): Priority {\n if (\n !this.hasSetpoint ||\n this.priority === ReadoutListItemPriority.regular\n ) {\n return Priority.regular;\n }\n\n return Priority.enhanced;\n }\n\n private get resolvedSetpointMode(): ReadoutSetpointMode {\n if (\n this.hasSetpoint &&\n this.priority === ReadoutListItemPriority.setpoint\n ) {\n return ReadoutSetpointMode.setpoint;\n }\n return ReadoutSetpointMode.display;\n }\n\n private get showsTrailingSource(): boolean {\n return (\n this.hasSource && this.stacking !== ReadoutListItemStacking.leadingSrc\n );\n }\n\n private get stacksLeadingUnitVertically(): boolean {\n return (\n this.stacking === ReadoutListItemStacking.leadingUnit &&\n this.size === ReadoutListItemSize.enhanced\n );\n }\n\n private get stacksLeadingSrcVertically(): boolean {\n return (\n this.stacking === ReadoutListItemStacking.leadingSrc &&\n this.size === ReadoutListItemSize.enhanced\n );\n }\n\n private renderLabelContainer() {\n if (!this.hasLabel) {\n return nothing;\n }\n\n const showsLeadingUnit =\n this.stacking === ReadoutListItemStacking.leadingUnit && this.hasUnit;\n const showsLeadingSrc =\n this.stacking === ReadoutListItemStacking.leadingSrc && this.hasSource;\n\n if (showsLeadingUnit && !this.stacksLeadingUnitVertically) {\n return html`\n <div class=\"label-inline\" part=\"label-inline\">\n <div class=\"label\" part=\"label\">${this.label}</div>\n <div class=\"unit unit-leading\" part=\"unit-leading\">${this.unit}</div>\n </div>\n `;\n }\n\n if (showsLeadingSrc && !this.stacksLeadingSrcVertically) {\n return html`\n <div class=\"label-inline\" part=\"label-inline\">\n <div class=\"label\" part=\"label\">${this.label}</div>\n <div class=\"source source-inline\" part=\"source-inline\">\n ${this.src}\n </div>\n </div>\n `;\n }\n\n return html`\n <div class=\"label-stack\" part=\"label-stack\">\n <div class=\"label\" part=\"label\">${this.label}</div>\n ${showsLeadingUnit\n ? html`<div class=\"unit unit-leading\" part=\"unit-leading\">\n ${this.unit}\n </div>`\n : nothing}\n ${showsLeadingSrc\n ? html`<div class=\"source source-inline\" part=\"source-inline\">\n ${this.src}\n </div>`\n : nothing}\n </div>\n `;\n }\n\n private renderValueIconSlot() {\n if (!this.hasValueIcon) {\n return nothing;\n }\n return html`<span class=\"value-icon\" slot=\"icon\" aria-hidden=\"true\">\n <slot name=\"value-icon\"></slot>\n </span>`;\n }\n\n private renderSetpoint() {\n if (!this.hasSetpoint) {\n return nothing;\n }\n\n return html`\n <obc-readout-setpoint\n .variant=${'setpoint'}\n .readoutStyle=${'regular'}\n .direction=${'horizontal'}\n .size=${this.resolvedSetpointSize}\n .priority=${this.resolvedSetpointPriority}\n .mode=${this.resolvedSetpointMode}\n .hugContent=${true}\n .value=${this.setpointValue}\n .showZeroPadding=${this.showZeroPadding}\n .fractionDigits=${this.fractionDigits}\n .minValueLength=${this.minValueLength}\n .hasHintedZeros=${this.hasHintedZeros}\n .hasDegree=${this.hasDegree}\n >\n <obi-input-right slot=\"icon\"></obi-input-right>\n </obc-readout-setpoint>\n `;\n }\n\n private renderActualValue() {\n return html`\n <obc-readout-setpoint\n .variant=${'value'}\n .readoutStyle=${'regular'}\n .direction=${'horizontal'}\n .size=${this.resolvedValueSize}\n .valueTypography=${this.resolvedValueTypography ?? undefined}\n .priority=${this.resolvedActualPriority}\n .mode=${this.resolvedActualMode}\n .hugContent=${true}\n .value=${this.value}\n .showZeroPadding=${this.showZeroPadding}\n .fractionDigits=${this.fractionDigits}\n .minValueLength=${this.minValueLength}\n .hasHintedZeros=${this.hasHintedZeros}\n .hasDegree=${this.hasDegree}\n >\n ${this.renderValueIconSlot()}\n </obc-readout-setpoint>\n `;\n }\n\n private renderValue() {\n return html`\n <div class=\"value-wrap\" part=\"value-wrap\">\n ${this.hasSetpoint\n ? html`<div class=\"value-cluster\" part=\"value-cluster\">\n ${this.renderSetpoint()} ${this.renderActualValue()}\n </div>`\n : this.renderActualValue()}\n </div>\n `;\n }\n\n private renderTrailingUnit() {\n if (\n !this.hasUnit ||\n this.stacking === ReadoutListItemStacking.leadingUnit\n ) {\n return nothing;\n }\n\n return html`<div class=\"unit unit-trailing\" part=\"unit-trailing\">\n ${this.unit}\n </div>`;\n }\n\n private renderTrailingSource() {\n if (!this.showsTrailingSource) {\n return nothing;\n }\n\n return html`\n <div class=\"divider\" part=\"divider\" aria-hidden=\"true\"></div>\n <div class=\"source source-trailing\" part=\"source-trailing\">\n ${this.src}\n </div>\n `;\n }\n\n override render() {\n return html`\n <div\n class=${classMap({\n root: true,\n [`size-${this.size}`]: true,\n [`stacking-${this.stacking}`]: true,\n 'priority-enhanced':\n this.priority === ReadoutListItemPriority.enhanced,\n 'priority-setpoint':\n this.priority === ReadoutListItemPriority.setpoint,\n 'priority-setpoint-flip-flop':\n this.priority === ReadoutListItemPriority.setpointFlipFlop,\n [`alert-${this.alertState}`]: true,\n 'has-leading-icon': this.hasLeadingIcon,\n 'has-value-icon': this.hasValueIcon,\n })}\n part=\"root\"\n >\n <div class=\"content\" part=\"content\">\n <div class=\"label-container\" part=\"label-container\">\n ${this.hasLeadingIcon\n ? html`<span class=\"leading-icon\" aria-hidden=\"true\"\n ><slot name=\"leading-icon\"></slot\n ></span>`\n : nothing}\n ${this.renderLabelContainer()}\n </div>\n\n ${this.labelOnly\n ? nothing\n : html`\n <div class=\"value-container\" part=\"value-container\">\n ${this.renderValue()} ${this.renderTrailingUnit()}\n </div>\n\n ${this.renderTrailingSource()}\n `}\n </div>\n </div>\n `;\n }\n\n static override styles = unsafeCSS(componentStyle);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'obc-readout-list-item': ObcReadoutListItem;\n }\n}\n"],"names":["ReadoutListItemAlertState","ReadoutListItemSize","ReadoutListItemStacking","ReadoutListItemPriority"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readout-setpoint.d.ts","sourceRoot":"","sources":["../../../src/navigation-instruments/readout-setpoint/readout-setpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAA2B,MAAM,KAAK,CAAC;AAKzD,OAAO,mCAAmC,CAAC;AAC3C,OAAO,yCAAyC,CAAC;AACjD,OAAO,KAAK,EACV,gBAAgB,IAAI,wBAAwB,EAC5C,cAAc,IAAI,2BAA2B,EAC9C,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAOrC,oBAAY,sBAAsB;IAChC,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAED,oBAAY,mBAAmB;IAC7B,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAED,oBAAY,qBAAqB;IAC/B,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,KAAK,UAAU;IACf,aAAa,mBAAmB;IAChC,QAAQ,aAAa;IACrB,MAAM,WAAW;CAClB;AAED,oBAAY,mBAAmB;IAC7B,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,iBAAiB,uBAAuB;CACzC;AAED,oBAAY,8BAA8B;IACxC,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAOD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBACa,kBAAmB,SAAQ,UAAU;IACtB,OAAO,EAAE,sBAAsB,CACvB;IACR,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAC3C,SAAS,CAAC,EAAE,wBAAwB,CAAC;IACrC,IAAI,EAAE,mBAAmB,CACvB;IAK5B,eAAe,CAAC,EAAE,8BAA8B,CAAC;IAEvB,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACJ,UAAU,UAAS;IACnC,cAAc,SAAK;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,UAAS;IACb,WAAW,SAAM;IAChB,cAAc,UAAS;IACvB,SAAS,UAAS;IAClB,eAAe,UAAS;IACzB,cAAc,SAAK;
|
|
1
|
+
{"version":3,"file":"readout-setpoint.d.ts","sourceRoot":"","sources":["../../../src/navigation-instruments/readout-setpoint/readout-setpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAA2B,MAAM,KAAK,CAAC;AAKzD,OAAO,mCAAmC,CAAC;AAC3C,OAAO,yCAAyC,CAAC;AACjD,OAAO,KAAK,EACV,gBAAgB,IAAI,wBAAwB,EAC5C,cAAc,IAAI,2BAA2B,EAC9C,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAOrC,oBAAY,sBAAsB;IAChC,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAED,oBAAY,mBAAmB;IAC7B,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAED,oBAAY,qBAAqB;IAC/B,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,KAAK,UAAU;IACf,aAAa,mBAAmB;IAChC,QAAQ,aAAa;IACrB,MAAM,WAAW;CAClB;AAED,oBAAY,mBAAmB;IAC7B,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,iBAAiB,uBAAuB;CACzC;AAED,oBAAY,8BAA8B;IACxC,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAOD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBACa,kBAAmB,SAAQ,UAAU;IACtB,OAAO,EAAE,sBAAsB,CACvB;IACR,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAC3C,SAAS,CAAC,EAAE,wBAAwB,CAAC;IACrC,IAAI,EAAE,mBAAmB,CACvB;IAK5B,eAAe,CAAC,EAAE,8BAA8B,CAAC;IAEvB,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACJ,UAAU,UAAS;IACnC,cAAc,SAAK;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,UAAS;IACb,WAAW,SAAM;IAChB,cAAc,UAAS;IACvB,SAAS,UAAS;IAClB,eAAe,UAAS;IACzB,cAAc,SAAK;IACA,mBAAmB,UAAS;IAEhE,OAAO,CAAC,oBAAoB,CAAS;IAElB,OAAO,CAAC,QAAQ,CAAC,CAAkB;IAE/D,OAAO,KAAK,cAAc,GAEzB;IAED,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,kBAAkB,GAU7B;IAED,OAAO,KAAK,iBAAiB,GAE5B;IAED,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,kBAAkB,GAiB7B;IAED,OAAO,KAAK,wBAAwB,GAcnC;IAED,OAAO,KAAK,mBAAmB,GAM9B;IAED,OAAO,CAAC,0BAA0B;IAiBlC,OAAO,KAAK,uBAAuB,GAElC;IAED,OAAO,KAAK,gCAAgC,GAE3C;IAED,OAAO,CAAC,kBAAkB;IAkBjB,YAAY;IAKrB,OAAO,KAAK,UAAU,GAqBrB;IAED,OAAO,KAAK,kBAAkB,GAY7B;IAED,OAAO,KAAK,oBAAoB,GAM/B;IAED,OAAO,CAAC,sBAAsB;IA6B9B,OAAO,CAAC,sBAAsB;IAyC9B,OAAO,CAAC,2BAA2B;IAsCnC,OAAO,CAAC,4BAA4B;IAgCpC,OAAO,CAAC,2CAA2C;IAoCnD,OAAO,CAAC,oBAAoB;IA4C5B,OAAO,CAAC,qBAAqB;IAuBpB,MAAM;IAwCf,OAAgB,MAAM,0BAA6B;CACpD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,sBAAsB,EAAE,kBAAkB,CAAC;KAC5C;CACF"}
|
|
@@ -64,6 +64,7 @@ let ObcReadoutSetpoint = class extends LitElement {
|
|
|
64
64
|
this.hasDegree = false;
|
|
65
65
|
this.showZeroPadding = false;
|
|
66
66
|
this.fractionDigits = 0;
|
|
67
|
+
this.reserveSpaceForIcon = false;
|
|
67
68
|
this.hasAssignedValueIcon = false;
|
|
68
69
|
}
|
|
69
70
|
get resolvedFormat() {
|
|
@@ -276,6 +277,9 @@ let ObcReadoutSetpoint = class extends LitElement {
|
|
|
276
277
|
`;
|
|
277
278
|
}
|
|
278
279
|
renderRegularValueInlineIcon(size) {
|
|
280
|
+
if (!this.reserveSpaceForIcon) {
|
|
281
|
+
return nothing;
|
|
282
|
+
}
|
|
279
283
|
const hideStyle = this.hasAssignedValueIcon ? "" : this.direction === "vertical" ? "visibility:hidden;" : "display:none;";
|
|
280
284
|
return html`
|
|
281
285
|
<div class="icon-container" aria-hidden="true" style=${hideStyle}>
|
|
@@ -476,6 +480,9 @@ __decorateClass([
|
|
|
476
480
|
__decorateClass([
|
|
477
481
|
property({ type: Number })
|
|
478
482
|
], ObcReadoutSetpoint.prototype, "fractionDigits", 2);
|
|
483
|
+
__decorateClass([
|
|
484
|
+
property({ type: Boolean, attribute: false })
|
|
485
|
+
], ObcReadoutSetpoint.prototype, "reserveSpaceForIcon", 2);
|
|
479
486
|
__decorateClass([
|
|
480
487
|
state()
|
|
481
488
|
], ObcReadoutSetpoint.prototype, "hasAssignedValueIcon", 2);
|