{"version":3,"file":"doku-fragment.mjs","sources":["../../../../projects/doku-fragment/src/lib/accordion/accordion-body.component.ts","../../../../projects/doku-fragment/src/lib/accordion/accordion.enum.ts","../../../../projects/doku-fragment/src/lib/accordion/accordion.component.ts","../../../../projects/doku-fragment/src/lib/accordion/accordion-item.component.ts","../../../../projects/doku-fragment/src/lib/accordion/accordion-header.component.ts","../../../../projects/doku-fragment/src/lib/accordion/accordion-header.component.html","../../../../projects/doku-fragment/src/lib/accordion/accordion-title.component.ts","../../../../projects/doku-fragment/src/lib/accordion/accordion.module.ts","../../../../projects/doku-fragment/src/lib/alert/alert.component.ts","../../../../projects/doku-fragment/src/lib/alert/alert.component.html","../../../../projects/doku-fragment/src/lib/alert/alert.module.ts","../../../../projects/doku-fragment/src/lib/anchor-link/anchor-link.directive.ts","../../../../projects/doku-fragment/src/lib/anchor-link/anchor-link.module.ts","../../../../projects/doku-fragment/src/lib/badge/badge.component.ts","../../../../projects/doku-fragment/src/lib/badge/badge.component.html","../../../../projects/doku-fragment/src/lib/badge/badge.module.ts","../../../../projects/doku-fragment/src/lib/breadcrumb/breadcrumb.component.ts","../../../../projects/doku-fragment/src/lib/breadcrumb/breadcrumb.component.html","../../../../projects/doku-fragment/src/lib/breadcrumb/breadcrumb.module.ts","../../../../projects/doku-fragment/src/lib/button/button.component.ts","../../../../projects/doku-fragment/src/lib/button/button.component.html","../../../../projects/doku-fragment/src/lib/button/button.module.ts","../../../../projects/doku-fragment/src/lib/card/card-body.component.ts","../../../../projects/doku-fragment/src/lib/card/card-cover.component.ts","../../../../projects/doku-fragment/src/lib/card/card-footer.component.ts","../../../../projects/doku-fragment/src/lib/card/card-header.component.ts","../../../../projects/doku-fragment/src/lib/card/card-section.component.ts","../../../../projects/doku-fragment/src/lib/card/card-subtitle.component.ts","../../../../projects/doku-fragment/src/lib/card/card-title.component.ts","../../../../projects/doku-fragment/src/lib/card/card.component.ts","../../../../projects/doku-fragment/src/lib/card/card.component.html","../../../../projects/doku-fragment/src/lib/card/card.module.ts","../../../../projects/doku-fragment/src/lib/checkbox/checkbox-sub-label.component.ts","../../../../projects/doku-fragment/src/lib/checkbox/checkbox.component.ts","../../../../projects/doku-fragment/src/lib/checkbox/checkbox.component.html","../../../../projects/doku-fragment/src/lib/checkbox/checkbox.module.ts","../../../../projects/doku-fragment/src/lib/form-field/directives/field-prefix.directive.ts","../../../../projects/doku-fragment/src/lib/form-field/directives/field-suffix.directive.ts","../../../../projects/doku-fragment/src/lib/form-field/field-helpers/field-error.component.ts","../../../../projects/doku-fragment/src/lib/form-field/field-helpers/field-hint.component.ts","../../../../projects/doku-fragment/src/lib/form-field/field-helpers/field-success.component.ts","../../../../projects/doku-fragment/src/lib/form-field/field-label.component.ts","../../../../projects/doku-fragment/src/lib/form-field/field-label.component.html","../../../../projects/doku-fragment/src/lib/form-field/token.ts","../../../../projects/doku-fragment/src/lib/form-field/form-field.component.ts","../../../../projects/doku-fragment/src/lib/form-field/form-field.component.html","../../../../projects/doku-fragment/src/lib/form-field/form-field.module.ts","../../../../projects/doku-fragment/src/lib/input/input.directive.ts","../../../../projects/doku-fragment/src/lib/input/input.module.ts","../../../../projects/doku-fragment/src/lib/color-picker/color-picker.component.ts","../../../../projects/doku-fragment/src/lib/color-picker/color-picker.component.html","../../../../projects/doku-fragment/src/lib/color-picker/color-picker.module.ts","../../../../projects/doku-fragment/src/lib/date-picker/common/date-range-picker-input/end-date.directive.ts","../../../../projects/doku-fragment/src/lib/date-picker/common/date-range-picker-input/start-date.directive.ts","../../../../projects/doku-fragment/src/lib/date-picker/common/date-range-picker-input/date-range-picker-input.component.ts","../../../../projects/doku-fragment/src/utils/get-click-type.ts","../../../../projects/doku-fragment/src/utils/update-floating-position.ts","../../../../projects/doku-fragment/src/lib/breakpoint/breakpoint.ts","../../../../projects/doku-fragment/src/lib/select/directives/select-label-template.directive.ts","../../../../projects/doku-fragment/src/lib/select/directives/select-loading-template.directive.ts","../../../../projects/doku-fragment/src/lib/select/directives/select-no-item-template.directive.ts","../../../../projects/doku-fragment/src/lib/select/directives/select-option-template.directive.ts","../../../../projects/doku-fragment/src/lib/typography/typography.component.ts","../../../../projects/doku-fragment/src/lib/typography/typography.module.ts","../../../../projects/doku-fragment/src/lib/select/select-dropdown-portal.component.ts","../../../../projects/doku-fragment/src/lib/select/select-option.component.ts","../../../../projects/doku-fragment/src/lib/select/utils/view-element.util.ts","../../../../projects/doku-fragment/src/lib/select/utils/item-injection.util.ts","../../../../projects/doku-fragment/src/lib/select/utils/search.util.ts","../../../../projects/doku-fragment/src/lib/select/utils/style.util.ts","../../../../projects/doku-fragment/src/lib/select/utils/value.util.ts","../../../../projects/doku-fragment/src/lib/select/select.component.ts","../../../../projects/doku-fragment/src/lib/select/select.component.html","../../../../projects/doku-fragment/src/lib/select/select.module.ts","../../../../projects/doku-fragment/src/lib/date-picker/base/calendar.util.ts","../../../../projects/doku-fragment/src/lib/date-picker/base/date-picker-base-props.component.ts","../../../../projects/doku-fragment/src/lib/date-picker/base/date-picker.token.ts","../../../../projects/doku-fragment/src/lib/date-picker/base/date-picker-base.component.ts","../../../../projects/doku-fragment/src/lib/date-picker/base/date-picker-base.component.html","../../../../projects/doku-fragment/src/lib/date-picker/common/date-picker-basic-props.component.ts","../../../../projects/doku-fragment/src/lib/date-picker/date-picker-float/date-picker.component.ts","../../../../projects/doku-fragment/src/lib/date-picker/date-picker-float/date-picker.component.html","../../../../projects/doku-fragment/src/lib/date-picker/date-picker-inline/date-picker-inline.component.ts","../../../../projects/doku-fragment/src/lib/date-picker/date-picker-inline/date-picker-inline.component.html","../../../../projects/doku-fragment/src/lib/date-picker/common/date-picker-range-props.component.ts","../../../../projects/doku-fragment/src/lib/date-picker/date-range-picker-float/date-range-picker.component.ts","../../../../projects/doku-fragment/src/lib/date-picker/date-range-picker-float/date-range-picker.component.html","../../../../projects/doku-fragment/src/lib/date-picker/date-range-picker-inline/date-range-picker-inline.component.ts","../../../../projects/doku-fragment/src/lib/date-picker/date-range-picker-inline/date-range-picker-inline.component.html","../../../../projects/doku-fragment/src/lib/date-picker/date-picker.module.ts","../../../../projects/doku-fragment/src/lib/time-picker/input-time.directive.ts","../../../../projects/doku-fragment/src/lib/time-picker/time-picker.component.ts","../../../../projects/doku-fragment/src/lib/time-picker/time-picker.component.html","../../../../projects/doku-fragment/src/lib/time-picker/time-picker.module.ts","../../../../projects/doku-fragment/src/lib/date-time-picker/common/time-picker/time-picker.component.ts","../../../../projects/doku-fragment/src/lib/date-time-picker/common/time-picker/time-picker.component.html","../../../../projects/doku-fragment/src/lib/date-time-picker/date-time-picker-float/date-time-picker-float.component.ts","../../../../projects/doku-fragment/src/lib/date-time-picker/date-time-picker-inline/date-time-picker-inline.component.ts","../../../../projects/doku-fragment/src/lib/date-time-picker/date-time-picker-inline/date-time-picker-inline.component.html","../../../../projects/doku-fragment/src/lib/date-time-picker/date-time-picker.module.ts","../../../../projects/doku-fragment/src/lib/dropdown/dropdown-menu-divider.directive.ts","../../../../projects/doku-fragment/src/lib/dropdown/dropdown.token.ts","../../../../projects/doku-fragment/src/lib/dropdown/dropdown.directive.ts","../../../../projects/doku-fragment/src/lib/dropdown/dropdown-menu.directive.ts","../../../../projects/doku-fragment/src/lib/dropdown/dropdown-menu-item.directive.ts","../../../../projects/doku-fragment/src/lib/dropdown/dropdown-toggle.directive.ts","../../../../projects/doku-fragment/src/lib/dropdown/dropdown.module.ts","../../../../projects/doku-fragment/src/lib/spinner/spinner.component.ts","../../../../projects/doku-fragment/src/lib/spinner/spinner.component.html","../../../../projects/doku-fragment/src/lib/spinner/spinner.module.ts","../../../../projects/doku-fragment/src/lib/input-file-upload/input-file-upload.component.ts","../../../../projects/doku-fragment/src/lib/input-file-upload/input-file-upload.component.html","../../../../projects/doku-fragment/src/lib/input-file-upload/input-file-upload.module.ts","../../../../projects/doku-fragment/src/lib/layout/layout-content/layout-content.component.ts","../../../../projects/doku-fragment/src/lib/layout/layout-content/layout-content.component.html","../../../../projects/doku-fragment/src/lib/layout/layout-content/page-description/page-description.component.ts","../../../../projects/doku-fragment/src/lib/layout/layout-content/page-description/page-description.component.html","../../../../projects/doku-fragment/src/lib/layout/layout-content/page-header/page-header.component.ts","../../../../projects/doku-fragment/src/lib/layout/layout-content/page-header/page-header.component.html","../../../../projects/doku-fragment/src/lib/layout/layout-content/page-title/page-title.component.ts","../../../../projects/doku-fragment/src/lib/layout/layout-content/page-title/page-title.component.html","../../../../projects/doku-fragment/src/lib/layout/layout-content/layout-content.module.ts","../../../../projects/doku-fragment/src/lib/layout/layout.module.ts","../../../../projects/doku-fragment/src/lib/modal/content/modal-body.component.ts","../../../../projects/doku-fragment/src/lib/modal/content/modal-close-icon.component.ts","../../../../projects/doku-fragment/src/lib/modal/content/modal-footer-spacer.component.ts","../../../../projects/doku-fragment/src/lib/modal/content/modal-footer.component.ts","../../../../projects/doku-fragment/src/lib/modal/icons/icon-danger.component.ts","../../../../projects/doku-fragment/src/lib/modal/icons/icon-exclamation.component.ts","../../../../projects/doku-fragment/src/lib/modal/icons/icon-info.component.ts","../../../../projects/doku-fragment/src/lib/modal/icons/icon-success.component.ts","../../../../projects/doku-fragment/src/lib/modal/modal-ref.ts","../../../../projects/doku-fragment/src/lib/modal/content/modal-header.component.ts","../../../../projects/doku-fragment/src/lib/modal/content/modal-header.component.html","../../../../projects/doku-fragment/src/lib/modal/modal.module.ts","../../../../projects/doku-fragment/src/lib/pagination/pagination.component.ts","../../../../projects/doku-fragment/src/lib/pagination/pagination.component.html","../../../../projects/doku-fragment/src/lib/pagination/integrations/pagination-container.component.ts","../../../../projects/doku-fragment/src/lib/pagination/integrations/pagination-container.component.html","../../../../projects/doku-fragment/src/lib/pagination/integrations/pagination-info.component.ts","../../../../projects/doku-fragment/src/lib/pagination/integrations/pagination-info.component.html","../../../../projects/doku-fragment/src/lib/pagination/integrations/pagination-per-page.component.ts","../../../../projects/doku-fragment/src/lib/pagination/integrations/pagination-per-page.component.html","../../../../projects/doku-fragment/src/lib/pagination/pagination.module.ts","../../../../projects/doku-fragment/src/lib/pill/pill-group.component.ts","../../../../projects/doku-fragment/src/lib/pill/pill-group.component.html","../../../../projects/doku-fragment/src/lib/pill/pill-button.component.ts","../../../../projects/doku-fragment/src/lib/pill/pill-button.component.html","../../../../projects/doku-fragment/src/lib/pill/pill.component.ts","../../../../projects/doku-fragment/src/lib/pill/pill.component.html","../../../../projects/doku-fragment/src/lib/pill/pill.module.ts","../../../../projects/doku-fragment/src/lib/progress-bar/progress-bar.component.ts","../../../../projects/doku-fragment/src/lib/progress-bar/progress-bar.component.html","../../../../projects/doku-fragment/src/lib/progress-bar/progress-bar.module.ts","../../../../projects/doku-fragment/src/lib/radio/radio-custom-appearance.directive.ts","../../../../projects/doku-fragment/src/lib/radio/context.ts","../../../../projects/doku-fragment/src/lib/radio/token.ts","../../../../projects/doku-fragment/src/lib/radio/radio-group.component.ts","../../../../projects/doku-fragment/src/lib/radio/radio.component.ts","../../../../projects/doku-fragment/src/lib/radio/radio.component.html","../../../../projects/doku-fragment/src/lib/radio/radio-indicator.component.ts","../../../../projects/doku-fragment/src/lib/radio/built-in-appearances/radio-appearance-card/radio-appearance-card.component.ts","../../../../projects/doku-fragment/src/lib/radio/built-in-appearances/radio-appearance-card/radio-appearance-card.component.html","../../../../projects/doku-fragment/src/lib/radio/radio.module.ts","../../../../projects/doku-fragment/src/lib/shimmer/shimmer.component.ts","../../../../projects/doku-fragment/src/lib/shimmer/shimmer.module.ts","../../../../projects/doku-fragment/src/lib/table/sorter-icon.component.ts","../../../../projects/doku-fragment/src/lib/table/template.util.ts","../../../../projects/doku-fragment/src/lib/table/table.directive.ts","../../../../projects/doku-fragment/src/lib/table/table-sortable.directive.ts","../../../../projects/doku-fragment/src/lib/table/table-sticky-column.directive.ts","../../../../projects/doku-fragment/src/lib/table/table.module.ts","../../../../projects/doku-fragment/src/lib/tabs/tab-content.directive.ts","../../../../projects/doku-fragment/src/lib/tabs/tab-label.directive.ts","../../../../projects/doku-fragment/src/lib/tabs/token.ts","../../../../projects/doku-fragment/src/lib/tabs/view-element.ts","../../../../projects/doku-fragment/src/lib/tabs/tabs.component.ts","../../../../projects/doku-fragment/src/lib/tabs/tab.component.ts","../../../../projects/doku-fragment/src/lib/tabs/tabs.module.ts","../../../../projects/doku-fragment/src/lib/timeline/timeline-date-time.component.ts","../../../../projects/doku-fragment/src/lib/timeline/timeline-date-time.component.html","../../../../projects/doku-fragment/src/lib/timeline/timeline-description.component.ts","../../../../projects/doku-fragment/src/lib/timeline/timeline-description.component.html","../../../../projects/doku-fragment/src/lib/timeline/timeline-item.component.ts","../../../../projects/doku-fragment/src/lib/timeline/timeline-item.component.html","../../../../projects/doku-fragment/src/lib/timeline/timeline-title.component.ts","../../../../projects/doku-fragment/src/lib/timeline/timeline-title.component.html","../../../../projects/doku-fragment/src/lib/timeline/timeline.component.ts","../../../../projects/doku-fragment/src/lib/timeline/timeline.component.html","../../../../projects/doku-fragment/src/lib/timeline/timeline.module.ts","../../../../projects/doku-fragment/src/lib/toggle/toggle-description.component.ts","../../../../projects/doku-fragment/src/lib/toggle/toggle.component.ts","../../../../projects/doku-fragment/src/lib/toggle/toggle.component.html","../../../../projects/doku-fragment/src/lib/toggle/toggle.module.ts","../../../../projects/doku-fragment/src/lib/tooltip/tooltip.directive.ts","../../../../projects/doku-fragment/src/lib/tooltip/tooltip.module.ts","../../../../projects/doku-fragment/src/lib/backdrop/backdrop-ref.ts","../../../../projects/doku-fragment/src/lib/backdrop/backdrop.service.ts","../../../../projects/doku-fragment/src/lib/modal/view-element.ts","../../../../projects/doku-fragment/src/lib/modal/modal.service.ts","../../../../projects/doku-fragment/src/lib/page-loading/page-loading.service.ts","../../../../projects/doku-fragment/src/lib/popover/partial-templates/popover-body/popover-body.component.ts","../../../../projects/doku-fragment/src/lib/popover/partial-templates/popover-body/popover-body.component.html","../../../../projects/doku-fragment/src/lib/popover/partial-templates/popover-footer/popover-footer.component.ts","../../../../projects/doku-fragment/src/lib/popover/partial-templates/popover-footer/popover-footer.component.html","../../../../projects/doku-fragment/src/lib/popover/partial-templates/popover-title/popover-title.component.ts","../../../../projects/doku-fragment/src/lib/popover/partial-templates/popover-title/popover-title.component.html","../../../../projects/doku-fragment/src/lib/popover/popover.directive.ts","../../../../projects/doku-fragment/src/lib/popover/popover.module.ts","../../../../projects/doku-fragment/src/lib/toast/toast.constant.ts","../../../../projects/doku-fragment/src/lib/toast/toast-ref.ts","../../../../projects/doku-fragment/src/lib/toast/toast.component.ts","../../../../projects/doku-fragment/src/lib/toast/toast-element.service.ts","../../../../projects/doku-fragment/src/lib/toast/toast.service.ts","../../../../projects/doku-fragment/src/public-api.ts","../../../../projects/doku-fragment/src/doku-fragment.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-accordion-body',\n  exportAs: 'dokuAccordionBody',\n  standalone: true,\n  imports: [CommonModule],\n  template: '<ng-content></ng-content>',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuAccordionBody {\n  @HostBinding('class')\n  protected readonly classes = 'd-accordion-body d-text-body-l';\n}\n","export enum SelectionDispatcher {\n  ExpandAll = 'd-accordion-action-expand-all',\n  CollapseAll = 'd-accordion-action-collapse-all',\n}\n","import { CommonModule } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  HostBinding,\n  Input,\n  OnDestroy,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { BehaviorSubject, ReplaySubject, takeUntil } from 'rxjs';\nimport { SelectionDispatcher } from './accordion.enum';\n\n@Component({\n  selector: 'doku-accordion',\n  exportAs: 'dokuAccordion',\n  standalone: true,\n  imports: [CommonModule],\n  template: '<ng-content select=\"doku-accordion-item\"></ng-content>',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuAccordion implements OnDestroy {\n  /**\n   * Whether the accordion should allow multiple expanded items simultaneously.\n   * @default false\n   */\n  @Input() multi = false;\n\n  @HostBinding('class')\n  protected readonly classes = 'd-accordion';\n\n  private destroy$ = new ReplaySubject(1);\n\n  /**\n   * Use to dispatch active accordion id on the accordion items.\n   * Value can be other than active accordion id for specific use cases.\n   *\n   * Specific values:\n   * - \"d-accordion-action-expand-all\"\n   * - \"d-accordion-action-collapse-all\"\n   */\n  protected selectionDispatcher$ = new BehaviorSubject<SelectionDispatcher | string | null>(null);\n\n  /**\n   * Use to listen active accordion id changes on the accordion items.\n   * But the value can be other than active accordion id.\n   * See {@link selectionDispatcher$} for the list of specific values.\n   */\n  protected selectionListener$ = this.selectionDispatcher$.pipe(takeUntil(this.destroy$));\n\n  ngOnDestroy(): void {\n    this.destroy$.next(1);\n    this.destroy$.complete();\n  }\n\n  /**\n   * Expand all accordion items when `multi` is true.\n   * If `multi` is false and all items are collapsed, it will open the first one.\n   * Otherwise, it will keep the expanded one.\n   *\n   * Disabled accordion items will not affected.\n   */\n  expandAll() {\n    this.selectionDispatcher$.next(SelectionDispatcher.ExpandAll);\n  }\n\n  /**\n   * Collapse all accordion items except for disabled items.\n   */\n  collapseAll() {\n    this.selectionDispatcher$.next(SelectionDispatcher.CollapseAll);\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  Host,\n  HostBinding,\n  Input,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { DokuAccordion } from './accordion.component';\nimport { SelectionDispatcher } from './accordion.enum';\n\nlet uniqueId = 0;\n\n@Component({\n  selector: 'doku-accordion-item',\n  exportAs: 'dokuAccordionItem',\n  standalone: true,\n  imports: [CommonModule],\n  template: `<ng-content select=\"doku-accordion-header\"></ng-content>\n    <ng-content select=\"doku-accordion-body\"></ng-content>`,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuAccordionItem {\n  @HostBinding('class')\n  readonly classes = 'd-accordion-item';\n\n  /**\n   * Autogenerate unique id of the accordion item.\n   */\n  @Input() accordionId = `d-accordion-id-${uniqueId++}`;\n\n  /**\n   * Whether the accordion item should be expanded.\n   *\n   * By default, the accordion `multi` is false,\n   * it will collapse other expanded items.\n   *\n   * Disabled accordion item will not expanded.\n   *\n   * @default false\n   */\n  @HostBinding('class.d-accordion-expanded')\n  @Input()\n  get expanded(): boolean {\n    return this._expanded;\n  }\n  set expanded(value: boolean) {\n    if (this.disabled) return;\n    this._expanded = value;\n    this.accordion['selectionDispatcher$'].next(this.accordionId);\n    this.cdRef.markForCheck();\n  }\n  private _expanded = false;\n\n  /**\n   * Whether the accordion item is disabled.\n   * @default false\n   */\n  @HostBinding('class.d-accordion-disabled')\n  @Input()\n  disabled = false;\n\n  constructor(\n    @Host() private accordion: DokuAccordion,\n    private cdRef: ChangeDetectorRef,\n    private elementRef: ElementRef\n  ) {\n    this.accordion['selectionListener$'].subscribe((selectionAccordion) => {\n      this.handleExpandAtATime(selectionAccordion);\n      this.handleExpandAll(selectionAccordion as SelectionDispatcher);\n      this.handleCollapseAll(selectionAccordion as SelectionDispatcher);\n    });\n  }\n\n  /**\n   * Toggle (expand/collapse) the accordion item.\n   * Do nothing if `disabled` is true.\n   */\n  toggle() {\n    this.expanded = !this.expanded;\n  }\n\n  /**\n   * Collapse the accordion item.\n   * Do nothing if `disabled` is true.\n   */\n  collapse() {\n    this.expanded = false;\n  }\n\n  /**\n   * Expand the accordion item.\n   * Do nothing if `disabled` is true.\n   */\n  expand() {\n    this.expanded = true;\n  }\n\n  private handleExpandAtATime(activeAccordionId: string | null) {\n    if (!activeAccordionId) return;\n    if (Object.values(SelectionDispatcher).includes(activeAccordionId as SelectionDispatcher)) {\n      return;\n    }\n\n    if (!this.accordion.multi && activeAccordionId !== this.accordionId) {\n      this._expanded = false;\n      this.cdRef.markForCheck();\n    }\n  }\n\n  /**\n   * See detail on {@link DokuAccordion.expandAll}\n   */\n  private handleExpandAll(selectionAccordion: SelectionDispatcher) {\n    if (selectionAccordion !== SelectionDispatcher.ExpandAll) return;\n    if (this.disabled) return;\n\n    if (this.accordion.multi) {\n      this._expanded = true;\n      this.cdRef.markForCheck();\n    }\n\n    // When multi expanded is not allowed, expand the first item if no one item expanded.\n    if (!this.accordion.multi) {\n      const accordionItemElement = this.elementRef.nativeElement as HTMLElement;\n\n      // Check if has expanded item by siblings class name.\n      const hasExpandedItem = !!accordionItemElement.parentElement?.querySelector(\n        'doku-accordion-item.d-accordion-expanded'\n      );\n      if (hasExpandedItem) return;\n\n      // Check if this accordion item is the first item by checking previous element.\n      const isFirstChild =\n        accordionItemElement.previousSibling?.nodeName?.toLowerCase() !== 'doku-accordion-item';\n\n      if (isFirstChild) {\n        this._expanded = true;\n        this.cdRef.markForCheck();\n      }\n    }\n  }\n\n  /**\n   * See detail on {@link DokuAccordion.collapseAll}\n   */\n  private handleCollapseAll(selectionAccordion: SelectionDispatcher) {\n    if (selectionAccordion !== SelectionDispatcher.CollapseAll) return;\n    if (this.disabled) return;\n\n    if (this._expanded) {\n      this._expanded = false;\n      this.cdRef.markForCheck();\n    }\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Host,\n  HostBinding,\n  HostListener,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { DokuAccordionItem } from './accordion-item.component';\n\n@Component({\n  selector: 'doku-accordion-header',\n  exportAs: 'dokuAccordionHeader',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './accordion-header.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuAccordionHeader {\n  @HostBinding('class')\n  protected readonly classes = 'd-accordion-header';\n\n  constructor(@Host() private item: DokuAccordionItem) {}\n\n  /**\n   * Toggle the accordion item.\n   */\n  @HostListener('click')\n  toggle() {\n    this.item.toggle();\n  }\n}\n","<ng-content></ng-content>\n\n<span class=\"d-accordion-icon-toggle\">\n  <ng-container *ngTemplateOutlet=\"iconToggle\"></ng-container>\n</span>\n\n<ng-template #iconToggle>\n  <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path\n      d=\"M7.48184 11.8312L1.54797 5.89727C1.26179 5.61108 1.26179 5.1471 1.54797 4.86095L2.24007 4.16886C2.52576 3.88316 2.9888 3.88261 3.27516 4.16763L8.00002 8.87035L12.7248 4.16763C13.0112 3.88261 13.4742 3.88316 13.7599 4.16886L14.452 4.86095C14.7382 5.14713 14.7382 5.61111 14.452 5.89727L8.51819 11.8312C8.23201 12.1173 7.76803 12.1173 7.48184 11.8312Z\"\n      fill=\"currentColor\"\n    />\n  </svg>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-accordion-title',\n  exportAs: 'dokuAccordionTitle',\n  standalone: true,\n  imports: [CommonModule],\n  template: '<ng-content></ng-content>',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuAccordionTitle {\n  @HostBinding('class')\n  readonly classes = 'd-accordion-title';\n}\n","import { NgModule } from '@angular/core';\nimport { DokuAccordionBody } from './accordion-body.component';\nimport { DokuAccordionHeader } from './accordion-header.component';\nimport { DokuAccordionItem } from './accordion-item.component';\nimport { DokuAccordionTitle } from './accordion-title.component';\nimport { DokuAccordion } from './accordion.component';\n\n@NgModule({\n  imports: [\n    DokuAccordion,\n    DokuAccordionItem,\n    DokuAccordionHeader,\n    DokuAccordionTitle,\n    DokuAccordionBody,\n  ],\n  exports: [\n    DokuAccordion,\n    DokuAccordionItem,\n    DokuAccordionHeader,\n    DokuAccordionTitle,\n    DokuAccordionBody,\n  ],\n})\nexport class DokuAccordionModule {}\n","import { CommonModule, NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostBinding,\n  Input,\n  Output,\n  ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n  selector: 'doku-alert',\n  exportAs: 'dokuAlert',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './alert.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuAlert {\n  @HostBinding('class')\n  protected readonly hostClasses: NgClass['ngClass'] = ['d-alert-host'];\n\n  /**\n   * @default 'neutral'\n   */\n  @Input() state: 'neutral' | 'success' | 'warning' | 'error' = 'neutral';\n\n  /**\n   * Whether alert can be dismissed.\n   * @default false\n   */\n  @Input() dismissible = false;\n\n  /**\n   * Whether alert should have full width.\n   */\n  @HostBinding('class.d-alert-full-width')\n  @Input()\n  fullWidth = false;\n\n  @Output() dismissed = new EventEmitter();\n\n  constructor(private elementRef: ElementRef) {}\n\n  protected get classes(): NgClass['ngClass'] {\n    return 'd-alert-state-' + this.state;\n  }\n\n  dismiss() {\n    if (!this.dismissible) return;\n    this.dismissed.emit();\n    (this.elementRef.nativeElement as HTMLElement).remove();\n  }\n}\n","<div class=\"d-alert\" [ngClass]=\"classes\">\n  <span class=\"d-alert-icon\">\n    <ng-container *ngIf=\"state === 'neutral'\" [ngTemplateOutlet]=\"iconQuestion\"></ng-container>\n    <ng-container *ngIf=\"state === 'success'\" [ngTemplateOutlet]=\"iconCheck\"></ng-container>\n    <ng-container *ngIf=\"state === 'warning'\" [ngTemplateOutlet]=\"iconExclamation\"></ng-container>\n    <ng-container *ngIf=\"state === 'error'\" [ngTemplateOutlet]=\"iconTimes\"></ng-container>\n  </span>\n  <span>\n    <ng-content></ng-content>\n  </span>\n  <span *ngIf=\"dismissible\" class=\"d-alert-action-dismiss-wrapper\">\n    <span class=\"d-alert-action-dismiss\" (click)=\"dismiss()\">\n      <ng-container [ngTemplateOutlet]=\"iconClose\"></ng-container>\n    </span>\n  </span>\n</div>\n\n<ng-template #iconTimes>\n  <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path\n      d=\"M12 2C6.47581 2 2 6.47581 2 12C2 17.5242 6.47581 22 12 22C17.5242 22 22 17.5242 22 12C22 6.47581 17.5242 2 12 2ZM16.9032 14.625C17.0927 14.8145 17.0927 15.121 16.9032 15.3105L15.3065 16.9032C15.1169 17.0927 14.8105 17.0927 14.621 16.9032L12 14.2581L9.375 16.9032C9.18548 17.0927 8.87903 17.0927 8.68952 16.9032L7.09677 15.3065C6.90726 15.1169 6.90726 14.8105 7.09677 14.621L9.74194 12L7.09677 9.375C6.90726 9.18548 6.90726 8.87903 7.09677 8.68952L8.69355 7.09274C8.88306 6.90323 9.18952 6.90323 9.37903 7.09274L12 9.74194L14.625 7.09677C14.8145 6.90726 15.121 6.90726 15.3105 7.09677L16.9073 8.69355C17.0968 8.88306 17.0968 9.18952 16.9073 9.37903L14.2581 12L16.9032 14.625Z\"\n      fill=\"currentColor\"\n    />\n  </svg>\n</ng-template>\n\n<ng-template #iconCheck>\n  <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path\n      d=\"M22 12C22 17.5229 17.5229 22 12 22C6.47714 22 2 17.5229 2 12C2 6.47714 6.47714 2 12 2C17.5229 2 22 6.47714 22 12ZM10.8433 17.2949L18.2627 9.87556C18.5146 9.62363 18.5146 9.21512 18.2627 8.96319L17.3503 8.05081C17.0983 7.79883 16.6898 7.79883 16.4379 8.05081L10.3871 14.1015L7.56214 11.2766C7.3102 11.0246 6.90169 11.0246 6.64972 11.2766L5.73734 12.189C5.4854 12.4409 5.4854 12.8494 5.73734 13.1013L9.93089 17.2949C10.1829 17.5469 10.5913 17.5469 10.8433 17.2949Z\"\n      fill=\"currentColor\"\n    />\n  </svg>\n</ng-template>\n\n<ng-template #iconQuestion>\n  <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path\n      d=\"M22 12C22 17.5241 17.5225 22 12 22C6.47754 22 2 17.5241 2 12C2 6.47915 6.47754 2 12 2C17.5225 2 22 6.47915 22 12ZM12.2683 5.30645C10.0709 5.30645 8.66935 6.23214 7.56879 7.87734C7.42621 8.09048 7.47391 8.37794 7.67827 8.5329L9.07742 9.59379C9.2873 9.75294 9.58633 9.71508 9.74939 9.50823C10.4697 8.5946 10.9636 8.0648 12.06 8.0648C12.8837 8.0648 13.9027 8.59496 13.9027 9.39375C13.9027 9.99762 13.4042 10.3077 12.5908 10.7638C11.6423 11.2955 10.3871 11.9573 10.3871 13.6129V13.7742C10.3871 14.0414 10.6037 14.2581 10.871 14.2581H13.129C13.3962 14.2581 13.6129 14.0414 13.6129 13.7742V13.7204C13.6129 12.5728 16.9672 12.525 16.9672 9.41935C16.9672 7.08056 14.5412 5.30645 12.2683 5.30645ZM12 15.3065C10.9772 15.3065 10.1452 16.1385 10.1452 17.1613C10.1452 18.184 10.9772 19.0161 12 19.0161C13.0228 19.0161 13.8548 18.184 13.8548 17.1613C13.8548 16.1385 13.0228 15.3065 12 15.3065Z\"\n      fill=\"currentColor\"\n    />\n  </svg>\n</ng-template>\n\n<ng-template #iconExclamation>\n  <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path\n      d=\"M22 12C22 17.5241 17.5225 22 12 22C6.47754 22 2 17.5241 2 12C2 6.47915 6.47754 2 12 2C17.5225 2 22 6.47915 22 12ZM12 14.0161C10.9756 14.0161 10.1452 14.8466 10.1452 15.871C10.1452 16.8954 10.9756 17.7258 12 17.7258C13.0244 17.7258 13.8548 16.8954 13.8548 15.871C13.8548 14.8466 13.0244 14.0161 12 14.0161ZM10.239 7.34895L10.5381 12.8328C10.5521 13.0894 10.7643 13.2903 11.0212 13.2903H12.9788C13.2357 13.2903 13.4479 13.0894 13.4619 12.8328L13.761 7.34895C13.7761 7.07177 13.5554 6.83871 13.2779 6.83871H10.7221C10.4445 6.83871 10.2239 7.07177 10.239 7.34895Z\"\n      fill=\"currentColor\"\n    />\n  </svg>\n</ng-template>\n\n<ng-template #iconClose>\n  <svg width=\"13\" height=\"12\" viewBox=\"0 0 13 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path\n      d=\"M11.9188 0.2753C11.7488 0.104877 11.5179 0.00910126 11.2772 0.00910126C11.0364 0.00910126 10.8056 0.104877 10.6355 0.2753L6.185 4.71672L1.73449 0.266199C1.56445 0.0957752 1.33359 0 1.09285 0C0.852104 0 0.62125 0.0957752 0.451209 0.266199C0.0962603 0.621148 0.0962603 1.19453 0.451209 1.54948L4.90173 5.99999L0.451209 10.4505C0.0962603 10.8055 0.0962603 11.3788 0.451209 11.7338C0.806159 12.0887 1.37954 12.0887 1.73449 11.7338L6.185 7.28327L10.6355 11.7338C10.9905 12.0887 11.5639 12.0887 11.9188 11.7338C12.2737 11.3788 12.2737 10.8055 11.9188 10.4505L7.46828 5.99999L11.9188 1.54948C12.2646 1.20363 12.2646 0.621148 11.9188 0.2753Z\"\n      fill=\"currentColor\"\n    />\n  </svg>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { DokuAlert } from './alert.component';\n\n@NgModule({\n  imports: [DokuAlert],\n  exports: [DokuAlert],\n})\nexport class DokuAlertModule {}\n","import { NgClass } from '@angular/common';\nimport { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n  selector: '[doku-anchor-link]',\n  exportAs: 'dokuAnchorLink',\n  standalone: true,\n})\nexport class DokuAnchorLink {\n  @HostBinding('class') protected readonly classes: NgClass['ngClass'] = ['d-anchor-link'];\n}\n","import { NgModule } from '@angular/core';\nimport { DokuAnchorLink } from './anchor-link.directive';\n\n@NgModule({\n  imports: [DokuAnchorLink],\n  exports: [DokuAnchorLink],\n})\nexport class DokuAnchorLinkModule {}\n","import { CommonModule, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { DokuBadgeColor, DokuBadgeVariant } from './badge.types';\n\n@Component({\n  selector: 'doku-badge',\n  exportAs: 'dokuBadge',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './badge.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuBadge {\n  /**\n   * The color of the badge. Default value is 'green'.\n   */\n  @Input() color: DokuBadgeColor = 'green';\n\n  /**\n   * The variant of the badge. Default value is 'filled'.\n   */\n  @Input() variant: DokuBadgeVariant = 'filled';\n\n  protected get classes(): NgClass['ngClass'] {\n    return `d-badge-${this.variant} d-badge-${this.color} `;\n  }\n}\n","<div class=\"d-badge\" [ngClass]=\"classes\"><ng-content></ng-content></div>\n","import { NgModule } from '@angular/core';\nimport { DokuBadge } from './badge.component';\n\n@NgModule({\n  imports: [DokuBadge],\n  exports: [DokuBadge],\n})\nexport class DokuBadgeModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { DokuBreadcrumbItem } from './breadcrumb.interface';\n\n@Component({\n  selector: 'doku-breadcrumb',\n  exportAs: 'dokuBreadcrumb',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './breadcrumb.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuBreadcrumb {\n  @Input() items: DokuBreadcrumbItem[] = [];\n\n  get hasBreadcrumb(): boolean {\n    return !!this.items?.length;\n  }\n\n  get totalBreadcrumbs(): number {\n    return this.items?.length || 0;\n  }\n}\n","<div *ngIf=\"hasBreadcrumb\" class=\"d-breadcrumbs\" doku-typography>\n  <div\n    *ngFor=\"let breadcrumb of items; index as idx\"\n    class=\"d-breadcrumb-item\"\n    [class.active]=\"totalBreadcrumbs === idx + 1\"\n  >\n    <span\n      (click)=\"totalBreadcrumbs !== idx + 1 && breadcrumb.clickCallback?.()\"\n      class=\"d-breadcrumb-nav\"\n      [class.clickable]=\"totalBreadcrumbs !== idx + 1 && !!breadcrumb.clickCallback\"\n    >\n      {{ breadcrumb.name || \"\" }}\n    </span>\n    <span *ngIf=\"totalBreadcrumbs !== idx + 1\" class=\"d-breadcrumb-divider\">/</span>\n  </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { DokuBreadcrumb } from './breadcrumb.component';\n\n@NgModule({\n  imports: [DokuBreadcrumb],\n  exports: [DokuBreadcrumb],\n})\nexport class DokuBreadcrumbModule {}\n","import { CommonModule, NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  HostBinding,\n  HostListener,\n  Input,\n  ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n  selector: 'button[doku-button], a[doku-button]',\n  exportAs: 'dokuButton',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './button.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuButton {\n  /**\n   * Variant of the button.\n   *\n   * @default `primary`\n   */\n  @Input() variant: 'primary' | 'secondary' | 'text' | 'normal' = 'primary';\n\n  /**\n   * Size of the button.\n   *\n   * @default `medium`\n   */\n  @Input() size: 'small' | 'medium' | 'large' = 'medium';\n\n  /**\n   * Whether button should be disabled.\n   *\n   * @default false\n   */\n  @HostBinding('class.d-btn-disabled')\n  @Input()\n  disabled = false;\n\n  /**\n   * Whether button should be on loading state.\n   *\n   * If `true`, the button cannot be clicked.\n   *\n   * When `disabled` and `loading` are true, the `disabled` will take precedence.\n   *\n   * @default false\n   */\n  @HostBinding('class.d-btn-loading')\n  @Input()\n  loading = false;\n\n  constructor(private elementRef: ElementRef) {}\n\n  protected get element(): HTMLElement {\n    return this.elementRef.nativeElement;\n  }\n\n  @HostBinding('class')\n  protected get classes(): NgClass['ngClass'] {\n    return ['d-btn', `d-btn-${this.variant}`, `d-btn-${this.size}`];\n  }\n\n  /**\n   * Provide native `disabled` attribute to prevent button from being clicked.\n   */\n  @HostBinding('attr.disabled')\n  protected get disabledAttribute(): boolean | null {\n    return this.disabled || this.loading || null;\n  }\n\n  @HostBinding('class.d-btn-icon')\n  protected get isIconOnly(): boolean {\n    return Array.from(this.element.children).some((child) => child.hasAttribute('icon-only'));\n  }\n\n  @HostListener('click', ['$event'])\n  protected onClick(e: Event) {\n    if (this.disabled || this.loading) {\n      e.preventDefault();\n      e.stopImmediatePropagation();\n    }\n  }\n}\n","<span *ngIf=\"this.loading && !this.disabled\" class=\"d-btn-spinner\"><span></span></span>\n\n<ng-content select=\"[icon-left]\"></ng-content>\n\n<ng-content></ng-content>\n\n<ng-content select=\"[icon-right]\"></ng-content>\n","import { NgModule } from '@angular/core';\nimport { DokuButton } from './button.component';\n\n@NgModule({\n  imports: [DokuButton],\n  exports: [DokuButton],\n})\nexport class DokuButtonModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-card-body',\n  exportAs: 'dokuCardBody',\n  standalone: true,\n  imports: [CommonModule],\n  template: `<ng-content></ng-content>`,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuCardBody {\n  @HostBinding('class')\n  protected readonly classes = 'd-card-body';\n}\n","import { CommonModule, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-card-cover',\n  exportAs: 'dokuCardCover',\n  standalone: true,\n  imports: [CommonModule],\n  template: `<ng-content></ng-content>`,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuCardCover {\n  @HostBinding('class')\n  protected readonly classes: NgClass['ngClass'] = 'd-card-cover';\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-card-footer',\n  exportAs: 'dokuCardFooter',\n  standalone: true,\n  imports: [CommonModule],\n  template: `<ng-content></ng-content>`,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuCardFooter {\n  @HostBinding('class')\n  protected readonly classes = 'd-card-footer';\n}\n","import { CommonModule, NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  HostBinding,\n  Input,\n  ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n  selector: 'doku-card-header',\n  exportAs: 'dokuCardHeader',\n  standalone: true,\n  imports: [CommonModule],\n  template: `<ng-content></ng-content>`,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuCardHeader {\n  /**\n   * The background of the header element.\n   * @default 'transparent'\n   */\n  @Input() background: 'transparent' | 'colored' = 'transparent';\n\n  /**\n   * Whether the header have a line divider at the bottom.\n   *\n   * @default false\n   */\n  @HostBinding('class.with-divider')\n  @Input()\n  withDivider = false;\n\n  /**\n   * Whether to remove the padding bottom.\n   *\n   * Does not works when `background` is colored or `withDivider` is true.\n   *\n   * @default false\n   */\n  @Input() dense = false;\n\n  @HostBinding('class')\n  protected get classes(): NgClass['ngClass'] {\n    return ['d-card-header', `d-card-header-${this.background}`];\n  }\n\n  @HostBinding('class.d-card-header-dense')\n  protected get classDense(): boolean {\n    if (this.background === 'colored' || this.withDivider) return false;\n    return this.dense;\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-card-section',\n  exportAs: 'dokuCardSection',\n  standalone: true,\n  imports: [CommonModule],\n  template: '<ng-content></ng-content>',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuCardSection {\n  @HostBinding('class')\n  protected readonly classes = 'd-card-section';\n}\n","import { CommonModule, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-card-subtitle',\n  exportAs: 'dokuCardSubtitle',\n  standalone: true,\n  imports: [CommonModule],\n  template: `<ng-content></ng-content>`,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuCardSubtitle {\n  @HostBinding('class')\n  protected readonly classes: NgClass['ngClass'] = 'd-card-subtitle';\n}\n","import { CommonModule, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-card-title',\n  exportAs: 'dokuCardTitle',\n  standalone: true,\n  imports: [CommonModule],\n  template: `<ng-content></ng-content>`,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuCardTitle {\n  @HostBinding('class')\n  protected readonly classes: NgClass['ngClass'] = 'd-card-title';\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-card',\n  exportAs: 'dokuCard',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './card.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuCard {\n  @HostBinding('class')\n  protected readonly classes = 'd-card';\n}\n","<ng-content select=\"doku-card-cover\"></ng-content>\n<ng-content select=\"doku-card-header\"></ng-content>\n<ng-content select=\"doku-card-body\"></ng-content>\n<ng-content select=\"doku-card-footer\"></ng-content>\n<ng-content select=\"doku-card-section\"></ng-content>\n<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { DokuCardBody } from './card-body.component';\nimport { DokuCardCover } from './card-cover.component';\nimport { DokuCardFooter } from './card-footer.component';\nimport { DokuCardHeader } from './card-header.component';\nimport { DokuCardSection } from './card-section.component';\nimport { DokuCardSubtitle } from './card-subtitle.component';\nimport { DokuCardTitle } from './card-title.component';\nimport { DokuCard } from './card.component';\n\n@NgModule({\n  imports: [\n    DokuCard,\n    DokuCardHeader,\n    DokuCardFooter,\n    DokuCardTitle,\n    DokuCardSubtitle,\n    DokuCardBody,\n    DokuCardCover,\n    DokuCardSection,\n  ],\n  exports: [\n    DokuCard,\n    DokuCardHeader,\n    DokuCardFooter,\n    DokuCardTitle,\n    DokuCardSubtitle,\n    DokuCardBody,\n    DokuCardCover,\n    DokuCardSection,\n  ],\n})\nexport class DokuCardModule {}\n","import { CommonModule, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-checkbox-sub-label',\n  exportAs: 'dokuCheckboxSubLabel',\n  standalone: true,\n  imports: [CommonModule],\n  template: `<ng-content></ng-content>`,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuCheckboxSubLabel {\n  @HostBinding('class')\n  protected readonly classes: NgClass['ngClass'] = `d-checkbox-sub-label`;\n}\n","import { CommonModule, NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  HostBinding,\n  Input,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Output,\n  Self,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { ReplaySubject, takeUntil } from 'rxjs';\n\nlet uniqueId = 1;\n\n@Component({\n  selector: 'doku-checkbox',\n  exportAs: 'dokuCheckbox',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './checkbox.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuCheckbox implements ControlValueAccessor, OnDestroy, OnInit {\n  /**\n   * Unique id of the checkbox. By default, it's auto-generated.\n   * @default `d-checkbox-[uniqueId]`\n   */\n  @Input() id = `d-checkbox-${uniqueId++}`;\n\n  /**\n   * Whether the checkbox is disabled.\n   *\n   * If using reactive forms, the value will be replaced.\n   * Use form control's method to disable the Checkbox.\n   *\n   * @default false\n   */\n  @HostBinding('class.d-checkbox-disabled')\n  @Input()\n  disabled = false;\n\n  /**\n   * Whether the checkbox is checked.\n   *\n   * If using reactive forms or template-drive forms, the value will be replaced.\n   *\n   * @default false\n   */\n  @HostBinding('class.d-checkbox-checked')\n  @Input()\n  checked = false;\n\n  /**\n   * The size of the checkbox.\n   * @default 'medium'\n   */\n  @Input() size: 'small' | 'medium' = 'medium';\n\n  /**\n   * An event emitted when checked is changed.\n   */\n  @Output() checkedChange = new EventEmitter<boolean>();\n\n  private destroy$ = new ReplaySubject();\n\n  constructor(private cdr: ChangeDetectorRef, @Optional() @Self() private ngControl: NgControl) {\n    if (this.ngControl) {\n      this.ngControl.valueAccessor = this;\n    }\n  }\n\n  @HostBinding('class')\n  protected get classes(): NgClass['ngClass'] {\n    return [`d-checkbox`, `d-checkbox-${this.size}`];\n  }\n\n  ngOnInit(): void {\n    this.checkedChange.pipe(takeUntil(this.destroy$)).subscribe(() => {\n      this.onChange?.(this.checked);\n      this.onTouched?.();\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next(true);\n    this.destroy$.complete();\n  }\n\n  onChange?: (_: any) => void;\n  onTouched?: () => void;\n\n  writeValue(value: boolean): void {\n    this.checked = value;\n    this.cdr.detectChanges();\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  registerOnChange(fn: (_: any) => unknown): void {\n    this.onChange = fn;\n  }\n\n  setDisabledState?(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n    this.cdr.detectChanges();\n  }\n\n  protected onCheckboxChange(): void {\n    if (this.disabled) return;\n    this.checked = !this.checked;\n    this.checkedChange.emit(this.checked);\n  }\n}\n","<div class=\"d-checkbox-indicator\">\n  <input\n    #input\n    type=\"checkbox\"\n    [id]=\"id\"\n    [disabled]=\"disabled\"\n    [checked]=\"checked\"\n    (change)=\"onCheckboxChange()\"\n  />\n  <span *ngIf=\"checked\" class=\"d-checkbox-indicator-icon\" (click)=\"input.click()\">\n    <ng-container *ngIf=\"checked\" [ngTemplateOutlet]=\"iconCheck\"></ng-container>\n  </span>\n</div>\n\n<div class=\"d-checkbox-content\">\n  <label [for]=\"id\" class=\"d-checkbox-label\"><ng-content></ng-content></label>\n  <ng-content select=\"doku-checkbox-sub-label\"></ng-content>\n</div>\n\n<ng-template #iconCheck>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\">\n    <path\n      fill-rule=\"evenodd\"\n      clip-rule=\"evenodd\"\n      d=\"M17.3183 4.55752C17.3765 4.61558 17.4227 4.68455 17.4542 4.76048C17.4857 4.83641 17.5019 4.91781 17.5019 5.00002C17.5019 5.08223 17.4857 5.16363 17.4542 5.23956C17.4227 5.31549 17.3765 5.38446 17.3183 5.44252L8.56829 14.1925C8.51023 14.2507 8.44126 14.2969 8.36533 14.3284C8.2894 14.3599 8.208 14.3761 8.12579 14.3761C8.04358 14.3761 7.96218 14.3599 7.88625 14.3284C7.81032 14.2969 7.74135 14.2507 7.68329 14.1925L3.30829 9.81752C3.19093 9.70016 3.125 9.54099 3.125 9.37502C3.125 9.20905 3.19093 9.04988 3.30829 8.93252C3.42565 8.81516 3.58482 8.74923 3.75079 8.74923C3.91676 8.74923 4.07593 8.81516 4.19329 8.93252L8.12579 12.8663L16.4333 4.55752C16.4913 4.49931 16.5603 4.45314 16.6362 4.42163C16.7122 4.39012 16.7936 4.3739 16.8758 4.3739C16.958 4.3739 17.0394 4.39012 17.1153 4.42163C17.1913 4.45314 17.2602 4.49931 17.3183 4.55752Z\"\n      fill=\"currentColor\"\n    />\n  </svg>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { DokuCheckboxSubLabel } from './checkbox-sub-label.component';\nimport { DokuCheckbox } from './checkbox.component';\n\n@NgModule({\n  imports: [DokuCheckbox, DokuCheckboxSubLabel],\n  exports: [DokuCheckbox, DokuCheckboxSubLabel],\n})\nexport class DokuCheckboxModule {}\n","import { NgClass } from '@angular/common';\nimport { Directive, HostBinding, Input } from '@angular/core';\n\n@Directive({\n  selector: '[doku-field-prefix]',\n  exportAs: 'dokuFieldPrefix',\n  standalone: true,\n})\nexport class DokuFieldPrefix {\n  /**\n   * The appearance of the prefix content.\n   * - `inline`, use field padding - ideal for icon.\n   * - `border-block`, has own padding and border as a separator - ideal for text like \"IDR\".\n   * - `block`, the looks will be based on the provided content - ideal for component like Button.\n   * - `border-block-inside`, looks like border block but no padding\n   * and inside the wrapper border - ideal for select component.\n   */\n  @Input() appearance: 'inline' | 'border-block' | 'block' | 'border-block-inside' = 'inline';\n\n  /**\n   * Whether to use background color. Support is limited by appearance.\n   *\n   * Supported appearances:\n   * - `border-block`\n   * - `border-block-inside`\n   */\n  @Input() useBackgroundColor = false;\n\n  @HostBinding('class.d-field-prefix')\n  protected readonly classPrefix = true;\n\n  @HostBinding('class')\n  protected get classAppearance(): NgClass['ngClass'] {\n    return [`d-field-prefix-${this.appearance}`, this.getBackgroundClass()];\n  }\n\n  private getBackgroundClass() {\n    if (!this.useBackgroundColor) return null;\n    if (this.appearance === 'border-block' || this.appearance === 'border-block-inside') {\n      return 'd-field-prefix-use-background';\n    }\n    return null;\n  }\n}\n","import { NgClass } from '@angular/common';\nimport { Directive, HostBinding, Input } from '@angular/core';\n\n@Directive({\n  selector: '[doku-field-suffix]',\n  exportAs: 'dokuFieldSuffix',\n  standalone: true,\n})\nexport class DokuFieldSuffix {\n  /**\n   * The appearance of the suffix content.\n   * - `inline`, use field padding - ideal for icon.\n   * - `border-block`, has own padding and border as a separator - ideal for text like \"IDR\".\n   * - `block`, the looks will be based on the provided content - ideal for component like Button.\n   * - `border-block-inside`, looks like border block but no padding\n   * and inside the wrapper border - ideal for select component.\n   */\n  @Input() appearance: 'inline' | 'border-block' | 'block' | 'border-block-inside' = 'inline';\n\n  /**\n   * Whether to use background color. Support is limited by appearance.\n   *\n   * Supported appearances:\n   * - `border-block`\n   * - `border-block-inside`\n   */\n  @Input() useBackgroundColor = false;\n\n  @HostBinding('class.d-field-suffix')\n  protected readonly classSuffix = true;\n\n  @HostBinding('class')\n  protected get classAppearance(): NgClass['ngClass'] {\n    return [`d-field-suffix-${this.appearance}`, this.getBackgroundClass()];\n  }\n\n  private getBackgroundClass() {\n    if (!this.useBackgroundColor) return null;\n    if (this.appearance === 'border-block' || this.appearance === 'border-block-inside') {\n      return 'd-field-suffix-use-background';\n    }\n    return null;\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-field-error',\n  exportAs: 'dokuFieldError',\n  standalone: true,\n  imports: [CommonModule],\n  template: '<ng-content></ng-content>',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuFieldError {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-field-hint',\n  exportAs: 'dokuFieldHint',\n  standalone: true,\n  imports: [CommonModule],\n  template: '<ng-content></ng-content>',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuFieldHint {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-field-success',\n  exportAs: 'dokuFieldSuccess',\n  standalone: true,\n  imports: [CommonModule],\n  template: '<ng-content></ng-content>',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuFieldSuccess {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-field-label',\n  exportAs: 'dokuFieldLabel',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './field-label.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuFieldLabel {\n  @Input() for = '';\n}\n","<div class=\"d-field-label-wrapper\">\n  <label [for]=\"for\" class=\"d-field-label d-text-body-m\"><ng-content></ng-content></label>\n  <ng-content select=\"[doku-field-badge]\"></ng-content>\n</div>\n","import { InjectionToken } from '@angular/core';\n\nexport const DOKU_FORM_FIELD_ACCESSOR = new InjectionToken('DOKU_FORM_FIELD_ACCESSOR');\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterContentInit,\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  ContentChildren,\n  ElementRef,\n  HostBinding,\n  Input,\n  OnChanges,\n  OnDestroy,\n  QueryList,\n  SimpleChanges,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { ReplaySubject, filter, fromEvent, takeUntil } from 'rxjs';\nimport { DokuFieldError } from './field-helpers/field-error.component';\nimport { DokuFieldHint } from './field-helpers/field-hint.component';\nimport { DokuFieldSuccess } from './field-helpers/field-success.component';\nimport {\n  DokuFormFieldAccessor,\n  DokuFormFieldAccessorValidateState,\n  DokuFormFieldAccessorValidateValue,\n  DokuFormFieldOptions,\n} from './form-field-accessor';\nimport { DOKU_FORM_FIELD_ACCESSOR } from './token';\n\n@Component({\n  selector: 'doku-form-field',\n  exportAs: 'dokuFormField',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './form-field.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuFormField implements AfterContentInit, AfterViewInit, OnDestroy, OnChanges {\n  /**\n   * Whether to show the success behavior when the validation is valid.\n   * @default false\n   */\n  @HostBinding('class.d-field-show-success')\n  @Input()\n  showSuccessBehavior = false;\n\n  /**\n   * Override built-in error state handler.\n   * @default undefined\n   */\n  @Input() isErrorState?: boolean;\n\n  /**\n   * Override built-in success state handler.\n   */\n  @Input() isSuccessState?: boolean;\n\n  @HostBinding('class')\n  protected readonly classes = 'd-form-field';\n\n  protected fieldOptions?: DokuFormFieldOptions;\n\n  protected hasFieldHint = false;\n  protected hasFieldError = false;\n  protected hasFieldSuccess = false;\n  protected get shouldShowFieldHelper(): boolean {\n    if (this.hasFieldSuccess && this.showSuccessBehavior && this.isSuccess) return this.isSuccess;\n    if (this.hasFieldError && this.isError) return this.isError;\n    if (this.hasFieldHint) return true;\n    return false;\n  }\n\n  @HostBinding('class.d-form-field-error')\n  protected get isError(): boolean {\n    return this._isError;\n  }\n  protected set isError(value: boolean) {\n    this._isError = value;\n    this.cdRef.markForCheck();\n  }\n  private _isError = false;\n\n  @HostBinding('class.d-form-field-success')\n  protected get isSuccess(): boolean {\n    return this._isSuccess;\n  }\n  protected set isSuccess(value: boolean) {\n    this._isSuccess = value;\n    this.cdRef.markForCheck();\n  }\n  private _isSuccess = false;\n\n  private _isFocus = false;\n  protected set isFocus(value: boolean) {\n    this._isFocus = this.isDisabled || this.isReadonly ? false : value;\n  }\n  protected get isFocus(): boolean {\n    return this._isFocus;\n  }\n\n  @HostBinding('class.d-field-disabled')\n  protected isDisabled = false;\n\n  @HostBinding('class.d-field-readonly')\n  protected isReadonly = false;\n\n  @HostBinding('class.d-field-textarea')\n  protected isTextarea = false;\n\n  @ContentChild(DOKU_FORM_FIELD_ACCESSOR) private formFieldAccessor?: DokuFormFieldAccessor;\n\n  @ContentChildren(DokuFieldHint, { descendants: false })\n  private fieldHint?: QueryList<DokuFieldHint>;\n  @ContentChildren(DokuFieldError, { descendants: false })\n  private fieldError?: QueryList<DokuFieldError>;\n  @ContentChildren(DokuFieldSuccess, { descendants: false })\n  private fieldSuccess?: QueryList<DokuFieldSuccess>;\n\n  @ViewChild('inputWrapper') private inputWrapperElementRef?: ElementRef;\n\n  private destroy$ = new ReplaySubject();\n\n  constructor(private cdRef: ChangeDetectorRef) {}\n\n  protected get inputWrapperElement(): HTMLElement {\n    return this.inputWrapperElementRef?.nativeElement;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['isErrorState']) {\n      this.useCustomErrorStateMatcher(changes['isErrorState'].currentValue);\n    }\n    if (changes['isSuccessState']) {\n      this.useCustomSuccessStateMatcher(changes['isSuccessState'].currentValue);\n    }\n  }\n\n  ngAfterContentInit(): void {\n    this.hasFieldHint = !!this.fieldHint?.length;\n    this.hasFieldError = !!this.fieldError?.length;\n    this.hasFieldSuccess = !!this.fieldSuccess?.length;\n\n    this.handleFormFieldOptions();\n    this.handleRegisterOnFocus();\n    this.handleRegisterOnBlur();\n    this.handleRegisterOnDisable();\n    this.handleRegisterOnReadonly();\n    this.handleRegisterOnValidate();\n    this.handleTextarea();\n  }\n\n  ngAfterViewInit(): void {\n    this.handleOnClickWrapperElement();\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next(1);\n    this.destroy$.complete();\n  }\n\n  private handleFormFieldOptions() {\n    if (!this.formFieldAccessor?.fieldOptions) return;\n    this.fieldOptions = this.formFieldAccessor.fieldOptions;\n  }\n\n  private handleRegisterOnFocus() {\n    if (!this.formFieldAccessor) return;\n    const focusHandler = () => {\n      this.isFocus = true;\n      this.cdRef.markForCheck();\n    };\n    this.formFieldAccessor.registerOnFocus?.(focusHandler);\n  }\n\n  private handleRegisterOnBlur() {\n    if (!this.formFieldAccessor) return;\n    const blurHandler = () => {\n      this.isFocus = false;\n      this.cdRef.markForCheck();\n    };\n    this.formFieldAccessor.registerOnBlur?.(blurHandler);\n  }\n\n  private handleRegisterOnDisable() {\n    if (!this.formFieldAccessor) return;\n    const disableHandler = (value: boolean) => {\n      this.isDisabled = value;\n      this.cdRef.markForCheck();\n    };\n    this.formFieldAccessor.registerOnDisable?.(disableHandler);\n  }\n\n  private handleRegisterOnReadonly() {\n    if (!this.formFieldAccessor) return;\n    const readonlyHandler = (value: boolean) => {\n      this.isReadonly = value;\n      this.cdRef.markForCheck();\n    };\n    this.formFieldAccessor.registerOnReadonly?.(readonlyHandler);\n  }\n\n  private handleRegisterOnValidate() {\n    if (!this.formFieldAccessor) return;\n    const validationHandler = (\n      value?: DokuFormFieldAccessorValidateValue,\n      state?: DokuFormFieldAccessorValidateState\n    ) => {\n      if (typeof this.isErrorState === 'boolean') return;\n      if (typeof this.isSuccessState === 'boolean') return;\n\n      const isControlReset = state?.pristine && state.untouched;\n\n      if (isControlReset) {\n        this.isError = false;\n        this.isSuccess = false;\n      } else if (value === 'valid') {\n        this.isError = false;\n        this.isSuccess = true;\n      } else if (value === 'invalid') {\n        this.isError = true;\n        this.isSuccess = false;\n      } else {\n        this.isError = false;\n        this.isSuccess = false;\n      }\n    };\n    this.formFieldAccessor.registerOnValidate?.(validationHandler);\n  }\n\n  private handleOnClickWrapperElement() {\n    if (!this.formFieldAccessor) return;\n    fromEvent(this.inputWrapperElement, 'click')\n      .pipe(\n        filter((ev) => !this.isElementPrefixOrSuffixClicked(ev.target as HTMLElement)),\n        takeUntil(this.destroy$)\n      )\n      .subscribe((e) => {\n        this.formFieldAccessor?.onClickWrapperElement?.(e);\n      });\n  }\n\n  private handleTextarea() {\n    if (!this.formFieldAccessor) return;\n    const isTextarea =\n      (this.formFieldAccessor as any).elementRef?.nativeElement?.nodeName?.toLowerCase() ===\n      'textarea';\n    if (!isTextarea) return;\n    this.isTextarea = true;\n  }\n\n  private isElementPrefixOrSuffixClicked(srcElement: HTMLElement): boolean {\n    const prefixElement: HTMLElement | null =\n      this.inputWrapperElement.querySelector('[doku-field-prefix]');\n    const suffixElement: HTMLElement | null =\n      this.inputWrapperElement.querySelector('[doku-field-suffix]');\n\n    let clicked = false;\n\n    if (prefixElement) clicked = this.checkElementChildren(srcElement, prefixElement);\n    if (clicked) return clicked;\n    if (suffixElement) clicked = this.checkElementChildren(srcElement, suffixElement);\n    return clicked;\n  }\n\n  private checkElementChildren(clickedElement: HTMLElement, checkElement?: HTMLElement): boolean {\n    if (!clickedElement || !checkElement) return false;\n    if (clickedElement === checkElement) return true;\n    if (!checkElement.hasChildNodes()) return false;\n    return Array.from(checkElement.children).some((child) =>\n      this.checkElementChildren(clickedElement, child as HTMLElement)\n    );\n  }\n\n  private useCustomErrorStateMatcher(value: boolean): void {\n    this.isError = value;\n  }\n\n  private useCustomSuccessStateMatcher(value: boolean): void {\n    this.isSuccess = value;\n  }\n}\n","<ng-content select=\"doku-field-label\"></ng-content>\n\n<div\n  #inputWrapper\n  class=\"d-field-input-wrapper\"\n  [class.d-field-focus]=\"isFocus\"\n  [class.no-style]=\"fieldOptions?.withoutInputStyle\"\n>\n  <ng-content select=\"[doku-field-prefix]\"></ng-content>\n  <ng-content></ng-content>\n  <ng-content select=\"[doku-field-suffix]\"></ng-content>\n</div>\n\n<div *ngIf=\"shouldShowFieldHelper\" class=\"d-field-helper-text d-text-body-s\">\n  <ng-container *ngIf=\"hasFieldHint && !isError && (!isSuccess || !showSuccessBehavior)\">\n    <ng-content select=\"doku-field-hint\"></ng-content>\n  </ng-container>\n  <ng-container *ngIf=\"hasFieldError && isError\">\n    <ng-content select=\"doku-field-error\"></ng-content>\n  </ng-container>\n  <ng-container *ngIf=\"hasFieldSuccess && isSuccess && showSuccessBehavior\">\n    <ng-content select=\"doku-field-success\"></ng-content>\n  </ng-container>\n</div>\n","import { NgModule } from '@angular/core';\nimport { DokuFieldPrefix } from './directives/field-prefix.directive';\nimport { DokuFieldSuffix } from './directives/field-suffix.directive';\nimport { DokuFieldError } from './field-helpers/field-error.component';\nimport { DokuFieldHint } from './field-helpers/field-hint.component';\nimport { DokuFieldSuccess } from './field-helpers/field-success.component';\nimport { DokuFieldLabel } from './field-label.component';\nimport { DokuFormField } from './form-field.component';\n\n@NgModule({\n  imports: [\n    DokuFormField,\n    DokuFieldLabel,\n    DokuFieldHint,\n    DokuFieldError,\n    DokuFieldSuccess,\n    DokuFieldSuffix,\n    DokuFieldPrefix,\n  ],\n  exports: [\n    DokuFormField,\n    DokuFieldLabel,\n    DokuFieldHint,\n    DokuFieldError,\n    DokuFieldSuccess,\n    DokuFieldSuffix,\n    DokuFieldPrefix,\n  ],\n})\nexport class DokuFormFieldModule {}\n","import { NgClass } from '@angular/common';\nimport {\n  AfterViewInit,\n  Directive,\n  ElementRef,\n  HostBinding,\n  Input,\n  OnDestroy,\n  Optional,\n  Self,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { ReplaySubject, delay, distinctUntilChanged, map, startWith, takeUntil } from 'rxjs';\nimport {\n  DOKU_FORM_FIELD_ACCESSOR,\n  DokuFormFieldAccessor,\n  DokuFormFieldAccessorValidateState,\n  DokuFormFieldAccessorValidateValue,\n} from '../form-field';\n\n@Directive({\n  selector: 'input[doku-input], textarea[doku-input]',\n  exportAs: 'dokuInput',\n  standalone: true,\n  providers: [\n    {\n      provide: DOKU_FORM_FIELD_ACCESSOR,\n      useExisting: DokuInput,\n      multi: true,\n    },\n  ],\n})\nexport class DokuInput implements DokuFormFieldAccessor, AfterViewInit, OnDestroy {\n  @HostBinding('class')\n  protected readonly classes: NgClass['ngClass'] = 'd-field-input';\n\n  @Input()\n  get disabled(): boolean {\n    return this._disabled;\n  }\n  set disabled(value: boolean | string) {\n    this._disabled = value !== false;\n    this.notifyState$.next('disabled');\n  }\n  private _disabled = false;\n\n  @Input()\n  get readonly(): boolean {\n    return this._readonly;\n  }\n  set readonly(value: boolean | string) {\n    this._readonly = value !== false;\n    this.notifyState$.next('readonly');\n  }\n  private _readonly = false;\n\n  private notifyState$ = new ReplaySubject<'disabled' | 'readonly'>();\n  private destroy$ = new ReplaySubject();\n\n  constructor(private elementRef: ElementRef, @Optional() @Self() private ngControl?: NgControl) {}\n\n  ngAfterViewInit(): void {\n    this.elementRef.nativeElement.onfocus = () => {\n      this.onFocus?.();\n    };\n\n    this.elementRef.nativeElement.onblur = () => {\n      this.onBlur?.();\n    };\n\n    this.ngControl?.statusChanges\n      ?.pipe(startWith(this.ngControl.status), distinctUntilChanged(), takeUntil(this.destroy$))\n      .subscribe(() => {\n        this.disabled = !!this.ngControl?.disabled;\n      });\n\n    this.ngControl?.statusChanges\n      ?.pipe(\n        map((status) => ({\n          status: status,\n          state: {\n            pristine: this.ngControl?.control?.pristine,\n            untouched: this.ngControl?.control?.untouched,\n          } as DokuFormFieldAccessorValidateState,\n        })),\n        distinctUntilChanged((prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)),\n        delay(0),\n        takeUntil(this.destroy$)\n      )\n      .subscribe(({ status, state }) => {\n        if (status === 'VALID') {\n          this.onValidate?.('valid', state);\n        } else if (status === 'INVALID') {\n          this.onValidate?.('invalid', state);\n        } else {\n          this.onValidate?.(undefined, state);\n        }\n      });\n\n    this.notifyState$\n      .pipe(\n        startWith({ disabled: this.disabled, readonly: this.readonly }),\n        map(() => ({ disabled: this.disabled, readonly: this.readonly })),\n        distinctUntilChanged((prev, current) => JSON.stringify(prev) === JSON.stringify(current)),\n        delay(0),\n        takeUntil(this.destroy$)\n      )\n      .subscribe(({ disabled, readonly }) => {\n        this.onDisable?.(disabled);\n        this.onReadonly?.(readonly);\n        // Handle element native attributes\n        const el = this.elementRef.nativeElement as HTMLInputElement;\n        disabled ? el.setAttribute('disabled', '') : el.removeAttribute('disabled');\n        readonly ? el.setAttribute('readonly', '') : el.removeAttribute('readonly');\n      });\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next(1);\n    this.destroy$.complete();\n  }\n\n  onBlur?: (() => void) | undefined;\n  onFocus?: (() => void) | undefined;\n  onDisable?: ((value: boolean) => void) | undefined;\n  onReadonly?: ((value: boolean) => void) | undefined;\n  onValidate?:\n    | ((\n        value?: DokuFormFieldAccessorValidateValue | undefined,\n        state?: DokuFormFieldAccessorValidateState\n      ) => void)\n    | undefined;\n\n  registerOnFocus(fn: () => void): void {\n    this.onFocus = fn;\n  }\n\n  registerOnBlur(fn: () => void): void {\n    this.onBlur = fn;\n  }\n\n  registerOnDisable(fn: (value: boolean) => void): void {\n    this.onDisable = fn;\n  }\n\n  registerOnReadonly(fn: (value: boolean) => void): void {\n    this.onReadonly = fn;\n  }\n\n  registerOnValidate(fn: (value?: DokuFormFieldAccessorValidateValue | undefined) => void): void {\n    this.onValidate = fn;\n  }\n\n  onClickWrapperElement(): void {\n    this.elementRef.nativeElement.focus();\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { DokuInput } from './input.directive';\n\n@NgModule({\n  imports: [DokuInput],\n  exports: [DokuInput],\n})\nexport class DokuInputModule {}\n","import { CommonModule, NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Host,\n  HostBinding,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Output,\n  Self,\n  SimpleChanges,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { BehaviorSubject, Subject, delay, distinctUntilChanged, skip, takeUntil } from 'rxjs';\nimport {\n  DOKU_FORM_FIELD_ACCESSOR,\n  DokuFormField,\n  DokuFormFieldAccessor,\n  DokuFormFieldAccessorValidateValue,\n  DokuFormFieldModule,\n  DokuFormFieldOptions,\n} from '../form-field';\nimport { DokuInput } from '../input';\n\n@Component({\n  selector: 'doku-color-picker',\n  exportAs: 'dokuColorPicker',\n  standalone: true,\n  imports: [CommonModule, DokuFormFieldModule, DokuInput, ReactiveFormsModule, FormsModule],\n  templateUrl: './color-picker.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{ provide: DOKU_FORM_FIELD_ACCESSOR, useExisting: DokuColorPicker }],\n})\nexport class DokuColorPicker\n  implements DokuFormFieldAccessor, ControlValueAccessor, OnInit, OnDestroy, OnChanges\n{\n  /**\n   * Whether to disable the color picker.\n   * @default false\n   */\n  @Input() disabled = false;\n\n  /**\n   * Whether color picker is readonly.\n   * @default false\n   */\n  @Input() readonly = false;\n\n  /**\n   * Value of the color picker in hexadecimal format.\n   * @default ''\n   */\n  @Input()\n  get value(): string {\n    return this._value || '';\n  }\n  set value(hexColor: string | null | undefined) {\n    this._value = hexColor || '';\n    this.value$.next(this._value);\n  }\n  private _value = '';\n\n  /**\n   * An event emitted when value changes.\n   */\n  @Output() valueChange = new EventEmitter<string>();\n\n  @HostBinding('class')\n  protected readonly classes: NgClass['ngClass'] = ['d-color-picker'];\n\n  private value$ = new BehaviorSubject(this.value);\n  private destroy$ = new Subject();\n\n  constructor(\n    private cdr: ChangeDetectorRef,\n    @Optional() @Self() private ngControl: NgControl,\n    @Optional() @Host() protected formField?: DokuFormField\n  ) {\n    if (ngControl) {\n      this.ngControl.valueAccessor = this;\n    }\n  }\n\n  fieldOptions?: DokuFormFieldOptions | undefined = { withoutInputStyle: true };\n  onDisable?: ((value: boolean) => void) | undefined;\n  onReadonly?: ((value: boolean) => void) | undefined;\n  onValidate?: ((value?: DokuFormFieldAccessorValidateValue | undefined) => void) | undefined;\n  registerOnDisable(fn: (value: boolean) => void): void {\n    this.onDisable = fn;\n  }\n  registerOnReadonly(fn: (value: boolean) => void): void {\n    this.onReadonly = fn;\n  }\n  registerOnValidate?(fn: (value?: DokuFormFieldAccessorValidateValue | undefined) => void): void {\n    this.onValidate = fn;\n  }\n\n  onChange?: (value: any) => void;\n  onTouched?: () => void;\n  writeValue(value?: string): void {\n    this.value = value;\n  }\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n  setDisabledState?(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n  }\n\n  ngOnInit(): void {\n    this.value$\n      .pipe(skip(1), distinctUntilChanged(), takeUntil(this.destroy$))\n      .subscribe((value) => {\n        this.valueChange.emit(value);\n        this.onChange?.(value);\n        this.cdr.detectChanges();\n      });\n\n    this.ngControl?.statusChanges\n      ?.pipe(distinctUntilChanged(), delay(0), takeUntil(this.destroy$))\n      .subscribe((status) => {\n        if (status === 'VALID') {\n          this.onValidate?.('valid');\n        } else if (status === 'INVALID') {\n          this.onValidate?.('invalid');\n        } else {\n          this.onValidate?.();\n        }\n        this.cdr.detectChanges();\n      });\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['disabled']?.previousValue !== changes['disabled']?.currentValue) {\n      this.onDisable?.(!!this.disabled);\n    }\n\n    if (changes['readonly']?.previousValue !== changes['readonly']?.currentValue) {\n      this.onReadonly?.(!!this.readonly);\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next(true);\n    this.destroy$.unsubscribe();\n  }\n\n  protected onColorChange(event: Event) {\n    this.value = (event.target as HTMLInputElement).value;\n    this.onTouched?.();\n  }\n}\n","<doku-form-field\n  [isErrorState]=\"formField?.['isError']\"\n  [isSuccessState]=\"formField?.['isSuccess']\"\n  [showSuccessBehavior]=\"!!formField?.['showSuccessBehavior']\"\n>\n  <input\n    type=\"text\"\n    doku-input\n    [(ngModel)]=\"value\"\n    (input)=\"onColorChange($event)\"\n    [disabled]=\"disabled\"\n    [readonly]=\"readonly\"\n    [maxlength]=\"7\"\n  />\n  <doku-form-field doku-field-prefix appearance=\"border-block-inside\" class=\"d-color-picker-prefix\">\n    <input\n      type=\"color\"\n      class=\"d-color-picker-input-color\"\n      [(ngModel)]=\"value\"\n      (input)=\"onColorChange($event)\"\n      [disabled]=\"disabled || readonly\"\n      [readonly]=\"readonly\"\n    />\n  </doku-form-field>\n</doku-form-field>\n","import { NgModule } from '@angular/core';\nimport { DokuColorPicker } from './color-picker.component';\n\n@NgModule({\n  imports: [DokuColorPicker],\n  exports: [DokuColorPicker],\n})\nexport class DokuColorPickerModule {}\n","import { Directive, ElementRef, Optional, Self } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\n@Directive({\n  selector: '[doku-end-date]',\n  exportAs: 'dokuEndDate',\n  standalone: true,\n})\nexport class DokuEndDate {\n  constructor(\n    protected elementRef: ElementRef,\n    @Optional() @Self() protected ngControl: NgControl\n  ) {}\n}\n","import { Directive, ElementRef, Optional, Self } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\n@Directive({\n  selector: '[doku-start-date]',\n  exportAs: 'dokuStartDate',\n  standalone: true,\n})\nexport class DokuStartDate {\n  constructor(\n    protected elementRef: ElementRef,\n    @Optional() @Self() protected ngControl: NgControl\n  ) {}\n}\n","import { CommonModule, NgClass } from '@angular/common';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChild,\n  HostBinding,\n  Input,\n  OnDestroy,\n  OnInit,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {\n  BehaviorSubject,\n  Subject,\n  combineLatest,\n  distinctUntilChanged,\n  filter,\n  iif,\n  map,\n  merge,\n  of,\n  skip,\n  startWith,\n  takeUntil,\n  tap,\n} from 'rxjs';\nimport { DateValue } from '../../base/date-picker-base-props.component';\nimport { DokuDateRangePicker } from '../../date-range-picker-float/date-range-picker.component';\nimport { DokuDateRangePickerInline } from '../../date-range-picker-inline/date-range-picker-inline.component';\nimport { DokuEndDate } from './end-date.directive';\nimport { DokuStartDate } from './start-date.directive';\n\n@Component({\n  selector: 'doku-date-range-picker-input',\n  exportAs: 'dokuDateRangePickerInput',\n  standalone: true,\n  imports: [CommonModule],\n  template: `<ng-content></ng-content>`,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuDateRangePickerInput implements OnInit, AfterContentInit, OnDestroy {\n  @HostBinding('class')\n  protected readonly class: NgClass['ngClass'] = 'd-date-range-picker-input';\n\n  @Input() rangePicker?: DokuDateRangePicker | DokuDateRangePickerInline;\n\n  @ContentChild(DokuStartDate) startDate?: DokuStartDate;\n  @ContentChild(DokuEndDate) endDate?: DokuEndDate;\n\n  private destroy$ = new Subject();\n\n  private dateChange$ = new BehaviorSubject<DateValue>({ start: null, end: null });\n\n  ngOnInit(): void {\n    if (this.rangePicker) {\n      this.rangePicker['dateChangeHandler'] = (value) => this.dateChange$.next(value);\n    }\n  }\n\n  ngAfterContentInit(): void {\n    this.hideInputs();\n    this.listenToDateChange();\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next(true);\n    this.destroy$.complete();\n  }\n\n  private hideInputs() {\n    if (this.startDate) {\n      (this.startDate['elementRef'].nativeElement as HTMLElement).style.display = 'none';\n    }\n    if (this.endDate) {\n      (this.endDate['elementRef'].nativeElement as HTMLElement).style.display = 'none';\n    }\n  }\n\n  private listenToDateChange() {\n    const startDateControl = this.startDate?.['ngControl']?.control;\n    const endDateControl = this.endDate?.['ngControl']?.control;\n\n    const startDate$ = iif(\n      () => !!startDateControl,\n      startDateControl?.valueChanges.pipe(\n        startWith(this.normalizeDate(startDateControl.getRawValue())),\n        map(this.normalizeDate),\n        distinctUntilChanged(this.distinct)\n      ) || of(),\n      of(this.startDate?.['elementRef']).pipe(\n        map((ref) => ref?.nativeElement as HTMLInputElement),\n        map((el) => this.normalizeDate(el.value)),\n        startWith(\n          this.normalizeDate(this.startDate?.['elementRef']?.nativeElement?.target?.value || null)\n        )\n      )\n    );\n\n    const endDate$ = iif(\n      () => !!endDateControl,\n      endDateControl?.valueChanges.pipe(\n        startWith(this.normalizeDate(endDateControl.getRawValue())),\n        map(this.normalizeDate),\n        distinctUntilChanged(this.distinct)\n      ) || of(),\n      of(this.endDate?.['elementRef']).pipe(\n        map((ref) => ref?.nativeElement as HTMLInputElement),\n        map((el) => this.normalizeDate(el.value)),\n        startWith(\n          this.normalizeDate(this.endDate?.['elementRef']?.nativeElement?.target?.value || null)\n        )\n      )\n    );\n\n    const dateRange$ = combineLatest([startDate$, endDate$]).pipe(\n      map(([start, end]) => <DateValue>{ start, end }),\n      distinctUntilChanged(this.distinct),\n      filter((value) => {\n        // Skip if start date is null but end date is exists.\n        if (!value.start && !!value.end) return false;\n        // Skip when choosing start date but end date value still there.\n        if (this.dateChange$.value.start && !this.dateChange$.value.end && value.end) return false;\n        // Skip when resetting value but end date value still the same.\n        if (\n          value.start &&\n          value.end &&\n          JSON.stringify(value.start) !== JSON.stringify(this.dateChange$.value.start) &&\n          JSON.stringify(value.end) === JSON.stringify(this.dateChange$.value.end)\n        ) {\n          return false;\n        }\n\n        return true;\n      })\n    );\n\n    merge(this.dateChange$.pipe(skip(1)), dateRange$)\n      .pipe(\n        // Set initial value to the date range picker\n        distinctUntilChanged(this.distinct),\n        tap((value) => {\n          if (!this.rangePicker) return;\n          this.rangePicker['value'] = value;\n          this.rangePicker['_cdr'].detectChanges();\n        }),\n        skip(1),\n        takeUntil(this.destroy$)\n      )\n      .subscribe((value) => {\n        this.emitDateChangeToViewOrControl(value);\n\n        if (!this.rangePicker) return;\n        this.rangePicker['valueChange'].emit({\n          start: value.start?.toISOString() || null,\n          end: value.end?.toISOString() || null,\n        });\n      });\n  }\n\n  private emitDateChangeToViewOrControl(value: DateValue) {\n    const startDate = value?.start?.toISOString() || null;\n    const endDate = value?.end?.toISOString() || null;\n\n    const startDateElement = this.startDate?.['elementRef'].nativeElement as HTMLInputElement;\n    const endDateElement = this.endDate?.['elementRef'].nativeElement as HTMLInputElement;\n\n    if (startDateElement.value !== startDate) {\n      startDateElement.value = startDate || '';\n      startDateElement.dispatchEvent(new Event('change'));\n    }\n\n    if (endDateElement.value !== endDate) {\n      endDateElement.value = endDate || '';\n      endDateElement.dispatchEvent(new Event('change'));\n    }\n\n    const startDateControl = this.startDate?.['ngControl']?.control;\n    const endDateControl = this.endDate?.['ngControl']?.control;\n\n    if (startDateControl && startDateControl.value !== startDate) {\n      startDateControl?.setValue(startDate);\n    }\n\n    if (endDateControl && endDateControl.value !== endDate) {\n      endDateControl?.setValue(endDate);\n    }\n  }\n\n  private normalizeDate(date?: Date | string | null): Date | null {\n    if (!date) return null;\n    if (!(date instanceof Date || typeof date === 'string')) return null;\n    return date instanceof Date ? date : new Date(date);\n  }\n\n  private distinct<P, C>(prev: P, current: C): boolean {\n    return JSON.stringify(prev) === JSON.stringify(current);\n  }\n}\n","/**\n * Get the type of the click action from an event.\n *\n * @param event Click event\n * @param triggerElement The element which toggle the appeared element.\n * @param appearedElement The element that will be shown when get triggered.\n * @returns\n */\nexport function getClickType(\n  event: Event,\n  triggerElements: (HTMLElement | undefined | null)[],\n  appearedElements: (HTMLElement | undefined | null)[]\n) {\n  const clickedElement = event.target as HTMLElement;\n\n  const clickTrigger = triggerElements.some((node) => node && node.contains(clickedElement));\n  const clickInside = appearedElements.some((node) => node && node.contains(clickedElement));\n  const clickOutside = !clickInside;\n\n  return { clickInside, clickOutside, clickTrigger };\n}\n","import {\n  Derivable,\n  FlipOptions,\n  Placement,\n  ShiftOptions,\n  autoUpdate,\n  computePosition,\n  flip,\n  shift,\n} from '@floating-ui/dom';\n\ninterface DokuUpdateFloatingPositionProps {\n  triggerElement: HTMLElement;\n  floatingElement: HTMLElement;\n  placement?: Placement;\n  middleware?: {\n    flip?: boolean | FlipOptions | Derivable<FlipOptions>;\n    shift?: boolean | ShiftOptions | Derivable<ShiftOptions>;\n  };\n  autoUpdate?: boolean;\n}\n\ntype DokuUpdateFloatingPositionReturnType<T extends DokuUpdateFloatingPositionProps> =\n  T['autoUpdate'] extends true ? () => void : void;\n\nfunction updatePosition(props: DokuUpdateFloatingPositionProps) {\n  if (!props.triggerElement || !props.floatingElement) return;\n\n  const middleware = [];\n\n  if (props.middleware?.flip) {\n    middleware.push(flip());\n  }\n\n  if (props.middleware?.shift) {\n    middleware.push(shift());\n  }\n\n  computePosition(props.triggerElement, props.floatingElement, {\n    placement: props.placement || 'bottom',\n    middleware: middleware,\n  }).then(({ x, y }) => {\n    Object.assign(props.floatingElement.style, {\n      top: `${y}px`,\n      left: `${x}px`,\n    });\n  });\n}\n\nexport function updateFloatingPosition<T extends DokuUpdateFloatingPositionProps>(\n  props: T\n): DokuUpdateFloatingPositionReturnType<T> {\n  if (props.autoUpdate) {\n    return autoUpdate(props.triggerElement, props.floatingElement, () => {\n      updatePosition(props);\n    }) as DokuUpdateFloatingPositionReturnType<T>;\n  } else {\n    return updatePosition(props) as DokuUpdateFloatingPositionReturnType<T>;\n  }\n}\n","export class DokuBreakpoint {\n  static readonly desktop = '(min-width: 1024px)';\n  static readonly mobile = '(max-width: 1023px)';\n  static readonly tablet = '(min-width: 768px) and (max-width: 1023px)';\n  static readonly phone = '(max-width: 767px)';\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n  selector: 'ng-template[doku-select-label-template]',\n  exportAs: 'dokuSelectLabelTemplate',\n  standalone: true,\n})\nexport class DokuSelectLabelTemplate {\n  constructor(public templateRef: TemplateRef<unknown>) {}\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n  selector: 'ng-template[doku-select-loading-template]',\n  exportAs: 'dokuSelectLoadingTemplate',\n  standalone: true,\n})\nexport class DokuSelectLoadingTemplate {\n  constructor(public templateRef: TemplateRef<unknown>) {}\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n  selector: 'ng-template[doku-select-no-item-template]',\n  exportAs: 'dokuSelectNoItemTemplate',\n  standalone: true,\n})\nexport class DokuSelectNoItemTemplate {\n  constructor(public templateRef: TemplateRef<unknown>) {}\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n  selector: 'ng-template[doku-select-option-template]',\n  exportAs: 'dokuSelectOptionTemplate',\n  standalone: true,\n})\nexport class DokuSelectOptionTemplate {\n  constructor(public templateRef: TemplateRef<unknown>) {}\n}\n","import { CommonModule } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  HostBinding,\n  Input,\n  ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n  selector: '[doku-typography]',\n  exportAs: 'dokuTypography',\n  standalone: true,\n  imports: [CommonModule],\n  template: '<ng-content></ng-content>',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuTypography {\n  /**\n   * @default `body-l`\n   */\n  @Input() variant:\n    | 'h1'\n    | 'h2'\n    | 'h3'\n    | 'h4'\n    | 'h5'\n    | 'body-l'\n    | 'body-m'\n    | 'body-s'\n    | 'component'\n    | 'label' = 'body-l';\n\n  @HostBinding('class')\n  protected get class() {\n    return this.getClassNameByVariant();\n  }\n\n  private getClassNameByVariant() {\n    const classes = {\n      h1: 'd-text-h1',\n      h2: 'd-text-h2',\n      h3: 'd-text-h3',\n      h4: 'd-text-h4',\n      h5: 'd-text-h5',\n      'body-l': 'd-text-body-l',\n      'body-m': 'd-text-body-m',\n      'body-s': 'd-text-body-s',\n      component: 'd-text-component',\n      label: 'd-text-label',\n    };\n    return classes[this.variant];\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { DokuTypography } from './typography.component';\n\n@NgModule({\n  imports: [DokuTypography],\n  exports: [DokuTypography],\n})\nexport class DokuTypographyModule {}\n","import { CommonModule, NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  HostBinding,\n  HostListener,\n  ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n  selector: 'doku-select-dropdown-portal',\n  exportAs: 'dokuSelectDropdownPortal',\n  standalone: true,\n  imports: [CommonModule],\n  template: '<ng-content></ng-content>',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuSelectDropdownPortal {\n  @HostBinding('class')\n  protected get classes(): NgClass['ngClass'] {\n    return ['d-dropdown-menu', 'd-select-dropdown-portal'];\n  }\n\n  @HostListener('click', ['$event'])\n  protected onClick(event: Event) {\n    event.stopPropagation();\n  }\n}\n","import { CommonModule, NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  HostBinding,\n  Inject,\n  Input,\n  OnDestroy,\n  OnInit,\n  Optional,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { ReplaySubject, distinctUntilChanged, filter, map, startWith, takeUntil } from 'rxjs';\nimport { DokuSelect } from './select.component';\n\n@Component({\n  selector: 'doku-select-option',\n  exportAs: 'dokuSelectOption',\n  standalone: true,\n  imports: [CommonModule],\n  template: '<ng-content></ng-content>',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuSelectOption implements OnDestroy, OnInit {\n  @HostBinding('class')\n  protected readonly classes: NgClass['ngClass'] = 'd-select-option';\n\n  @Input() value = '';\n\n  @HostBinding('class.d-select-option-disabled')\n  @Input()\n  disabled = false;\n\n  @HostBinding('class.d-select-option-selected')\n  protected isSelected = false;\n\n  private destroy$ = new ReplaySubject();\n\n  constructor(@Optional() @Inject(DokuSelect) private select?: DokuSelect) {}\n\n  ngOnInit(): void {\n    this.watchSelectedValue();\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next(true);\n    this.destroy$.complete();\n  }\n\n  private watchSelectedValue() {\n    this.select?._notifyOnChange$\n      .pipe(\n        filter(({ type }) => type === 'value'),\n        startWith(this.select.value),\n        map(() => this.select?.value),\n        map((value) => {\n          if (!value) return false;\n          if (typeof value === 'string') return value === this.value;\n          return value.includes(this.value);\n        }),\n        distinctUntilChanged(),\n        takeUntil(this.destroy$)\n      )\n      .subscribe((selected) => {\n        this.isSelected = selected;\n      });\n  }\n}\n","import {\n  ApplicationRef,\n  ComponentRef,\n  EmbeddedViewRef,\n  EnvironmentInjector,\n  Injector,\n  Renderer2,\n  TemplateRef,\n  createComponent,\n} from '@angular/core';\nimport { DokuSelectDropdownPortal } from '../select-dropdown-portal.component';\nimport { DokuSelectOption } from '../select-option.component';\nimport { DokuSelectOptionItemRecord } from '../select.interface';\n\nexport class ViewElementUtil {\n  static createSelectDropdownPortal(props: {\n    applicationRef: ApplicationRef;\n    environmentInjector: EnvironmentInjector;\n    parentElementInjector: Injector;\n    renderer: Renderer2;\n    inputWrapperElement?: HTMLElement | null;\n    portalClass?: string;\n  }) {\n    const component = createComponent(DokuSelectDropdownPortal, {\n      environmentInjector: props.environmentInjector,\n      elementInjector: Injector.create({ providers: [], parent: props.parentElementInjector }),\n    });\n    props.applicationRef.attachView(component.hostView);\n    const nativeElement = component.location.nativeElement;\n\n    props.renderer.setStyle(nativeElement, 'display', 'block');\n\n    if (props.portalClass) {\n      props.renderer.addClass(nativeElement, props.portalClass);\n    }\n\n    if (props.inputWrapperElement) {\n      props.renderer.setStyle(nativeElement, 'width', props.inputWrapperElement.clientWidth + 'px');\n      props.renderer.setStyle(nativeElement, 'box-sizing', 'content-box');\n      props.renderer.setStyle(props.inputWrapperElement, 'z-index', '1');\n    }\n\n    component.onDestroy(() => {\n      if (!props.inputWrapperElement) return;\n      props.renderer.setStyle(props.inputWrapperElement, 'z-index', '');\n    });\n\n    return component;\n  }\n\n  static createSelectOption(props: {\n    item: DokuSelectOptionItemRecord;\n    bindLabel: string;\n    bindValue: string;\n    applicationRef: ApplicationRef;\n    environmentInjector: EnvironmentInjector;\n    renderer: Renderer2;\n    portalRef?: ComponentRef<DokuSelectDropdownPortal>;\n    templateRef?: TemplateRef<unknown>;\n  }) {\n    let projectableNodes!: Node[][];\n    let customOptionRef: EmbeddedViewRef<unknown> | undefined;\n\n    if (props.templateRef) {\n      const context = { $implicit: props.item };\n      customOptionRef = props.templateRef.createEmbeddedView(context);\n      props.applicationRef.attachView(customOptionRef);\n      projectableNodes = [customOptionRef.rootNodes];\n    } else {\n      projectableNodes = [[props.renderer.createText(props.item[props.bindLabel])]];\n    }\n\n    const component = createComponent(DokuSelectOption, {\n      environmentInjector: props.environmentInjector,\n      elementInjector: Injector.create({ providers: [], parent: props.portalRef?.injector }),\n      projectableNodes,\n    });\n    props.applicationRef.attachView(component.hostView);\n\n    component.setInput('value', props.item[props.bindValue]);\n    component.setInput('disabled', !!props.item.disabled);\n\n    component.onDestroy(() => {\n      customOptionRef?.destroy();\n    });\n\n    props.portalRef?.onDestroy(() => {\n      component.destroy();\n    });\n\n    return component;\n  }\n}\n","import {\n  ApplicationRef,\n  ComponentRef,\n  EnvironmentInjector,\n  Renderer2,\n  TemplateRef,\n} from '@angular/core';\nimport { DokuSelectLoadingTemplate } from '../directives/select-loading-template.directive';\nimport { DokuSelectNoItemTemplate } from '../directives/select-no-item-template.directive';\nimport { DokuSelectOptionTemplate } from '../directives/select-option-template.directive';\nimport { DokuSelectDropdownPortal } from '../select-dropdown-portal.component';\nimport { DokuSelectOption } from '../select-option.component';\nimport { DokuSelectOptionItemRecord } from '../select.interface';\nimport { ViewElementUtil } from './view-element.util';\n\ntype CreateSelectOptionProps = {\n  bindLabel: string;\n  bindValue: string;\n  appRef: ApplicationRef;\n  envInjector: EnvironmentInjector;\n  renderer: Renderer2;\n  portalRef: ComponentRef<DokuSelectDropdownPortal>;\n  clickFn?: (item: DokuSelectOptionItemRecord) => void;\n  loading?: boolean;\n};\n\nexport class ItemInjectionUtil {\n  static refs: ComponentRef<DokuSelectOption>[] = [];\n\n  static injectSelectOptions(\n    items: DokuSelectOptionItemRecord[] = [],\n    props: CreateSelectOptionProps,\n    template?: {\n      noItem?: DokuSelectNoItemTemplate;\n      loading?: DokuSelectLoadingTemplate;\n      option?: DokuSelectOptionTemplate;\n    }\n  ) {\n    const portalElement: HTMLElement = props.portalRef.location.nativeElement;\n\n    // Cleanup the portal element's children.\n    this.refs.forEach((ref) => ref.destroy());\n    this.refs = [];\n\n    if (props.loading) {\n      const loadingSelectOption = this.createLoadingStateItemSelectOption(props, template?.loading);\n      props.renderer.appendChild(portalElement, loadingSelectOption.location.nativeElement);\n      this.refs.push(loadingSelectOption);\n      return;\n    }\n\n    if (!items.length) {\n      const emptyStateSelectOption = this.createEmptyStateItemSelectOption(props, template?.noItem);\n      props.renderer.appendChild(portalElement, emptyStateSelectOption.location.nativeElement);\n      this.refs.push(emptyStateSelectOption);\n      return;\n    }\n\n    const selectOptions = items.map((item) =>\n      this.createItemSelectOption(item, props, template?.option)\n    );\n    selectOptions.forEach((item) => {\n      props.renderer.appendChild(portalElement, item.location.nativeElement);\n    });\n    this.refs.push(...selectOptions);\n  }\n\n  private static createItemSelectOption(\n    item: DokuSelectOptionItemRecord,\n    props: CreateSelectOptionProps,\n    template?: DokuSelectOptionTemplate\n  ) {\n    const ref = this.createBaseSelectOption(item, { ...props, templateRef: template?.templateRef });\n    ref.location.nativeElement.onclick = props.clickFn?.(item);\n    return ref;\n  }\n\n  private static createEmptyStateItemSelectOption(\n    props: CreateSelectOptionProps,\n    template?: DokuSelectNoItemTemplate\n  ) {\n    const defaultItem: DokuSelectOptionItemRecord = {\n      [props.bindLabel]: 'No items found',\n      [props.bindValue]: '',\n      disabled: true,\n    };\n    return this.createBaseSelectOption(defaultItem, {\n      ...props,\n      templateRef: template?.templateRef,\n    });\n  }\n\n  private static createLoadingStateItemSelectOption(\n    props: CreateSelectOptionProps,\n    template?: DokuSelectLoadingTemplate\n  ) {\n    const defaultItem: DokuSelectOptionItemRecord = {\n      [props.bindLabel]: 'Loading...',\n      [props.bindValue]: '',\n      disabled: true,\n    };\n    return this.createBaseSelectOption(defaultItem, {\n      ...props,\n      templateRef: template?.templateRef,\n    });\n  }\n\n  private static createBaseSelectOption(\n    item: DokuSelectOptionItemRecord,\n    props: CreateSelectOptionProps & { templateRef?: TemplateRef<unknown> }\n  ) {\n    return ViewElementUtil.createSelectOption({\n      item: item,\n      bindLabel: props.bindLabel,\n      bindValue: props.bindValue,\n      applicationRef: props.appRef,\n      environmentInjector: props.envInjector,\n      renderer: props.renderer,\n      portalRef: props.portalRef,\n      templateRef: props.templateRef,\n    });\n  }\n}\n","import { Observable, iif, map, of } from 'rxjs';\nimport { DokuSelectSearchMatcherFn } from '../select.component';\nimport { DokuSelectOptionItemRecord } from '../select.interface';\n\nexport class SearchUtil {\n  static useSearchMatcher(\n    items: DokuSelectOptionItemRecord[] = [],\n    options: {\n      bindLabel: string;\n      search$: Observable<string>;\n      searchable?: boolean;\n      customSearchMatcherFn?: DokuSelectSearchMatcherFn;\n    }\n  ) {\n    const searchMatcherFn = options?.customSearchMatcherFn\n      ? options?.customSearchMatcherFn\n      : this.defaultSearchMatcherFn.bind(this);\n\n    return iif(\n      () => !!options?.searchable,\n      options.search$.pipe(\n        map((search) =>\n          items.filter((item) => searchMatcherFn(search, item, { bindLabel: options.bindLabel }))\n        )\n      ),\n      of(items)\n    );\n  }\n\n  private static defaultSearchMatcherFn(\n    searchTerm: string,\n    item: DokuSelectOptionItemRecord,\n    options: {\n      bindLabel: string;\n    }\n  ): boolean {\n    if (!searchTerm) return true;\n    const itemLabel = item[options.bindLabel]?.toLowerCase();\n    const normalizedSearchTerm = searchTerm.toLowerCase();\n    return !!itemLabel?.includes(normalizedSearchTerm);\n  }\n}\n","export class StyleUtil {\n  /**\n   * Styles the cursor of the input wrapper element.\n   */\n  static setInputWrapperCursorState(\n    props: { disabled: boolean; readonly: boolean },\n    options?: {\n      inputWrapperElement?: HTMLElement;\n      searchable?: boolean;\n    }\n  ): void {\n    if (!options?.inputWrapperElement) return;\n\n    let cursor = props.disabled || props.readonly ? '' : 'pointer';\n    if (options?.searchable && !props.disabled && !props.readonly) cursor = 'text';\n    options.inputWrapperElement.style.cursor = cursor;\n  }\n\n  /**\n   * Styles the padding of the input wrapper element.\n   */\n  static handleInputWrapperStyle(props: {\n    inputWrapperElement?: HTMLElement;\n    multiple?: boolean;\n    arrowPlacement?: string;\n  }): void {\n    if (props.inputWrapperElement && props.multiple) {\n      props.inputWrapperElement.style.paddingTop = '5px';\n      props.inputWrapperElement.style.paddingBottom = '5px';\n\n      if (props.arrowPlacement === 'right') {\n        props.inputWrapperElement.style.paddingLeft = '5px';\n      }\n      if (props.arrowPlacement === 'left') {\n        props.inputWrapperElement.style.paddingRight = '5px';\n      }\n    }\n  }\n}\n","import { DokuSelectOptionItemRecord } from '../select.interface';\n\nexport class ValueUtil {\n  /**\n   * Convert plain value into full details from the items.\n   */\n  static convertValueToFullDetails(\n    value: string | string[],\n    items: DokuSelectOptionItemRecord[],\n    options: {\n      multiple?: boolean;\n      bindValue: string;\n      prevValueDetails?: DokuSelectOptionItemRecord[];\n    }\n  ): DokuSelectOptionItemRecord[] {\n    const prevValueDetails = options.prevValueDetails || [];\n\n    if (options?.multiple) {\n      const res = (value as string[]).map((val) => {\n        const prevValueDetail = prevValueDetails.find(\n          (prevDetail) => prevDetail[options.bindValue] === val\n        );\n        if (prevValueDetail) return prevValueDetail;\n\n        return items.find((item) => item[options.bindValue] === val);\n      });\n\n      return res.filter(Boolean) as DokuSelectOptionItemRecord[];\n    }\n\n    const prevRes = prevValueDetails.find((item) => item[options.bindValue] === value);\n    if (prevRes) return [prevRes];\n\n    const res = items.find((item) => item[options.bindValue] === value);\n    return res ? [res] : [];\n  }\n\n  /**\n   * Normalize input value to the result.\n   */\n  static normalizeValue(\n    prevValue: string | string[],\n    value: string | string[],\n    options: {\n      multiple: boolean;\n    }\n  ): string | string[] {\n    const normalizedValues = Array.isArray(value) ? value : [value];\n\n    if (!options.multiple) {\n      return this.convertSingleValueToString(normalizedValues[0]);\n    }\n\n    let prevValues = prevValue;\n    if (typeof prevValues === 'string') prevValues = [prevValues];\n\n    let nextValues = prevValues.filter(Boolean);\n\n    // The values that need to be removed from next values.\n    const existingValues = nextValues.filter((val) => normalizedValues.includes(val));\n    const newValues = normalizedValues.filter((val) => !nextValues.includes(val));\n\n    // Remove existing values from next values.\n    nextValues = nextValues.filter((val) => !existingValues.includes(val));\n\n    return [...nextValues, ...newValues]\n      .map((v) => this.convertSingleValueToString(v))\n      .filter(Boolean);\n  }\n\n  private static convertSingleValueToString(value: string | number): string {\n    if (typeof value === 'string') return value;\n    if (isNaN(value)) return '';\n    if (value === undefined || value === null) return '';\n    try {\n      return JSON.stringify(value);\n    } catch (error) {\n      return '';\n    }\n  }\n}\n","import { CommonModule, DOCUMENT, NgClass } from '@angular/common';\nimport {\n  AfterContentInit,\n  AfterViewInit,\n  ApplicationRef,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ComponentRef,\n  ContentChild,\n  ElementRef,\n  EnvironmentInjector,\n  EventEmitter,\n  HostBinding,\n  Inject,\n  Injector,\n  Input,\n  NgZone,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Output,\n  Renderer2,\n  Self,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NgControl } from '@angular/forms';\nimport {\n  BehaviorSubject,\n  ReplaySubject,\n  Subject,\n  delay,\n  distinctUntilChanged,\n  filter,\n  fromEvent,\n  map,\n  skip,\n  startWith,\n  switchMap,\n  takeUntil,\n  tap,\n} from 'rxjs';\nimport { getClickType } from '../../utils/get-click-type';\nimport { updateFloatingPosition } from '../../utils/update-floating-position';\nimport {\n  DOKU_FORM_FIELD_ACCESSOR,\n  DokuFormField,\n  DokuFormFieldAccessor,\n  DokuFormFieldAccessorValidateState,\n  DokuFormFieldAccessorValidateValue,\n} from '../form-field';\nimport { DokuTypographyModule } from '../typography';\nimport { DokuSelectLabelTemplate } from './directives/select-label-template.directive';\nimport { DokuSelectLoadingTemplate } from './directives/select-loading-template.directive';\nimport { DokuSelectNoItemTemplate } from './directives/select-no-item-template.directive';\nimport { DokuSelectOptionTemplate } from './directives/select-option-template.directive';\nimport { DokuSelectDropdownPortal } from './select-dropdown-portal.component';\nimport { DokuSelectOptionItem, DokuSelectOptionItemRecord } from './select.interface';\nimport { ItemInjectionUtil } from './utils/item-injection.util';\nimport { SearchUtil } from './utils/search.util';\nimport { StyleUtil } from './utils/style.util';\nimport { ValueUtil } from './utils/value.util';\nimport { ViewElementUtil } from './utils/view-element.util';\n\ntype DokuSelectArrowPlacement = 'left' | 'right';\n\nexport type DokuSelectSearchMatcherFn = (\n  searchTerm: string,\n  item: DokuSelectOptionItemRecord\n) => boolean;\n\n@Component({\n  selector: 'doku-select',\n  exportAs: 'dokuSelect',\n  standalone: true,\n  imports: [CommonModule, DokuTypographyModule, FormsModule],\n  templateUrl: './select.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{ provide: DOKU_FORM_FIELD_ACCESSOR, useExisting: DokuSelect }],\n})\nexport class DokuSelect\n  implements\n    ControlValueAccessor,\n    OnDestroy,\n    AfterViewInit,\n    DokuFormFieldAccessor,\n    OnInit,\n    AfterContentInit\n{\n  /**\n   * List of options that will be shown on the dropdown.\n   *\n   * Supported values:\n   * - array of string or number\n   * - array of object (nested object is not supported)\n   *\n   * @default []\n   */\n  @Input()\n  get items(): DokuSelectOptionItemRecord[] {\n    return this._items;\n  }\n  set items(value: DokuSelectOptionItem[]) {\n    this._items = this.normalizeInputItems(value);\n    this._notifyOnChange$.next({ type: 'item' });\n  }\n  private _items: DokuSelectOptionItemRecord[] = [];\n\n  /**\n   * Bind property key of the label from the item if `items` value is an array of object.\n   *\n   * @default 'label'\n   */\n  @Input() bindLabel = 'label';\n\n  /**\n   * Bind property key of the value from the item if `items` value is an array of object.\n   *\n   * @default 'value'\n   */\n  @Input() bindValue = 'value';\n\n  /**\n   * Value of the selected options.\n   *\n   * @default undefined\n   */\n  @Input()\n  get value(): string | string[] {\n    return this._value;\n  }\n  set value(value: string | string[]) {\n    this._value = ValueUtil.normalizeValue('', value, { multiple: this.multiple });\n    this._notifyOnChange$.next({ type: 'value' });\n  }\n  private _value: string | string[] = '';\n\n  /**\n   * Placeholder of the field.\n   *\n   * @default ''\n   */\n  @Input() placeholder = '';\n\n  /**\n   * Additional class that will be attached to the portal element of the dropdown element.\n   *\n   * @default undefined\n   */\n  @Input() portalClass?: string;\n\n  /**\n   * Whether the select should allow multiple options selected simultaneously.\n   *\n   * @default false\n   */\n  @HostBinding('class.d-select-multiple')\n  @Input()\n  get multiple(): boolean {\n    return this._multiple;\n  }\n  set multiple(value: boolean) {\n    this._multiple = value;\n    this._notifyOnChange$.next({ type: 'multiple' });\n  }\n  private _multiple = false;\n\n  /**\n   * Whether to truncate the label when the width is reached.\n   *\n   * Does not truncate the label if `multiple` is true.\n   *\n   * @default false\n   */\n  @HostBinding('class.d-select-truncated-label')\n  @Input()\n  get truncateLabel(): boolean {\n    return this._truncateLabel;\n  }\n  set truncateLabel(value: boolean) {\n    this._truncateLabel = this.multiple ? false : value;\n  }\n  private _truncateLabel = false;\n\n  /**\n   * The placement of the arrow icon.\n   *\n   * @default 'right'\n   */\n  @Input()\n  get arrowPlacement(): DokuSelectArrowPlacement {\n    return this._arrowPlacement;\n  }\n  set arrowPlacement(value: DokuSelectArrowPlacement) {\n    this._arrowPlacement = value;\n    this._notifyOnChange$.next({ type: 'arrowPlacement' });\n  }\n  private _arrowPlacement: DokuSelectArrowPlacement = 'right';\n\n  /**\n   * Whether the select input should be disabled.\n   *\n   * @default false;\n   */\n  @Input()\n  get disabled(): boolean {\n    return this._disabled;\n  }\n  set disabled(value: boolean) {\n    this._disabled = value;\n    this._notifyOnChange$.next({ type: 'disabled' });\n  }\n  private _disabled = false;\n\n  /**\n   * Whether the select input is readonly.\n   *\n   * @default false\n   */\n  @Input()\n  get readonly(): boolean {\n    return this._readonly;\n  }\n  set readonly(value: boolean) {\n    this._readonly = value;\n    this._notifyOnChange$.next({ type: 'readonly' });\n  }\n  private _readonly = false;\n\n  /**\n   * Whether the select options are searchable.\n   *\n   * @default false\n   */\n  @Input() searchable = false;\n\n  /**\n   * Whether to provide async data fetching when searching data.\n   * It will display a loading state in the select options.\n   *\n   * Only works when `searchable` is true.\n   *\n   * @default false\n   */\n  @Input()\n  get isAsync(): boolean {\n    return this._isAsync;\n  }\n  set isAsync(value: boolean) {\n    this._isAsync = value;\n  }\n  private _isAsync = false;\n\n  /**\n   * Custom matcher for searchable options.\n   *\n   * It will filter each items and when returning true, the item will be shown.\n   *\n   * @default undefined\n   */\n  @Input() searchMatcherFn?: DokuSelectSearchMatcherFn;\n\n  /**\n   * Whether the selected item can be cleared by clicking an icon.\n   *\n   * For `multiple`, it will remove all selected items.\n   *\n   * @default false\n   */\n  @Input() clearable = false;\n\n  /**\n   * An event emitted when value changes.\n   */\n  @Output() valueChange = new EventEmitter<string | string[]>();\n\n  /**\n   * An event emitted if `searchable` is `true`.\n   */\n  @Output() search = new EventEmitter<string>();\n\n  _notifyOnChange$ = new Subject<{\n    type: 'item' | 'value' | 'loading' | 'disabled' | 'readonly' | 'arrowPlacement' | 'multiple';\n  }>();\n\n  /**\n   * Whether options dropdown state is opened.\n   */\n  protected get isOpen(): boolean {\n    return this._isOpen;\n  }\n  protected set isOpen(value: boolean) {\n    this._isOpen = value;\n    this.cdr.detectChanges();\n  }\n  private _isOpen = false;\n\n  /**\n   * Loading state used when `isAsync` is true.\n   */\n  private get loading(): boolean {\n    return this._loading;\n  }\n  private set loading(value: boolean) {\n    this._loading = this.isAsync ? value : false;\n    this._notifyOnChange$.next({ type: 'loading' });\n  }\n  private _loading = false;\n\n  protected search$ = new BehaviorSubject<string>('');\n\n  protected filteredItems: DokuSelectOptionItemRecord[] = [];\n  protected valueDetails: DokuSelectOptionItemRecord[] = [];\n\n  private cleanup?: () => void;\n  private destroy$ = new ReplaySubject();\n\n  @ContentChild(DokuSelectLabelTemplate) protected labelTemplate?: DokuSelectLabelTemplate;\n  @ContentChild(DokuSelectOptionTemplate) private optionTemplate?: DokuSelectOptionTemplate;\n  @ContentChild(DokuSelectNoItemTemplate) private noItemTemplate?: DokuSelectNoItemTemplate;\n  @ContentChild(DokuSelectLoadingTemplate) private loadingTemplate?: DokuSelectLoadingTemplate;\n\n  @ViewChild('searchInput') private searchInput?: ElementRef;\n\n  private portalRef?: ComponentRef<DokuSelectDropdownPortal>;\n\n  constructor(\n    private envInjector: EnvironmentInjector,\n    private appRef: ApplicationRef,\n    private ngZone: NgZone,\n    private injector: Injector,\n    private cdr: ChangeDetectorRef,\n    private renderer: Renderer2,\n    @Inject(DOCUMENT) private document: Document,\n    @Optional() @Self() private ngControl?: NgControl,\n    @Optional() @Inject(DokuFormField) private formField?: DokuFormField\n  ) {\n    if (this.ngControl) {\n      this.ngControl.valueAccessor = this;\n    }\n\n    this.handleCloseOptionsClickOutside();\n  }\n\n  @HostBinding('class')\n  protected get classes(): NgClass['ngClass'] {\n    return ['d-select', `d-select-arrow-${this.arrowPlacement}`];\n  }\n\n  protected get hasValue(): boolean {\n    if (this.multiple) return !!this.value?.length;\n    return !!this.value;\n  }\n\n  protected get shouldShowPlaceholder(): boolean {\n    return !this.hasValue && !this.search$.value;\n  }\n\n  protected get shouldShowValueSingleSelect(): boolean {\n    return !!this.hasValue && !this.multiple && !this.search$.value;\n  }\n\n  protected get shouldShowValueMultipleSelect(): boolean {\n    return !!this.hasValue && this.multiple;\n  }\n\n  private get inputWrapperElement(): HTMLElement | undefined {\n    return this.formField?.['inputWrapperElement'];\n  }\n\n  ngOnInit(): void {\n    // Handle value details\n    this._notifyOnChange$\n      .pipe(\n        filter(({ type }) => type === 'item' || type === 'value'),\n        startWith({ value: this.value, items: this.items }),\n        map(() => ({ value: this.value, items: this.items })),\n        distinctUntilChanged((prev, current) => JSON.stringify(prev) === JSON.stringify(current)),\n        tap(({ value, items }) => {\n          this.valueDetails = ValueUtil.convertValueToFullDetails(value, items, {\n            bindValue: this.bindValue,\n            multiple: this.multiple,\n            prevValueDetails: this.valueDetails,\n          });\n          this.cdr.detectChanges();\n        }),\n        distinctUntilChanged(\n          (prev, current) => JSON.stringify(prev.value) === JSON.stringify(current.value)\n        ),\n        // Do skip first change because we want to avoid triggering onChange on initial value.\n        skip(1),\n        takeUntil(this.destroy$)\n      )\n      .subscribe(({ value }) => {\n        this.onChange?.(value);\n        this.valueChange.emit(value);\n      });\n\n    // Handle filtered items\n    this._notifyOnChange$\n      .pipe(\n        filter(({ type }) => type === 'item' || type === 'loading'),\n        tap(({ type }) => {\n          if (type === 'item' && this.loading) this.loading = false;\n        }),\n        startWith(this.items),\n        switchMap(() =>\n          SearchUtil.useSearchMatcher(this.items, {\n            bindLabel: this.bindLabel,\n            search$: this.search$,\n            searchable: this.searchable,\n            customSearchMatcherFn: this.searchMatcherFn,\n          })\n        ),\n        takeUntil(this.destroy$)\n      )\n      .subscribe((items) => {\n        this.filteredItems = items;\n        if (!this.isOpen) return;\n\n        // Handle on demand select options.\n        this.injectSelectOptions();\n      });\n\n    this.search$\n      .pipe(\n        skip(1),\n        filter(() => this.searchable),\n        distinctUntilChanged(),\n        takeUntil(this.destroy$)\n      )\n      .subscribe((value) => {\n        if (!this.loading) this.loading = true;\n        this.search.emit(value);\n        this.cdr.detectChanges();\n      });\n  }\n\n  ngAfterContentInit(): void {\n    this.cdr.detectChanges();\n  }\n\n  ngAfterViewInit(): void {\n    this._notifyOnChange$\n      .pipe(\n        filter(({ type }) => type === 'arrowPlacement' || type === 'multiple'),\n        startWith({ arrowPlacement: this.arrowPlacement, multiple: this.multiple }),\n        map(() => ({ arrowPlacement: this.arrowPlacement, multiple: this.multiple })),\n        distinctUntilChanged((prev, current) => JSON.stringify(prev) === JSON.stringify(current)),\n        delay(0),\n        takeUntil(this.destroy$)\n      )\n      .subscribe(({ arrowPlacement, multiple }) => {\n        StyleUtil.handleInputWrapperStyle({\n          inputWrapperElement: this.inputWrapperElement,\n          arrowPlacement: arrowPlacement,\n          multiple: multiple,\n        });\n      });\n\n    this._notifyOnChange$\n      .pipe(\n        filter(({ type }) => type === 'disabled' || type === 'readonly'),\n        startWith({ disabled: this.disabled, readonly: this.readonly }),\n        map(() => ({ disabled: this.disabled, readonly: this.readonly })),\n        distinctUntilChanged((prev, current) => JSON.stringify(prev) === JSON.stringify(current)),\n        delay(0),\n        takeUntil(this.destroy$)\n      )\n      .subscribe(({ disabled, readonly }) => {\n        if (typeof disabled === 'boolean') this.onDisable?.(disabled);\n        if (typeof readonly === 'boolean') this.onReadonly?.(readonly);\n        StyleUtil.setInputWrapperCursorState(\n          { readonly, disabled },\n          { inputWrapperElement: this.inputWrapperElement, searchable: this.searchable }\n        );\n      });\n\n    this.ngControl?.statusChanges\n      ?.pipe(\n        map((status) => ({\n          status: status,\n          state: {\n            pristine: this.ngControl?.control?.pristine,\n            untouched: this.ngControl?.control?.untouched,\n          } as DokuFormFieldAccessorValidateState,\n        })),\n        distinctUntilChanged((prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)),\n        delay(0),\n        takeUntil(this.destroy$)\n      )\n      .subscribe(({ status, state }) => {\n        if (status === 'VALID') {\n          this.onValidate?.('valid', state);\n        } else if (status === 'INVALID') {\n          this.onValidate?.('invalid', state);\n        } else {\n          this.onValidate?.(undefined, state);\n        }\n      });\n  }\n\n  ngOnDestroy(): void {\n    this.close();\n    this.destroy$.next(1);\n    this.destroy$.complete();\n  }\n\n  onChange?: (value: unknown) => void;\n  onTouched?: () => void;\n  writeValue(value: string | string[]): void {\n    this.value = value;\n  }\n  registerOnChange(fn: (value: unknown) => void): void {\n    this.onChange = fn;\n  }\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n  setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n  }\n\n  onDisable?: ((value: boolean) => void) | undefined;\n  onReadonly?: ((value: boolean) => void) | undefined;\n  onValidate?:\n    | ((\n        value?: DokuFormFieldAccessorValidateValue | undefined,\n        state?: DokuFormFieldAccessorValidateState\n      ) => void)\n    | undefined;\n  onClickWrapperElement(): void {\n    this.searchable ? this.open() : this.toggle();\n  }\n  registerOnDisable(fn: (value: boolean) => void): void {\n    this.onDisable = fn;\n  }\n  registerOnReadonly(fn: (value: boolean) => void): void {\n    this.onReadonly = fn;\n  }\n  registerOnValidate(fn: (value?: DokuFormFieldAccessorValidateValue | undefined) => void): void {\n    this.onValidate = fn;\n  }\n\n  /**\n   * Open select dropdown programmatically.\n   */\n  open() {\n    if (this.disabled || this.readonly || this.isOpen) return;\n    this.isOpen = true;\n    this.openSelectDropdownPortal();\n    this.injectSelectOptions();\n    this.scrollToActiveOption();\n    this.doAutoUpdateDropdownPosition();\n\n    this.cdr.detectChanges();\n\n    // If searchable, focus to text input\n    // and select options\n    if (this.searchable) {\n      this.searchInput?.nativeElement.focus();\n    }\n  }\n\n  /**\n   * Close select dropdown programmatically.\n   */\n  close() {\n    if (this.disabled || this.readonly || !this.isOpen) return;\n    this.isOpen = false;\n    this.closeSelectDropdownPortal();\n    this.cleanup?.();\n    this.onTouched?.();\n\n    this.cdr.detectChanges();\n\n    // Clear search if searchable is allowed\n    if (this.searchable) this.search$.next('');\n    // Reset loading state\n    this.loading = false;\n  }\n\n  /**\n   * Toggle select dropdown programmatically.\n   */\n  toggle() {\n    if (this.disabled || this.readonly) return;\n    this.isOpen ? this.close() : this.open();\n  }\n\n  protected clearValue(event: Event) {\n    if (!this.clearable || this.disabled) return;\n    event.preventDefault();\n    event.stopPropagation();\n\n    this.value = '';\n    if (this.searchable) this.search$.next('');\n\n    this.cdr.markForCheck();\n    this.onTouched?.();\n  }\n\n  protected removeItem(item: DokuSelectOptionItemRecord) {\n    if (!this.multiple) return;\n    this.patchNextValue(item[this.bindValue]);\n  }\n\n  protected onSearchValueChange(event: Event) {\n    const value = (event.target as HTMLInputElement).value;\n    this.search$.next(value);\n    this.onTouched?.();\n  }\n\n  /**\n   * Update value from upcoming.\n   *\n   * If `multiple` is true, it will add/push value if not exist\n   * or will remove value when already exist.\n   */\n  private patchNextValue(value: string | string[]) {\n    this.value = ValueUtil.normalizeValue(this.value, value, { multiple: this.multiple });\n  }\n\n  /**\n   * Normalize input items to object where the value will be converted to string.\n   * @param items Input items.\n   * @returns Normalized items to object key-value pairs.\n   */\n  private normalizeInputItems(items: DokuSelectOptionItem[]): DokuSelectOptionItemRecord[] {\n    return items\n      .map((item) => {\n        if (typeof item === 'string') {\n          return { [this.bindLabel]: item, [this.bindValue]: item };\n        }\n\n        if (typeof item === 'number') {\n          return { [this.bindLabel]: item.toString(), [this.bindValue]: item.toString() };\n        }\n\n        if (item && typeof item === 'object' && !!Object.keys(item).length) {\n          let value = item[this.bindValue];\n          if (!['string', 'number'].includes(typeof value)) return null;\n          if (typeof value === 'number') value = value.toString();\n          return { ...item, [this.bindValue]: value };\n        }\n\n        return null;\n      })\n      .filter(Boolean) as DokuSelectOptionItemRecord[];\n  }\n\n  private openSelectDropdownPortal() {\n    this.portalRef = ViewElementUtil.createSelectDropdownPortal({\n      applicationRef: this.appRef,\n      environmentInjector: this.envInjector,\n      parentElementInjector: this.injector,\n      renderer: this.renderer,\n      inputWrapperElement: this.inputWrapperElement,\n      portalClass: this.portalClass,\n    });\n    this.renderer.appendChild(this.document.body, this.portalRef.location.nativeElement);\n  }\n\n  private closeSelectDropdownPortal() {\n    this.portalRef?.destroy();\n    this.portalRef = undefined;\n  }\n\n  private injectSelectOptions(): void {\n    if (!this.portalRef) return;\n    ItemInjectionUtil.injectSelectOptions(\n      this.filteredItems,\n      {\n        appRef: this.appRef,\n        bindLabel: this.bindLabel,\n        bindValue: this.bindValue,\n        envInjector: this.envInjector,\n        portalRef: this.portalRef,\n        renderer: this.renderer,\n        clickFn: this.handleOnClickSelectOption.bind(this),\n        loading: this.loading,\n      },\n      { loading: this.loadingTemplate, noItem: this.noItemTemplate, option: this.optionTemplate }\n    );\n  }\n\n  private handleOnClickSelectOption(item: DokuSelectOptionItemRecord) {\n    return () => {\n      if (item.disabled) return;\n      this.patchNextValue(item[this.bindValue]);\n      this.onTouched?.();\n\n      // Clear searchable value if searchable.\n      if (this.searchable) this.search$.next('');\n\n      // Don't close the dropdown if selection is multiple.\n      if (!this.multiple) this.close();\n\n      // Re-focus to search input on multiple selection and searchable.\n      if (this.multiple && this.searchable) {\n        this.searchInput?.nativeElement.focus();\n      }\n    };\n  }\n\n  private handleCloseOptionsClickOutside() {\n    this.ngZone.runOutsideAngular(() => {\n      fromEvent(this.document, 'click')\n        .pipe(\n          filter(() => this.isOpen),\n          takeUntil(this.destroy$)\n        )\n        .subscribe((event) => {\n          const { clickOutside, clickTrigger } = getClickType(\n            event,\n            [this.inputWrapperElement],\n            [this.portalRef?.location.nativeElement]\n          );\n          if (clickOutside && !clickTrigger) this.close();\n        });\n    });\n  }\n\n  private scrollToActiveOption() {\n    setTimeout(() => {\n      const selectedElement = this.portalRef?.location.nativeElement.querySelector(\n        '.d-select-option-selected'\n      );\n      if (selectedElement && this.portalRef) {\n        this.portalRef.location.nativeElement.scrollTop = selectedElement.offsetTop;\n      }\n    }, 0);\n  }\n\n  private doAutoUpdateDropdownPosition() {\n    this.ngZone.runOutsideAngular(() => {\n      if (!this.inputWrapperElement || !this.portalRef?.location.nativeElement) return;\n      this.cleanup = updateFloatingPosition({\n        triggerElement: this.inputWrapperElement,\n        floatingElement: this.portalRef?.location.nativeElement,\n        placement: 'bottom-start',\n        autoUpdate: true,\n        middleware: {\n          flip: true,\n          shift: true,\n        },\n      });\n    });\n  }\n}\n","<div class=\"d-select-value-container\">\n  <div *ngIf=\"shouldShowPlaceholder\" class=\"d-select-placeholder\" doku-typography variant=\"body-m\">\n    <ng-container>{{ placeholder || \" \" }}</ng-container>\n  </div>\n\n  <ng-container *ngIf=\"shouldShowValueSingleSelect || shouldShowValueMultipleSelect\">\n    <ng-container\n      *ngIf=\"labelTemplate && !multiple\"\n      [ngTemplateOutlet]=\"labelTemplate.templateRef\"\n      [ngTemplateOutletContext]=\"{ $implicit: valueDetails[0] }\"\n    ></ng-container>\n\n    <ng-container *ngIf=\"labelTemplate && multiple\">\n      <ng-container *ngFor=\"let item of valueDetails\">\n        <ng-container\n          [ngTemplateOutlet]=\"labelTemplate.templateRef\"\n          [ngTemplateOutletContext]=\"{ $implicit: item, removeItem: removeItem.bind(this) }\"\n        ></ng-container>\n      </ng-container>\n    </ng-container>\n\n    <ng-container *ngIf=\"!labelTemplate\">\n      <div *ngFor=\"let item of valueDetails\" class=\"d-select-value\">\n        <ng-container *ngIf=\"!multiple\">{{ item[bindLabel] }}</ng-container>\n        <ng-container *ngIf=\"multiple\">\n          <div (click)=\"removeItem(item)\">\n            <ng-container *ngTemplateOutlet=\"iconClose\"></ng-container>\n          </div>\n          <span>&nbsp;</span>\n          <div doku-typography variant=\"label\">{{ item[bindLabel] }}</div>\n        </ng-container>\n      </div>\n    </ng-container>\n  </ng-container>\n\n  <input\n    #searchInput\n    *ngIf=\"searchable && !disabled && !readonly\"\n    type=\"text\"\n    class=\"d-select-searchable-input\"\n    [class.relative]=\"hasValue\"\n    [class.opened]=\"isOpen\"\n    [value]=\"search$.value\"\n    (input)=\"onSearchValueChange($event)\"\n  />\n</div>\n\n<div\n  *ngIf=\"clearable && hasValue && !disabled\"\n  class=\"d-select-clearable\"\n  (click)=\"clearValue($event)\"\n>\n  <ng-container *ngTemplateOutlet=\"iconClose\"></ng-container>\n</div>\n\n<div class=\"d-select-arrow\" [ngClass]=\"arrowPlacement\">\n  <ng-template *ngTemplateOutlet=\"iconArrow\"></ng-template>\n</div>\n\n<ng-template #iconArrow>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n    <path\n      d=\"M7.56745 14.4236L4.80999 10.5154C4.48457 10.0556 4.74905 9.33337 5.24293 9.33337H10.7578C10.8684 9.33326 10.9766 9.37265 11.0695 9.44683C11.1625 9.52101 11.2362 9.62684 11.2819 9.75164C11.3276 9.87644 11.3433 10.0149 11.3271 10.1505C11.311 10.2861 11.2636 10.413 11.1908 10.5161L8.43333 14.4229C8.37936 14.4995 8.31281 14.5609 8.23814 14.6029C8.16346 14.645 8.0824 14.6667 8.00039 14.6667C7.91838 14.6667 7.83731 14.645 7.76264 14.6029C7.68797 14.5609 7.62142 14.4995 7.56745 14.4229V14.4236Z\"\n      fill=\"currentColor\"\n    />\n    <path\n      d=\"M7.56745 1.57638L4.80999 5.48461C4.48457 5.94444 4.74905 6.66663 5.24293 6.66663H10.7578C10.8684 6.66674 10.9766 6.62735 11.0695 6.55317C11.1625 6.47899 11.2362 6.37316 11.2819 6.24836C11.3276 6.12356 11.3433 5.98508 11.3271 5.84949C11.311 5.71391 11.2636 5.58698 11.1908 5.48389L8.43333 1.5771C8.37936 1.50052 8.31281 1.43915 8.23814 1.3971C8.16346 1.35505 8.0824 1.33329 8.00039 1.33329C7.91838 1.33329 7.83731 1.35505 7.76264 1.3971C7.68797 1.43915 7.62142 1.50052 7.56745 1.5771V1.57638Z\"\n      fill=\"currentColor\"\n    />\n  </svg>\n</ng-template>\n\n<ng-template #iconClose>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\n    <path\n      fill-rule=\"evenodd\"\n      clip-rule=\"evenodd\"\n      d=\"M12.2544 4.14598C12.301 4.19242 12.3379 4.2476 12.3631 4.30834C12.3883 4.36909 12.4013 4.43421 12.4013 4.49998C12.4013 4.56575 12.3883 4.63087 12.3631 4.69161C12.3379 4.75236 12.301 4.80753 12.2544 4.85398L5.25441 11.854C5.16053 11.9479 5.03319 12.0006 4.90041 12.0006C4.76764 12.0006 4.6403 11.9479 4.54641 11.854C4.45253 11.7601 4.39978 11.6328 4.39978 11.5C4.39978 11.3672 4.45253 11.2399 4.54641 11.146L11.5464 4.14598C11.5929 4.09941 11.648 4.06247 11.7088 4.03727C11.7695 4.01206 11.8346 3.99908 11.9004 3.99908C11.9662 3.99908 12.0313 4.01206 12.092 4.03727C12.1528 4.06247 12.208 4.09941 12.2544 4.14598Z\"\n      fill=\"currentColor\"\n      stroke=\"currentColor\"\n    />\n    <path\n      fill-rule=\"evenodd\"\n      clip-rule=\"evenodd\"\n      d=\"M4.54643 4.14598C4.49987 4.19242 4.46292 4.2476 4.43772 4.30834C4.41251 4.36909 4.39954 4.43421 4.39954 4.49998C4.39954 4.56575 4.41251 4.63087 4.43772 4.69161C4.46292 4.75236 4.49987 4.80753 4.54643 4.85398L11.5464 11.854C11.6403 11.9479 11.7677 12.0006 11.9004 12.0006C12.0332 12.0006 12.1605 11.9479 12.2544 11.854C12.3483 11.7601 12.4011 11.6328 12.4011 11.5C12.4011 11.3672 12.3483 11.2399 12.2544 11.146L5.25443 4.14598C5.20798 4.09941 5.15281 4.06247 5.09206 4.03727C5.03132 4.01206 4.9662 3.99908 4.90043 3.99908C4.83466 3.99908 4.76954 4.01206 4.7088 4.03727C4.64805 4.06247 4.59288 4.09941 4.54643 4.14598Z\"\n      fill=\"currentColor\"\n      stroke=\"currentColor\"\n    />\n  </svg>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { DokuSelectLabelTemplate } from './directives/select-label-template.directive';\nimport { DokuSelectLoadingTemplate } from './directives/select-loading-template.directive';\nimport { DokuSelectNoItemTemplate } from './directives/select-no-item-template.directive';\nimport { DokuSelectOptionTemplate } from './directives/select-option-template.directive';\nimport { DokuSelect } from './select.component';\n\n@NgModule({\n  imports: [\n    DokuSelect,\n    DokuSelectLabelTemplate,\n    DokuSelectOptionTemplate,\n    DokuSelectNoItemTemplate,\n    DokuSelectLoadingTemplate,\n  ],\n  exports: [\n    DokuSelect,\n    DokuSelectLabelTemplate,\n    DokuSelectOptionTemplate,\n    DokuSelectNoItemTemplate,\n    DokuSelectLoadingTemplate,\n  ],\n})\nexport class DokuSelectModule {}\n","import { DokuSelectOptionItem } from '../../select';\n\ninterface ItemOption {\n  label: string;\n  value: string;\n}\n\nexport type MonthSelectOption = ItemOption;\nexport type YearSelectOption = ItemOption;\n\nexport class CalendarUtil {\n  private static readonly DEFAULT_LOCALE = 'en-US';\n  private static oneDayInSecond = 60 * 60 * 24;\n\n  static generateMonthSelectOptions(props: {\n    activeYear: number;\n    locale?: string;\n    minDate?: Date | null;\n    maxDate?: Date | null;\n  }): DokuSelectOptionItem[] {\n    const locale = props?.locale || this.DEFAULT_LOCALE;\n\n    return Array.from({ length: 12 }).map((_, idx) => {\n      let disabledByMinDate = false;\n      if (props.minDate) {\n        const shouldApply = props.minDate.getFullYear() === props.activeYear;\n        if (shouldApply) disabledByMinDate = idx < props.minDate.getMonth();\n      }\n\n      let disabledByMaxDate = false;\n      if (props.maxDate) {\n        const shouldApply = props.maxDate.getFullYear() === props.activeYear;\n        if (shouldApply) disabledByMaxDate = idx > props.maxDate.getMonth();\n      }\n\n      return {\n        label: new Date(0, idx).toLocaleString(locale, { month: 'short' }),\n        value: idx.toString(),\n        disabled: disabledByMinDate || disabledByMaxDate,\n      };\n    });\n  }\n\n  static generateYearSelectOptions(props: {\n    activeYear: number;\n    minDate?: Date | null;\n    maxDate?: Date | null;\n  }): DokuSelectOptionItem[] {\n    const numberOfYearsDisplayed = 21;\n    const startYear = props.activeYear - Math.floor(numberOfYearsDisplayed / 2);\n\n    return Array.from({ length: numberOfYearsDisplayed }, (_, i) => {\n      const year = startYear + i;\n\n      const disabledByMinDate = props.minDate ? year < props.minDate.getFullYear() : false;\n      const disabledByMaxDate = props.maxDate ? year > props.maxDate.getFullYear() : false;\n\n      return {\n        label: year.toString(),\n        value: year.toString(),\n        disabled: disabledByMinDate || disabledByMaxDate,\n      };\n    });\n  }\n\n  static generateWeekdays(options?: { locale?: string }): string[] {\n    const locale = options?.locale || this.DEFAULT_LOCALE;\n    return Array.from({ length: 7 }).map((_, idx) => {\n      let label = new Date(0, 0, idx + 1).toLocaleString(locale, { weekday: 'short' });\n      if (locale.startsWith('en')) label = label.substring(0, 2);\n      return label;\n    });\n  }\n\n  static generateDates({ month, year }: { month: number; year: number }): Date[] {\n    const totalDates = new Date(year, month + 1, 0).getDate();\n    return Array.from({ length: totalDates }).map((_, idx) => new Date(year, month, idx + 1));\n  }\n\n  static isValidMinYear(minDate: Date, checkedDate: Date): boolean {\n    return checkedDate.getFullYear() >= minDate.getFullYear();\n  }\n\n  static isValidMinMonth(minDate: Date, checkedDate: Date): boolean {\n    if (!this.isValidMinYear(minDate, checkedDate)) return false;\n    const sameYear = minDate.getFullYear() === checkedDate.getFullYear();\n    return sameYear ? checkedDate.getMonth() >= minDate.getMonth() : true;\n  }\n\n  static isValidMinDate(\n    minDate: Date,\n    checkedDate: Date,\n    options?: { useStrictTime?: boolean }\n  ): boolean {\n    if (!this.isValidMinMonth(minDate, checkedDate)) return false;\n    if (options?.useStrictTime) {\n      const result = (minDate.getTime() - checkedDate.getTime()) / 1000;\n      return result < this.oneDayInSecond;\n    } else {\n      return checkedDate >= minDate;\n    }\n  }\n\n  static isValidMaxYear(maxDate: Date, checkedDate: Date): boolean {\n    return checkedDate.getFullYear() <= maxDate.getFullYear();\n  }\n\n  static isValidMaxMonth(maxDate: Date, checkedDate: Date): boolean {\n    if (!this.isValidMaxYear(maxDate, checkedDate)) return false;\n    const sameYear = maxDate.getFullYear() === checkedDate.getFullYear();\n    return sameYear ? checkedDate.getMonth() <= maxDate.getMonth() : true;\n  }\n\n  static isValidMaxDate(\n    maxDate: Date,\n    checkedDate: Date,\n    options?: { useStrictTime?: boolean }\n  ): boolean {\n    if (!this.isValidMaxMonth(maxDate, checkedDate)) return false;\n    if (options?.useStrictTime) {\n      const result = (checkedDate.getTime() - maxDate.getTime()) / 1000;\n      return result <= 0;\n    } else {\n      return checkedDate <= maxDate;\n    }\n  }\n\n  static isSameDate(date?: Date | null, anotherDate?: Date | null) {\n    const sameYear = date?.getFullYear() === anotherDate?.getFullYear();\n    const sameMonth = date?.getMonth() === anotherDate?.getMonth();\n    const sameDate = date?.getDate() === anotherDate?.getDate();\n    return sameYear && sameMonth && sameDate;\n  }\n\n  static isInvalidMinOrMaxDate(\n    date: Date,\n    minDate?: Date | null,\n    maxDate?: Date | null,\n    options?: { useStrictTime?: boolean }\n  ) {\n    const invalidMinDate = minDate\n      ? !CalendarUtil.isValidMinDate(minDate, date, { useStrictTime: options?.useStrictTime })\n      : false;\n    const invalidMaxDate = maxDate\n      ? !CalendarUtil.isValidMaxDate(maxDate, date, { useStrictTime: options?.useStrictTime })\n      : false;\n    return invalidMinDate || invalidMaxDate;\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  HostBinding,\n  Input,\n  Output,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\n\n/**\n * `end` date will be always null if it's not date range.\n */\nexport type DateValue = { start: Date | null; end: Date | null };\n\n@Component({\n  selector: 'doku-date-picker-base-props',\n  exportAs: 'dokuDatePickerBaseProps',\n  standalone: true,\n  imports: [CommonModule],\n  template: '',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuDatePickerBaseProps {\n  @Input()\n  get value(): DateValue {\n    return this._value;\n  }\n  set value(date: DateValue | Date | string | null | undefined) {\n    if (date && typeof date === 'object' && Object.hasOwn(date, 'start')) {\n      const val = date as DateValue;\n      this._value = { start: this.normalizeDate(val.start), end: this.normalizeDate(val.end) };\n    } else {\n      const val = date as Date | string | null | undefined;\n      this._value = { start: this.normalizeDate(val), end: null };\n    }\n    this.notifyChange$.next('value');\n  }\n  private _value: DateValue = { start: null, end: null };\n\n  @Input()\n  get minDate(): Date | null {\n    return this._minDate;\n  }\n  set minDate(date: Date | string | null | undefined) {\n    this._minDate = this.normalizeDate(date);\n    this.notifyChange$.next('minDate');\n  }\n  private _minDate: Date | null = null;\n\n  @Input()\n  get maxDate(): Date | null {\n    return this._maxDate;\n  }\n  set maxDate(date: Date | string | null | undefined) {\n    this._maxDate = this.normalizeDate(date);\n    this.notifyChange$.next('maxDate');\n  }\n  private _maxDate: Date | null = null;\n\n  @HostBinding('class.d-date-picker-disabled')\n  @Input()\n  get disabled(): boolean {\n    return this._disabled;\n  }\n  set disabled(value: boolean) {\n    this._disabled = value;\n    this.notifyChange$.next('disabled');\n  }\n  private _disabled = false;\n\n  @HostBinding('class.d-date-picker-readonly')\n  @Input()\n  get readonly(): boolean {\n    return this._readonly;\n  }\n  set readonly(value: boolean) {\n    this._readonly = value;\n    this.notifyChange$.next('readonly');\n  }\n  private _readonly = false;\n\n  @Input() useDateRange = false;\n\n  @Output() valueChange = new EventEmitter<DateValue>();\n\n  protected notifyChange$ = new ReplaySubject<\n    'value' | 'minDate' | 'maxDate' | 'disabled' | 'readonly'\n  >();\n\n  private normalizeDate(date?: Date | string | null): Date | null {\n    if (!date) return null;\n    if (!(date instanceof Date || typeof date === 'string')) return null;\n    return date instanceof Date ? date : new Date(date);\n  }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const DOKU_DATE_PICKER_STRICT_TIME = new InjectionToken<boolean>(\n  'DOKU_DATE_PICKER_STRICT_TIME'\n);\n","import { CommonModule, NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  HostBinding,\n  Inject,\n  LOCALE_ID,\n  NgZone,\n  OnDestroy,\n  OnInit,\n  Optional,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { Subject, distinctUntilChanged, filter, map, skip, takeUntil } from 'rxjs';\nimport { DokuBreakpoint } from '../../breakpoint';\nimport { DokuFormFieldModule } from '../../form-field';\nimport { DokuSelectModule, DokuSelectOptionItem } from '../../select';\nimport { DokuTypographyModule } from '../../typography';\nimport { CalendarUtil } from './calendar.util';\nimport { DokuDatePickerBaseProps } from './date-picker-base-props.component';\nimport { DOKU_DATE_PICKER_STRICT_TIME } from './date-picker.token';\n\ninterface CalendarItem {\n  dates: (DateItem | null)[];\n}\n\ninterface DateItem {\n  day: Date;\n  isSelected?: boolean;\n  /**\n   * Only available when `useDateRange` is true.\n   */\n  isSelectedRange?: boolean;\n  isDisabled?: boolean;\n}\n\n@Component({\n  selector: 'doku-date-picker-base',\n  exportAs: 'dokuDatePickerBase',\n  standalone: true,\n  imports: [CommonModule, FormsModule, DokuSelectModule, DokuFormFieldModule, DokuTypographyModule],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  templateUrl: './date-picker-base.component.html',\n})\nexport class DokuDatePickerBase extends DokuDatePickerBaseProps implements OnInit, OnDestroy {\n  @HostBinding('class')\n  protected readonly classes: NgClass['ngClass'] = 'd-date-picker-base';\n\n  protected calendars: CalendarItem[] = [];\n\n  private get activeCalendar(): Date {\n    // Always set the date to 1st so that it doesn't break while navigating to month/year\n    // because of different total days.\n    return new Date(this._activeCalendar.getFullYear(), this._activeCalendar.getMonth(), 1);\n  }\n  private set activeCalendar(date: Date) {\n    this._activeCalendar = date;\n  }\n  private _activeCalendar: Date = new Date();\n\n  protected get calendarHeaders(): string[] {\n    return this.calendars.map((_, idx) => {\n      const date = new Date(this.activeCalendar);\n      date.setMonth(date.getMonth() + idx);\n      const month = date.toLocaleString(this.localeId, { month: 'long' });\n      const year = date.getFullYear();\n      return `${month} ${year}`;\n    });\n  }\n\n  protected canNavigateToPreviousMonth = false;\n  protected canNavigateToNextMonth = false;\n\n  protected destroy$ = new Subject();\n\n  constructor(\n    @Inject(LOCALE_ID) protected localeId: string,\n    private ngZone: NgZone,\n    @Optional() @Inject(DOKU_DATE_PICKER_STRICT_TIME) private useStrictTime: boolean\n  ) {\n    super();\n  }\n\n  protected get monthSelectOptions(): DokuSelectOptionItem[] {\n    return CalendarUtil.generateMonthSelectOptions({\n      locale: this.localeId,\n      minDate: this.minDate,\n      maxDate: this.maxDate,\n      activeYear: parseInt(this.activeYear),\n    });\n  }\n\n  protected get yearSelectOptions(): DokuSelectOptionItem[] {\n    return CalendarUtil.generateYearSelectOptions({\n      activeYear: parseInt(this.activeYear),\n      minDate: this.minDate,\n      maxDate: this.maxDate,\n    });\n  }\n\n  protected get weekdays(): string[] {\n    return CalendarUtil.generateWeekdays({ locale: this.localeId });\n  }\n\n  protected get activeMonth(): string {\n    return this.activeCalendar.getMonth().toString();\n  }\n\n  protected get activeYear(): string {\n    return this.activeCalendar.getFullYear().toString();\n  }\n\n  private get isMobileScreen(): boolean {\n    return window.matchMedia(DokuBreakpoint.mobile).matches;\n  }\n\n  ngOnInit(): void {\n    this.activeCalendar = this.value?.start || new Date();\n    this.generateCalendar();\n\n    this.notifyChange$\n      .pipe(\n        filter((change) => change === 'value' || change === 'minDate' || change === 'maxDate'),\n        map(() => this.value),\n        distinctUntilChanged((prev, current) => JSON.stringify(prev) === JSON.stringify(current)),\n        skip(1),\n        takeUntil(this.destroy$)\n      )\n      .subscribe((value) => {\n        this.handleDateState();\n        this.valueChange.emit(value);\n      });\n\n    this.notifyChange$\n      .pipe(\n        filter((change) => change === 'minDate' || change === 'maxDate'),\n        map(() => ({ minDate: this.minDate, maxDate: this.maxDate })),\n        distinctUntilChanged((prev, current) => JSON.stringify(prev) === JSON.stringify(current)),\n        takeUntil(this.destroy$)\n      )\n      .subscribe(() => {\n        this.handleDateState();\n      });\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next(true);\n    this.destroy$.complete();\n  }\n\n  navigateTo(date: Date | string) {\n    const comingDate = new Date(date);\n\n    if (this.minDate) {\n      const valid = CalendarUtil.isValidMinMonth(this.minDate, comingDate);\n      if (!valid) return;\n    }\n\n    if (this.maxDate) {\n      const valid = CalendarUtil.isValidMaxMonth(this.maxDate, comingDate);\n      if (!valid) return;\n    }\n\n    this.activeCalendar = comingDate;\n    this.generateCalendar();\n  }\n\n  protected navigateToPreviousMonth() {\n    const date = new Date(this.activeCalendar);\n    date.setMonth(date.getMonth() - 1);\n    this.navigateTo(date);\n  }\n\n  protected navigateToNextMonth() {\n    const date = new Date(this.activeCalendar);\n    date.setMonth(date.getMonth() + 1);\n    this.navigateTo(date);\n  }\n\n  protected onMonthChange(value: string | string[]) {\n    if (Array.isArray(value)) return;\n    const date = new Date(this.activeCalendar);\n    date.setMonth(parseInt(value));\n    this.navigateTo(date);\n  }\n\n  protected onYearChange(value: string | string[]) {\n    if (Array.isArray(value)) return;\n    const date = new Date(this.activeCalendar);\n    date.setFullYear(parseInt(value));\n    this.navigateTo(date);\n  }\n\n  protected onSelectDate(date: DateItem) {\n    if (!date || date.isDisabled || this.disabled) return;\n\n    if (this.useDateRange) {\n      this.handleSelectDateRange(date);\n    } else {\n      this.value = this.handleStrictTime(date.day, this.value.start);\n    }\n  }\n\n  protected onDayMouseEnter(date?: DateItem | null) {\n    if (!this.useDateRange) return;\n    this.ngZone.runOutsideAngular(() => {\n      if (!this.value?.start || !date) return;\n\n      const dateItems = this.calendars.reduce(\n        (prev, current) => [...prev, ...current.dates],\n        <CalendarItem['dates']>[]\n      );\n\n      if (date.day > this.value.start && !this.value.end) {\n        const hoveredDay = dateItems.filter(\n          (item) => item && this.value?.start && item.day > this.value.start && item.day <= date.day\n        );\n\n        hoveredDay.forEach((item) => {\n          if (item && !item.isDisabled) item.isSelectedRange = true;\n        });\n      }\n    });\n  }\n\n  protected onDayMouseLeave(date?: DateItem | null) {\n    if (!this.useDateRange) return;\n    this.ngZone.runOutsideAngular(() => {\n      if (!this.value?.start || !date) return;\n\n      const dateItems = this.calendars.reduce(\n        (prev, current) => [...prev, ...current.dates],\n        <CalendarItem['dates']>[]\n      );\n\n      if (!this.value.end) {\n        dateItems.forEach((item) => {\n          if (item) item.isSelectedRange = false;\n        });\n      }\n    });\n  }\n\n  private handleSelectDateRange(date: DateItem) {\n    let startDate = this.value?.start || date.day;\n    let endDate = this.value?.end || null;\n\n    if (this.value?.start && date.day < this.value.start) {\n      startDate = date.day;\n    }\n\n    if (this.value?.start && date.day >= this.value.start) {\n      endDate = date.day;\n    }\n\n    if (this.value?.start && this.value.end) {\n      startDate = date.day;\n      endDate = null;\n    }\n\n    this.value = { start: startDate, end: endDate };\n  }\n\n  private generateDates(props: { month: number; year: number }): (DateItem | null)[] {\n    const dates = CalendarUtil.generateDates(props).map((date) => <DateItem>{ day: date });\n    return this.handleOutsideDays(dates);\n  }\n\n  private handleOutsideDays(dates: DateItem[]): (DateItem | null)[] {\n    const firstDate = dates[0].day.getDay();\n    const numberOfEmptyDates = firstDate === 0 ? 6 : firstDate - 1;\n    // Add empty date items as null to act as dates for previous month.\n    const emptyPreviousDates = Array.from({ length: numberOfEmptyDates }).map(() => null);\n    return [...emptyPreviousDates, ...dates];\n  }\n\n  private generateActiveMonthDates() {\n    return this.generateDates({\n      month: this.activeCalendar.getMonth(),\n      year: this.activeCalendar.getFullYear(),\n    });\n  }\n\n  private generateNextMonthDates() {\n    return this.generateDates({\n      month: this.activeCalendar.getMonth() + 1,\n      year: this.activeCalendar.getFullYear(),\n    });\n  }\n\n  private validateMonthNavigation() {\n    if (this.minDate) {\n      const date = new Date(this.activeCalendar);\n      date.setMonth(date.getMonth() - 1);\n      this.canNavigateToPreviousMonth = CalendarUtil.isValidMinMonth(this.minDate, date);\n    } else {\n      this.canNavigateToPreviousMonth = true;\n    }\n\n    if (this.maxDate) {\n      const date = new Date(this.activeCalendar);\n      date.setMonth(date.getMonth() + 1);\n      this.canNavigateToNextMonth = CalendarUtil.isValidMaxMonth(this.maxDate, date);\n    } else {\n      this.canNavigateToNextMonth = true;\n    }\n  }\n\n  private handleDateState() {\n    this.calendars.forEach((calendar) => {\n      calendar.dates.forEach((dateItem) => {\n        if (!dateItem) return;\n\n        dateItem.isSelectedRange = false;\n        dateItem.isSelected = CalendarUtil.isSameDate(dateItem.day, this.value?.start);\n\n        if (this.useDateRange && !dateItem.isSelected && this.value?.end) {\n          dateItem.isSelected = CalendarUtil.isSameDate(dateItem.day, this.value.end);\n        }\n\n        if (this.useDateRange && this.value?.start && this.value.end && !dateItem.isSelected) {\n          const isOnRange = dateItem.day > this.value.start && dateItem.day < this.value.end;\n          dateItem.isSelectedRange = isOnRange;\n        }\n\n        dateItem.isDisabled = CalendarUtil.isInvalidMinOrMaxDate(\n          dateItem.day,\n          this.minDate,\n          this.maxDate,\n          { useStrictTime: this.useStrictTime }\n        );\n      });\n    });\n  }\n\n  private generateCalendar() {\n    this.calendars = [];\n\n    this.calendars.push({ dates: this.generateActiveMonthDates() });\n\n    if (this.useDateRange && !this.isMobileScreen) {\n      this.calendars.push({ dates: this.generateNextMonthDates() });\n    }\n\n    this.validateMonthNavigation();\n    this.handleDateState();\n  }\n\n  private handleStrictTime(date: Date, time?: Date | null) {\n    if (!this.useStrictTime) return date;\n\n    if (!time) {\n      return this.handleReturnMinOrMaxDate(date);\n    }\n\n    const newDate = new Date(date);\n    newDate.setHours(time.getHours(), time.getMinutes(), time.getSeconds(), time.getMilliseconds());\n\n    return this.handleReturnMinOrMaxDate(newDate);\n  }\n\n  private handleReturnMinOrMaxDate(date: Date): Date {\n    if (this.minDate && date < this.minDate) {\n      return this.minDate;\n    }\n\n    if (this.maxDate && date > this.maxDate) {\n      return this.maxDate;\n    }\n\n    return date;\n  }\n}\n","<div class=\"d-date-picker-container\" [class.d-date-range]=\"useDateRange\">\n  <div class=\"d-date-picker-header\">\n    <span\n      class=\"d-date-picker-arrow\"\n      [class.disabled]=\"!canNavigateToPreviousMonth\"\n      (click)=\"navigateToPreviousMonth()\"\n    >\n      <ng-container [ngTemplateOutlet]=\"leftArrowIcon\"></ng-container>\n    </span>\n    <div class=\"d-date-picker-header-content\">\n      <ng-container *ngIf=\"!useDateRange\">\n        <doku-form-field>\n          <doku-select\n            [items]=\"monthSelectOptions\"\n            [value]=\"activeMonth\"\n            (valueChange)=\"onMonthChange($event)\"\n            portalClass=\"d-date-picker-month-selector\"\n          ></doku-select>\n        </doku-form-field>\n        <doku-form-field>\n          <doku-select\n            [items]=\"yearSelectOptions\"\n            [value]=\"activeYear\"\n            (valueChange)=\"onYearChange($event)\"\n            portalClass=\"d-date-picker-year-selector\"\n          ></doku-select>\n        </doku-form-field>\n      </ng-container>\n      <ng-container *ngIf=\"useDateRange\">\n        <div *ngFor=\"let headerText of calendarHeaders\" doku-typography class=\"header-item\">\n          {{ headerText }}\n        </div>\n      </ng-container>\n    </div>\n    <span\n      class=\"d-date-picker-arrow\"\n      [class.disabled]=\"!canNavigateToNextMonth\"\n      (click)=\"navigateToNextMonth()\"\n    >\n      <ng-container [ngTemplateOutlet]=\"rightArrowIcon\"></ng-container>\n    </span>\n  </div>\n\n  <div class=\"d-date-picker-body\">\n    <div class=\"d-date-picker-calendar\" *ngFor=\"let calendar of calendars\">\n      <div class=\"d-date-picker-calendar-content\">\n        <div class=\"d-date-picker-calendar-content-item\">\n          <div class=\"d-date-picker-weekdays\">\n            <div class=\"d-date-picker-weekdays-item\" *ngFor=\"let label of weekdays\">\n              {{ label }}\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class=\"d-date-picker-calendar-content\">\n        <div class=\"d-date-picker-calendar-content-item\">\n          <div class=\"d-date-picker-days\">\n            <div\n              #day\n              class=\"d-date-picker-day\"\n              *ngFor=\"let date of calendar.dates\"\n              [class.d-date-picker-selected]=\"date?.isSelected\"\n              [class.d-date-picker-disabled]=\"date?.isDisabled\"\n              [class.d-date-picker-selected-range]=\"date?.isSelectedRange\"\n              (click)=\"!!date && onSelectDate(date)\"\n              (mouseenter)=\"onDayMouseEnter(date)\"\n              (mouseleave)=\"onDayMouseLeave(date)\"\n            >\n              <ng-container *ngIf=\"date\">{{ date.day | date : \"d\" }}</ng-container>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"d-date-picker-footer\">\n    <ng-content select=\"[doku-date-picker-footer]\"></ng-content>\n  </div>\n</div>\n\n<ng-template #leftArrowIcon>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\n    <g clip-path=\"url(#clip0_488_16768)\">\n      <path\n        d=\"M13.1324 2.9025L11.7974 1.575L4.37988 9L11.8049 16.425L13.1324 15.0975L7.03488 9L13.1324 2.9025Z\"\n        fill=\"currentColor\"\n      />\n    </g>\n    <defs>\n      <clipPath id=\"clip0_488_16768\">\n        <rect width=\"18\" height=\"18\" fill=\"white\" />\n      </clipPath>\n    </defs>\n  </svg>\n</ng-template>\n\n<ng-template #rightArrowIcon>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\n    <g clip-path=\"url(#clip0_488_16769)\">\n      <path\n        d=\"M4.86743 15.0975L6.19493 16.425L13.6199 9L6.19493 1.575L4.86743 2.9025L10.9649 9L4.86743 15.0975Z\"\n        fill=\"currentColor\"\n      />\n    </g>\n    <defs>\n      <clipPath id=\"clip0_488_16769\">\n        <rect width=\"18\" height=\"18\" fill=\"white\" />\n      </clipPath>\n    </defs>\n  </svg>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Input,\n  Output,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\nimport { DateResult } from '../date-picker.interface';\n\n@Component({\n  selector: 'doku-date-picker-basic-props',\n  exportAs: 'dokuDatePickerBasicProps',\n  standalone: true,\n  imports: [CommonModule],\n  template: '',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuDatePickerBasicProps {\n  /**\n   * Value of the date picker.\n   *\n   * If it's a string, it must be in ISO String.\n   *\n   * @default null\n   */\n  @Input()\n  get value(): Date | null {\n    return this._value;\n  }\n  set value(date: Date | string | null | undefined) {\n    this._value = this.normalizeDate(date);\n    this.notifyChange$.next('value');\n  }\n  private _value: Date | null = null;\n\n  /**\n   * Minimum date allowed to be selected.\n   *\n   * If it's a string, it must be in ISO String.\n   *\n   * @default null\n   */\n  @Input()\n  get minDate(): Date | null {\n    return this._minDate;\n  }\n  set minDate(date: Date | string | null | undefined) {\n    this._minDate = this.normalizeDate(date);\n    this.notifyChange$.next('minDate');\n  }\n  private _minDate: Date | null = null;\n\n  /**\n   * Maximum date allowed to be selected.\n   *\n   * If it's a string, it must be in ISO String.\n   *\n   * @default null\n   */\n  @Input()\n  get maxDate(): Date | null {\n    return this._maxDate;\n  }\n  set maxDate(date: Date | string | null | undefined) {\n    this._maxDate = this.normalizeDate(date);\n    this.notifyChange$.next('maxDate');\n  }\n  private _maxDate: Date | null = null;\n\n  /**\n   * Whether date picker is disabled.\n   *\n   * @default false\n   */\n  @Input()\n  get disabled(): boolean {\n    return this._disabled;\n  }\n  set disabled(value: boolean) {\n    this._disabled = value;\n    this.notifyChange$.next('disabled');\n  }\n  private _disabled = false;\n\n  /**\n   * Whether date picker is readonly.\n   *\n   * @default false\n   */\n  @Input()\n  get readonly(): boolean {\n    return this._readonly;\n  }\n  set readonly(value: boolean) {\n    this._readonly = value;\n    this.notifyChange$.next('readonly');\n  }\n  private _readonly = false;\n\n  /**\n   * An event emitted when the value changes.\n   */\n  @Output() valueChange = new EventEmitter<DateResult>();\n\n  protected notifyChange$ = new ReplaySubject<\n    'value' | 'minDate' | 'maxDate' | 'disabled' | 'readonly'\n  >();\n\n  private normalizeDate(date?: Date | string | null): Date | null {\n    if (!date) return null;\n    if (!(date instanceof Date || typeof date === 'string')) return null;\n    return date instanceof Date ? date : new Date(date);\n  }\n}\n","import { CommonModule, DOCUMENT, DatePipe, NgClass } from '@angular/common';\nimport {\n  AfterViewInit,\n  ApplicationRef,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ComponentRef,\n  EnvironmentInjector,\n  Host,\n  HostBinding,\n  Inject,\n  Injector,\n  Input,\n  LOCALE_ID,\n  NgZone,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Renderer2,\n  Self,\n  ViewEncapsulation,\n  createComponent,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport {\n  Subject,\n  delay,\n  distinctUntilChanged,\n  filter,\n  fromEvent,\n  map,\n  skip,\n  startWith,\n  takeUntil,\n} from 'rxjs';\nimport { getClickType } from '../../../utils/get-click-type';\nimport { updateFloatingPosition } from '../../../utils/update-floating-position';\nimport {\n  DOKU_FORM_FIELD_ACCESSOR,\n  DokuFormField,\n  DokuFormFieldAccessor,\n  DokuFormFieldAccessorValidateValue,\n} from '../../form-field';\nimport { DokuDatePickerBase } from '../base/date-picker-base.component';\nimport { DokuDatePickerBasicProps } from '../common/date-picker-basic-props.component';\n\n@Component({\n  selector: 'doku-date-picker',\n  exportAs: 'dokuDatePicker',\n  standalone: true,\n  imports: [CommonModule, DokuDatePickerBase],\n  templateUrl: './date-picker.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [DatePipe, { provide: DOKU_FORM_FIELD_ACCESSOR, useExisting: DokuDatePicker }],\n})\nexport class DokuDatePicker\n  extends DokuDatePickerBasicProps\n  implements OnDestroy, OnInit, ControlValueAccessor, DokuFormFieldAccessor, AfterViewInit\n{\n  @HostBinding('class')\n  protected readonly class: NgClass['ngClass'] = 'd-date-picker';\n\n  /**\n   * Whether to close date picker dropdown after selecting the date.\n   *\n   * @default true\n   */\n  @Input() closeOnDateClick = true;\n\n  /**\n   * Date format that will be used for formatting displayed value in the input field. It follows Angular DatePipe's format options.\n   *\n   * @default 'dd/MM/yyyy'\n   */\n  @Input() dateFormat = 'dd/MM/yyyy';\n\n  /**\n   * Placeholder of the date picker input.\n   *\n   * @default 'dd/mm/yyyy'\n   */\n  @Input() placeholder = 'dd/mm/yyyy';\n\n  private isOpen = false;\n\n  private portalElement?: HTMLDivElement;\n  private datePickerBaseRef?: ComponentRef<DokuDatePickerBase>;\n\n  private destroy$ = new Subject();\n  private cleanup?: () => void;\n\n  constructor(\n    private renderer: Renderer2,\n    protected envInjector: EnvironmentInjector,\n    private injector: Injector,\n    protected appRef: ApplicationRef,\n    private ngZone: NgZone,\n    private datePipe: DatePipe,\n    private cdr: ChangeDetectorRef,\n    @Inject(DOCUMENT) private document: Document,\n    @Inject(LOCALE_ID) private localeId: string,\n    @Optional() @Self() private ngControl?: NgControl,\n    @Optional() @Host() private formField?: DokuFormField\n  ) {\n    super();\n\n    if (this.ngControl) {\n      this.ngControl.valueAccessor = this;\n    }\n\n    this.onClickHandler();\n  }\n\n  protected get formattedValue(): string | null {\n    return this.value\n      ? this.datePipe.transform(this.value, this.dateFormat, undefined, this.localeId)\n      : null;\n  }\n\n  private get inputWrapperElement(): HTMLElement | undefined {\n    return this.formField?.['inputWrapperElement'];\n  }\n\n  ngOnInit(): void {\n    this.notifyChange$\n      .pipe(\n        filter((change) => change === 'value' || change === 'minDate' || change === 'maxDate'),\n        startWith(this.value?.toISOString() || null),\n        map(() => this.value?.toISOString() || null),\n        distinctUntilChanged(),\n        skip(1),\n        takeUntil(this.destroy$)\n      )\n      .subscribe((value) => {\n        this.valueChange.emit(value);\n      });\n\n    this.valueChange.pipe(distinctUntilChanged(), takeUntil(this.destroy$)).subscribe((value) => {\n      this.onChange?.(value);\n      this.onTouched?.();\n      this.cdr.detectChanges();\n    });\n  }\n\n  ngAfterViewInit(): void {\n    this.ngControl?.statusChanges\n      ?.pipe(\n        startWith(this.ngControl.status),\n        distinctUntilChanged(),\n        delay(0),\n        takeUntil(this.destroy$)\n      )\n      .subscribe(() => {\n        this.disabled = !!this.ngControl?.disabled;\n      });\n\n    this.ngControl?.statusChanges\n      ?.pipe(distinctUntilChanged(), delay(0), takeUntil(this.destroy$))\n      .subscribe((status) => {\n        if (status === 'VALID') {\n          this.onValidate?.('valid');\n        } else if (status === 'INVALID') {\n          this.onValidate?.('invalid');\n        } else {\n          this.onValidate?.();\n        }\n      });\n\n    this.notifyChange$\n      .pipe(\n        filter((change) => change === 'disabled' || change === 'readonly'),\n        startWith({ disabled: this.disabled, readonly: this.readonly }),\n        map(() => ({ disabled: this.disabled, readonly: this.readonly })),\n        distinctUntilChanged((prev, current) => JSON.stringify(prev) === JSON.stringify(current)),\n        delay(0),\n        takeUntil(this.destroy$)\n      )\n      .subscribe(({ disabled, readonly }) => {\n        this.onDisable?.(disabled);\n        this.onReadonly?.(readonly);\n        this.setInputWrapperCursorState(this.inputWrapperElement, { disabled, readonly });\n      });\n  }\n\n  ngOnDestroy(): void {\n    this.close();\n    this.destroy$.next(true);\n    this.destroy$.complete();\n    this.cleanup?.();\n  }\n\n  onDisable?: ((value: boolean) => void) | undefined;\n  onReadonly?: ((value: boolean) => void) | undefined;\n  onValidate?: ((value?: DokuFormFieldAccessorValidateValue | undefined) => void) | undefined;\n  registerOnDisable(fn: (value: boolean) => void): void {\n    this.onDisable = fn;\n  }\n  registerOnValidate?(fn: (value?: DokuFormFieldAccessorValidateValue | undefined) => void): void {\n    this.onValidate = fn;\n  }\n  registerOnReadonly(fn: (value: boolean) => void): void {\n    this.onReadonly = fn;\n  }\n\n  onChange?: (value: unknown) => void;\n  onTouched?: () => void;\n  writeValue(value?: Date | string | null): void {\n    this.value = value;\n  }\n  registerOnChange(fn: (value: unknown) => void): void {\n    this.onChange = fn;\n  }\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n  setDisabledState?(isDisabled: boolean): void {\n    this.onDisable?.(isDisabled);\n  }\n\n  /**\n   * Open the date picker dropdown.\n   */\n  open() {\n    if (this.isOpen || this.disabled || this.readonly) return;\n    this.isOpen = true;\n\n    this.portalElement = this.createPortalElement();\n    this.datePickerBaseRef = this.createDatePickerComponent();\n\n    this.renderer.appendChild(this.portalElement, this.datePickerBaseRef.location.nativeElement);\n    this.renderer.appendChild(this.document.body, this.portalElement);\n\n    this.doAutoUpdateDropdownPosition();\n  }\n\n  /**\n   * Close the date picker dropdown.\n   */\n  close() {\n    if (!this.isOpen) return;\n    this.isOpen = false;\n\n    if (this.portalElement) this.renderer.removeChild(this.document.body, this.portalElement);\n    this.datePickerBaseRef?.destroy();\n  }\n\n  /**\n   * Toggle the date picker dropdown.\n   */\n  toggle() {\n    this.isOpen ? this.close() : this.open();\n  }\n\n  private createPortalElement() {\n    const el = this.renderer.createElement('div') as HTMLDivElement;\n    this.renderer.addClass(el, 'd-date-picker-portal');\n    return el;\n  }\n\n  protected createComponentRef(props: { elementInjector: Injector }) {\n    const ref = createComponent(DokuDatePickerBase, {\n      environmentInjector: this.envInjector,\n      elementInjector: props.elementInjector,\n    });\n    ref.setInput('value', this.value);\n    ref.setInput('minDate', this.minDate);\n    ref.setInput('maxDate', this.maxDate);\n    return ref;\n  }\n\n  private createDatePickerComponent() {\n    const elementInjector = Injector.create({ providers: [], parent: this.injector });\n\n    const ref = this.createComponentRef({ elementInjector });\n\n    this.appRef.attachView(ref.hostView);\n\n    const valueChangeListener = ref.instance.valueChange.subscribe((value) => {\n      this.value = value?.start;\n      if (this.closeOnDateClick) this.close();\n    });\n\n    ref.onDestroy(() => {\n      valueChangeListener.unsubscribe();\n    });\n\n    ref.changeDetectorRef.detectChanges();\n    return ref;\n  }\n\n  private onClickHandler() {\n    fromEvent(this.document, 'click')\n      .pipe(takeUntil(this.destroy$))\n      .subscribe((event) => {\n        const { clickOutside, clickTrigger } = getClickType(\n          event,\n          [this.inputWrapperElement],\n          [this.portalElement]\n        );\n\n        if (clickTrigger) return this.toggle();\n\n        // Prevent dropdown from being closed when choosing month or year.\n        const nodeName = (event.target as HTMLElement).nodeName.toLowerCase();\n        if (nodeName === 'doku-select-option') return;\n\n        if (clickOutside) return this.close();\n      });\n  }\n\n  private doAutoUpdateDropdownPosition() {\n    this.ngZone.runOutsideAngular(() => {\n      if (!this.inputWrapperElement || !this.portalElement) return;\n      this.cleanup = updateFloatingPosition({\n        triggerElement: this.inputWrapperElement,\n        floatingElement: this.portalElement,\n        placement: 'bottom-start',\n        autoUpdate: true,\n        middleware: {\n          flip: true,\n          shift: true,\n        },\n      });\n    });\n  }\n\n  private setInputWrapperCursorState(\n    inputWrapperElement?: HTMLElement,\n    props?: { disabled?: boolean; readonly?: boolean }\n  ): void {\n    if (!inputWrapperElement) return;\n\n    let cursor = 'pointer';\n    if (props?.readonly) cursor = 'text';\n    if (props?.disabled) cursor = 'not-allowed';\n    inputWrapperElement.style.cursor = cursor;\n  }\n}\n","<span *ngIf=\"!formattedValue\" class=\"d-date-picker-placeholder\">\n  {{ placeholder }}\n</span>\n\n<span *ngIf=\"formattedValue\" class=\"d-date-picker-value\">\n  {{ formattedValue }}\n</span>\n\n<span class=\"icon-calendar\">\n  <ng-container *ngTemplateOutlet=\"iconCalendar\"></ng-container>\n</span>\n\n<ng-template #iconCalendar>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n    <path\n      d=\"M19 5H5C4.44772 5 4 5.44772 4 6V17C4 17.5523 4.44772 18 5 18H19C19.5523 18 20 17.5523 20 17V6C20 5.44772 19.5523 5 19 5Z\"\n      stroke=\"currentColor\"\n    />\n    <path d=\"M4 7.94336H20\" stroke=\"currentColor\" />\n    <ellipse cx=\"7.69213\" cy=\"11.3774\" rx=\"0.984615\" ry=\"0.981132\" fill=\"currentColor\" />\n    <ellipse cx=\"7.69213\" cy=\"14.3207\" rx=\"0.984615\" ry=\"0.981132\" fill=\"currentColor\" />\n    <ellipse cx=\"10.6462\" cy=\"11.3774\" rx=\"0.984615\" ry=\"0.981132\" fill=\"currentColor\" />\n    <ellipse cx=\"10.6462\" cy=\"14.3207\" rx=\"0.984615\" ry=\"0.981132\" fill=\"currentColor\" />\n    <ellipse cx=\"13.5998\" cy=\"11.3774\" rx=\"0.984615\" ry=\"0.981132\" fill=\"currentColor\" />\n    <ellipse cx=\"13.5998\" cy=\"14.3207\" rx=\"0.984615\" ry=\"0.981132\" fill=\"currentColor\" />\n    <ellipse cx=\"16.554\" cy=\"11.3774\" rx=\"0.984615\" ry=\"0.981132\" fill=\"currentColor\" />\n    <ellipse cx=\"16.554\" cy=\"14.3207\" rx=\"0.984615\" ry=\"0.981132\" fill=\"currentColor\" />\n  </svg>\n</ng-template>\n","import { CommonModule, NgClass } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  HostBinding,\n  Inject,\n  LOCALE_ID,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Self,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport {\n  Subject,\n  delay,\n  distinctUntilChanged,\n  filter,\n  map,\n  skip,\n  startWith,\n  takeUntil,\n} from 'rxjs';\nimport {\n  DOKU_FORM_FIELD_ACCESSOR,\n  DokuFormFieldAccessor,\n  DokuFormFieldAccessorValidateValue,\n  DokuFormFieldOptions,\n} from '../../form-field';\nimport { DokuDatePickerBase } from '../base/date-picker-base.component';\nimport { DokuDatePickerBasicProps } from '../common/date-picker-basic-props.component';\n\n@Component({\n  selector: 'doku-date-picker-inline',\n  exportAs: 'dokuDatePickerInline',\n  standalone: true,\n  imports: [CommonModule, DokuDatePickerBase],\n  templateUrl: './date-picker-inline.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{ provide: DOKU_FORM_FIELD_ACCESSOR, useExisting: DokuDatePickerInline }],\n})\nexport class DokuDatePickerInline\n  extends DokuDatePickerBasicProps\n  implements DokuFormFieldAccessor, ControlValueAccessor, OnInit, AfterViewInit, OnDestroy\n{\n  @HostBinding('class')\n  protected readonly class: NgClass['ngClass'] = 'd-date-picker-inline';\n\n  private destroy$ = new Subject();\n\n  constructor(\n    private cdr: ChangeDetectorRef,\n    @Inject(LOCALE_ID) protected localeId: string,\n    @Optional() @Self() private ngControl?: NgControl\n  ) {\n    super();\n    if (this.ngControl) {\n      this.ngControl.valueAccessor = this;\n    }\n  }\n\n  ngOnInit(): void {\n    this.notifyChange$\n      .pipe(\n        filter((change) => change === 'value' || change === 'minDate' || change === 'maxDate'),\n        startWith(this.value?.toISOString() || null),\n        map(() => this.value?.toISOString() || null),\n        distinctUntilChanged(),\n        skip(1),\n        takeUntil(this.destroy$)\n      )\n      .subscribe((value) => {\n        this.valueChange.emit(value);\n      });\n\n    this.valueChange.pipe(distinctUntilChanged(), takeUntil(this.destroy$)).subscribe((value) => {\n      this.onChange?.(value);\n      this.onTouched?.();\n      this.cdr.detectChanges();\n    });\n  }\n\n  ngAfterViewInit(): void {\n    this.ngControl?.statusChanges\n      ?.pipe(\n        startWith(this.ngControl.status),\n        distinctUntilChanged(),\n        delay(0),\n        takeUntil(this.destroy$)\n      )\n      .subscribe(() => {\n        this.disabled = !!this.ngControl?.disabled;\n      });\n\n    this.ngControl?.statusChanges\n      ?.pipe(distinctUntilChanged(), delay(0), takeUntil(this.destroy$))\n      .subscribe((status) => {\n        if (status === 'VALID') {\n          this.onValidate?.('valid');\n        } else if (status === 'INVALID') {\n          this.onValidate?.('invalid');\n        } else {\n          this.onValidate?.();\n        }\n      });\n\n    this.notifyChange$\n      .pipe(\n        filter((change) => change === 'disabled' || change === 'readonly'),\n        startWith({ disabled: this.disabled, readonly: this.readonly }),\n        map(() => ({ disabled: this.disabled, readonly: this.readonly })),\n        distinctUntilChanged((prev, current) => JSON.stringify(prev) === JSON.stringify(current)),\n        delay(0),\n        takeUntil(this.destroy$)\n      )\n      .subscribe(({ disabled, readonly }) => {\n        this.onDisable?.(disabled);\n        this.onReadonly?.(readonly);\n        this.cdr.detectChanges();\n      });\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next(true);\n    this.destroy$.complete();\n  }\n\n  fieldOptions?: DokuFormFieldOptions | undefined = { withoutInputStyle: true };\n  onDisable?: ((value: boolean) => void) | undefined;\n  onReadonly?: ((value: boolean) => void) | undefined;\n  onValidate?: ((value?: DokuFormFieldAccessorValidateValue | undefined) => void) | undefined;\n  registerOnDisable(fn: (value: boolean) => void): void {\n    this.onDisable = fn;\n  }\n  registerOnReadonly(fn: (value: boolean) => void): void {\n    this.onReadonly = fn;\n  }\n  registerOnValidate?(fn: (value?: DokuFormFieldAccessorValidateValue | undefined) => void): void {\n    this.onValidate = fn;\n  }\n\n  onChange?: (value: unknown) => void;\n  onTouched?: () => void;\n  writeValue(value?: Date | string | null): void {\n    this.value = value;\n  }\n  registerOnChange(fn: (value: unknown) => void): void {\n    this.onChange = fn;\n  }\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n  setDisabledState?(isDisabled: boolean): void {\n    this.onDisable?.(isDisabled);\n  }\n}\n","<doku-date-picker-base\n  [value]=\"value\"\n  [minDate]=\"minDate\"\n  [maxDate]=\"maxDate\"\n  [disabled]=\"disabled\"\n  [readonly]=\"readonly\"\n  (valueChange)=\"value = $event.start\"\n>\n  <ng-content doku-date-picker-footer select=\"[doku-date-picker-footer]\"></ng-content>\n</doku-date-picker-base>\n","import { CommonModule } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Input,\n  Output,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\nimport { DateValue } from '../base/date-picker-base-props.component';\nimport { DateRangeResult } from '../date-picker.interface';\n\n@Component({\n  selector: 'doku-date-picker-range-props',\n  exportAs: 'dokuDatePickerRangeProps',\n  standalone: true,\n  imports: [CommonModule],\n  template: '',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuDatePickerRangeProps {\n  /**\n   * Value of the date picker.\n   *\n   * If it's a string, it must be in ISO String.\n   *\n   * @default null\n   */\n  protected get value(): DateValue {\n    return this._value;\n  }\n  protected set value(date: DateValue | null | undefined) {\n    this._value = { start: this.normalizeDate(date?.start), end: this.normalizeDate(date?.end) };\n    this.notifyChange$.next('value');\n  }\n  private _value: DateValue = { start: null, end: null };\n\n  /**\n   * Minimum date allowed to be selected.\n   *\n   * If it's a string, it must be in ISO String.\n   *\n   * @default null\n   */\n  @Input()\n  get minDate(): Date | null {\n    return this._minDate;\n  }\n  set minDate(date: Date | string | null | undefined) {\n    this._minDate = this.normalizeDate(date);\n    this.notifyChange$.next('minDate');\n  }\n  private _minDate: Date | null = null;\n\n  /**\n   * Maximum date allowed to be selected.\n   *\n   * If it's a string, it must be in ISO String.\n   *\n   * @default null\n   */\n  @Input()\n  get maxDate(): Date | null {\n    return this._maxDate;\n  }\n  set maxDate(date: Date | string | null | undefined) {\n    this._maxDate = this.normalizeDate(date);\n    this.notifyChange$.next('maxDate');\n  }\n  private _maxDate: Date | null = null;\n\n  /**\n   * Whether date picker is disabled.\n   *\n   * @default false\n   */\n  @Input()\n  get disabled(): boolean {\n    return this._disabled;\n  }\n  set disabled(value: boolean) {\n    this._disabled = value;\n    this.notifyChange$.next('disabled');\n  }\n  private _disabled = false;\n\n  /**\n   * Whether date picker is readonly.\n   *\n   * @default false\n   */\n  @Input()\n  get readonly(): boolean {\n    return this._readonly;\n  }\n  set readonly(value: boolean) {\n    this._readonly = value;\n    this.notifyChange$.next('readonly');\n  }\n  private _readonly = false;\n\n  /**\n   * An event emitted when the value changes.\n   */\n  @Output() valueChange = new EventEmitter<DateRangeResult>();\n\n  protected notifyChange$ = new ReplaySubject<\n    'value' | 'minDate' | 'maxDate' | 'disabled' | 'readonly'\n  >();\n\n  protected dateChangeHandler?: (value: DateValue) => void;\n\n  constructor(protected _cdr: ChangeDetectorRef) {}\n\n  private normalizeDate(date?: Date | string | null): Date | null {\n    if (!date) return null;\n    if (!(date instanceof Date || typeof date === 'string')) return null;\n    return date instanceof Date ? date : new Date(date);\n  }\n}\n","import { CommonModule, DOCUMENT, DatePipe, NgClass } from '@angular/common';\nimport {\n  AfterViewInit,\n  ApplicationRef,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ComponentRef,\n  EnvironmentInjector,\n  Host,\n  HostBinding,\n  Inject,\n  Injector,\n  Input,\n  LOCALE_ID,\n  NgZone,\n  OnDestroy,\n  Optional,\n  Renderer2,\n  ViewEncapsulation,\n  createComponent,\n} from '@angular/core';\nimport {\n  Subject,\n  delay,\n  distinctUntilChanged,\n  filter,\n  fromEvent,\n  map,\n  startWith,\n  takeUntil,\n} from 'rxjs';\nimport { getClickType } from '../../../utils/get-click-type';\nimport { updateFloatingPosition } from '../../../utils/update-floating-position';\nimport {\n  DOKU_FORM_FIELD_ACCESSOR,\n  DokuFormField,\n  DokuFormFieldAccessor,\n  DokuFormFieldAccessorValidateValue,\n} from '../../form-field';\nimport { DokuDatePickerBase } from '../base/date-picker-base.component';\nimport { DokuDatePickerRangeProps } from '../common/date-picker-range-props.component';\n\n@Component({\n  selector: 'doku-date-range-picker',\n  exportAs: 'dokuDateRangePicker',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './date-range-picker.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [DatePipe, { provide: DOKU_FORM_FIELD_ACCESSOR, useExisting: DokuDateRangePicker }],\n})\nexport class DokuDateRangePicker\n  extends DokuDatePickerRangeProps\n  implements OnDestroy, AfterViewInit, DokuFormFieldAccessor\n{\n  @HostBinding('class')\n  protected readonly class: NgClass['ngClass'] = ['d-date-picker', 'd-date-range-picker'];\n\n  /**\n   * Whether to close date range picker dropdown after selecting the end date.\n   *\n   * @default true;\n   */\n  @Input() closeOnDateClick = true;\n\n  /**\n   * Date format that will be used for formatting displayed value (start and end date) in the input field. It follows Angular DatePipe's format options.\n   *\n   * @default 'dd/MM/yyyy'\n   */\n  @Input() dateFormat = 'dd/MM/yyyy';\n\n  /**\n   * Placeholder of the date range picker input.\n   *\n   * @default 'dd/mm/yyyy - dd/mm/yyyy'\n   */\n  @Input() placeholder = 'dd/mm/yyyy - dd/mm/yyyy';\n\n  private isOpen = false;\n\n  private portalElement?: HTMLDivElement;\n  private datePickerBaseRef?: ComponentRef<DokuDatePickerBase>;\n\n  private destroy$ = new Subject();\n  private cleanup?: () => void;\n\n  constructor(\n    protected cdr: ChangeDetectorRef,\n    private appRef: ApplicationRef,\n    private injector: Injector,\n    private renderer: Renderer2,\n    private envInjector: EnvironmentInjector,\n    private ngZone: NgZone,\n    private datePipe: DatePipe,\n    @Inject(LOCALE_ID) private localeId: string,\n    @Inject(DOCUMENT) private document: Document,\n    @Optional() @Host() private formField?: DokuFormField\n  ) {\n    super(cdr);\n    this.onClickHandler();\n  }\n\n  protected get formattedStartDate(): string | null {\n    return this.formatDisplayedDate(this.value?.start);\n  }\n\n  protected get formattedEndDate(): string | null {\n    return this.formatDisplayedDate(this.value?.end);\n  }\n\n  private get inputWrapperElement(): HTMLElement | undefined {\n    return this.formField?.['inputWrapperElement'];\n  }\n\n  ngAfterViewInit(): void {\n    this.notifyChange$\n      .pipe(\n        filter((change) => change === 'disabled' || change === 'readonly'),\n        startWith({ disabled: this.disabled, readonly: this.readonly }),\n        map(() => ({ disabled: this.disabled, readonly: this.readonly })),\n        distinctUntilChanged((prev, current) => JSON.stringify(prev) === JSON.stringify(current)),\n        delay(0),\n        takeUntil(this.destroy$)\n      )\n      .subscribe(({ disabled, readonly }) => {\n        this.onDisable?.(disabled);\n        this.onReadonly?.(readonly);\n        this.setInputWrapperCursorState(this.inputWrapperElement, { disabled, readonly });\n      });\n\n    this.notifyChange$\n      .pipe(\n        filter((change) => change === 'minDate' || change === 'maxDate'),\n        map(() => ({ minDate: this.minDate, maxDate: this.maxDate })),\n        distinctUntilChanged(),\n        takeUntil(this.destroy$)\n      )\n      .subscribe(({ minDate, maxDate }) => {\n        this.datePickerBaseRef?.setInput('minDate', minDate);\n        this.datePickerBaseRef?.setInput('maxDate', maxDate);\n      });\n  }\n\n  ngOnDestroy(): void {\n    this.close();\n    this.destroy$.next(true);\n    this.destroy$.complete();\n    this.cleanup?.();\n  }\n\n  onDisable?: ((value: boolean) => void) | undefined;\n  onReadonly?: ((value: boolean) => void) | undefined;\n  onValidate?: ((value?: DokuFormFieldAccessorValidateValue | undefined) => void) | undefined;\n  registerOnDisable(fn: (value: boolean) => void): void {\n    this.onDisable = fn;\n  }\n  registerOnValidate?(fn: (value?: DokuFormFieldAccessorValidateValue | undefined) => void): void {\n    this.onValidate = fn;\n  }\n  registerOnReadonly(fn: (value: boolean) => void): void {\n    this.onReadonly = fn;\n  }\n\n  /**\n   * Open the date range picker dropdown.\n   */\n  open() {\n    if (this.isOpen || this.disabled || this.readonly) return;\n    this.isOpen = true;\n\n    this.portalElement = this.createPortalElement();\n    this.datePickerBaseRef = this.createDatePickerComponent();\n\n    this.renderer.appendChild(this.portalElement, this.datePickerBaseRef.location.nativeElement);\n    this.renderer.appendChild(this.document.body, this.portalElement);\n\n    this.doAutoUpdateDropdownPosition();\n  }\n\n  /**\n   * Close the date range picker dropdown.\n   */\n  close() {\n    if (!this.isOpen) return;\n    this.isOpen = false;\n\n    if (this.portalElement) this.renderer.removeChild(this.document.body, this.portalElement);\n    this.datePickerBaseRef?.destroy();\n  }\n\n  /**\n   * Toggle the date range picker dropdown.\n   */\n  toggle() {\n    this.isOpen ? this.close() : this.open();\n  }\n\n  private createPortalElement() {\n    const el = this.renderer.createElement('div') as HTMLDivElement;\n    this.renderer.addClass(el, 'd-date-picker-portal');\n    return el;\n  }\n\n  private createDatePickerComponent() {\n    const elementInjector = Injector.create({ providers: [], parent: this.injector });\n    const ref = createComponent(DokuDatePickerBase, {\n      environmentInjector: this.envInjector,\n      elementInjector: elementInjector,\n    });\n    this.appRef.attachView(ref.hostView);\n\n    ref.setInput('useDateRange', true);\n    ref.setInput('value', this.value);\n    ref.setInput('minDate', this.minDate);\n    ref.setInput('maxDate', this.maxDate);\n\n    const valueChangeListener = ref.instance.valueChange.subscribe((value) => {\n      this.dateChangeHandler?.(value);\n      if (this.closeOnDateClick && value?.start && value.end) this.close();\n    });\n\n    ref.onDestroy(() => {\n      valueChangeListener.unsubscribe();\n    });\n\n    ref.changeDetectorRef.detectChanges();\n    return ref;\n  }\n\n  private onClickHandler() {\n    fromEvent(this.document, 'click')\n      .pipe(takeUntil(this.destroy$))\n      .subscribe((event) => {\n        const { clickOutside, clickTrigger } = getClickType(\n          event,\n          [this.inputWrapperElement],\n          [this.portalElement]\n        );\n        if (clickTrigger) return this.toggle();\n        if (clickOutside) return this.close();\n      });\n  }\n\n  private doAutoUpdateDropdownPosition() {\n    this.ngZone.runOutsideAngular(() => {\n      if (!this.inputWrapperElement || !this.portalElement) return;\n      this.cleanup = updateFloatingPosition({\n        triggerElement: this.inputWrapperElement,\n        floatingElement: this.portalElement,\n        placement: 'bottom-start',\n        autoUpdate: true,\n        middleware: {\n          flip: true,\n          shift: true,\n        },\n      });\n    });\n  }\n\n  private setInputWrapperCursorState(\n    inputWrapperElement?: HTMLElement,\n    props?: { disabled?: boolean; readonly?: boolean }\n  ): void {\n    if (!inputWrapperElement) return;\n\n    let cursor = 'pointer';\n    if (props?.readonly) cursor = 'text';\n    if (props?.disabled) cursor = 'not-allowed';\n    inputWrapperElement.style.cursor = cursor;\n  }\n\n  private formatDisplayedDate(date?: Date | null) {\n    if (!date) return null;\n    return this.datePipe.transform(date, this.dateFormat, undefined, this.localeId);\n  }\n}\n","<span *ngIf=\"!(formattedStartDate || formattedEndDate)\" class=\"d-date-picker-placeholder\">\n  {{ placeholder }}\n</span>\n\n<span *ngIf=\"formattedStartDate || formattedEndDate\" class=\"d-date-picker-value\">\n  {{ formattedStartDate }} - {{ formattedEndDate }}\n</span>\n\n<span class=\"icon-calendar\">\n  <ng-container *ngTemplateOutlet=\"iconCalendar\"></ng-container>\n</span>\n\n<ng-template #iconCalendar>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n    <path\n      d=\"M19 5H5C4.44772 5 4 5.44772 4 6V17C4 17.5523 4.44772 18 5 18H19C19.5523 18 20 17.5523 20 17V6C20 5.44772 19.5523 5 19 5Z\"\n      stroke=\"currentColor\"\n    />\n    <path d=\"M4 7.94336H20\" stroke=\"currentColor\" />\n    <ellipse cx=\"7.69213\" cy=\"11.3774\" rx=\"0.984615\" ry=\"0.981132\" fill=\"currentColor\" />\n    <ellipse cx=\"7.69213\" cy=\"14.3207\" rx=\"0.984615\" ry=\"0.981132\" fill=\"currentColor\" />\n    <ellipse cx=\"10.6462\" cy=\"11.3774\" rx=\"0.984615\" ry=\"0.981132\" fill=\"currentColor\" />\n    <ellipse cx=\"10.6462\" cy=\"14.3207\" rx=\"0.984615\" ry=\"0.981132\" fill=\"currentColor\" />\n    <ellipse cx=\"13.5998\" cy=\"11.3774\" rx=\"0.984615\" ry=\"0.981132\" fill=\"currentColor\" />\n    <ellipse cx=\"13.5998\" cy=\"14.3207\" rx=\"0.984615\" ry=\"0.981132\" fill=\"currentColor\" />\n    <ellipse cx=\"16.554\" cy=\"11.3774\" rx=\"0.984615\" ry=\"0.981132\" fill=\"currentColor\" />\n    <ellipse cx=\"16.554\" cy=\"14.3207\" rx=\"0.984615\" ry=\"0.981132\" fill=\"currentColor\" />\n  </svg>\n</ng-template>\n","import { CommonModule, NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  HostBinding,\n  OnDestroy,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport {\n  DOKU_FORM_FIELD_ACCESSOR,\n  DokuFormFieldAccessor,\n  DokuFormFieldOptions,\n} from '../../form-field';\nimport { DateValue } from '../base/date-picker-base-props.component';\nimport { DokuDatePickerBase } from '../base/date-picker-base.component';\nimport { DokuDatePickerRangeProps } from '../common/date-picker-range-props.component';\n\n@Component({\n  selector: 'doku-date-range-picker-inline',\n  exportAs: 'dokuDateRangePickerInline',\n  standalone: true,\n  imports: [CommonModule, DokuDatePickerBase],\n  templateUrl: './date-range-picker-inline.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{ provide: DOKU_FORM_FIELD_ACCESSOR, useExisting: DokuDateRangePickerInline }],\n})\nexport class DokuDateRangePickerInline\n  extends DokuDatePickerRangeProps\n  implements DokuFormFieldAccessor, OnDestroy\n{\n  @HostBinding('class')\n  protected readonly class: NgClass['ngClass'] = 'd-date-range-picker-inline';\n\n  private destroy$ = new Subject();\n\n  constructor(protected cdr: ChangeDetectorRef) {\n    super(cdr);\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next(true);\n    this.destroy$.complete();\n  }\n\n  protected onDateChange(value: DateValue) {\n    this.dateChangeHandler?.(value);\n  }\n\n  fieldOptions?: DokuFormFieldOptions | undefined = { withoutInputStyle: true };\n}\n","<doku-date-picker-base\n  [useDateRange]=\"true\"\n  [value]=\"value\"\n  [minDate]=\"minDate\"\n  [maxDate]=\"maxDate\"\n  [disabled]=\"disabled\"\n  [readonly]=\"readonly\"\n  (valueChange)=\"onDateChange($event)\"\n></doku-date-picker-base>\n","import { NgModule } from '@angular/core';\nimport { DokuDateRangePickerInput } from './common/date-range-picker-input/date-range-picker-input.component';\nimport { DokuEndDate } from './common/date-range-picker-input/end-date.directive';\nimport { DokuStartDate } from './common/date-range-picker-input/start-date.directive';\nimport { DokuDatePicker } from './date-picker-float/date-picker.component';\nimport { DokuDatePickerInline } from './date-picker-inline/date-picker-inline.component';\nimport { DokuDateRangePicker } from './date-range-picker-float/date-range-picker.component';\nimport { DokuDateRangePickerInline } from './date-range-picker-inline/date-range-picker-inline.component';\n\n@NgModule({\n  imports: [\n    DokuDatePickerInline,\n    DokuDatePicker,\n    DokuDateRangePickerInline,\n    DokuDateRangePicker,\n    DokuDateRangePickerInput,\n    DokuStartDate,\n    DokuEndDate,\n  ],\n  exports: [\n    DokuDatePickerInline,\n    DokuDatePicker,\n    DokuDateRangePickerInline,\n    DokuDateRangePicker,\n    DokuDateRangePickerInput,\n    DokuStartDate,\n    DokuEndDate,\n  ],\n})\nexport class DokuDatePickerModule {}\n","import { Directive, ElementRef, NgZone } from '@angular/core';\n\nconst STANDARD_MAX_TIME = {\n  hour: 23,\n  minute: 59,\n  second: 59,\n};\n\n@Directive({\n  selector: '[doku-input-time]',\n  exportAs: 'dokuInputTime',\n  standalone: true,\n})\nexport class DokuInputTime {\n  constructor(private elementRef: ElementRef, private ngZone: NgZone) {\n    this.listenOnInput();\n    this.listenOnBlur();\n  }\n\n  protected get element(): HTMLInputElement {\n    return this.elementRef.nativeElement;\n  }\n\n  private listenOnInput() {\n    this.ngZone.runOutsideAngular(() => {\n      this.element.oninput = () => {\n        this.normalizeInputToNumbersOnly();\n        this.setStandardMaxTime();\n      };\n    });\n  }\n\n  private listenOnBlur() {\n    this.ngZone.runOutsideAngular(() => {\n      this.element.onblur = () => {\n        this.addPadToValue();\n      };\n    });\n  }\n\n  private normalizeInputToNumbersOnly() {\n    this.element.value = this.element.value.replaceAll(/\\D/g, '');\n  }\n\n  private addPadToValue() {\n    this.element.value = this.element.value ? this.element.value.padStart(2, '0') : '';\n  }\n\n  private setStandardMaxTime(): void {\n    const type = this.element.name as keyof typeof STANDARD_MAX_TIME;\n    const standardMaxTime = STANDARD_MAX_TIME[type];\n\n    let normalizedValue: number | '' = '';\n\n    if (this.element.value) {\n      const value = parseInt(this.element.value);\n      normalizedValue = value > standardMaxTime ? standardMaxTime : value;\n    }\n\n    this.element.value = normalizedValue?.toString();\n  }\n}\n","import { CommonModule, NgClass } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  HostBinding,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Output,\n  Self,\n  SimpleChanges,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NgControl } from '@angular/forms';\nimport {\n  ReplaySubject,\n  Subject,\n  delay,\n  distinctUntilChanged,\n  filter,\n  map,\n  pairwise,\n  startWith,\n  takeUntil,\n  tap,\n} from 'rxjs';\nimport {\n  DOKU_FORM_FIELD_ACCESSOR,\n  DokuFormFieldAccessor,\n  DokuFormFieldAccessorValidateValue,\n  DokuFormFieldOptions,\n} from '../form-field';\nimport { DokuInputTime } from './input-time.directive';\n\nexport type DokuTimeType = 'hour' | 'minute' | 'second';\n\nexport interface DokuTimePartialOptions {\n  hour?: boolean;\n  minute?: boolean;\n  second?: boolean;\n}\n\nexport type DokuTimePickerValue = string;\n\n@Component({\n  selector: 'doku-time-picker',\n  exportAs: 'dokuTimePicker',\n  standalone: true,\n  imports: [CommonModule, DokuInputTime, FormsModule],\n  templateUrl: './time-picker.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{ provide: DOKU_FORM_FIELD_ACCESSOR, useExisting: DokuTimePicker }],\n})\nexport class DokuTimePicker\n  implements\n    DokuFormFieldAccessor,\n    OnChanges,\n    OnDestroy,\n    OnInit,\n    ControlValueAccessor,\n    AfterViewInit\n{\n  @HostBinding('class')\n  protected readonly classes: NgClass['ngClass'] = 'd-time-picker';\n\n  /**\n   * Whether to disable the time picker.\n   * @default false\n   */\n  @Input() disabled = false;\n\n  /**\n   * Whether to show the seconds input.\n   * @default false\n   */\n  @Input() showSeconds = false;\n\n  /**\n   * Value of the time picker in ISO String format.\n   * @default ''\n   */\n  @Input() value = '';\n\n  /**\n   * Minimum time that can be selected. Value in ISO String format.\n   * @default ''\n   */\n  @Input() min = '';\n\n  /**\n   * Maximum time that can be selected. Value in ISO String format.\n   * @default ''\n   */\n  @Input() max = '';\n\n  /**\n   * An event emitted when the time changes on blur and condition met.\n   *\n   * Conditions:\n   * - All fields are filled.\n   * - All fields were filled previously, but there is an empty field on the current change.\n   * This case, the value will be an empty string.\n   * - Previous and current values are different.\n   */\n  @Output() timeChange = new EventEmitter<DokuTimePickerValue>();\n\n  protected hourValue = '';\n  protected minuteValue = '';\n  protected secondValue = '';\n\n  protected notifyOnBlur$ = new Subject();\n  private destroy$ = new ReplaySubject();\n\n  constructor(private cdr: ChangeDetectorRef, @Optional() @Self() private ngControl: NgControl) {\n    if (this.ngControl) {\n      this.ngControl.valueAccessor = this;\n    }\n  }\n\n  fieldOptions?: DokuFormFieldOptions | undefined = { withoutInputStyle: true };\n  onDisable?: ((value: boolean) => void) | undefined;\n  onValidate?: ((value?: DokuFormFieldAccessorValidateValue | undefined) => void) | undefined;\n  registerOnDisable(fn: (value: boolean) => void): void {\n    this.onDisable = fn;\n  }\n  registerOnValidate?(fn: (value?: DokuFormFieldAccessorValidateValue | undefined) => void): void {\n    this.onValidate = fn;\n  }\n\n  onChange?: (value: string) => void;\n  onTouched?: () => void;\n  writeValue(value: string): void {\n    this.setValueFromISOString(value);\n    this.cdr.detectChanges();\n  }\n  registerOnChange(fn: (value: string) => void): void {\n    this.onChange = fn;\n  }\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n  setDisabledState?(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n    this.cdr.detectChanges();\n  }\n\n  ngOnInit(): void {\n    this.notifyOnBlur$\n      .pipe(\n        tap(() => {\n          this.onTouched?.();\n          this.setMinMaxTime(this.constructFinalValue());\n        }),\n        map(() => this.constructFinalValue()),\n        startWith(this.constructFinalValue()),\n        pairwise(),\n        filter(\n          ([prev, current]) => (!prev && !!current) || (!!prev && !current) || (!!prev && !!current)\n        ),\n        distinctUntilChanged(\n          ([, prev], [, current]) => JSON.stringify(prev) === JSON.stringify(current)\n        ),\n        takeUntil(this.destroy$)\n      )\n      .subscribe(([, currentValue]) => {\n        this.timeChange.emit(currentValue);\n        this.onChange?.(currentValue);\n        this.onValidate?.(currentValue ? 'valid' : 'invalid');\n      });\n  }\n\n  ngAfterViewInit(): void {\n    this.ngControl?.statusChanges\n      ?.pipe(distinctUntilChanged(), delay(0), takeUntil(this.destroy$))\n      .subscribe((status) => {\n        if (status === 'VALID') {\n          this.onValidate?.('valid');\n        } else if (status === 'INVALID') {\n          this.onValidate?.('invalid');\n        } else {\n          this.onValidate?.();\n        }\n      });\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['disabled']?.previousValue !== changes['disabled']?.currentValue) {\n      this.onDisable?.(!!this.disabled);\n    }\n\n    if (changes['value']?.previousValue !== changes['value']?.currentValue) {\n      this.setValueFromISOString(changes['value']?.currentValue);\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next(true);\n    this.destroy$.complete();\n  }\n\n  private constructFinalValue(): DokuTimePickerValue {\n    if (!this.hourValue || !this.minuteValue) return '';\n    if (this.showSeconds && !this.secondValue) return '';\n\n    const time = this.value ? new Date(this.value) : new Date();\n    time.setHours(parseInt(this.hourValue));\n    time.setMinutes(parseInt(this.minuteValue));\n    time.setSeconds(parseInt(this.showSeconds ? this.secondValue : '0'));\n    time.setMilliseconds(0);\n    return time.toISOString();\n  }\n\n  private setMinMaxTime(currentTime: string): void {\n    if (this.min && new Date(currentTime) < new Date(this.min)) {\n      this.setValueFromISOString(this.min);\n    }\n\n    if (this.max && new Date(currentTime) > new Date(this.max)) {\n      this.setValueFromISOString(this.max);\n    }\n  }\n\n  private getTimeFromISODateString(value: string | null): {\n    hour: string;\n    minute: string;\n    second: string;\n  } {\n    const time = new Date(value || '');\n    const isValid = time instanceof Date && !isNaN(time.getTime());\n    if (!isValid) return { hour: '', minute: '', second: '' };\n    return {\n      hour: time.getHours().toString(),\n      minute: time.getMinutes().toString(),\n      second: time.getSeconds().toString(),\n    };\n  }\n\n  private setValueFromISOString(value: string | null) {\n    const { hour, minute, second } = this.getTimeFromISODateString(value);\n    this.hourValue = this.addPadToValueItem(hour);\n    this.minuteValue = this.addPadToValueItem(minute);\n    this.secondValue = this.addPadToValueItem(second);\n  }\n\n  private addPadToValueItem(value: string) {\n    return value ? value.padStart(2, '0') : value;\n  }\n}\n","<div class=\"input-wrapper\">\n  <input\n    #inputHour\n    doku-input-time\n    name=\"hour\"\n    type=\"text\"\n    placeholder=\"HH\"\n    maxlength=\"2\"\n    [disabled]=\"disabled\"\n    [(ngModel)]=\"hourValue\"\n    (blur)=\"notifyOnBlur$.next(true)\"\n    autocomplete=\"off\"\n  />\n</div>\n<div class=\"input-wrapper\">\n  <input\n    #inputMinute\n    doku-input-time\n    name=\"minute\"\n    type=\"text\"\n    placeholder=\"MM\"\n    maxlength=\"2\"\n    [disabled]=\"disabled\"\n    [(ngModel)]=\"minuteValue\"\n    (blur)=\"notifyOnBlur$.next(true)\"\n    autocomplete=\"off\"\n  />\n</div>\n<div class=\"input-wrapper\" *ngIf=\"showSeconds\">\n  <input\n    #inputSecond\n    doku-input-time\n    name=\"second\"\n    type=\"text\"\n    placeholder=\"SS\"\n    maxlength=\"2\"\n    [disabled]=\"disabled\"\n    [(ngModel)]=\"secondValue\"\n    (blur)=\"notifyOnBlur$.next(true)\"\n    autocomplete=\"off\"\n  />\n</div>\n","import { NgModule } from '@angular/core';\nimport { DokuTimePicker } from './time-picker.component';\n\n@NgModule({\n  imports: [DokuTimePicker],\n  exports: [DokuTimePicker],\n})\nexport class DokuTimePickerModule {}\n","import { CommonModule } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Inject,\n  Input,\n  LOCALE_ID,\n  Output,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { DokuFormFieldModule } from '../../../form-field';\nimport { DokuTimePickerModule } from '../../../time-picker';\n\n@Component({\n  selector: 'doku-time-picker-common',\n  exportAs: 'dokuTimePickerCommon',\n  standalone: true,\n  imports: [CommonModule, DokuFormFieldModule, DokuTimePickerModule],\n  templateUrl: './time-picker.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuTimePickerCommon {\n  @Input() disabled = false;\n\n  @Input()\n  get value(): string {\n    return this._value;\n  }\n  set value(val: string | Date | null) {\n    this._value = this.normalizeTime(val);\n  }\n  private _value = '';\n\n  @Input()\n  get minTime(): string {\n    return this._minTime;\n  }\n  set minTime(val: string | Date | null) {\n    this._minTime = this.normalizeTime(val);\n  }\n  private _minTime = '';\n\n  @Input()\n  get maxTime(): string {\n    return this._maxTime;\n  }\n  set maxTime(val: string | Date | null) {\n    this._maxTime = this.normalizeTime(val);\n  }\n  private _maxTime = '';\n\n  @Input() labelSelectTime?: string;\n\n  @Output() timeChange = new EventEmitter<string>();\n\n  constructor(@Inject(LOCALE_ID) private localeId: string) {}\n\n  protected get textSelectTIme(): string {\n    if (this.labelSelectTime) return this.labelSelectTime;\n    return this.localeId.toLowerCase().startsWith('en') ? 'Select Time' : 'Pilih Waktu';\n  }\n\n  private normalizeTime(time?: Date | string | null): string {\n    if (time instanceof Date) return time.toISOString();\n    if (typeof time === 'string') return time;\n    return '';\n  }\n}\n","<div class=\"d-date-time-picker-footer\">\n  <doku-form-field>\n    <doku-field-label>{{ textSelectTIme }}</doku-field-label>\n    <doku-time-picker\n      [disabled]=\"disabled\"\n      [value]=\"value\"\n      [min]=\"minTime\"\n      [max]=\"maxTime\"\n      (timeChange)=\"value = $event; timeChange.emit($event)\"\n    ></doku-time-picker>\n  </doku-form-field>\n</div>\n","import { CommonModule, DatePipe } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ComponentRef,\n  Injector,\n  Input,\n  ViewEncapsulation,\n  createComponent,\n} from '@angular/core';\nimport { DokuDatePicker } from '../../date-picker';\nimport { DokuDatePickerBase } from '../../date-picker/base/date-picker-base.component';\nimport { DOKU_DATE_PICKER_STRICT_TIME } from '../../date-picker/base/date-picker.token';\nimport { DOKU_FORM_FIELD_ACCESSOR } from '../../form-field';\nimport { DokuTimePickerCommon } from '../common/time-picker/time-picker.component';\n\n@Component({\n  selector: 'doku-date-time-picker',\n  exportAs: 'dokuDateTimePicker',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: '../../date-picker/date-picker-float/date-picker.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    DatePipe,\n    { provide: DOKU_FORM_FIELD_ACCESSOR, useExisting: DokuDateTimePicker },\n    { provide: DOKU_DATE_PICKER_STRICT_TIME, useValue: true },\n  ],\n})\nexport class DokuDateTimePicker extends DokuDatePicker {\n  @Input() labelSelectTime?: string;\n\n  /**\n   * Placeholder of the date picker input.\n   *\n   * @default 'dd/mm/yyyy hh:mm'\n   */\n  @Input() override placeholder = 'dd/mm/yyyy hh:mm';\n\n  /**\n   * Date format that will be used for formatting displayed value in the input field.\n   * It follows Angular DatePipe's format options.\n   *\n   * @default 'dd/MM/yyyy HH:mm'\n   */\n  @Input() override dateFormat = 'dd/MM/yyyy HH:mm';\n\n  override closeOnDateClick = false;\n\n  protected override createComponentRef(props: {\n    elementInjector: Injector;\n  }): ComponentRef<DokuDatePickerBase> {\n    const timeRef = this.createComponentTimeRef(props.elementInjector);\n\n    const ref = createComponent(DokuDatePickerBase, {\n      environmentInjector: this.envInjector,\n      elementInjector: props.elementInjector,\n      projectableNodes: [[timeRef.location.nativeElement]],\n    });\n    ref.setInput('value', this.value);\n    ref.setInput('minDate', this.minDate);\n    ref.setInput('maxDate', this.maxDate);\n\n    const timeValueChangeListener = timeRef.instance.timeChange.subscribe((value) => {\n      ref.setInput('value', value);\n    });\n\n    const valueChangeListener = ref.instance.valueChange.subscribe((value) => {\n      timeRef.setInput('value', value.start);\n      timeRef.setInput('minTime', this.minDate);\n      timeRef.setInput('maxTime', this.maxDate);\n    });\n\n    timeRef.onDestroy(() => {\n      timeValueChangeListener.unsubscribe();\n    });\n\n    ref.onDestroy(() => {\n      valueChangeListener.unsubscribe();\n      timeRef.destroy();\n    });\n\n    return ref;\n  }\n\n  private createComponentTimeRef(elementInjector: Injector) {\n    const timeRef = createComponent(DokuTimePickerCommon, {\n      environmentInjector: this.envInjector,\n      elementInjector: elementInjector,\n    });\n    timeRef.setInput('value', this.value);\n    timeRef.setInput('minTime', this.minDate);\n    timeRef.setInput('maxTime', this.maxDate);\n    timeRef.setInput('disabled', this.disabled);\n    timeRef.setInput('labelSelectTime', this.labelSelectTime);\n\n    this.appRef.attachView(timeRef.hostView);\n    return timeRef;\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { DokuDatePickerInline } from '../../date-picker';\nimport { DOKU_DATE_PICKER_STRICT_TIME } from '../../date-picker/base/date-picker.token';\nimport { DOKU_FORM_FIELD_ACCESSOR } from '../../form-field';\nimport { DokuTimePickerCommon } from '../common/time-picker/time-picker.component';\n\n@Component({\n  selector: 'doku-date-time-picker-inline',\n  exportAs: 'dokuDateTimePickerInline',\n  standalone: true,\n  imports: [CommonModule, DokuDatePickerInline, DokuTimePickerCommon],\n  templateUrl: './date-time-picker-inline.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: DOKU_FORM_FIELD_ACCESSOR, useExisting: DokuDateTimePickerInline },\n    { provide: DOKU_DATE_PICKER_STRICT_TIME, useValue: true },\n  ],\n})\nexport class DokuDateTimePickerInline extends DokuDatePickerInline {\n  @Input() labelSelectTime?: string;\n}\n","<doku-date-picker-inline\n  [value]=\"value\"\n  [minDate]=\"minDate\"\n  [maxDate]=\"maxDate\"\n  [disabled]=\"disabled\"\n  [readonly]=\"readonly\"\n  (valueChange)=\"value = $event\"\n>\n  <doku-time-picker-common\n    doku-date-picker-footer\n    [disabled]=\"disabled\"\n    [value]=\"value\"\n    [minTime]=\"minDate\"\n    [maxTime]=\"maxDate\"\n    [labelSelectTime]=\"labelSelectTime\"\n    (timeChange)=\"value = $event\"\n  ></doku-time-picker-common>\n</doku-date-picker-inline>\n","import { NgModule } from '@angular/core';\nimport { DokuDateTimePicker } from './date-time-picker-float/date-time-picker-float.component';\nimport { DokuDateTimePickerInline } from './date-time-picker-inline/date-time-picker-inline.component';\n\n@NgModule({\n  imports: [DokuDateTimePickerInline, DokuDateTimePicker],\n  exports: [DokuDateTimePickerInline, DokuDateTimePicker],\n})\nexport class DokuDateTimePickerModule {}\n","import { NgClass } from '@angular/common';\nimport { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n  selector: '[doku-dropdown-menu-divider]',\n  exportAs: 'dokuDropdownMenuDivider',\n  standalone: true,\n})\nexport class DokuDropdownMenuDivider {\n  @HostBinding('class')\n  protected readonly classes: NgClass['ngClass'] = ['d-dropdown-menu-divider'];\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const DOKU_DROPDOWN = new InjectionToken('DOKU_DROPDOWN');\nexport const DOKU_DROPDOWN_TOGGLE = new InjectionToken('DOKU_DROPDOWN_TOGGLE');\nexport const DOKU_DROPDOWN_MENU = new InjectionToken('DOKU_DROPDOWN_MENU');\n","import { DOCUMENT } from '@angular/common';\nimport {\n  AfterViewInit,\n  ContentChild,\n  Directive,\n  ElementRef,\n  Inject,\n  Input,\n  NgZone,\n  OnDestroy,\n  Renderer2,\n} from '@angular/core';\nimport { ReplaySubject, fromEvent, takeUntil } from 'rxjs';\nimport { getClickType } from '../../utils/get-click-type';\nimport { DokuDropdownMenu } from './dropdown-menu.directive';\nimport { DokuDropdownToggle } from './dropdown-toggle.directive';\nimport { DokuDropdownPlacement } from './dropdown.interface';\nimport { DOKU_DROPDOWN, DOKU_DROPDOWN_MENU, DOKU_DROPDOWN_TOGGLE } from './dropdown.token';\n\n@Directive({\n  selector: '[doku-dropdown]',\n  exportAs: 'dokuDropdown',\n  standalone: true,\n  providers: [{ provide: DOKU_DROPDOWN, useExisting: DokuDropdown }],\n})\nexport class DokuDropdown implements OnDestroy, AfterViewInit {\n  /**\n   * The position of the dropdown menu while opened based on the toggler/anchor element.\n   * @default 'bottom-start'\n   */\n  @Input() placement: DokuDropdownPlacement = 'bottom-start';\n\n  @ContentChild(DOKU_DROPDOWN_TOGGLE) private dropdownToggle?: DokuDropdownToggle;\n  @ContentChild(DOKU_DROPDOWN_MENU) private dropdownMenu?: DokuDropdownMenu;\n\n  private bodyContainer?: HTMLElement;\n  private originalDropdownMenu?: HTMLElement;\n\n  private destroy$ = new ReplaySubject();\n\n  constructor(\n    protected elementRef: ElementRef,\n    private renderer: Renderer2,\n    private ngZone: NgZone,\n    @Inject(DOCUMENT) private document: Document\n  ) {}\n\n  private get dropdownToggleElement(): HTMLElement | undefined {\n    return this.dropdownToggle?.['elementRef']?.nativeElement;\n  }\n\n  private get dropdownMenuElement(): HTMLElement | undefined {\n    return this.dropdownMenu?.['elementRef']?.nativeElement;\n  }\n\n  ngAfterViewInit(): void {\n    this.closeDropdownMenuEventHandler();\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next(true);\n    this.destroy$.complete();\n  }\n\n  toggleDropdownMenu() {\n    this.dropdownMenu?.toggle();\n  }\n\n  showDropdownMenu() {\n    this.dropdownMenu?.show();\n  }\n\n  hideDropdownMenu() {\n    this.dropdownMenu?.hide();\n  }\n\n  /**\n   * It will create a container for dropdown and append it to the body element.\n   */\n  protected applyContainer() {\n    this.resetContainer();\n    const bodyContainer: HTMLElement = (this.bodyContainer = this.renderer.createElement('div'));\n    bodyContainer.id = 'd-dropdown-portal';\n    this.originalDropdownMenu = this.dropdownMenuElement;\n    this.renderer.appendChild(bodyContainer, this.originalDropdownMenu);\n    this.renderer.appendChild(this.document.body, bodyContainer);\n  }\n\n  /**\n   * Remove body container when dropdown closed and add back the dropdown menu to its original element position.\n   */\n  protected resetContainer() {\n    if (this.originalDropdownMenu) {\n      this.renderer.appendChild(this.elementRef.nativeElement, this.originalDropdownMenu);\n    }\n    if (this.bodyContainer) {\n      this.renderer.removeChild(this.document.body, this.bodyContainer);\n      this.bodyContainer = undefined;\n    }\n  }\n\n  private closeDropdownMenuEventHandler() {\n    this.ngZone.runOutsideAngular(() => {\n      if (!this.dropdownToggleElement || !this.dropdownMenuElement) return;\n      fromEvent(window, 'click', { capture: true })\n        .pipe(takeUntil(this.destroy$))\n        .subscribe((event) => {\n          const { clickTrigger, clickOutside } = getClickType(\n            event,\n            [this.dropdownToggleElement],\n            [this.dropdownMenuElement]\n          );\n\n          if (clickOutside && !clickTrigger) this.dropdownMenu?.hide();\n        });\n    });\n  }\n}\n","import { NgClass } from '@angular/common';\nimport {\n  Directive,\n  ElementRef,\n  Host,\n  HostBinding,\n  Inject,\n  NgZone,\n  OnDestroy,\n  Optional,\n} from '@angular/core';\nimport { autoUpdate, computePosition, flip, shift } from '@floating-ui/dom';\nimport { DokuDropdownMenuItem } from './dropdown-menu-item.directive';\nimport { DokuDropdown } from './dropdown.directive';\nimport { DokuDropdownPlacement } from './dropdown.interface';\nimport { DOKU_DROPDOWN, DOKU_DROPDOWN_MENU } from './dropdown.token';\n\n@Directive({\n  selector: '[doku-dropdown-menu]',\n  exportAs: 'dokuDropdownMenu',\n  standalone: true,\n  providers: [{ provide: DOKU_DROPDOWN_MENU, useExisting: DokuDropdownMenu }],\n})\nexport class DokuDropdownMenu implements OnDestroy {\n  @HostBinding('class')\n  protected readonly classes: NgClass['ngClass'] = ['d-dropdown-menu'];\n\n  protected placement: DokuDropdownPlacement = this.dropdown?.placement || 'bottom-start';\n\n  private nativeElement: HTMLElement = this.elementRef.nativeElement;\n  private cleanup?: () => void;\n\n  constructor(\n    private elementRef: ElementRef,\n    private ngZone: NgZone,\n    @Optional() @Inject(DOKU_DROPDOWN) private dropdown?: DokuDropdown,\n    @Optional() @Host() private menuItem?: DokuDropdownMenuItem\n  ) {}\n\n  ngOnDestroy(): void {\n    this.hide();\n  }\n\n  toggle() {\n    if (this.nativeElement.style.display === 'block') {\n      this.hide();\n    } else {\n      this.show();\n    }\n  }\n\n  show() {\n    this.nativeElement.style.display = 'block';\n    this.dropdown?.['applyContainer']();\n    this.doAutoUpdatePosition();\n  }\n\n  hide() {\n    this.nativeElement.style.display = '';\n    this.dropdown?.['resetContainer']();\n    this.cleanup?.();\n  }\n\n  private getTogglerElement(): ElementRef | undefined {\n    return (\n      this.menuItem?.['elementRef'] ||\n      (this.dropdown?.['dropdownToggle']?.['elementRef'] as ElementRef)\n    );\n  }\n\n  private updatePosition() {\n    const toggleElement = this.getTogglerElement();\n    if (!toggleElement || !this.elementRef) return;\n\n    computePosition(toggleElement.nativeElement, this.elementRef.nativeElement, {\n      placement: this.placement,\n      middleware: [flip(), shift()],\n    }).then(({ x, y }) => {\n      Object.assign(this.elementRef.nativeElement.style, {\n        top: `${y}px`,\n        left: `${x}px`,\n      });\n    });\n  }\n\n  private doAutoUpdatePosition() {\n    this.ngZone.runOutsideAngular(() => {\n      const toggleElement = this.getTogglerElement();\n      if (!toggleElement || !this.elementRef) return;\n\n      this.cleanup = autoUpdate(toggleElement.nativeElement, this.elementRef.nativeElement, () => {\n        this.updatePosition();\n      });\n    });\n  }\n}\n","import { NgClass } from '@angular/common';\nimport {\n  ContentChild,\n  Directive,\n  ElementRef,\n  Host,\n  HostBinding,\n  HostListener,\n  Input,\n  Optional,\n} from '@angular/core';\nimport { DokuDropdownMenu } from './dropdown-menu.directive';\n\n@Directive({\n  selector: '[doku-dropdown-menu-item]',\n  exportAs: 'dokuDropdownMenuItem',\n  standalone: true,\n})\nexport class DokuDropdownMenuItem {\n  /**\n   * Whether to disable the item.\n   * It prevents from being clicked and has different styles.\n   * @default false\n   */\n  @HostBinding('class.d-dropdown-menu-item-disabled')\n  @Input()\n  disabled = false;\n\n  /**\n   * Whether to disable the click functionality of the item.\n   * @default false\n   */\n  @Input()\n  disableClick = false;\n\n  /**\n   * The appearance of the menu item.\n   * - `normal` (default), has padding.\n   * - `plain`, no additional styles.\n   */\n  @Input() appearance: 'normal' | 'plain' = 'normal';\n\n  @HostBinding('class')\n  protected get classes(): NgClass['ngClass'] {\n    return ['d-dropdown-menu-item', 'd-text-body-m', `d-dropdown-menu-item-${this.appearance}`];\n  }\n\n  @ContentChild(DokuDropdownMenu) private nestedDropdownMenu?: DokuDropdownMenu;\n\n  constructor(\n    protected elementRef: ElementRef,\n    @Optional() @Host() private dropdownMenu?: DokuDropdownMenu\n  ) {}\n\n  @HostBinding('class.d-dropdown-menu-nested')\n  protected get hasNestedDropdownMenu(): boolean {\n    return !!this.nestedDropdownMenu;\n  }\n\n  @HostListener('click', ['$event'])\n  protected onClick(event: Event) {\n    if (this.disabled || this.disableClick) {\n      event.preventDefault();\n      event.stopPropagation();\n      return;\n    }\n    this.dropdownMenu?.hide();\n  }\n\n  @HostListener('mouseenter')\n  protected onMouseEnter() {\n    if (!this.nestedDropdownMenu) return;\n    this.nestedDropdownMenu['placement'] = 'right-start';\n    this.nestedDropdownMenu.show();\n  }\n\n  @HostListener('mouseleave')\n  protected onMouseLeave() {\n    if (!this.nestedDropdownMenu) return;\n    this.nestedDropdownMenu.hide();\n  }\n}\n","import { NgClass } from '@angular/common';\nimport { Directive, ElementRef, HostBinding, HostListener, Inject, Optional } from '@angular/core';\nimport { DokuDropdown } from './dropdown.directive';\nimport { DOKU_DROPDOWN, DOKU_DROPDOWN_TOGGLE } from './dropdown.token';\n\n@Directive({\n  selector: '[doku-dropdown-toggle]',\n  exportAs: 'dokuDropdownToggle',\n  standalone: true,\n  providers: [{ provide: DOKU_DROPDOWN_TOGGLE, useExisting: DokuDropdownToggle }],\n})\nexport class DokuDropdownToggle {\n  @HostBinding('class')\n  protected readonly classes: NgClass['ngClass'] = ['d-dropdown-toggle'];\n\n  constructor(\n    protected elementRef: ElementRef,\n    @Optional() @Inject(DOKU_DROPDOWN) private dropdown?: DokuDropdown\n  ) {}\n\n  @HostListener('click')\n  protected onClick() {\n    if (!this.dropdown) return;\n    this.dropdown['toggleDropdownMenu']();\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { DokuDropdownMenuDivider } from './dropdown-menu-divider.directive';\nimport { DokuDropdownMenuItem } from './dropdown-menu-item.directive';\nimport { DokuDropdownMenu } from './dropdown-menu.directive';\nimport { DokuDropdownToggle } from './dropdown-toggle.directive';\nimport { DokuDropdown } from './dropdown.directive';\n\n@NgModule({\n  imports: [\n    DokuDropdown,\n    DokuDropdownMenu,\n    DokuDropdownToggle,\n    DokuDropdownMenuItem,\n    DokuDropdownMenuDivider,\n  ],\n  exports: [\n    DokuDropdown,\n    DokuDropdownMenu,\n    DokuDropdownToggle,\n    DokuDropdownMenuItem,\n    DokuDropdownMenuDivider,\n  ],\n})\nexport class DokuDropdownModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-spinner',\n  exportAs: 'dokuSpinner',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './spinner.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuSpinner {\n  /**\n   * The size of the spinner.\n   * @default 'small'\n   */\n  @Input() size: 'small' | 'medium' | 'large' = 'small';\n\n  /**\n   * The diameter of the spinner.\n   * If defined, it will take precedence over `size`.\n   *\n   * Value in pixels.\n   */\n  @Input() diameter?: number;\n\n  /**\n   * Stroke width of the spinner.\n   *\n   * Value in pixels.\n   * @default 4\n   */\n  @Input() strokeWidth = 4;\n\n  get calculatedSize(): number {\n    if (this.diameter) return this.diameter;\n    const mappedSize = { small: 55, medium: 111, large: 160 };\n    return mappedSize[this.size];\n  }\n}\n","<span class=\"d-spinner\">\n  <span [style.width.px]=\"calculatedSize\" [style.border-width.px]=\"strokeWidth\"></span>\n</span>\n","import { NgModule } from '@angular/core';\nimport { DokuSpinner } from './spinner.component';\n\n@NgModule({\n  imports: [DokuSpinner],\n  exports: [DokuSpinner],\n})\nexport class DokuSpinnerModule {}\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Input,\n  OnChanges,\n  OnDestroy,\n  Optional,\n  Self,\n  SimpleChanges,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NgControl } from '@angular/forms';\nimport {\n  BehaviorSubject,\n  ReplaySubject,\n  combineLatest,\n  distinctUntilChanged,\n  takeUntil,\n  map,\n  delay,\n  of,\n  switchMap,\n} from 'rxjs';\nimport {\n  DOKU_FORM_FIELD_ACCESSOR,\n  DokuFormFieldAccessor,\n  DokuFormFieldAccessorValidateState,\n  DokuFormFieldAccessorValidateValue,\n  DokuFormFieldOptions,\n} from '../form-field';\nimport { DokuSpinner } from '../spinner';\n\n@Component({\n  selector: 'doku-input-file-upload',\n  exportAs: 'dokuInputFileUpload',\n  standalone: true,\n  imports: [CommonModule, FormsModule, DokuSpinner],\n  templateUrl: './input-file-upload.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{ provide: DOKU_FORM_FIELD_ACCESSOR, useExisting: DokuInputFileUpload }],\n})\nexport class DokuInputFileUpload\n  implements DokuFormFieldAccessor, ControlValueAccessor, AfterViewInit, OnChanges, OnDestroy\n{\n  onChange?: (value: File) => void;\n  onTouched?: () => void;\n  onDisable?: (value: boolean) => void;\n  onValidate?: (\n    value?: DokuFormFieldAccessorValidateValue,\n    state?: DokuFormFieldAccessorValidateState\n  ) => void;\n\n  value?: File | string = undefined;\n  fieldOptions?: DokuFormFieldOptions = { withoutInputStyle: true };\n  private loadingChanges$ = new BehaviorSubject(false);\n  private destroy$ = new ReplaySubject();\n  protected imagePreviewSrc?: string;\n\n  /**\n   * Text that is shown as an input title.\n   */\n  @Input() title = 'Upload File';\n\n  /**\n   * Text that is shown as an input subtitle.\n   */\n  @Input() subtitle = 'Tap here to upload file';\n\n  /**\n   * Text that is shown in loading state.\n   */\n  @Input() loadingText = 'loading...';\n\n  /**\n   * Comma-separated list of one or more file types, or unique file type specifiers,\n   * describing which file types to allow. The default is \"*\".\n   */\n  @Input() accept = '*';\n\n  /**\n   * Whether input file upload should be on disabled state. The default is `false`.\n   */\n  @Input()\n  get disabled() {\n    return this._disabled;\n  }\n  set disabled(val: boolean) {\n    this._disabled = val;\n\n    setTimeout(() => {\n      this.onDisable?.(this._disabled);\n    }, 0);\n  }\n  private _disabled = false;\n\n  /**\n   * Whether input file upload should be on loading state. The default is `false`.\n   */\n  @Input()\n  get loading() {\n    return this._loading;\n  }\n  set loading(val: unknown) {\n    this._loading = val != null && `${val}` !== 'false';\n  }\n  private _loading = false;\n\n  constructor(private cdr: ChangeDetectorRef, @Optional() @Self() private ngControl?: NgControl) {\n    if (this.ngControl) {\n      this.ngControl.valueAccessor = this;\n    }\n  }\n\n  ngAfterViewInit(): void {\n    this._listenNgControlStatus();\n  }\n\n  onFileSelected(e: Event) {\n    const files = (e.target as HTMLInputElement).files;\n\n    if (!files) return;\n\n    const file = files[0];\n\n    if (this._checkFileIsImage(file)) {\n      this._showImagePreview(file);\n    }\n\n    this.title = file.name;\n    this.subtitle = 'Tap here to change file';\n    this.value = file;\n    this.onChange?.(file);\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['loading']?.currentValue !== changes['loading']?.previousValue) {\n      this.loadingChanges$.next(changes['loading']?.currentValue);\n    }\n\n    if (changes['disabled']?.previousValue !== changes['disabled']?.currentValue) {\n      this.onDisable?.(!!this.disabled);\n    }\n  }\n\n  setDisabledState?(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n\n    this.cdr.detectChanges();\n  }\n\n  /**\n   * Listen and assign NgControl status to `doku-form-field`\n   * to complete behavior and functionality of the field\n   * (hint, error, success message, and styling).\n   */\n  private _listenNgControlStatus() {\n    combineLatest([\n      this.loadingChanges$,\n      of(true).pipe(\n        switchMap(() => this.ngControl?.statusChanges || of(null)),\n        map((status) => ({\n          status: status,\n          state: {\n            pristine: this.ngControl?.control?.pristine,\n            untouched: this.ngControl?.control?.untouched,\n          } as DokuFormFieldAccessorValidateState,\n        })),\n        delay(0),\n        distinctUntilChanged((prev, curr) => JSON.stringify(prev) === JSON.stringify(curr))\n      ),\n    ])\n      ?.pipe(\n        distinctUntilChanged((prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)),\n        takeUntil(this.destroy$)\n      )\n      .subscribe(([loading, statusObj]) => {\n        if (!this.value) return;\n\n        const status = statusObj?.status;\n        const state = statusObj?.state;\n        if (status === 'VALID' && !loading) {\n          this.onValidate?.('valid', state);\n        } else if (status === 'INVALID' && !loading) {\n          this.onValidate?.('invalid', state);\n        } else {\n          this.onValidate?.(undefined, state);\n        }\n      });\n  }\n\n  private _showImagePreview(file: File | string) {\n    if (file instanceof File) {\n      this.imagePreviewSrc = URL.createObjectURL(file);\n\n      return;\n    }\n\n    this.imagePreviewSrc = file;\n  }\n\n  private _checkFileIsImage(file: File): boolean {\n    if (file instanceof File) {\n      return file.type.startsWith('image/');\n    }\n\n    return false;\n  }\n\n  private _checkStringIsImage(str: string): boolean {\n    return /\\.(jpg|jpeg|png|webp|avif|gif|svg)$/.test(str);\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next(true);\n    this.destroy$.complete();\n  }\n\n  writeValue(value: File | string): void {\n    if (\n      (typeof value === 'string' && this._checkStringIsImage(value)) ||\n      (value instanceof File && this._checkFileIsImage(value))\n    ) {\n      this._showImagePreview(value);\n    }\n\n    this.value = value;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  registerOnDisable(fn: (value: boolean) => void): void {\n    this.onDisable = fn;\n  }\n\n  registerOnChange(fn: (value: File) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnValidate(fn: (value?: DokuFormFieldAccessorValidateValue) => void): void {\n    this.onValidate = fn;\n  }\n}\n","<div\n  class=\"d-input-file-container\"\n  [class.d-input-file-loading]=\"loading\"\n  (click)=\"!loading && inputFileDefault.click()\"\n>\n  <div class=\"d-input-file-preview\">\n    <img *ngIf=\"imagePreviewSrc\" [src]=\"imagePreviewSrc\" />\n    <ng-container *ngIf=\"!imagePreviewSrc && value\" [ngTemplateOutlet]=\"iconDocs\"></ng-container>\n    <ng-container *ngIf=\"!imagePreviewSrc && !value\" [ngTemplateOutlet]=\"iconPlus\"></ng-container>\n  </div>\n  <div class=\"d-input-file-wrapper\">\n    <div class=\"d-input-file-desc\">\n      <span class=\"d-input-file-name\">{{ title }}</span>\n      <span class=\"d-input-file-status\">{{ loading ? loadingText : subtitle }}</span>\n    </div>\n    <doku-spinner *ngIf=\"loading\" [diameter]=\"16\" [strokeWidth]=\"1\"></doku-spinner>\n  </div>\n</div>\n<input\n  #inputFileDefault\n  type=\"file\"\n  class=\"d-input-file-default\"\n  (change)=\"onFileSelected($event)\"\n  [disabled]=\"disabled\"\n  [accept]=\"accept\"\n/>\n\n<ng-template #iconPlus>\n  <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path\n      d=\"M8.92849 6.57147V7.07147H9.42849H13.7142C13.964 7.07147 14.1666 7.2741 14.1666 7.52385V8.47623C14.1666 8.72598 13.964 8.92861 13.7142 8.92861H9.42849H8.92849V9.42861V13.7143C8.92849 13.9641 8.72586 14.1667 8.47611 14.1667H7.52373C7.27398 14.1667 7.07135 13.9641 7.07135 13.7143V9.42861V8.92861H6.57135H2.28563C2.03588 8.92861 1.83325 8.72598 1.83325 8.47623V7.52385C1.83325 7.2741 2.03588 7.07147 2.28563 7.07147H6.57135H7.07135V6.57147V2.28576C7.07135 2.036 7.27398 1.83337 7.52373 1.83337H8.47611C8.72586 1.83337 8.92849 2.036 8.92849 2.28576V6.57147Z\"\n      fill=\"currentColor\"\n      stroke=\"currentColor\"\n    />\n  </svg>\n</ng-template>\n\n<ng-template #iconDocs>\n  <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path\n      d=\"M8.83333 4.87498V1.33331H3.625C3.27865 1.33331 3 1.61196 3 1.95831V14.0416C3 14.388 3.27865 14.6666 3.625 14.6666H12.375C12.7214 14.6666 13 14.388 13 14.0416V5.49998H9.45833C9.11458 5.49998 8.83333 5.21873 8.83333 4.87498ZM13 4.50779V4.66665H9.66667V1.33331H9.82552C9.99219 1.33331 10.151 1.39842 10.2682 1.5156L12.8177 4.06769C12.9349 4.18488 13 4.34373 13 4.50779Z\"\n      fill=\"currentColor\"\n    />\n  </svg>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { DokuInputFileUpload } from './input-file-upload.component';\n\n@NgModule({\n  imports: [DokuInputFileUpload],\n  exports: [DokuInputFileUpload],\n})\nexport class DokuInputFileUploadModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-layout-content',\n  exportAs: 'dokuLayoutContainer',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './layout-content.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuLayoutContent {\n  /**\n   * @default false\n   */\n  @Input() fullHeight = false;\n}\n","<div class=\"d-layout-content\" [class.d-full-height]=\"fullHeight\">\n  <ng-content></ng-content>\n</div>\n","import { CommonModule, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-page-description',\n  exportAs: 'dokuPageDescription',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './page-description.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuPageDescription {\n  @HostBinding('class')\n  protected readonly classes: NgClass['ngClass'] = ['d-page-description', 'd-text-body-m'];\n}\n","<ng-content></ng-content>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-page-header',\n  exportAs: 'dokuPageHeader',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './page-header.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuPageHeader {}\n","<div class=\"d-page-header\">\n  <div class=\"d-page-header-left-section\">\n    <ng-content select=\"doku-page-title\"></ng-content>\n    <ng-content select=\"doku-page-description\"></ng-content>\n  </div>\n  <ng-content select=\"[right-section]\"></ng-content>\n</div>\n","import { CommonModule, NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  HostBinding,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { DokuTypographyModule } from '../../../typography';\n\n@Component({\n  selector: 'doku-page-title',\n  exportAs: 'dokuPageTitle',\n  standalone: true,\n  imports: [CommonModule, DokuTypographyModule],\n  templateUrl: './page-title.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuPageTitle {\n  @HostBinding('class')\n  protected readonly classes: NgClass['ngClass'] = ['d-page-title'];\n\n  constructor(private elementRef: ElementRef) {}\n\n  @HostBinding('class.d-page-title-icon-left')\n  protected get hasIconLeft(): boolean {\n    return !!(this.elementRef.nativeElement as HTMLElement).querySelector('[icon-left]');\n  }\n}\n","<ng-content select=\"[icon-left]\"></ng-content>\n<h4 doku-typography variant=\"h4\"><ng-content></ng-content></h4>\n","import { NgModule } from '@angular/core';\nimport { DokuLayoutContent } from './layout-content.component';\nimport { DokuPageDescription } from './page-description/page-description.component';\nimport { DokuPageHeader } from './page-header/page-header.component';\nimport { DokuPageTitle } from './page-title/page-title.component';\n\n@NgModule({\n  imports: [DokuLayoutContent, DokuPageTitle, DokuPageHeader, DokuPageDescription],\n  exports: [DokuLayoutContent, DokuPageTitle, DokuPageHeader, DokuPageDescription],\n})\nexport class DokuLayoutContentModule {}\n","import { NgModule } from '@angular/core';\nimport { DokuLayoutContentModule } from './layout-content/layout-content.module';\n\n@NgModule({\n  imports: [DokuLayoutContentModule],\n  exports: [DokuLayoutContentModule],\n})\nexport class DokuLayoutModule {}\n","import { CommonModule, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-modal-body',\n  exportAs: 'dokuModalBody',\n  standalone: true,\n  imports: [CommonModule],\n  template: '<ng-content></ng-content>',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuModalBody {\n  @HostBinding('class')\n  protected get classes(): NgClass['ngClass'] {\n    return ['d-modal-body'];\n  }\n}\n","import { CommonModule, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-modal-close-icon',\n  standalone: true,\n  imports: [CommonModule],\n  template: `<svg\n    xmlns=\"http://www.w3.org/2000/svg\"\n    width=\"24\"\n    height=\"24\"\n    viewBox=\"0 0 24 24\"\n    fill=\"none\"\n  >\n    <path\n      fill-rule=\"evenodd\"\n      clip-rule=\"evenodd\"\n      d=\"M17.781 6.219C17.8508 6.28867 17.9062 6.37143 17.944 6.46255C17.9818 6.55367 18.0013 6.65135 18.0013 6.75C18.0013 6.84865 17.9818 6.94633 17.944 7.03745C17.9062 7.12857 17.8508 7.21133 17.781 7.281L7.28097 17.781C7.14014 17.9218 6.94913 18.0009 6.74997 18.0009C6.55081 18.0009 6.3598 17.9218 6.21897 17.781C6.07814 17.6402 5.99902 17.4492 5.99902 17.25C5.99902 17.0508 6.07814 16.8598 6.21897 16.719L16.719 6.219C16.7886 6.14915 16.8714 6.09374 16.9625 6.05593C17.0536 6.01812 17.1513 5.99866 17.25 5.99866C17.3486 5.99866 17.4463 6.01812 17.5374 6.05593C17.6285 6.09374 17.7113 6.14915 17.781 6.219Z\"\n      fill=\"currentColor\"\n      stroke=\"currentColor\"\n    />\n    <path\n      fill-rule=\"evenodd\"\n      clip-rule=\"evenodd\"\n      d=\"M6.21888 6.219C6.14903 6.28867 6.09362 6.37143 6.05581 6.46255C6.018 6.55367 5.99854 6.65135 5.99854 6.75C5.99854 6.84865 6.018 6.94633 6.05581 7.03745C6.09362 7.12857 6.14903 7.21133 6.21888 7.281L16.7189 17.781C16.8597 17.9218 17.0507 18.0009 17.2499 18.0009C17.449 18.0009 17.64 17.9218 17.7809 17.781C17.9217 17.6402 18.0008 17.4492 18.0008 17.25C18.0008 17.0508 17.9217 16.8598 17.7809 16.719L7.28088 6.219C7.21121 6.14915 7.12844 6.09374 7.03733 6.05593C6.94621 6.01812 6.84853 5.99866 6.74988 5.99866C6.65122 5.99866 6.55354 6.01812 6.46243 6.05593C6.37131 6.09374 6.28854 6.14915 6.21888 6.219Z\"\n      fill=\"currentColor\"\n      stroke=\"currentColor\"\n    />\n  </svg>`,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuModalCloseIcon {\n  @HostBinding('class')\n  protected get classes(): NgClass['ngClass'] {\n    return ['d-modal-close-icon'];\n  }\n}\n","import { CommonModule, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-modal-footer-spacer',\n  exportAs: 'dokuModalFooterSpacer',\n  standalone: true,\n  imports: [CommonModule],\n  template: ``,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuModalFooterSpacer {\n  @HostBinding('class')\n  protected get classes(): NgClass['ngClass'] {\n    return ['d-modal-footer-spacer'];\n  }\n}\n","import { CommonModule, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-modal-footer',\n  exportAs: 'dokuModalFooter',\n  standalone: true,\n  imports: [CommonModule],\n  template: '<ng-content></ng-content>',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuModalFooter {\n  @HostBinding('class')\n  protected get classes(): NgClass['ngClass'] {\n    return ['d-modal-footer'];\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-icon-danger',\n  standalone: true,\n  imports: [CommonModule],\n  template: `<svg\n    xmlns=\"http://www.w3.org/2000/svg\"\n    width=\"16\"\n    height=\"16\"\n    viewBox=\"0 0 16 16\"\n    fill=\"none\"\n  >\n    <path\n      d=\"M10.0834 12.5833C10.0834 13.732 9.14883 14.6666 8.00008 14.6666C6.85133 14.6666 5.91675 13.732 5.91675 12.5833C5.91675 11.4345 6.85133 10.4999 8.00008 10.4999C9.14883 10.4999 10.0834 11.4345 10.0834 12.5833ZM6.15789 1.98948L6.51206 9.07281C6.5287 9.40544 6.80323 9.66659 7.13628 9.66659H8.86388C9.19693 9.66659 9.47146 9.40544 9.4881 9.07281L9.84227 1.98948C9.86011 1.63247 9.5755 1.33325 9.21805 1.33325H6.78211C6.42466 1.33325 6.14006 1.63247 6.15789 1.98948Z\"\n      fill=\"currentColor\"\n    />\n  </svg>`,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuIconDanger {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-icon-exclamation',\n  standalone: true,\n  imports: [CommonModule],\n  template: `<svg\n    xmlns=\"http://www.w3.org/2000/svg\"\n    width=\"16\"\n    height=\"16\"\n    viewBox=\"0 0 16 16\"\n    fill=\"none\"\n  >\n    <path\n      d=\"M14.5165 12.2595C14.9438 13.0001 14.4075 13.9258 13.5541 13.9258H2.44562C1.5906 13.9258 1.05675 12.9986 1.48319 12.2595L7.03749 2.62918C7.46497 1.88823 8.53564 1.88958 8.96235 2.62918L14.5165 12.2595ZM7.99992 10.2684C7.41184 10.2684 6.93511 10.7452 6.93511 11.3332C6.93511 11.9213 7.41184 12.398 7.99992 12.398C8.588 12.398 9.06474 11.9213 9.06474 11.3332C9.06474 10.7452 8.588 10.2684 7.99992 10.2684ZM6.98897 6.44096L7.16069 9.58911C7.16872 9.73643 7.29052 9.85175 7.43805 9.85175H8.5618C8.70932 9.85175 8.83113 9.73643 8.83916 9.58911L9.01087 6.44096C9.01955 6.28184 8.89286 6.14805 8.73351 6.14805H7.26631C7.10696 6.14805 6.98029 6.28184 6.98897 6.44096Z\"\n      fill=\"currentColor\"\n    />\n  </svg>`,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuIconExclamation {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-icon-info',\n  standalone: true,\n  imports: [CommonModule],\n  template: `<svg\n    xmlns=\"http://www.w3.org/2000/svg\"\n    width=\"16\"\n    height=\"16\"\n    viewBox=\"0 0 16 16\"\n    fill=\"none\"\n  >\n    <path\n      d=\"M6.02083 12.3809H6.54167V8.61896H6.02083C5.73318 8.61896 5.5 8.38578 5.5 8.09812V6.85409C5.5 6.56643 5.73318 6.33325 6.02083 6.33325H8.9375C9.22516 6.33325 9.45833 6.56643 9.45833 6.85409V12.3809H9.97917C10.2668 12.3809 10.5 12.6141 10.5 12.9017V14.1458C10.5 14.4334 10.2668 14.6666 9.97917 14.6666H6.02083C5.73318 14.6666 5.5 14.4334 5.5 14.1458V12.9017C5.5 12.6141 5.73318 12.3809 6.02083 12.3809ZM8 1.33325C6.96445 1.33325 6.125 2.17271 6.125 3.20825C6.125 4.2438 6.96445 5.08325 8 5.08325C9.03555 5.08325 9.875 4.2438 9.875 3.20825C9.875 2.17271 9.03552 1.33325 8 1.33325Z\"\n      fill=\"currentColor\"\n    />\n  </svg>`,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuIconInfo {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-icon-success',\n  standalone: true,\n  imports: [CommonModule],\n  template: `<svg\n    xmlns=\"http://www.w3.org/2000/svg\"\n    width=\"16\"\n    height=\"16\"\n    viewBox=\"0 0 16 16\"\n    fill=\"none\"\n  >\n    <path\n      d=\"M5.86184 12.7761L1.52851 8.44278C1.26817 8.18244 1.26817 7.76033 1.52851 7.49997L2.47129 6.55715C2.73163 6.29679 3.15377 6.29679 3.41411 6.55715L6.33325 9.47627L12.5857 3.22382C12.8461 2.96348 13.2682 2.96348 13.5285 3.22382L14.4713 4.16663C14.7317 4.42697 14.7317 4.84908 14.4713 5.10945L6.80466 12.7761C6.54429 13.0365 6.12218 13.0365 5.86184 12.7761Z\"\n      fill=\"currentColor\"\n    />\n  </svg>`,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuIconSuccess {}\n","import { Observable, ReplaySubject } from 'rxjs';\nimport { DokuBackdropRef } from '../backdrop/backdrop-ref';\nimport { DokuModalConfig } from './modal.interface';\nimport { DokuModalService } from './modal.service';\nimport { ViewElement } from './view-element';\n\nexport class DokuActiveModal {\n  protected _config!: DokuModalConfig;\n\n  /**\n   * Gets config value of the modal that have been normalized based on provided config and default value.\n   */\n  get config(): DokuModalConfig {\n    return this._config;\n  }\n\n  /**\n   * Close the active modal.\n   */\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  close<R>(result?: R): void {\n    // Business logic will be filled on service\n  }\n}\n\nexport class DokuModalRef<T> {\n  /**\n   * The instance of component opened into the modal.\n   */\n  componentInstance: T = this._componentInstance;\n\n  protected afterClosed$ = new ReplaySubject();\n\n  protected backdropRef?: DokuBackdropRef;\n\n  constructor(\n    private modalService: DokuModalService,\n    private _componentInstance: T,\n    protected view?: ReturnType<typeof ViewElement.createElement>\n  ) {}\n\n  /**\n   * Close the current active modal.\n   * @param result Optional result returned to modal opener.\n   */\n  close<R>(result?: R) {\n    this.modalService['close'](this);\n    this.afterClosed$.next(result);\n    this.afterClosed$.complete();\n  }\n\n  /**\n   * Gets an observable that is notified when the modal is finished closing.\n   *\n   * The observable will automatically completed when modal is closed.\n   * In other words, you don't need to unsubscribe.\n   */\n  afterClosed<T>() {\n    return this.afterClosed$.asObservable() as Observable<T>;\n  }\n}\n","import { CommonModule, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\nimport { DokuIconDanger } from '../icons/icon-danger.component';\nimport { DokuIconExclamation } from '../icons/icon-exclamation.component';\nimport { DokuIconInfo } from '../icons/icon-info.component';\nimport { DokuIconSuccess } from '../icons/icon-success.component';\nimport { DokuActiveModal } from '../modal-ref';\n\n@Component({\n  selector: 'doku-modal-header',\n  exportAs: 'dokuModalHeader',\n  standalone: true,\n  imports: [CommonModule, DokuIconExclamation, DokuIconInfo, DokuIconDanger, DokuIconSuccess],\n  templateUrl: './modal-header.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuModalHeader {\n  constructor(private activeModal: DokuActiveModal) {}\n\n  @HostBinding('class')\n  protected get classes(): NgClass['ngClass'] {\n    return ['d-modal-header'];\n  }\n\n  protected get isConfirmationVariant(): boolean {\n    return this.activeModal.config.variant === 'confirmation';\n  }\n\n  protected get shouldShowConfirmationIcon(): boolean {\n    return !!this.activeModal.config.confirmationOptions?.showIcon;\n  }\n\n  protected get confirmationIconType() {\n    return this.activeModal.config.confirmationOptions?.iconType;\n  }\n}\n","<div class=\"d-modal-header-content\">\n  <div\n    *ngIf=\"isConfirmationVariant && shouldShowConfirmationIcon\"\n    class=\"d-modal-confirmation-icon-container\"\n    [ngClass]=\"confirmationIconType\"\n  >\n    <div class=\"d-modal-confirmation-icon-circle\">\n      <doku-icon-exclamation *ngIf=\"confirmationIconType === 'warning'\"></doku-icon-exclamation>\n      <doku-icon-info *ngIf=\"confirmationIconType === 'info'\"></doku-icon-info>\n      <doku-icon-danger *ngIf=\"confirmationIconType === 'danger'\"></doku-icon-danger>\n      <doku-icon-success *ngIf=\"confirmationIconType === 'success'\"></doku-icon-success>\n    </div>\n  </div>\n  <ng-content></ng-content>\n</div>\n<ng-content select=\"doku-modal-close-icon\"></ng-content>\n","import { NgModule } from '@angular/core';\nimport { DokuModalBody } from './content/modal-body.component';\nimport { DokuModalCloseIcon } from './content/modal-close-icon.component';\nimport { DokuModalFooterSpacer } from './content/modal-footer-spacer.component';\nimport { DokuModalFooter } from './content/modal-footer.component';\nimport { DokuModalHeader } from './content/modal-header.component';\n\n@NgModule({\n  imports: [\n    DokuModalHeader,\n    DokuModalBody,\n    DokuModalFooter,\n    DokuModalCloseIcon,\n    DokuModalFooterSpacer,\n  ],\n  exports: [\n    DokuModalHeader,\n    DokuModalBody,\n    DokuModalFooter,\n    DokuModalCloseIcon,\n    DokuModalFooterSpacer,\n  ],\n})\nexport class DokuModalModule {}\n","import { CommonModule } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Input,\n  OnChanges,\n  Output,\n  SimpleChanges,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { DokuPageChangeProps } from './pagination.interface';\n\n@Component({\n  selector: 'doku-pagination',\n  exportAs: 'dokuPagination',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './pagination.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuPagination implements OnChanges {\n  /**\n   * Total data items.\n   * @default 0\n   */\n  @Input() totalData = 0;\n\n  /**\n   * Active page of the pagination.\n   *\n   * The value will be normalized to first or last page if out of total pages range.\n   *\n   * @default 0\n   */\n  @Input() activePage = 0;\n\n  /**\n   * Total items displayed per page.\n   * @default 5\n   */\n  @Input() itemsPerPage = 5;\n\n  /**\n   * Listen for page change.\n   */\n  @Output() pageChange = new EventEmitter<DokuPageChangeProps>();\n\n  /**\n   * Use internally to inform other component for changes.\n   * @internal\n   */\n  protected triggerChange = new EventEmitter();\n\n  protected pages: (number | string)[] = [];\n  protected firstPage = 0;\n  protected lastPage = 0;\n  private totalPages = 0;\n  private readonly totalPagesToShow = 7;\n\n  constructor(private cdr: ChangeDetectorRef) {}\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const totalDataChange =\n      changes['totalData']?.previousValue !== changes['totalData']?.currentValue;\n    const activePageChange =\n      changes['activePage']?.previousValue !== changes['activePage']?.currentValue;\n    const itemsPerPageChange =\n      changes['itemsPerPage']?.previousValue !== changes['itemsPerPage']?.currentValue;\n\n    if (totalDataChange || activePageChange || itemsPerPageChange) {\n      this.calculateAll();\n    }\n  }\n\n  /**\n   * Navigate to the specific page.\n   *\n   * If page value is out of total pages range, the action will be ignored.\n   */\n  navigateToPage(page: number) {\n    if (page < this.firstPage || page > this.lastPage || this.activePage === page) return;\n    this.activePage = page;\n    this.calculateAll();\n    this.emitPageChange();\n  }\n\n  /**\n   * Go to previous page.\n   *\n   * The action will be ignored if already on the first page.\n   */\n  goToPreviousPage() {\n    if (this.activePage <= this.firstPage) return;\n    this.activePage -= 1;\n    this.calculateAll();\n    this.emitPageChange();\n  }\n\n  /**\n   * Go to next page.\n   *\n   * The action will be ignored if already on the last page.\n   */\n  goToNextPage() {\n    if (this.activePage >= this.lastPage) return;\n    this.activePage += 1;\n    this.calculateAll();\n    this.emitPageChange();\n  }\n\n  /**\n   * @internal\n   */\n  protected changeItemsPerPage(value: number) {\n    this.itemsPerPage = value;\n    this.cdr.markForCheck();\n    this.calculateAll();\n    this.emitPageChange();\n  }\n\n  private calculateAll() {\n    this.calculateValues();\n    this.calculatePages();\n    this.triggerChange.emit();\n  }\n\n  private calculateValues() {\n    this.totalPages = Math.ceil(this.totalData / this.itemsPerPage);\n    this.firstPage = this.totalPages >= 1 ? 1 : 0;\n    this.lastPage = this.totalPages >= 1 ? this.totalPages : 0;\n    if (this.totalPages && this.activePage < 1) this.activePage = 1;\n    if (this.totalPages && this.activePage > this.totalPages) this.activePage = this.totalPages;\n  }\n\n  private calculatePages() {\n    const totalPagesToShowInMiddle = this.totalPagesToShow - 4;\n    const offsetPagesToShow = totalPagesToShowInMiddle + 1;\n    const totalPagesToShowOnSide = offsetPagesToShow + 1;\n\n    // Handle pages if `totalPages` is less than or equal to `totalPagesToShow`, then no need ellipsis.\n    if (this.totalPages <= this.totalPagesToShow) {\n      this.pages = Array.from(Array(this.totalPages)).map((_, idx) => idx + 1);\n      return;\n    }\n\n    // Handle pages with ellipsis before the last page.\n    if (this.activePage <= offsetPagesToShow) {\n      const numbers = Array.from(Array(totalPagesToShowOnSide)).map((_, idx) => idx + 1);\n      this.pages = [...numbers, '...', this.lastPage];\n      return;\n    }\n\n    // Handle pages with ellipsis after the first page.\n    if (this.totalPages - this.activePage < offsetPagesToShow) {\n      const numbers = Array.from(Array(totalPagesToShowOnSide))\n        .map((_, idx) => this.totalPages - idx)\n        .reverse();\n      this.pages = [this.firstPage, '...', ...numbers];\n      return;\n    }\n\n    // Handle pages with ellipsis after the first page and before the last page.\n    const startNumber = this.activePage - (totalPagesToShowInMiddle - 2);\n    // const endNumber = this.activePage + (totalPagesToShowInMiddle - 2);\n    const numbers = Array.from(Array(totalPagesToShowInMiddle)).map((_, idx) => startNumber + idx);\n    this.pages = [this.firstPage, '...', ...numbers, '...', this.lastPage];\n  }\n\n  private emitPageChange() {\n    this.pageChange.emit({\n      activePage: this.activePage,\n      itemsPerPage: this.itemsPerPage,\n    });\n  }\n}\n","<div *ngIf=\"totalData\" class=\"d-pagination\">\n  <div\n    class=\"d-pagination-prev\"\n    [class.disabled]=\"activePage <= firstPage\"\n    (click)=\"goToPreviousPage()\"\n  >\n    <ng-template *ngTemplateOutlet=\"iconPrevious\"></ng-template>\n  </div>\n\n  <div *ngFor=\"let page of pages\">\n    <div *ngIf=\"page === '...'; else pageNumber\" class=\"d-pagination-page-ellipsis\">...</div>\n    <ng-template #pageNumber>\n      <div\n        class=\"d-pagination-page-number\"\n        [class.active]=\"page === activePage\"\n        (click)=\"navigateToPage($any(page))\"\n      >\n        {{ page }}\n      </div>\n    </ng-template>\n  </div>\n\n  <div class=\"d-pagination-next\" [class.disabled]=\"activePage >= lastPage\" (click)=\"goToNextPage()\">\n    <ng-template *ngTemplateOutlet=\"iconNext\"></ng-template>\n  </div>\n</div>\n\n<ng-template #iconPrevious>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"42\" height=\"46\" viewBox=\"0 0 42 46\" fill=\"none\">\n    <path\n      d=\"M23.5252 27.6092L18.8851 22.2096L23.5252 16.81C23.9916 16.2673 23.9916 15.3905 23.5252 14.8478C23.3018 14.5872 22.9984 14.4408 22.6821 14.4408C22.3658 14.4408 22.0624 14.5872 21.839 14.8478L16.3498 21.2354C15.8834 21.7782 15.8834 22.6549 16.3498 23.1977L21.839 29.5853C22.3054 30.128 23.0588 30.128 23.5252 29.5853C23.9796 29.0426 23.9916 28.1519 23.5252 27.6092Z\"\n      fill=\"currentColor\"\n    />\n  </svg>\n</ng-template>\n\n<ng-template #iconNext>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"42\" height=\"46\" viewBox=\"0 0 42 46\" fill=\"none\">\n    <path\n      d=\"M18.4748 27.6092L23.1149 22.2096L18.4748 16.81C18.0084 16.2673 18.0084 15.3905 18.4748 14.8478C18.6982 14.5872 19.0016 14.4408 19.3179 14.4408C19.6342 14.4408 19.9376 14.5872 20.161 14.8478L25.6502 21.2354C26.1166 21.7782 26.1166 22.6549 25.6502 23.1977L20.161 29.5853C19.6946 30.128 18.9412 30.128 18.4748 29.5853C18.0204 29.0426 18.0084 28.1519 18.4748 27.6092Z\"\n      fill=\"currentColor\"\n    />\n  </svg>\n</ng-template>\n","import { CommonModule, NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ContentChild,\n  HostBinding,\n  Input,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { DokuPagination } from '../pagination.component';\n\n@Component({\n  selector: 'doku-pagination-container',\n  exportAs: 'dokuPaginationContainer',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './pagination-container.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuPaginationContainer {\n  /**\n   * Whether to use padding to wrap components.\n   * @default true\n   */\n  @HostBinding('class.use-padding')\n  @Input()\n  usePadding = true;\n\n  @HostBinding('class')\n  protected get classes(): NgClass['ngClass'] {\n    return ['d-pagination-container'];\n  }\n\n  /**\n   * @internal\n   */\n  @ContentChild(DokuPagination) protected pagination?: DokuPagination;\n}\n","<div class=\"d-pagination-section-left\">\n  <ng-content select=\"doku-pagination-per-page\"></ng-content>\n</div>\n<div class=\"d-pagination-section-right\">\n  <ng-content select=\"doku-pagination-info\"></ng-content>\n  <ng-content select=\"doku-pagination\"></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  Inject,\n  OnDestroy,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { Subscription, delay, startWith } from 'rxjs';\nimport { DokuTypographyModule } from '../../typography';\nimport { DokuPaginationContainer } from './pagination-container.component';\n\n@Component({\n  selector: 'doku-pagination-info',\n  exportAs: 'dokuPaginationInfo',\n  standalone: true,\n  imports: [CommonModule, DokuTypographyModule],\n  templateUrl: `./pagination-info.component.html`,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuPaginationInfo implements AfterViewInit, OnDestroy {\n  /**\n   * Return total data of the items.\n   */\n  get totalData(): number {\n    return this._totalData;\n  }\n\n  /**\n   * Return item start number based on active page.\n   */\n  get from(): number {\n    return this._from;\n  }\n\n  /**\n   * Return item end number based on active page.\n   */\n  get to(): number {\n    return this._to;\n  }\n\n  private _totalData = 0;\n  private _from = 0;\n  private _to = 0;\n\n  @ViewChild('customInfo') private customInfo!: ElementRef;\n\n  private pageChangeListener?: Subscription;\n\n  constructor(\n    private cdr: ChangeDetectorRef,\n    @Inject(DokuPaginationContainer) private container?: DokuPaginationContainer\n  ) {}\n\n  protected get isCustomInfo(): boolean {\n    return !!(this.customInfo?.nativeElement as HTMLElement)?.hasChildNodes();\n  }\n\n  private get itemsPerPage(): number {\n    return this.container?.['pagination']?.itemsPerPage || 0;\n  }\n\n  private get activePage(): number {\n    return this.container?.['pagination']?.activePage || 0;\n  }\n\n  ngAfterViewInit(): void {\n    this.pageChangeListener = this.container?.['pagination']?.['triggerChange']\n      .pipe(startWith(0), delay(0))\n      .subscribe(() => {\n        this.setValues();\n        this.cdr.markForCheck();\n      });\n  }\n\n  ngOnDestroy(): void {\n    this.pageChangeListener?.unsubscribe();\n  }\n\n  private setValues() {\n    this._totalData = this.container?.['pagination']?.totalData || 0;\n\n    this._from = this.activePage * this.itemsPerPage - (this.itemsPerPage - 1);\n    if (this._totalData <= 0) this._from = 0;\n\n    this._to = this.activePage * this.itemsPerPage;\n    if (this._to > this._totalData) this._to = this._totalData;\n  }\n}\n","<div doku-typography variant=\"body-m\" class=\"d-pagination-info\">\n  <span [class.hidden]=\"isCustomInfo\">\n    Showing {{ from }} - {{ to }} from {{ totalData }} entries\n  </span>\n  <span #customInfo><ng-content></ng-content></span>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Inject,\n  Input,\n  OnDestroy,\n  OnInit,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { ReplaySubject, distinctUntilChanged, map, skip, takeUntil, startWith } from 'rxjs';\nimport { DokuFormFieldModule } from '../../form-field';\nimport { DokuSelectModule } from '../../select';\nimport { DokuPaginationContainer } from './pagination-container.component';\n\n@Component({\n  selector: 'doku-pagination-per-page',\n  exportAs: 'dokuPaginationPerPage',\n  standalone: true,\n  imports: [CommonModule, DokuFormFieldModule, DokuSelectModule, ReactiveFormsModule],\n  templateUrl: './pagination-per-page.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuPaginationPerPage implements OnInit, OnDestroy, AfterViewInit {\n  readonly defaultItemsPerPage = 5;\n\n  /**\n   * Items per page options.\n   * @default [5,10,15,20,25]\n   */\n  @Input() options: number[] = [5, 10, 15, 20, 25];\n\n  /**\n   * Label of the options.\n   * @default 'items per page'\n   */\n  @Input() optionLabel = 'items per page';\n\n  // The value can be a number or string because it passed to the select component\n  // where the value will always be converted to string.\n  protected itemsPerPage = new FormControl<string | number>(this.defaultItemsPerPage, {\n    nonNullable: true,\n  });\n\n  private destroy$ = new ReplaySubject();\n\n  constructor(\n    private cdr: ChangeDetectorRef,\n    @Inject(DokuPaginationContainer) private container?: DokuPaginationContainer\n  ) {}\n\n  protected get normalizedOptions() {\n    return this.options.map((option) => ({\n      label: `${option} ${this.optionLabel}`,\n      value: option,\n    }));\n  }\n\n  ngOnInit(): void {\n    this.itemsPerPage.valueChanges\n      .pipe(\n        distinctUntilChanged(),\n        skip(1),\n        map(this.convertValueToNumber),\n        takeUntil(this.destroy$)\n      )\n      .subscribe((value) => {\n        this.container?.['pagination']?.['changeItemsPerPage']?.(value);\n      });\n  }\n\n  ngAfterViewInit(): void {\n    // Set initial items per page from pagination component\n    this.container?.['pagination']?.['triggerChange']\n      .pipe(\n        startWith(this.container['pagination'].itemsPerPage || this.defaultItemsPerPage),\n        takeUntil(this.destroy$)\n      )\n      .subscribe(() => {\n        const itemsPerPage =\n          this.container?.['pagination']?.itemsPerPage || this.defaultItemsPerPage;\n        this.itemsPerPage.setValue(itemsPerPage);\n      });\n    this.cdr.detectChanges();\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next(true);\n    this.destroy$.complete();\n  }\n\n  private convertValueToNumber(value: string | number) {\n    try {\n      return typeof value === 'string' ? parseInt(value) : value;\n    } catch (error) {\n      return this.defaultItemsPerPage;\n    }\n  }\n}\n","<div class=\"d-pagination-per-page\">\n  <doku-form-field>\n    <doku-select [items]=\"normalizedOptions\" [formControl]=\"itemsPerPage\"></doku-select>\n  </doku-form-field>\n</div>\n","import { NgModule } from '@angular/core';\nimport { DokuPaginationContainer } from './integrations/pagination-container.component';\nimport { DokuPaginationInfo } from './integrations/pagination-info.component';\nimport { DokuPaginationPerPage } from './integrations/pagination-per-page.component';\nimport { DokuPagination } from './pagination.component';\n\n@NgModule({\n  imports: [DokuPagination, DokuPaginationContainer, DokuPaginationInfo, DokuPaginationPerPage],\n  exports: [DokuPagination, DokuPaginationContainer, DokuPaginationInfo, DokuPaginationPerPage],\n})\nexport class DokuPaginationModule {}\n","import { CommonModule } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  HostBinding,\n  InjectionToken,\n  Input,\n  ViewEncapsulation,\n  forwardRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DokuButton } from '../button';\n\nexport const DOKU_PILL_GROUP = new InjectionToken<DokuPillGroup>('DokuPillGroup');\n\nconst DOKU_PILL_GROUP_VALUE_ACCESSOR = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => DokuPillGroup),\n  multi: true,\n};\n@Component({\n  selector: 'doku-pill-group',\n  exportAs: 'dokuPillGroup',\n  standalone: true,\n  imports: [CommonModule, DokuButton],\n  templateUrl: './pill-group.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    DOKU_PILL_GROUP_VALUE_ACCESSOR,\n    { provide: DOKU_PILL_GROUP, useExisting: DokuPillGroup },\n  ],\n})\nexport class DokuPillGroup implements ControlValueAccessor {\n  private _modelValue = new Set<string>();\n\n  @HostBinding('class')\n  protected get class() {\n    return {\n      'd-pill-group-attached': this.isAttached,\n    };\n  }\n\n  /**\n   * Whether applying the default styles of the pill group.\n   */\n  @Input() isAttached = true;\n\n  /**\n   * Whether multiple button toggles can be selected.\n   *\n   * @param value boolean | truthy and falsy string\n   */\n  @Input()\n  set multiple(value: boolean | string) {\n    this._multiple = !!(value !== false);\n  }\n  get multiple() {\n    return this._multiple;\n  }\n  private _multiple = false;\n\n  /**\n   * Value of toggle group.\n   * Returns array in multiple-selection mode or single value in single-selection mode.\n   */\n  @Input()\n  get value(): string | string[] | undefined {\n    const valArray = Array.from(this._modelValue);\n\n    if (this.multiple) return valArray;\n\n    return valArray.length ? valArray[0] : '';\n  }\n  set value(newValue: string | string[] | undefined) {\n    const valueArr = typeof newValue === 'string' ? [newValue] : newValue;\n\n    this._modelValue = new Set(valueArr);\n  }\n\n  /**\n   *\n   * @param itemValue\n   * @returns\n   */\n  isChecked(itemValue: string) {\n    return this._modelValue.has(itemValue);\n  }\n\n  /**\n   * Syncs a pill button checked state with the model value.\n   */\n  syncValue(itemValue: string) {\n    if (!this.multiple) {\n      this._modelValue.clear();\n    }\n\n    if (this.isChecked(itemValue)) {\n      this._modelValue.delete(itemValue);\n    } else {\n      this._modelValue.add(itemValue);\n    }\n\n    this._onChange?.(this.value);\n  }\n\n  _onChange?: (value: unknown) => void;\n  _onTouched?: () => void;\n\n  writeValue(value: string | string[]): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: (value: unknown) => void): void {\n    this._onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this._onTouched = fn;\n  }\n}\n","<ng-content></ng-content>\n","import { CommonModule, NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  HostBinding,\n  HostListener,\n  Inject,\n  Input,\n  Optional,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { DOKU_PILL_GROUP, DokuPillGroup } from './pill-group.component';\n\n@Component({\n  selector: 'doku-pill-button',\n  exportAs: 'dokuPillButton',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './pill-button.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuPillButton {\n  /**\n   * `DokuPillGroup` reads this to assign its own value.\n   */\n  @Input() value?: string;\n\n  /**\n   * Whether the button is disabled.\n   */\n  @HostBinding('class.d-pill-btn-disabled')\n  @Input()\n  set disabled(value: boolean | string) {\n    this._disabled = !!(value !== false);\n  }\n  get disabled() {\n    return this._disabled;\n  }\n  private _disabled = false;\n\n  /**\n   * Button size. Default to `medium`.\n   */\n  @Input() size: 'small' | 'medium' = 'medium';\n\n  /**\n   * Whether the button is checked.\n   */\n  @HostBinding('class.d-pill-btn-active')\n  @Input()\n  get checked(): boolean {\n    return this.pillGroup && this.value ? this.pillGroup.isChecked(this.value) : this._checked;\n  }\n  set checked(val: boolean) {\n    this._checked = val;\n  }\n  private _checked = false;\n\n  @HostBinding('class')\n  protected get class(): NgClass['ngClass'] {\n    return ['d-btn', 'd-pill-btn', `d-pill-btn-${this.size}`];\n  }\n\n  constructor(@Optional() @Inject(DOKU_PILL_GROUP) private pillGroup?: DokuPillGroup) {}\n\n  /**\n   * Checks the button toggle and sync the value if it is wrapped with `DokuPillGroup`.\n   */\n  @HostListener('click')\n  protected _onClick() {\n    if (this.disabled) return;\n\n    this._checked = !this._checked;\n\n    if (this.pillGroup && this.value) {\n      this.pillGroup.syncValue(this.value);\n    }\n  }\n}\n","<ng-content select=\"[icon-left]\"></ng-content>\n\n<ng-content></ng-content>\n\n<ng-content select=\"[icon-right]\"></ng-content>\n","import { CommonModule, NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  HostBinding,\n  Input,\n  ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n  selector: 'doku-pill',\n  exportAs: 'dokuPill',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './pill.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuPill {\n  /**\n   * Size of the pill.\n   *\n   * @default 'medium'\n   */\n  @Input() size: 'small' | 'medium' = 'medium';\n\n  @HostBinding('class')\n  protected get classes(): NgClass['ngClass'] {\n    return ['d-pill', `d-pill-${this.size}`];\n  }\n}\n","<ng-content select=\"[icon-left]\"></ng-content>\n\n<ng-content></ng-content>\n\n<ng-content select=\"[icon-right]\"></ng-content>\n","import { NgModule } from '@angular/core';\nimport { DokuPillButton } from './pill-button.component';\nimport { DokuPillGroup } from './pill-group.component';\nimport { DokuPill } from './pill.component';\n\n@NgModule({\n  imports: [DokuPill, DokuPillButton, DokuPillGroup],\n  exports: [DokuPill, DokuPillButton, DokuPillGroup],\n})\nexport class DokuPillModule {}\n","import { CommonModule, NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  HostBinding,\n  Input,\n  ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n  selector: 'doku-progress-bar',\n  exportAs: 'dokuProgressBar',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './progress-bar.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuProgressBar {\n  /**\n   * Size of the progress bar.\n   * @default 'medium'\n   */\n  @Input() size: 'medium' | 'small' = 'medium';\n\n  /**\n   * Color of the completed bar.\n   * @default 'primary'\n   */\n  @Input() color: 'primary' | 'green' | 'yellow' = 'primary';\n\n  /**\n   * Value of the completed bar.\n   * @default 0\n   */\n  @Input() value = 0;\n\n  /**\n   * Whether to show label of the progress bar value.\n   * @default false\n   */\n  @Input() showValueLabel = false;\n\n  /**\n   * Provide custom height of the progress bar.\n   */\n  @Input()\n  @HostBinding('style.height.px')\n  @HostBinding('style.border-radius.px')\n  height?: number;\n\n  @HostBinding('class')\n  protected get classes(): NgClass['ngClass'] {\n    return ['d-progress-bar', `d-progress-bar-${this.color}`, `d-progress-bar-${this.size}`];\n  }\n}\n","<div class=\"d-progress-bar-complete\" [style.width.%]=\"value\">\n  <span *ngIf=\"showValueLabel\" class=\"d-progress-bar-value-label\"> {{ value }}% </span>\n</div>\n","import { NgModule } from '@angular/core';\nimport { DokuProgressBar } from './progress-bar.component';\n\n@NgModule({\n  imports: [DokuProgressBar],\n  exports: [DokuProgressBar],\n})\nexport class DokuProgressBarModule {}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n  selector: 'ng-template[doku-radio-custom-appearance]',\n  exportAs: 'dokuRadioCustomAppearance',\n  standalone: true,\n})\nexport class DokuRadioCustomAppearance {\n  constructor(public templateRef: TemplateRef<any>) {}\n}\n","export class DokuRadioCustomAppearanceContext {\n  checked = false;\n  disabled = false;\n  value = '';\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const DOKU_RADIO = new InjectionToken('DOKU_RADIO');\nexport const DOKU_RADIO_BUILT_IN_APPEARANCE = new InjectionToken('DOKU_RADIO_BUILT_IN_APPEARANCE');\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChildren,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnDestroy,\n  Output,\n  QueryList,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ReplaySubject, map, startWith, takeUntil } from 'rxjs';\nimport { DokuRadio } from './radio.component';\nimport { DOKU_RADIO } from './token';\n\nlet nextId = 1;\n\n@Component({\n  selector: 'doku-radio-group',\n  exportAs: 'dokuRadioGroup',\n  standalone: true,\n  imports: [CommonModule],\n  template: `<ng-content select=\"doku-radio\"></ng-content>`,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: DokuRadioGroup,\n      multi: true,\n    },\n  ],\n})\nexport class DokuRadioGroup\n  implements ControlValueAccessor, AfterContentInit, OnDestroy, OnChanges\n{\n  /**\n   * Name of the radio button group.\n   * All radio buttons inside this group will use this name.\n   * @default 'd-radio-group-[nextId]'\n   */\n  @Input() name = `d-radio-group-${nextId++}`;\n\n  /**\n   * Whether the radio group is disabled.\n   * If `true`, all radio buttons inside this group will be disabled.\n   * @default false\n   */\n  @Input() disabled = false;\n\n  /**\n   * Value of the checked radio button.\n   * @default ''\n   */\n  @Input() value = '';\n\n  /**\n   * Event emitted when the value changes.\n   */\n  @Output() valueChange = new EventEmitter<string>();\n\n  @ContentChildren(DOKU_RADIO) private radios?: QueryList<DokuRadio>;\n\n  protected _notifyChanges$ = new ReplaySubject();\n  private destroy$ = new ReplaySubject();\n\n  ngOnChanges(): void {\n    this.radios?.notifyOnChanges();\n  }\n\n  ngAfterContentInit(): void {\n    this.radios?.changes\n      .pipe(\n        startWith(this.radios),\n        map((radios: QueryList<DokuRadio>) => radios.toArray()),\n        takeUntil(this.destroy$)\n      )\n      .subscribe((radios) => {\n        this.injectRadios(radios);\n      });\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next(true);\n    this.destroy$.complete();\n  }\n\n  onChange?: (_: any) => void;\n  onTouched?: () => void;\n\n  writeValue(value: string): void {\n    this.value = value;\n    this.radios?.notifyOnChanges();\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 = isDisabled;\n    this.radios?.notifyOnChanges();\n  }\n\n  private injectRadios(radios: DokuRadio[]) {\n    radios.forEach((radio) => {\n      if (this.name) radio.name = this.name;\n      radio.disabled = this.disabled || radio.disabled;\n      radio['checkedChangeCallback'] = (value: string, checked: boolean) => {\n        this.value = checked ? value : '';\n        this.onChange?.(this.value);\n        this.onTouched?.();\n        this.valueChange.emit(this.value);\n        this._notifyChanges$.next(true);\n      };\n      radio.checked = radio.value === this.value;\n      radio['cdr'].detectChanges();\n    });\n    this._notifyChanges$.next(true);\n  }\n}\n","import { CommonModule, NgClass } from '@angular/common';\nimport {\n  AfterViewInit,\n  ApplicationRef,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  ElementRef,\n  Host,\n  HostBinding,\n  Input,\n  OnChanges,\n  OnDestroy,\n  Optional,\n  Renderer2,\n  TemplateRef,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { ReplaySubject, takeUntil } from 'rxjs';\nimport { DokuRadioCustomAppearanceContext } from './context';\nimport { DokuRadioCustomAppearance } from './radio-custom-appearance.directive';\nimport { DokuRadioGroup } from './radio-group.component';\nimport { DokuRadioBuiltInAppearance } from './radio.interface';\nimport { DOKU_RADIO, DOKU_RADIO_BUILT_IN_APPEARANCE } from './token';\n\nlet nextId = 1;\n\n@Component({\n  selector: 'doku-radio',\n  exportAs: 'dokuRadio',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './radio.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{ provide: DOKU_RADIO, useExisting: DokuRadio }],\n})\nexport class DokuRadio implements AfterViewInit, OnChanges, OnDestroy {\n  /**\n   * Analog to HTML 'name' attribute used to group radios for unique selection.\n   * @default 'd-radio-name-[nextId]''\n   */\n  @Input() name = `d-radio-name-${nextId++}`;\n\n  /**\n   * The value of this radio button.\n   * @default ''\n   */\n  @Input() value = '';\n\n  /**\n   * Whether this radio button is checked.\n   * @default false\n   */\n  @Input() checked = false;\n\n  /**\n   * Whether the radio button is disabled.\n   * @default false\n   */\n  @Input() disabled = false;\n\n  /**\n   * The size of the radio button indicator.\n   * @default 'medium'\n   */\n  @Input() size: 'medium' | 'small' = 'medium';\n\n  @ViewChild('container') private container?: ElementRef;\n  @ViewChild('indicator') private indicator?: TemplateRef<any>;\n  @ViewChild('label') private label?: ElementRef;\n\n  @ContentChild(DokuRadioCustomAppearance)\n  private customAppearance?: DokuRadioCustomAppearance;\n\n  @ContentChild(DOKU_RADIO_BUILT_IN_APPEARANCE)\n  private builtInAppearance?: DokuRadioBuiltInAppearance;\n\n  protected customAppearanceContext = new DokuRadioCustomAppearanceContext();\n  protected hasIndicator = false;\n  protected checkedChangeCallback?: (value: string, checked: boolean) => void;\n  private destroy$ = new ReplaySubject();\n\n  constructor(\n    private cdr: ChangeDetectorRef,\n    private appRef: ApplicationRef,\n    private renderer: Renderer2,\n    @Optional() @Host() private radioGroup?: DokuRadioGroup\n  ) {}\n\n  @HostBinding('class')\n  protected get classes(): NgClass['ngClass'] {\n    return ['d-radio', `d-radio-${this.size}`];\n  }\n\n  protected get hasCustomAppearance(): boolean {\n    return !!this.customAppearance || !!this.builtInAppearance;\n  }\n\n  ngAfterViewInit(): void {\n    this.cdr.detectChanges();\n    if (this.hasCustomAppearance) {\n      this.createAndAppendCustomAppearance();\n      setTimeout(\n        () => this.appendIndicator({ appendChildTo: this.container?.nativeElement, hidden: true }),\n        0\n      );\n      (this.label?.nativeElement as HTMLElement)?.remove();\n    } else {\n      this.appendIndicator();\n    }\n\n    this.watchGroupChanges();\n  }\n\n  ngOnChanges(): void {\n    this.updateCustomAppearanceContext();\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next(true);\n    this.destroy$.complete();\n  }\n\n  protected onCheckedChange(ev: Event) {\n    this.checked = (ev.target as HTMLInputElement).checked;\n    this.cdr.detectChanges();\n    if (this.hasCustomAppearance) {\n      this.updateCustomAppearanceContext();\n    }\n    this.checkedChangeCallback?.(this.value, this.checked);\n  }\n\n  private appendIndicator(props?: { appendChildTo?: HTMLElement; hidden?: boolean }) {\n    if (!this.indicator || this.hasIndicator) return;\n    const viewRef = this.indicator.createEmbeddedView(null);\n    this.appRef.attachView(viewRef);\n    viewRef.rootNodes.forEach((node) => {\n      if (props?.hidden) this.renderer.setStyle(node, 'display', 'none');\n      if (props?.appendChildTo) {\n        this.renderer.appendChild(props.appendChildTo, node);\n      } else {\n        this.renderer.insertBefore(this.container?.nativeElement, node, this.label?.nativeElement);\n      }\n    });\n    this.hasIndicator = true;\n    this.destroy$.subscribe(() => viewRef.destroy());\n  }\n\n  private createAndAppendCustomAppearance() {\n    const templateRef: TemplateRef<any> | undefined =\n      this.customAppearance?.templateRef || this.builtInAppearance?.template?.templateRef;\n    if (!templateRef) return;\n\n    const viewRef = templateRef.createEmbeddedView(this.customAppearanceContext);\n    this.appRef.attachView(viewRef);\n    viewRef.rootNodes.forEach((node) => {\n      this.renderer.appendChild(this.container?.nativeElement, node);\n    });\n    this.destroy$.subscribe(() => viewRef.destroy());\n  }\n\n  private updateCustomAppearanceContext() {\n    this.customAppearanceContext.checked = this.checked;\n    this.customAppearanceContext.disabled = this.disabled;\n    this.customAppearanceContext.value = this.value;\n  }\n\n  private watchGroupChanges() {\n    this.radioGroup?.['_notifyChanges$'].pipe(takeUntil(this.destroy$)).subscribe(() => {\n      this.checked = this.value === this.radioGroup?.value;\n      this.disabled = this.disabled || !!this.radioGroup?.disabled;\n      this.updateCustomAppearanceContext();\n    });\n  }\n}\n","<label #container class=\"d-radio-container\">\n  <span #label class=\"d-radio-label\"><ng-content></ng-content></span>\n</label>\n\n<ng-template #indicator>\n  <input\n    type=\"radio\"\n    class=\"d-radio-input\"\n    [name]=\"name\"\n    [value]=\"value\"\n    [disabled]=\"disabled\"\n    [checked]=\"checked\"\n    (change)=\"onCheckedChange($event)\"\n  />\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  Inject,\n  OnInit,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { DokuRadio } from './radio.component';\n\n@Component({\n  selector: 'doku-radio-indicator',\n  exportAs: 'dokuRadioIndicator',\n  standalone: true,\n  imports: [CommonModule],\n  template: '',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuRadioIndicator implements OnInit {\n  constructor(private elementRef: ElementRef, @Inject(DokuRadio) private radio: DokuRadio) {}\n\n  ngOnInit(): void {\n    this.radio['appendIndicator']({ appendChildTo: this.elementRef.nativeElement });\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { DokuTypographyModule } from '../../../typography';\nimport { DokuRadioCustomAppearance } from '../../radio-custom-appearance.directive';\nimport { DokuRadioIndicator } from '../../radio-indicator.component';\nimport { DokuRadioBuiltInAppearance } from '../../radio.interface';\nimport { DOKU_RADIO_BUILT_IN_APPEARANCE } from '../../token';\n\n@Component({\n  selector: 'doku-radio-appearance-card',\n  exportAs: 'dokuRadioAppearanceCard',\n  standalone: true,\n  imports: [CommonModule, DokuRadioCustomAppearance, DokuRadioIndicator, DokuTypographyModule],\n  templateUrl: './radio-appearance-card.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: DOKU_RADIO_BUILT_IN_APPEARANCE,\n      useExisting: DokuRadioAppearanceCard,\n    },\n  ],\n})\nexport class DokuRadioAppearanceCard implements DokuRadioBuiltInAppearance {\n  @ViewChild(DokuRadioCustomAppearance) template?: DokuRadioCustomAppearance;\n}\n","<ng-template doku-radio-custom-appearance let-checked=\"checked\" let-disabled=\"disabled\">\n  <div class=\"d-radio-appearance-card\" [class.checked]=\"checked\" [class.disabled]=\"disabled\">\n    <doku-radio-indicator></doku-radio-indicator>\n    <div class=\"content\">\n      <div doku-typography variant=\"body-m\" class=\"title\">\n        <ng-content select=\"ng-container[title]\"></ng-content>\n      </div>\n      <div doku-typography variant=\"body-s\" class=\"desc\">\n        <ng-content select=\"ng-container[description]\"></ng-content>\n      </div>\n    </div>\n  </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { DokuRadioAppearanceCard } from './built-in-appearances/radio-appearance-card/radio-appearance-card.component';\nimport { DokuRadioCustomAppearance } from './radio-custom-appearance.directive';\nimport { DokuRadioGroup } from './radio-group.component';\nimport { DokuRadioIndicator } from './radio-indicator.component';\nimport { DokuRadio } from './radio.component';\n\n@NgModule({\n  imports: [DokuRadio, DokuRadioCustomAppearance, DokuRadioIndicator, DokuRadioGroup],\n  exports: [DokuRadio, DokuRadioCustomAppearance, DokuRadioIndicator, DokuRadioGroup],\n})\nexport class DokuRadioModule {}\n\n@NgModule({\n  imports: [DokuRadioAppearanceCard],\n  exports: [DokuRadioAppearanceCard],\n})\nexport class DokuRadioAppearanceModule {}\n","import { CommonModule, NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  HostBinding,\n  Input,\n  NgZone,\n  OnChanges,\n  OnDestroy,\n  SimpleChanges,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { Subscription, fromEvent } from 'rxjs';\n\n@Component({\n  selector: 'doku-shimmer',\n  exportAs: 'dokuShimmer',\n  standalone: true,\n  imports: [CommonModule],\n  template: '',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuShimmer implements OnChanges, OnDestroy {\n  /**\n   * Width of the shimmer.\n   * @default '100%'\n   */\n  @HostBinding('style.width')\n  @Input()\n  width = '100%';\n\n  /**\n   * Height of the shimmer.\n   *\n   * If `shape` is not rectangle and `width` is not in pixels,\n   * the height will be calculated based on the element width.\n   *\n   * @default '14px'\n   */\n  @Input() height = '14px';\n\n  /**\n   * Border radius of the shimmer.\n   *\n   * If `shape` is circle, the value will be ignored.\n   *\n   * @default '4px'\n   */\n  @Input() borderRadius = '4px';\n\n  /**\n   * The shape of the shimmer.\n   *\n   * Some shapes will affect the height or border radius.\n   *\n   * @default 'rectangle'\n   */\n  @Input() shape: 'rectangle' | 'square' | 'circle' = 'rectangle';\n\n  /**\n   * Color variant of the shimmer.\n   * @default 'light'\n   */\n  @Input() variant: 'light' | 'dark' = 'light';\n\n  @HostBinding('class')\n  protected get classes(): NgClass['ngClass'] {\n    return ['d-shimmer', `d-shimmer-variant-${this.variant}`];\n  }\n\n  private resizeListener?: Subscription;\n\n  constructor(private elementRef: ElementRef, private ngZone: NgZone) {}\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['width']?.currentValue) {\n      this.resizeListener?.unsubscribe();\n      this.listenResize();\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.resizeListener?.unsubscribe();\n  }\n\n  @HostBinding('style.height')\n  protected get normalizedHeight(): string {\n    switch (this.shape) {\n      case 'square':\n      case 'circle':\n        return this.calculateHeightByWidth(this.width);\n      case 'rectangle':\n      default:\n        return this.height;\n    }\n  }\n\n  @HostBinding('style.border-radius')\n  protected get normalizedBorderRadius(): string {\n    return this.shape === 'circle' ? '50%' : this.borderRadius;\n  }\n\n  /**\n   * Calculate height value when width is not using pixels.\n   */\n  private calculateHeightByWidth(width: string) {\n    if (width.endsWith('px')) return width;\n    if (this.shape === 'rectangle') return this.height;\n    const clientWidth = (this.elementRef.nativeElement as HTMLElement).clientWidth;\n    if (!clientWidth) return width;\n    return `${clientWidth}px`;\n  }\n\n  private listenResize() {\n    this.ngZone.runOutsideAngular(() => {\n      if (this.width.endsWith('px')) return;\n      if (this.shape === 'rectangle') return;\n      this.resizeListener = fromEvent(window, 'resize').subscribe(() => {\n        (this.elementRef.nativeElement as HTMLElement).style.height = this.calculateHeightByWidth(\n          this.width\n        );\n      });\n    });\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { DokuShimmer } from './shimmer.component';\n\n@NgModule({\n  imports: [DokuShimmer],\n  exports: [DokuShimmer],\n})\nexport class DokuShimmerModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-sorter-icon',\n  exportAs: 'dokuSorterIcon',\n  standalone: true,\n  imports: [CommonModule],\n  template: `<svg\n    xmlns=\"http://www.w3.org/2000/svg\"\n    width=\"24\"\n    height=\"24\"\n    viewBox=\"0 0 24 24\"\n    fill=\"none\"\n  >\n    <path d=\"M7 13L12 18L17 13H7Z\" [attr.fill]=\"colorDesc\" />\n    <path d=\"M7 11L12 6L17 11H7Z\" [attr.fill]=\"colorAsc\" />\n  </svg>`,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuSorterIcon {\n  @Input() colorAsc = 'currentColor';\n  @Input() colorDesc = 'currentColor';\n}\n","import {\n  ApplicationRef,\n  EmbeddedViewRef,\n  EnvironmentInjector,\n  Injector,\n  Renderer2,\n  TemplateRef,\n  ViewRef,\n  createComponent,\n} from '@angular/core';\nimport { DokuSpinner } from '../spinner';\n\nexport class TemplateUtil {\n  static createNoDataElement(props: { renderer: Renderer2; totalColumn: number }) {\n    const { bodyElement, contentElement, ...rest } = this.createBaseElement({\n      renderer: props.renderer,\n      totalColumn: props.totalColumn,\n    });\n    bodyElement.className = 'd-table-body-no-data';\n    return { bodyElement, contentElement, ...rest };\n  }\n\n  static updateNoDataContent(props: {\n    renderer: Renderer2;\n    appRef: ApplicationRef;\n    noDataElement: ReturnType<typeof TemplateUtil.createNoDataElement>;\n    injector?: Injector;\n    content?: string | TemplateRef<unknown>;\n  }) {\n    let templateViewRef: EmbeddedViewRef<unknown> | undefined;\n\n    if (!props.content || typeof props.content === 'string') {\n      const el: HTMLDivElement = props.renderer.createElement('div');\n      el.className = 'd-text-h5';\n      el.textContent = props.content || 'No Data';\n      props.renderer.appendChild(props.noDataElement.contentElement, el);\n    }\n\n    if (props.content instanceof TemplateRef) {\n      templateViewRef = props.content.createEmbeddedView(null, props.injector);\n      props.appRef.attachView(templateViewRef);\n      templateViewRef.rootNodes.forEach((node) => {\n        props.renderer.appendChild(props.noDataElement.contentElement, node);\n      });\n    }\n\n    const destroy = () => {\n      templateViewRef?.destroy();\n    };\n\n    return { destroy };\n  }\n\n  static createLoadingElement(props: {\n    renderer: Renderer2;\n    totalColumn: number;\n    environmentInjector: EnvironmentInjector;\n    applicationRef: ApplicationRef;\n  }) {\n    const { bodyElement, contentElement, ...rest } = this.createBaseElement({\n      renderer: props.renderer,\n      totalColumn: props.totalColumn,\n    });\n    bodyElement.className = 'd-table-body-loading';\n    return { bodyElement, contentElement, ...rest };\n  }\n\n  static updateLoadingContent(props: {\n    renderer: Renderer2;\n    appRef: ApplicationRef;\n    envInjector: EnvironmentInjector;\n    loadingElement: ReturnType<typeof TemplateUtil.createLoadingElement>;\n    injector?: Injector;\n    content?: string | TemplateRef<unknown>;\n  }) {\n    let spinnerViewRef: ViewRef | undefined;\n    let templateViewRef: EmbeddedViewRef<unknown> | undefined;\n\n    if (!props.content || typeof props.content === 'string') {\n      const loadingWrapperElement: HTMLDivElement = props.renderer.createElement('div');\n      loadingWrapperElement.className = 'd-table-body-loading-wrapper';\n\n      // Spinner component\n      const spinnerComponent = createComponent(DokuSpinner, {\n        environmentInjector: props.envInjector,\n      });\n      spinnerComponent.location.nativeElement.style.display = 'flex';\n      spinnerComponent.location.nativeElement.style.marginRight = '16px';\n      spinnerComponent.setInput('diameter', 32);\n      spinnerComponent.setInput('strokeWidth', 3);\n      props.appRef.attachView(spinnerComponent.hostView);\n      spinnerViewRef = spinnerComponent.hostView;\n\n      // Loading text element\n      const loadingTextElement: HTMLSpanElement = props.renderer.createElement('span');\n      loadingTextElement.className = 'd-text-body-m';\n      loadingTextElement.textContent = props.content || 'Please wait, we are loading your data...';\n\n      // Append spinner and loading text to wrapper element\n      props.renderer.appendChild(loadingWrapperElement, spinnerComponent.location.nativeElement);\n      props.renderer.appendChild(loadingWrapperElement, loadingTextElement);\n\n      // Append to content element\n      props.renderer.appendChild(props.loadingElement.contentElement, loadingWrapperElement);\n    }\n\n    if (props.content instanceof TemplateRef) {\n      templateViewRef = props.content.createEmbeddedView(null, props.injector);\n      props.appRef.attachView(templateViewRef);\n      templateViewRef.rootNodes.forEach((node) => {\n        props.renderer.appendChild(props.loadingElement.contentElement, node);\n      });\n    }\n\n    const destroy = () => {\n      spinnerViewRef?.destroy();\n      templateViewRef?.destroy();\n    };\n\n    return { destroy };\n  }\n\n  static createErrorElement(props: { renderer: Renderer2; totalColumn: number }) {\n    const { bodyElement, contentElement, ...rest } = this.createBaseElement({\n      renderer: props.renderer,\n      totalColumn: props.totalColumn,\n    });\n    bodyElement.className = 'd-table-body-error';\n    return { bodyElement, contentElement, ...rest };\n  }\n\n  static updateErrorContent(props: {\n    renderer: Renderer2;\n    appRef: ApplicationRef;\n    errorElement: ReturnType<typeof TemplateUtil.createErrorElement>;\n    injector?: Injector;\n    content?: string | TemplateRef<unknown>;\n  }) {\n    let templateViewRef: EmbeddedViewRef<unknown> | undefined;\n\n    if (!props.content || typeof props.content === 'string') {\n      const el: HTMLDivElement = props.renderer.createElement('div');\n      el.className = 'd-text-h5';\n      el.textContent = props.content || 'Something went wrong!';\n      props.renderer.appendChild(props.errorElement.contentElement, el);\n    }\n\n    if (props.content instanceof TemplateRef) {\n      templateViewRef = props.content.createEmbeddedView(null, props.injector);\n      props.appRef.attachView(templateViewRef);\n      templateViewRef.rootNodes.forEach((node) => {\n        props.renderer.appendChild(props.errorElement.contentElement, node);\n      });\n    }\n\n    const destroy = () => {\n      templateViewRef?.destroy();\n    };\n\n    return { destroy };\n  }\n\n  private static createBaseElement(props: { renderer: Renderer2; totalColumn: number }) {\n    const contentElement: HTMLDivElement = props.renderer.createElement('div');\n    contentElement.className = 'd-table-body-custom-content';\n\n    const cellElement: HTMLTableCellElement = props.renderer.createElement('td');\n    cellElement.colSpan = props.totalColumn;\n\n    cellElement.appendChild(contentElement);\n\n    const rowElement: HTMLTableRowElement = props.renderer.createElement('tr');\n\n    rowElement.appendChild(cellElement);\n\n    const bodyElement: HTMLTableSectionElement = props.renderer.createElement('tbody');\n\n    bodyElement.appendChild(rowElement);\n\n    return { bodyElement, rowElement, cellElement, contentElement };\n  }\n}\n","import { NgClass } from '@angular/common';\nimport {\n  AfterViewInit,\n  ApplicationRef,\n  Directive,\n  ElementRef,\n  EnvironmentInjector,\n  EventEmitter,\n  HostBinding,\n  Injector,\n  Input,\n  NgZone,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  Renderer2,\n  SimpleChanges,\n  TemplateRef,\n} from '@angular/core';\nimport { ReplaySubject, distinctUntilChanged, fromEvent, shareReplay, takeUntil } from 'rxjs';\nimport { DokuActiveSorter } from './table.interface';\nimport { TemplateUtil } from './template.util';\n\n@Directive({\n  selector: '[doku-table]',\n  exportAs: 'dokuTable',\n  standalone: true,\n})\nexport class DokuTable implements AfterViewInit, OnChanges, OnDestroy, OnInit {\n  /**\n   * Initial active sorter for column.\n   * @default undefined\n   */\n  @Input() activeSorter?: DokuActiveSorter;\n\n  /**\n   * The status of the data.\n   *\n   * - `loading`, will show loading content on the table body\n   * - `empty`, will show no data content on the table body\n   * - `error`, will show error content on the table body\n   *\n   * If status is `undefined`, it means data is provided.\n   *\n   * @default undefined\n   */\n  @Input() status?: 'loading' | 'empty' | 'error';\n\n  /**\n   * Custom text or template on the table body when status is `empty`.\n   *\n   * @default undefined\n   */\n  @Input() customNoData?: string | TemplateRef<unknown>;\n\n  /**\n   * Custom text or template on the table body when status is `loading`.\n   *\n   * @default undefined\n   */\n  @Input() customLoading?: string | TemplateRef<unknown>;\n\n  /**\n   * Custom text or template on the table body when status is `error`.\n   */\n  @Input() customError?: string | TemplateRef<unknown>;\n\n  /**\n   * Listen for column sort changes.\n   */\n  @Output()\n  sortChange = new EventEmitter<DokuActiveSorter | undefined>();\n\n  protected _sortChange = new EventEmitter<{\n    activeSorter?: DokuActiveSorter | undefined;\n    options?: { emitEvent?: boolean };\n  }>();\n  protected sortChange$ = this._sortChange.asObservable().pipe(shareReplay());\n\n  private containerElement?: HTMLDivElement;\n\n  private filledElement?: HTMLTableSectionElement;\n  private noDataElement?: ReturnType<typeof TemplateUtil.createNoDataElement>;\n  private noDataContentRef?: ReturnType<typeof TemplateUtil.updateNoDataContent>;\n  private loadingElement?: ReturnType<typeof TemplateUtil.createLoadingElement>;\n  private loadingContentRef?: ReturnType<typeof TemplateUtil.updateLoadingContent>;\n  private errorElement?: ReturnType<typeof TemplateUtil.createErrorElement>;\n  private errorContentRef?: ReturnType<typeof TemplateUtil.updateErrorContent>;\n\n  private destroy$ = new ReplaySubject();\n\n  constructor(\n    private elementRef: ElementRef,\n    private renderer: Renderer2,\n    private ngZone: NgZone,\n    private envInjector: EnvironmentInjector,\n    private appRef: ApplicationRef,\n    private injector: Injector\n  ) {}\n\n  @HostBinding('class')\n  protected get classes(): NgClass['ngClass'] {\n    return ['d-table'];\n  }\n\n  protected get totalColumn(): number {\n    return (this.elementRef.nativeElement as HTMLElement).querySelectorAll('thead tr th').length;\n  }\n\n  ngOnInit(): void {\n    this._sortChange\n      .asObservable()\n      .pipe(\n        distinctUntilChanged((previous, current) => previous.activeSorter === current.activeSorter),\n        takeUntil(this.destroy$)\n      )\n      .subscribe((props) => {\n        const emitEvent = props?.options?.emitEvent ?? true;\n        if (emitEvent) this.sortChange.emit(props?.activeSorter);\n      });\n  }\n\n  ngOnDestroy(): void {\n    this.containerElement = undefined;\n    this.filledElement = undefined;\n    this.noDataElement = undefined;\n    this.noDataContentRef?.destroy();\n    this.loadingElement = undefined;\n    this.loadingContentRef?.destroy();\n    this.errorElement = undefined;\n    this.errorContentRef?.destroy();\n    this.destroy$.next(true);\n    this.destroy$.complete();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const activeSorter = changes['activeSorter'];\n    if (activeSorter?.previousValue !== activeSorter?.currentValue) {\n      setTimeout(() => this._sortChange.emit({ activeSorter: activeSorter?.currentValue }), 0);\n    }\n\n    const status = changes['status'];\n    if (status?.previousValue !== status?.currentValue) {\n      this.handleBodyVisibilityByStatus();\n    }\n\n    const customNoData = changes['customNoData'];\n    if (customNoData?.previousValue !== customNoData?.currentValue) {\n      this.handleCustomNoData();\n    }\n\n    const customLoading = changes['customLoading'];\n    if (customLoading?.previousValue !== customLoading?.currentValue) {\n      this.handleCustomLoading();\n    }\n\n    const customError = changes['customError'];\n    if (customError?.previousValue !== customError?.currentValue) {\n      this.handleCustomError();\n    }\n  }\n\n  ngAfterViewInit(): void {\n    this.containerElement = this.createContainer();\n    const parentNode = (this.elementRef.nativeElement as HTMLElement).parentNode;\n\n    // Insert container element before the table element.\n    this.renderer.insertBefore(parentNode, this.containerElement, this.elementRef.nativeElement);\n\n    // Remove the table element.\n    this.renderer.removeChild(parentNode, this.elementRef.nativeElement);\n\n    // Append the table element inside the container element.\n    this.renderer.appendChild(this.containerElement, this.elementRef.nativeElement);\n\n    // Assign filled tbody to variable\n    this.filledElement = this.elementRef.nativeElement.querySelector('tbody');\n\n    // Append others tbody (no data, loading)\n    this.initNoDataElement();\n    this.initLoadingElement();\n    this.initErrorElement();\n\n    // Handle table body visibility\n    this.handleBodyVisibilityByStatus();\n\n    // Handle resize when window resized\n    this.onResize();\n  }\n\n  /**\n   * Change active sorter programmatically.\n   * @param activeSorter Value of the active sorter. Provide `undefined` to clear sorter.\n   * @param options.emitEvent Whether to emit an event for `sortChange`. Default is `true`.\n   */\n  changeActiveSorter(activeSorter?: DokuActiveSorter, options?: { emitEvent?: boolean }) {\n    this.activeSorter = activeSorter;\n    this._sortChange.emit({ activeSorter, options });\n  }\n\n  private onResize() {\n    this.ngZone.runOutsideAngular(() => {\n      fromEvent(window, 'resize')\n        .pipe(takeUntil(this.destroy$))\n        .subscribe(() => {\n          this.resizeNoDataElementWidth();\n          this.resizeLoadingElementWidth();\n          this.resizeErrorElementWidth();\n        });\n    });\n  }\n\n  private createContainer() {\n    const element: HTMLDivElement = this.renderer.createElement('div');\n    this.renderer.addClass(element, 'd-table-container');\n    return element;\n  }\n\n  private initNoDataElement() {\n    this.noDataElement = TemplateUtil.createNoDataElement({\n      renderer: this.renderer,\n      totalColumn: this.totalColumn,\n    });\n    this.renderer.insertBefore(\n      this.elementRef.nativeElement,\n      this.noDataElement.bodyElement,\n      this.filledElement\n    );\n    this.handleCustomNoData();\n    this.resizeNoDataElementWidth();\n  }\n\n  private handleCustomNoData() {\n    if (!this.noDataElement) return;\n    this.noDataContentRef?.destroy();\n    TemplateUtil.updateNoDataContent({\n      appRef: this.appRef,\n      noDataElement: this.noDataElement,\n      renderer: this.renderer,\n      content: this.customNoData,\n      injector: this.injector,\n    });\n  }\n\n  private resizeNoDataElementWidth() {\n    if (!this.noDataElement) return;\n    const containerWidth = this.containerElement?.clientWidth\n      ? this.containerElement.clientWidth + 'px'\n      : '100%';\n    this.noDataElement.contentElement.style.width = containerWidth;\n  }\n\n  private initLoadingElement() {\n    this.loadingElement = TemplateUtil.createLoadingElement({\n      renderer: this.renderer,\n      totalColumn: this.totalColumn,\n      applicationRef: this.appRef,\n      environmentInjector: this.envInjector,\n    });\n    this.renderer.insertBefore(\n      this.elementRef.nativeElement,\n      this.loadingElement.bodyElement,\n      this.filledElement\n    );\n    this.handleCustomLoading();\n    this.resizeLoadingElementWidth();\n  }\n\n  private resizeLoadingElementWidth() {\n    if (!this.loadingElement) return;\n    const containerWidth = this.containerElement?.clientWidth\n      ? this.containerElement.clientWidth + 'px'\n      : '100%';\n    this.loadingElement.contentElement.style.width = containerWidth;\n  }\n\n  private handleCustomLoading() {\n    if (!this.loadingElement) return;\n    this.loadingContentRef?.destroy();\n    TemplateUtil.updateLoadingContent({\n      appRef: this.appRef,\n      envInjector: this.envInjector,\n      loadingElement: this.loadingElement,\n      renderer: this.renderer,\n      content: this.customLoading,\n      injector: this.injector,\n    });\n  }\n\n  private initErrorElement() {\n    this.errorElement = TemplateUtil.createErrorElement({\n      renderer: this.renderer,\n      totalColumn: this.totalColumn,\n    });\n    this.renderer.insertBefore(\n      this.elementRef.nativeElement,\n      this.errorElement.bodyElement,\n      this.filledElement\n    );\n    this.handleCustomError();\n    this.resizeErrorElementWidth();\n  }\n\n  private handleCustomError() {\n    if (!this.errorElement) return;\n    this.errorContentRef?.destroy();\n    TemplateUtil.updateErrorContent({\n      appRef: this.appRef,\n      errorElement: this.errorElement,\n      renderer: this.renderer,\n      content: this.customError,\n      injector: this.injector,\n    });\n  }\n\n  private resizeErrorElementWidth() {\n    if (!this.errorElement) return;\n    const containerWidth = this.containerElement?.clientWidth\n      ? this.containerElement.clientWidth + 'px'\n      : '100%';\n    this.errorElement.contentElement.style.width = containerWidth;\n  }\n\n  private handleBodyVisibilityByStatus() {\n    if (!this.filledElement || !this.noDataElement || !this.loadingElement || !this.errorElement) {\n      return;\n    }\n\n    this.filledElement.style.display = 'none';\n    this.noDataElement.bodyElement.style.display = 'none';\n    this.loadingElement.bodyElement.style.display = 'none';\n    this.errorElement.bodyElement.style.display = 'none';\n\n    if (this.status === 'loading') this.loadingElement.bodyElement.style.display = '';\n    if (this.status === 'empty') this.noDataElement.bodyElement.style.display = '';\n    if (this.status === 'error') this.errorElement.bodyElement.style.display = '';\n    if (!this.status) this.filledElement.style.display = '';\n  }\n}\n","import { NgClass } from '@angular/common';\nimport {\n  ApplicationRef,\n  ComponentRef,\n  Directive,\n  ElementRef,\n  EnvironmentInjector,\n  HostBinding,\n  HostListener,\n  Inject,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  SimpleChanges,\n  createComponent,\n} from '@angular/core';\nimport { BehaviorSubject, ReplaySubject, filter, takeUntil } from 'rxjs';\nimport { DokuSorterIcon } from './sorter-icon.component';\nimport { DokuTable } from './table.directive';\nimport { DokuActiveSorter } from './table.interface';\n\n@Directive({\n  selector: 'th[doku-sortable]',\n  exportAs: 'dokuSortable',\n  standalone: true,\n})\nexport class DokuTableSortable implements OnInit, OnChanges, OnDestroy {\n  /**\n   * Column name that will be sorted.\n   * @default undefined\n   */\n  @Input('doku-sortable') sortable?: string;\n\n  private direction$ = new BehaviorSubject<DokuActiveSorter['direction']>('');\n  private sorterIconComponent?: ComponentRef<DokuSorterIcon>;\n\n  private destroy$ = new ReplaySubject();\n\n  constructor(\n    private envInjector: EnvironmentInjector,\n    private appRef: ApplicationRef,\n    private elementRef: ElementRef,\n    @Inject(DokuTable) private table?: DokuTable\n  ) {}\n\n  @HostBinding('class')\n  protected get classes(): NgClass['ngClass'] {\n    return ['d-table-sortable'];\n  }\n\n  ngOnInit(): void {\n    this.table?.['sortChange$']\n      .pipe(\n        filter(() => !!this.sortable),\n        filter(() => !!this.sorterIconComponent),\n        takeUntil(this.destroy$)\n      )\n      .subscribe(({ activeSorter }) => {\n        if (this.direction$.value !== '' && activeSorter?.column !== this.sortable) {\n          // Reset direction because the active sorter is on another column.\n          this.direction$.next('');\n        }\n\n        if (\n          activeSorter?.column === this.sortable &&\n          this.direction$.value !== activeSorter?.direction\n        ) {\n          // Update direction from table active sorter\n          this.direction$.next(activeSorter?.direction || '');\n        }\n      });\n\n    this.direction$\n      .pipe(\n        filter(() => !!this.sortable),\n        filter(() => !!this.sorterIconComponent),\n        takeUntil(this.destroy$)\n      )\n      .subscribe((direction) => {\n        // Update sorter icon based on active direction.\n        if (direction === 'ascending') {\n          this.sorterIconComponent?.setInput('colorAsc', 'currentColor');\n          this.sorterIconComponent?.setInput('colorDesc', 'none');\n        } else if (direction === 'descending') {\n          this.sorterIconComponent?.setInput('colorAsc', 'none');\n          this.sorterIconComponent?.setInput('colorDesc', 'currentColor');\n        } else {\n          this.sorterIconComponent?.setInput('colorAsc', 'currentColor');\n          this.sorterIconComponent?.setInput('colorDesc', 'currentColor');\n        }\n      });\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['sortable']) {\n      const sortable = changes['sortable'].currentValue;\n      sortable ? this.appendElement() : this.removeElement();\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.removeElement();\n    this.destroy$.next(true);\n    this.destroy$.complete();\n  }\n\n  @HostListener('click')\n  protected onClick() {\n    if (!this.sortable) return;\n    this.direction$.next(this.nextDirection(this.direction$.value));\n    this.table?.['_sortChange'].emit({\n      activeSorter: {\n        column: this.sortable,\n        direction: this.direction$.value,\n      },\n    });\n  }\n\n  private appendElement() {\n    if (this.sorterIconComponent) return;\n    this.sorterIconComponent = this.createSorterIconComponent();\n    const cell = this.elementRef.nativeElement as HTMLTableCellElement;\n    cell.appendChild(this.sorterIconComponent.location.nativeElement);\n    cell.classList.add('d-table-th-with-sorter');\n  }\n\n  private removeElement() {\n    this.sorterIconComponent?.destroy();\n    this.sorterIconComponent = undefined;\n    const cell = this.elementRef.nativeElement as HTMLTableCellElement;\n    cell.classList.remove('d-table-th-with-sorter');\n  }\n\n  private createSorterIconComponent() {\n    const component = createComponent(DokuSorterIcon, { environmentInjector: this.envInjector });\n    (component.location.nativeElement as HTMLElement).className = 'd-table-sorter-icon';\n    this.appRef.attachView(component.hostView);\n    return component;\n  }\n\n  private nextDirection(\n    currentDirection: DokuActiveSorter['direction']\n  ): DokuActiveSorter['direction'] {\n    const flows: DokuActiveSorter['direction'][] = ['', 'ascending', 'descending'];\n    const flowIndex = flows.findIndex((flow) => flow === currentDirection);\n    let nextIndex: number = flowIndex + 1;\n    if (flowIndex < 0 || flowIndex >= flows.length - 1) nextIndex = 0;\n    return flows[nextIndex];\n  }\n}\n","import {\n  AfterViewInit,\n  Directive,\n  ElementRef,\n  HostBinding,\n  Inject,\n  Input,\n  NgZone,\n  OnChanges,\n  OnDestroy,\n  Optional,\n  Renderer2,\n  SimpleChanges,\n} from '@angular/core';\nimport { ReplaySubject, filter, fromEvent, startWith, takeUntil } from 'rxjs';\nimport { DokuTable } from './table.directive';\n\nexport enum DokuStickyColumnPosition {\n  Left = 'left',\n  Right = 'right',\n}\n\n@Directive({\n  selector: 'th[doku-sticky-column], td[doku-sticky-column]',\n  exportAs: 'dokuStickyColumn',\n  standalone: true,\n})\nexport class DokuTableStickyColumn implements OnChanges, OnDestroy, AfterViewInit {\n  @Input('doku-sticky-column') position?: DokuStickyColumnPosition;\n\n  private observer?: ResizeObserver;\n  private destroy$ = new ReplaySubject();\n\n  constructor(\n    private elementRef: ElementRef,\n    private renderer: Renderer2,\n    private ngZone: NgZone,\n    @Optional() @Inject(DokuTable) private dokuTable?: DokuTable\n  ) {}\n\n  protected get element(): HTMLElement {\n    return this.elementRef.nativeElement;\n  }\n\n  @HostBinding('class.d-table-sticky-column-left')\n  protected get isStickyLeft(): boolean {\n    return this.position === DokuStickyColumnPosition.Left;\n  }\n\n  @HostBinding('class.d-table-sticky-column-right')\n  protected get isStickyRight(): boolean {\n    return this.position === DokuStickyColumnPosition.Right;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['position']?.previousValue !== changes['position']?.currentValue) {\n      this.ngZone.runOutsideAngular(() => {\n        this.observer?.disconnect();\n\n        setTimeout(() => {\n          if (this.isStickyRight) this.handleDynamicStyleRight();\n          if (this.isStickyLeft) this.handleDynamicStyleLeft();\n        }, 0);\n      });\n    }\n  }\n\n  ngAfterViewInit(): void {\n    // Giving delay to detect table container being initialized.\n    setTimeout(() => {\n      this.watchTableContainerScrollEvent();\n    }, 0);\n  }\n\n  ngOnDestroy(): void {\n    this.observer?.disconnect();\n    this.destroy$.next(true);\n    this.destroy$.complete();\n  }\n\n  private handleDynamicStyleRight() {\n    // Get next sticky column\n    const nextStickyColumn = this.element.nextElementSibling;\n    if (!nextStickyColumn) return;\n    if (!nextStickyColumn.classList.contains('d-table-sticky-column-right')) return;\n\n    this.observer = new ResizeObserver(() => {\n      // If has next sticky column, get the width of the column.\n      const nextStickyColumnWidth = this.getSiblingElementClientWidth(nextStickyColumn, 'next');\n\n      // Set the start `right` point of the current sticky column\n      // from the next sticky column width.\n      const rightValue = nextStickyColumnWidth + 'px';\n      this.renderer.setStyle(this.element, 'right', rightValue);\n    });\n\n    if (this.element.parentElement) {\n      this.observer.observe(this.element.parentElement);\n    }\n  }\n\n  private handleDynamicStyleLeft() {\n    // Get previous sticky column\n    const prevStickyColumn = this.element.previousElementSibling;\n    if (!prevStickyColumn) return;\n    // if (prevStickyColumn.classList.contains('d-table-sticky-column-left')) return;\n\n    this.observer = new ResizeObserver(() => {\n      // If has previous sticky column, get the width of the column.\n      const prevStickyColumnWidth = this.getSiblingElementClientWidth(prevStickyColumn, 'previous');\n\n      // Set the start `left` point of the current sticky column\n      // from the prev sticky column width.\n      const leftValue = prevStickyColumnWidth + 'px';\n      this.renderer.setStyle(this.element, 'left', leftValue);\n    });\n\n    if (this.element.parentElement) {\n      this.observer.observe(this.element.parentElement);\n    }\n  }\n\n  private getSiblingElementClientWidth(\n    nextElement: Element,\n    siblingPosition: 'previous' | 'next'\n  ): number {\n    const sibling =\n      siblingPosition === 'previous'\n        ? (nextElement.previousElementSibling as Element)\n        : (nextElement.nextElementSibling as Element);\n\n    if (sibling) {\n      const siblingClientWidth = this.getSiblingElementClientWidth(sibling, siblingPosition);\n      return nextElement.getBoundingClientRect().width + siblingClientWidth;\n    }\n\n    return nextElement.getBoundingClientRect().width;\n  }\n\n  private watchTableContainerScrollEvent() {\n    this.ngZone.runOutsideAngular(() => {\n      const tableElement: HTMLTableElement = this.dokuTable?.['elementRef'].nativeElement;\n      const tableContainerElement = this.dokuTable?.['containerElement'];\n\n      if (!tableContainerElement || !tableElement) return;\n\n      fromEvent(tableContainerElement, 'scroll')\n        .pipe(\n          startWith(new Event('scroll')),\n          filter(() => !!this.position),\n          takeUntil(this.destroy$)\n        )\n        .subscribe(() => {\n          this.handleStickyLeftShadow(tableElement, tableContainerElement);\n          this.handleStickyRightShadow(tableElement, tableContainerElement);\n        });\n    });\n  }\n\n  private handleStickyLeftShadow(_: HTMLTableElement, tableContainerElement: HTMLElement) {\n    if (!this.isLastStickyColumn()) return;\n    if (this.position !== DokuStickyColumnPosition.Left) return;\n\n    tableContainerElement.scrollLeft > 0\n      ? this.toggleShadowClass('add')\n      : this.toggleShadowClass('remove');\n  }\n\n  private handleStickyRightShadow(\n    tableElement: HTMLTableElement,\n    tableContainerElement: HTMLElement\n  ) {\n    if (!this.isLastStickyColumn()) return;\n    if (this.position !== DokuStickyColumnPosition.Right) return;\n\n    // Don't need to provide the shadow because the table element has no more columns to scroll.\n    if (tableElement.clientWidth < tableContainerElement.clientWidth) return;\n\n    const offsetWidth = tableElement.clientWidth - tableContainerElement.clientWidth;\n    const offsetScroll = offsetWidth - tableContainerElement.scrollLeft;\n\n    // Giving check offset to 0.5 because the client width value is rounded to nearest integer.\n    offsetScroll > 0.5 ? this.toggleShadowClass('add') : this.toggleShadowClass('remove');\n  }\n\n  /**\n   * Check whether this column is the last sticky column.\n   *\n   * For the `left` position, will check if no sticky column after.\n   * For the `right` position, will check if no sticky column before.\n   */\n  private isLastStickyColumn(): boolean {\n    if (this.isStickyLeft) {\n      const nextElement = this.element.nextElementSibling;\n      if (nextElement?.classList.contains('d-table-sticky-column-left')) return false;\n      return true;\n    }\n\n    if (this.isStickyRight) {\n      const prevElement = this.element.previousElementSibling;\n      if (prevElement?.classList.contains('d-table-sticky-column-right')) return false;\n      return true;\n    }\n\n    return false;\n  }\n\n  private toggleShadowClass(type: 'add' | 'remove'): void {\n    if (type === 'add') {\n      this.renderer.addClass(this.element, 'd-table-sticky-column-shadow');\n    }\n\n    if (type === 'remove') {\n      this.renderer.removeClass(this.element, 'd-table-sticky-column-shadow');\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { DokuTableSortable } from './table-sortable.directive';\nimport { DokuTableStickyColumn } from './table-sticky-column.directive';\nimport { DokuTable } from './table.directive';\n\n@NgModule({\n  imports: [DokuTable, DokuTableSortable, DokuTableStickyColumn],\n  exports: [DokuTable, DokuTableSortable, DokuTableStickyColumn],\n})\nexport class DokuTableModule {}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n  selector: 'ng-template[doku-tab-content]',\n  exportAs: 'dokuTabContent',\n  standalone: true,\n})\nexport class DokuTabContent {\n  constructor(public templateRef: TemplateRef<any>) {}\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n  selector: 'ng-template[doku-tab-label]',\n  exportAs: 'dokuTabLabel',\n  standalone: true,\n})\nexport class DokuTabLabel {\n  constructor(public templateRef: TemplateRef<any>) {}\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const DOKU_TABS = new InjectionToken('DOKU_TABS');\nexport const DOKU_TAB = new InjectionToken('DOKU_TAB');\n","import { ApplicationRef, Renderer2 } from '@angular/core';\nimport { DokuTabContent } from './tab-content.directive';\nimport { DokuTabLabel } from './tab-label.directive';\n\nexport class ViewElement {\n  static createTabsHeader(props: { renderer: Renderer2 }) {\n    const element: HTMLDivElement = props.renderer.createElement('div');\n    props.renderer.addClass(element, 'd-tabs-header');\n    return element;\n  }\n\n  static createTabsBody(props: { renderer: Renderer2 }) {\n    const element: HTMLDivElement = props.renderer.createElement('div');\n    props.renderer.addClass(element, 'd-tabs-body');\n    return element;\n  }\n\n  static createTabLabel(props: { renderer: Renderer2 }) {\n    const element: HTMLDivElement = props.renderer.createElement('div');\n    props.renderer.addClass(element, 'd-tab-label');\n    return element;\n  }\n\n  static createTabContent(props: { renderer: Renderer2 }) {\n    const element: HTMLDivElement = props.renderer.createElement('div');\n    props.renderer.addClass(element, 'd-tab-content');\n    return element;\n  }\n\n  static appendLabelToTabsHeader(props: {\n    headerElement: HTMLDivElement;\n    labelElement: HTMLDivElement;\n    labelTemplate: DokuTabLabel;\n    applicationRef: ApplicationRef;\n    renderer: Renderer2;\n  }) {\n    const viewRef = props.labelTemplate.templateRef.createEmbeddedView(null);\n    props.applicationRef.attachView(viewRef);\n    viewRef.rootNodes.forEach((node) => props.renderer.appendChild(props.labelElement, node));\n    props.renderer.appendChild(props.headerElement, props.labelElement);\n    return viewRef;\n  }\n\n  static appendContentToTabsBody(props: {\n    bodyElement: HTMLDivElement;\n    contentElement: HTMLDivElement;\n    contentTemplate: DokuTabContent;\n    applicationRef: ApplicationRef;\n    renderer: Renderer2;\n    lazyLoad?: boolean;\n  }) {\n    props.renderer.appendChild(props.bodyElement, props.contentElement);\n    if (props.lazyLoad) return;\n\n    const viewRef = this.createContentViewRefAndAppend({\n      applicationRef: props.applicationRef,\n      renderer: props.renderer,\n      contentElement: props.contentElement,\n      contentTemplate: props.contentTemplate,\n    });\n    return viewRef;\n  }\n\n  static createContentViewRefAndAppend(props: {\n    applicationRef: ApplicationRef;\n    renderer: Renderer2;\n    contentTemplate: DokuTabContent;\n    contentElement: HTMLDivElement;\n  }) {\n    const viewRef = props.contentTemplate.templateRef.createEmbeddedView(null);\n    props.applicationRef.attachView(viewRef);\n    viewRef.rootNodes.forEach((node) => props.renderer.appendChild(props.contentElement, node));\n    return viewRef;\n  }\n}\n","import { CommonModule, NgClass } from '@angular/common';\nimport {\n  AfterContentInit,\n  ApplicationRef,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChildren,\n  ElementRef,\n  EventEmitter,\n  HostBinding,\n  Input,\n  OnDestroy,\n  Output,\n  QueryList,\n  Renderer2,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { ReplaySubject, map, pairwise, shareReplay, startWith, takeUntil } from 'rxjs';\nimport { DokuTab } from './tab.component';\nimport { DOKU_TAB, DOKU_TABS } from './token';\nimport { ViewElement } from './view-element';\n\n@Component({\n  selector: 'doku-tabs',\n  exportAs: 'dokuTabs',\n  standalone: true,\n  imports: [CommonModule],\n  template: '',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: DOKU_TABS,\n      useExisting: DokuTabs,\n    },\n  ],\n})\nexport class DokuTabs implements AfterContentInit, OnDestroy {\n  /**\n   * Initial active id of the tab.\n   * Default to first tab.\n   */\n  @Input() activeId = '';\n\n  /**\n   * Whether to use content card styles for the tab body.\n   *\n   * @default false\n   */\n  @HostBinding('class.d-tabs-content-card')\n  @Input()\n  useContentCard = false;\n\n  /**\n   * Listen to active tab change.\n   */\n  @Output() activeTabChange = new EventEmitter<DokuTab>();\n\n  @HostBinding('class')\n  protected readonly classes: NgClass['ngClass'] = 'd-tabs';\n\n  @ContentChildren(DOKU_TAB, { descendants: false }) private tabItems?: QueryList<DokuTab>;\n\n  private tabsHeaderElement?: HTMLDivElement;\n  private tabsBodyElement?: HTMLDivElement;\n\n  private destroy$ = new ReplaySubject();\n\n  /**\n   * It used in tab component.\n   */\n  protected tabChangeForChild$ = this.activeTabChange\n    .asObservable()\n    .pipe(shareReplay(), takeUntil(this.destroy$));\n\n  constructor(\n    private elementRef: ElementRef,\n    private renderer: Renderer2,\n    private appRef: ApplicationRef\n  ) {}\n\n  ngAfterContentInit(): void {\n    // Create tabs header and body, then append them.\n    this.tabsHeaderElement = ViewElement.createTabsHeader({ renderer: this.renderer });\n    this.tabsBodyElement = ViewElement.createTabsBody({ renderer: this.renderer });\n    (this.elementRef.nativeElement as HTMLElement).append(\n      this.tabsHeaderElement,\n      this.tabsBodyElement\n    );\n\n    // Set initial active tab\n    const activeId = this.tabItems?.first ? this.tabItems.first.id : null;\n    if (!this.isValidActiveId(this.activeId) && activeId) {\n      this.updateActiveId(activeId);\n    }\n\n    this.tabItems?.changes\n      .pipe(\n        startWith(this.tabItems),\n        map((items: QueryList<DokuTab>) => items.toArray()),\n        startWith([]),\n        pairwise(),\n        takeUntil(this.destroy$)\n      )\n      .subscribe(([prevItems, currentItems]) => {\n        this.updateTabs(prevItems, currentItems);\n        this.notifyTabChange(this.activeId);\n      });\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next(true);\n    this.destroy$.complete();\n  }\n\n  /**\n   * Change the active tab.\n   * @param id Tab id.\n   */\n  changeActiveTab(id: string) {\n    this.updateActiveId(id, { emitTabChange: true });\n  }\n\n  private updateActiveId(id: string, options?: { emitTabChange?: boolean }) {\n    if (this.activeId === id) return;\n    this.activeId = id;\n    if (options?.emitTabChange) this.notifyTabChange(id);\n  }\n\n  private notifyTabChange(itemId: string) {\n    const tab = this.getTabById(itemId);\n    if (!tab) return;\n    this.activeTabChange.emit(tab);\n  }\n\n  private getTabById(id: string): DokuTab | null {\n    return this.tabItems?.find((tab) => tab.id === id) || null;\n  }\n\n  private isValidActiveId(id: string): boolean {\n    return !!this.tabItems?.some((tab) => tab.id === id);\n  }\n\n  /**\n   * Update tab elements when adding more or removing tab items.\n   */\n  private updateTabs(prevItems: DokuTab[], currentItems: DokuTab[]) {\n    const removedItems = prevItems.filter(\n      (prevItem) => !currentItems.some((currentItem) => prevItem.id === currentItem.id)\n    );\n    const newItems = currentItems.filter(\n      (currentItem) => !prevItems.some((prevItem) => currentItem.id === prevItem.id)\n    );\n\n    removedItems.forEach((item) => {\n      this.removeTabLabel(item);\n      this.removeTabContent(item);\n    });\n\n    newItems.forEach((item) => {\n      this.addTabLabel(item);\n      this.addTabContent(item);\n    });\n  }\n\n  private addTabLabel(item: DokuTab) {\n    if (!this.tabsHeaderElement || !item['labelTemplate']) return;\n    if (item['labelElement'] || item['labelViewRef']) return;\n\n    item['labelElement'] = ViewElement.createTabLabel({ renderer: this.renderer });\n    item['labelViewRef'] = ViewElement.appendLabelToTabsHeader({\n      applicationRef: this.appRef,\n      renderer: this.renderer,\n      headerElement: this.tabsHeaderElement,\n      labelElement: item['labelElement'],\n      labelTemplate: item['labelTemplate'],\n    });\n  }\n\n  private removeTabLabel(item: DokuTab) {\n    item['labelElement']?.remove();\n    item['labelViewRef']?.destroy();\n  }\n\n  private addTabContent(item: DokuTab) {\n    if (!this.tabsBodyElement || !item['contentTemplate']) return;\n    if (item['contentElement'] || item['contentViewRef']) return;\n\n    item['contentElement'] = ViewElement.createTabContent({ renderer: this.renderer });\n    item['contentViewRef'] = ViewElement.appendContentToTabsBody({\n      applicationRef: this.appRef,\n      renderer: this.renderer,\n      bodyElement: this.tabsBodyElement,\n      contentElement: item['contentElement'],\n      contentTemplate: item['contentTemplate'],\n      lazyLoad: item.lazyLoad,\n    });\n  }\n\n  private removeTabContent(item: DokuTab) {\n    item['contentElement']?.remove();\n    item['contentViewRef']?.destroy();\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterContentInit,\n  ApplicationRef,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChild,\n  EmbeddedViewRef,\n  Inject,\n  Input,\n  OnDestroy,\n  Renderer2,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { ReplaySubject, delay, filter, fromEvent, of, switchMap, takeUntil } from 'rxjs';\nimport { DokuTabContent } from './tab-content.directive';\nimport { DokuTabLabel } from './tab-label.directive';\nimport { DokuTabs } from './tabs.component';\nimport { DOKU_TAB, DOKU_TABS } from './token';\nimport { ViewElement } from './view-element';\n\nlet nextId = 1;\n\n@Component({\n  selector: 'doku-tab',\n  exportAs: 'dokuTab',\n  standalone: true,\n  imports: [CommonModule],\n  template: '',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: DOKU_TAB,\n      useExisting: DokuTab,\n    },\n  ],\n})\nexport class DokuTab implements OnDestroy, AfterContentInit {\n  /**\n   * Unique id of the tab.\n   * Default value is auto-generated.\n   *\n   * @default 'd-tab-[nextId]''\n   */\n  @Input() id = `d-tab-${nextId++}`;\n\n  /**\n   * Whether the tab is disabled.\n   *\n   * The tab content is not going to be loaded on disabled tab.\n   *\n   * @default false\n   */\n  @Input() disabled = false;\n\n  /**\n   * Whether the tab content is lazy loaded which means\n   * the content will be loaded when the tab is active and\n   * destroyed when away from the tab.\n   *\n   * @default false\n   */\n  @Input() lazyLoad = false;\n\n  protected labelElement?: HTMLDivElement;\n  protected labelViewRef?: EmbeddedViewRef<any>;\n  protected contentElement?: HTMLDivElement;\n  protected contentViewRef?: EmbeddedViewRef<any>;\n\n  @ContentChild(DokuTabLabel, { descendants: false }) protected labelTemplate?: DokuTabLabel;\n  @ContentChild(DokuTabContent, { descendants: false }) protected contentTemplate?: DokuTabContent;\n\n  private destroy$ = new ReplaySubject();\n\n  constructor(\n    private appRef: ApplicationRef,\n    private renderer: Renderer2,\n    @Inject(DOKU_TABS) private tabs?: DokuTabs\n  ) {}\n\n  ngAfterContentInit(): void {\n    this.tabs?.['tabChangeForChild$'].pipe(takeUntil(this.destroy$)).subscribe((activeItem) => {\n      this.handleActiveState(activeItem);\n      this.handleDisabledState();\n      this.handleLazyLoaded(activeItem);\n    });\n\n    of(true)\n      .pipe(\n        delay(100),\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n        switchMap(() => fromEvent(this.labelElement!, 'click')),\n        filter(() => !this.disabled),\n        takeUntil(this.destroy$)\n      )\n      .subscribe(() => {\n        this.tabs?.changeActiveTab(this.id);\n      });\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next(true);\n    this.destroy$.complete();\n  }\n\n  private handleActiveState(activeItem: DokuTab) {\n    if (!this.labelElement || !this.contentElement) return;\n\n    if (activeItem?.id === this.id) {\n      this.renderer.addClass(this.labelElement, 'active');\n      this.renderer.addClass(this.contentElement, 'active');\n    } else {\n      this.renderer.removeClass(this.labelElement, 'active');\n      this.renderer.removeClass(this.contentElement, 'active');\n    }\n  }\n\n  private handleDisabledState() {\n    if (!this.labelElement || !this.contentElement) return;\n\n    if (this.disabled) {\n      this.renderer.addClass(this.labelElement, 'disabled');\n      this.renderer.addClass(this.contentElement, 'disabled');\n    } else {\n      this.renderer.removeClass(this.labelElement, 'disabled');\n      this.renderer.removeClass(this.contentElement, 'disabled');\n    }\n  }\n\n  private handleLazyLoaded(activeItem: DokuTab) {\n    if (!this.lazyLoad) return;\n    if (activeItem?.id === this.id && this.contentTemplate && this.contentElement) {\n      this.contentViewRef = ViewElement.createContentViewRefAndAppend({\n        applicationRef: this.appRef,\n        renderer: this.renderer,\n        contentElement: this.contentElement,\n        contentTemplate: this.contentTemplate,\n      });\n    } else {\n      this.contentViewRef?.destroy();\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { DokuTabContent } from './tab-content.directive';\nimport { DokuTabLabel } from './tab-label.directive';\nimport { DokuTab } from './tab.component';\nimport { DokuTabs } from './tabs.component';\n\n@NgModule({\n  imports: [DokuTabs, DokuTab, DokuTabLabel, DokuTabContent],\n  exports: [DokuTabs, DokuTab, DokuTabLabel, DokuTabContent],\n})\nexport class DokuTabsModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-timeline-date-time',\n  exportAs: 'dokuTimelineDateTime',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './timeline-date-time.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuTimelineDateTime {\n  @HostBinding('class')\n  protected readonly classes = 'd-timeline-time';\n}\n","<ng-content></ng-content>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-timeline-description',\n  exportAs: 'dokuTimelineDescription',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './timeline-description.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuTimelineDescription {\n  @HostBinding('class')\n  protected readonly classes = 'd-timeline-desc';\n}\n","<ng-content></ng-content>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-timeline-item',\n  exportAs: 'dokuTimelineItem',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './timeline-item.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuTimelineItem {\n  @HostBinding('class')\n  protected readonly classes = 'd-timeline-item';\n}\n","<div class=\"d-timeline-content\">\n  <div class=\"d-timeline-content-helper\">\n    <ng-content select=\"doku-timeline-title\"></ng-content>\n    <ng-content select=\"doku-timeline-description\"></ng-content>\n  </div>\n  <ng-content select=\"doku-timeline-date-time\"></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-timeline-title',\n  exportAs: 'dokuTimelineTitle',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './timeline-title.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuTimelineTitle {\n  @HostBinding('class')\n  protected readonly classes = 'd-timeline-title';\n}\n","<ng-content></ng-content>\n","import { CommonModule, NgClass } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChild,\n  ContentChildren,\n  ElementRef,\n  HostBinding,\n  Input,\n  OnChanges,\n  QueryList,\n  SimpleChanges,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { DokuTimelineDateTime } from './timeline-date-time.component';\nimport { DokuTimelineItem } from './timeline-item.component';\n\n@Component({\n  selector: 'doku-timeline',\n  exportAs: 'dokuTimeline',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './timeline.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuTimeline implements AfterViewInit, OnChanges {\n  @ContentChild(DokuTimelineDateTime) dateTimeRef?: ElementRef<DokuTimelineDateTime>;\n  @ContentChildren(DokuTimelineItem, { read: ElementRef }) timelineItems?: QueryList<ElementRef>;\n\n  /**\n   * The index of the last active timeline item.\n   */\n  @Input()\n  activeIndex?: number;\n\n  /**\n   * The orientation of the timeline.\n   * @default `horizontal`\n   */\n  @Input()\n  orientation: 'horizontal' | 'vertical' = 'horizontal';\n\n  @HostBinding('class')\n  protected get classes(): NgClass['ngClass'] {\n    return ['d-timeline', `d-timeline-${this.orientation}`];\n  }\n\n  @HostBinding('class.has-date-time')\n  protected get hasDateTime(): boolean {\n    return !!this.dateTimeRef;\n  }\n\n  ngAfterViewInit() {\n    this._toggleActiveItemColor();\n  }\n\n  ngOnChanges({ activeIndex }: SimpleChanges) {\n    if (activeIndex?.currentValue !== activeIndex?.previousValue) {\n      this._toggleActiveItemColor();\n    }\n  }\n\n  /**\n   * Toggle each timeline item color to active from the first to the last active item\n   * that represented by the active index that represent.\n   */\n  private _toggleActiveItemColor(): void {\n    if (!this.timelineItems) return;\n\n    this.timelineItems.forEach((itemRef: ElementRef, idx) => {\n      if (this.activeIndex === undefined || this.activeIndex < -1) {\n        return;\n      }\n\n      const itemEl = itemRef.nativeElement as HTMLElement;\n      const isActive = idx <= this.activeIndex;\n      const isLastActive = idx === this.activeIndex;\n\n      if (isLastActive && this.orientation === 'horizontal') {\n        itemEl.classList.remove('is-active');\n        itemEl.classList.add('is-active-last');\n      } else if (isActive) {\n        itemEl.classList.remove('is-active-last');\n        itemEl.classList.add('is-active');\n      } else {\n        itemEl.classList.remove('is-active-last');\n        itemEl.classList.remove('is-active');\n      }\n    });\n  }\n}\n","<ol class=\"d-timeline-list\">\n  <ng-content></ng-content>\n</ol>\n","import { NgModule } from '@angular/core';\nimport { DokuTimelineDateTime } from './timeline-date-time.component';\nimport { DokuTimelineDescription } from './timeline-description.component';\nimport { DokuTimelineItem } from './timeline-item.component';\nimport { DokuTimelineTitle } from './timeline-title.component';\nimport { DokuTimeline } from './timeline.component';\n\n@NgModule({\n  imports: [\n    DokuTimeline,\n    DokuTimelineItem,\n    DokuTimelineTitle,\n    DokuTimelineDescription,\n    DokuTimelineDateTime,\n  ],\n  exports: [\n    DokuTimeline,\n    DokuTimelineItem,\n    DokuTimelineTitle,\n    DokuTimelineDescription,\n    DokuTimelineDateTime,\n  ],\n})\nexport class DokuTimelineModule {}\n","import { CommonModule, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-toggle-description',\n  exportAs: 'dokuToggleDescription',\n  standalone: true,\n  imports: [CommonModule],\n  template: `<ng-content></ng-content>`,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuToggleDescription {\n  @HostBinding('class')\n  protected readonly classes: NgClass['ngClass'] = 'd-toggle-description';\n}\n","import { CommonModule, NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  HostBinding,\n  Input,\n  Optional,\n  Output,\n  Self,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\n\nlet nextId = 1;\n\n@Component({\n  selector: 'doku-toggle',\n  exportAs: 'dokuToggle',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './toggle.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuToggle implements ControlValueAccessor {\n  /**\n   * Unique id of the toggle.\n   * Default value is auto-generated.\n   *\n   * @default 'd-toggle-[nextId]'\n   */\n  @Input() id = `d-toggle-${nextId++}`;\n\n  /**\n   * Whether the toggle is checked.\n   *\n   * If using reactive forms or template-driven forms, the value will be replaced.\n   *\n   * @default false\n   */\n  @Input() checked = false;\n\n  /**\n   * Whether the toggle is disabled.\n   *\n   * If using reactive forms, the value will be replaced.\n   * Use form control's method to disable the toggle.\n   *\n   * @default false;\n   */\n  @Input() disabled = false;\n\n  /**\n   * Vertical alignment of the toggle.\n   *\n   * @default 'center'\n   */\n  @Input() verticalAlignment: 'top' | 'center' | 'bottom' = 'center';\n\n  @Output() checkedChange = new EventEmitter<boolean>();\n\n  constructor(@Optional() @Self() private ngControl: NgControl) {\n    if (this.ngControl !== null) {\n      this.ngControl.valueAccessor = this;\n    }\n  }\n\n  @HostBinding('class')\n  protected get classes(): NgClass['ngClass'] {\n    return ['d-toggle-container', `d-toggle-v-alignment-${this.verticalAlignment}`];\n  }\n\n  onChange?: (_: any) => void;\n  onTouched?: () => void;\n\n  writeValue(value: boolean): void {\n    this.checked = value;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  registerOnChange(fn: (_: any) => unknown): void {\n    this.onChange = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n  }\n\n  protected onToggleChange(ev: Event): void {\n    const checked = (ev.target as HTMLInputElement).checked;\n    this.checkedChange.emit(checked);\n    this.onChange?.(checked);\n    this.onTouched?.();\n  }\n}\n","<input\n  [id]=\"id\"\n  type=\"checkbox\"\n  class=\"d-toggle\"\n  [checked]=\"checked\"\n  [disabled]=\"disabled\"\n  (change)=\"onToggleChange($event)\"\n/>\n<div class=\"d-toggle-content\">\n  <label [for]=\"id\"><ng-content></ng-content></label>\n  <ng-content select=\"doku-toggle-description\"></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { DokuToggleDescription } from './toggle-description.component';\nimport { DokuToggle } from './toggle.component';\n\n@NgModule({\n  imports: [DokuToggle, DokuToggleDescription],\n  exports: [DokuToggle, DokuToggleDescription],\n})\nexport class DokuToggleModule {}\n","import { DOCUMENT } from '@angular/common';\nimport {\n  ApplicationRef,\n  Directive,\n  ElementRef,\n  EmbeddedViewRef,\n  Inject,\n  Input,\n  NgZone,\n  OnDestroy,\n  OnInit,\n  Renderer2,\n  TemplateRef,\n} from '@angular/core';\nimport { arrow, autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom';\nimport { ReplaySubject, delay, fromEvent, iif, merge, of, switchMap, takeUntil } from 'rxjs';\nimport { DokuTooltipPlacement } from './tooltip.interface';\n\n@Directive({\n  selector: '[doku-tooltip]',\n  exportAs: 'dokuTooltip',\n  standalone: true,\n})\nexport class DokuTooltip implements OnInit, OnDestroy {\n  /**\n   * Content of the tooltip.\n   * It can be a string or a template for more customization.\n   *\n   * @default ''\n   */\n  @Input('doku-tooltip') content: string | TemplateRef<unknown> = '';\n\n  /**\n   * The color of the tooltip.\n   * Either `dark` or `light`.\n   * @default 'dark'\n   */\n  @Input('tooltipColor') color: 'dark' | 'light' = 'dark';\n\n  /**\n   * The placement of the tooltip.\n   * @default 'top'\n   */\n  @Input('tooltipPlacement') placement: DokuTooltipPlacement = 'top';\n\n  /**\n   * Whether tooltip should stay when hovering on its element.\n   * @default false\n   */\n  @Input('tooltipStayOnHover') stayOnHover = false;\n\n  /**\n   * Whether to disable the tooltip.\n   * Disabled tooltip can't be opened.\n   * @default false\n   */\n  @Input('tooltipDisabled') disabled = false;\n\n  private isShown = false;\n\n  private tooltipElement?: HTMLElement;\n  private tooltipContentElement?: HTMLElement;\n  private tooltipArrowElement?: HTMLElement;\n  private viewRef?: EmbeddedViewRef<unknown>;\n\n  private cleanup?: () => void;\n  private destroy$ = new ReplaySubject();\n\n  constructor(\n    private renderer: Renderer2,\n    @Inject(DOCUMENT) private document: Document,\n    private ngZone: NgZone,\n    private elementRef: ElementRef,\n    private appRef: ApplicationRef\n  ) {}\n\n  protected get classes(): string[] {\n    return ['d-tooltip', 'd-text-body-s', `d-tooltip-${this.color}`];\n  }\n\n  ngOnInit(): void {\n    this.handleEventsShow();\n    this.handleEventsHide();\n\n    this.tooltipElement = this.createTooltipElement();\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next(1);\n    this.destroy$.complete();\n    this.hide();\n    this.tooltipElement = undefined;\n    this.tooltipContentElement = undefined;\n    this.tooltipArrowElement = undefined;\n  }\n\n  /**\n   * Show tooltip programmatically.\n   */\n  show() {\n    if (this.disabled) return;\n    if (this.isShown || !this.tooltipElement) return;\n    this.isShown = true;\n    this.setTooltipContent(this.content);\n    this.document.body.appendChild(this.tooltipElement);\n    this.doAutoUpdatePosition();\n  }\n\n  /**\n   * Hide tooltip programmatically.\n   */\n  hide() {\n    if (!this.isShown || !this.tooltipElement) return;\n    this.isShown = false;\n    this.document.body.removeChild(this.tooltipElement);\n    this.cleanup?.();\n    this.viewRef?.destroy();\n    this.elementRef.nativeElement.blur();\n  }\n\n  /**\n   * Toggle tooltip programmatically.\n   */\n  toggle() {\n    this.isShown ? this.hide() : this.show();\n  }\n\n  /**\n   * Update the content of the tooltip with new one.\n   */\n  updateContent(content: string | TemplateRef<unknown>) {\n    this.setTooltipContent(content);\n  }\n\n  private createTooltipElement() {\n    const element: HTMLDivElement = this.renderer.createElement('div');\n    element.className = this.classes.join(' ');\n\n    this.tooltipContentElement = this.createTooltipContentElement();\n    element.appendChild(this.tooltipContentElement);\n\n    this.tooltipArrowElement = this.createArrowElement();\n    element.appendChild(this.tooltipArrowElement);\n\n    return element;\n  }\n\n  private createTooltipContentElement() {\n    return this.renderer.createElement('div') as HTMLDivElement;\n  }\n\n  private createArrowElement() {\n    const element: HTMLDivElement = this.renderer.createElement('div');\n    element.className = 'd-tooltip-arrow';\n    return element;\n  }\n\n  private setTooltipContent(content: string | TemplateRef<unknown>) {\n    if (!this.tooltipContentElement) return;\n    this.tooltipContentElement.replaceChildren();\n\n    if (content instanceof TemplateRef) {\n      this.viewRef?.destroy();\n      this.viewRef = content.createEmbeddedView({});\n      this.appRef.attachView(this.viewRef);\n      this.tooltipContentElement.append(...this.viewRef.rootNodes);\n      this.viewRef.detectChanges();\n    }\n\n    if (typeof content === 'string') {\n      this.tooltipContentElement.appendChild(this.document.createTextNode(content));\n    }\n  }\n\n  private updatePosition() {\n    if (!this.elementRef.nativeElement || !this.tooltipElement || !this.tooltipArrowElement) return;\n    computePosition(this.elementRef.nativeElement, this.tooltipElement, {\n      placement: this.placement,\n      middleware: [\n        offset(6),\n        flip(),\n        shift({ padding: 8 }),\n        arrow({ element: this.tooltipArrowElement }),\n      ],\n    }).then(({ x, y, placement, middlewareData }) => {\n      if (!this.tooltipElement) return;\n      Object.assign(this.tooltipElement.style, { top: `${y}px`, left: `${x}px` });\n\n      // Positioning the arrow element\n      if (middlewareData.arrow && this.tooltipArrowElement) {\n        const { x: arrowX, y: arrowY } = middlewareData.arrow;\n        const staticSide = {\n          top: 'bottom',\n          right: 'left',\n          bottom: 'top',\n          left: 'right',\n        }[placement.split('-')[0]] as string;\n\n        Object.assign(this.tooltipArrowElement.style, {\n          left: arrowX != null || arrowX != undefined ? `${arrowX}px` : '',\n          top: arrowY != null || arrowY != undefined ? `${arrowY}px` : '',\n          right: '',\n          bottom: '',\n          [staticSide]: '-4px',\n        });\n      }\n    });\n  }\n\n  private doAutoUpdatePosition() {\n    this.ngZone.runOutsideAngular(() => {\n      if (!this.elementRef.nativeElement || !this.tooltipElement) return;\n      this.cleanup = autoUpdate(this.elementRef.nativeElement, this.tooltipElement, () => {\n        this.updatePosition();\n      });\n    });\n  }\n\n  private handleEventsShow() {\n    this.ngZone.runOutsideAngular(() => {\n      merge(\n        fromEvent(this.elementRef.nativeElement as HTMLElement, 'mouseenter'),\n        fromEvent(this.elementRef.nativeElement as HTMLElement, 'focus')\n      )\n        .pipe(takeUntil(this.destroy$))\n        .subscribe(() => {\n          this.show();\n        });\n    });\n  }\n\n  private handleEventsHide() {\n    this.ngZone.runOutsideAngular(() => {\n      merge(\n        fromEvent(this.elementRef.nativeElement as HTMLElement, 'mouseleave'),\n        fromEvent(this.elementRef.nativeElement as HTMLElement, 'blur')\n      )\n        .pipe(\n          switchMap((event) =>\n            this.stayOnHover ? this.handleHoveringTooltipElement(event) : of(event)\n          ),\n          takeUntil(this.destroy$)\n        )\n        .subscribe(() => {\n          this.hide();\n        });\n    });\n  }\n\n  private handleHoveringTooltipElement(event: Event) {\n    if (!this.tooltipElement) return of(event);\n    return of(event).pipe(\n      delay(50),\n      switchMap(() =>\n        iif(\n          () => !!this.tooltipElement?.matches(':hover'),\n          // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n          fromEvent(this.tooltipElement!, 'mouseleave'),\n          of(event)\n        )\n      )\n    );\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { DokuTooltip } from './tooltip.directive';\n\n@NgModule({\n  imports: [DokuTooltip],\n  exports: [DokuTooltip],\n})\nexport class DokuTooltipModule {}\n","export class DokuBackdropRef {\n  /**\n   * The element of the backdrop.\n   */\n  element?: HTMLDivElement;\n\n  /**\n   * Close active backdrop.\n   */\n  close() {\n    // Method will be assigned when backdrop opened.\n  }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { DokuBackdropRef } from './backdrop-ref';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class DokuBackdropService {\n  private backdrops: DokuBackdropRef[] = [];\n  private renderer: Renderer2;\n\n  constructor(\n    private rendererFactory: RendererFactory2,\n    @Inject(DOCUMENT) private document: Document\n  ) {\n    this.renderer = this.rendererFactory.createRenderer(null, null);\n  }\n\n  /**\n   * Open backdrop element.\n   */\n  open(): DokuBackdropRef {\n    const backdropElement = this.createBackdropElement();\n    this.renderer.appendChild(this.document.body, backdropElement);\n\n    const backdropRef = new DokuBackdropRef();\n    backdropRef.element = backdropElement;\n    backdropRef.close = () => this.close.bind(this)(backdropRef);\n\n    this.backdrops.push(backdropRef);\n    return backdropRef;\n  }\n\n  /**\n   * Close backdrop element by ref.\n   */\n  close(backdropRef: DokuBackdropRef): void {\n    if (backdropRef.element) this.document.body.removeChild(backdropRef.element);\n    this.backdrops = this.backdrops.filter((item) => item !== backdropRef);\n  }\n\n  /**\n   * Close all backdrops.\n   */\n  closeAll(): void {\n    this.backdrops.forEach((ref) => ref.close());\n  }\n\n  private createBackdropElement(): HTMLDivElement {\n    const el = this.renderer.createElement('div');\n    this.renderer.addClass(el, 'd-backdrop');\n    return el;\n  }\n}\n","import {\n  ApplicationRef,\n  ComponentRef,\n  EmbeddedViewRef,\n  EnvironmentInjector,\n  Injector,\n  TemplateRef,\n  createComponent,\n} from '@angular/core';\nimport { DokuBackdropRef } from '../backdrop/backdrop-ref';\nimport { DokuBackdropService } from '../backdrop/backdrop.service';\nimport { DokuActiveModal } from './modal-ref';\nimport { ComponentType } from './modal.interface';\n\nexport class ViewElement {\n  static createElement<T>(\n    content: ComponentType<T> | TemplateRef<T>,\n    props: {\n      environmentInjector: EnvironmentInjector;\n      applicationRef: ApplicationRef;\n      injector: Injector;\n      document: Document;\n      activeModal: DokuActiveModal;\n    }\n  ) {\n    let contentTemplateRef: EmbeddedViewRef<T> | undefined;\n    let contentComponentRef: ComponentRef<T> | undefined;\n\n    const elementInjector = Injector.create({\n      providers: [{ provide: DokuActiveModal, useValue: props.activeModal }],\n      parent: props.injector,\n    });\n\n    if (content instanceof TemplateRef) {\n      contentTemplateRef = content.createEmbeddedView(\n        <T>{ $implicit: props.activeModal },\n        elementInjector\n      );\n      props.applicationRef.attachView(contentTemplateRef);\n    } else {\n      contentComponentRef = createComponent(content, {\n        environmentInjector: props.environmentInjector,\n        elementInjector,\n      });\n      (contentComponentRef.location.nativeElement as HTMLElement).classList.add(\n        'd-modal-content-host'\n      );\n      props.applicationRef.attachView(contentComponentRef.hostView);\n    }\n\n    const modalContentElement = this.createModalContentElement({ document: props.document });\n    const modalElement = this.createModalElement({ document: props.document });\n    const portalElement = this.createPortalElement({ document: props.document });\n\n    return {\n      element: { portal: portalElement, modal: modalElement, modalContent: modalContentElement },\n      content: { componentRef: contentComponentRef, templateRef: contentTemplateRef },\n    };\n  }\n\n  private static createModalElement(props: { document: Document }) {\n    const element: HTMLDivElement = props.document.createElement('div');\n    element.className = 'd-modal';\n    return element;\n  }\n\n  private static createModalContentElement(props: { document: Document }) {\n    const element: HTMLDivElement = props.document.createElement('div');\n    element.className = 'd-modal-content';\n    return element;\n  }\n\n  private static createPortalElement(props: { document: Document }) {\n    const element: HTMLDivElement = props.document.createElement('div');\n    element.className = 'd-modal-portal';\n    return element;\n  }\n\n  static appendToBody(\n    view: ReturnType<typeof this.createElement>,\n    props: { backdropService: DokuBackdropService; document: Document }\n  ) {\n    const backdropRef = props.backdropService.open();\n\n    // Append content (from component or template) to modal content\n    if (view.content.componentRef) {\n      view.element.modalContent.appendChild(view.content.componentRef.location.nativeElement);\n    }\n    if (view.content.templateRef) {\n      view.element.modalContent.append(...view.content.templateRef.rootNodes);\n    }\n\n    // Append modal content to modal\n    view.element.modal.appendChild(view.element.modalContent);\n\n    // Append modal to portal\n    view.element.portal.appendChild(view.element.modal);\n\n    // Append portal to document body\n    props.document.body.appendChild(view.element.portal);\n\n    return { backdropRef };\n  }\n\n  static removeFromBody(\n    view: ReturnType<typeof this.createElement>,\n    props: {\n      backdropService: DokuBackdropService;\n      document: Document;\n      backdropRef?: DokuBackdropRef;\n    }\n  ) {\n    view.content.componentRef?.destroy();\n    view.content.templateRef?.destroy();\n\n    props.document.body.removeChild(view.element.portal);\n    props.backdropRef?.close();\n  }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n  ApplicationRef,\n  EnvironmentInjector,\n  Inject,\n  Injectable,\n  Injector,\n  OnDestroy,\n  TemplateRef,\n} from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\nimport { ReplaySubject, filter, takeUntil } from 'rxjs';\nimport { DokuBackdropService } from '../backdrop/backdrop.service';\nimport { DokuActiveModal, DokuModalRef } from './modal-ref';\nimport { ComponentType, DokuModalConfig } from './modal.interface';\nimport { ViewElement } from './view-element';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class DokuModalService implements OnDestroy {\n  protected modalRefs: DokuModalRef<unknown>[] = [];\n\n  private destroy$ = new ReplaySubject();\n\n  constructor(\n    private envInjector: EnvironmentInjector,\n    private appRef: ApplicationRef,\n    @Inject(DOCUMENT) private document: Document,\n    private backdropService: DokuBackdropService,\n    private injector: Injector,\n    private router: Router\n  ) {\n    this.router.events\n      .pipe(\n        filter((ev) => ev instanceof NavigationStart),\n        takeUntil(this.destroy$)\n      )\n      .subscribe(() => this.closeAll());\n  }\n\n  ngOnDestroy(): void {\n    this.closeAll();\n    this.destroy$.next(true);\n    this.destroy$.complete();\n  }\n\n  open<T>(\n    componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n    config?: DokuModalConfig\n  ): DokuModalRef<T> {\n    const activeModal = new DokuActiveModal();\n\n    const view = ViewElement.createElement(componentOrTemplateRef, {\n      environmentInjector: this.envInjector,\n      applicationRef: this.appRef,\n      document: this.document,\n      activeModal: activeModal,\n      injector: this.injector,\n    });\n\n    // Add portal class (if exists) to the portal element\n    if (config?.portalClass) {\n      view.element.portal.classList.add(config.portalClass);\n    }\n\n    const componentInstance =\n      view.content.componentRef?.instance || view.content.templateRef?.context;\n\n    const modalRef = new DokuModalRef<T>(this, <T>componentInstance, view);\n\n    const normalizedConfig = this.setViewByConfig(view, config);\n\n    activeModal['_config'] = normalizedConfig;\n    activeModal.close = modalRef.close.bind(modalRef);\n\n    setTimeout(() => {\n      const { backdropRef } = ViewElement.appendToBody(view, {\n        backdropService: this.backdropService,\n        document: this.document,\n      });\n\n      modalRef['backdropRef'] = backdropRef;\n\n      // Add overflow-hidden class to the document body\n      this.document.body.classList.add('d-body-overflow-hidden');\n\n      view.content.componentRef?.changeDetectorRef.detectChanges();\n      view.content.templateRef?.detectChanges();\n\n      // Remove focus on trigger element\n      (this.document.activeElement as HTMLElement)?.blur();\n    }, 0);\n\n    this.modalRefs.push(modalRef);\n    return modalRef;\n  }\n\n  closeAll() {\n    this.modalRefs.forEach((ref) => this.close(ref));\n  }\n\n  protected close(modalRef: DokuModalRef<unknown>) {\n    if (!modalRef['view']) return;\n    ViewElement.removeFromBody(modalRef['view'], {\n      backdropService: this.backdropService,\n      document: this.document,\n      backdropRef: modalRef['backdropRef'],\n    });\n    modalRef['view'] = undefined;\n    this.modalRefs = this.modalRefs.filter((ref) => ref !== modalRef);\n\n    // Remove overflow-hidden class from document body if all of the modals have been closed.\n    if (!this.modalRefs.length) {\n      this.document.body.classList.remove('d-body-overflow-hidden');\n    }\n  }\n\n  /**\n   * @returns Normalized DokuModalConfig\n   */\n  private setViewByConfig(\n    view: ReturnType<typeof ViewElement.createElement>,\n    config?: DokuModalConfig\n  ): DokuModalConfig {\n    const normalizedConfig = { ...config };\n\n    if (config?.centered === undefined || config.centered === null) {\n      normalizedConfig.centered = true;\n    }\n    if (!config?.variant) normalizedConfig.variant = 'info';\n    if (!config?.size) normalizedConfig.size = 'medium';\n\n    if (normalizedConfig.variant) {\n      view.element.modal.classList.add(`d-modal-variant-${normalizedConfig.variant}`);\n\n      if (normalizedConfig.variant === 'form') {\n        view.element.modal.classList.add('d-modal-scrollable-content');\n      }\n\n      if (normalizedConfig.variant === 'confirmation') {\n        normalizedConfig.confirmationOptions = { ...normalizedConfig.confirmationOptions };\n\n        // Set default size if not set explicitly.\n        if (!config?.size) normalizedConfig.size = 'small';\n        // Set default icon type if not set explicitly.\n        if (!config?.confirmationOptions?.iconType) {\n          normalizedConfig.confirmationOptions.iconType = 'warning';\n        }\n        // Set default show icon if not set explicitly.\n        if (!config?.confirmationOptions?.showIcon) {\n          normalizedConfig.confirmationOptions.showIcon = true;\n        }\n      }\n    }\n\n    if (normalizedConfig.centered) {\n      view.element.modal.classList.add('d-modal-centered');\n    }\n\n    if (normalizedConfig.size) {\n      view.element.modal.classList.add(`d-modal-${normalizedConfig.size}`);\n    }\n\n    return normalizedConfig;\n  }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n  ApplicationRef,\n  ComponentRef,\n  EnvironmentInjector,\n  Inject,\n  Injectable,\n  NgZone,\n  OnDestroy,\n  createComponent,\n} from '@angular/core';\nimport { DokuBackdropService } from '../backdrop';\nimport { DokuBackdropRef } from '../backdrop/backdrop-ref';\nimport { DokuBreakpoint } from '../breakpoint';\nimport { DokuSpinner } from '../spinner';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class DokuPageLoadingService implements OnDestroy {\n  private mobileScreen = window.matchMedia(DokuBreakpoint.mobile);\n  private pageLoadingElement?: HTMLDivElement;\n  private spinnerComponentRef?: ComponentRef<DokuSpinner>;\n  private resizeListener?: EventListenerOrEventListenerObject;\n  private currentSpinnerSize?: DokuSpinner['size'] = this.mobileScreen.matches ? 'small' : 'medium';\n  private backdropRef?: DokuBackdropRef;\n\n  constructor(\n    @Inject(DOCUMENT) private document: Document,\n    private backdropService: DokuBackdropService,\n    private environmentInjector: EnvironmentInjector,\n    private appRef: ApplicationRef,\n    private ngZone: NgZone\n  ) {}\n\n  private get isOpen(): boolean {\n    return !!this.pageLoadingElement;\n  }\n\n  ngOnDestroy(): void {\n    this.hide();\n  }\n\n  show() {\n    if (this.isOpen) return;\n    this.backdropRef = this.backdropService.open();\n    this.appendPageLoadingElementToBody();\n  }\n\n  hide() {\n    if (!this.isOpen) return;\n    this.backdropRef?.close();\n    this.removePageLoadingElement();\n  }\n\n  private createPageLoadingElement(): HTMLDivElement {\n    const el = this.document.createElement('div');\n    el.classList.add('d-page-loading');\n\n    this.spinnerComponentRef = createComponent(DokuSpinner, {\n      environmentInjector: this.environmentInjector,\n    });\n    this.spinnerComponentRef.setInput('size', this.currentSpinnerSize);\n\n    this.appRef.attachView(this.spinnerComponentRef.hostView);\n\n    // Listener to change spinner size based on the breakpoint.\n    this.resizeListener = () => {\n      const newSpinnerSize: DokuSpinner['size'] = this.mobileScreen.matches ? 'small' : 'medium';\n      if (this.currentSpinnerSize === newSpinnerSize) return;\n      this.spinnerComponentRef?.setInput('size', newSpinnerSize);\n      this.currentSpinnerSize = newSpinnerSize;\n    };\n\n    this.ngZone.runOutsideAngular(() => {\n      if (!this.resizeListener) return;\n      window.addEventListener('resize', this.resizeListener);\n    });\n\n    el.appendChild(this.spinnerComponentRef.location.nativeElement);\n    return el;\n  }\n\n  private appendPageLoadingElementToBody() {\n    this.pageLoadingElement = this.createPageLoadingElement();\n    this.document.body.appendChild(this.pageLoadingElement);\n  }\n\n  private removePageLoadingElement() {\n    if (!this.pageLoadingElement) return;\n    this.document.body.removeChild(this.pageLoadingElement);\n    this.pageLoadingElement = undefined;\n    this.spinnerComponentRef?.destroy();\n\n    if (this.resizeListener) {\n      window.removeEventListener('resize', this.resizeListener);\n    }\n  }\n}\n","import { CommonModule, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-popover-body',\n  exportAs: 'dokuPopoverBody',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './popover-body.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuPopoverBody {\n  @HostBinding('class')\n  protected readonly classes: NgClass['ngClass'] = ['d-popover-body'];\n}\n","<ng-content></ng-content>\n","import { CommonModule, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-popover-footer',\n  exportAs: 'dokuPopoverFooter',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './popover-footer.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuPopoverFooter {\n  @HostBinding('class')\n  protected readonly classes: NgClass['ngClass'] = ['d-popover-footer'];\n}\n","<ng-content></ng-content>\n","import { CommonModule, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'doku-popover-title',\n  exportAs: 'dokuPopoverTitle',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './popover-title.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuPopoverTitle {\n  @HostBinding('class')\n  protected readonly classes: NgClass['ngClass'] = ['d-popover-title'];\n}\n","<ng-content></ng-content>\n","import { DOCUMENT } from '@angular/common';\nimport {\n  ApplicationRef,\n  Directive,\n  ElementRef,\n  EmbeddedViewRef,\n  Inject,\n  Input,\n  NgZone,\n  OnDestroy,\n  OnInit,\n  Renderer2,\n  TemplateRef,\n} from '@angular/core';\nimport { arrow, autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom';\nimport { ReplaySubject, fromEvent, takeUntil } from 'rxjs';\nimport { DokuPopoverCloseByKey, DokuPopoverPlacement } from './popover.interface';\n\nlet nextId = 1;\n\n@Directive({\n  selector: '[doku-popover]',\n  exportAs: 'dokuPopover',\n  standalone: true,\n})\nexport class DokuPopover implements OnInit, OnDestroy {\n  readonly id = `d-popover-uniqueId-${nextId++}`;\n\n  /**\n   * Content of the popover.\n   * It can be a string or a template for more customization.\n   *\n   * @default ''\n   */\n  @Input('doku-popover') content: string | TemplateRef<unknown> = '';\n\n  /**\n   * The color of the popover.\n   * Either `dark` or `light`.\n   * @default 'dark'\n   */\n  @Input('popoverColor') color: 'dark' | 'light' = 'dark';\n\n  /**\n   * The placement of the popover.\n   * @default 'top'\n   */\n  @Input('popoverPlacement') placement: DokuPopoverPlacement = 'top';\n\n  /**\n   * Actions that will close the popover.\n   *\n   * - `manual`, only manual action that will close the popover like using `hide` method.\n   * - `clickOutside`, close the popover when clicking outside its element.\n   *\n   * The top list has higher priority.\n   */\n  @Input('popoverCloseBy') closeBy: DokuPopoverCloseByKey[] = ['clickOutside'];\n\n  /**\n   * Whether to disable the popover.\n   * Disabled popover can't be opened.\n   * @default false\n   */\n  @Input('popoverDisabled') disabled = false;\n\n  private isShown = false;\n\n  private popoverElement?: HTMLElement;\n  private popoverContentElement?: HTMLElement;\n  private popoverArrowElement?: HTMLElement;\n  private viewRef?: EmbeddedViewRef<unknown>;\n\n  private cleanup?: () => void;\n  private destroy$ = new ReplaySubject();\n\n  constructor(\n    @Inject(DOCUMENT) private document: Document,\n    private renderer: Renderer2,\n    private ngZone: NgZone,\n    private elementRef: ElementRef,\n    private appRef: ApplicationRef\n  ) {}\n\n  protected get classes(): string[] {\n    return ['d-popover', 'd-text-body-s', `d-popover-${this.color}`];\n  }\n\n  ngOnInit(): void {\n    this.handleOnClick();\n\n    this.popoverElement = this.createPopoverElement();\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next(1);\n    this.destroy$.complete();\n    this.hide();\n    this.popoverElement = undefined;\n    this.popoverContentElement = undefined;\n    this.popoverArrowElement = undefined;\n  }\n\n  /**\n   * Show popover programmatically.\n   */\n  show() {\n    if (this.disabled) return;\n    if (this.isShown || !this.popoverElement) return;\n    this.isShown = true;\n    this.setPopoverContent(this.content);\n    this.renderer.appendChild(this.document.body, this.popoverElement);\n    this.doAutoUpdatePosition();\n  }\n\n  /**\n   * Hide popover programmatically.\n   */\n  hide() {\n    if (!this.isShown || !this.popoverElement) return;\n    this.isShown = false;\n    this.popoverElement.remove();\n    this.cleanup?.();\n    this.viewRef?.destroy();\n  }\n\n  /**\n   * Toggle popover programmatically.\n   */\n  toggle() {\n    this.isShown ? this.hide() : this.show();\n  }\n\n  /**\n   * Update the content of the popover with new one.\n   */\n  updateContent(content: string | TemplateRef<unknown>) {\n    this.setPopoverContent(content);\n  }\n\n  private createPopoverElement() {\n    const element: HTMLDivElement = this.renderer.createElement('div');\n    element.className = this.classes.join(' ');\n\n    this.popoverContentElement = this.createPopoverContentElement();\n    element.appendChild(this.popoverContentElement);\n\n    this.popoverArrowElement = this.createArrowElement();\n    element.appendChild(this.popoverArrowElement);\n\n    return element;\n  }\n\n  private createPopoverContentElement() {\n    return this.renderer.createElement('div') as HTMLDivElement;\n  }\n\n  private createArrowElement() {\n    const element: HTMLDivElement = this.renderer.createElement('div');\n    element.className = 'd-popover-arrow';\n    return element;\n  }\n\n  private setPopoverContent(content: string | TemplateRef<unknown>) {\n    if (!this.popoverContentElement) return;\n    this.popoverContentElement.replaceChildren();\n\n    if (content instanceof TemplateRef) {\n      this.viewRef?.destroy();\n      this.viewRef = content.createEmbeddedView({ hide: this.hide.bind(this) });\n      this.appRef.attachView(this.viewRef);\n      this.viewRef.rootNodes.forEach((node) => {\n        this.renderer.appendChild(this.popoverContentElement, node);\n      });\n      this.viewRef.detectChanges();\n    }\n\n    if (typeof content === 'string') {\n      this.renderer.appendChild(this.popoverContentElement, this.renderer.createText(content));\n    }\n  }\n\n  private updatePosition() {\n    if (!this.elementRef.nativeElement || !this.popoverElement || !this.popoverArrowElement) return;\n    computePosition(this.elementRef.nativeElement, this.popoverElement, {\n      placement: this.placement,\n      middleware: [\n        offset(6),\n        flip(),\n        shift({ padding: 8 }),\n        arrow({ element: this.popoverArrowElement }),\n      ],\n    }).then(({ x, y, placement, middlewareData }) => {\n      if (!this.popoverElement) return;\n      Object.assign(this.popoverElement.style, { top: `${y}px`, left: `${x}px` });\n\n      // Positioning the arrow element\n      if (middlewareData.arrow && this.popoverArrowElement) {\n        const { x: arrowX, y: arrowY } = middlewareData.arrow;\n        const staticSide = {\n          top: 'bottom',\n          right: 'left',\n          bottom: 'top',\n          left: 'right',\n        }[placement.split('-')[0]] as string;\n\n        Object.assign(this.popoverArrowElement.style, {\n          left: arrowX != null || arrowX != undefined ? `${arrowX}px` : '',\n          top: arrowY != null || arrowY != undefined ? `${arrowY}px` : '',\n          right: '',\n          bottom: '',\n          [staticSide]: '-4px',\n        });\n      }\n    });\n  }\n\n  private doAutoUpdatePosition() {\n    this.ngZone.runOutsideAngular(() => {\n      if (!this.elementRef.nativeElement || !this.popoverElement) return;\n      this.cleanup = autoUpdate(this.elementRef.nativeElement, this.popoverElement, () => {\n        this.updatePosition();\n      });\n    });\n  }\n\n  private handleOnClick() {\n    this.ngZone.runOutsideAngular(() => {\n      fromEvent(this.document, 'click')\n        .pipe(takeUntil(this.destroy$))\n        .subscribe((event: Event) => {\n          const target = event.target as HTMLElement;\n          const toggler = this.elementRef.nativeElement as HTMLElement;\n\n          const togglerClick = toggler.contains(target);\n          const popoverClick = this.popoverElement?.contains(target);\n          const outsidePopoverClick = !popoverClick;\n\n          if (this.isShown) {\n            // Don't hide the popover, supposed to use method `hide`.\n            if (this.closeBy.includes('manual')) return;\n\n            // Close popover on toggler click if it has been opened\n            if (togglerClick) return this.hide();\n\n            // Close popover on click outside its element.\n            if (outsidePopoverClick) return this.hide();\n          }\n\n          if (!this.isShown) {\n            // Open popover on toggler click\n            if (togglerClick) return this.show();\n          }\n        });\n    });\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { DokuPopoverBody, DokuPopoverFooter, DokuPopoverTitle } from '../../public-api';\nimport { DokuPopover } from './popover.directive';\n\n@NgModule({\n  imports: [DokuPopover, DokuPopoverTitle, DokuPopoverBody, DokuPopoverFooter],\n  exports: [DokuPopover, DokuPopoverTitle, DokuPopoverBody, DokuPopoverFooter],\n})\nexport class DokuPopoverModule {}\n","/**\n * Duration of the toast before automatically dismissed.\n *\n * Value in milliseconds.\n */\nexport const TOAST_DURATION = 3000;\n\n/**\n * Class name of the container element that wrap the toast elements.\n */\nexport const TOAST_CONTAINER_CLASS = 'd-toast-container';\n","import { ComponentRef } from '@angular/core';\nimport { DokuToastElementService } from './toast-element.service';\nimport { DokuToast } from './toast.component';\nimport { TOAST_DURATION } from './toast.constant';\nimport { DokuToastItem } from './toast.interface';\n\nexport class DokuActiveToast {\n  /**\n   * Dismiss active toast.\n   */\n  dismiss(): void {\n    // Business logic will be filled on service\n  }\n}\n\nexport class DokuToastRef {\n  /**\n   * Instance of the {@link DokuToast} component.\n   */\n  instance: DokuToast = this.componentRef.instance;\n\n  /**\n   * Used to clear setTimeout for auto dismiss when it get dismissed before auto dismiss invoked.\n   */\n  private timeoutId?: ReturnType<typeof setTimeout> = undefined;\n\n  protected result!: Promise<unknown>;\n\n  private _resolve!: (value: unknown) => void;\n\n  constructor(\n    private componentRef: ComponentRef<DokuToast>,\n    private toastElementService: DokuToastElementService,\n    private toastData: DokuToastItem\n  ) {\n    this.result = new Promise((resolve) => {\n      this._resolve = resolve;\n    });\n  }\n\n  /**\n   * Dismiss current toast.\n   */\n  dismiss() {\n    this.componentRef.destroy();\n    this.componentRef.changeDetectorRef.detectChanges();\n    this.toastElementService.removeContainerElement();\n    this._resolve(null);\n    clearTimeout(this.timeoutId);\n  }\n\n  protected startAutoDismiss() {\n    if (this.toastData.autoDismiss === false) return;\n    const duration = this.toastData.duration ?? TOAST_DURATION;\n    this.timeoutId = setTimeout(() => this.dismiss(), duration);\n  }\n}\n","import { CommonModule, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { DokuAlert } from '../alert';\nimport { DokuActiveToast } from './toast-ref';\n\n@Component({\n  selector: 'doku-toast',\n  exportAs: 'dokuToast',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: '../alert/alert.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DokuToast extends DokuAlert {\n  private readonly activeToast = inject(DokuActiveToast);\n\n  protected override get classes(): NgClass['ngClass'] {\n    return [super.classes, 'd-toast'];\n  }\n\n  override dismiss() {\n    this.activeToast.dismiss();\n  }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n  ApplicationRef,\n  ComponentRef,\n  EnvironmentInjector,\n  Inject,\n  Injectable,\n  Injector,\n  createComponent,\n} from '@angular/core';\nimport { DokuActiveToast, DokuToastRef } from './toast-ref';\nimport { DokuToast } from './toast.component';\nimport { TOAST_CONTAINER_CLASS } from './toast.constant';\nimport { DokuToastItem } from './toast.interface';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class DokuToastElementService {\n  toastRefs: DokuToastRef[] = [];\n\n  constructor(\n    private envInjector: EnvironmentInjector,\n    private appRef: ApplicationRef,\n    @Inject(DOCUMENT) private document: Document\n  ) {}\n\n  openToast(data: DokuToastItem) {\n    const activeToast = new DokuActiveToast();\n    const toastComponentRef = this.createToastComponent(activeToast, data);\n    const toastRef = new DokuToastRef(toastComponentRef, this, data);\n\n    activeToast.dismiss = () => {\n      toastRef.dismiss();\n    };\n\n    this.registerToastRef(toastRef);\n    toastComponentRef.changeDetectorRef.detach();\n    toastComponentRef.changeDetectorRef.detectChanges();\n    toastComponentRef.changeDetectorRef.markForCheck();\n\n    this.attachToastContainer();\n    this.attachToastInContainer(toastComponentRef);\n\n    toastRef['startAutoDismiss']();\n    return toastRef;\n  }\n\n  dismissAll() {\n    this.toastRefs.forEach((toast) => toast.dismiss());\n  }\n\n  removeContainerElement() {\n    const container = this.getToastContainerElement();\n    if (!container) return;\n    const hasChild = container.hasChildNodes();\n    if (hasChild) return;\n    container.remove();\n  }\n\n  private createToastComponent(activeToast: DokuActiveToast, data: DokuToastItem) {\n    const elementInjector = Injector.create({\n      providers: [{ provide: DokuActiveToast, useValue: activeToast }],\n    });\n\n    let projectableNodes!: Node[][];\n\n    if (data.text) {\n      projectableNodes = [[this.document.createTextNode(data.text)]];\n    }\n\n    if (data.template) {\n      const context = { $implicit: activeToast };\n      const viewRef = data.template.createEmbeddedView(context);\n      this.appRef.attachView(viewRef);\n      projectableNodes = [viewRef.rootNodes];\n    }\n\n    const component = createComponent(DokuToast, {\n      environmentInjector: this.envInjector,\n      elementInjector,\n      projectableNodes,\n    });\n    component.instance.state = data.state || 'neutral';\n    component.instance.dismissible = !!data.dismissible;\n    this.appRef.attachView(component.hostView);\n    return component;\n  }\n\n  private attachToastContainer() {\n    const containerExists = !!this.getToastContainerElement();\n    if (!containerExists) {\n      const el = this.createToastContainerElement();\n      this.document.body.appendChild(el);\n    }\n  }\n\n  private attachToastInContainer(toastComponent: ComponentRef<DokuToast>) {\n    const containerEl = this.getToastContainerElement();\n    if (containerEl) {\n      containerEl.appendChild(toastComponent.location.nativeElement);\n    }\n  }\n\n  private createToastContainerElement() {\n    const divEl = this.document.createElement('div');\n    divEl.classList.add(TOAST_CONTAINER_CLASS);\n    return divEl;\n  }\n\n  private getToastContainerElement() {\n    return this.document.body.querySelector(`div.${TOAST_CONTAINER_CLASS}`);\n  }\n\n  private registerToastRef(ref: DokuToastRef) {\n    const unregister = () => {\n      const index = this.toastRefs.indexOf(ref);\n      if (index > -1) {\n        this.toastRefs.splice(index, 1);\n      }\n    };\n    this.toastRefs.push(ref);\n    ref['result'].then(unregister);\n  }\n}\n","import { Injectable, TemplateRef } from '@angular/core';\nimport { DokuToastElementService } from './toast-element.service';\nimport { DokuToastRef } from './toast-ref';\nimport { DokuToastItem, DokuToastItemOptions } from './toast.interface';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class DokuToastService {\n  constructor(private toastElementService: DokuToastElementService) {}\n\n  /**\n   * Open toast from a text or template ref.\n   *\n   * @example\n   * From text:\n   * ```ts\n   *  this.dokuToastService.open('Hello World!');\n   * ```\n   *\n   * @example\n   * From template ref:\n   * ```html\n   * <ng-template #customTemplate>Hello World!<ng-template>\n   * ```\n   *\n   * ```ts\n   *  @ViewChild('customTemplate') private template: TemplateRef<unknown>;\n   *\n   *  showToast() {\n   *    this.dokuToastService.open(this.template);\n   *  }\n   * ```\n   */\n  open(content: string | TemplateRef<unknown>, options?: DokuToastItemOptions): DokuToastRef {\n    if (content instanceof TemplateRef) {\n      const toast: DokuToastItem = { template: content, ...options };\n      return this.toastElementService.openToast(toast);\n    }\n\n    const toast: DokuToastItem = { text: content, ...options };\n    return this.toastElementService.openToast(toast);\n  }\n\n  /**\n   * Dismiss all the toasts immediately.\n   */\n  dismissAll() {\n    this.toastElementService.dismissAll();\n  }\n}\n","import { NgModule } from '@angular/core';\n\nexport * from './lib/accordion';\nexport * from './lib/alert';\nexport * from './lib/anchor-link';\nexport * from './lib/backdrop';\nexport * from './lib/badge';\nexport * from './lib/breadcrumb';\nexport * from './lib/breakpoint';\nexport * from './lib/button';\nexport * from './lib/card';\nexport * from './lib/checkbox';\nexport * from './lib/color-picker';\nexport * from './lib/date-picker';\nexport * from './lib/date-time-picker';\nexport * from './lib/dropdown';\nexport * from './lib/form-field';\nexport * from './lib/input';\nexport * from './lib/input-file-upload';\nexport * from './lib/layout';\nexport * from './lib/modal';\nexport * from './lib/page-loading';\nexport * from './lib/pagination';\nexport * from './lib/pill';\nexport * from './lib/popover';\nexport * from './lib/progress-bar';\nexport * from './lib/radio';\nexport * from './lib/select';\nexport * from './lib/shimmer';\nexport * from './lib/spinner';\nexport * from './lib/table';\nexport * from './lib/tabs';\nexport * from './lib/time-picker';\nexport * from './lib/timeline';\nexport * from './lib/toast';\nexport * from './lib/toggle';\nexport * from './lib/tooltip';\nexport * from './lib/typography';\n\n/**\n * Support exporting modules into single module.\n */\n\nimport { DokuAccordionModule } from './lib/accordion/accordion.module';\nimport { DokuAlertModule } from './lib/alert/alert.module';\nimport { DokuAnchorLinkModule } from './lib/anchor-link/anchor-link.module';\nimport { DokuBadgeModule } from './lib/badge/badge.module';\nimport { DokuBreadcrumbModule } from './lib/breadcrumb/breadcrumb.module';\nimport { DokuButtonModule } from './lib/button/button.module';\nimport { DokuCardModule } from './lib/card/card.module';\nimport { DokuCheckboxModule } from './lib/checkbox/checkbox.module';\nimport { DokuColorPickerModule } from './lib/color-picker/color-picker.module';\nimport { DokuDatePickerModule } from './lib/date-picker/date-picker.module';\nimport { DokuDateTimePickerModule } from './lib/date-time-picker/date-time-picker.module';\nimport { DokuDropdownModule } from './lib/dropdown/dropdown.module';\nimport { DokuFormFieldModule } from './lib/form-field/form-field.module';\nimport { DokuInputFileUploadModule } from './lib/input-file-upload/input-file-upload.module';\nimport { DokuInputModule } from './lib/input/input.module';\nimport { DokuLayoutModule } from './lib/layout/layout.module';\nimport { DokuModalModule } from './lib/modal/modal.module';\nimport { DokuPaginationModule } from './lib/pagination/pagination.module';\nimport { DokuPillModule } from './lib/pill/pill.module';\nimport { DokuProgressBarModule } from './lib/progress-bar/progress-bar.module';\nimport { DokuRadioAppearanceModule, DokuRadioModule } from './lib/radio/radio.module';\nimport { DokuSelectModule } from './lib/select/select.module';\nimport { DokuShimmerModule } from './lib/shimmer/shimmer.module';\nimport { DokuSpinnerModule } from './lib/spinner/spinner.module';\nimport { DokuTableModule } from './lib/table/table.module';\nimport { DokuTabsModule } from './lib/tabs/tabs.module';\nimport { DokuTimePickerModule } from './lib/time-picker/time-picker.module';\nimport { DokuTimelineModule } from './lib/timeline';\nimport { DokuToggleModule } from './lib/toggle/toggle.module';\nimport { DokuTooltipModule } from './lib/tooltip/tooltip.module';\nimport { DokuTypographyModule } from './lib/typography/typography.module';\n\nconst DOKU_FRAGMENT_MODULES = [\n  DokuAccordionModule,\n  DokuAlertModule,\n  DokuAnchorLinkModule,\n  DokuBadgeModule,\n  DokuButtonModule,\n  DokuDropdownModule,\n  DokuFormFieldModule,\n  DokuInputModule,\n  DokuInputFileUploadModule,\n  DokuLayoutModule,\n  DokuPaginationModule,\n  DokuPillModule,\n  DokuSelectModule,\n  DokuShimmerModule,\n  DokuSpinnerModule,\n  DokuTableModule,\n  DokuTooltipModule,\n  DokuTypographyModule,\n  DokuCardModule,\n  DokuModalModule,\n  DokuCheckboxModule,\n  DokuToggleModule,\n  DokuTabsModule,\n  DokuRadioModule,\n  DokuRadioAppearanceModule,\n  DokuTimePickerModule,\n  DokuDatePickerModule,\n  DokuTimelineModule,\n  DokuDateTimePickerModule,\n  DokuProgressBarModule,\n  DokuColorPickerModule,\n  DokuBreadcrumbModule,\n];\n\n@NgModule({\n  imports: DOKU_FRAGMENT_MODULES,\n  exports: DOKU_FRAGMENT_MODULES,\n})\nexport class DokuFragmentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["uniqueId","i1.DokuAccordion","i1.DokuAccordionItem","i2","i1","i2.DokuFormField","i3.DokuTypography","i2.DokuSelect","i3.DokuFormField","i4.DokuTypography","i3.DokuTimePicker","i1.DokuDropdownMenuItem","i1.DokuDropdownMenu","i1.DokuTypography","i1.DokuActiveModal","i1.DokuFormField","i3","nextId","i1.DokuRadioGroup","ViewElement","i1.DokuBackdropService","i1.DokuToastElementService"],"mappings":"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"}