{"version":3,"file":"clr-angular-utils.mjs","sources":["../../../projects/angular/utils/forms/validation.ts","../../../projects/angular/utils/dom-adapter/dom-adapter.ts","../../../projects/angular/utils/dom-adapter/dom-adapter.mock.ts","../../../projects/angular/utils/outside-click/outside-click.ts","../../../projects/angular/utils/outside-click/outside-click.module.ts","../../../projects/angular/utils/outside-click/index.ts","../../../projects/angular/utils/template-ref/template-ref-container.ts","../../../projects/angular/utils/template-ref/template-ref.module.ts","../../../projects/angular/utils/template-ref/index.ts","../../../projects/angular/utils/breakpoints/breakpoints.ts","../../../projects/angular/utils/host-wrapping/empty-anchor.ts","../../../projects/angular/utils/host-wrapping/host-wrapper.ts","../../../projects/angular/utils/host-wrapping/host-wrapping.module.ts","../../../projects/angular/utils/host-wrapping/index.ts","../../../projects/angular/utils/assert/assert.helpers.ts","../../../projects/angular/utils/component/is-boolean-attribute-set.ts","../../../projects/angular/utils/animations/constants.ts","../../../projects/angular/utils/animations/collapse/collapse.ts","../../../projects/angular/utils/animations/collapse/index.ts","../../../projects/angular/utils/animations/expandable-animation/base-expandable-animation.ts","../../../projects/angular/utils/animations/expandable-animation/expandable-animation.ts","../../../projects/angular/utils/animations/expandable-animation/expandable-animation.directive.ts","../../../projects/angular/utils/animations/expandable-animation/expandable-animation.module.ts","../../../projects/angular/utils/animations/expandable-animation/index.ts","../../../projects/angular/utils/animations/fade/fade.ts","../../../projects/angular/utils/animations/fade/index.ts","../../../projects/angular/utils/animations/fade-slide/fade-slide.ts","../../../projects/angular/utils/animations/fade-slide/index.ts","../../../projects/angular/utils/animations/slide/slide.ts","../../../projects/angular/utils/animations/slide/index.ts","../../../projects/angular/utils/animations/index.ts","../../../projects/angular/utils/i18n/common-strings.default.ts","../../../projects/angular/utils/i18n/common-strings.service.ts","../../../projects/angular/utils/i18n/common-strings.interface.ts","../../../projects/angular/utils/i18n/index.ts","../../../projects/angular/utils/focus/focus-on-view-init/focus-on-view-init.provider.ts","../../../projects/angular/utils/focus/focus-on-view-init/focus-on-view-init.ts","../../../projects/angular/utils/focus/focus-on-view-init/focus-on-view-init.module.ts","../../../projects/angular/utils/focus/focus-on-view-init/index.ts","../../../projects/angular/utils/focus/focus-trap/standalone-cdk-trap-focus.directive.ts","../../../projects/angular/utils/focus/focus-trap/index.ts","../../../projects/angular/utils/focus/key-focus/enums/focus-direction.enum.ts","../../../projects/angular/utils/focus/key-focus/key-focus-item.ts","../../../projects/angular/utils/enums/keys.enum.ts","../../../projects/angular/utils/focus/key-focus/util.ts","../../../projects/angular/utils/focus/key-focus/key-focus.ts","../../../projects/angular/utils/focus/key-focus/roving-tabindex.ts","../../../projects/angular/utils/focus/key-focus/key-focus.module.ts","../../../projects/angular/utils/focus/key-focus/index.ts","../../../projects/angular/utils/focus/focusable-item/focusable-item.ts","../../../projects/angular/utils/focus/focusable-item/focusable-item.mock.ts","../../../projects/angular/utils/id-generator/id-generator.service.ts","../../../projects/angular/utils/focus/focusable-item/basic-focusable-item.service.ts","../../../projects/angular/utils/focus/focusable-item/custom-focusable-item-provider.ts","../../../projects/angular/utils/focus/focusable-item/linkers.ts","../../../projects/angular/utils/focus/wrap-observable.ts","../../../projects/angular/utils/focus/arrow-key-direction.enum.ts","../../../projects/angular/utils/focus/focus.service.ts","../../../projects/angular/utils/scrolling/scrolling-service.ts","../../../projects/angular/utils/cdk/cdk-drag.module.ts","../../../projects/angular/utils/cdk/cdk-trap-focus.module.ts","../../../projects/angular/utils/destroy/destroy.service.ts","../../../projects/angular/utils/destroy/index.ts","../../../projects/angular/utils/types/heading-level.ts","../../../projects/angular/utils/enums/position.enum.ts","../../../projects/angular/utils/chocolate/willy-wonka.ts","../../../projects/angular/utils/chocolate/oompa-loompa.ts","../../../projects/angular/utils/index.ts","../../../projects/angular/utils/clr-angular-utils.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { FormControl, FormGroup } from '@angular/forms';\n\nexport function triggerAllFormControlValidation(formGroup: FormGroup) {\n  Object.keys(formGroup.controls).forEach(field => {\n    const control = formGroup.get(field);\n    if (control instanceof FormControl) {\n      control.markAsTouched();\n      control.markAsDirty();\n      control.updateValueAndValidity();\n    } else if (control instanceof FormGroup) {\n      triggerAllFormControlValidation(control);\n    }\n  });\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\n/*\n * If we someday want to be able to render the datagrid in a webworker,\n * this is where we would test if we're in headless mode. Right now it's not testing anything, but any access\n * to native DOM elements' methods and properties in the Datagrid happens here.\n */\n\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class DomAdapter {\n  /* \n    We clone the element and take its measurements from outside the grid\n    so we don't trigger reflow for the whole datagrid.\n  */\n  userDefinedWidth(element: HTMLElement): number {\n    const clonedElement = element.cloneNode(true) as HTMLElement;\n    if (clonedElement.id) {\n      clonedElement.id = clonedElement.id + '-clone';\n    }\n    clonedElement.classList.add('datagrid-cell-width-zero');\n    document.body.appendChild(clonedElement);\n    const userDefinedWidth = this.clientRect(clonedElement).width;\n    clonedElement.remove();\n    return userDefinedWidth;\n  }\n\n  scrollBarWidth(element: any) {\n    return element.offsetWidth - element.clientWidth;\n  }\n\n  scrollWidth(element: any) {\n    return element.scrollWidth || 0;\n  }\n\n  computedHeight(element: any): number {\n    return parseInt(getComputedStyle(element).getPropertyValue('height'), 10);\n  }\n\n  clientRect(element: any): DOMRect {\n    const elementClientRect = element.getBoundingClientRect();\n    return {\n      top: parseInt(elementClientRect.top, 10),\n      bottom: parseInt(elementClientRect.bottom, 10),\n      left: parseInt(elementClientRect.left, 10),\n      right: parseInt(elementClientRect.right, 10),\n      width: parseInt(elementClientRect.width, 10),\n      height: parseInt(elementClientRect.height, 10),\n    } as DOMRect;\n  }\n\n  minWidth(element: any): number {\n    return parseInt(getComputedStyle(element).getPropertyValue('min-width'), 10);\n  }\n\n  focus(element: any): void {\n    element.focus();\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Injectable } from '@angular/core';\n\nimport { DomAdapter } from './dom-adapter';\n\n@Injectable()\nexport class MockDomAdapter extends DomAdapter {\n  _userDefinedWidth = 0;\n  _scrollBarWidth = 0;\n  _scrollWidth = 0;\n  _computedHeight = 0;\n\n  override userDefinedWidth(_element: any): number {\n    return this._userDefinedWidth;\n  }\n\n  override scrollBarWidth(_element: any) {\n    return this._scrollBarWidth;\n  }\n\n  override scrollWidth(_element: any) {\n    return this._scrollWidth;\n  }\n\n  override computedHeight(_element: any) {\n    return this._computedHeight;\n  }\n}\n\nexport const MOCK_DOM_ADAPTER_PROVIDER = {\n  provide: DomAdapter,\n  useClass: MockDomAdapter,\n};\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, ElementRef, EventEmitter, Input, NgZone, OnDestroy, Output, Renderer2 } from '@angular/core';\n\n@Directive({\n  selector: '[clrOutsideClick]',\n  standalone: false,\n})\nexport class OutsideClick implements OnDestroy {\n  @Input('clrStrict') strict = false;\n\n  @Output('clrOutsideClick') outsideClick = new EventEmitter<any>(false);\n\n  private documentClickListener: VoidFunction;\n\n  constructor(host: ElementRef<HTMLElement>, renderer: Renderer2, ngZone: NgZone) {\n    ngZone.runOutsideAngular(() => {\n      this.documentClickListener = renderer.listen('document', 'click', (event: MouseEvent) => {\n        // Compare the element in the DOM on which the mouse was clicked\n        // with the current actionMenu native HTML element.\n        if (host.nativeElement === event.target) {\n          return;\n        }\n\n        if (!this.strict && host.nativeElement.contains(event.target as HTMLElement)) {\n          return;\n        }\n\n        // We'll run change detection only if the click event actually happened outside of\n        // the host element.\n        ngZone.run(() => {\n          this.outsideClick.emit(event);\n        });\n      });\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.documentClickListener();\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule, Type } from '@angular/core';\n\nimport { OutsideClick } from './outside-click';\n\nexport const OUSTIDE_CLICK_DIRECTIVES: Type<any>[] = [OutsideClick];\n@NgModule({\n  imports: [CommonModule],\n  declarations: [OUSTIDE_CLICK_DIRECTIVES],\n  exports: [OUSTIDE_CLICK_DIRECTIVES],\n})\nexport class ClrOutsideClickModule {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './outside-click';\nexport * from './outside-click.module';\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n  template: `\n    <ng-template>\n      <ng-content></ng-content>\n    </ng-template>\n  `,\n  standalone: false,\n})\nexport class TemplateRefContainer {\n  @ViewChild(TemplateRef) template: TemplateRef<any>;\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TemplateRefContainer } from './template-ref-container';\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [TemplateRefContainer],\n  exports: [TemplateRefContainer],\n})\nexport class ClrTemplateRefModule {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './template-ref-container';\nexport * from './template-ref.module';\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\n/**\n * TODO:\n * Using core functions like:\n * - pluckPixelValue\n * - getCssPropertyValue\n *\n * to get the value of the design token.\n *\n * Note: Memoization/Cache usage possible.\n */\n\n// iPad mini screen width\n// http://stephen.io/mediaqueries/#iPadMini\nexport const DATEPICKER_ENABLE_BREAKPOINT = 768;\nexport const SMALL_BREAKPOINT = 576;\nexport const MEDIUM_BREAKPOINT = 768;\nexport const LARGE_BREAKPOINT = 992;\nexport const EXTRA_LARGE_BREAKPOINT = 1200;\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component } from '@angular/core';\n\n@Component({\n  template: '',\n  standalone: false,\n})\nexport class EmptyAnchor {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { ElementRef, InjectionToken, Injector, Type, ViewContainerRef } from '@angular/core';\n\nimport { EmptyAnchor } from './empty-anchor';\n\n/**\n * HostWrapper must be called in OnInit to ensure that the Views are ready. If its called in a constructor the view is\n * still undefined.\n */\nexport class HostWrapper<W> implements Injector {\n  private injector: Injector;\n\n  constructor(containerType: Type<W>, vcr: ViewContainerRef, index = 0) {\n    this.injector = vcr.injector;\n    // If the host is already wrapped, we don't do anything\n    if (!this.injector.get(containerType, null)) {\n      const el = this.injector.get(ElementRef);\n\n      // We need a new anchor, since we're projecting the current one.\n      vcr.createComponent(EmptyAnchor);\n      // Craft the element array based on what slot to use. Angular only uses the index to determine\n      // which ng-content to project into, so if you have more than one ng-content you'll need to set\n      // the index in the constructor appropriately\n      const element = [];\n      element[index] = [el.nativeElement];\n      // We're assuming only one projection slot, but in more complex cases we might want to provide\n      // a different array of projected elements.\n      const containerRef = vcr.createComponent(containerType, {\n        projectableNodes: element,\n      });\n      // We can now remove the useless anchor\n      vcr.remove(0);\n\n      // We keep the wrapper's injector to access the dependencies that weren't available before.\n      this.injector = containerRef.injector;\n    }\n  }\n\n  get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T): T {\n    return this.injector.get(token, notFoundValue);\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { NgModule } from '@angular/core';\n\nimport { EmptyAnchor } from './empty-anchor';\n\n/**\n * Internal module, please do not export!\n */\n@NgModule({\n  declarations: [EmptyAnchor],\n  exports: [EmptyAnchor],\n})\nexport class ClrHostWrappingModule {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './empty-anchor';\nexport * from './host-wrapper';\nexport * from './host-wrapping.module';\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport function assertNever(value: never) {\n  throw new Error(`Unhandled value: ${value}`);\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport function isBooleanAttributeSet(value: string | boolean): boolean {\n  // for null just return false no need to check anything\n  if (value === null) {\n    return false;\n  }\n  if (typeof value === 'string') {\n    // Empty string is valid, 'true' as string is also valid\n    return value.length >= 0;\n  }\n  // Boolean value will be read as it is, everything else is false\n  return typeof value === 'boolean' ? value : false;\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { animate, animation, style } from '@angular/animations';\n\nexport const defaultAnimationTiming = '0.2s ease-in-out';\nexport const defaultExpandAnimation = animation(\n  [style({ height: '{{ startHeight }}px' }), animate(defaultAnimationTiming, style({ height: '*' }))],\n  {\n    params: {\n      startHeight: 0, // default\n    },\n  }\n);\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { animate, AnimationMetadata, state, style, transition } from '@angular/animations';\n\nimport { defaultAnimationTiming } from '../constants';\n\nexport function collapse(): AnimationMetadata[] {\n  'use strict';\n  return [\n    state('true', style({ height: 0, 'overflow-y': 'hidden' })),\n    transition('true => false', [animate(defaultAnimationTiming, style({ height: '*', 'overflow-y': 'hidden' }))]),\n    transition('false => true', [style({ height: '*', 'overflow-y': 'hidden' }), animate(defaultAnimationTiming)]),\n  ];\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './collapse';\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, ElementRef, Renderer2 } from '@angular/core';\n\nimport { DomAdapter } from '../../dom-adapter/dom-adapter';\n\n@Directive()\nexport class BaseExpandableAnimation {\n  startHeight = 0;\n\n  constructor(\n    protected element: ElementRef<HTMLElement>,\n    protected domAdapter: DomAdapter,\n    protected renderer: Renderer2\n  ) {}\n\n  updateStartHeight() {\n    this.startHeight = this.domAdapter.computedHeight(this.element.nativeElement) || 0;\n  }\n\n  initAnimationEffects() {\n    this.renderer.setStyle(this.element.nativeElement, 'overflow', 'hidden');\n  }\n\n  cleanupAnimationEffects(cancelAnimations = false) {\n    this.renderer.removeStyle(this.element.nativeElement, 'overflow');\n\n    // A \"safe\" auto-update of the height ensuring basic OOTB user experience .\n    // Prone to small jumps in initial animation height if data was changed in the meantime, the window was resized, etc.\n    // For optimal behavior call manually updateStartHeight() from the parent component before initiating the update.\n    this.updateStartHeight();\n    if (cancelAnimations) {\n      this.cancelElementAnimations();\n    }\n  }\n\n  private cancelElementAnimations() {\n    this.element.nativeElement.getAnimations().forEach(animation => {\n      if (animation.playState === 'finished') {\n        animation.cancel(); // clears animation-style set on the element\n      }\n    });\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { AnimationEvent, transition, trigger, useAnimation } from '@angular/animations';\nimport { Component, HostBinding, HostListener, Input } from '@angular/core';\n\nimport { DomAdapter } from '../../dom-adapter/dom-adapter';\nimport { defaultExpandAnimation } from '../constants';\nimport { BaseExpandableAnimation } from './base-expandable-animation';\n\n@Component({\n  selector: 'clr-expandable-animation',\n  template: `<ng-content></ng-content>`,\n  styles: [\n    `\n      :host {\n        display: block;\n      }\n    `,\n  ],\n  animations: [trigger('expandAnimation', [transition('true <=> false', [useAnimation(defaultExpandAnimation)])])],\n  providers: [DomAdapter],\n  standalone: false,\n})\nexport class ClrExpandableAnimation extends BaseExpandableAnimation {\n  @Input() clrExpandTrigger = false;\n\n  @HostBinding('@expandAnimation')\n  get expandAnimation() {\n    return { value: this.clrExpandTrigger, params: { startHeight: this.startHeight } };\n  }\n\n  @HostListener('@expandAnimation.start', ['$event'])\n  animationStart(event: AnimationEvent) {\n    if (event.fromState !== 'void') {\n      this.initAnimationEffects();\n    }\n  }\n  @HostListener('@expandAnimation.done', ['$event'])\n  animationDone(event: AnimationEvent) {\n    if (event.fromState !== 'void') {\n      this.cleanupAnimationEffects();\n    }\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { AnimationBuilder, AnimationPlayer, useAnimation } from '@angular/animations';\nimport { Directive, ElementRef, Input, OnChanges, OnDestroy, Renderer2, SimpleChanges } from '@angular/core';\n\nimport { DomAdapter } from '../../dom-adapter/dom-adapter';\nimport { defaultExpandAnimation } from '../constants';\nimport { BaseExpandableAnimation } from './base-expandable-animation';\n\n@Directive({\n  selector: '[clrExpandableAnimation]',\n  providers: [DomAdapter],\n  host: {\n    '[class.clr-expandable-animation]': 'true',\n  },\n  standalone: false,\n})\nexport class ClrExpandableAnimationDirective extends BaseExpandableAnimation implements OnChanges, OnDestroy {\n  @Input('clrExpandableAnimation') expanded = false;\n\n  private player: AnimationPlayer;\n\n  constructor(\n    element: ElementRef<HTMLElement>,\n    domAdapter: DomAdapter,\n    renderer: Renderer2,\n    private builder: AnimationBuilder\n  ) {\n    super(element, domAdapter, renderer);\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['expanded'] && !changes['expanded'].firstChange) {\n      Promise.resolve().then(() => this.playAnimation());\n    }\n  }\n\n  ngOnDestroy() {\n    this.player?.destroy();\n  }\n\n  playAnimation() {\n    if (this.player) {\n      this.player.destroy();\n    }\n\n    this.player = this.builder\n      .build([useAnimation(defaultExpandAnimation, { params: { startHeight: this.startHeight } })])\n      .create(this.element.nativeElement);\n\n    this.player.onStart(() => this.initAnimationEffects());\n\n    this.player.onDone(() => this.cleanupAnimationEffects(true));\n\n    this.player.play();\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule, Type } from '@angular/core';\n\nimport { ClrExpandableAnimation } from './expandable-animation';\nimport { ClrExpandableAnimationDirective } from './expandable-animation.directive';\n\nexport const EXPANDABLE_ANIMATION_DIRECTIVES: Type<any>[] = [ClrExpandableAnimation, ClrExpandableAnimationDirective];\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [EXPANDABLE_ANIMATION_DIRECTIVES],\n  exports: [EXPANDABLE_ANIMATION_DIRECTIVES],\n})\nexport class ClrExpandableAnimationModule {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './base-expandable-animation';\nexport * from './expandable-animation';\nexport * from './expandable-animation.directive';\nexport * from './expandable-animation.module';\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { animate, AnimationMetadata, style, transition } from '@angular/animations';\n\nimport { defaultAnimationTiming } from '../constants';\n\nexport function fade(opacity = 1): AnimationMetadata[] {\n  return [\n    transition('void => *', [style({ opacity: 0 }), animate(defaultAnimationTiming, style({ opacity: opacity }))]),\n    transition('* => void', [animate(defaultAnimationTiming, style({ opacity: 0 }))]),\n  ];\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './fade';\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { animate, AnimationMetadata, style, transition } from '@angular/animations';\n\nimport { defaultAnimationTiming } from '../constants';\n\nexport function fadeSlide(direction: string): AnimationMetadata[] {\n  let transform: string = null;\n  if (direction === 'up') {\n    transform = 'translate(0, 25%)';\n  } else if (direction === 'down') {\n    transform = 'translate(0, -25%)';\n  } else if (direction === 'left') {\n    transform = 'translate(25%, 0)';\n  } else if (direction === 'right') {\n    transform = 'translate(-25%, 0)';\n  } else {\n    throw new Error('Unknown direction ' + direction + ' for slide animation.');\n  }\n  return [\n    transition('void => *', [style({ opacity: 0, transform: transform }), animate(defaultAnimationTiming)]),\n    transition('* => void', [animate(defaultAnimationTiming, style({ opacity: 0, transform: transform }))]),\n  ];\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './fade-slide';\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { animate, AnimationMetadata, style, transition } from '@angular/animations';\n\nimport { defaultAnimationTiming } from '../constants';\n\nexport function slide(direction: string): AnimationMetadata[] {\n  let transform: string = null;\n  if (direction === 'up') {\n    transform = 'translate(0, 25%)';\n  } else if (direction === 'down') {\n    transform = 'translate(0, -25%)';\n  } else if (direction === 'left') {\n    transform = 'translate(25%, 0)';\n  } else if (direction === 'right') {\n    transform = 'translate(-25%, 0)';\n  } else {\n    throw new Error('Unknown direction ' + direction + ' for slide animation.');\n  }\n  return [\n    transition('void => *', [style({ transform: transform }), animate(defaultAnimationTiming)]),\n    transition('* => void', [animate(defaultAnimationTiming, style({ transform: transform }))]),\n  ];\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './slide';\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './constants';\nexport * from './collapse/index';\nexport * from './expandable-animation/index';\nexport * from './fade/index';\nexport * from './fade-slide/index';\nexport * from './slide/index';\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { ClrCommonStrings } from './common-strings.interface';\n\nexport const commonStringsDefault: ClrCommonStrings = {\n  open: 'Open',\n  close: 'Close',\n  show: 'Show',\n  hide: 'Hide',\n  apply: 'Apply',\n  cancel: 'Cancel',\n  expand: 'Expand',\n  collapse: 'Collapse',\n  more: 'More',\n  select: 'Select',\n  selectAll: 'Select All',\n  previous: 'Previous',\n  next: 'Next',\n  current: 'Jump to current',\n  info: 'Info',\n  success: 'Success',\n  warning: 'Warning',\n  danger: 'Error',\n  neutral: 'Neutral',\n  unknown: 'Unknown',\n  rowActions: 'Available actions',\n  pickColumns: 'Manage Columns',\n  showColumns: 'Show Columns',\n  sortColumn: 'Sort Column',\n  firstPage: 'First Page',\n  lastPage: 'Last Page',\n  nextPage: 'Next Page',\n  previousPage: 'Previous Page',\n  currentPage: 'Current Page',\n  totalPages: 'Total Pages',\n  filterItems: 'Filter items',\n  minValue: 'Min value',\n  maxValue: 'Max value',\n  modalContentStart: 'Beginning of Modal Content',\n  modalContentEnd: 'End of Modal Content',\n  sidePanelPin: 'Pin Side Panel',\n  showColumnsMenuDescription: 'Show or hide columns menu',\n  allColumnsSelected: 'All columns selected',\n  signpostToggle: 'Signpost Toggle',\n  signpostClose: 'Close',\n  loading: 'Loading',\n  // Datagrid\n  detailPaneStart: 'Start of row details',\n  detailPaneEnd: 'End of row details',\n  singleSelectionAriaLabel: 'Single selection header',\n  singleActionableAriaLabel: 'Single actionable header',\n  detailExpandableAriaLabel: 'Toggle more row content',\n  datagridFilterAriaLabel: '{COLUMN} filter',\n  datagridFilterLabel: '{COLUMN} filter',\n  datagridFilterDialogAriaLabel: 'Filter dialog',\n  columnSeparatorAriaLabel: 'Column resize handle',\n  columnSeparatorDescription: 'Use left or right key to resize the column',\n  fromLabel: 'From',\n  toLabel: 'To',\n  // Alert\n  alertCloseButtonAriaLabel: 'Close alert',\n  alertNextAlertAriaLabel: 'Next alert message, {CURRENT} of {COUNT}',\n  alertPreviousAlertAriaLabel: 'Previous alert message, {CURRENT} of {COUNT}',\n  // Date Picker\n  datepickerDialogLabel: 'Choose date',\n  datepickerToggleChooseDateLabel: 'Choose date',\n  datepickerToggleChangeDateLabel: 'Change date, {SELECTED_DATE}',\n  datepickerPreviousMonth: 'Previous month',\n  datepickerCurrentMonth: 'Current month',\n  datepickerNextMonth: 'Next month',\n  datepickerPreviousDecade: 'Previous decade',\n  datepickerNextDecade: 'Next decade',\n  datepickerCurrentDecade: 'Current decade',\n  datepickerSelectMonthText: 'Select month, the current month is {CALENDAR_MONTH}',\n  datepickerSelectYearText: 'Select year, the current year is {CALENDAR_YEAR}',\n  datepickerSelectedLabel: '{FULL_DATE} - Selected',\n  // Stack View\n  stackViewChanged: 'Value changed.',\n  // Responsive Nav\n  responsiveNavToggleOpen: 'Open navigation menu',\n  responsiveNavToggleClose: 'Close navigation menu',\n  responsiveNavOverflowOpen: 'Open navigation overflow menu',\n  responsiveNavOverflowClose: 'Close navigation overflow menu',\n  //Vertical Nav\n  verticalNavToggle: 'Toggle vertical navigation',\n  // Timeline steps\n  timelineStepNotStarted: 'Not started',\n  timelineStepCurrent: 'Current',\n  timelineStepSuccess: 'Completed',\n  timelineStepError: 'Error',\n  timelineStepProcessing: 'In progress',\n  // Combobox\n  comboboxDelete: 'Delete selected option',\n  comboboxSearching: 'Searching for matches for \"{INPUT}\"',\n  comboboxSelection: 'Selection',\n  comboboxSelected: 'Selected',\n  comboboxNoResults: 'No results',\n  comboboxOpen: 'Show options',\n  comboboxSelectAll: 'Select All',\n  comboboxUnselectAll: 'Unselect All',\n  comboboxShowAll: 'Show all {ITEMS} selected',\n  comboboxAllSelected: 'All {ITEMS} selected',\n  comboboxShowLess: 'Show less',\n  // Datagrid expandable rows\n  datagridExpandableBeginningOf: 'Beginning of',\n  datagridExpandableEndOf: 'End of',\n  datagridExpandableRowContent: 'Expandable row content',\n  datagridExpandableRowsHelperText: `Screen reader table commands may not work for viewing expanded content, please use your screen reader's browse mode to read the content exposed by this button`,\n  // Wizard\n  wizardStep: 'Step',\n  wizardStepCurrent: 'Current',\n  wizardStepSuccess: 'Completed',\n  wizardStepError: 'Error',\n  wizardStepnavAriaLabel: 'Wizard steps',\n\n  /**\n   * Password Input\n   * Screen-reader text for the hide/show password field button\n   */\n  passwordHide: 'Hide password for {LABEL}',\n  passwordShow: 'Show password for {LABEL}',\n\n  /**\n   * Datagrid footer; sr-only text after the number of selected rows.\n   */\n  selectedRows: 'Selected rows',\n\n  // Accordion/Stepper\n  stepComplete: 'Step {STEP} complete',\n  stepError: 'Error in step {STEP}',\n\n  // File input\n  browse: 'Browse',\n  fileCount: '{COUNT} files',\n  clearFile: 'Clear {FILE}',\n  clearFiles: 'Clear {COUNT} files',\n\n  // Tree\n  selectedTreeNode: 'selected',\n  unselectedTreeNode: 'unselected',\n\n  // Breadcrumbs\n  breadcrumbsLabel: 'breadcrumbs',\n  expandBreadcrumbsLabel: 'Expand breadcrumbs',\n};\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Injectable } from '@angular/core';\n\nimport { commonStringsDefault } from './common-strings.default';\nimport { ClrCommonStrings } from './common-strings.interface';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ClrCommonStringsService {\n  private _strings = commonStringsDefault;\n\n  /**\n   * Access to all of the keys as strings\n   */\n  get keys(): Readonly<ClrCommonStrings> {\n    return this._strings;\n  }\n\n  /**\n   * Allows you to pass in new overrides for localization\n   */\n  localize(overrides: Partial<ClrCommonStrings>) {\n    this._strings = { ...this._strings, ...overrides };\n  }\n\n  /**\n   * Parse a string with a set of tokens to replace\n   */\n  parse(source: string, tokens: { [key: string]: string } = {}) {\n    const names = Object.keys(tokens);\n    let output = source;\n    if (names.length) {\n      names.forEach(name => {\n        output = output.replace(`{${name}}`, tokens[name]);\n      });\n    }\n    return output;\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport interface ClrCommonStrings {\n  /**\n   * Open button\n   */\n  open: string;\n  /**\n   * Close button\n   */\n  close: string;\n  /**\n   * Show button\n   */\n  show: string;\n  /**\n   * Hide button\n   */\n  hide: string;\n  /**\n   * Apply button\n   */\n  apply: string;\n  /**\n   * Cancel button\n   */\n  cancel: string;\n  /**\n   * Expandable components: expand caret\n   */\n  expand: string;\n  /**\n   * Expandable components: collapse caret\n   */\n  collapse: string;\n  /**\n   * Overflow menus: ellipsis button\n   */\n  more: string;\n  /**\n   * Selectable components: checkbox or radio\n   */\n  select: string;\n  /**\n   * Selectable components: checkbox to select all\n   */\n  selectAll: string;\n  /**\n   * Pagination: previous button\n   */\n  previous: string;\n  /**\n   * Pagination: next button\n   */\n  next: string;\n  /**\n   * Pagination: go to current\n   */\n  current: string;\n  /**\n   * Alert levels: info\n   */\n  info: string;\n  /**\n   * Alert levels: success\n   */\n  success: string;\n  /**\n   * Alert levels: warning\n   */\n  warning: string;\n  /**\n   * Alert levels: danger\n   */\n  danger: string;\n  /**\n   * Alert levels: neutral\n   */\n  neutral: string;\n  /**\n   * Alert levels: unknown\n   */\n  unknown: string;\n  /**\n   * Datagrid: row actions\n   */\n  rowActions: string;\n  /**\n   * Datagrid: pick columns\n   */\n  pickColumns: string;\n  /**\n   * Datagrid: show columns\n   */\n  showColumns: string;\n  /**\n   * Datagrid: sort of columns\n   */\n  sortColumn: string;\n  /**\n   * Datagrid: first page\n   */\n  firstPage: string;\n  /**\n   * Datagrid: last page\n   */\n  lastPage: string;\n  /**\n   * Datagrid: next page\n   */\n  nextPage: string;\n  /**\n   * Datagrid: previous page\n   */\n  previousPage: string;\n  /**\n   * Datagrid: previous page\n   */\n  currentPage: string;\n  /**\n   * Datagird: total pages\n   */\n  totalPages: string;\n  /**\n   * Datagrid string filter: filter items\n   */\n  filterItems: string;\n  /**\n   * Datagrid numeric filter: min\n   */\n  minValue: string;\n  /**\n   * Datagrid numeric filter: max\n   */\n  maxValue: string;\n  /**\n   * Datagrid filter toggle button\n   */\n  datagridFilterAriaLabel: string;\n  /**\n   * Datagrid filter label\n   */\n  datagridFilterLabel: string;\n  /**\n   * Datagrid filter dialog\n   */\n  datagridFilterDialogAriaLabel: string;\n  /**\n   * Datagrid column handler string\n   */\n  columnSeparatorAriaLabel: string;\n  /**\n   * Datagrid column resize handler string\n   */\n  columnSeparatorDescription: string;\n  /**\n   * Numeric filter from label string\n   */\n  fromLabel: string;\n  /**\n   * Numeric filter to label string\n   */\n  toLabel: string;\n  /**\n   * Modal start of content\n   */\n  modalContentStart: string;\n  /**\n   * Modal end of content\n   */\n  modalContentEnd: string;\n\n  /**\n   * Side Panel pin dialog\n   */\n  sidePanelPin: string;\n\n  /**\n   * Datagrid Show columns menu description\n   */\n  showColumnsMenuDescription: string;\n  /**\n   * Datagrid Show columns / All columns selected confirmation\n   */\n  allColumnsSelected: string;\n  /**\n   * Signpost Toggle Button\n   */\n  signpostToggle: string;\n  /**\n   * Signpost Close Button\n   * (used inside signpost content components)\n   */\n  signpostClose: string;\n  /*\n   * Loaders/Spinners\n   */\n  loading: string;\n  /**\n   * Datagrid: detail pane start content for screen reader\n   */\n  detailPaneStart: string;\n  /**\n   * Datagrid: detail pane end content for screen reader\n   */\n  detailPaneEnd: string;\n  /**\n   * Datagrid: Single selection header\n   */\n  singleSelectionAriaLabel: string;\n\n  /**\n   * Datagrid: Single actionable header\n   */\n  singleActionableAriaLabel: string;\n\n  /**\n   * Datagrid: Expandable row\n   */\n  detailExpandableAriaLabel: string;\n\n  /**\n   * Alert: Close alert button\n   */\n  alertCloseButtonAriaLabel: string;\n\n  /**\n   * Alert: Next Alert button\n   */\n  alertNextAlertAriaLabel: string;\n\n  /**\n   * Alert: Previous Alert button\n   */\n  alertPreviousAlertAriaLabel: string;\n\n  /**\n   * Datepicker UI labels\n   */\n  datepickerDialogLabel: string;\n  datepickerToggleChooseDateLabel: string;\n  datepickerToggleChangeDateLabel: string;\n  datepickerPreviousMonth: string;\n  datepickerCurrentMonth: string;\n  datepickerNextMonth: string;\n  datepickerPreviousDecade: string;\n  datepickerNextDecade: string;\n  datepickerCurrentDecade: string;\n  datepickerSelectMonthText: string;\n  datepickerSelectYearText: string;\n  datepickerSelectedLabel: string;\n  /**\n   * Stack View: Record has changed\n   */\n  stackViewChanged: string;\n  // Responsive Nav\n  responsiveNavToggleOpen: string;\n  responsiveNavToggleClose: string;\n  responsiveNavOverflowOpen: string;\n  responsiveNavOverflowClose: string;\n  // Vertical Nav\n  verticalNavToggle: string;\n  /**\n   * Timeline Steps\n   */\n  timelineStepNotStarted: string;\n  timelineStepCurrent: string;\n  timelineStepSuccess: string;\n  timelineStepError: string;\n  timelineStepProcessing: string;\n\n  // Datagrid Helper text for expandable rows\n  datagridExpandableBeginningOf: string;\n  datagridExpandableEndOf: string;\n  datagridExpandableRowContent: string;\n  datagridExpandableRowsHelperText: string;\n\n  /**\n   * Combobox Searching Text\n   */\n  comboboxSearching: string;\n  comboboxDelete: string;\n  comboboxSelection: string;\n  comboboxSelected: string;\n  comboboxNoResults: string;\n  comboboxOpen: string;\n  comboboxSelectAll: string;\n  comboboxUnselectAll: string;\n  comboboxAllSelected: string;\n  comboboxShowAll: string;\n  comboboxShowLess: string;\n  /**\n   * Wizard: Screen-reader text for \"step\" (read before step number).\n   */\n  wizardStep: string;\n\n  /**\n   * Wizard: Screen-reader text for current step.\n   */\n  wizardStepCurrent: string;\n\n  /**\n   * Wizard: Screen-reader text for completed step.\n   */\n  wizardStepSuccess: string;\n\n  /**\n   * Wizard: Screen-reader text for step with error.\n   */\n  wizardStepError: string;\n\n  /**\n   * Wizard: Aria-label for the stepnav section.\n   */\n  wizardStepnavAriaLabel: string;\n\n  /**\n   * Password Input\n   * Screen-reader text for the hide/show password field button.\n   */\n  passwordHide: string;\n  passwordShow: string;\n\n  /**\n   * Datagrid footer; sr-only text after the number of selected rows.\n   */\n  selectedRows: string;\n\n  //Stepper: Screen-reader text for completed/failed step\n  stepComplete: string;\n  stepError: string;\n\n  // File input\n  browse: string;\n  fileCount: string;\n  clearFile: string;\n  clearFiles: string;\n\n  // Tree\n  selectedTreeNode: string;\n  unselectedTreeNode: string;\n\n  // Breadcrumbs\n  breadcrumbsLabel: string;\n  expandBreadcrumbsLabel: string;\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './common-strings.service';\nexport * from './common-strings.interface';\nexport * from './common-strings.default';\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { InjectionToken } from '@angular/core';\n\nexport const FOCUS_ON_VIEW_INIT = new InjectionToken<boolean>('FOCUS_ON_VIEW_INIT');\n\n// This provider holds the default value for clrFocusOnViewInit directive's isEnabled property.\n// So users can interject this provider and set their own value for this provider.\nexport const FOCUS_ON_VIEW_INIT_PROVIDER = {\n  provide: FOCUS_ON_VIEW_INIT,\n  useValue: true,\n};\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n  AfterViewInit,\n  Directive,\n  DOCUMENT,\n  ElementRef,\n  Inject,\n  Input,\n  NgZone,\n  OnDestroy,\n  PLATFORM_ID,\n  Renderer2,\n} from '@angular/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { FOCUS_ON_VIEW_INIT } from './focus-on-view-init.provider';\n\n/*  This directive is for guiding the document focus to the newly added content when its view is initialized\n    so that assistive technologies can read its content. */\n@Directive({\n  selector: '[clrFocusOnViewInit]',\n  standalone: false,\n})\nexport class ClrFocusOnViewInit implements AfterViewInit, OnDestroy {\n  private document: Document;\n  private directFocus = true; // true if the element gets focused without need to set tabindex;\n  private destroy$ = new Subject<void>();\n  private _isEnabled: boolean;\n\n  constructor(\n    private el: ElementRef<HTMLElement>,\n    @Inject(PLATFORM_ID) private platformId: any,\n    @Inject(FOCUS_ON_VIEW_INIT) private focusOnViewInit: boolean,\n    @Inject(DOCUMENT) document: any,\n    private renderer: Renderer2,\n    ngZone: NgZone\n  ) {\n    this._isEnabled = focusOnViewInit;\n\n    // Angular compiler doesn't understand the type Document\n    // when working out the metadata for injectable parameters,\n    // even though it understands the injection token DOCUMENT\n    // https://github.com/angular/angular/issues/20351\n    this.document = document;\n\n    ngZone.runOutsideAngular(() =>\n      fromEvent(el.nativeElement, 'focusout')\n        .pipe(takeUntil(this.destroy$))\n        .subscribe(() => {\n          if (!this.directFocus) {\n            // manually set attributes and styles should be removed\n            renderer.removeAttribute(el.nativeElement, 'tabindex');\n            renderer.setStyle(el.nativeElement, 'outline', null);\n          }\n        })\n    );\n  }\n\n  @Input('clrFocusOnViewInit')\n  set isEnabled(value: boolean | string) {\n    if (this.focusOnViewInit && typeof value === 'boolean') {\n      this._isEnabled = value;\n    }\n  }\n\n  ngAfterViewInit() {\n    this.focus();\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n  }\n\n  private focus() {\n    if (!isPlatformBrowser(this.platformId)) {\n      return;\n    }\n    if (!this._isEnabled) {\n      return;\n    }\n    if (this.document && this.document.activeElement !== this.el.nativeElement) {\n      this.el.nativeElement.focus();\n      if (this.document.activeElement !== this.el.nativeElement) {\n        // if it's not directly focused now, it means it was a non-interactive element\n        // so we need to give it a tabindex.\n        this.directFocus = false;\n        this.renderer.setAttribute(this.el.nativeElement, 'tabindex', '-1');\n        this.renderer.setStyle(this.el.nativeElement, 'outline', 'none');\n        this.el.nativeElement.focus();\n      }\n    }\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule, Type } from '@angular/core';\n\nimport { ClrFocusOnViewInit } from './focus-on-view-init';\nimport { FOCUS_ON_VIEW_INIT_PROVIDER } from './focus-on-view-init.provider';\n\nexport const FOCUS_ON_VIEW_INIT_DIRECTIVES: Type<any>[] = [ClrFocusOnViewInit];\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [FOCUS_ON_VIEW_INIT_DIRECTIVES],\n  providers: [FOCUS_ON_VIEW_INIT_PROVIDER],\n  exports: [FOCUS_ON_VIEW_INIT_DIRECTIVES],\n})\nexport class ClrFocusOnViewInitModule {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './focus-on-view-init';\nexport { FOCUS_ON_VIEW_INIT } from './focus-on-view-init.provider';\nexport * from './focus-on-view-init.module';\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { CdkTrapFocus, FocusTrapFactory } from '@angular/cdk/a11y';\nimport { Directive, DOCUMENT, ElementRef, Inject, Optional } from '@angular/core';\n\n@Directive({\n  standalone: true,\n})\nexport class ClrStandaloneCdkTrapFocus extends CdkTrapFocus {\n  /**\n   * Include the constructor to forward all the dependencies to the base class\n   * as a workaround to fix Angular \"ɵɵinvalidFactoryDep\" error after upgrading storybook\n   * https://github.com/storybookjs/storybook/issues/23534\n   */\n  constructor(\n    elementRef: ElementRef<HTMLElement>,\n    focusTrapFactory: FocusTrapFactory,\n    @Optional() @Inject(DOCUMENT) document: any\n  ) {\n    super(elementRef, focusTrapFactory, document);\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './standalone-cdk-trap-focus.directive';\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport enum ClrFocusDirection {\n  VERTICAL = 'vertical',\n  HORIZONTAL = 'horizontal',\n  BOTH = 'both',\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { isPlatformBrowser } from '@angular/common';\nimport { Directive, ElementRef, Inject, PLATFORM_ID } from '@angular/core';\n\n@Directive({\n  selector: '[clrKeyFocusItem]',\n  standalone: false,\n})\nexport class ClrKeyFocusItem {\n  constructor(\n    private elementRef: ElementRef<HTMLElement>,\n    @Inject(PLATFORM_ID) private platformId: any\n  ) {}\n\n  get nativeElement() {\n    return this.elementRef.nativeElement;\n  }\n\n  focus() {\n    if (isPlatformBrowser(this.platformId)) {\n      this.elementRef.nativeElement.focus();\n    }\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport enum Keys {\n  ArrowLeft = 'ArrowLeft',\n  ArrowUp = 'ArrowUp',\n  ArrowRight = 'ArrowRight',\n  ArrowDown = 'ArrowDown',\n  Backspace = 'Backspace',\n  Tab = 'Tab',\n  Enter = 'Enter',\n  Escape = 'Escape',\n  Space = 'Space',\n  Spacebar = ' ',\n  Home = 'Home',\n  End = 'End',\n  PageDown = 'PageDown',\n  PageUp = 'PageUp',\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Keys } from '../../enums/keys.enum';\n\nexport function preventArrowKeyScroll(event: KeyboardEvent) {\n  const key = event.key;\n\n  if (key === Keys.ArrowUp || key === Keys.ArrowDown || key === Keys.ArrowLeft || key === Keys.ArrowRight) {\n    // prevent element container scroll\n    // MDN references this is really the only way to prevent native browser interactions\n    // https://developer.mozilla.org/en-US/docs/Web/Accessibility/Keyboard-navigable_JavaScript_widgets\n    event.preventDefault();\n  }\n}\n\nexport function isKeyEitherLetterOrNumber(event: KeyboardEvent) {\n  const char = event.key;\n  // Only letter characters differ when they switch between lowercase and uppercase, whether it's an English or non-English letter.\n  return char.toLowerCase() !== char.toUpperCase() || (char >= '0' && char <= '9');\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport {\n  Component,\n  ContentChildren,\n  ElementRef,\n  EventEmitter,\n  HostListener,\n  Input,\n  Output,\n  QueryList,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { ClrFocusDirection } from './enums/focus-direction.enum';\nimport { FocusableItem } from './interfaces';\nimport { ClrKeyFocusItem } from './key-focus-item';\nimport { preventArrowKeyScroll } from './util';\nimport { Keys } from '../../enums/keys.enum';\n\n@Component({\n  selector: '[clrKeyFocus]',\n  template: '<ng-content></ng-content>',\n  standalone: false,\n})\nexport class ClrKeyFocus {\n  @Input('clrDirection') direction: ClrFocusDirection | string = ClrFocusDirection.VERTICAL;\n  @Input('clrFocusOnLoad') focusOnLoad = false;\n\n  @ContentChildren(ClrKeyFocusItem, { descendants: true }) protected clrKeyFocusItems: QueryList<ClrKeyFocusItem>;\n\n  protected subscriptions: Subscription[] = [];\n\n  @Output('clrFocusChange') private focusChange = new EventEmitter<number>();\n\n  private _current = 0;\n  private _focusableItems: Array<FocusableItem>;\n\n  constructor(private elementRef: ElementRef<HTMLElement>) {}\n\n  /**\n   * Here we use `any` cause any other type require reworking all methods below and a lot of more ifs.\n   * this method will only work with array with FocusableItems anyway so any other value will be ignored.\n   */\n  @Input('clrKeyFocus')\n  get focusableItems() {\n    if (this._focusableItems) {\n      return this._focusableItems;\n    } else if (this.clrKeyFocusItems) {\n      return this.clrKeyFocusItems.toArray();\n    }\n    return [];\n  }\n  set focusableItems(elements: Array<FocusableItem> | any) {\n    // We accept a list of focusable elements (HTMLElements or existing Directives) or auto query for clrKeyFocusItem\n    // We accept a list reference in the cases where we cannot use ContentChildren to query\n    // ContentChildren can be unavailable if content is projected outside the scope of the component (see tabs).\n    if (Array.isArray(elements) && elements.length) {\n      this._focusableItems = elements as Array<FocusableItem>;\n      this.initializeFocus();\n    }\n  }\n\n  get nativeElement(): HTMLElement {\n    return this.elementRef.nativeElement;\n  }\n\n  get current() {\n    return this._current;\n  }\n  set current(value: number) {\n    if (this._current !== value) {\n      this._current = value;\n    }\n  }\n\n  get currentItem() {\n    return this.focusableItems[this._current];\n  }\n\n  get currentItemElement(): HTMLElement {\n    return this.currentItem.nativeElement ? this.currentItem.nativeElement : (this.currentItem as HTMLElement);\n  }\n\n  ngAfterContentInit() {\n    this.subscriptions.push(this.listenForItemUpdates());\n    this.initializeFocus();\n  }\n\n  ngOnDestroy() {\n    this.subscriptions.forEach(s => s.unsubscribe());\n  }\n\n  @HostListener('keydown', ['$event'])\n  handleKeyboardEvent(event: KeyboardEvent) {\n    // Make sure event was originated on the current item's element\n    if (this.currentItemElement !== event.target) {\n      const position = this.getItemPosition(event.target as HTMLElement);\n      if (this.positionInRange(position)) {\n        this.current = position;\n      }\n    }\n\n    if (this.prevKeyPressed(event) && this.currentFocusIsNotFirstItem()) {\n      this.moveTo(this.current - 1);\n    } else if (this.nextKeyPressed(event) && this.currentFocusIsNotLastItem()) {\n      this.moveTo(this.current + 1);\n    } else if (event.code === Keys.Home) {\n      this.moveTo(0);\n    } else if (event.code === Keys.End) {\n      this.moveTo(this.focusableItems.length - 1);\n    }\n\n    preventArrowKeyScroll(event);\n  }\n\n  @HostListener('click', ['$event'])\n  setClickedItemCurrent(event: any) {\n    const position = this.getItemPosition(event.target);\n\n    if (position > -1) {\n      this.moveTo(position);\n    }\n  }\n\n  focusCurrent() {\n    this.currentItem.focus();\n    this.focusChange.emit(this._current);\n  }\n\n  moveTo(position: number) {\n    if (this.positionInRange(position)) {\n      this.current = position;\n      this.focusCurrent();\n    }\n  }\n\n  protected positionInRange(position: number) {\n    return position >= 0 && position < this.focusableItems.length;\n  }\n\n  protected currentFocusIsNotFirstItem() {\n    return this._current - 1 >= 0;\n  }\n\n  protected currentFocusIsNotLastItem() {\n    return this._current + 1 < this.focusableItems.length;\n  }\n\n  protected initializeFocus() {\n    if (this.focusableItems && this.focusableItems.length) {\n      // It is possible that the focus was on an element, whose index is no longer available.\n      // This can happen when some of the focusable elements are being removed.\n      // In such cases, the new focus is initialized on the last focusable element.\n      if (this._current >= this.focusableItems.length) {\n        this._current = this.focusableItems.length - 1;\n      }\n\n      if (this.focusOnLoad) {\n        this.currentItem.focus();\n        this.focusChange.emit();\n      }\n    }\n  }\n\n  protected nextKeyPressed(event: KeyboardEvent) {\n    switch (this.direction) {\n      case ClrFocusDirection.VERTICAL:\n        return event.key === Keys.ArrowDown;\n      case ClrFocusDirection.HORIZONTAL:\n        return event.key === Keys.ArrowRight;\n      case ClrFocusDirection.BOTH:\n        return event.key === Keys.ArrowDown || event.key === Keys.ArrowRight;\n      default:\n        return false;\n    }\n  }\n\n  protected prevKeyPressed(event: KeyboardEvent) {\n    switch (this.direction) {\n      case ClrFocusDirection.VERTICAL:\n        return event.key === Keys.ArrowUp;\n      case ClrFocusDirection.HORIZONTAL:\n        return event.key === Keys.ArrowLeft;\n      case ClrFocusDirection.BOTH:\n        return event.key === Keys.ArrowUp || event.key === Keys.ArrowLeft;\n      default:\n        return false;\n    }\n  }\n\n  private getItemPosition(item: HTMLElement) {\n    if (this._focusableItems) {\n      return this.focusableItems.indexOf(item);\n    } else {\n      return this.focusableItems.map(_item => _item.nativeElement).indexOf(item);\n    }\n  }\n\n  private listenForItemUpdates() {\n    return this.clrKeyFocusItems.changes.subscribe(() => {\n      this.initializeFocus();\n    });\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component, ElementRef, Input, Renderer2 } from '@angular/core';\n\nimport { FocusableItem } from './interfaces';\nimport { ClrKeyFocus } from './key-focus';\nimport { Keys } from '../../enums/keys.enum';\n\n@Component({\n  selector: '[clrRovingTabindex]',\n  template: '<ng-content></ng-content>',\n  standalone: false,\n})\nexport class ClrRovingTabindex extends ClrKeyFocus {\n  private disabled = false;\n\n  constructor(\n    elementRef: ElementRef<HTMLElement>,\n    private renderer: Renderer2\n  ) {\n    super(elementRef);\n  }\n\n  // Proxy the input, as the selector name from parent class will still be \"clrKeyFocus\".\n  @Input('clrRovingTabindex')\n  get rovingIndexItems(): Array<FocusableItem> | string {\n    return this.focusableItems;\n  }\n  set rovingIndexItems(elements: Array<FocusableItem> | string) {\n    this.focusableItems = elements as Array<FocusableItem>;\n  }\n\n  @Input('clrRovingTabindexDisabled')\n  set rovingTabindexDisabled(disabled: boolean) {\n    this.disabled = disabled;\n    if (this.currentItem) {\n      this.setTabindex(this.currentItem, disabled ? -1 : 0);\n    }\n  }\n\n  override handleKeyboardEvent(event: KeyboardEvent) {\n    if (this.prevKeyPressed(event) && this.currentFocusIsNotFirstItem()) {\n      this.updateTabindex(this.current - 1);\n    } else if (this.nextKeyPressed(event) && this.currentFocusIsNotLastItem()) {\n      this.updateTabindex(this.current + 1);\n    } else if (event.code === Keys.Home) {\n      this.updateTabindex(0);\n    } else if (event.code === Keys.End) {\n      this.updateTabindex(this.focusableItems.length - 1);\n    }\n    super.handleKeyboardEvent(event);\n  }\n\n  override setClickedItemCurrent(event: any) {\n    let position: number;\n\n    if (this.focusableItems[0].nativeElement) {\n      position = this.focusableItems.map(item => item.nativeElement).indexOf(event.target);\n    } else {\n      position = this.focusableItems.indexOf(event.target);\n    }\n\n    if (position > -1) {\n      this.updateTabindex(position);\n    }\n    super.setClickedItemCurrent(event);\n  }\n\n  protected override initializeFocus() {\n    if (this.focusableItems && this.focusableItems.length) {\n      this.focusableItems.forEach(item => {\n        this.setTabindex(item, -1);\n      });\n\n      // It is possible that the focus was on an element, whose index is no longer available.\n      // This can happen when some of the focusable elements are being removed.\n      // In such cases, the new focus is initialized on the last focusable element.\n      if (this.current >= this.focusableItems.length) {\n        this.current = this.focusableItems.length - 1;\n      }\n      if (!this.disabled && this.currentItem) {\n        this.setTabindex(this.currentItem, 0);\n      }\n    }\n    super.initializeFocus();\n  }\n\n  private updateTabindex(newIndex: number) {\n    this.setTabindex(this.currentItem, -1);\n    this.setTabindex(this.focusableItems[newIndex], 0);\n  }\n\n  private setTabindex(item: FocusableItem, value: number) {\n    if (item instanceof HTMLElement) {\n      this.renderer.setAttribute(item, 'tabindex', value.toString());\n    } else {\n      this.renderer.setAttribute(item.nativeElement, 'tabindex', value.toString());\n    }\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule, Type } from '@angular/core';\n\nimport { ClrKeyFocus } from './key-focus';\nimport { ClrKeyFocusItem } from './key-focus-item';\nimport { ClrRovingTabindex } from './roving-tabindex';\n\nconst KEY_FOCUS_DIRECTIVES: Type<any>[] = [ClrKeyFocus, ClrRovingTabindex, ClrKeyFocusItem];\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [KEY_FOCUS_DIRECTIVES],\n  exports: [KEY_FOCUS_DIRECTIVES],\n})\nexport class ClrKeyFocusModule {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './key-focus';\nexport * from './util';\nexport * from './key-focus-item';\nexport * from './key-focus.module';\nexport * from './roving-tabindex';\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Observable } from 'rxjs';\n\nexport abstract class FocusableItem {\n  id: string;\n  disabled?: boolean;\n\n  up?: FocusableItem | Observable<FocusableItem>;\n  down?: FocusableItem | Observable<FocusableItem>;\n  left?: FocusableItem | Observable<FocusableItem>;\n  right?: FocusableItem | Observable<FocusableItem>;\n\n  abstract focus(): void;\n  abstract blur(): void;\n  abstract activate?(): void;\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Observable } from 'rxjs';\n\nimport { FocusableItem } from './focusable-item';\n\nexport class MockFocusableItem implements FocusableItem {\n  disabled = false;\n\n  up?: FocusableItem | Observable<FocusableItem>;\n  down?: FocusableItem | Observable<FocusableItem>;\n  left?: FocusableItem | Observable<FocusableItem>;\n  right?: FocusableItem | Observable<FocusableItem>;\n\n  constructor(public id: string) {}\n\n  focus() {\n    // Do nothing\n  }\n  blur() {\n    // Do nothing\n  }\n  activate() {\n    // Do nothing\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nlet NB_INSTANCES = 0;\n\nexport function uniqueIdFactory() {\n  return 'clr-id-' + NB_INSTANCES++;\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { isPlatformBrowser } from '@angular/common';\nimport { ElementRef, Inject, Injectable, PLATFORM_ID, Renderer2 } from '@angular/core';\n\nimport { FocusableItem } from './focusable-item';\nimport { uniqueIdFactory } from '../../id-generator/id-generator.service';\n\n@Injectable()\nexport class BasicFocusableItem implements FocusableItem {\n  id = uniqueIdFactory();\n  disabled = false;\n\n  constructor(\n    private el: ElementRef<HTMLElement>,\n    private renderer: Renderer2,\n    @Inject(PLATFORM_ID) private platformId: any\n  ) {\n    renderer.setAttribute(el.nativeElement, 'id', this.id);\n    renderer.setAttribute(el.nativeElement, 'tabindex', '-1');\n  }\n\n  focus() {\n    if (isPlatformBrowser(this.platformId)) {\n      this.renderer.setAttribute(this.el.nativeElement, 'tabindex', '0');\n      this.el.nativeElement.focus();\n      this.el.nativeElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' });\n    }\n  }\n  blur() {\n    if (isPlatformBrowser(this.platformId)) {\n      this.renderer.setAttribute(this.el.nativeElement, 'tabindex', '-1');\n      this.el.nativeElement.blur();\n    }\n  }\n\n  activate() {\n    if (isPlatformBrowser(this.platformId)) {\n      this.el.nativeElement.click();\n    }\n  }\n}\n\nexport const BASIC_FOCUSABLE_ITEM_PROVIDER = [\n  {\n    provide: FocusableItem,\n    useClass: BasicFocusableItem,\n  },\n];\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Type } from '@angular/core';\n\nimport { FocusableItem } from './focusable-item';\n\nexport function customFocusableItemProvider<T>(implementation: Type<T>) {\n  return [\n    implementation,\n    {\n      provide: FocusableItem,\n      useExisting: implementation,\n    },\n  ];\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Observable } from 'rxjs';\n\nimport { ArrowKeyDirection } from '../arrow-key-direction.enum';\nimport { FocusableItem } from './focusable-item';\n\nexport class Linkers {\n  /**\n   * Links a set of focusable items to a parent along one direction\n   */\n  static linkParent(\n    items: FocusableItem[],\n    parent: FocusableItem | Observable<FocusableItem>,\n    direction: ArrowKeyDirection\n  ) {\n    items.forEach(item => (item[direction] = parent));\n  }\n\n  /**\n   * Double-links a set of focusable items vertically, possibly looping\n   */\n  static linkVertical(items: FocusableItem[], loop = true) {\n    items.forEach((item, index) => {\n      if (index > 0) {\n        item.up = items[index - 1];\n      }\n      if (index < items.length - 1) {\n        item.down = items[index + 1];\n      }\n    });\n    if (loop && items.length > 1) {\n      items[0].up = items[items.length - 1];\n      items[items.length - 1].down = items[0];\n    }\n  }\n}\n\n// Right now I only need the two linkers above, but we can easily add more linkers. A couple examples:\n// export function linkHorizontal(items: FocusableItem[], loop = true);\n// export function linkTable(items: FocusableItem[][]);\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Observable, Observer } from 'rxjs';\n\nexport function wrapObservable<T>(\n  observable: Observable<T>,\n  onSubscribe?: (observer: Observer<T>) => void,\n  onUnsubscribe?: (observer: Observer<T>) => void\n): Observable<T> {\n  return Observable.create((observer: Observer<T>) => {\n    onSubscribe(observer);\n    const subscription = observable.subscribe(observer);\n    return () => {\n      subscription.unsubscribe();\n      if (onUnsubscribe) {\n        onUnsubscribe(observer);\n      }\n    };\n  });\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport enum ArrowKeyDirection {\n  UP = 'up',\n  DOWN = 'down',\n  LEFT = 'left',\n  RIGHT = 'right',\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { FactoryProvider, Injectable, Optional, Renderer2, SkipSelf } from '@angular/core';\nimport { isObservable, of } from 'rxjs';\n\nimport { ArrowKeyDirection } from './arrow-key-direction.enum';\nimport { FocusableItem } from './focusable-item/focusable-item';\n\n@Injectable()\nexport class FocusService {\n  private _current: FocusableItem;\n  private _unlistenFuncsMap: Map<FocusableItem, (() => void)[]> = new Map();\n\n  constructor(private renderer: Renderer2) {}\n\n  get current() {\n    return this._current;\n  }\n\n  reset(first: FocusableItem) {\n    this._current = first;\n  }\n\n  registerContainer(el: HTMLElement) {\n    // The following listeners return false when there was an action to take for the key pressed,\n    // in order to prevent the default behavior of that key.\n    const unlistenFuncs = [];\n\n    unlistenFuncs.push(this.renderer.listen(el, 'keydown.arrowup', () => !this.move(ArrowKeyDirection.UP)));\n    unlistenFuncs.push(this.renderer.listen(el, 'keydown.arrowdown', () => !this.move(ArrowKeyDirection.DOWN)));\n    unlistenFuncs.push(this.renderer.listen(el, 'keydown.arrowleft', () => !this.move(ArrowKeyDirection.LEFT)));\n    // arrow right can be used only for nested triggers.\n    // unlistenFuncs.push(this.renderer.listen(el, 'keydown.arrowright', () => !this.move(ArrowKeyDirection.RIGHT)));\n\n    unlistenFuncs.push(this.renderer.listen(el, 'keydown.space', () => !this.activateCurrent()));\n    unlistenFuncs.push(this.renderer.listen(el, 'keydown.enter', () => !this.activateCurrent()));\n\n    this._unlistenFuncsMap.set(el, unlistenFuncs);\n  }\n\n  moveTo(item: FocusableItem) {\n    /**\n     * Make sure that item is not undefined,\n     * This is safety net in the case that someone sometime decide to\n     * call this method without having FocusableItem.\n     */\n    if (item === undefined) {\n      return;\n    }\n\n    if (this.current) {\n      this.current.blur();\n    }\n    item.focus();\n    this._current = item;\n  }\n\n  move(direction: ArrowKeyDirection): boolean {\n    let moved = false;\n    if (this.current) {\n      const next = this.current[direction];\n      if (next) {\n        // Turning the value into an Observable isn't great, but it's the fastest way to avoid code duplication.\n        // If performance ever matters for this, we can refactor using additional private methods.\n        const nextObs = isObservable(next) ? next : of(next);\n        nextObs.subscribe(item => {\n          if (item) {\n            this.moveTo(item);\n            moved = true;\n          }\n        });\n      }\n    }\n    return moved;\n  }\n\n  activateCurrent() {\n    if (this.current && this.current.activate) {\n      this.current.activate();\n      return true;\n    }\n    return false;\n  }\n\n  detachListeners(el: HTMLElement) {\n    const unlistenFuncs = this._unlistenFuncsMap.get(el);\n\n    unlistenFuncs?.forEach(unlisten => unlisten());\n\n    this._unlistenFuncsMap.delete(el);\n  }\n}\n\nexport function clrFocusServiceFactory(existing: FocusService, renderer: Renderer2) {\n  return existing || new FocusService(renderer);\n}\n\nexport const FOCUS_SERVICE_PROVIDER: FactoryProvider = {\n  provide: FocusService,\n  useFactory: clrFocusServiceFactory,\n  deps: [[new Optional(), new SkipSelf(), FocusService], Renderer2],\n};\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { DOCUMENT, Inject, Injectable } from '@angular/core';\n\n@Injectable()\nexport class ScrollingService {\n  constructor(@Inject(DOCUMENT) private _document: any) {}\n\n  stopScrolling(): void {\n    this._document.body.classList.add('no-scrolling');\n  }\n\n  resumeScrolling(): void {\n    if (this._document.body.classList.contains('no-scrolling')) {\n      this._document.body.classList.remove('no-scrolling');\n    }\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directionality } from '@angular/cdk/bidi';\nimport { CDK_DRAG_CONFIG, CDK_DROP_LIST, CdkDrag, DragDrop, DragDropConfig } from '@angular/cdk/drag-drop';\nimport {\n  ChangeDetectorRef,\n  Directive,\n  DOCUMENT,\n  ElementRef,\n  Inject,\n  NgModule,\n  NgZone,\n  Optional,\n  ViewContainerRef,\n} from '@angular/core';\n\n/**\n * This is just a copy of CdkDrag so it can be used independent of the rest of the CdkDragDropModule.\n */\n@Directive({\n  selector: '[cdkDrag]',\n  standalone: false,\n})\nexport class CdkDragModule_CdkDrag extends CdkDrag {\n  /**\n   * Include the constructor to forward all the dependencies to the base class\n   * as a workaround to fix Angular \"ɵɵinvalidFactoryDep\" error after upgrading storybook\n   * https://github.com/storybookjs/storybook/issues/23534\n   */\n  constructor(\n    elementRef: ElementRef<HTMLElement>,\n    @Optional() @Inject(CDK_DROP_LIST) dropContainer: any,\n    @Optional() @Inject(DOCUMENT) document: any,\n    ngZone: NgZone,\n    viewContainerRef: ViewContainerRef,\n    @Optional() @Inject(CDK_DRAG_CONFIG) config: DragDropConfig,\n    dir: Directionality,\n    dragDrop: DragDrop,\n    changeDetectorRef: ChangeDetectorRef\n  ) {\n    super(elementRef, dropContainer, document, ngZone, viewContainerRef, config, dir, dragDrop, changeDetectorRef);\n  }\n}\n\n/**\n * This module allows us to avoid importing all of CdkDragDropModule which results in a smaller application bundle.\n */\n@NgModule({\n  declarations: [CdkDragModule_CdkDrag],\n  exports: [CdkDragModule_CdkDrag],\n})\nexport class CdkDragModule {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { CdkTrapFocus, FocusTrapFactory } from '@angular/cdk/a11y';\nimport { Directive, DOCUMENT, ElementRef, Inject, NgModule, Optional } from '@angular/core';\n\n/**\n * This is just a copy of CdkTrapFocus so it can be used independent of the rest of the A11yModule.\n */\n@Directive({\n  selector: '[cdkTrapFocus]',\n  standalone: false,\n})\nexport class CdkTrapFocusModule_CdkTrapFocus extends CdkTrapFocus {\n  /**\n   * Include the constructor to forward all the dependencies to the base class\n   * as a workaround to fix Angular \"ɵɵinvalidFactoryDep\" error after upgrading storybook\n   * https://github.com/storybookjs/storybook/issues/23534\n   */\n  constructor(\n    elementRef: ElementRef<HTMLElement>,\n    focusTrapFactory: FocusTrapFactory,\n    @Optional() @Inject(DOCUMENT) document: any\n  ) {\n    super(elementRef, focusTrapFactory, document);\n  }\n}\n\n/**\n * This module allows us to avoid importing all of A11yModule which results in a smaller application bundle.\n */\n@NgModule({\n  declarations: [CdkTrapFocusModule_CdkTrapFocus],\n  exports: [CdkTrapFocusModule_CdkTrapFocus],\n})\nexport class CdkTrapFocusModule {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n/**\n * @description\n *\n * Developers should explicitly add this service to providers; it then can be injected\n * into a constructor and used as a notifier for the `takeUntil` operator. This eliminates\n * the need for boilerplates with subscriptions, and we don't need to implement the `OnDestroy`\n * interface and teardown subscriptions there.\n *\n * This can be used as follows:\n * ```ts\n * @Component({\n *   selector: 'clr-button-group',\n *   templateUrl: 'button-group.html',\n *   providers: [ClrDestroyService],\n * })\n * export class ClrButtonGroup {\n *   constructor(public buttonGroupNewService: ButtonInGroupService, private destroy$: ClrDestroyService) {}\n *\n *   ngAfterContentInit() {\n *     this.buttonGroupNewService.changes.pipe(takeUntil(this.destroy$)).subscribe(button => this.rearrangeButton(button));\n *   }\n * }\n * ```\n */\n@Injectable()\nexport class ClrDestroyService extends Subject<void> implements OnDestroy {\n  ngOnDestroy(): void {\n    this.next();\n    this.complete();\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './destroy.service';\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport type HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6 | '1' | '2' | '3' | '4' | '5' | '6';\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\n/**\n * A (clockwise) enumeration for positions around an element.\n *\n *     A    B    C\n *  L  ----------- D\n *     |         |\n *     |         |\n *  K  |         | E\n *     |         |\n *     |         |\n *  J  ----------- F\n *     I    H    G\n *\n * TOP_LEFT      = A\n * TOP_CENTER    = B\n * TOP_RIGHT     = C\n * RIGHT_TOP     = D\n * RIGHT_CENTER  = E\n * RIGHT_BOTTOM  = F\n * BOTTOM_RIGHT  = G\n * BOTTOM_CENTER = H\n * BOTTOM_LEFT   = I\n * LEFT_BOTTOM   = J\n * LEFT_CENTER   = K\n * LEFT_TOP      = L\n *\n *\n * Consumers tell us that they want something to display on the TOP_LEFT of the trigger and that they want the\n * _content_ container to orient AT the bottom left.\n * In order to calculate the position for the content I need to match up the origin/trigger ClrPosition with the\n * content ClrPosition.\n *\n * Origin TOP_LEFT **AT** Content BOTTOM_LEFT.\n *     -----------\n *     |         |\n *     |         |\n *     | content |\n *     |         |\n *     |         |\n *     -----------\n *     |/\n *     -----------\n *     |         |\n *     |         |\n *     | trigger |\n *     |         |\n *     |         |\n *     -----------\n *\n */\n\nexport enum ClrPosition {\n  TOP_LEFT,\n  TOP_CENTER,\n  TOP_RIGHT,\n  RIGHT_TOP,\n  RIGHT_CENTER,\n  RIGHT_BOTTOM,\n  BOTTOM_RIGHT,\n  BOTTOM_CENTER,\n  BOTTOM_LEFT,\n  LEFT_BOTTOM,\n  LEFT_CENTER,\n  LEFT_TOP,\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { AfterViewChecked, Directive } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n/*\n * After a conversation with the Angular core team, it turns out we don't have much of a choice for our\n * declarative API, we need to fight against change detection and its one-way flow. This is\n * currently the least dirty solution to do what we want.\n *\n * Do not modify or even use this class unless you know exactly what you're doing.\n * It has the potential to trigger change detection loops or kill app performances.\n */\n@Directive()\nexport class WillyWonka implements AfterViewChecked {\n  disableChocolateCheck = false;\n\n  private _chocolate = new Subject<void>();\n\n  get chocolate(): Observable<void> {\n    return this._chocolate.asObservable();\n  }\n\n  ngAfterViewChecked() {\n    if (!this.disableChocolateCheck) {\n      this._chocolate.next();\n    }\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { AfterContentChecked, ChangeDetectorRef, Directive, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { WillyWonka } from './willy-wonka';\n\n@Directive()\nexport abstract class OompaLoompa implements AfterContentChecked, OnDestroy {\n  private latestFlavor: any;\n  private subscription: Subscription;\n\n  // FIXME: Request Injector once we move to Angular 4.2+, it'll allow easier refactors\n  protected constructor(cdr: ChangeDetectorRef, willyWonka: WillyWonka) {\n    this.subscription = willyWonka.chocolate.subscribe(() => {\n      if (this.latestFlavor !== this.flavor) {\n        willyWonka.disableChocolateCheck = true;\n        cdr.detectChanges();\n        willyWonka.disableChocolateCheck = false;\n      }\n    });\n  }\n\n  abstract get flavor(): any;\n\n  ngAfterContentChecked() {\n    this.latestFlavor = this.flavor;\n  }\n\n  ngOnDestroy() {\n    this.subscription.unsubscribe();\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './forms/validation';\nexport * from './dom-adapter/dom-adapter';\nexport * from './dom-adapter/dom-adapter.mock';\nexport * from './outside-click';\nexport * from './template-ref/index';\nexport * from './breakpoints/breakpoints';\nexport * from './host-wrapping/index';\nexport * from './assert/assert.helpers';\nexport * from './component/is-boolean-attribute-set';\nexport * from './animations/index';\nexport * from '@clr/angular/utils/loading';\nexport * from '@clr/angular/utils/conditional';\nexport * from './i18n/index';\nexport * from './focus/focus-on-view-init/index';\nexport * from './focus/focus-trap/index';\nexport * from './focus/key-focus';\nexport * from './focus/focusable-item/focusable-item';\nexport * from './focus/focusable-item/focusable-item.mock';\nexport * from './focus/focusable-item/basic-focusable-item.service';\nexport * from './focus/focusable-item/custom-focusable-item-provider';\nexport * from './focus/focusable-item/linkers';\nexport * from './focus/wrap-observable';\nexport * from './focus/arrow-key-direction.enum';\nexport * from './focus/focus.service';\nexport * from './id-generator/id-generator.service';\nexport * from './scrolling/scrolling-service';\nexport * from './cdk/cdk-drag.module';\nexport * from './cdk/cdk-trap-focus.module';\nexport * from './destroy';\nexport * from './types/heading-level';\nexport * from './enums/keys.enum';\nexport * from './enums/position.enum';\nexport * from './chocolate/willy-wonka';\nexport * from './chocolate/oompa-loompa';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DomAdapter","i1","i2","i1.WillyWonka"],"mappings":"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"}