@ngstarter-ui/components 21.0.20 → 21.0.21

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ngstarter-ui-components-autocomplete.mjs","sources":["../../../projects/components/autocomplete/src/autocomplete/autocomplete.ts","../../../projects/components/autocomplete/src/autocomplete/autocomplete.html","../../../projects/components/autocomplete/src/autocomplete-trigger.ts","../../../projects/components/autocomplete/ngstarter-ui-components-autocomplete.ts"],"sourcesContent":["import {\n Component,\n TemplateRef,\n viewChild,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n output,\n ElementRef,\n input,\n booleanAttribute,\n EventEmitter,\n Output,\n Input,\n signal,\n forwardRef,\n contentChildren\n} from '@angular/core';\nimport { Option, OPTION_PARENT, _OptionParent } from '@ngstarter-ui/components/option';\nimport { NgClass } from '@angular/common';\n\nlet nextId = 0;\n\nexport interface AutocompleteActivatedEvent {\n source: Autocomplete;\n option: Option | null;\n}\n\nexport interface AutocompleteSelectedEvent {\n source: Autocomplete;\n option: Option;\n}\n\n@Component({\n selector: 'ngs-autocomplete',\n exportAs: 'ngsAutocomplete',\n imports: [\n NgClass\n ],\n templateUrl: './autocomplete.html',\n styleUrl: './autocomplete.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: OPTION_PARENT,\n useExisting: forwardRef(() => Autocomplete)\n }\n ]\n})\nexport class Autocomplete implements _OptionParent {\n readonly options = contentChildren(Option, { descendants: true });\n\n multiple = signal(false);\n readonly template = viewChild.required(TemplateRef);\n readonly panel = viewChild<ElementRef<HTMLElement>>('panel');\n\n id = `ngs-autocomplete-${nextId++}`;\n\n ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n ariaLabelledby = input<string | undefined>(undefined, { alias: 'aria-labelledby' });\n autoActiveFirstOption = input(false, { transform: booleanAttribute });\n autoSelectActiveOption = input(false, { transform: booleanAttribute });\n classList = input<string | string[] | undefined>(undefined, { alias: 'class' });\n disableRipple = input(false, { transform: booleanAttribute });\n displayWith = input<(value: any) => string | null>(() => null);\n hideSingleSelectionIndicator = input(false, { transform: booleanAttribute });\n panelWidth = input<string | number | undefined>(undefined);\n requireSelection = input(false, { transform: booleanAttribute });\n\n closed = output<void>();\n opened = output<void>();\n optionActivated = output<AutocompleteActivatedEvent>();\n optionSelected = output<AutocompleteSelectedEvent>();\n\n _emitSelectEvent(option: Option): void {\n this.optionSelected.emit({ source: this, option });\n }\n}\n","<ng-template>\n <div class=\"ngs-autocomplete-panel\"\n role=\"listbox\"\n [id]=\"id\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [ngClass]=\"classList()\"\n #panel>\n <ng-content />\n </div>\n</ng-template>\n","import {\n Directive,\n ElementRef,\n inject,\n input,\n OnDestroy,\n ViewContainerRef,\n effect,\n Injector,\n} from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Autocomplete } from './autocomplete/autocomplete';\nimport { fromEvent, Subscription, merge } from 'rxjs';\nimport { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { Option } from '@ngstarter-ui/components/option';\nimport { FormField } from '@ngstarter-ui/components/form-field';\nimport { ChipInput } from '@ngstarter-ui/components/chips';\n\n@Directive({\n selector: '[ngsAutocomplete]',\n exportAs: 'ngsAutocompleteTrigger',\n host: {\n 'role': 'combobox',\n 'aria-autocomplete': 'list',\n 'aria-haspopup': 'listbox',\n '(input)': '_handleInput()',\n '(focusin)': '_handleFocus()',\n '(click)': '_handleClick()',\n '(keydown)': '_handleKeydown($event)',\n }\n})\nexport class AutocompleteTrigger implements OnDestroy {\n private _elementRef = inject(ElementRef<HTMLInputElement>);\n private _overlay = inject(Overlay);\n private _viewContainerRef = inject(ViewContainerRef);\n private _formField = inject(FormField, { optional: true });\n private _chipInput = inject(ChipInput, { optional: true });\n private _injector = inject(Injector);\n\n autocomplete = input.required<Autocomplete>({alias: 'ngsAutocomplete'});\n\n private _overlayRef: OverlayRef | null = null;\n private _portal: TemplatePortal | null = null;\n private _closingSubscription = Subscription.EMPTY;\n private _keyManager!: ActiveDescendantKeyManager<Option>;\n private _canOpenOnInput = true;\n private _resizeObserver: ResizeObserver | null = null;\n private _optionsSubscription = Subscription.EMPTY;\n\n constructor() {\n effect(() => {\n const chipsLength = this._chipInput?.chipGrid?.chipsLength;\n\n if (chipsLength === 0 && this.panelOpen) {\n this._elementRef.nativeElement.focus();\n }\n });\n }\n\n ngOnDestroy() {\n this._destroyOverlay();\n this._stopResizeObserver();\n this._optionsSubscription.unsubscribe();\n }\n\n private _startResizeObserver() {\n this._resizeObserver = new ResizeObserver(() => {\n this.updatePosition();\n });\n this._resizeObserver.observe(this._getConnectedElement().nativeElement);\n }\n\n private _stopResizeObserver() {\n this._resizeObserver?.disconnect();\n this._resizeObserver = null;\n }\n\n _handleInput(): void {\n if (!this.panelOpen && this._canOpenOnInput) {\n this.openPanel();\n }\n this._syncSelectedOption();\n }\n\n private _syncSelectedOption(): void {\n const value = this._elementRef.nativeElement.value;\n this.autocomplete().options().forEach(option => {\n if (value && option.viewValue.toLowerCase() === value.toLowerCase()) {\n option.select();\n } else {\n option.deselect();\n }\n });\n }\n\n _handleFocus(): void {\n if (!this.panelOpen && this._canOpenOnInput) {\n this.openPanel();\n }\n this._syncSelectedOption();\n }\n\n _handleClick(): void {\n if (!this.panelOpen && this._canOpenOnInput) {\n this.openPanel();\n }\n this._syncSelectedOption();\n }\n\n _handleKeydown(event: KeyboardEvent): void {\n if (event.defaultPrevented) {\n return;\n }\n\n if (event.key === 'Escape' && this.panelOpen) {\n this.closePanel();\n event.stopPropagation();\n } else if (this._keyManager) {\n const activeItemBefore = this._keyManager.activeItem;\n this._keyManager.onKeydown(event);\n\n if (event.key === 'Enter' && this._keyManager.activeItem && this._keyManager.activeItem === activeItemBefore) {\n this._selectOption(this._keyManager.activeItem);\n event.preventDefault();\n }\n }\n }\n\n get panelOpen(): boolean {\n return !!this._overlayRef && this._overlayRef.hasAttached();\n }\n\n openPanel(): void {\n if (this.panelOpen || !this.autocomplete().options().length) {\n return;\n }\n\n if (!this._overlayRef) {\n this._createOverlay();\n }\n\n this._updatePanelWidth();\n\n if (!this._overlayRef!.hasAttached()) {\n this._portal = new TemplatePortal(this.autocomplete().template(), this._viewContainerRef);\n this._overlayRef!.attach(this._portal);\n this._closingSubscription = this._subscribeToClosingIndices();\n this._setupSelectionListeners();\n this._startResizeObserver();\n this.autocomplete().opened.emit();\n }\n\n this._initKeyManager();\n this._setActiveItem();\n }\n\n private _setActiveItem(): void {\n const value = this._elementRef.nativeElement.value;\n\n if (this.autocomplete().options().length > 0) {\n const activeOption = this.autocomplete().options().find(option => {\n return option.viewValue.toLowerCase() === value.toLowerCase();\n });\n\n if (activeOption) {\n this._keyManager.setActiveItem(activeOption);\n } else {\n if (value && this.autocomplete().autoActiveFirstOption()) {\n this._keyManager.setFirstItemActive();\n } else {\n this._keyManager.setActiveItem(-1);\n }\n }\n\n this._scrollToOption();\n }\n }\n\n private _scrollToOption(): void {\n const index = this._keyManager.activeItemIndex || 0;\n const option = this.autocomplete().options()[index];\n\n if (option && this.autocomplete().panel()) {\n const panel = this.autocomplete().panel()!.nativeElement;\n const optionElement = option.elementRef.nativeElement;\n const panelTop = panel.scrollTop;\n const panelBottom = panelTop + panel.clientHeight;\n const optionTop = optionElement.offsetTop;\n const optionBottom = optionTop + optionElement.clientHeight;\n\n if (optionTop < panelTop) {\n panel.scrollTop = optionTop;\n } else if (optionBottom > panelBottom) {\n panel.scrollTop = optionBottom - panel.clientHeight;\n }\n }\n }\n\n closePanel(): void {\n if (this.panelOpen) {\n this._overlayRef!.detach();\n this._closingSubscription.unsubscribe();\n this._stopResizeObserver();\n\n if (this.autocomplete().requireSelection() && !this._elementRef.nativeElement.value) {\n this._elementRef.nativeElement.value = '';\n this._elementRef.nativeElement.dispatchEvent(new Event('input', { bubbles: true }));\n }\n\n this.autocomplete().closed.emit();\n }\n }\n\n updatePosition(): void {\n if (this._overlayRef) {\n this._updatePanelWidth();\n this._overlayRef.updatePosition();\n }\n }\n\n private _getConnectedElement(): ElementRef {\n if (this._formField) {\n return this._formField.wrapper();\n }\n\n return this._elementRef;\n }\n\n private _getPanelWidth(): number | string {\n return this.autocomplete().panelWidth() || this._getConnectedElement().nativeElement.offsetWidth;\n }\n\n private _createOverlay(): void {\n const strategy = this._overlay\n .position()\n .flexibleConnectedTo(this._getConnectedElement())\n .withPositions([\n {originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top'},\n {originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom'}\n ]);\n\n this._overlayRef = this._overlay.create({\n positionStrategy: strategy,\n scrollStrategy: this._overlay.scrollStrategies.reposition(),\n width: this._getPanelWidth(),\n });\n }\n\n private _destroyOverlay(): void {\n if (this._overlayRef) {\n this.closePanel();\n this._overlayRef.dispose();\n this._overlayRef = null;\n }\n }\n\n private _subscribeToClosingIndices(): Subscription {\n const backdropClick = this._overlayRef!.backdropClick();\n const detachments = this._overlayRef!.detachments();\n const outsidePointerEvents = this._overlayRef!.outsidePointerEvents();\n\n return merge(backdropClick, detachments, outsidePointerEvents).subscribe((event) => {\n if (event instanceof MouseEvent) {\n if (this._elementRef.nativeElement.contains(event.target as Node)) {\n return;\n }\n\n const connectedElement = this._getConnectedElement().nativeElement;\n\n if (connectedElement.contains(event.target as Node)) {\n return;\n }\n }\n\n this.closePanel();\n });\n }\n\n private _initKeyManager(): void {\n if (this._keyManager) {\n return;\n }\n\n this._keyManager = new ActiveDescendantKeyManager<Option>(this.autocomplete().options())\n .withWrap()\n .withTypeAhead();\n\n this._optionsSubscription = toObservable(this.autocomplete().options, { injector: this._injector }).subscribe(() => {\n this._setupSelectionListeners();\n this._setActiveItem();\n this._syncSelectedOption();\n\n if (this.autocomplete().options().length === 0 && this.panelOpen) {\n this.closePanel();\n } else if (this.autocomplete().options().length > 0 && !this.panelOpen && this._elementRef.nativeElement === document.activeElement && this._canOpenOnInput) {\n this.openPanel();\n }\n });\n\n this._keyManager.change.subscribe(() => {\n this._scrollToOption();\n\n if (this.autocomplete().autoSelectActiveOption() && this._keyManager.activeItem) {\n this._selectOption(this._keyManager.activeItem);\n }\n\n this.autocomplete().optionActivated.emit({\n source: this.autocomplete(),\n option: this._keyManager.activeItem\n });\n });\n }\n\n private _setupSelectionListeners(): void {\n this.autocomplete().options().forEach(option => {\n // Prevent input from losing focus on mousedown, but do not select yet\n const mousedownSub = fromEvent<MouseEvent>(option.elementRef.nativeElement, 'mousedown').subscribe((event) => {\n event.preventDefault();\n });\n // Select option on click (after mouseup) to match native/select behavior\n const clickSub = fromEvent<MouseEvent>(option.elementRef.nativeElement, 'click').subscribe((event) => {\n if (option.disabled) {\n event.preventDefault();\n return;\n }\n this._selectOption(option);\n });\n if (this._closingSubscription && !this._closingSubscription.closed) {\n this._closingSubscription.add(mousedownSub);\n this._closingSubscription.add(clickSub);\n }\n });\n }\n\n private _updatePanelWidth(): void {\n if (this._overlayRef) {\n this._overlayRef.updateSize({\n width: this._getPanelWidth()\n });\n }\n }\n\n private _selectOption(option: Option): void {\n const value = option.viewValue;\n this.autocomplete().options().forEach(o => o.deselect());\n option.select();\n this._canOpenOnInput = false;\n this._elementRef.nativeElement.value = value;\n this._elementRef.nativeElement.dispatchEvent(new Event('input', { bubbles: true }));\n this._elementRef.nativeElement.dispatchEvent(new Event('change', { bubbles: true }));\n this.autocomplete()._emitSelectEvent(option);\n this.closePanel();\n setTimeout(() => this._canOpenOnInput = true);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngstarter-ui-components-autocomplete.mjs","sources":["../../../projects/components/autocomplete/src/autocomplete/autocomplete.ts","../../../projects/components/autocomplete/src/autocomplete/autocomplete.html","../../../projects/components/autocomplete/src/autocomplete-trigger.ts","../../../projects/components/autocomplete/ngstarter-ui-components-autocomplete.ts"],"sourcesContent":["import {\n Component,\n TemplateRef,\n viewChild,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n output,\n ElementRef,\n input,\n booleanAttribute,\n signal,\n forwardRef,\n contentChildren\n} from '@angular/core';\nimport { Option, OPTION_PARENT, _OptionParent } from '@ngstarter-ui/components/option';\nimport { NgClass } from '@angular/common';\n\nlet nextId = 0;\n\nexport interface AutocompleteActivatedEvent {\n source: Autocomplete;\n option: Option | null;\n}\n\nexport interface AutocompleteSelectedEvent {\n source: Autocomplete;\n option: Option;\n}\n\n@Component({\n selector: 'ngs-autocomplete',\n exportAs: 'ngsAutocomplete',\n imports: [\n NgClass\n ],\n templateUrl: './autocomplete.html',\n styleUrl: './autocomplete.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: OPTION_PARENT,\n useExisting: forwardRef(() => Autocomplete)\n }\n ],\n})\nexport class Autocomplete implements _OptionParent {\n readonly options = contentChildren(Option, { descendants: true });\n\n multiple = signal(false);\n readonly template = viewChild.required(TemplateRef);\n readonly panel = viewChild<ElementRef<HTMLElement>>('panel');\n\n id = `ngs-autocomplete-${nextId++}`;\n\n ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n ariaLabelledby = input<string | undefined>(undefined, { alias: 'aria-labelledby' });\n autoActiveFirstOption = input(false, { transform: booleanAttribute });\n autoSelectActiveOption = input(false, { transform: booleanAttribute });\n classList = input<string | string[] | undefined>(undefined, { alias: 'class' });\n disableRipple = input(false, { transform: booleanAttribute });\n displayWith = input<(value: any) => string | null>(() => null);\n hideSingleSelectionIndicator = input(false, { transform: booleanAttribute });\n panelWidth = input<string | number | undefined>(undefined);\n requireSelection = input(false, { transform: booleanAttribute });\n\n closed = output<void>();\n opened = output<void>();\n optionActivated = output<AutocompleteActivatedEvent>();\n optionSelected = output<AutocompleteSelectedEvent>();\n\n _emitSelectEvent(option: Option): void {\n this.optionSelected.emit({ source: this, option });\n }\n}\n","<ng-template>\n <div class=\"ngs-autocomplete-panel\"\n role=\"listbox\"\n [id]=\"id\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [ngClass]=\"classList()\"\n #panel>\n <ng-content />\n </div>\n</ng-template>\n","import {\n Directive,\n ElementRef,\n inject,\n input,\n OnDestroy,\n ViewContainerRef,\n effect,\n Injector,\n} from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Autocomplete } from './autocomplete/autocomplete';\nimport { fromEvent, Subscription, merge } from 'rxjs';\nimport { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { Option } from '@ngstarter-ui/components/option';\nimport { FormField } from '@ngstarter-ui/components/form-field';\nimport { ChipInput } from '@ngstarter-ui/components/chips';\n\n@Directive({\n selector: '[ngsAutocomplete]',\n exportAs: 'ngsAutocompleteTrigger',\n host: {\n 'role': 'combobox',\n 'aria-autocomplete': 'list',\n 'aria-haspopup': 'listbox',\n '(input)': '_handleInput()',\n '(focusin)': '_handleFocus()',\n '(click)': '_handleClick()',\n '(keydown)': '_handleKeydown($event)',\n }\n})\nexport class AutocompleteTrigger implements OnDestroy {\n private _elementRef = inject(ElementRef<HTMLInputElement>);\n private _overlay = inject(Overlay);\n private _viewContainerRef = inject(ViewContainerRef);\n private _formField = inject(FormField, { optional: true });\n private _chipInput = inject(ChipInput, { optional: true });\n private _injector = inject(Injector);\n\n autocomplete = input.required<Autocomplete>({alias: 'ngsAutocomplete'});\n\n private _overlayRef: OverlayRef | null = null;\n private _portal: TemplatePortal | null = null;\n private _closingSubscription = Subscription.EMPTY;\n private _keyManager!: ActiveDescendantKeyManager<Option>;\n private _canOpenOnInput = true;\n private _resizeObserver: ResizeObserver | null = null;\n private _optionsSubscription = Subscription.EMPTY;\n\n constructor() {\n effect(() => {\n const chipsLength = this._chipInput?.chipGrid?.chipsLength;\n\n if (chipsLength === 0 && this.panelOpen) {\n this._elementRef.nativeElement.focus();\n }\n });\n }\n\n ngOnDestroy() {\n this._destroyOverlay();\n this._stopResizeObserver();\n this._optionsSubscription.unsubscribe();\n }\n\n private _startResizeObserver() {\n this._resizeObserver = new ResizeObserver(() => {\n this.updatePosition();\n });\n this._resizeObserver.observe(this._getConnectedElement().nativeElement);\n }\n\n private _stopResizeObserver() {\n this._resizeObserver?.disconnect();\n this._resizeObserver = null;\n }\n\n _handleInput(): void {\n if (!this.panelOpen && this._canOpenOnInput) {\n this.openPanel();\n }\n this._syncSelectedOption();\n }\n\n private _syncSelectedOption(): void {\n const value = this._elementRef.nativeElement.value;\n this.autocomplete().options().forEach(option => {\n if (value && option.viewValue.toLowerCase() === value.toLowerCase()) {\n option.select();\n } else {\n option.deselect();\n }\n });\n }\n\n _handleFocus(): void {\n if (!this.panelOpen && this._canOpenOnInput) {\n this.openPanel();\n }\n this._syncSelectedOption();\n }\n\n _handleClick(): void {\n if (!this.panelOpen && this._canOpenOnInput) {\n this.openPanel();\n }\n this._syncSelectedOption();\n }\n\n _handleKeydown(event: KeyboardEvent): void {\n if (event.defaultPrevented) {\n return;\n }\n\n if (event.key === 'Escape' && this.panelOpen) {\n this.closePanel();\n event.stopPropagation();\n } else if (this._keyManager) {\n const activeItemBefore = this._keyManager.activeItem;\n this._keyManager.onKeydown(event);\n\n if (event.key === 'Enter' && this._keyManager.activeItem && this._keyManager.activeItem === activeItemBefore) {\n this._selectOption(this._keyManager.activeItem);\n event.preventDefault();\n }\n }\n }\n\n get panelOpen(): boolean {\n return !!this._overlayRef && this._overlayRef.hasAttached();\n }\n\n openPanel(): void {\n if (this.panelOpen || !this.autocomplete().options().length) {\n return;\n }\n\n if (!this._overlayRef) {\n this._createOverlay();\n }\n\n this._updatePanelWidth();\n\n if (!this._overlayRef!.hasAttached()) {\n this._portal = new TemplatePortal(this.autocomplete().template(), this._viewContainerRef);\n this._overlayRef!.attach(this._portal);\n this._closingSubscription = this._subscribeToClosingIndices();\n this._setupSelectionListeners();\n this._startResizeObserver();\n this.autocomplete().opened.emit();\n }\n\n this._initKeyManager();\n this._setActiveItem();\n }\n\n private _setActiveItem(): void {\n const value = this._elementRef.nativeElement.value;\n\n if (this.autocomplete().options().length > 0) {\n const activeOption = this.autocomplete().options().find(option => {\n return option.viewValue.toLowerCase() === value.toLowerCase();\n });\n\n if (activeOption) {\n this._keyManager.setActiveItem(activeOption);\n } else {\n if (value && this.autocomplete().autoActiveFirstOption()) {\n this._keyManager.setFirstItemActive();\n } else {\n this._keyManager.setActiveItem(-1);\n }\n }\n\n this._scrollToOption();\n }\n }\n\n private _scrollToOption(): void {\n const index = this._keyManager.activeItemIndex || 0;\n const option = this.autocomplete().options()[index];\n\n if (option && this.autocomplete().panel()) {\n const panel = this.autocomplete().panel()!.nativeElement;\n const optionElement = option.elementRef.nativeElement;\n const panelTop = panel.scrollTop;\n const panelBottom = panelTop + panel.clientHeight;\n const optionTop = optionElement.offsetTop;\n const optionBottom = optionTop + optionElement.clientHeight;\n\n if (optionTop < panelTop) {\n panel.scrollTop = optionTop;\n } else if (optionBottom > panelBottom) {\n panel.scrollTop = optionBottom - panel.clientHeight;\n }\n }\n }\n\n closePanel(): void {\n if (this.panelOpen) {\n this._overlayRef!.detach();\n this._closingSubscription.unsubscribe();\n this._stopResizeObserver();\n\n if (this.autocomplete().requireSelection() && !this._elementRef.nativeElement.value) {\n this._elementRef.nativeElement.value = '';\n this._elementRef.nativeElement.dispatchEvent(new Event('input', { bubbles: true }));\n }\n\n this.autocomplete().closed.emit();\n }\n }\n\n updatePosition(): void {\n if (this._overlayRef) {\n this._updatePanelWidth();\n this._overlayRef.updatePosition();\n }\n }\n\n private _getConnectedElement(): ElementRef {\n if (this._formField) {\n return this._formField.wrapper();\n }\n\n return this._elementRef;\n }\n\n private _getPanelWidth(): number | string {\n return this.autocomplete().panelWidth() || this._getConnectedElement().nativeElement.offsetWidth;\n }\n\n private _createOverlay(): void {\n const strategy = this._overlay\n .position()\n .flexibleConnectedTo(this._getConnectedElement())\n .withPositions([\n {originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top'},\n {originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom'}\n ]);\n\n this._overlayRef = this._overlay.create({\n positionStrategy: strategy,\n scrollStrategy: this._overlay.scrollStrategies.reposition(),\n width: this._getPanelWidth(),\n });\n }\n\n private _destroyOverlay(): void {\n if (this._overlayRef) {\n this.closePanel();\n this._overlayRef.dispose();\n this._overlayRef = null;\n }\n }\n\n private _subscribeToClosingIndices(): Subscription {\n const backdropClick = this._overlayRef!.backdropClick();\n const detachments = this._overlayRef!.detachments();\n const outsidePointerEvents = this._overlayRef!.outsidePointerEvents();\n\n return merge(backdropClick, detachments, outsidePointerEvents).subscribe((event) => {\n if (event instanceof MouseEvent) {\n if (this._elementRef.nativeElement.contains(event.target as Node)) {\n return;\n }\n\n const connectedElement = this._getConnectedElement().nativeElement;\n\n if (connectedElement.contains(event.target as Node)) {\n return;\n }\n }\n\n this.closePanel();\n });\n }\n\n private _initKeyManager(): void {\n if (this._keyManager) {\n return;\n }\n\n this._keyManager = new ActiveDescendantKeyManager<Option>(this.autocomplete().options())\n .withWrap()\n .withTypeAhead();\n\n this._optionsSubscription = toObservable(this.autocomplete().options, { injector: this._injector }).subscribe(() => {\n this._setupSelectionListeners();\n this._setActiveItem();\n this._syncSelectedOption();\n\n if (this.autocomplete().options().length === 0 && this.panelOpen) {\n this.closePanel();\n } else if (this.autocomplete().options().length > 0 && !this.panelOpen && this._elementRef.nativeElement === document.activeElement && this._canOpenOnInput) {\n this.openPanel();\n }\n });\n\n this._keyManager.change.subscribe(() => {\n this._scrollToOption();\n\n if (this.autocomplete().autoSelectActiveOption() && this._keyManager.activeItem) {\n this._selectOption(this._keyManager.activeItem);\n }\n\n this.autocomplete().optionActivated.emit({\n source: this.autocomplete(),\n option: this._keyManager.activeItem\n });\n });\n }\n\n private _setupSelectionListeners(): void {\n this.autocomplete().options().forEach(option => {\n // Prevent input from losing focus on mousedown, but do not select yet\n const mousedownSub = fromEvent<MouseEvent>(option.elementRef.nativeElement, 'mousedown').subscribe((event) => {\n event.preventDefault();\n });\n // Select option on click (after mouseup) to match native/select behavior\n const clickSub = fromEvent<MouseEvent>(option.elementRef.nativeElement, 'click').subscribe((event) => {\n if (option.disabled) {\n event.preventDefault();\n return;\n }\n this._selectOption(option);\n });\n if (this._closingSubscription && !this._closingSubscription.closed) {\n this._closingSubscription.add(mousedownSub);\n this._closingSubscription.add(clickSub);\n }\n });\n }\n\n private _updatePanelWidth(): void {\n if (this._overlayRef) {\n this._overlayRef.updateSize({\n width: this._getPanelWidth()\n });\n }\n }\n\n private _selectOption(option: Option): void {\n const value = option.viewValue;\n this.autocomplete().options().forEach(o => o.deselect());\n option.select();\n this._canOpenOnInput = false;\n this._elementRef.nativeElement.value = value;\n this._elementRef.nativeElement.dispatchEvent(new Event('input', { bubbles: true }));\n this._elementRef.nativeElement.dispatchEvent(new Event('change', { bubbles: true }));\n this.autocomplete()._emitSelectEvent(option);\n this.closePanel();\n setTimeout(() => this._canOpenOnInput = true);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;AAiBA,IAAI,MAAM,GAAG,CAAC;MA6BD,YAAY,CAAA;IACd,OAAO,GAAG,eAAe,CAAC,MAAM,+EAAI,WAAW,EAAE,IAAI,EAAA,CAAG;AAEjE,IAAA,QAAQ,GAAG,MAAM,CAAC,KAAK,+EAAC;AACf,IAAA,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC;AAC1C,IAAA,KAAK,GAAG,SAAS,CAA0B,OAAO,4EAAC;AAE5D,IAAA,EAAE,GAAG,CAAA,iBAAA,EAAoB,MAAM,EAAE,EAAE;IAEnC,SAAS,GAAG,KAAK,CAAqB,SAAS,iFAAI,KAAK,EAAE,YAAY,EAAA,CAAG;IACzE,cAAc,GAAG,KAAK,CAAqB,SAAS,sFAAI,KAAK,EAAE,iBAAiB,EAAA,CAAG;IACnF,qBAAqB,GAAG,KAAK,CAAC,KAAK,6FAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACrE,sBAAsB,GAAG,KAAK,CAAC,KAAK,8FAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACtE,SAAS,GAAG,KAAK,CAAgC,SAAS,iFAAI,KAAK,EAAE,OAAO,EAAA,CAAG;IAC/E,aAAa,GAAG,KAAK,CAAC,KAAK,qFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IAC7D,WAAW,GAAG,KAAK,CAAgC,MAAM,IAAI,kFAAC;IAC9D,4BAA4B,GAAG,KAAK,CAAC,KAAK,oGAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAC5E,IAAA,UAAU,GAAG,KAAK,CAA8B,SAAS,iFAAC;IAC1D,gBAAgB,GAAG,KAAK,CAAC,KAAK,wFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IAEhE,MAAM,GAAG,MAAM,EAAQ;IACvB,MAAM,GAAG,MAAM,EAAQ;IACvB,eAAe,GAAG,MAAM,EAA8B;IACtD,cAAc,GAAG,MAAM,EAA6B;AAEpD,IAAA,gBAAgB,CAAC,MAAc,EAAA;AAC7B,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACpD;uGA3BW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,qBAAA,EAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,sBAAA,EAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,4BAAA,EAAA,EAAA,iBAAA,EAAA,8BAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,SAAA,EAPZ;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,YAAY;AAC3C;AACF,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAGkC,MAAM,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGF,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClDpD,qSAWA,otBDsBI,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAaE,YAAY,EAAA,UAAA,EAAA,CAAA;kBAjBxB,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAClB,iBAAiB,EAAA,OAAA,EAClB;wBACP;AACD,qBAAA,EAAA,aAAA,EAGc,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAE,UAAU,CAAC,kBAAkB;AAC3C;AACF,qBAAA,EAAA,QAAA,EAAA,qSAAA,EAAA,MAAA,EAAA,CAAA,4pBAAA,CAAA,EAAA;+FAGkC,MAAM,CAAA,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAGzB,WAAW,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CACE,OAAO,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;MElBhD,mBAAmB,CAAA;AACtB,IAAA,WAAW,GAAG,MAAM,EAAC,UAA4B,EAAC;AAClD,IAAA,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;AAC1B,IAAA,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAC5C,UAAU,GAAG,MAAM,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAClD,UAAU,GAAG,MAAM,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAClD,IAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;IAEpC,YAAY,GAAG,KAAK,CAAC,QAAQ,mFAAgB,KAAK,EAAE,iBAAiB,EAAA,CAAE;IAE/D,WAAW,GAAsB,IAAI;IACrC,OAAO,GAA0B,IAAI;AACrC,IAAA,oBAAoB,GAAG,YAAY,CAAC,KAAK;AACzC,IAAA,WAAW;IACX,eAAe,GAAG,IAAI;IACtB,eAAe,GAA0B,IAAI;AAC7C,IAAA,oBAAoB,GAAG,YAAY,CAAC,KAAK;AAEjD,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;YACV,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,WAAW;YAE1D,IAAI,WAAW,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE;AACvC,gBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE;YACxC;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,eAAe,EAAE;QACtB,IAAI,CAAC,mBAAmB,EAAE;AAC1B,QAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE;IACzC;IAEQ,oBAAoB,GAAA;AAC1B,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC,MAAK;YAC7C,IAAI,CAAC,cAAc,EAAE;AACvB,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,aAAa,CAAC;IACzE;IAEQ,mBAAmB,GAAA;AACzB,QAAA,IAAI,CAAC,eAAe,EAAE,UAAU,EAAE;AAClC,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;IAC7B;IAEA,YAAY,GAAA;QACV,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,eAAe,EAAE;YAC3C,IAAI,CAAC,SAAS,EAAE;QAClB;QACA,IAAI,CAAC,mBAAmB,EAAE;IAC5B;IAEQ,mBAAmB,GAAA;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK;QAClD,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,MAAM,IAAG;AAC7C,YAAA,IAAI,KAAK,IAAI,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,EAAE;gBACnE,MAAM,CAAC,MAAM,EAAE;YACjB;iBAAO;gBACL,MAAM,CAAC,QAAQ,EAAE;YACnB;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,YAAY,GAAA;QACV,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,eAAe,EAAE;YAC3C,IAAI,CAAC,SAAS,EAAE;QAClB;QACA,IAAI,CAAC,mBAAmB,EAAE;IAC5B;IAEA,YAAY,GAAA;QACV,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,eAAe,EAAE;YAC3C,IAAI,CAAC,SAAS,EAAE;QAClB;QACA,IAAI,CAAC,mBAAmB,EAAE;IAC5B;AAEA,IAAA,cAAc,CAAC,KAAoB,EAAA;AACjC,QAAA,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC1B;QACF;QAEA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;YAC5C,IAAI,CAAC,UAAU,EAAE;YACjB,KAAK,CAAC,eAAe,EAAE;QACzB;AAAO,aAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAC3B,YAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU;AACpD,YAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC;YAEjC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,KAAK,gBAAgB,EAAE;gBAC5G,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;gBAC/C,KAAK,CAAC,cAAc,EAAE;YACxB;QACF;IACF;AAEA,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;IAC7D;IAEA,SAAS,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE;YAC3D;QACF;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,IAAI,CAAC,cAAc,EAAE;QACvB;QAEA,IAAI,CAAC,iBAAiB,EAAE;QAExB,IAAI,CAAC,IAAI,CAAC,WAAY,CAAC,WAAW,EAAE,EAAE;AACpC,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC;YACzF,IAAI,CAAC,WAAY,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AACtC,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,0BAA0B,EAAE;YAC7D,IAAI,CAAC,wBAAwB,EAAE;YAC/B,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;QACnC;QAEA,IAAI,CAAC,eAAe,EAAE;QACtB,IAAI,CAAC,cAAc,EAAE;IACvB;IAEQ,cAAc,GAAA;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK;AAElD,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5C,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,IAAG;gBAC/D,OAAO,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE;AAC/D,YAAA,CAAC,CAAC;YAEF,IAAI,YAAY,EAAE;AAChB,gBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC;YAC9C;iBAAO;gBACL,IAAI,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,qBAAqB,EAAE,EAAE;AACxD,oBAAA,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE;gBACvC;qBAAO;oBACL,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACpC;YACF;YAEA,IAAI,CAAC,eAAe,EAAE;QACxB;IACF;IAEQ,eAAe,GAAA;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,IAAI,CAAC;AACnD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC;QAEnD,IAAI,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,EAAG,CAAC,aAAa;AACxD,YAAA,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,aAAa;AACrD,YAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS;AAChC,YAAA,MAAM,WAAW,GAAG,QAAQ,GAAG,KAAK,CAAC,YAAY;AACjD,YAAA,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS;AACzC,YAAA,MAAM,YAAY,GAAG,SAAS,GAAG,aAAa,CAAC,YAAY;AAE3D,YAAA,IAAI,SAAS,GAAG,QAAQ,EAAE;AACxB,gBAAA,KAAK,CAAC,SAAS,GAAG,SAAS;YAC7B;AAAO,iBAAA,IAAI,YAAY,GAAG,WAAW,EAAE;gBACrC,KAAK,CAAC,SAAS,GAAG,YAAY,GAAG,KAAK,CAAC,YAAY;YACrD;QACF;IACF;IAEA,UAAU,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,WAAY,CAAC,MAAM,EAAE;AAC1B,YAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE;YACvC,IAAI,CAAC,mBAAmB,EAAE;AAE1B,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE;gBACnF,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE;AACzC,gBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACrF;YAEA,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;QACnC;IACF;IAEA,cAAc,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE;QACnC;IACF;IAEQ,oBAAoB,GAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;QAClC;QAEA,OAAO,IAAI,CAAC,WAAW;IACzB;IAEQ,cAAc,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC,aAAa,CAAC,WAAW;IAClG;IAEQ,cAAc,GAAA;AACpB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC;AACnB,aAAA,QAAQ;AACR,aAAA,mBAAmB,CAAC,IAAI,CAAC,oBAAoB,EAAE;AAC/C,aAAA,aAAa,CAAC;AACb,YAAA,EAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAC;AACzE,YAAA,EAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;AACzE,SAAA,CAAC;QAEJ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AACtC,YAAA,gBAAgB,EAAE,QAAQ;YAC1B,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE;AAC3D,YAAA,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE;AAC7B,SAAA,CAAC;IACJ;IAEQ,eAAe,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AAC1B,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI;QACzB;IACF;IAEQ,0BAA0B,GAAA;QAChC,MAAM,aAAa,GAAG,IAAI,CAAC,WAAY,CAAC,aAAa,EAAE;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAY,CAAC,WAAW,EAAE;QACnD,MAAM,oBAAoB,GAAG,IAAI,CAAC,WAAY,CAAC,oBAAoB,EAAE;AAErE,QAAA,OAAO,KAAK,CAAC,aAAa,EAAE,WAAW,EAAE,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AACjF,YAAA,IAAI,KAAK,YAAY,UAAU,EAAE;AAC/B,gBAAA,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,EAAE;oBACjE;gBACF;gBAEA,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC,aAAa;gBAElE,IAAI,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,EAAE;oBACnD;gBACF;YACF;YAEA,IAAI,CAAC,UAAU,EAAE;AACnB,QAAA,CAAC,CAAC;IACJ;IAEQ,eAAe,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB;QACF;AAEA,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,0BAA0B,CAAS,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE;AACpF,aAAA,QAAQ;AACR,aAAA,aAAa,EAAE;QAElB,IAAI,CAAC,oBAAoB,GAAG,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,MAAK;YACjH,IAAI,CAAC,wBAAwB,EAAE;YAC/B,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,mBAAmB,EAAE;AAE1B,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE;gBAChE,IAAI,CAAC,UAAU,EAAE;YACnB;AAAO,iBAAA,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,KAAK,QAAQ,CAAC,aAAa,IAAI,IAAI,CAAC,eAAe,EAAE;gBAC3J,IAAI,CAAC,SAAS,EAAE;YAClB;AACF,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,MAAK;YACrC,IAAI,CAAC,eAAe,EAAE;AAEtB,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,sBAAsB,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;gBAC/E,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;YACjD;AAEA,YAAA,IAAI,CAAC,YAAY,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;AACvC,gBAAA,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE;AAC3B,gBAAA,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC;AAC1B,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;IAEQ,wBAAwB,GAAA;QAC9B,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,MAAM,IAAG;;AAE7C,YAAA,MAAM,YAAY,GAAG,SAAS,CAAa,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;gBAC3G,KAAK,CAAC,cAAc,EAAE;AACxB,YAAA,CAAC,CAAC;;AAEF,YAAA,MAAM,QAAQ,GAAG,SAAS,CAAa,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AACnG,gBAAA,IAAI,MAAM,CAAC,QAAQ,EAAE;oBACnB,KAAK,CAAC,cAAc,EAAE;oBACtB;gBACF;AACA,gBAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AAC5B,YAAA,CAAC,CAAC;YACF,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE;AAClE,gBAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,YAAY,CAAC;AAC3C,gBAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC;YACzC;AACF,QAAA,CAAC,CAAC;IACJ;IAEQ,iBAAiB,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;AAC1B,gBAAA,KAAK,EAAE,IAAI,CAAC,cAAc;AAC3B,aAAA,CAAC;QACJ;IACF;AAEQ,IAAA,aAAa,CAAC,MAAc,EAAA;AAClC,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS;AAC9B,QAAA,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QACxD,MAAM,CAAC,MAAM,EAAE;AACf,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK;QAC5B,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,GAAG,KAAK;AAC5C,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AACnF,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,IAAI,CAAC,YAAY,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAC5C,IAAI,CAAC,UAAU,EAAE;QACjB,UAAU,CAAC,MAAM,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC/C;uGAlUW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,eAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAb/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,IAAI,EAAE;AACJ,wBAAA,MAAM,EAAE,UAAU;AAClB,wBAAA,mBAAmB,EAAE,MAAM;AAC3B,wBAAA,eAAe,EAAE,SAAS;AAC1B,wBAAA,SAAS,EAAE,gBAAgB;AAC3B,wBAAA,WAAW,EAAE,gBAAgB;AAC7B,wBAAA,SAAS,EAAE,gBAAgB;AAC3B,wBAAA,WAAW,EAAE,wBAAwB;AACtC;AACF,iBAAA;;;AChCD;;AAEG;;;;"}
@@ -1,8 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, EventEmitter, inject, ChangeDetectionStrategy, ViewEncapsulation, Component, Injector, Injectable } from '@angular/core';
2
+ import { InjectionToken, EventEmitter, ChangeDetectionStrategy, Component, inject, Injector, Injectable } from '@angular/core';
3
3
  import { CdkDialogContainer, Dialog } from '@angular/cdk/dialog';
4
4
  import { Overlay } from '@angular/cdk/overlay';
5
- import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';
6
5
  import { CdkPortalOutlet } from '@angular/cdk/portal';
7
6
  import { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';
8
7
  import { Subject } from 'rxjs';
@@ -62,25 +61,12 @@ class BottomSheetConfig {
62
61
  * @docs-private
63
62
  */
64
63
  class BottomSheetContainer extends CdkDialogContainer {
65
- _breakpointSubscription;
66
64
  /** The state of the bottom sheet animations. */
67
65
  _animationState = 'void';
68
66
  /** Emits whenever the state of the animation changes. */
69
67
  _animationStateChanged = new EventEmitter();
70
68
  /** Whether the component has been destroyed. */
71
69
  _destroyed = false;
72
- constructor() {
73
- super();
74
- const breakpointObserver = inject(BreakpointObserver);
75
- this._breakpointSubscription = breakpointObserver
76
- .observe([Breakpoints.Medium, Breakpoints.Large, Breakpoints.XLarge])
77
- .subscribe(() => {
78
- const classList = this._elementRef.nativeElement.classList;
79
- classList.toggle('ngs-bottom-sheet-container-medium', breakpointObserver.isMatched(Breakpoints.Medium));
80
- classList.toggle('ngs-bottom-sheet-container-large', breakpointObserver.isMatched(Breakpoints.Large));
81
- classList.toggle('ngs-bottom-sheet-container-xlarge', breakpointObserver.isMatched(Breakpoints.XLarge));
82
- });
83
- }
84
70
  /** Begin animation of bottom sheet entrance into view. */
85
71
  enter() {
86
72
  if (!this._destroyed) {
@@ -97,7 +83,6 @@ class BottomSheetContainer extends CdkDialogContainer {
97
83
  }
98
84
  ngOnDestroy() {
99
85
  super.ngOnDestroy();
100
- this._breakpointSubscription.unsubscribe();
101
86
  this._destroyed = true;
102
87
  }
103
88
  _onTransitionEnd(event) {
@@ -110,12 +95,14 @@ class BottomSheetContainer extends CdkDialogContainer {
110
95
  });
111
96
  }
112
97
  }
113
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BottomSheetContainer, deps: [], target: i0.ɵɵFactoryTarget.Component });
114
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: BottomSheetContainer, isStandalone: true, selector: "ngs-bottom-sheet-container", host: { attributes: { "tabindex": "-1" }, listeners: { "transitionend": "_onTransitionEnd($event)" }, properties: { "attr.role": "_config.role", "attr.aria-modal": "_config.ariaModal", "attr.aria-label": "_config.ariaLabel", "class.ngs-bottom-sheet-container-visible": "_animationState === \"visible\"", "class.ngs-bottom-sheet-container-hidden": "_animationState === \"hidden\"" }, classAttribute: "ngs-bottom-sheet-container" }, usesInheritance: true, ngImport: i0, template: '<ng-template cdkPortalOutlet />', isInline: true, styles: [".ngs-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;padding:8px 16px;min-width:100vw;box-sizing:border-box;display:block;outline:0;max-height:80vh;overflow:auto;position:relative;background:var(--ngs-bottom-sheet-container-background-color, white);color:var(--ngs-bottom-sheet-container-text-color, black);visibility:hidden;transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1),visibility .3s}.ngs-bottom-sheet-container-visible{transform:translateY(0);visibility:visible;transition-timing-function:cubic-bezier(0,0,.2,1)}.ngs-bottom-sheet-container-hidden{transform:translateY(100%);visibility:hidden}@media(forced-colors:active){.ngs-bottom-sheet-container{outline:1px solid}}.ngs-bottom-sheet-container-medium,.ngs-bottom-sheet-container-large,.ngs-bottom-sheet-container-xlarge{border-top-left-radius:var(--ngs-bottom-sheet-container-shape, 28px);border-top-right-radius:var(--ngs-bottom-sheet-container-shape, 28px)}.ngs-bottom-sheet-container-medium{min-width:384px;max-width:calc(100vw - 128px)}.ngs-bottom-sheet-container-large{min-width:512px;max-width:calc(100vw - 256px)}.ngs-bottom-sheet-container-xlarge{min-width:576px;max-width:calc(100vw - 384px)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None });
98
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BottomSheetContainer, deps: null, target: i0.ɵɵFactoryTarget.Component });
99
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: BottomSheetContainer, isStandalone: true, selector: "ngs-bottom-sheet-container", host: { attributes: { "tabindex": "-1" }, listeners: { "transitionend": "_onTransitionEnd($event)" }, properties: { "attr.role": "_config.role", "attr.aria-modal": "_config.ariaModal", "attr.aria-label": "_config.ariaLabel", "class.ngs-bottom-sheet-container-visible": "_animationState === \"visible\"", "class.ngs-bottom-sheet-container-hidden": "_animationState === \"hidden\"" }, classAttribute: "ngs-bottom-sheet-container" }, exportAs: ["ngsBottomSheetContainer"], usesInheritance: true, ngImport: i0, template: '<ng-template cdkPortalOutlet />', isInline: true, styles: [":host{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;padding:8px 16px;min-width:512px;max-width:100vw;box-sizing:border-box;display:block;outline:0;max-height:80vh;overflow:auto;position:relative;background:var(--ngs-bottom-sheet-container-background-color, white);color:var(--ngs-bottom-sheet-container-text-color, black);border-top-left-radius:var(--ngs-bottom-sheet-container-shape, 28px);border-top-right-radius:var(--ngs-bottom-sheet-container-shape, 28px);visibility:hidden;transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1),visibility .3s}:host.ngs-bottom-sheet-container-visible{transform:translateY(0);visibility:visible;transition-timing-function:cubic-bezier(0,0,.2,1)}:host.ngs-bottom-sheet-container-hidden{transform:translateY(100%);visibility:hidden}@media(forced-colors:active){:host{outline:1px solid}}@media(max-width:599px){:host{width:100vw;min-width:100vw;border-top-left-radius:0;border-top-right-radius:0}}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
115
100
  }
116
101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BottomSheetContainer, decorators: [{
117
102
  type: Component,
118
- args: [{ selector: 'ngs-bottom-sheet-container', template: '<ng-template cdkPortalOutlet />', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, imports: [CdkPortalOutlet], host: {
103
+ args: [{ selector: 'ngs-bottom-sheet-container', exportAs: 'ngsBottomSheetContainer', imports: [
104
+ CdkPortalOutlet
105
+ ], template: '<ng-template cdkPortalOutlet />', changeDetection: ChangeDetectionStrategy.OnPush, host: {
119
106
  'class': 'ngs-bottom-sheet-container',
120
107
  'tabindex': '-1',
121
108
  '[attr.role]': '_config.role',
@@ -124,8 +111,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
124
111
  '[class.ngs-bottom-sheet-container-visible]': '_animationState === "visible"',
125
112
  '[class.ngs-bottom-sheet-container-hidden]': '_animationState === "hidden"',
126
113
  '(transitionend)': '_onTransitionEnd($event)',
127
- }, styles: [".ngs-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;padding:8px 16px;min-width:100vw;box-sizing:border-box;display:block;outline:0;max-height:80vh;overflow:auto;position:relative;background:var(--ngs-bottom-sheet-container-background-color, white);color:var(--ngs-bottom-sheet-container-text-color, black);visibility:hidden;transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1),visibility .3s}.ngs-bottom-sheet-container-visible{transform:translateY(0);visibility:visible;transition-timing-function:cubic-bezier(0,0,.2,1)}.ngs-bottom-sheet-container-hidden{transform:translateY(100%);visibility:hidden}@media(forced-colors:active){.ngs-bottom-sheet-container{outline:1px solid}}.ngs-bottom-sheet-container-medium,.ngs-bottom-sheet-container-large,.ngs-bottom-sheet-container-xlarge{border-top-left-radius:var(--ngs-bottom-sheet-container-shape, 28px);border-top-right-radius:var(--ngs-bottom-sheet-container-shape, 28px)}.ngs-bottom-sheet-container-medium{min-width:384px;max-width:calc(100vw - 128px)}.ngs-bottom-sheet-container-large{min-width:512px;max-width:calc(100vw - 256px)}.ngs-bottom-sheet-container-xlarge{min-width:576px;max-width:calc(100vw - 384px)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
128
- }], ctorParameters: () => [] });
114
+ }, styles: [":host{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;padding:8px 16px;min-width:512px;max-width:100vw;box-sizing:border-box;display:block;outline:0;max-height:80vh;overflow:auto;position:relative;background:var(--ngs-bottom-sheet-container-background-color, white);color:var(--ngs-bottom-sheet-container-text-color, black);border-top-left-radius:var(--ngs-bottom-sheet-container-shape, 28px);border-top-right-radius:var(--ngs-bottom-sheet-container-shape, 28px);visibility:hidden;transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1),visibility .3s}:host.ngs-bottom-sheet-container-visible{transform:translateY(0);visibility:visible;transition-timing-function:cubic-bezier(0,0,.2,1)}:host.ngs-bottom-sheet-container-hidden{transform:translateY(100%);visibility:hidden}@media(forced-colors:active){:host{outline:1px solid}}@media(max-width:599px){:host{width:100vw;min-width:100vw;border-top-left-radius:0;border-top-right-radius:0}}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
115
+ }] });
129
116
 
130
117
  /**
131
118
  * Reference to a bottom sheet dispatched from the BottomSheet service.
@@ -162,14 +149,14 @@ class BottomSheetRef {
162
149
  this.disableClose = config.disableClose;
163
150
  // Emit when opening animation completes
164
151
  containerInstance._animationStateChanged
165
- .pipe(filter((event) => event.phase === 'done' && event.toState === 'visible'), take(1))
152
+ .pipe(filter((event) => (event.phaseName ?? event.phase) === 'done' && event.toState === 'visible'), take(1))
166
153
  .subscribe(() => {
167
154
  this._afterOpened.next();
168
155
  this._afterOpened.complete();
169
156
  });
170
157
  // Dispose overlay when closing animation is complete
171
158
  containerInstance._animationStateChanged
172
- .pipe(filter((event) => event.phase === 'done' && (event.toState === 'hidden' || event.toState === 'void')), take(1))
159
+ .pipe(filter((event) => (event.phaseName ?? event.phase) === 'done' && (event.toState === 'hidden' || event.toState === 'void')), take(1))
173
160
  .subscribe(() => {
174
161
  if (this._closeFallbackTimeout) {
175
162
  clearTimeout(this._closeFallbackTimeout);
@@ -256,7 +243,7 @@ class BottomSheet {
256
243
  open(componentOrTemplateRef, config) {
257
244
  const _config = { ...(this._defaultOptions || new BottomSheetConfig()), ...config };
258
245
  let ref;
259
- this._dialog.open(componentOrTemplateRef, {
246
+ const cdkRef = this._dialog.open(componentOrTemplateRef, {
260
247
  ..._config,
261
248
  // Disable closing since we need to sync it up to the animation ourselves.
262
249
  disableClose: true,
@@ -278,6 +265,8 @@ class BottomSheet {
278
265
  ];
279
266
  },
280
267
  });
268
+ ref._refInstance = (cdkRef.componentInstance ?? null);
269
+ ref._refRef = cdkRef.componentRef ?? null;
281
270
  ref.afterDismissed().subscribe(() => {
282
271
  // Clear the bottom sheet ref if it hasn't already been replaced by a newer one.
283
272
  if (this._openedBottomSheetRef === ref) {
@@ -1 +1 @@
1
- {"version":3,"file":"ngstarter-ui-components-bottom-sheet.mjs","sources":["../../../projects/components/bottom-sheet/src/bottom-sheet/bottom-sheet-config.ts","../../../projects/components/bottom-sheet/src/bottom-sheet/bottom-sheet-container.ts","../../../projects/components/bottom-sheet/src/bottom-sheet/bottom-sheet-ref.ts","../../../projects/components/bottom-sheet/src/bottom-sheet/bottom-sheet.ts","../../../projects/components/bottom-sheet/ngstarter-ui-components-bottom-sheet.ts"],"sourcesContent":["import { InjectionToken, ViewContainerRef } from '@angular/core';\nimport { ScrollStrategy } from '@angular/cdk/overlay';\n\n/** Injection token that can be used to access the data that was passed in to a bottom sheet. */\nexport const BOTTOM_SHEET_DATA = new InjectionToken<any>('EmrBottomSheetData');\n\n/**\n * Configuration used when opening a bottom sheet.\n */\nexport class BottomSheetConfig<D = any> {\n /** The view container to place the overlay for the bottom sheet into. */\n viewContainerRef?: ViewContainerRef;\n\n /** Extra CSS classes to be added to the bottom sheet container. */\n panelClass?: string | string[];\n\n /** Text layout direction for the bottom sheet. */\n direction?: 'ltr' | 'rtl';\n\n /** Data being injected into the child component. */\n data?: D | null = null;\n\n /** Whether the bottom sheet has a backdrop. */\n hasBackdrop?: boolean = true;\n\n /** Custom class for the backdrop. */\n backdropClass?: string;\n\n /** Whether the user can use escape or clicking outside to close the bottom sheet. */\n disableClose?: boolean = false;\n\n /** Aria label to assign to the bottom sheet element. */\n ariaLabel?: string | null = null;\n\n /**\n * Whether this is a modal dialog. Used to set the `aria-modal` attribute.\n */\n ariaModal?: boolean = false;\n\n /**\n * Whether the bottom sheet should close when the user goes backwards/forwards in history.\n */\n closeOnNavigation?: boolean = true;\n\n /**\n * Where the bottom sheet should focus on open.\n */\n autoFocus?: string | boolean = 'first-tabbable';\n\n /**\n * Whether the bottom sheet should restore focus to the\n * previously-focused element, after it's closed.\n */\n restoreFocus?: boolean = true;\n\n /** Scroll strategy to be used for the bottom sheet. */\n scrollStrategy?: ScrollStrategy;\n\n /** Height for the bottom sheet. */\n height?: string = '';\n\n /** Minimum height for the bottom sheet. If a number is provided, assumes pixel units. */\n minHeight?: string | number;\n\n /** Maximum height for the bottom sheet. If a number is provided, assumes pixel units. */\n maxHeight?: string | number;\n}\n","import {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n OnDestroy,\n inject,\n EventEmitter,\n} from '@angular/core';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { Subscription } from 'rxjs';\nimport { CdkDialogContainer } from '@angular/cdk/dialog';\n\n/**\n * Internal component that wraps user-provided bottom sheet content.\n * @docs-private\n */\n@Component({\n selector: 'ngs-bottom-sheet-container',\n template: '<ng-template cdkPortalOutlet />',\n styleUrl: 'bottom-sheet-container.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n imports: [CdkPortalOutlet],\n host: {\n 'class': 'ngs-bottom-sheet-container',\n 'tabindex': '-1',\n '[attr.role]': '_config.role',\n '[attr.aria-modal]': '_config.ariaModal',\n '[attr.aria-label]': '_config.ariaLabel',\n '[class.ngs-bottom-sheet-container-visible]': '_animationState === \"visible\"',\n '[class.ngs-bottom-sheet-container-hidden]': '_animationState === \"hidden\"',\n '(transitionend)': '_onTransitionEnd($event)',\n },\n})\nexport class BottomSheetContainer extends CdkDialogContainer implements OnDestroy {\n private _breakpointSubscription: Subscription;\n\n /** The state of the bottom sheet animations. */\n _animationState: 'void' | 'visible' | 'hidden' = 'void';\n\n /** Emits whenever the state of the animation changes. */\n _animationStateChanged = new EventEmitter<any>();\n\n /** Whether the component has been destroyed. */\n private _destroyed = false;\n\n constructor() {\n super();\n const breakpointObserver = inject(BreakpointObserver);\n this._breakpointSubscription = breakpointObserver\n .observe([Breakpoints.Medium, Breakpoints.Large, Breakpoints.XLarge])\n .subscribe(() => {\n const classList = this._elementRef.nativeElement.classList;\n classList.toggle(\n 'ngs-bottom-sheet-container-medium',\n breakpointObserver.isMatched(Breakpoints.Medium)\n );\n classList.toggle(\n 'ngs-bottom-sheet-container-large',\n breakpointObserver.isMatched(Breakpoints.Large)\n );\n classList.toggle(\n 'ngs-bottom-sheet-container-xlarge',\n breakpointObserver.isMatched(Breakpoints.XLarge)\n );\n });\n }\n\n /** Begin animation of bottom sheet entrance into view. */\n enter() {\n if (!this._destroyed) {\n this._animationState = 'visible';\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /** Begin animation of the bottom sheet exiting from view. */\n exit() {\n if (!this._destroyed) {\n this._animationState = 'hidden';\n this._changeDetectorRef.markForCheck();\n }\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this._breakpointSubscription.unsubscribe();\n this._destroyed = true;\n }\n\n _onTransitionEnd(event: TransitionEvent) {\n if (event.propertyName === 'transform') {\n this._animationStateChanged.emit({\n fromState: this._animationState === 'visible' ? 'void' : 'visible',\n toState: this._animationState,\n totalTime: 300,\n phaseName: 'done',\n });\n }\n }\n}\n","import { DialogRef } from '@angular/cdk/dialog';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport { Subject } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { BottomSheetConfig } from './bottom-sheet-config';\n\n/**\n * Reference to a bottom sheet dispatched from the BottomSheet service.\n */\nexport class BottomSheetRef<T = any, R = any> {\n /** @internal */\n _refInstance: T | null = null;\n\n /** @internal */\n _refRef: any = null;\n\n /** Instance of the component making up the content of the bottom sheet. */\n get instance(): T {\n return this._refInstance!;\n }\n\n /**\n * `ComponentRef` of the component opened into the bottom sheet. Will be\n * null when the bottom sheet is opened using a `TemplateRef`.\n */\n get componentRef() {\n return this._refRef;\n }\n\n /** Whether the user is allowed to close the bottom sheet. */\n disableClose: boolean | undefined;\n\n /** Subject for notifying the user that the bottom sheet has opened and appeared. */\n private readonly _afterOpened = new Subject<void>();\n\n /** Result to be passed down to the `afterDismissed` stream. */\n private _result: R | undefined;\n\n /** Handle to the timeout that's running as a fallback in case the exit animation doesn't fire. */\n private _closeFallbackTimeout: any;\n\n constructor(\n private _ref: DialogRef<R, T>,\n config: BottomSheetConfig,\n public containerInstance: any\n ) {\n this.disableClose = config.disableClose;\n\n // Emit when opening animation completes\n containerInstance._animationStateChanged\n .pipe(\n filter((event: any) => event.phase === 'done' && event.toState === 'visible'),\n take(1)\n )\n .subscribe(() => {\n this._afterOpened.next();\n this._afterOpened.complete();\n });\n\n // Dispose overlay when closing animation is complete\n containerInstance._animationStateChanged\n .pipe(\n filter((event: any) => event.phase === 'done' && (event.toState === 'hidden' || event.toState === 'void')),\n take(1)\n )\n .subscribe(() => {\n if (this._closeFallbackTimeout) {\n clearTimeout(this._closeFallbackTimeout);\n }\n this._ref.close(this._result);\n });\n\n _ref.overlayRef.detachments().subscribe(() => {\n this._ref.close(this._result);\n });\n\n _ref.backdropClick.subscribe(() => {\n if (!this.disableClose) {\n this.dismiss();\n }\n });\n\n _ref.keydownEvents\n .pipe(filter(event => event.keyCode === ESCAPE))\n .subscribe(event => {\n if (!this.disableClose && !hasModifierKey(event)) {\n event.preventDefault();\n this.dismiss();\n }\n });\n }\n\n /**\n * Dismisses the bottom sheet.\n * @param result Data to be passed back to the bottom sheet opener.\n */\n dismiss(result?: R): void {\n if (!this.containerInstance) {\n return;\n }\n\n // Transition the backdrop in parallel to the bottom sheet.\n this._ref.overlayRef.detachBackdrop();\n\n this._result = result;\n this.containerInstance.exit();\n this._closeFallbackTimeout = setTimeout(() => {\n this._ref.close(this._result);\n }, 400);\n }\n\n /** Gets an observable that is notified when the bottom sheet is finished closing. */\n afterDismissed() {\n return this._ref.closed;\n }\n\n /** Gets an observable that is notified when the bottom sheet has opened and appeared. */\n afterOpened() {\n return this._afterOpened;\n }\n\n /**\n * Gets an observable that emits when the overlay's backdrop has been clicked.\n */\n backdropClick() {\n return this._ref.backdropClick;\n }\n\n /**\n * Gets an observable that emits when keydown events are targeted on the overlay.\n */\n keydownEvents() {\n return this._ref.keydownEvents;\n }\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { inject, Injectable, InjectionToken, Injector, OnDestroy, TemplateRef } from '@angular/core';\nimport { Dialog } from '@angular/cdk/dialog';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { BottomSheetConfig, BOTTOM_SHEET_DATA } from './bottom-sheet-config';\nimport { BottomSheetContainer } from './bottom-sheet-container';\nimport { BottomSheetRef } from './bottom-sheet-ref';\n\n/** Injection token that can be used to specify default bottom sheet options. */\nexport const BOTTOM_SHEET_DEFAULT_OPTIONS = new InjectionToken<BottomSheetConfig>(\n 'ngs-bottom-sheet-default-options'\n);\n\n@Injectable({ providedIn: 'root' })\nexport class BottomSheet implements OnDestroy {\n private _injector = inject(Injector);\n private _overlay = inject(Overlay);\n private _dialog = inject(Dialog);\n private _parentBottomSheet = inject(BottomSheet, { optional: true, skipSelf: true });\n private _defaultOptions = inject(BOTTOM_SHEET_DEFAULT_OPTIONS, { optional: true });\n private _bottomSheetRefAtThisLevel: BottomSheetRef<any> | null = null;\n\n /** Reference to the currently opened bottom sheet. */\n get _openedBottomSheetRef(): BottomSheetRef<any> | null {\n const parent = this._parentBottomSheet;\n return parent ? parent._openedBottomSheetRef : this._bottomSheetRefAtThisLevel;\n }\n\n set _openedBottomSheetRef(value: BottomSheetRef<any> | null) {\n if (this._parentBottomSheet) {\n this._parentBottomSheet._openedBottomSheetRef = value;\n } else {\n this._bottomSheetRefAtThisLevel = value;\n }\n }\n\n open<T, D = any, R = any>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: BottomSheetConfig<D>\n ): BottomSheetRef<T, R> {\n const _config = { ...(this._defaultOptions || new BottomSheetConfig()), ...config };\n let ref: BottomSheetRef<T, R>;\n\n this._dialog.open<R, T>(componentOrTemplateRef, {\n ...(_config as any),\n // Disable closing since we need to sync it up to the animation ourselves.\n disableClose: true,\n // Disable closing on detachments so that we can sync up the animation.\n closeOnOverlayDetachments: false,\n maxWidth: '100%',\n container: BottomSheetContainer,\n scrollStrategy: _config.scrollStrategy || this._overlay.scrollStrategies.block(),\n positionStrategy: this._overlay.position()\n .global()\n .centerHorizontally()\n .bottom('0'),\n templateContext: () => ({ bottomSheetRef: ref }),\n providers: (cdkRef: any, _cdkConfig: any, container: any) => {\n ref = new BottomSheetRef<T, R>(cdkRef, _config, container);\n return [\n { provide: BottomSheetRef, useValue: ref },\n { provide: BOTTOM_SHEET_DATA, useValue: _config.data },\n ];\n },\n });\n\n ref!.afterDismissed().subscribe(() => {\n // Clear the bottom sheet ref if it hasn't already been replaced by a newer one.\n if (this._openedBottomSheetRef === ref) {\n this._openedBottomSheetRef = null;\n }\n });\n\n if (this._openedBottomSheetRef) {\n // If a bottom sheet is already in view, dismiss it and enter the\n // new bottom sheet after exit animation is complete.\n this._openedBottomSheetRef.afterDismissed().subscribe(() => ref!.containerInstance?.enter());\n this._openedBottomSheetRef.dismiss();\n } else {\n // If no bottom sheet is in view, enter the new bottom sheet.\n ref!.containerInstance.enter();\n }\n\n this._openedBottomSheetRef = ref!;\n return ref!;\n }\n\n /**\n * Dismisses the currently-visible bottom sheet.\n * @param result Data to pass to the bottom sheet instance.\n */\n dismiss<R = any>(result?: R): void {\n if (this._openedBottomSheetRef) {\n this._openedBottomSheetRef.dismiss(result);\n }\n }\n\n ngOnDestroy() {\n if (this._bottomSheetRefAtThisLevel) {\n this._bottomSheetRefAtThisLevel.dismiss();\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAGA;MACa,iBAAiB,GAAG,IAAI,cAAc,CAAM,oBAAoB;AAE7E;;AAEG;MACU,iBAAiB,CAAA;;AAE5B,IAAA,gBAAgB;;AAGhB,IAAA,UAAU;;AAGV,IAAA,SAAS;;IAGT,IAAI,GAAc,IAAI;;IAGtB,WAAW,GAAa,IAAI;;AAG5B,IAAA,aAAa;;IAGb,YAAY,GAAa,KAAK;;IAG9B,SAAS,GAAmB,IAAI;AAEhC;;AAEG;IACH,SAAS,GAAa,KAAK;AAE3B;;AAEG;IACH,iBAAiB,GAAa,IAAI;AAElC;;AAEG;IACH,SAAS,GAAsB,gBAAgB;AAE/C;;;AAGG;IACH,YAAY,GAAa,IAAI;;AAG7B,IAAA,cAAc;;IAGd,MAAM,GAAY,EAAE;;AAGpB,IAAA,SAAS;;AAGT,IAAA,SAAS;AACV;;ACrDD;;;AAGG;AAmBG,MAAO,oBAAqB,SAAQ,kBAAkB,CAAA;AAClD,IAAA,uBAAuB;;IAG/B,eAAe,GAAkC,MAAM;;AAGvD,IAAA,sBAAsB,GAAG,IAAI,YAAY,EAAO;;IAGxC,UAAU,GAAG,KAAK;AAE1B,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AACP,QAAA,MAAM,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;QACrD,IAAI,CAAC,uBAAuB,GAAG;AAC5B,aAAA,OAAO,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC;aACnE,SAAS,CAAC,MAAK;YACd,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS;AAC1D,YAAA,SAAS,CAAC,MAAM,CACd,mCAAmC,EACnC,kBAAkB,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CACjD;AACD,YAAA,SAAS,CAAC,MAAM,CACd,kCAAkC,EAClC,kBAAkB,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAChD;AACD,YAAA,SAAS,CAAC,MAAM,CACd,mCAAmC,EACnC,kBAAkB,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CACjD;AACH,QAAA,CAAC,CAAC;IACN;;IAGA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,YAAA,IAAI,CAAC,eAAe,GAAG,SAAS;AAChC,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;QACxC;IACF;;IAGA,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,YAAA,IAAI,CAAC,eAAe,GAAG,QAAQ;AAC/B,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;QACxC;IACF;IAES,WAAW,GAAA;QAClB,KAAK,CAAC,WAAW,EAAE;AACnB,QAAA,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE;AAC1C,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;IACxB;AAEA,IAAA,gBAAgB,CAAC,KAAsB,EAAA;AACrC,QAAA,IAAI,KAAK,CAAC,YAAY,KAAK,WAAW,EAAE;AACtC,YAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;AAC/B,gBAAA,SAAS,EAAE,IAAI,CAAC,eAAe,KAAK,SAAS,GAAG,MAAM,GAAG,SAAS;gBAClE,OAAO,EAAE,IAAI,CAAC,eAAe;AAC7B,gBAAA,SAAS,EAAE,GAAG;AACd,gBAAA,SAAS,EAAE,MAAM;AAClB,aAAA,CAAC;QACJ;IACF;uGAjEW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,0BAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,0CAAA,EAAA,iCAAA,EAAA,yCAAA,EAAA,gCAAA,EAAA,EAAA,cAAA,EAAA,4BAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAhBrB,iCAAiC,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,oyCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAIjC,eAAe,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAYd,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAlBhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,EAAA,QAAA,EAC5B,iCAAiC,EAAA,aAAA,EAE5B,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,OAAO,EAAA,OAAA,EACvC,CAAC,eAAe,CAAC,EAAA,IAAA,EACpB;AACJ,wBAAA,OAAO,EAAE,4BAA4B;AACrC,wBAAA,UAAU,EAAE,IAAI;AAChB,wBAAA,aAAa,EAAE,cAAc;AAC7B,wBAAA,mBAAmB,EAAE,mBAAmB;AACxC,wBAAA,mBAAmB,EAAE,mBAAmB;AACxC,wBAAA,4CAA4C,EAAE,+BAA+B;AAC7E,wBAAA,2CAA2C,EAAE,8BAA8B;AAC3E,wBAAA,iBAAiB,EAAE,0BAA0B;AAC9C,qBAAA,EAAA,MAAA,EAAA,CAAA,oyCAAA,CAAA,EAAA;;;AC3BH;;AAEG;MACU,cAAc,CAAA;AAiCf,IAAA,IAAA;AAED,IAAA,iBAAA;;IAjCT,YAAY,GAAa,IAAI;;IAG7B,OAAO,GAAQ,IAAI;;AAGnB,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,YAAa;IAC3B;AAEA;;;AAGG;AACH,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,OAAO;IACrB;;AAGA,IAAA,YAAY;;AAGK,IAAA,YAAY,GAAG,IAAI,OAAO,EAAQ;;AAG3C,IAAA,OAAO;;AAGP,IAAA,qBAAqB;AAE7B,IAAA,WAAA,CACU,IAAqB,EAC7B,MAAyB,EAClB,iBAAsB,EAAA;QAFrB,IAAA,CAAA,IAAI,GAAJ,IAAI;QAEL,IAAA,CAAA,iBAAiB,GAAjB,iBAAiB;AAExB,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY;;AAGvC,QAAA,iBAAiB,CAAC;aACf,IAAI,CACH,MAAM,CAAC,CAAC,KAAU,KAAK,KAAK,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,EAC7E,IAAI,CAAC,CAAC,CAAC;aAER,SAAS,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;AACxB,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;AAC9B,QAAA,CAAC,CAAC;;AAGJ,QAAA,iBAAiB,CAAC;AACf,aAAA,IAAI,CACH,MAAM,CAAC,CAAC,KAAU,KAAK,KAAK,CAAC,KAAK,KAAK,MAAM,KAAK,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,EAC1G,IAAI,CAAC,CAAC,CAAC;aAER,SAAS,CAAC,MAAK;AACd,YAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC9B,gBAAA,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC;YAC1C;YACA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;AAC/B,QAAA,CAAC,CAAC;QAEJ,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAK;YAC3C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;AAC/B,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAK;AAChC,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;gBACtB,IAAI,CAAC,OAAO,EAAE;YAChB;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC;AACF,aAAA,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC;aAC9C,SAAS,CAAC,KAAK,IAAG;YACjB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;gBAChD,KAAK,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,OAAO,EAAE;YAChB;AACF,QAAA,CAAC,CAAC;IACN;AAEA;;;AAGG;AACH,IAAA,OAAO,CAAC,MAAU,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC3B;QACF;;AAGA,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAErC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;AACrB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;AAC7B,QAAA,IAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC,MAAK;YAC3C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;QAC/B,CAAC,EAAE,GAAG,CAAC;IACT;;IAGA,cAAc,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM;IACzB;;IAGA,WAAW,GAAA;QACT,OAAO,IAAI,CAAC,YAAY;IAC1B;AAEA;;AAEG;IACH,aAAa,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa;IAChC;AAEA;;AAEG;IACH,aAAa,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa;IAChC;AACD;;AC9HD;MACa,4BAA4B,GAAG,IAAI,cAAc,CAC5D,kCAAkC;MAIvB,WAAW,CAAA;AACd,IAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC5B,IAAA,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;AAC1B,IAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;AACxB,IAAA,kBAAkB,GAAG,MAAM,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5E,eAAe,GAAG,MAAM,CAAC,4BAA4B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1E,0BAA0B,GAA+B,IAAI;;AAGrE,IAAA,IAAI,qBAAqB,GAAA;AACvB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB;AACtC,QAAA,OAAO,MAAM,GAAG,MAAM,CAAC,qBAAqB,GAAG,IAAI,CAAC,0BAA0B;IAChF;IAEA,IAAI,qBAAqB,CAAC,KAAiC,EAAA;AACzD,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,GAAG,KAAK;QACvD;aAAO;AACL,YAAA,IAAI,CAAC,0BAA0B,GAAG,KAAK;QACzC;IACF;IAEA,IAAI,CACF,sBAAyD,EACzD,MAA6B,EAAA;AAE7B,QAAA,MAAM,OAAO,GAAG,EAAE,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,iBAAiB,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE;AACnF,QAAA,IAAI,GAAyB;AAE7B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAO,sBAAsB,EAAE;AAC9C,YAAA,GAAI,OAAe;;AAEnB,YAAA,YAAY,EAAE,IAAI;;AAElB,YAAA,yBAAyB,EAAE,KAAK;AAChC,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,SAAS,EAAE,oBAAoB;AAC/B,YAAA,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE;AAChF,YAAA,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;AACrC,iBAAA,MAAM;AACN,iBAAA,kBAAkB;iBAClB,MAAM,CAAC,GAAG,CAAC;YACd,eAAe,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC;YAChD,SAAS,EAAE,CAAC,MAAW,EAAE,UAAe,EAAE,SAAc,KAAI;gBAC1D,GAAG,GAAG,IAAI,cAAc,CAAO,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC;gBAC1D,OAAO;AACL,oBAAA,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,EAAE;oBAC1C,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE;iBACvD;YACH,CAAC;AACF,SAAA,CAAC;AAEF,QAAA,GAAI,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,MAAK;;AAEnC,YAAA,IAAI,IAAI,CAAC,qBAAqB,KAAK,GAAG,EAAE;AACtC,gBAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;YACnC;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;;;AAG9B,YAAA,IAAI,CAAC,qBAAqB,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,MAAM,GAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,CAAC;AAC5F,YAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE;QACtC;aAAO;;AAEL,YAAA,GAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;QAChC;AAEA,QAAA,IAAI,CAAC,qBAAqB,GAAG,GAAI;AACjC,QAAA,OAAO,GAAI;IACb;AAEA;;;AAGG;AACH,IAAA,OAAO,CAAU,MAAU,EAAA;AACzB,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC9B,YAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC;QAC5C;IACF;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,0BAA0B,EAAE;AACnC,YAAA,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE;QAC3C;IACF;uGAvFW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAX,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cADE,MAAM,EAAA,CAAA;;2FACnB,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACblC;;AAEG;;;;"}
1
+ {"version":3,"file":"ngstarter-ui-components-bottom-sheet.mjs","sources":["../../../projects/components/bottom-sheet/src/bottom-sheet/bottom-sheet-config.ts","../../../projects/components/bottom-sheet/src/bottom-sheet/bottom-sheet-container.ts","../../../projects/components/bottom-sheet/src/bottom-sheet/bottom-sheet-ref.ts","../../../projects/components/bottom-sheet/src/bottom-sheet/bottom-sheet.ts","../../../projects/components/bottom-sheet/ngstarter-ui-components-bottom-sheet.ts"],"sourcesContent":["import { InjectionToken, ViewContainerRef } from '@angular/core';\nimport { ScrollStrategy } from '@angular/cdk/overlay';\n\n/** Injection token that can be used to access the data that was passed in to a bottom sheet. */\nexport const BOTTOM_SHEET_DATA = new InjectionToken<any>('EmrBottomSheetData');\n\n/**\n * Configuration used when opening a bottom sheet.\n */\nexport class BottomSheetConfig<D = any> {\n /** The view container to place the overlay for the bottom sheet into. */\n viewContainerRef?: ViewContainerRef;\n\n /** Extra CSS classes to be added to the bottom sheet container. */\n panelClass?: string | string[];\n\n /** Text layout direction for the bottom sheet. */\n direction?: 'ltr' | 'rtl';\n\n /** Data being injected into the child component. */\n data?: D | null = null;\n\n /** Whether the bottom sheet has a backdrop. */\n hasBackdrop?: boolean = true;\n\n /** Custom class for the backdrop. */\n backdropClass?: string;\n\n /** Whether the user can use escape or clicking outside to close the bottom sheet. */\n disableClose?: boolean = false;\n\n /** Aria label to assign to the bottom sheet element. */\n ariaLabel?: string | null = null;\n\n /**\n * Whether this is a modal dialog. Used to set the `aria-modal` attribute.\n */\n ariaModal?: boolean = false;\n\n /**\n * Whether the bottom sheet should close when the user goes backwards/forwards in history.\n */\n closeOnNavigation?: boolean = true;\n\n /**\n * Where the bottom sheet should focus on open.\n */\n autoFocus?: string | boolean = 'first-tabbable';\n\n /**\n * Whether the bottom sheet should restore focus to the\n * previously-focused element, after it's closed.\n */\n restoreFocus?: boolean = true;\n\n /** Scroll strategy to be used for the bottom sheet. */\n scrollStrategy?: ScrollStrategy;\n\n /** Height for the bottom sheet. */\n height?: string = '';\n\n /** Minimum height for the bottom sheet. If a number is provided, assumes pixel units. */\n minHeight?: string | number;\n\n /** Maximum height for the bottom sheet. If a number is provided, assumes pixel units. */\n maxHeight?: string | number;\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n OnDestroy,\n EventEmitter,\n} from '@angular/core';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { CdkDialogContainer } from '@angular/cdk/dialog';\n\n/**\n * Internal component that wraps user-provided bottom sheet content.\n * @docs-private\n */\n@Component({\n selector: 'ngs-bottom-sheet-container',\n exportAs: 'ngsBottomSheetContainer',\n imports: [\n CdkPortalOutlet\n ],\n template: '<ng-template cdkPortalOutlet />',\n styleUrl: 'bottom-sheet-container.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-bottom-sheet-container',\n 'tabindex': '-1',\n '[attr.role]': '_config.role',\n '[attr.aria-modal]': '_config.ariaModal',\n '[attr.aria-label]': '_config.ariaLabel',\n '[class.ngs-bottom-sheet-container-visible]': '_animationState === \"visible\"',\n '[class.ngs-bottom-sheet-container-hidden]': '_animationState === \"hidden\"',\n '(transitionend)': '_onTransitionEnd($event)',\n },\n})\nexport class BottomSheetContainer extends CdkDialogContainer implements OnDestroy {\n /** The state of the bottom sheet animations. */\n _animationState: 'void' | 'visible' | 'hidden' = 'void';\n\n /** Emits whenever the state of the animation changes. */\n _animationStateChanged = new EventEmitter<any>();\n\n /** Whether the component has been destroyed. */\n private _destroyed = false;\n\n /** Begin animation of bottom sheet entrance into view. */\n enter() {\n if (!this._destroyed) {\n this._animationState = 'visible';\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /** Begin animation of the bottom sheet exiting from view. */\n exit() {\n if (!this._destroyed) {\n this._animationState = 'hidden';\n this._changeDetectorRef.markForCheck();\n }\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this._destroyed = true;\n }\n\n _onTransitionEnd(event: TransitionEvent) {\n if (event.propertyName === 'transform') {\n this._animationStateChanged.emit({\n fromState: this._animationState === 'visible' ? 'void' : 'visible',\n toState: this._animationState,\n totalTime: 300,\n phaseName: 'done',\n });\n }\n }\n}\n","import { DialogRef } from '@angular/cdk/dialog';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport { Subject } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { BottomSheetConfig } from './bottom-sheet-config';\n\n/**\n * Reference to a bottom sheet dispatched from the BottomSheet service.\n */\nexport class BottomSheetRef<T = any, R = any> {\n /** @internal */\n _refInstance: T | null = null;\n\n /** @internal */\n _refRef: any = null;\n\n /** Instance of the component making up the content of the bottom sheet. */\n get instance(): T {\n return this._refInstance!;\n }\n\n /**\n * `ComponentRef` of the component opened into the bottom sheet. Will be\n * null when the bottom sheet is opened using a `TemplateRef`.\n */\n get componentRef() {\n return this._refRef;\n }\n\n /** Whether the user is allowed to close the bottom sheet. */\n disableClose: boolean | undefined;\n\n /** Subject for notifying the user that the bottom sheet has opened and appeared. */\n private readonly _afterOpened = new Subject<void>();\n\n /** Result to be passed down to the `afterDismissed` stream. */\n private _result: R | undefined;\n\n /** Handle to the timeout that's running as a fallback in case the exit animation doesn't fire. */\n private _closeFallbackTimeout: any;\n\n constructor(\n private _ref: DialogRef<R, T>,\n config: BottomSheetConfig,\n public containerInstance: any\n ) {\n this.disableClose = config.disableClose;\n\n // Emit when opening animation completes\n containerInstance._animationStateChanged\n .pipe(\n filter((event: any) => (event.phaseName ?? event.phase) === 'done' && event.toState === 'visible'),\n take(1)\n )\n .subscribe(() => {\n this._afterOpened.next();\n this._afterOpened.complete();\n });\n\n // Dispose overlay when closing animation is complete\n containerInstance._animationStateChanged\n .pipe(\n filter((event: any) => (event.phaseName ?? event.phase) === 'done' && (event.toState === 'hidden' || event.toState === 'void')),\n take(1)\n )\n .subscribe(() => {\n if (this._closeFallbackTimeout) {\n clearTimeout(this._closeFallbackTimeout);\n }\n this._ref.close(this._result);\n });\n\n _ref.overlayRef.detachments().subscribe(() => {\n this._ref.close(this._result);\n });\n\n _ref.backdropClick.subscribe(() => {\n if (!this.disableClose) {\n this.dismiss();\n }\n });\n\n _ref.keydownEvents\n .pipe(filter(event => event.keyCode === ESCAPE))\n .subscribe(event => {\n if (!this.disableClose && !hasModifierKey(event)) {\n event.preventDefault();\n this.dismiss();\n }\n });\n }\n\n /**\n * Dismisses the bottom sheet.\n * @param result Data to be passed back to the bottom sheet opener.\n */\n dismiss(result?: R): void {\n if (!this.containerInstance) {\n return;\n }\n\n // Transition the backdrop in parallel to the bottom sheet.\n this._ref.overlayRef.detachBackdrop();\n\n this._result = result;\n this.containerInstance.exit();\n this._closeFallbackTimeout = setTimeout(() => {\n this._ref.close(this._result);\n }, 400);\n }\n\n /** Gets an observable that is notified when the bottom sheet is finished closing. */\n afterDismissed() {\n return this._ref.closed;\n }\n\n /** Gets an observable that is notified when the bottom sheet has opened and appeared. */\n afterOpened() {\n return this._afterOpened;\n }\n\n /**\n * Gets an observable that emits when the overlay's backdrop has been clicked.\n */\n backdropClick() {\n return this._ref.backdropClick;\n }\n\n /**\n * Gets an observable that emits when keydown events are targeted on the overlay.\n */\n keydownEvents() {\n return this._ref.keydownEvents;\n }\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { inject, Injectable, InjectionToken, Injector, OnDestroy, TemplateRef } from '@angular/core';\nimport { Dialog } from '@angular/cdk/dialog';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { BottomSheetConfig, BOTTOM_SHEET_DATA } from './bottom-sheet-config';\nimport { BottomSheetContainer } from './bottom-sheet-container';\nimport { BottomSheetRef } from './bottom-sheet-ref';\n\n/** Injection token that can be used to specify default bottom sheet options. */\nexport const BOTTOM_SHEET_DEFAULT_OPTIONS = new InjectionToken<BottomSheetConfig>(\n 'ngs-bottom-sheet-default-options'\n);\n\n@Injectable({ providedIn: 'root' })\nexport class BottomSheet implements OnDestroy {\n private _injector = inject(Injector);\n private _overlay = inject(Overlay);\n private _dialog = inject(Dialog);\n private _parentBottomSheet = inject(BottomSheet, { optional: true, skipSelf: true });\n private _defaultOptions = inject(BOTTOM_SHEET_DEFAULT_OPTIONS, { optional: true });\n private _bottomSheetRefAtThisLevel: BottomSheetRef<any> | null = null;\n\n /** Reference to the currently opened bottom sheet. */\n get _openedBottomSheetRef(): BottomSheetRef<any> | null {\n const parent = this._parentBottomSheet;\n return parent ? parent._openedBottomSheetRef : this._bottomSheetRefAtThisLevel;\n }\n\n set _openedBottomSheetRef(value: BottomSheetRef<any> | null) {\n if (this._parentBottomSheet) {\n this._parentBottomSheet._openedBottomSheetRef = value;\n } else {\n this._bottomSheetRefAtThisLevel = value;\n }\n }\n\n open<T, D = any, R = any>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: BottomSheetConfig<D>\n ): BottomSheetRef<T, R> {\n const _config = { ...(this._defaultOptions || new BottomSheetConfig()), ...config };\n let ref: BottomSheetRef<T, R>;\n\n const cdkRef = this._dialog.open<R, D, T>(componentOrTemplateRef, {\n ...(_config as any),\n // Disable closing since we need to sync it up to the animation ourselves.\n disableClose: true,\n // Disable closing on detachments so that we can sync up the animation.\n closeOnOverlayDetachments: false,\n maxWidth: '100%',\n container: BottomSheetContainer,\n scrollStrategy: _config.scrollStrategy || this._overlay.scrollStrategies.block(),\n positionStrategy: this._overlay.position()\n .global()\n .centerHorizontally()\n .bottom('0'),\n templateContext: () => ({ bottomSheetRef: ref }),\n providers: (cdkRef: any, _cdkConfig: any, container: any) => {\n ref = new BottomSheetRef<T, R>(cdkRef, _config, container);\n return [\n { provide: BottomSheetRef, useValue: ref },\n { provide: BOTTOM_SHEET_DATA, useValue: _config.data },\n ];\n },\n });\n ref!._refInstance = (cdkRef.componentInstance ?? null) as T | null;\n ref!._refRef = (cdkRef as any).componentRef ?? null;\n\n ref!.afterDismissed().subscribe(() => {\n // Clear the bottom sheet ref if it hasn't already been replaced by a newer one.\n if (this._openedBottomSheetRef === ref) {\n this._openedBottomSheetRef = null;\n }\n });\n\n if (this._openedBottomSheetRef) {\n // If a bottom sheet is already in view, dismiss it and enter the\n // new bottom sheet after exit animation is complete.\n this._openedBottomSheetRef.afterDismissed().subscribe(() => ref!.containerInstance?.enter());\n this._openedBottomSheetRef.dismiss();\n } else {\n // If no bottom sheet is in view, enter the new bottom sheet.\n ref!.containerInstance.enter();\n }\n\n this._openedBottomSheetRef = ref!;\n return ref!;\n }\n\n /**\n * Dismisses the currently-visible bottom sheet.\n * @param result Data to pass to the bottom sheet instance.\n */\n dismiss<R = any>(result?: R): void {\n if (this._openedBottomSheetRef) {\n this._openedBottomSheetRef.dismiss(result);\n }\n }\n\n ngOnDestroy() {\n if (this._bottomSheetRefAtThisLevel) {\n this._bottomSheetRefAtThisLevel.dismiss();\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ngstarter-ui-components-chips.mjs","sources":["../../../projects/components/chips/src/chip/chip.ts","../../../projects/components/chips/src/chip/chip.html","../../../projects/components/chips/src/chip-row/chip-row.ts","../../../projects/components/chips/src/chip-grid/chip-grid.ts","../../../projects/components/chips/src/chip-grid/chip-grid.html","../../../projects/components/chips/src/chip-option/chip-option.ts","../../../projects/components/chips/src/chip-listbox/chip-listbox.ts","../../../projects/components/chips/src/chip-listbox/chip-listbox.html","../../../projects/components/chips/src/chip-set/chip-set.ts","../../../projects/components/chips/src/chip-set/chip-set.html","../../../projects/components/chips/src/chip-avatar.ts","../../../projects/components/chips/src/chip-edit.ts","../../../projects/components/chips/src/chip-remove.ts","../../../projects/components/chips/src/chip-input.ts","../../../projects/components/chips/src/chip-control.ts","../../../projects/components/chips/src/chip-shape.ts","../../../projects/components/chips/ngstarter-ui-components-chips.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n input,\n ElementRef,\n inject,\n booleanAttribute,\n signal,\n output,\n computed\n} from '@angular/core';\nimport { AutoFocusDirective } from '@ngstarter-ui/components/core';\n\n@Component({\n selector: 'ngs-chip',\n exportAs: 'ngsChip',\n imports: [\n AutoFocusDirective\n ],\n templateUrl: './chip.html',\n styleUrl: './chip.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-chip',\n '[class.ngs-chip-disabled]': 'disabled()',\n '[attr.appearance]': 'appearance()',\n '[attr.aria-disabled]': 'disabled()',\n },\n})\nexport class Chip {\n readonly _elementRef = inject(ElementRef);\n protected _editing = false;\n\n appearance = input<string>('filled');\n disabled = input(false, { transform: booleanAttribute });\n value = input<any>(undefined);\n\n readonly destroyed = output<{ chip: Chip; }>();\n readonly removed = output<{ chip: Chip; }>();\n\n remove(): void {\n if (!this.disabled()) {\n this.removed.emit({ chip: this });\n }\n }\n\n ngOnDestroy() {\n this.destroyed.emit({ chip: this });\n }\n\n _handleKeydown(event: KeyboardEvent): void {\n }\n\n _handleBlur(): void {\n }\n}\n","<div class=\"ngs-chip-content\">\n <span class=\"avatar\">\n <ng-content select=\"ngs-chip-avatar, [ngsChipAvatar]\"/>\n </span>\n <span class=\"shape\">\n <ng-content select=\"ngs-chip-shape, [ngsChipShape]\"/>\n </span>\n <span\n #editInput\n class=\"ngs-chip-label\"\n [attr.contenteditable]=\"_editing || null\"\n (blur)=\"_handleBlur()\"\n (keydown)=\"_handleKeydown($event)\"\n [ngsAutoFocus]=\"_editing\"\n >\n <ng-content/>\n </span>\n <div class=\"controls\">\n <ng-content select=\"ngs-chip-remove, [ngsChipRemove], [ngsChipControl], [ngsChipEdit]\"/>\n </div>\n</div>\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n booleanAttribute,\n forwardRef,\n viewChild,\n ElementRef,\n ChangeDetectorRef,\n inject,\n PLATFORM_ID, signal,\n output\n} from '@angular/core';\nimport { Chip } from '../chip/chip';\nimport { isPlatformBrowser } from '@angular/common';\nimport { AutoFocusDirective } from '@ngstarter-ui/components/core';\n\nexport interface ChipEditedEvent {\n /** The chip row that was edited. */\n chip: ChipRow;\n\n /** The value of the chip row after it was edited. */\n value: string;\n}\n\n@Component({\n selector: 'ngs-chip-row',\n templateUrl: '../chip/chip.html',\n styleUrl: '../chip/chip.scss',\n host: {\n 'class': 'ngs-chip ngs-chip-row',\n '[class.ngs-chip-disabled]': 'disabled()',\n '[class.ngs-chip-editing]': '_editing',\n '[class.ngs-chip-editable]': 'editable()',\n '[class.ngs-chip-filled]': 'appearance() === \"filled\"',\n '[class.ngs-chip-outlined]': 'appearance() === \"outlined\"',\n '[attr.aria-disabled]': 'disabled()',\n 'role': 'row',\n '(keydown)': '_handleKeydown($event)',\n '(click)': '_handleClick($event)',\n },\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AutoFocusDirective\n ],\n providers: [\n {\n provide: Chip,\n useExisting: forwardRef(() => ChipRow)\n }\n ]\n})\nexport class ChipRow extends Chip {\n private _changeDetectorRef = inject(ChangeDetectorRef);\n\n private readonly _editInput = viewChild<ElementRef<HTMLSpanElement>>('editInput');\n\n alreadyEdited = signal(false);\n\n editable = input(false, { transform: booleanAttribute });\n\n readonly edited = output<ChipEditedEvent>();\n\n /**\n * Allows for use of the template-bound $event object\n */\n override _handleKeydown(event: KeyboardEvent): void {\n if (this.editable() && !this.disabled()) {\n if (this._editing) {\n if (event.key === 'Enter') {\n this._stopEditing();\n event.preventDefault();\n } else if (event.key === 'Escape') {\n this._editing = false;\n this._changeDetectorRef.markForCheck();\n event.preventDefault();\n }\n }\n }\n }\n\n override _handleBlur(): void {\n if (this._editing) {\n this._stopEditing();\n }\n }\n\n _handleClick(event: MouseEvent): void {\n if (!this.disabled()) {\n if (this.editable() && !this._editing && this.alreadyEdited()) {\n this._startEditing();\n }\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n _startEditing(): void {\n if (this.editable() && !this.disabled() && !this._editing) {\n this.alreadyEdited.set(true);\n this._editing = true;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _stopEditing(): void {\n if (this._editing) {\n this._editing = false;\n const newValue = this._editInput()!.nativeElement.innerText.trim();\n this.edited.emit({ chip: this, value: newValue });\n this._changeDetectorRef.markForCheck();\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n forwardRef,\n booleanAttribute,\n Component,\n AfterContentInit,\n computed,\n signal,\n input,\n inject,\n ElementRef,\n contentChildren,\n output\n} from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { ChipRow } from '../chip-row/chip-row';\nimport { FormFieldControl } from '@ngstarter-ui/components/form-field';\n\nlet nextId = 0;\n\n@Component({\n selector: 'ngs-chip-grid',\n templateUrl: './chip-grid.html',\n styleUrl: './chip-grid.scss',\n host: {\n 'class': 'ngs-chip-grid ngs-chip-set',\n 'role': 'grid',\n '[attr.aria-disabled]': 'disabled',\n '[id]': 'id',\n },\n standalone: true,\n providers: [\n {\n provide: FormFieldControl,\n useExisting: forwardRef(() => ChipGrid),\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChipGrid implements ControlValueAccessor, AfterContentInit, FormFieldControl<any[]> {\n readonly ngControl = inject(NgControl, { optional: true, self: true });\n readonly _elementRef = inject(ElementRef);\n\n _id = input<string>(`ngs-chip-grid-${nextId++}`, { alias: 'id' });\n get id(): string { return this._id(); }\n _placeholder = input<string | undefined>(undefined, { alias: 'placeholder' });\n get placeholder(): string | undefined { return this._placeholder(); }\n _required = input(false, { transform: booleanAttribute, alias: 'required' });\n get required(): boolean { return this._required(); }\n private _disabled = signal(false);\n _disabledInput = input(false, {\n transform: booleanAttribute,\n alias: 'disabled'\n });\n isDisabled = computed(() => this._disabledInput() || this._disabled());\n get disabled(): boolean { return this.isDisabled(); }\n\n readonly _chips = contentChildren(ChipRow, { descendants: true });\n private readonly _chips$ = toObservable(this._chips);\n\n readonly valueChange = output<any>();\n\n private _value = signal<any[]>([]);\n readonly stateChanges = signal<void>(undefined);\n private _focused = signal(false);\n get focused(): boolean { return this._focused(); }\n get multiline(): boolean { return this._chipsLength() > 0; }\n private _errorState = signal(false);\n get errorState(): boolean { return this._errorState(); }\n\n private _chipsLength = signal(0);\n get chipsLength(): number { return this._chipsLength(); }\n\n private _empty = computed(() => {\n const value = this._value();\n return (!value || value.length === 0) &&\n this._chipsLength() === 0 &&\n !this._isInputFocused() &&\n this._isInputEmpty();\n });\n get empty(): boolean { return this._empty(); }\n\n private _shouldLabelFloat = computed(() => {\n return !this.empty || this.focused;\n });\n get shouldLabelFloat(): boolean { return this._shouldLabelFloat(); }\n\n private _isInputFocused = signal(false);\n private _isInputEmpty = signal(true);\n private _chipInput: any;\n\n onChange: (value: any) => void = () => {};\n onTouched: () => void = () => {};\n\n constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n get value(): any[] {\n return this._value();\n }\n\n set value(value: any[]) {\n this._value.set(value);\n this.onChange(value);\n this.stateChanges.set(undefined);\n }\n\n writeValue(value: any): void {\n this._value.set(value || []);\n this.stateChanges.set(undefined);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabled.set(isDisabled);\n this.stateChanges.set(undefined);\n }\n\n ngAfterContentInit() {\n this._chips$.subscribe(() => {\n this._chipsLength.set(this._chips().length);\n this.stateChanges.set(undefined);\n });\n this._chipsLength.set(this._chips().length);\n }\n\n _setFocused(focused: boolean) {\n if (focused !== this._focused()) {\n this._focused.set(focused);\n this.stateChanges.set(undefined);\n }\n }\n\n _setInputFocused(focused: boolean) {\n this._isInputFocused.set(focused);\n this._setFocused(focused);\n }\n\n _setInputEmpty(empty: boolean) {\n this._isInputEmpty.set(empty);\n this.stateChanges.set(undefined);\n }\n\n _registerInput(input: any) {\n this._chipInput = input;\n }\n\n focus(): void {\n if (this.isDisabled()) {\n return;\n }\n\n if (this._chipInput) {\n this._chipInput.focus();\n } else {\n this._elementRef.nativeElement.focus();\n }\n }\n}\n","<ng-content />\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n booleanAttribute,\n forwardRef,\n output,\n effect,\n signal\n} from '@angular/core';\nimport { AutoFocusDirective } from '@ngstarter-ui/components/core';\nimport { Chip } from '../chip/chip';\n\n@Component({\n selector: 'ngs-chip-option',\n exportAs: 'ngsChipOption',\n imports: [\n AutoFocusDirective\n ],\n templateUrl: '../chip/chip.html',\n styleUrl: '../chip/chip.scss',\n providers: [\n {\n provide: Chip,\n useExisting: forwardRef(() => ChipOption)\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-chip ngs-chip-option',\n '[class.ngs-chip-selected]': 'isSelected',\n '[class.ngs-chip-disabled]': 'disabled()',\n '[class.ngs-chip-filled]': 'appearance() === \"filled\"',\n '[class.ngs-chip-outlined]': 'appearance() === \"outlined\"',\n '[attr.aria-selected]': 'isSelected',\n '[attr.aria-disabled]': 'disabled()',\n '(click)': 'toggleSelected()',\n },\n})\nexport class ChipOption extends Chip {\n selected = input(false, { transform: booleanAttribute });\n private readonly _internalSelected = signal(false);\n\n constructor() {\n super();\n effect(() => {\n this._setSelected(this.selected());\n });\n }\n\n get isSelected(): boolean {\n return this._internalSelected();\n }\n _setSelected(value: boolean) {\n this._internalSelected.set(value);\n }\n\n readonly selectionChange = output<{\n source: ChipOption;\n selected: boolean;\n }>();\n\n toggleSelected(): void {\n if (!this.disabled()) {\n this._setSelected(!this.isSelected);\n this.selectionChange.emit({ source: this, selected: this.isSelected });\n }\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n input,\n forwardRef,\n booleanAttribute,\n AfterContentInit,\n contentChildren,\n computed,\n signal,\n OnDestroy\n} from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { ChipOption } from '../chip-option/chip-option';\n\n@Component({\n selector: 'ngs-chip-listbox',\n templateUrl: './chip-listbox.html',\n styleUrl: './chip-listbox.scss',\n host: {\n 'class': 'ngs-chip-listbox ngs-chip-set',\n 'role': 'listbox',\n '[attr.aria-multiselectable]': 'multiple()',\n '[attr.aria-disabled]': 'isDisabled()',\n },\n standalone: true,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ChipListbox),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class ChipListbox implements ControlValueAccessor, AfterContentInit, OnDestroy {\n multiple = input(false, { transform: booleanAttribute });\n disabled = input(false, { transform: booleanAttribute });\n private readonly _disabledByControl = signal(false);\n readonly isDisabled = computed(() => this.disabled() || this._disabledByControl());\n\n readonly _chips = contentChildren(ChipOption, { descendants: true });\n private readonly _chips$ = toObservable(this._chips);\n private _chipSelectionSubscriptions: Array<{ unsubscribe(): void }> = [];\n private _syncTimeout: ReturnType<typeof setTimeout> | null = null;\n\n private _value: any;\n onChange: (value: any) => void = () => {};\n onTouched: () => void = () => {};\n\n get value(): any {\n return this._value;\n }\n\n set value(value: any) {\n this._value = value;\n this._syncChipsAsync();\n }\n\n writeValue(value: any): void {\n this._value = value;\n this._syncChipsAsync();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabledByControl.set(isDisabled);\n }\n\n ngAfterContentInit() {\n this._chips$.subscribe(() => {\n this._syncChipsAsync();\n });\n\n if (this._value === undefined) {\n const selectedChips = this._chips().filter(chip => chip.isSelected);\n\n if (this.multiple()) {\n this._value = selectedChips.map(chip => chip.value() !== undefined ? chip.value() : chip);\n } else {\n const lastSelected = selectedChips[selectedChips.length - 1];\n this._value = lastSelected ? (lastSelected.value() !== undefined ? lastSelected.value() : lastSelected) : undefined;\n }\n }\n\n this._syncChipsAsync();\n }\n\n ngOnDestroy(): void {\n if (this._syncTimeout !== null) {\n clearTimeout(this._syncTimeout);\n this._syncTimeout = null;\n }\n\n this._clearChipSelectionSubscriptions();\n }\n\n private _onSelectionChange(chip: ChipOption): void {\n if (this.isDisabled()) {\n this._updateChips();\n return;\n }\n\n const value = chip.value() !== undefined ? chip.value() : chip;\n\n if (this.multiple()) {\n if (!Array.isArray(this._value)) {\n this._value = [];\n }\n const index = this._value.indexOf(value);\n if (chip.isSelected) {\n if (index < 0) {\n this._value.push(value);\n }\n } else {\n if (index >= 0) {\n this._value.splice(index, 1);\n }\n }\n this._value = [...this._value];\n } else {\n this._chips().forEach(c => {\n if (c !== chip) {\n c._setSelected(false);\n }\n });\n this._value = chip.isSelected ? value : null;\n }\n this.onChange(this._value);\n this.onTouched();\n }\n\n private _watchChips(): void {\n this._clearChipSelectionSubscriptions();\n\n this._chipSelectionSubscriptions = this._chips().map(chip =>\n chip.selectionChange.subscribe(() => {\n this._onSelectionChange(chip);\n })\n );\n }\n\n private _clearChipSelectionSubscriptions(): void {\n this._chipSelectionSubscriptions.forEach(subscription => subscription.unsubscribe());\n this._chipSelectionSubscriptions = [];\n }\n\n private _syncChipsAsync(): void {\n if (this._syncTimeout !== null) {\n clearTimeout(this._syncTimeout);\n }\n\n this._syncTimeout = setTimeout(() => {\n this._syncTimeout = null;\n this._watchChips();\n this._updateChips();\n });\n }\n\n private _updateChips(): void {\n const _chips = this._chips();\n if (!_chips || this._value === undefined) {\n return;\n }\n\n _chips.forEach(chip => {\n const value = chip.value() !== undefined ? chip.value() : chip;\n\n if (this.multiple()) {\n chip._setSelected(Array.isArray(this._value) && this._value.includes(value));\n } else {\n chip._setSelected(this._value === value);\n }\n });\n }\n}\n","<ng-content />\n","import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'ngs-chip-set',\n templateUrl: './chip-set.html',\n styleUrl: './chip-set.scss',\n host: {\n 'class': 'ngs-chip-set',\n 'role': 'presentation',\n },\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChipSet {\n}\n","<ng-content />\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'ngs-chip-avatar, [ngsChipAvatar]',\n exportAs: 'ngsChipAvatar',\n host: {\n 'class': 'ngs-chip-avatar',\n },\n})\nexport class ChipAvatar {}\n","import { Directive, inject } from '@angular/core';\nimport { ChipRow } from './chip-row/chip-row';\n\n@Directive({\n selector: 'ngs-chip-edit, [ngsChipEdit]',\n host: {\n 'class': 'ngs-chip-edit',\n '(click)': '_handleClick($event)',\n },\n standalone: true,\n})\nexport class ChipEdit {\n protected _parentChip = inject(ChipRow);\n\n _handleClick(event: Event): void {\n if (!this._parentChip.disabled() && this._parentChip.editable()) {\n this._parentChip._startEditing();\n event.stopPropagation();\n }\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { Chip } from './chip/chip';\n\n@Directive({\n selector: 'ngs-chip-remove, [ngsChipRemove]',\n host: {\n 'class': 'ngs-chip-remove',\n '(click)': '_handleClick($event)',\n },\n standalone: true,\n})\nexport class ChipRemove {\n protected _parentChip = inject(Chip);\n\n _handleClick(event: Event): void {\n if (!this._parentChip.disabled()) {\n this._parentChip.remove();\n event.stopPropagation();\n }\n }\n}\n","import {\n booleanAttribute,\n Directive,\n ElementRef,\n inject,\n input,\n signal,\n DoCheck,\n output\n} from '@angular/core';\nimport { ChipGrid } from './chip-grid/chip-grid';\n\nexport interface ChipInputEvent {\n readonly chipInput: ChipInput;\n readonly value: string;\n readonly input: HTMLInputElement;\n}\n\n@Directive({\n selector: 'input[ngsChipInputFor]',\n standalone: true,\n host: {\n 'class': 'ngs-chip-input',\n '(input)': '_onInput()',\n '(keydown)': '_onKeydown($event)',\n '(blur)': '_onBlur()',\n '(focus)': '_onFocus()',\n }\n})\nexport class ChipInput implements DoCheck {\n private _elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\n\n set chipGrid(value: ChipGrid) {\n this._chipGrid = value;\n this._chipGrid?._registerInput(this);\n this._chipGrid?._setInputEmpty(!this._elementRef.nativeElement.value);\n }\n get chipGrid() {\n return this._chipGrid;\n }\n private _chipGrid: ChipGrid;\n\n chipGridInput = input<ChipGrid | undefined>(undefined, { alias: 'ngsChipInputFor' });\n\n chipInputSeparatorKeyCodes = input<readonly number[] | ReadonlySet<number>>(undefined, { alias: 'ngsChipInputSeparatorKeyCodes' });\n\n chipInputAddOnBlur = input(false, { alias: 'ngsChipInputAddOnBlur', transform: booleanAttribute });\n\n readonly chipInputTokenEnd = output<ChipInputEvent>();\n\n protected readonly _value = signal('');\n protected readonly _focused = signal(false);\n\n constructor() { }\n\n ngDoCheck() {\n if (this.chipGridInput() && this.chipGridInput() !== this._chipGrid) {\n this.chipGrid = this.chipGridInput()!;\n }\n if (this._value() !== this._elementRef.nativeElement.value) {\n this._onInput();\n }\n }\n\n _onInput() {\n const value = this._elementRef.nativeElement.value;\n this._value.set(value);\n this.chipGrid?._setInputEmpty(!value);\n }\n\n _onKeydown(event: any) {\n if (event.defaultPrevented) {\n return;\n }\n const separatorKeyCodes = this.chipInputSeparatorKeyCodes();\n const isSeparatorKey = Array.isArray(separatorKeyCodes)\n ? separatorKeyCodes.includes(event.keyCode)\n : !!separatorKeyCodes && 'has' in separatorKeyCodes && separatorKeyCodes.has(event.keyCode);\n\n if (isSeparatorKey) {\n this.chipInputTokenEnd.emit({\n chipInput: this,\n value: this._elementRef.nativeElement.value,\n input: this._elementRef.nativeElement\n });\n event.preventDefault();\n }\n }\n\n _onBlur() {\n this._focused.set(false);\n if (this.chipInputAddOnBlur()) {\n this.chipInputTokenEnd.emit({\n chipInput: this,\n value: this._elementRef.nativeElement.value,\n input: this._elementRef.nativeElement\n });\n }\n this.chipGrid?._setInputFocused(false);\n }\n\n _onFocus() {\n this._focused.set(true);\n this.chipGrid?._setInputFocused(true);\n }\n\n clear() {\n this._elementRef.nativeElement.value = '';\n this._value.set('');\n this.chipGrid?._setInputEmpty(true);\n }\n\n focus() {\n this._elementRef.nativeElement.focus();\n }\n}\n","import { Directive, inject } from '@angular/core';\n\n@Directive({\n selector: '[ngsChipControl]',\n host: {\n 'class': 'ngs-chip-control',\n }\n})\nexport class ChipControl {\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'ngs-chip-shape, [ngsChipShape]',\n exportAs: 'ngsChipShape',\n host: {\n 'class': 'ngs-chip-shape',\n },\n})\nexport class ChipShape {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngstarter-ui-components-chips.mjs","sources":["../../../projects/components/chips/src/chip/chip.ts","../../../projects/components/chips/src/chip/chip.html","../../../projects/components/chips/src/chip-row/chip-row.ts","../../../projects/components/chips/src/chip-grid/chip-grid.ts","../../../projects/components/chips/src/chip-grid/chip-grid.html","../../../projects/components/chips/src/chip-option/chip-option.ts","../../../projects/components/chips/src/chip-listbox/chip-listbox.ts","../../../projects/components/chips/src/chip-listbox/chip-listbox.html","../../../projects/components/chips/src/chip-set/chip-set.ts","../../../projects/components/chips/src/chip-set/chip-set.html","../../../projects/components/chips/src/chip-avatar.ts","../../../projects/components/chips/src/chip-edit.ts","../../../projects/components/chips/src/chip-remove.ts","../../../projects/components/chips/src/chip-input.ts","../../../projects/components/chips/src/chip-control.ts","../../../projects/components/chips/src/chip-shape.ts","../../../projects/components/chips/ngstarter-ui-components-chips.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n input,\n ElementRef,\n inject,\n booleanAttribute,\n output,\n} from '@angular/core';\nimport { AutoFocusDirective } from '@ngstarter-ui/components/core';\n\n@Component({\n selector: 'ngs-chip',\n exportAs: 'ngsChip',\n imports: [\n AutoFocusDirective\n ],\n templateUrl: './chip.html',\n styleUrl: './chip.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-chip',\n '[class.ngs-chip-disabled]': 'disabled()',\n '[attr.appearance]': 'appearance()',\n '[attr.aria-disabled]': 'disabled()',\n },\n})\nexport class Chip {\n readonly _elementRef = inject(ElementRef);\n protected _editing = false;\n\n appearance = input<string>('filled');\n disabled = input(false, { transform: booleanAttribute });\n value = input<any>(undefined);\n\n readonly destroyed = output<{ chip: Chip; }>();\n readonly removed = output<{ chip: Chip; }>();\n\n remove(): void {\n if (!this.disabled()) {\n this.removed.emit({ chip: this });\n }\n }\n\n ngOnDestroy() {\n this.destroyed.emit({ chip: this });\n }\n\n _handleKeydown(event: KeyboardEvent): void {\n }\n\n _handleBlur(): void {\n }\n}\n","<div class=\"ngs-chip-content\">\n <span class=\"avatar\">\n <ng-content select=\"ngs-chip-avatar, [ngsChipAvatar]\"/>\n </span>\n <span class=\"shape\">\n <ng-content select=\"ngs-chip-shape, [ngsChipShape]\"/>\n </span>\n <span\n #editInput\n class=\"ngs-chip-label\"\n [attr.contenteditable]=\"_editing || null\"\n (blur)=\"_handleBlur()\"\n (keydown)=\"_handleKeydown($event)\"\n [ngsAutoFocus]=\"_editing\"\n >\n <ng-content/>\n </span>\n <div class=\"controls\">\n <ng-content select=\"ngs-chip-remove, [ngsChipRemove], [ngsChipControl], [ngsChipEdit]\"/>\n </div>\n</div>\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n booleanAttribute,\n forwardRef,\n viewChild,\n ElementRef,\n ChangeDetectorRef,\n inject,\n PLATFORM_ID, signal,\n output\n} from '@angular/core';\nimport { Chip } from '../chip/chip';\nimport { isPlatformBrowser } from '@angular/common';\nimport { AutoFocusDirective } from '@ngstarter-ui/components/core';\n\nexport interface ChipEditedEvent {\n /** The chip row that was edited. */\n chip: ChipRow;\n\n /** The value of the chip row after it was edited. */\n value: string;\n}\n\n@Component({\n selector: 'ngs-chip-row',\n templateUrl: '../chip/chip.html',\n styleUrl: '../chip/chip.scss',\n host: {\n 'class': 'ngs-chip ngs-chip-row',\n '[class.ngs-chip-disabled]': 'disabled()',\n '[class.ngs-chip-editing]': '_editing',\n '[class.ngs-chip-editable]': 'editable()',\n '[class.ngs-chip-filled]': 'appearance() === \"filled\"',\n '[class.ngs-chip-outlined]': 'appearance() === \"outlined\"',\n '[attr.aria-disabled]': 'disabled()',\n 'role': 'row',\n '(keydown)': '_handleKeydown($event)',\n '(click)': '_handleClick($event)',\n },\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AutoFocusDirective\n ],\n providers: [\n {\n provide: Chip,\n useExisting: forwardRef(() => ChipRow)\n }\n ]\n})\nexport class ChipRow extends Chip {\n private _changeDetectorRef = inject(ChangeDetectorRef);\n\n private readonly _editInput = viewChild<ElementRef<HTMLSpanElement>>('editInput');\n\n alreadyEdited = signal(false);\n\n editable = input(false, { transform: booleanAttribute });\n\n readonly edited = output<ChipEditedEvent>();\n\n /**\n * Allows for use of the template-bound $event object\n */\n override _handleKeydown(event: KeyboardEvent): void {\n if (this.editable() && !this.disabled()) {\n if (this._editing) {\n if (event.key === 'Enter') {\n this._stopEditing();\n event.preventDefault();\n } else if (event.key === 'Escape') {\n this._editing = false;\n this._changeDetectorRef.markForCheck();\n event.preventDefault();\n }\n }\n }\n }\n\n override _handleBlur(): void {\n if (this._editing) {\n this._stopEditing();\n }\n }\n\n _handleClick(event: MouseEvent): void {\n if (!this.disabled()) {\n if (this.editable() && !this._editing && this.alreadyEdited()) {\n this._startEditing();\n }\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n _startEditing(): void {\n if (this.editable() && !this.disabled() && !this._editing) {\n this.alreadyEdited.set(true);\n this._editing = true;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _stopEditing(): void {\n if (this._editing) {\n this._editing = false;\n const newValue = this._editInput()!.nativeElement.innerText.trim();\n this.edited.emit({ chip: this, value: newValue });\n this._changeDetectorRef.markForCheck();\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n forwardRef,\n booleanAttribute,\n Component,\n AfterContentInit,\n computed,\n signal,\n input,\n inject,\n ElementRef,\n contentChildren,\n output\n} from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { ChipRow } from '../chip-row/chip-row';\nimport { FormFieldControl } from '@ngstarter-ui/components/form-field';\n\nlet nextId = 0;\n\n@Component({\n selector: 'ngs-chip-grid',\n templateUrl: './chip-grid.html',\n styleUrl: './chip-grid.scss',\n host: {\n 'class': 'ngs-chip-grid ngs-chip-set',\n 'role': 'grid',\n '[attr.aria-disabled]': 'disabled',\n '[id]': 'id',\n },\n standalone: true,\n providers: [\n {\n provide: FormFieldControl,\n useExisting: forwardRef(() => ChipGrid),\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChipGrid implements ControlValueAccessor, AfterContentInit, FormFieldControl<any[]> {\n readonly ngControl = inject(NgControl, { optional: true, self: true });\n readonly _elementRef = inject(ElementRef);\n\n _id = input<string>(`ngs-chip-grid-${nextId++}`, { alias: 'id' });\n get id(): string { return this._id(); }\n _placeholder = input<string | undefined>(undefined, { alias: 'placeholder' });\n get placeholder(): string | undefined { return this._placeholder(); }\n _required = input(false, { transform: booleanAttribute, alias: 'required' });\n get required(): boolean { return this._required(); }\n private _disabled = signal(false);\n _disabledInput = input(false, {\n transform: booleanAttribute,\n alias: 'disabled'\n });\n isDisabled = computed(() => this._disabledInput() || this._disabled());\n get disabled(): boolean { return this.isDisabled(); }\n\n readonly _chips = contentChildren(ChipRow, { descendants: true });\n private readonly _chips$ = toObservable(this._chips);\n\n readonly valueChange = output<any>();\n\n private _value = signal<any[]>([]);\n readonly stateChanges = signal<void>(undefined);\n private _focused = signal(false);\n get focused(): boolean { return this._focused(); }\n get multiline(): boolean { return this._chipsLength() > 0; }\n private _errorState = signal(false);\n get errorState(): boolean { return this._errorState(); }\n\n private _chipsLength = signal(0);\n get chipsLength(): number { return this._chipsLength(); }\n\n private _empty = computed(() => {\n const value = this._value();\n return (!value || value.length === 0) &&\n this._chipsLength() === 0 &&\n !this._isInputFocused() &&\n this._isInputEmpty();\n });\n get empty(): boolean { return this._empty(); }\n\n private _shouldLabelFloat = computed(() => {\n return !this.empty || this.focused;\n });\n get shouldLabelFloat(): boolean { return this._shouldLabelFloat(); }\n\n private _isInputFocused = signal(false);\n private _isInputEmpty = signal(true);\n private _chipInput: any;\n\n onChange: (value: any) => void = () => {};\n onTouched: () => void = () => {};\n\n constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n get value(): any[] {\n return this._value();\n }\n\n set value(value: any[]) {\n this._value.set(value);\n this.onChange(value);\n this.stateChanges.set(undefined);\n }\n\n writeValue(value: any): void {\n this._value.set(value || []);\n this.stateChanges.set(undefined);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabled.set(isDisabled);\n this.stateChanges.set(undefined);\n }\n\n ngAfterContentInit() {\n this._chips$.subscribe(() => {\n this._chipsLength.set(this._chips().length);\n this.stateChanges.set(undefined);\n });\n this._chipsLength.set(this._chips().length);\n }\n\n _setFocused(focused: boolean) {\n if (focused !== this._focused()) {\n this._focused.set(focused);\n this.stateChanges.set(undefined);\n }\n }\n\n _setInputFocused(focused: boolean) {\n this._isInputFocused.set(focused);\n this._setFocused(focused);\n }\n\n _setInputEmpty(empty: boolean) {\n this._isInputEmpty.set(empty);\n this.stateChanges.set(undefined);\n }\n\n _registerInput(input: any) {\n this._chipInput = input;\n }\n\n focus(): void {\n if (this.isDisabled()) {\n return;\n }\n\n if (this._chipInput) {\n this._chipInput.focus();\n } else {\n this._elementRef.nativeElement.focus();\n }\n }\n}\n","<ng-content />\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n booleanAttribute,\n forwardRef,\n output,\n effect,\n signal\n} from '@angular/core';\nimport { AutoFocusDirective } from '@ngstarter-ui/components/core';\nimport { Chip } from '../chip/chip';\n\n@Component({\n selector: 'ngs-chip-option',\n exportAs: 'ngsChipOption',\n imports: [\n AutoFocusDirective\n ],\n templateUrl: '../chip/chip.html',\n styleUrl: '../chip/chip.scss',\n providers: [\n {\n provide: Chip,\n useExisting: forwardRef(() => ChipOption)\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-chip ngs-chip-option',\n '[class.ngs-chip-selected]': 'isSelected',\n '[class.ngs-chip-disabled]': 'disabled()',\n '[class.ngs-chip-filled]': 'appearance() === \"filled\"',\n '[class.ngs-chip-outlined]': 'appearance() === \"outlined\"',\n '[attr.aria-selected]': 'isSelected',\n '[attr.aria-disabled]': 'disabled()',\n '(click)': 'toggleSelected()',\n },\n})\nexport class ChipOption extends Chip {\n selected = input(false, { transform: booleanAttribute });\n private readonly _internalSelected = signal(false);\n\n constructor() {\n super();\n effect(() => {\n this._setSelected(this.selected());\n });\n }\n\n get isSelected(): boolean {\n return this._internalSelected();\n }\n _setSelected(value: boolean) {\n this._internalSelected.set(value);\n }\n\n readonly selectionChange = output<{\n source: ChipOption;\n selected: boolean;\n }>();\n\n toggleSelected(): void {\n if (!this.disabled()) {\n this._setSelected(!this.isSelected);\n this.selectionChange.emit({ source: this, selected: this.isSelected });\n }\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n input,\n forwardRef,\n booleanAttribute,\n AfterContentInit,\n contentChildren,\n computed,\n signal,\n OnDestroy\n} from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { ChipOption } from '../chip-option/chip-option';\n\n@Component({\n selector: 'ngs-chip-listbox',\n templateUrl: './chip-listbox.html',\n styleUrl: './chip-listbox.scss',\n host: {\n 'class': 'ngs-chip-listbox ngs-chip-set',\n 'role': 'listbox',\n '[attr.aria-multiselectable]': 'multiple()',\n '[attr.aria-disabled]': 'isDisabled()',\n },\n standalone: true,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ChipListbox),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class ChipListbox implements ControlValueAccessor, AfterContentInit, OnDestroy {\n multiple = input(false, { transform: booleanAttribute });\n disabled = input(false, { transform: booleanAttribute });\n private readonly _disabledByControl = signal(false);\n readonly isDisabled = computed(() => this.disabled() || this._disabledByControl());\n\n readonly _chips = contentChildren(ChipOption, { descendants: true });\n private readonly _chips$ = toObservable(this._chips);\n private _chipSelectionSubscriptions: Array<{ unsubscribe(): void }> = [];\n private _syncTimeout: ReturnType<typeof setTimeout> | null = null;\n\n private _value: any;\n onChange: (value: any) => void = () => {};\n onTouched: () => void = () => {};\n\n get value(): any {\n return this._value;\n }\n\n set value(value: any) {\n this._value = value;\n this._syncChipsAsync();\n }\n\n writeValue(value: any): void {\n this._value = value;\n this._syncChipsAsync();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabledByControl.set(isDisabled);\n }\n\n ngAfterContentInit() {\n this._chips$.subscribe(() => {\n this._syncChipsAsync();\n });\n\n if (this._value === undefined) {\n const selectedChips = this._chips().filter(chip => chip.isSelected);\n\n if (this.multiple()) {\n this._value = selectedChips.map(chip => chip.value() !== undefined ? chip.value() : chip);\n } else {\n const lastSelected = selectedChips[selectedChips.length - 1];\n this._value = lastSelected ? (lastSelected.value() !== undefined ? lastSelected.value() : lastSelected) : undefined;\n }\n }\n\n this._syncChipsAsync();\n }\n\n ngOnDestroy(): void {\n if (this._syncTimeout !== null) {\n clearTimeout(this._syncTimeout);\n this._syncTimeout = null;\n }\n\n this._clearChipSelectionSubscriptions();\n }\n\n private _onSelectionChange(chip: ChipOption): void {\n if (this.isDisabled()) {\n this._updateChips();\n return;\n }\n\n const value = chip.value() !== undefined ? chip.value() : chip;\n\n if (this.multiple()) {\n if (!Array.isArray(this._value)) {\n this._value = [];\n }\n const index = this._value.indexOf(value);\n if (chip.isSelected) {\n if (index < 0) {\n this._value.push(value);\n }\n } else {\n if (index >= 0) {\n this._value.splice(index, 1);\n }\n }\n this._value = [...this._value];\n } else {\n this._chips().forEach(c => {\n if (c !== chip) {\n c._setSelected(false);\n }\n });\n this._value = chip.isSelected ? value : null;\n }\n this.onChange(this._value);\n this.onTouched();\n }\n\n private _watchChips(): void {\n this._clearChipSelectionSubscriptions();\n\n this._chipSelectionSubscriptions = this._chips().map(chip =>\n chip.selectionChange.subscribe(() => {\n this._onSelectionChange(chip);\n })\n );\n }\n\n private _clearChipSelectionSubscriptions(): void {\n this._chipSelectionSubscriptions.forEach(subscription => subscription.unsubscribe());\n this._chipSelectionSubscriptions = [];\n }\n\n private _syncChipsAsync(): void {\n if (this._syncTimeout !== null) {\n clearTimeout(this._syncTimeout);\n }\n\n this._syncTimeout = setTimeout(() => {\n this._syncTimeout = null;\n this._watchChips();\n this._updateChips();\n });\n }\n\n private _updateChips(): void {\n const _chips = this._chips();\n if (!_chips || this._value === undefined) {\n return;\n }\n\n _chips.forEach(chip => {\n const value = chip.value() !== undefined ? chip.value() : chip;\n\n if (this.multiple()) {\n chip._setSelected(Array.isArray(this._value) && this._value.includes(value));\n } else {\n chip._setSelected(this._value === value);\n }\n });\n }\n}\n","<ng-content />\n","import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'ngs-chip-set',\n templateUrl: './chip-set.html',\n styleUrl: './chip-set.scss',\n host: {\n 'class': 'ngs-chip-set',\n 'role': 'presentation',\n },\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChipSet {\n}\n","<ng-content />\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'ngs-chip-avatar, [ngsChipAvatar]',\n exportAs: 'ngsChipAvatar',\n host: {\n 'class': 'ngs-chip-avatar',\n },\n})\nexport class ChipAvatar {}\n","import { Directive, inject } from '@angular/core';\nimport { ChipRow } from './chip-row/chip-row';\n\n@Directive({\n selector: 'ngs-chip-edit, [ngsChipEdit]',\n host: {\n 'class': 'ngs-chip-edit',\n '(click)': '_handleClick($event)',\n },\n standalone: true,\n})\nexport class ChipEdit {\n protected _parentChip = inject(ChipRow);\n\n _handleClick(event: Event): void {\n if (!this._parentChip.disabled() && this._parentChip.editable()) {\n this._parentChip._startEditing();\n event.stopPropagation();\n }\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { Chip } from './chip/chip';\n\n@Directive({\n selector: 'ngs-chip-remove, [ngsChipRemove]',\n host: {\n 'class': 'ngs-chip-remove',\n '(click)': '_handleClick($event)',\n },\n standalone: true,\n})\nexport class ChipRemove {\n protected _parentChip = inject(Chip);\n\n _handleClick(event: Event): void {\n if (!this._parentChip.disabled()) {\n this._parentChip.remove();\n event.stopPropagation();\n }\n }\n}\n","import {\n booleanAttribute,\n Directive,\n ElementRef,\n inject,\n input,\n signal,\n DoCheck,\n output\n} from '@angular/core';\nimport { ChipGrid } from './chip-grid/chip-grid';\n\nexport interface ChipInputEvent {\n readonly chipInput: ChipInput;\n readonly value: string;\n readonly input: HTMLInputElement;\n}\n\n@Directive({\n selector: 'input[ngsChipInputFor]',\n standalone: true,\n host: {\n 'class': 'ngs-chip-input',\n '(input)': '_onInput()',\n '(keydown)': '_onKeydown($event)',\n '(blur)': '_onBlur()',\n '(focus)': '_onFocus()',\n }\n})\nexport class ChipInput implements DoCheck {\n private _elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\n\n set chipGrid(value: ChipGrid) {\n this._chipGrid = value;\n this._chipGrid?._registerInput(this);\n this._chipGrid?._setInputEmpty(!this._elementRef.nativeElement.value);\n }\n get chipGrid() {\n return this._chipGrid;\n }\n private _chipGrid: ChipGrid;\n\n chipGridInput = input<ChipGrid | undefined>(undefined, { alias: 'ngsChipInputFor' });\n\n chipInputSeparatorKeyCodes = input<readonly number[] | ReadonlySet<number>>(undefined, { alias: 'ngsChipInputSeparatorKeyCodes' });\n\n chipInputAddOnBlur = input(false, { alias: 'ngsChipInputAddOnBlur', transform: booleanAttribute });\n\n readonly chipInputTokenEnd = output<ChipInputEvent>();\n\n protected readonly _value = signal('');\n protected readonly _focused = signal(false);\n\n constructor() { }\n\n ngDoCheck() {\n if (this.chipGridInput() && this.chipGridInput() !== this._chipGrid) {\n this.chipGrid = this.chipGridInput()!;\n }\n if (this._value() !== this._elementRef.nativeElement.value) {\n this._onInput();\n }\n }\n\n _onInput() {\n const value = this._elementRef.nativeElement.value;\n this._value.set(value);\n this.chipGrid?._setInputEmpty(!value);\n }\n\n _onKeydown(event: any) {\n if (event.defaultPrevented) {\n return;\n }\n const separatorKeyCodes = this.chipInputSeparatorKeyCodes();\n const isSeparatorKey = Array.isArray(separatorKeyCodes)\n ? separatorKeyCodes.includes(event.keyCode)\n : !!separatorKeyCodes && 'has' in separatorKeyCodes && separatorKeyCodes.has(event.keyCode);\n\n if (isSeparatorKey) {\n this.chipInputTokenEnd.emit({\n chipInput: this,\n value: this._elementRef.nativeElement.value,\n input: this._elementRef.nativeElement\n });\n event.preventDefault();\n }\n }\n\n _onBlur() {\n this._focused.set(false);\n if (this.chipInputAddOnBlur()) {\n this.chipInputTokenEnd.emit({\n chipInput: this,\n value: this._elementRef.nativeElement.value,\n input: this._elementRef.nativeElement\n });\n }\n this.chipGrid?._setInputFocused(false);\n }\n\n _onFocus() {\n this._focused.set(true);\n this.chipGrid?._setInputFocused(true);\n }\n\n clear() {\n this._elementRef.nativeElement.value = '';\n this._value.set('');\n this.chipGrid?._setInputEmpty(true);\n }\n\n focus() {\n this._elementRef.nativeElement.focus();\n }\n}\n","import { Directive, inject } from '@angular/core';\n\n@Directive({\n selector: '[ngsChipControl]',\n host: {\n 'class': 'ngs-chip-control',\n }\n})\nexport class ChipControl {\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'ngs-chip-shape, [ngsChipShape]',\n exportAs: 'ngsChipShape',\n host: {\n 'class': 'ngs-chip-shape',\n },\n})\nexport class ChipShape {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ngstarter-ui/components",
3
3
  "description": "NgStarter - AI-friendly Enterprise Angular UI Components and Admin Panel",
4
- "version": "21.0.20",
4
+ "version": "21.0.21",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/elementarlabsdev/ngstarter.git"
@@ -128,14 +128,12 @@ declare class BottomSheet implements OnDestroy {
128
128
  * @docs-private
129
129
  */
130
130
  declare class BottomSheetContainer extends CdkDialogContainer implements OnDestroy {
131
- private _breakpointSubscription;
132
131
  /** The state of the bottom sheet animations. */
133
132
  _animationState: 'void' | 'visible' | 'hidden';
134
133
  /** Emits whenever the state of the animation changes. */
135
134
  _animationStateChanged: EventEmitter<any>;
136
135
  /** Whether the component has been destroyed. */
137
136
  private _destroyed;
138
- constructor();
139
137
  /** Begin animation of bottom sheet entrance into view. */
140
138
  enter(): void;
141
139
  /** Begin animation of the bottom sheet exiting from view. */
@@ -143,7 +141,7 @@ declare class BottomSheetContainer extends CdkDialogContainer implements OnDestr
143
141
  ngOnDestroy(): void;
144
142
  _onTransitionEnd(event: TransitionEvent): void;
145
143
  static ɵfac: i0.ɵɵFactoryDeclaration<BottomSheetContainer, never>;
146
- static ɵcmp: i0.ɵɵComponentDeclaration<BottomSheetContainer, "ngs-bottom-sheet-container", never, {}, {}, never, never, true, never>;
144
+ static ɵcmp: i0.ɵɵComponentDeclaration<BottomSheetContainer, "ngs-bottom-sheet-container", ["ngsBottomSheetContainer"], {}, {}, never, never, true, never>;
147
145
  }
148
146
 
149
147
  export { BOTTOM_SHEET_DATA, BOTTOM_SHEET_DEFAULT_OPTIONS, BottomSheet, BottomSheetConfig, BottomSheetContainer, BottomSheetRef };