{"version":3,"sources":["libs/galaxy/popover/src/popover-positions.ts","libs/galaxy/popover/src/popover.component.ts","libs/galaxy/popover/src/popover.component.html","libs/galaxy/popover/src/directives/popover-actions.directive.ts","libs/galaxy/popover/src/directives/popover-title.directive.ts","libs/galaxy/popover/src/directives/popover.directive.ts","libs/galaxy/popover/src/popover.module.ts","libs/galaxy/popover/public_api.ts","libs/galaxy/popover/index.ts","node_modules/@angular/material/fesm2022/select.mjs","libs/galaxy/galaxy-wrap/src/galaxy-wrap.component.ts","libs/galaxy/galaxy-wrap/src/galaxy-wrap.module.ts","libs/galaxy/galaxy-wrap/public_api.ts","libs/galaxy/galaxy-wrap/index.ts","libs/galaxy/tooltip/src/tooltip.component.ts","libs/galaxy/tooltip/src/tooltip.component.html","libs/galaxy/tooltip/src/directive/tooltip.directive.ts","libs/galaxy/tooltip/src/tooltip.module.ts","libs/galaxy/tooltip/public_api.ts","libs/galaxy/tooltip/index.ts"],"sourcesContent":["import { ConnectedPosition } from '@angular/cdk/overlay';\n\nexport const PopoverPositions: Record = {\n Top: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n panelClass: ['top'],\n },\n Bottom: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n panelClass: ['bottom'],\n },\n Left: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n panelClass: ['left'],\n },\n Right: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n panelClass: ['right'],\n },\n TopRight: {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n panelClass: ['top', 'corner-left'],\n },\n TopLeft: {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n panelClass: ['top', 'corner-right'],\n },\n BottomRight: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n panelClass: ['bottom', 'corner-left'],\n },\n BottomLeft: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n panelClass: ['bottom', 'corner-right'],\n },\n};\n\nexport const DEFAULT_POSITIONS: ConnectedPosition[] = [\n {\n ...PopoverPositions.Top,\n },\n {\n ...PopoverPositions.Bottom,\n },\n {\n ...PopoverPositions.Left,\n },\n {\n ...PopoverPositions.Right,\n },\n {\n ...PopoverPositions.TopRight,\n },\n {\n ...PopoverPositions.TopLeft,\n },\n {\n ...PopoverPositions.BottomRight,\n },\n {\n ...PopoverPositions.BottomLeft,\n },\n];\n","import { coerceCssPixelValue } from '@angular/cdk/coercion';\nimport { CdkOverlayOrigin, ConnectedPosition } from '@angular/cdk/overlay';\nimport {\n AfterContentInit,\n OnInit,\n Component,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { DEFAULT_POSITIONS } from './popover-positions';\nimport { Observable } from 'rxjs';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { map } from 'rxjs/operators';\n\nexport type PaddingSize = 'large' | 'small' | 'none';\n\n@Component({\n selector: 'glxy-popover',\n templateUrl: './popover.component.html',\n styleUrls: ['./popover.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class PopoverComponent implements OnInit, AfterContentInit, OnChanges {\n _positions?: ConnectedPosition[];\n\n /** Origin that references the component the popover should be created relative to. Comes from CdkOverlayOrigin directive */\n @Input() origin!: CdkOverlayOrigin;\n\n /** Whether the popover is open or closed */\n @Input() isOpen = false;\n\n /** Width and Height of the popover box */\n @Input() maxWidth: number | string = '320px';\n @Input() maxHeight: number | string = 'auto';\n\n /** Option to place a backdrop element behind the popover to allow for click interaction/blocking */\n @Input() hasBackdrop = false;\n\n /** Option to color the backdrop, or leave it transparent, IF hasBackdrop is true */\n @Input() showBackdrop = false;\n\n /** Option to close the popover when the backdrop is clicked */\n /** Will automatically enable the background if enabled */\n @Input() closeOnBackdropClick = false;\n\n /** Option to close the popover when the escape key is pressed */\n @Input() closeOnEscapeKey = false;\n\n /** Whether to show the arrow for the popover */\n @Input() hasArrow = true;\n\n /** Whether to move the popover to keep it on screen **/\n @Input() keepOnScreen = false;\n\n /** Control the amount of padding on the popover */\n @Input() padding: PaddingSize = 'large';\n\n /** Change the background color and text for high contrast with white backgrounds */\n @Input() highContrast = false;\n\n /** If the popover should change to fullscreen on smaller viewports */\n @Input() mobileFullScreen = false;\n\n /** Breakpoint below which the popover becomes fullscreen, if using mobileFullScreen **/\n @Input() breakpoint = '425px';\n\n /** Whether to show a close button on mobileFullScreen popovers */\n @Input() showMobileClose = true;\n\n /**\n * What positioning strategy to use for the popover. By default, the strategy allows for the popover\n * to move to above, below, left, and right of the origin depending on screen size\n */\n @Input() positions: ConnectedPosition[] = DEFAULT_POSITIONS;\n\n @Output() readonly isOpenChange: EventEmitter = new EventEmitter(/* isAsync */ true);\n\n /** Emits when the backdrop has been clicked */\n @Output() backdropClick: EventEmitter = new EventEmitter();\n\n /** Listen to escape key and close popover when closeOnEscapeKey is true */\n @HostListener('document:keydown.escape')\n handleEscapeKey() {\n if (this.closeOnEscapeKey && this.isOpen) this.close();\n }\n\n get _cooercedMaxWidth(): string {\n return coerceCssPixelValue(this.maxWidth);\n }\n get _cooercedMaxHeight(): string {\n return coerceCssPixelValue(this.maxHeight);\n }\n get _popoverClasses(): string[] {\n return ['glxy-popover', this.hasArrow ? 'has-arrow' : ''];\n }\n get _backdropClass(): string {\n return this.showBackdrop ? '' : 'hide-backdrop';\n }\n\n isFullscreen$?: Observable;\n mobileBreakpoint = '';\n\n constructor(private readonly breakpointObserver: BreakpointObserver) {}\n\n ngOnInit(): void {\n this.mobileBreakpoint = `(max-width: ${this.breakpoint})`;\n this.isFullscreen$ = this.breakpointObserver.observe([this.mobileBreakpoint]).pipe(\n map((resp) => {\n return resp.breakpoints[this.mobileBreakpoint];\n }),\n );\n }\n\n ngAfterContentInit(): void {\n this.setupPositions();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { positions } = changes;\n if (positions && positions.previousValue !== this.positions) {\n this.setupPositions();\n }\n }\n\n setupPositions(): void {\n this._positions = this.positions.map((pos: ConnectedPosition) => {\n const newPos = { ...pos };\n return newPos;\n });\n }\n\n /** Used by the popover directive to attach itself to the popover component */\n setOrigin(origin: CdkOverlayOrigin): void {\n this.origin = origin;\n }\n\n onBackdropClick(): void {\n this.backdropClick.emit();\n if (this.closeOnBackdropClick) this.close();\n }\n\n open(): void {\n this.isOpen = true;\n this.isOpenChange.emit(this.isOpen);\n }\n\n close(): void {\n this.isOpen = false;\n this.isOpenChange.emit(this.isOpen);\n }\n\n toggle(): void {\n this.isOpen = !this.isOpen;\n this.isOpenChange.emit(this.isOpen);\n }\n}\n","\n \n
\n \n
\n \n
\n \n
\n\n
\n\n
\n \n
\n \n\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: 'glxy-popover-actions, [glxyPopoverActions]',\n})\nexport class PopoverActionsDirective {\n @HostBinding('class') class = 'glxy-popover-actions';\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: 'glxy-popover-title, [glxyPopoverTitle]',\n})\nexport class PopoverTitleDirective {\n @HostBinding('class') class = 'glxy-popover-title';\n}\n","import { CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { Directive, ElementRef, Input, OnInit } from '@angular/core';\nimport { PopoverComponent } from '../popover.component';\n\n@Directive({\n selector: '[glxyPopover]',\n exportAs: 'glxyPopover',\n})\nexport class GalaxyPopoverDirective implements OnInit {\n /** Passed in reference of the popover */\n @Input('glxyPopover') popover?: PopoverComponent;\n\n constructor(private elementRef: ElementRef) {}\n\n ngOnInit(): void {\n this.initPopover();\n }\n\n initPopover(): void {\n const origin = new CdkOverlayOrigin(this.elementRef);\n this.popover?.setOrigin(origin);\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { PopoverComponent } from './popover.component';\nexport { PopoverComponent } from './popover.component';\n\nimport { PopoverActionsDirective } from './directives/popover-actions.directive';\nexport { PopoverActionsDirective } from './directives/popover-actions.directive';\n\nimport { PopoverTitleDirective } from './directives/popover-title.directive';\nexport { PopoverTitleDirective } from './directives/popover-title.directive';\n\nimport { GalaxyPopoverDirective } from './directives/popover.directive';\nexport { GalaxyPopoverDirective } from './directives/popover.directive';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nexport const MODULE_IMPORTS = [CommonModule, OverlayModule, MatIconModule, MatButtonModule];\nexport const MODULE_DECLARATIONS = [\n PopoverComponent,\n PopoverTitleDirective,\n PopoverActionsDirective,\n GalaxyPopoverDirective,\n];\n\n@NgModule({\n declarations: MODULE_DECLARATIONS,\n exports: MODULE_DECLARATIONS,\n imports: [MODULE_IMPORTS],\n})\nexport class GalaxyPopoverModule {}\n","export * from './src/popover.module';\nexport { PopoverPositions } from './src/popover-positions';\n","// Export things like public API, and interfaces from here.\nexport * from './public_api';\n","import { Overlay, CdkOverlayOrigin, CdkConnectedOverlay, OverlayModule } from '@angular/cdk/overlay';\nimport { NgClass, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, inject, EventEmitter, booleanAttribute, numberAttribute, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Inject, Self, Attribute, ContentChildren, ContentChild, Input, ViewChild, Output, Directive, NgModule } from '@angular/core';\nimport * as i2 from '@angular/material/core';\nimport { _countGroupLabelsBeforeOption, _getOptionScrollPosition, _ErrorStateTracker, MAT_OPTION_PARENT_COMPONENT, MatOption, MAT_OPTGROUP, MatOptionModule, MatCommonModule } from '@angular/material/core';\nexport { MatOptgroup, MatOption } from '@angular/material/core';\nimport * as i6 from '@angular/material/form-field';\nimport { MAT_FORM_FIELD, MatFormFieldControl, MatFormFieldModule } from '@angular/material/form-field';\nexport { MatError, MatFormField, MatHint, MatLabel, MatPrefix, MatSuffix } from '@angular/material/form-field';\nimport * as i1 from '@angular/cdk/scrolling';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport * as i5 from '@angular/cdk/a11y';\nimport { removeAriaReferencedId, addAriaReferencedId, ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport * as i3 from '@angular/cdk/bidi';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW, ENTER, SPACE, hasModifierKey, A } from '@angular/cdk/keycodes';\nimport * as i4 from '@angular/forms';\nimport { Validators } from '@angular/forms';\nimport { Subject, defer, merge } from 'rxjs';\nimport { startWith, switchMap, filter, map, distinctUntilChanged, takeUntil, take } from 'rxjs/operators';\nimport { trigger, transition, query, animateChild, state, style, animate } from '@angular/animations';\n\n/**\n * The following are all the animations for the mat-select component, with each\n * const containing the metadata for one animation.\n *\n * The values below match the implementation of the AngularJS Material mat-select animation.\n * @docs-private\n */\nconst _c0 = [\"trigger\"];\nconst _c1 = [\"panel\"];\nconst _c2 = [[[\"mat-select-trigger\"]], \"*\"];\nconst _c3 = [\"mat-select-trigger\", \"*\"];\nfunction MatSelect_Conditional_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 4);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.placeholder);\n }\n}\nfunction MatSelect_Conditional_5_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojection(0);\n }\n}\nfunction MatSelect_Conditional_5_Conditional_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 11);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.triggerValue);\n }\n}\nfunction MatSelect_Conditional_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 10);\n i0.ɵɵtemplate(1, MatSelect_Conditional_5_Conditional_1_Template, 1, 0)(2, MatSelect_Conditional_5_Conditional_2_Template, 2, 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵconditional(1, ctx_r1.customTrigger ? 1 : 2);\n }\n}\nfunction MatSelect_ng_template_10_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 12, 1);\n i0.ɵɵlistener(\"@transformPanel.done\", function MatSelect_ng_template_10_Template_div_animation_transformPanel_done_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._panelDoneAnimatingStream.next($event.toState));\n })(\"keydown\", function MatSelect_ng_template_10_Template_div_keydown_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._handleKeydown($event));\n });\n i0.ɵɵprojection(2, 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassMapInterpolate1(\"mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open \", ctx_r1._getPanelTheme(), \"\");\n i0.ɵɵproperty(\"ngClass\", ctx_r1.panelClass)(\"@transformPanel\", \"showing\");\n i0.ɵɵattribute(\"id\", ctx_r1.id + \"-panel\")(\"aria-multiselectable\", ctx_r1.multiple)(\"aria-label\", ctx_r1.ariaLabel || null)(\"aria-labelledby\", ctx_r1._getPanelAriaLabelledby());\n }\n}\nconst matSelectAnimations = {\n /**\n * This animation ensures the select's overlay panel animation (transformPanel) is called when\n * closing the select.\n * This is needed due to https://github.com/angular/angular/issues/23302\n */\n transformPanelWrap: /*#__PURE__*/trigger('transformPanelWrap', [/*#__PURE__*/transition('* => void', /*#__PURE__*/query('@transformPanel', [/*#__PURE__*/animateChild()], {\n optional: true\n }))]),\n /** This animation transforms the select's overlay panel on and off the page. */\n transformPanel: /*#__PURE__*/trigger('transformPanel', [/*#__PURE__*/state('void', /*#__PURE__*/style({\n opacity: 0,\n transform: 'scale(1, 0.8)'\n })), /*#__PURE__*/transition('void => showing', /*#__PURE__*/animate('120ms cubic-bezier(0, 0, 0.2, 1)', /*#__PURE__*/style({\n opacity: 1,\n transform: 'scale(1, 1)'\n }))), /*#__PURE__*/transition('* => void', /*#__PURE__*/animate('100ms linear', /*#__PURE__*/style({\n opacity: 0\n })))])\n};\n\n// Note that these have been copied over verbatim from\n// `material/select` so that we don't have to expose them publicly.\n/**\n * Returns an exception to be thrown when attempting to change a select's `multiple` option\n * after initialization.\n * @docs-private\n */\nfunction getMatSelectDynamicMultipleError() {\n return Error('Cannot change `multiple` mode of select after initialization.');\n}\n/**\n * Returns an exception to be thrown when attempting to assign a non-array value to a select\n * in `multiple` mode. Note that `undefined` and `null` are still valid values to allow for\n * resetting the value.\n * @docs-private\n */\nfunction getMatSelectNonArrayValueError() {\n return Error('Value must be an array in multiple-selection mode.');\n}\n/**\n * Returns an exception to be thrown when assigning a non-function value to the comparator\n * used to determine if a value corresponds to an option. Note that whether the function\n * actually takes two values and returns a boolean is not checked.\n */\nfunction getMatSelectNonFunctionValueError() {\n return Error('`compareWith` must be a function.');\n}\nlet nextUniqueId = 0;\n/** Injection token that determines the scroll handling while a select is open. */\nconst MAT_SELECT_SCROLL_STRATEGY = /*#__PURE__*/new InjectionToken('mat-select-scroll-strategy', {\n providedIn: 'root',\n factory: () => {\n const overlay = inject(Overlay);\n return () => overlay.scrollStrategies.reposition();\n }\n});\n/** @docs-private */\nfunction MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {\n return () => overlay.scrollStrategies.reposition();\n}\n/** Injection token that can be used to provide the default options the select module. */\nconst MAT_SELECT_CONFIG = /*#__PURE__*/new InjectionToken('MAT_SELECT_CONFIG');\n/** @docs-private */\nconst MAT_SELECT_SCROLL_STRATEGY_PROVIDER = {\n provide: MAT_SELECT_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY\n};\n/**\n * Injection token that can be used to reference instances of `MatSelectTrigger`. It serves as\n * alternative token to the actual `MatSelectTrigger` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_SELECT_TRIGGER = /*#__PURE__*/new InjectionToken('MatSelectTrigger');\n/** Change event object that is emitted when the select value has changed. */\nclass MatSelectChange {\n constructor( /** Reference to the select that emitted the change event. */\n source, /** Current value of the select that emitted the event. */\n value) {\n this.source = source;\n this.value = value;\n }\n}\nlet MatSelect = /*#__PURE__*/(() => {\n class MatSelect {\n /** Scrolls a particular option into the view. */\n _scrollOptionIntoView(index) {\n const option = this.options.toArray()[index];\n if (option) {\n const panel = this.panel.nativeElement;\n const labelCount = _countGroupLabelsBeforeOption(index, this.options, this.optionGroups);\n const element = option._getHostElement();\n if (index === 0 && labelCount === 1) {\n // If we've got one group label before the option and we're at the top option,\n // scroll the list to the top. This is better UX than scrolling the list to the\n // top of the option, because it allows the user to read the top group's label.\n panel.scrollTop = 0;\n } else {\n panel.scrollTop = _getOptionScrollPosition(element.offsetTop, element.offsetHeight, panel.scrollTop, panel.offsetHeight);\n }\n }\n }\n /** Called when the panel has been opened and the overlay has settled on its final position. */\n _positioningSettled() {\n this._scrollOptionIntoView(this._keyManager.activeItemIndex || 0);\n }\n /** Creates a change event object that should be emitted by the select. */\n _getChangeEvent(value) {\n return new MatSelectChange(this, value);\n }\n /** Whether the select is focused. */\n get focused() {\n return this._focused || this._panelOpen;\n }\n /** Whether checkmark indicator for single-selection options is hidden. */\n get hideSingleSelectionIndicator() {\n return this._hideSingleSelectionIndicator;\n }\n set hideSingleSelectionIndicator(value) {\n this._hideSingleSelectionIndicator = value;\n this._syncParentProperties();\n }\n /** Placeholder to be shown if no value has been selected. */\n get placeholder() {\n return this._placeholder;\n }\n set placeholder(value) {\n this._placeholder = value;\n this.stateChanges.next();\n }\n /** Whether the component is required. */\n get required() {\n return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;\n }\n set required(value) {\n this._required = value;\n this.stateChanges.next();\n }\n /** Whether the user should be allowed to select multiple options. */\n get multiple() {\n return this._multiple;\n }\n set multiple(value) {\n if (this._selectionModel && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatSelectDynamicMultipleError();\n }\n this._multiple = value;\n }\n /**\n * Function to compare the option values with the selected values. The first argument\n * is a value from an option. The second is a value from the selection. A boolean\n * should be returned.\n */\n get compareWith() {\n return this._compareWith;\n }\n set compareWith(fn) {\n if (typeof fn !== 'function' && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatSelectNonFunctionValueError();\n }\n this._compareWith = fn;\n if (this._selectionModel) {\n // A different comparator means the selection could change.\n this._initializeSelection();\n }\n }\n /** Value of the select control. */\n get value() {\n return this._value;\n }\n set value(newValue) {\n const hasAssigned = this._assignValue(newValue);\n if (hasAssigned) {\n this._onChange(newValue);\n }\n }\n /** Object used to control when error messages are shown. */\n get errorStateMatcher() {\n return this._errorStateTracker.matcher;\n }\n set errorStateMatcher(value) {\n this._errorStateTracker.matcher = value;\n }\n /** Unique id of the element. */\n get id() {\n return this._id;\n }\n set id(value) {\n this._id = value || this._uid;\n this.stateChanges.next();\n }\n /** Whether the select is in an error state. */\n get errorState() {\n return this._errorStateTracker.errorState;\n }\n set errorState(value) {\n this._errorStateTracker.errorState = value;\n }\n constructor(_viewportRuler, _changeDetectorRef,\n /**\n * @deprecated Unused param, will be removed.\n * @breaking-change 19.0.0\n */\n _unusedNgZone, defaultErrorStateMatcher, _elementRef, _dir, parentForm, parentFormGroup, _parentFormField, ngControl, tabIndex, scrollStrategyFactory, _liveAnnouncer, _defaultOptions) {\n this._viewportRuler = _viewportRuler;\n this._changeDetectorRef = _changeDetectorRef;\n this._elementRef = _elementRef;\n this._dir = _dir;\n this._parentFormField = _parentFormField;\n this.ngControl = ngControl;\n this._liveAnnouncer = _liveAnnouncer;\n this._defaultOptions = _defaultOptions;\n /**\n * This position config ensures that the top \"start\" corner of the overlay\n * is aligned with with the top \"start\" of the origin by default (overlapping\n * the trigger completely). If the panel cannot fit below the trigger, it\n * will fall back to a position above the trigger.\n */\n this._positions = [{\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n }, {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\n }, {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n panelClass: 'mat-mdc-select-panel-above'\n }, {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n panelClass: 'mat-mdc-select-panel-above'\n }];\n /** Whether or not the overlay panel is open. */\n this._panelOpen = false;\n /** Comparison function to specify which option is displayed. Defaults to object equality. */\n this._compareWith = (o1, o2) => o1 === o2;\n /** Unique id for this input. */\n this._uid = `mat-select-${nextUniqueId++}`;\n /** Current `aria-labelledby` value for the select trigger. */\n this._triggerAriaLabelledBy = null;\n /** Emits whenever the component is destroyed. */\n this._destroy = new Subject();\n /**\n * Emits whenever the component state changes and should cause the parent\n * form-field to update. Implemented as part of `MatFormFieldControl`.\n * @docs-private\n */\n this.stateChanges = new Subject();\n /** `View -> model callback called when value changes` */\n this._onChange = () => {};\n /** `View -> model callback called when select has been touched` */\n this._onTouched = () => {};\n /** ID for the DOM node containing the select's value. */\n this._valueId = `mat-select-value-${nextUniqueId++}`;\n /** Emits when the panel element is finished transforming in. */\n this._panelDoneAnimatingStream = new Subject();\n this._overlayPanelClass = this._defaultOptions?.overlayPanelClass || '';\n this._focused = false;\n /** A name for this control that can be used by `mat-form-field`. */\n this.controlType = 'mat-select';\n /** Whether the select is disabled. */\n this.disabled = false;\n /** Whether ripples in the select are disabled. */\n this.disableRipple = false;\n /** Tab index of the select. */\n this.tabIndex = 0;\n this._hideSingleSelectionIndicator = this._defaultOptions?.hideSingleSelectionIndicator ?? false;\n this._multiple = false;\n /** Whether to center the active option over the trigger. */\n this.disableOptionCentering = this._defaultOptions?.disableOptionCentering ?? false;\n /** Aria label of the select. */\n this.ariaLabel = '';\n /**\n * Width of the panel. If set to `auto`, the panel will match the trigger width.\n * If set to null or an empty string, the panel will grow to match the longest option's text.\n */\n this.panelWidth = this._defaultOptions && typeof this._defaultOptions.panelWidth !== 'undefined' ? this._defaultOptions.panelWidth : 'auto';\n this._initialized = new Subject();\n /** Combined stream of all of the child options' change events. */\n this.optionSelectionChanges = defer(() => {\n const options = this.options;\n if (options) {\n return options.changes.pipe(startWith(options), switchMap(() => merge(...options.map(option => option.onSelectionChange))));\n }\n return this._initialized.pipe(switchMap(() => this.optionSelectionChanges));\n });\n /** Event emitted when the select panel has been toggled. */\n this.openedChange = new EventEmitter();\n /** Event emitted when the select has been opened. */\n this._openedStream = this.openedChange.pipe(filter(o => o), map(() => {}));\n /** Event emitted when the select has been closed. */\n this._closedStream = this.openedChange.pipe(filter(o => !o), map(() => {}));\n /** Event emitted when the selected value has been changed by the user. */\n this.selectionChange = new EventEmitter();\n /**\n * Event that emits whenever the raw value of the select changes. This is here primarily\n * to facilitate the two-way binding for the `value` input.\n * @docs-private\n */\n this.valueChange = new EventEmitter();\n /**\n * Track which modal we have modified the `aria-owns` attribute of. When the combobox trigger is\n * inside an aria-modal, we apply aria-owns to the parent modal with the `id` of the options\n * panel. Track the modal we have changed so we can undo the changes on destroy.\n */\n this._trackedModal = null;\n // `skipPredicate` determines if key manager should avoid putting a given option in the tab\n // order. Allow disabled list items to receive focus via keyboard to align with WAI ARIA\n // recommendation.\n //\n // Normally WAI ARIA's instructions are to exclude disabled items from the tab order, but it\n // makes a few exceptions for compound widgets.\n //\n // From [Developing a Keyboard Interface](\n // https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/):\n // \"For the following composite widget elements, keep them focusable when disabled: Options in a\n // Listbox...\"\n //\n // The user can focus disabled options using the keyboard, but the user cannot click disabled\n // options.\n this._skipPredicate = option => {\n if (this.panelOpen) {\n // Support keyboard focusing disabled options in an ARIA listbox.\n return false;\n }\n // When the panel is closed, skip over disabled options. Support options via the UP/DOWN arrow\n // keys on a closed select. ARIA listbox interaction pattern is less relevant when the panel is\n // closed.\n return option.disabled;\n };\n if (this.ngControl) {\n // Note: we provide the value accessor through here, instead of\n // the `providers` to avoid running into a circular import.\n this.ngControl.valueAccessor = this;\n }\n // Note that we only want to set this when the defaults pass it in, otherwise it should\n // stay as `undefined` so that it falls back to the default in the key manager.\n if (_defaultOptions?.typeaheadDebounceInterval != null) {\n this.typeaheadDebounceInterval = _defaultOptions.typeaheadDebounceInterval;\n }\n this._errorStateTracker = new _ErrorStateTracker(defaultErrorStateMatcher, ngControl, parentFormGroup, parentForm, this.stateChanges);\n this._scrollStrategyFactory = scrollStrategyFactory;\n this._scrollStrategy = this._scrollStrategyFactory();\n this.tabIndex = parseInt(tabIndex) || 0;\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n }\n ngOnInit() {\n this._selectionModel = new SelectionModel(this.multiple);\n this.stateChanges.next();\n // We need `distinctUntilChanged` here, because some browsers will\n // fire the animation end event twice for the same animation. See:\n // https://github.com/angular/angular/issues/24084\n this._panelDoneAnimatingStream.pipe(distinctUntilChanged(), takeUntil(this._destroy)).subscribe(() => this._panelDoneAnimating(this.panelOpen));\n this._viewportRuler.change().pipe(takeUntil(this._destroy)).subscribe(() => {\n if (this.panelOpen) {\n this._overlayWidth = this._getOverlayWidth(this._preferredOverlayOrigin);\n this._changeDetectorRef.detectChanges();\n }\n });\n }\n ngAfterContentInit() {\n this._initialized.next();\n this._initialized.complete();\n this._initKeyManager();\n this._selectionModel.changed.pipe(takeUntil(this._destroy)).subscribe(event => {\n event.added.forEach(option => option.select());\n event.removed.forEach(option => option.deselect());\n });\n this.options.changes.pipe(startWith(null), takeUntil(this._destroy)).subscribe(() => {\n this._resetOptions();\n this._initializeSelection();\n });\n }\n ngDoCheck() {\n const newAriaLabelledby = this._getTriggerAriaLabelledby();\n const ngControl = this.ngControl;\n // We have to manage setting the `aria-labelledby` ourselves, because part of its value\n // is computed as a result of a content query which can cause this binding to trigger a\n // \"changed after checked\" error.\n if (newAriaLabelledby !== this._triggerAriaLabelledBy) {\n const element = this._elementRef.nativeElement;\n this._triggerAriaLabelledBy = newAriaLabelledby;\n if (newAriaLabelledby) {\n element.setAttribute('aria-labelledby', newAriaLabelledby);\n } else {\n element.removeAttribute('aria-labelledby');\n }\n }\n if (ngControl) {\n // The disabled state might go out of sync if the form group is swapped out. See #17860.\n if (this._previousControl !== ngControl.control) {\n if (this._previousControl !== undefined && ngControl.disabled !== null && ngControl.disabled !== this.disabled) {\n this.disabled = ngControl.disabled;\n }\n this._previousControl = ngControl.control;\n }\n this.updateErrorState();\n }\n }\n ngOnChanges(changes) {\n // Updating the disabled state is handled by the input, but we need to additionally let\n // the parent form field know to run change detection when the disabled state changes.\n if (changes['disabled'] || changes['userAriaDescribedBy']) {\n this.stateChanges.next();\n }\n if (changes['typeaheadDebounceInterval'] && this._keyManager) {\n this._keyManager.withTypeAhead(this.typeaheadDebounceInterval);\n }\n }\n ngOnDestroy() {\n this._keyManager?.destroy();\n this._destroy.next();\n this._destroy.complete();\n this.stateChanges.complete();\n this._clearFromModal();\n }\n /** Toggles the overlay panel open or closed. */\n toggle() {\n this.panelOpen ? this.close() : this.open();\n }\n /** Opens the overlay panel. */\n open() {\n if (!this._canOpen()) {\n return;\n }\n // It's important that we read this as late as possible, because doing so earlier will\n // return a different element since it's based on queries in the form field which may\n // not have run yet. Also this needs to be assigned before we measure the overlay width.\n if (this._parentFormField) {\n this._preferredOverlayOrigin = this._parentFormField.getConnectedOverlayOrigin();\n }\n this._overlayWidth = this._getOverlayWidth(this._preferredOverlayOrigin);\n this._applyModalPanelOwnership();\n this._panelOpen = true;\n this._keyManager.withHorizontalOrientation(null);\n this._highlightCorrectOption();\n this._changeDetectorRef.markForCheck();\n // Required for the MDC form field to pick up when the overlay has been opened.\n this.stateChanges.next();\n }\n /**\n * If the autocomplete trigger is inside of an `aria-modal` element, connect\n * that modal to the options panel with `aria-owns`.\n *\n * For some browser + screen reader combinations, when navigation is inside\n * of an `aria-modal` element, the screen reader treats everything outside\n * of that modal as hidden or invisible.\n *\n * This causes a problem when the combobox trigger is _inside_ of a modal, because the\n * options panel is rendered _outside_ of that modal, preventing screen reader navigation\n * from reaching the panel.\n *\n * We can work around this issue by applying `aria-owns` to the modal with the `id` of\n * the options panel. This effectively communicates to assistive technology that the\n * options panel is part of the same interaction as the modal.\n *\n * At time of this writing, this issue is present in VoiceOver.\n * See https://github.com/angular/components/issues/20694\n */\n _applyModalPanelOwnership() {\n // TODO(http://github.com/angular/components/issues/26853): consider de-duplicating this with\n // the `LiveAnnouncer` and any other usages.\n //\n // Note that the selector here is limited to CDK overlays at the moment in order to reduce the\n // section of the DOM we need to look through. This should cover all the cases we support, but\n // the selector can be expanded if it turns out to be too narrow.\n const modal = this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal=\"true\"]');\n if (!modal) {\n // Most commonly, the autocomplete trigger is not inside a modal.\n return;\n }\n const panelId = `${this.id}-panel`;\n if (this._trackedModal) {\n removeAriaReferencedId(this._trackedModal, 'aria-owns', panelId);\n }\n addAriaReferencedId(modal, 'aria-owns', panelId);\n this._trackedModal = modal;\n }\n /** Clears the reference to the listbox overlay element from the modal it was added to. */\n _clearFromModal() {\n if (!this._trackedModal) {\n // Most commonly, the autocomplete trigger is not used inside a modal.\n return;\n }\n const panelId = `${this.id}-panel`;\n removeAriaReferencedId(this._trackedModal, 'aria-owns', panelId);\n this._trackedModal = null;\n }\n /** Closes the overlay panel and focuses the host element. */\n close() {\n if (this._panelOpen) {\n this._panelOpen = false;\n this._keyManager.withHorizontalOrientation(this._isRtl() ? 'rtl' : 'ltr');\n this._changeDetectorRef.markForCheck();\n this._onTouched();\n // Required for the MDC form field to pick up when the overlay has been closed.\n this.stateChanges.next();\n }\n }\n /**\n * Sets the select's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param value New value to be written to the model.\n */\n writeValue(value) {\n this._assignValue(value);\n }\n /**\n * Saves a callback function to be invoked when the select's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn) {\n this._onChange = fn;\n }\n /**\n * Saves a callback function to be invoked when the select is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n /**\n * Disables the select. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n this._changeDetectorRef.markForCheck();\n this.stateChanges.next();\n }\n /** Whether or not the overlay panel is open. */\n get panelOpen() {\n return this._panelOpen;\n }\n /** The currently selected option. */\n get selected() {\n return this.multiple ? this._selectionModel?.selected || [] : this._selectionModel?.selected[0];\n }\n /** The value displayed in the trigger. */\n get triggerValue() {\n if (this.empty) {\n return '';\n }\n if (this._multiple) {\n const selectedOptions = this._selectionModel.selected.map(option => option.viewValue);\n if (this._isRtl()) {\n selectedOptions.reverse();\n }\n // TODO(crisbeto): delimiter should be configurable for proper localization.\n return selectedOptions.join(', ');\n }\n return this._selectionModel.selected[0].viewValue;\n }\n /** Refreshes the error state of the select. */\n updateErrorState() {\n this._errorStateTracker.updateErrorState();\n }\n /** Whether the element is in RTL mode. */\n _isRtl() {\n return this._dir ? this._dir.value === 'rtl' : false;\n }\n /** Handles all keydown events on the select. */\n _handleKeydown(event) {\n if (!this.disabled) {\n this.panelOpen ? this._handleOpenKeydown(event) : this._handleClosedKeydown(event);\n }\n }\n /** Handles keyboard events while the select is closed. */\n _handleClosedKeydown(event) {\n const keyCode = event.keyCode;\n const isArrowKey = keyCode === DOWN_ARROW || keyCode === UP_ARROW || keyCode === LEFT_ARROW || keyCode === RIGHT_ARROW;\n const isOpenKey = keyCode === ENTER || keyCode === SPACE;\n const manager = this._keyManager;\n // Open the select on ALT + arrow key to match the native \n event.preventDefault();\n this.close();\n // Don't do anything in this case if the user is typing,\n // because the typing sequence can include the space key.\n } else if (!isTyping && (keyCode === ENTER || keyCode === SPACE) && manager.activeItem && !hasModifierKey(event)) {\n event.preventDefault();\n manager.activeItem._selectViaInteraction();\n } else if (!isTyping && this._multiple && keyCode === A && event.ctrlKey) {\n event.preventDefault();\n const hasDeselectedOptions = this.options.some(opt => !opt.disabled && !opt.selected);\n this.options.forEach(option => {\n if (!option.disabled) {\n hasDeselectedOptions ? option.select() : option.deselect();\n }\n });\n } else {\n const previouslyFocusedIndex = manager.activeItemIndex;\n manager.onKeydown(event);\n if (this._multiple && isArrowKey && event.shiftKey && manager.activeItem && manager.activeItemIndex !== previouslyFocusedIndex) {\n manager.activeItem._selectViaInteraction();\n }\n }\n }\n _onFocus() {\n if (!this.disabled) {\n this._focused = true;\n this.stateChanges.next();\n }\n }\n /**\n * Calls the touched callback only if the panel is closed. Otherwise, the trigger will\n * \"blur\" to the panel when it opens, causing a false positive.\n */\n _onBlur() {\n this._focused = false;\n this._keyManager?.cancelTypeahead();\n if (!this.disabled && !this.panelOpen) {\n this._onTouched();\n this._changeDetectorRef.markForCheck();\n this.stateChanges.next();\n }\n }\n /**\n * Callback that is invoked when the overlay panel has been attached.\n */\n _onAttached() {\n this._overlayDir.positionChange.pipe(take(1)).subscribe(() => {\n this._changeDetectorRef.detectChanges();\n this._positioningSettled();\n });\n }\n /** Returns the theme to be used on the panel. */\n _getPanelTheme() {\n return this._parentFormField ? `mat-${this._parentFormField.color}` : '';\n }\n /** Whether the select has a value. */\n get empty() {\n return !this._selectionModel || this._selectionModel.isEmpty();\n }\n _initializeSelection() {\n // Defer setting the value in order to avoid the \"Expression\n // has changed after it was checked\" errors from Angular.\n Promise.resolve().then(() => {\n if (this.ngControl) {\n this._value = this.ngControl.value;\n }\n this._setSelectionByValue(this._value);\n this.stateChanges.next();\n });\n }\n /**\n * Sets the selected option based on a value. If no option can be\n * found with the designated value, the select trigger is cleared.\n */\n _setSelectionByValue(value) {\n this.options.forEach(option => option.setInactiveStyles());\n this._selectionModel.clear();\n if (this.multiple && value) {\n if (!Array.isArray(value) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatSelectNonArrayValueError();\n }\n value.forEach(currentValue => this._selectOptionByValue(currentValue));\n this._sortValues();\n } else {\n const correspondingOption = this._selectOptionByValue(value);\n // Shift focus to the active item. Note that we shouldn't do this in multiple\n // mode, because we don't know what option the user interacted with last.\n if (correspondingOption) {\n this._keyManager.updateActiveItem(correspondingOption);\n } else if (!this.panelOpen) {\n // Otherwise reset the highlighted option. Note that we only want to do this while\n // closed, because doing it while open can shift the user's focus unnecessarily.\n this._keyManager.updateActiveItem(-1);\n }\n }\n this._changeDetectorRef.markForCheck();\n }\n /**\n * Finds and selects and option based on its value.\n * @returns Option that has the corresponding value.\n */\n _selectOptionByValue(value) {\n const correspondingOption = this.options.find(option => {\n // Skip options that are already in the model. This allows us to handle cases\n // where the same primitive value is selected multiple times.\n if (this._selectionModel.isSelected(option)) {\n return false;\n }\n try {\n // Treat null as a special reset value.\n return option.value != null && this._compareWith(option.value, value);\n } catch (error) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n // Notify developers of errors in their comparator.\n console.warn(error);\n }\n return false;\n }\n });\n if (correspondingOption) {\n this._selectionModel.select(correspondingOption);\n }\n return correspondingOption;\n }\n /** Assigns a specific value to the select. Returns whether the value has changed. */\n _assignValue(newValue) {\n // Always re-assign an array, because it might have been mutated.\n if (newValue !== this._value || this._multiple && Array.isArray(newValue)) {\n if (this.options) {\n this._setSelectionByValue(newValue);\n }\n this._value = newValue;\n return true;\n }\n return false;\n }\n /** Gets how wide the overlay panel should be. */\n _getOverlayWidth(preferredOrigin) {\n if (this.panelWidth === 'auto') {\n const refToMeasure = preferredOrigin instanceof CdkOverlayOrigin ? preferredOrigin.elementRef : preferredOrigin || this._elementRef;\n return refToMeasure.nativeElement.getBoundingClientRect().width;\n }\n return this.panelWidth === null ? '' : this.panelWidth;\n }\n /** Syncs the parent state with the individual options. */\n _syncParentProperties() {\n if (this.options) {\n for (const option of this.options) {\n option._changeDetectorRef.markForCheck();\n }\n }\n }\n /** Sets up a key manager to listen to keyboard events on the overlay panel. */\n _initKeyManager() {\n this._keyManager = new ActiveDescendantKeyManager(this.options).withTypeAhead(this.typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl() ? 'rtl' : 'ltr').withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(['shiftKey']).skipPredicate(this._skipPredicate);\n this._keyManager.tabOut.subscribe(() => {\n if (this.panelOpen) {\n // Select the active item when tabbing away. This is consistent with how the native\n // select behaves. Note that we only want to do this in single selection mode.\n if (!this.multiple && this._keyManager.activeItem) {\n this._keyManager.activeItem._selectViaInteraction();\n }\n // Restore focus to the trigger before closing. Ensures that the focus\n // position won't be lost if the user got focus into the overlay.\n this.focus();\n this.close();\n }\n });\n this._keyManager.change.subscribe(() => {\n if (this._panelOpen && this.panel) {\n this._scrollOptionIntoView(this._keyManager.activeItemIndex || 0);\n } else if (!this._panelOpen && !this.multiple && this._keyManager.activeItem) {\n this._keyManager.activeItem._selectViaInteraction();\n }\n });\n }\n /** Drops current option subscriptions and IDs and resets from scratch. */\n _resetOptions() {\n const changedOrDestroyed = merge(this.options.changes, this._destroy);\n this.optionSelectionChanges.pipe(takeUntil(changedOrDestroyed)).subscribe(event => {\n this._onSelect(event.source, event.isUserInput);\n if (event.isUserInput && !this.multiple && this._panelOpen) {\n this.close();\n this.focus();\n }\n });\n // Listen to changes in the internal state of the options and react accordingly.\n // Handles cases like the labels of the selected options changing.\n merge(...this.options.map(option => option._stateChanges)).pipe(takeUntil(changedOrDestroyed)).subscribe(() => {\n // `_stateChanges` can fire as a result of a change in the label's DOM value which may\n // be the result of an expression changing. We have to use `detectChanges` in order\n // to avoid \"changed after checked\" errors (see #14793).\n this._changeDetectorRef.detectChanges();\n this.stateChanges.next();\n });\n }\n /** Invoked when an option is clicked. */\n _onSelect(option, isUserInput) {\n const wasSelected = this._selectionModel.isSelected(option);\n if (option.value == null && !this._multiple) {\n option.deselect();\n this._selectionModel.clear();\n if (this.value != null) {\n this._propagateChanges(option.value);\n }\n } else {\n if (wasSelected !== option.selected) {\n option.selected ? this._selectionModel.select(option) : this._selectionModel.deselect(option);\n }\n if (isUserInput) {\n this._keyManager.setActiveItem(option);\n }\n if (this.multiple) {\n this._sortValues();\n if (isUserInput) {\n // In case the user selected the option with their mouse, we\n // want to restore focus back to the trigger, in order to\n // prevent the select keyboard controls from clashing with\n // the ones from `mat-option`.\n this.focus();\n }\n }\n }\n if (wasSelected !== this._selectionModel.isSelected(option)) {\n this._propagateChanges();\n }\n this.stateChanges.next();\n }\n /** Sorts the selected values in the selected based on their order in the panel. */\n _sortValues() {\n if (this.multiple) {\n const options = this.options.toArray();\n this._selectionModel.sort((a, b) => {\n return this.sortComparator ? this.sortComparator(a, b, options) : options.indexOf(a) - options.indexOf(b);\n });\n this.stateChanges.next();\n }\n }\n /** Emits change event to set the model value. */\n _propagateChanges(fallbackValue) {\n let valueToEmit;\n if (this.multiple) {\n valueToEmit = this.selected.map(option => option.value);\n } else {\n valueToEmit = this.selected ? this.selected.value : fallbackValue;\n }\n this._value = valueToEmit;\n this.valueChange.emit(valueToEmit);\n this._onChange(valueToEmit);\n this.selectionChange.emit(this._getChangeEvent(valueToEmit));\n this._changeDetectorRef.markForCheck();\n }\n /**\n * Highlights the selected item. If no option is selected, it will highlight\n * the first *enabled* option.\n */\n _highlightCorrectOption() {\n if (this._keyManager) {\n if (this.empty) {\n // Find the index of the first *enabled* option. Avoid calling `_keyManager.setActiveItem`\n // because it activates the first option that passes the skip predicate, rather than the\n // first *enabled* option.\n let firstEnabledOptionIndex = -1;\n for (let index = 0; index < this.options.length; index++) {\n const option = this.options.get(index);\n if (!option.disabled) {\n firstEnabledOptionIndex = index;\n break;\n }\n }\n this._keyManager.setActiveItem(firstEnabledOptionIndex);\n } else {\n this._keyManager.setActiveItem(this._selectionModel.selected[0]);\n }\n }\n }\n /** Whether the panel is allowed to open. */\n _canOpen() {\n return !this._panelOpen && !this.disabled && this.options?.length > 0;\n }\n /** Focuses the select element. */\n focus(options) {\n this._elementRef.nativeElement.focus(options);\n }\n /** Gets the aria-labelledby for the select panel. */\n _getPanelAriaLabelledby() {\n if (this.ariaLabel) {\n return null;\n }\n const labelId = this._parentFormField?.getLabelId();\n const labelExpression = labelId ? labelId + ' ' : '';\n return this.ariaLabelledby ? labelExpression + this.ariaLabelledby : labelId;\n }\n /** Determines the `aria-activedescendant` to be set on the host. */\n _getAriaActiveDescendant() {\n if (this.panelOpen && this._keyManager && this._keyManager.activeItem) {\n return this._keyManager.activeItem.id;\n }\n return null;\n }\n /** Gets the aria-labelledby of the select component trigger. */\n _getTriggerAriaLabelledby() {\n if (this.ariaLabel) {\n return null;\n }\n const labelId = this._parentFormField?.getLabelId();\n let value = (labelId ? labelId + ' ' : '') + this._valueId;\n if (this.ariaLabelledby) {\n value += ' ' + this.ariaLabelledby;\n }\n return value;\n }\n /** Called when the overlay panel is done animating. */\n _panelDoneAnimating(isOpen) {\n this.openedChange.emit(isOpen);\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n setDescribedByIds(ids) {\n if (ids.length) {\n this._elementRef.nativeElement.setAttribute('aria-describedby', ids.join(' '));\n } else {\n this._elementRef.nativeElement.removeAttribute('aria-describedby');\n }\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n onContainerClick() {\n this.focus();\n this.open();\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get shouldLabelFloat() {\n // Since the panel doesn't overlap the trigger, we\n // want the label to only float when there's a value.\n return this.panelOpen || !this.empty || this.focused && !!this.placeholder;\n }\n static {\n this.ɵfac = function MatSelect_Factory(t) {\n return new (t || MatSelect)(i0.ɵɵdirectiveInject(i1.ViewportRuler), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i2.ErrorStateMatcher), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i3.Directionality, 8), i0.ɵɵdirectiveInject(i4.NgForm, 8), i0.ɵɵdirectiveInject(i4.FormGroupDirective, 8), i0.ɵɵdirectiveInject(MAT_FORM_FIELD, 8), i0.ɵɵdirectiveInject(i4.NgControl, 10), i0.ɵɵinjectAttribute('tabindex'), i0.ɵɵdirectiveInject(MAT_SELECT_SCROLL_STRATEGY), i0.ɵɵdirectiveInject(i5.LiveAnnouncer), i0.ɵɵdirectiveInject(MAT_SELECT_CONFIG, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatSelect,\n selectors: [[\"mat-select\"]],\n contentQueries: function MatSelect_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MAT_SELECT_TRIGGER, 5);\n i0.ɵɵcontentQuery(dirIndex, MatOption, 5);\n i0.ɵɵcontentQuery(dirIndex, MAT_OPTGROUP, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.customTrigger = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.options = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.optionGroups = _t);\n }\n },\n viewQuery: function MatSelect_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n i0.ɵɵviewQuery(_c1, 5);\n i0.ɵɵviewQuery(CdkConnectedOverlay, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.trigger = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.panel = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._overlayDir = _t.first);\n }\n },\n hostAttrs: [\"role\", \"combobox\", \"aria-autocomplete\", \"none\", \"aria-haspopup\", \"listbox\", 1, \"mat-mdc-select\"],\n hostVars: 19,\n hostBindings: function MatSelect_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"keydown\", function MatSelect_keydown_HostBindingHandler($event) {\n return ctx._handleKeydown($event);\n })(\"focus\", function MatSelect_focus_HostBindingHandler() {\n return ctx._onFocus();\n })(\"blur\", function MatSelect_blur_HostBindingHandler() {\n return ctx._onBlur();\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"id\", ctx.id)(\"tabindex\", ctx.disabled ? -1 : ctx.tabIndex)(\"aria-controls\", ctx.panelOpen ? ctx.id + \"-panel\" : null)(\"aria-expanded\", ctx.panelOpen)(\"aria-label\", ctx.ariaLabel || null)(\"aria-required\", ctx.required.toString())(\"aria-disabled\", ctx.disabled.toString())(\"aria-invalid\", ctx.errorState)(\"aria-activedescendant\", ctx._getAriaActiveDescendant());\n i0.ɵɵclassProp(\"mat-mdc-select-disabled\", ctx.disabled)(\"mat-mdc-select-invalid\", ctx.errorState)(\"mat-mdc-select-required\", ctx.required)(\"mat-mdc-select-empty\", ctx.empty)(\"mat-mdc-select-multiple\", ctx.multiple);\n }\n },\n inputs: {\n userAriaDescribedBy: [i0.ɵɵInputFlags.None, \"aria-describedby\", \"userAriaDescribedBy\"],\n panelClass: \"panelClass\",\n disabled: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"disabled\", \"disabled\", booleanAttribute],\n disableRipple: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"disableRipple\", \"disableRipple\", booleanAttribute],\n tabIndex: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"tabIndex\", \"tabIndex\", value => value == null ? 0 : numberAttribute(value)],\n hideSingleSelectionIndicator: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"hideSingleSelectionIndicator\", \"hideSingleSelectionIndicator\", booleanAttribute],\n placeholder: \"placeholder\",\n required: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"required\", \"required\", booleanAttribute],\n multiple: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"multiple\", \"multiple\", booleanAttribute],\n disableOptionCentering: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"disableOptionCentering\", \"disableOptionCentering\", booleanAttribute],\n compareWith: \"compareWith\",\n value: \"value\",\n ariaLabel: [i0.ɵɵInputFlags.None, \"aria-label\", \"ariaLabel\"],\n ariaLabelledby: [i0.ɵɵInputFlags.None, \"aria-labelledby\", \"ariaLabelledby\"],\n errorStateMatcher: \"errorStateMatcher\",\n typeaheadDebounceInterval: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"typeaheadDebounceInterval\", \"typeaheadDebounceInterval\", numberAttribute],\n sortComparator: \"sortComparator\",\n id: \"id\",\n panelWidth: \"panelWidth\"\n },\n outputs: {\n openedChange: \"openedChange\",\n _openedStream: \"opened\",\n _closedStream: \"closed\",\n selectionChange: \"selectionChange\",\n valueChange: \"valueChange\"\n },\n exportAs: [\"matSelect\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: MatFormFieldControl,\n useExisting: MatSelect\n }, {\n provide: MAT_OPTION_PARENT_COMPONENT,\n useExisting: MatSelect\n }]), i0.ɵɵInputTransformsFeature, i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c3,\n decls: 11,\n vars: 8,\n consts: [[\"fallbackOverlayOrigin\", \"cdkOverlayOrigin\", \"trigger\", \"\"], [\"panel\", \"\"], [\"cdk-overlay-origin\", \"\", 1, \"mat-mdc-select-trigger\", 3, \"click\"], [1, \"mat-mdc-select-value\"], [1, \"mat-mdc-select-placeholder\", \"mat-mdc-select-min-line\"], [1, \"mat-mdc-select-arrow-wrapper\"], [1, \"mat-mdc-select-arrow\"], [\"viewBox\", \"0 0 24 24\", \"width\", \"24px\", \"height\", \"24px\", \"focusable\", \"false\", \"aria-hidden\", \"true\"], [\"d\", \"M7 10l5 5 5-5z\"], [\"cdk-connected-overlay\", \"\", \"cdkConnectedOverlayLockPosition\", \"\", \"cdkConnectedOverlayHasBackdrop\", \"\", \"cdkConnectedOverlayBackdropClass\", \"cdk-overlay-transparent-backdrop\", 3, \"backdropClick\", \"attach\", \"detach\", \"cdkConnectedOverlayPanelClass\", \"cdkConnectedOverlayScrollStrategy\", \"cdkConnectedOverlayOrigin\", \"cdkConnectedOverlayOpen\", \"cdkConnectedOverlayPositions\", \"cdkConnectedOverlayWidth\"], [1, \"mat-mdc-select-value-text\"], [1, \"mat-mdc-select-min-line\"], [\"role\", \"listbox\", \"tabindex\", \"-1\", 3, \"keydown\", \"ngClass\"]],\n template: function MatSelect_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵprojectionDef(_c2);\n i0.ɵɵelementStart(0, \"div\", 2, 0);\n i0.ɵɵlistener(\"click\", function MatSelect_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.open());\n });\n i0.ɵɵelementStart(3, \"div\", 3);\n i0.ɵɵtemplate(4, MatSelect_Conditional_4_Template, 2, 1, \"span\", 4)(5, MatSelect_Conditional_5_Template, 3, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(6, \"div\", 5)(7, \"div\", 6);\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(8, \"svg\", 7);\n i0.ɵɵelement(9, \"path\", 8);\n i0.ɵɵelementEnd()()()();\n i0.ɵɵtemplate(10, MatSelect_ng_template_10_Template, 3, 9, \"ng-template\", 9);\n i0.ɵɵlistener(\"backdropClick\", function MatSelect_Template_ng_template_backdropClick_10_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.close());\n })(\"attach\", function MatSelect_Template_ng_template_attach_10_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._onAttached());\n })(\"detach\", function MatSelect_Template_ng_template_detach_10_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.close());\n });\n }\n if (rf & 2) {\n const fallbackOverlayOrigin_r4 = i0.ɵɵreference(1);\n i0.ɵɵadvance(3);\n i0.ɵɵattribute(\"id\", ctx._valueId);\n i0.ɵɵadvance();\n i0.ɵɵconditional(4, ctx.empty ? 4 : 5);\n i0.ɵɵadvance(6);\n i0.ɵɵproperty(\"cdkConnectedOverlayPanelClass\", ctx._overlayPanelClass)(\"cdkConnectedOverlayScrollStrategy\", ctx._scrollStrategy)(\"cdkConnectedOverlayOrigin\", ctx._preferredOverlayOrigin || fallbackOverlayOrigin_r4)(\"cdkConnectedOverlayOpen\", ctx.panelOpen)(\"cdkConnectedOverlayPositions\", ctx._positions)(\"cdkConnectedOverlayWidth\", ctx._overlayWidth);\n }\n },\n dependencies: [CdkOverlayOrigin, CdkConnectedOverlay, NgClass],\n styles: [\".mat-mdc-select{display:inline-block;width:100%;outline:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-select-enabled-trigger-text-color);font-family:var(--mat-select-trigger-text-font);line-height:var(--mat-select-trigger-text-line-height);font-size:var(--mat-select-trigger-text-size);font-weight:var(--mat-select-trigger-text-weight);letter-spacing:var(--mat-select-trigger-text-tracking)}div.mat-mdc-select-panel{box-shadow:var(--mat-select-container-elevation-shadow)}.mat-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color)}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow,.mat-form-field-invalid:not(.mat-form-field-disabled) .mat-mdc-form-field-infix::after{color:var(--mat-select-invalid-arrow-color)}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color)}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color)}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color)}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:GrayText}div.mat-mdc-select-panel{width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-select-panel-background-color)}.cdk-high-contrast-active div.mat-mdc-select-panel{outline:solid 1px}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) div.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above div.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}div.mat-mdc-select-panel .mat-mdc-option{--mdc-list-list-item-container-color: var(--mat-select-panel-background-color)}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);color:var(--mat-select-placeholder-text-color)}._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{cursor:pointer}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:\\\" \\\";white-space:pre;width:1px;display:inline-block;visibility:hidden}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:var(--mat-select-arrow-transform)}\"],\n encapsulation: 2,\n data: {\n animation: [matSelectAnimations.transformPanel]\n },\n changeDetection: 0\n });\n }\n }\n return MatSelect;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Allows the user to customize the trigger that is displayed when the select has a value.\n */\nlet MatSelectTrigger = /*#__PURE__*/(() => {\n class MatSelectTrigger {\n static {\n this.ɵfac = function MatSelectTrigger_Factory(t) {\n return new (t || MatSelectTrigger)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatSelectTrigger,\n selectors: [[\"mat-select-trigger\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_SELECT_TRIGGER,\n useExisting: MatSelectTrigger\n }])]\n });\n }\n }\n return MatSelectTrigger;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MatSelectModule = /*#__PURE__*/(() => {\n class MatSelectModule {\n static {\n this.ɵfac = function MatSelectModule_Factory(t) {\n return new (t || MatSelectModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatSelectModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [MAT_SELECT_SCROLL_STRATEGY_PROVIDER],\n imports: [CommonModule, OverlayModule, MatOptionModule, MatCommonModule, CdkScrollableModule, MatFormFieldModule, MatOptionModule, MatCommonModule]\n });\n }\n }\n return MatSelectModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_SELECT_CONFIG, MAT_SELECT_SCROLL_STRATEGY, MAT_SELECT_SCROLL_STRATEGY_PROVIDER, MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY, MAT_SELECT_TRIGGER, MatSelect, MatSelectChange, MatSelectModule, MatSelectTrigger, matSelectAnimations };\n","import { Component, HostBinding } from '@angular/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'EXP__glxy-wrap',\n template: '',\n styleUrls: ['./galaxy-wrap-overrides.scss'],\n})\nexport class GalaxyWrapComponent {\n @HostBinding('class') class = 'EXP__glxy-wrap';\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GalaxyWrapComponent } from './galaxy-wrap.component';\n\n@NgModule({\n declarations: [GalaxyWrapComponent],\n imports: [CommonModule],\n exports: [GalaxyWrapComponent],\n})\nexport class GalaxyWrapModule {}\n","export * from './src/galaxy-wrap.module';\nexport { GalaxyWrapComponent } from './src/galaxy-wrap.component';\n","export * from './public_api';\n","import { CdkOverlayOrigin, ConnectedPosition } from '@angular/cdk/overlay';\nimport { Component, ElementRef, HostBinding, Input } from '@angular/core';\nimport { PopoverPositions } from '@vendasta/galaxy/popover';\n\n@Component({\n selector: 'glxy-tooltip,',\n templateUrl: './tooltip.component.html',\n})\nexport class TooltipComponent {\n @HostBinding('class') class = 'glxy-tooltip';\n\n positions = [PopoverPositions.Top, PopoverPositions.Bottom];\n /** Origin that references the component the tooltip should be created relative to. Comes from CdkOverlayOrigin directive */\n @Input() origin!: CdkOverlayOrigin;\n\n /** Optional title for the tooltip */\n @Input() title?: string;\n\n /** text that can be added to the tooltip */\n @Input() text?: string;\n\n /** Change the background color and text for high contrast with page background */\n @Input() highContrast = false;\n\n show = false;\n\n constructor(public elementRef: ElementRef) {}\n\n setOrigin(origin: CdkOverlayOrigin): void {\n this.origin = origin;\n }\n\n setText(text: string): void {\n this.text = text;\n }\n\n setTitle(title: string): void {\n this.title = title;\n }\n\n sethighContrast(mode: boolean): void {\n this.highContrast = mode;\n }\n\n setPositions(positions: ConnectedPosition[]): void {\n this.positions = positions;\n }\n\n showTooltip(): void {\n this.show = true;\n }\n\n hideTooltip(): void {\n this.show = false;\n }\n}\n","\n \n \n {{ title | translate }}\n \n {{ text | translate }}\n \n\n","import { CdkOverlayOrigin, ConnectedPosition, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Directive, ElementRef, HostListener, Input, OnChanges, OnDestroy, OnInit } from '@angular/core';\nimport { TooltipComponent } from '../tooltip.component';\n\nconst HIDDEN_TEST_WAIT = 500;\n\n@Directive({\n selector: '[glxyTooltip]',\n exportAs: 'glxyTooltip',\n})\nexport class GalaxyTooltipDirective implements OnInit, OnChanges, OnDestroy {\n tooltip?: TooltipComponent;\n origin?: CdkOverlayOrigin;\n show = false;\n\n private overlayRef?: OverlayRef;\n\n /** The text of the tooltip */\n @Input({ required: true }) glxyTooltip = '';\n\n /** An optional title that can be given to the tooltip */\n @Input() tooltipTitle?: string;\n\n /** Disables the tooltip when true */\n @Input() glxyTooltipDisabled = false;\n\n /**\n * What positioning strategy to use for the tooltip. If empty, no positions are applied to the popover (it has a default position set)\n */\n @Input()\n tooltipPositions?: ConnectedPosition[] = [];\n\n /** Change the background color and text for high contrast with white backgrounds */\n @Input() highContrast = true;\n\n private hiddenTestID = 0;\n\n @HostListener('mouseenter') onMouseEnter(): void {\n this.showTooltip();\n\n // Stop any previous tests, if any\n window.clearTimeout(this.hiddenTestID);\n // Kick off a new test loop\n this.testElementHidden();\n }\n\n @HostListener('mouseleave') onMouseLeave(): void {\n this.hideTooltip();\n\n // Stop current test from running\n window.clearTimeout(this.hiddenTestID);\n }\n\n constructor(private elementRef: ElementRef, private overlay: Overlay) {}\n\n ngOnInit(): void {\n this.overlayRef = this.overlay.create({\n hasBackdrop: false,\n });\n this.initTooltip();\n }\n\n ngOnChanges(): void {\n this.updateTooltipValues();\n }\n\n ngOnDestroy(): void {\n this.overlayRef?.dispose();\n }\n\n initTooltip(): void {\n this.tooltip = this.overlayRef?.attach(new ComponentPortal(TooltipComponent)).instance;\n this.updateTooltipValues();\n }\n\n updateTooltipValues(): void {\n if (this.tooltip) {\n this.tooltip.setOrigin(new CdkOverlayOrigin(this.elementRef));\n this.tooltip.setTitle(this.tooltipTitle || '');\n this.tooltip.setText(this.glxyTooltip);\n this.tooltip.sethighContrast(this.highContrast);\n if (this.tooltipPositions?.length) {\n this.tooltip.setPositions(this.tooltipPositions);\n }\n }\n }\n\n showTooltip(): void {\n if (!this.glxyTooltipDisabled) {\n this.tooltip?.showTooltip();\n }\n }\n\n hideTooltip(): void {\n this.tooltip?.hideTooltip();\n }\n\n /**\n * Test to see if the parent element is in the DOM. If not, hide the tooltip\n */\n private testElementHidden(): void {\n if (!this.tooltip?.show) {\n return;\n }\n\n this.hiddenTestID = window.setTimeout(() => {\n if (!document.body.contains(this.elementRef.nativeElement)) {\n this.hideTooltip();\n }\n this.testElementHidden();\n }, HIDDEN_TEST_WAIT);\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyPopoverModule } from '@vendasta/galaxy/popover';\nimport { GalaxyTooltipDirective } from './directive/tooltip.directive';\nimport { TooltipComponent } from './tooltip.component';\n\nexport const MODULE_IMPORTS = [CommonModule, OverlayModule, GalaxyPopoverModule, TranslateModule];\n\nexport const MODULE_DECLARATIONS = [TooltipComponent, GalaxyTooltipDirective];\n\n@NgModule({\n declarations: MODULE_DECLARATIONS,\n imports: MODULE_IMPORTS,\n exports: [TooltipComponent, GalaxyTooltipDirective],\n})\nexport class GalaxyTooltipModule {}\n","export { GalaxyTooltipDirective as GalaxyTooltip } from './src/directive/tooltip.directive';\nexport { TooltipComponent } from './src/tooltip.component';\nexport * from './src/tooltip.module';\n","// Export things like public API, and interfaces from here.\nexport * from './public_api';\n"],"mappings":"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","names":["PopoverPositions","DEFAULT_POSITIONS","init_popover_positions","__esmMin","Top","originX","originY","overlayX","overlayY","panelClass","Bottom","Left","Right","TopRight","TopLeft","BottomRight","BottomLeft","__spreadValues","ɵɵelement","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","close","ɵɵtext","ɵɵelementEnd","ɵɵprojection","ɵɵtemplate","PopoverComponent_ng_template_0_div_8_Template","PopoverComponent_ng_template_0_div_10_Template","ɵɵstyleProp","_cooercedMaxWidth","_cooercedMaxHeight","ɵɵclassProp","padding","highContrast","hasArrow","ɵɵpipeBind1","isFullscreen$","mobileFullScreen","ɵɵadvance","ɵɵproperty","showMobileClose","PopoverComponent","init_popover_component","__esmMin","init_coercion","init_core","init_popover_positions","init_operators","handleEscapeKey","closeOnEscapeKey","isOpen","coerceCssPixelValue","maxWidth","maxHeight","_popoverClasses","_backdropClass","showBackdrop","constructor","breakpointObserver","hasBackdrop","closeOnBackdropClick","keepOnScreen","breakpoint","positions","DEFAULT_POSITIONS","isOpenChange","EventEmitter","backdropClick","mobileBreakpoint","ngOnInit","observe","pipe","map","resp","breakpoints","ngAfterContentInit","setupPositions","ngOnChanges","changes","previousValue","_positions","pos","__spreadValues","setOrigin","origin","onBackdropClick","emit","open","toggle","ɵɵdirectiveInject","BreakpointObserver","selectors","hostBindings","rf","ctx","ɵɵresolveDocument","PopoverComponent_ng_template_0_Template","_PopoverComponent","PopoverActionsDirective","init_popover_actions_directive","__esmMin","constructor","class","selectors","hostVars","hostBindings","rf","ctx","ɵɵclassMap","_PopoverActionsDirective","PopoverTitleDirective","init_popover_title_directive","__esmMin","constructor","class","selectors","hostVars","hostBindings","rf","ctx","ɵɵclassMap","_PopoverTitleDirective","GalaxyPopoverDirective","init_popover_directive","__esmMin","init_overlay","constructor","elementRef","ngOnInit","initPopover","origin","CdkOverlayOrigin","popover","setOrigin","ɵɵdirectiveInject","ElementRef","selectors","inputs","ɵɵInputFlags","None","exportAs","_GalaxyPopoverDirective","MODULE_IMPORTS","GalaxyPopoverModule","init_popover_module","__esmMin","init_overlay","init_common","init_button","init_icon","CommonModule","OverlayModule","MatIconModule","MatButtonModule","_GalaxyPopoverModule","init_public_api","__esmMin","init_popover_module","init_popover_positions","init_popover","__esmMin","init_public_api","MatSelect_Conditional_4_Template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ctx_r1","ɵɵnextContext","ɵɵadvance","ɵɵtextInterpolate","MatSelect_Conditional_5_Conditional_1_Template","ɵɵprojection","MatSelect_Conditional_5_Conditional_2_Template","MatSelect_Conditional_5_Template","ɵɵtemplate","ɵɵconditional","MatSelect_ng_template_10_Template","_r3","ɵɵgetCurrentView","ɵɵlistener","$event","ɵɵrestoreView","ɵɵresetView","ɵɵclassMapInterpolate1","ɵɵproperty","ɵɵattribute","MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY","overlay","_c0","_c1","_c2","_c3","matSelectAnimations","nextUniqueId","MAT_SELECT_SCROLL_STRATEGY","MAT_SELECT_CONFIG","MAT_SELECT_SCROLL_STRATEGY_PROVIDER","MAT_SELECT_TRIGGER","MatSelectChange","MatSelect","MatSelectTrigger","MatSelectModule","init_select","__esmMin","init_overlay","init_common","init_core","init_form_field","init_scrolling","init_a11y","init_bidi","init_collections","init_keycodes","init_forms","init_esm","init_operators","init_animations","trigger","transition","query","animateChild","state","style","animate","InjectionToken","inject","Overlay","source","value","_MatSelect","index","option","panel","labelCount","_countGroupLabelsBeforeOption","element","_getOptionScrollPosition","Validators","fn","newValue","_viewportRuler","_changeDetectorRef","_unusedNgZone","defaultErrorStateMatcher","_elementRef","_dir","parentForm","parentFormGroup","_parentFormField","ngControl","tabIndex","scrollStrategyFactory","_liveAnnouncer","_defaultOptions","o1","o2","Subject","defer","options","startWith","switchMap","merge","EventEmitter","filter","o","map","_ErrorStateTracker","SelectionModel","distinctUntilChanged","takeUntil","event","newAriaLabelledby","changes","modal","panelId","removeAriaReferencedId","addAriaReferencedId","isDisabled","selectedOptions","keyCode","isArrowKey","isOpenKey","manager","hasModifierKey","previouslySelectedOption","selectedOption","isTyping","hasDeselectedOptions","opt","previouslyFocusedIndex","take","currentValue","correspondingOption","preferredOrigin","CdkOverlayOrigin","ActiveDescendantKeyManager","changedOrDestroyed","isUserInput","wasSelected","a","b","fallbackValue","valueToEmit","firstEnabledOptionIndex","labelId","labelExpression","isOpen","ids","ɵɵdirectiveInject","ViewportRuler","ChangeDetectorRef","NgZone","ErrorStateMatcher","ElementRef","Directionality","NgForm","FormGroupDirective","MAT_FORM_FIELD","NgControl","ɵɵinjectAttribute","LiveAnnouncer","ɵɵdefineComponent","dirIndex","ɵɵcontentQuery","MatOption","MAT_OPTGROUP","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵviewQuery","CdkConnectedOverlay","ɵɵclassProp","InputFlags","booleanAttribute","numberAttribute","ɵɵProvidersFeature","MatFormFieldControl","MAT_OPTION_PARENT_COMPONENT","ɵɵInputTransformsFeature","ɵɵNgOnChangesFeature","ɵɵStandaloneFeature","_r1","ɵɵprojectionDef","ɵɵnamespaceSVG","ɵɵelement","fallbackOverlayOrigin_r4","ɵɵreference","NgClass","_MatSelectTrigger","ɵɵdefineDirective","_MatSelectModule","ɵɵdefineNgModule","ɵɵdefineInjector","CommonModule","OverlayModule","MatOptionModule","MatCommonModule","CdkScrollableModule","MatFormFieldModule","GalaxyWrapComponent","init_galaxy_wrap_component","__esmMin","constructor","class","selectors","hostVars","hostBindings","rf","ctx","ɵɵclassMap","ɵɵelementStart","ɵɵprojection","ɵɵelementEnd","_GalaxyWrapComponent","GalaxyWrapModule","init_galaxy_wrap_module","__esmMin","init_common","CommonModule","_GalaxyWrapModule","init_public_api","__esmMin","init_galaxy_wrap_module","init_galaxy_wrap","__esmMin","init_public_api","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ctx_r0","title","ɵɵtextInterpolate","text","ɵɵelementContainerStart","ɵɵtemplate","TooltipComponent_ng_container_0_glxy_popover_title_2_Template","TooltipComponent_ng_container_0_span_3_Template","ɵɵproperty","origin","show","positions","highContrast","TooltipComponent","init_tooltip_component","__esmMin","init_popover","constructor","elementRef","class","PopoverPositions","Top","Bottom","setOrigin","setText","setTitle","sethighContrast","mode","setPositions","showTooltip","hideTooltip","ɵɵdirectiveInject","ElementRef","selectors","hostVars","hostBindings","rf","ctx","ɵɵclassMap","TooltipComponent_ng_container_0_Template","_TooltipComponent","HIDDEN_TEST_WAIT","GalaxyTooltipDirective","init_tooltip_directive","__esmMin","init_overlay","init_portal","init_tooltip_component","onMouseEnter","showTooltip","window","clearTimeout","hiddenTestID","testElementHidden","onMouseLeave","hideTooltip","constructor","elementRef","overlay","show","glxyTooltip","glxyTooltipDisabled","tooltipPositions","highContrast","ngOnInit","overlayRef","create","hasBackdrop","initTooltip","ngOnChanges","updateTooltipValues","ngOnDestroy","dispose","tooltip","attach","ComponentPortal","TooltipComponent","instance","setOrigin","CdkOverlayOrigin","setTitle","tooltipTitle","setText","sethighContrast","length","setPositions","setTimeout","document","body","contains","nativeElement","ɵɵdirectiveInject","ElementRef","Overlay","selectors","hostBindings","rf","ctx","ɵɵlistener","_GalaxyTooltipDirective","MODULE_IMPORTS","GalaxyTooltipModule","init_tooltip_module","__esmMin","init_overlay","init_common","init_ngx_translate_core","init_popover","CommonModule","OverlayModule","GalaxyPopoverModule","TranslateModule","_GalaxyTooltipModule","init_public_api","__esmMin","init_tooltip_module","init_tooltip","__esmMin","init_public_api"],"x_google_ignoreList":[9]}