{"version":3,"file":"usitsdasdesign-dds-ng-progress.mjs","sources":["../../src/app/dds/progress/progress/constants.ts","../../src/app/dds/progress/progress/progress.component.ts","../../src/app/dds/progress/progress/progress.component.html","../../src/app/dds/progress/progress.module.ts","../../src/app/dds/progress/usitsdasdesign-dds-ng-progress.ts"],"sourcesContent":["import { ThemeClassesMap, ThemeMapEnum } from '@usitsdasdesign/dds-ng/core/theme';\nimport { Size, Themes } from '@usitsdasdesign/dds-ng/shared';\n\nexport const themeClassesMap: ThemeClassesMap = {\n  [ThemeMapEnum.Size]: {\n    [Size.lg]: 'dds-progress_lg',\n  },\n  [ThemeMapEnum.Themes]: {\n    [Themes.green]: 'dds-progress_green',\n    [Themes.blue]: 'dds-progress_blue',\n  },\n};\n\nexport const ARIA_VALUENOW = 'aria-valuenow';\n","import { CommonModule } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  Input,\n  OnChanges,\n  Renderer2,\n  SimpleChanges,\n  ViewChild,\n} from '@angular/core';\nimport {\n  DestroyCtor,\n  DestroyMixin,\n  FormAccessorCtor,\n  FormAccessorMixin,\n  I18nCtor,\n  I18nMixin,\n  valueAccessor,\n} from '@usitsdasdesign/dds-ng/core/common-behaviors';\nimport { ThemeClassesMap, ThemeModule } from '@usitsdasdesign/dds-ng/core/theme';\nimport { AdditionalClass, Size, Themes } from '@usitsdasdesign/dds-ng/shared';\nimport { DdsConfigService } from '@usitsdasdesign/dds-ng/shared/dds-config';\nimport { I18nModule, I18nService, ITranslation } from '@usitsdasdesign/dds-ng/shared/i18n';\nimport { TooltipModule } from '@usitsdasdesign/dds-ng/tooltip';\nimport { ARIA_VALUENOW, themeClassesMap } from './constants';\n\nconst ProgressBase: DestroyCtor & I18nCtor & FormAccessorCtor = DestroyMixin(I18nMixin(FormAccessorMixin()));\n\n@Component({\n  selector: 'dds-progress',\n  templateUrl: './progress.component.html',\n  providers: [valueAccessor(ProgressComponent as Component)],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { class: AdditionalClass.flex },\n  standalone: true,\n  imports: [CommonModule, TooltipModule, ThemeModule, I18nModule],\n})\nexport class ProgressComponent extends ProgressBase implements OnChanges {\n  // Reference to the root element of the component.\n  @ViewChild('rootElem', { static: true }) rootElem: ElementRef;\n\n  // The size of the progress bar. Can be a predefined Size or a string.\n  @Input() size: Size | string | undefined = this.ddsConfig.getConfig().size;\n\n  // The theme of the progress bar. Can be a predefined Themes or a string.\n  @Input() theme: Themes | string | undefined = this.ddsConfig.getConfig().theme;\n\n  // The label for the progress bar.\n  @Input() label: string | undefined;\n\n  // The description for the progress bar.\n  @Input() description: string | undefined;\n\n  // The error message to display if there is an error.\n  @Input() errorMessage: string | undefined;\n\n  // Custom CSS class to apply to the progress bar.\n  @Input() customClass: string | undefined;\n\n  // Indicates if the progress bar is in an indeterminate state.\n  @Input() isIndeterminate: boolean | undefined;\n\n  // Indicates if there is an error state.\n  @Input() isError: boolean | undefined;\n\n  // Indicates if the progress bar should be displayed in inverse colors.\n  @Input() isInverse: boolean | undefined;\n\n  // Indicates if the progress bar should be displayed vertically.\n  @Input() isVertical: boolean | undefined;\n\n  // The current value of the progress bar.\n  @Input() value: number | undefined;\n\n  // Configuration for theme classes.\n  public themeConfig: ThemeClassesMap = themeClassesMap;\n\n  // ARIA label for accessibility.\n  private ariaLabel: string;\n\n  constructor(public cdr: ChangeDetectorRef, private renderer: Renderer2, public i18n: I18nService, private ddsConfig: DdsConfigService) {\n    super();\n  }\n\n  public ngOnChanges(changes: SimpleChanges): void {\n    const rootElem = this.rootElem?.nativeElement;\n\n    if (changes.isVertical && changes.isVertical.currentValue) {\n      this.progressValueStyle();\n    }\n\n    if (changes.isIndeterminate && rootElem) {\n      if (changes.isIndeterminate.currentValue) {\n        this.renderer.removeAttribute(rootElem, ARIA_VALUENOW);\n      } else {\n        this.renderer.setAttribute(rootElem, ARIA_VALUENOW, `${this.value}`);\n      }\n    }\n\n    if (changes.value && !this.isIndeterminate && rootElem) {\n      this.renderer.setAttribute(rootElem, ARIA_VALUENOW, `${changes.value}`);\n    }\n  }\n\n  public writeValue(value: number): void {\n    this.value = value;\n    this.cdr.markForCheck();\n  }\n\n  // Returns the style object for the progress value based on orientation.\n  public progressValueStyle(): { [key: string]: string } {\n    return this.isVertical ? { height: this.value + '%' } : { width: this.value + '%' };\n  }\n\n  // Returns the text representation of the progress value for accessibility.\n  public getValueText(): string {\n    return `${this.ariaLabel} ${this.value}%`;\n  }\n\n  // Sets the internationalization texts for the component.\n  protected setI18nTexts(translation: ITranslation): void {\n    this.ariaLabel = translation.PROGRESS.A11Y.ARIA_LABEL;\n    this.cdr.detectChanges();\n  }\n}\n","<div class=\"dds-progress-wrap\">\n  <div [ngClass]=\"{\n    'dds-progress_indeterminate': isIndeterminate,\n    'dds-progress_error': isError,\n    'dds-progress_without-label': !label,\n    'dds-progress_without-description': !description,\n    'dds-progress_without-info': !description && !label,\n    'dds-progress_inverse': isInverse,\n    'dds-progress_vertical': isVertical\n  }\"\n       [theme]=\"theme\"\n       [size]=\"size\"\n       [ddsTheme]=\"themeConfig\"\n       [attr.aria-label]=\"label || getValueText()\"\n       [attr.aria-valuenow]=\"value\"\n       [attr.aria-valuetext]=\"getValueText()\"\n       [attr.aria-invalid]=\"isError\"\n       role=\"progressbar\"\n       aria-valuemin=\"0\"\n       aria-valuemax=\"100\"\n       class=\"dds-progress {{customClass}}\"\n       #rootElem>\n    @if (label) {\n    <label class=\"dds-progress__label\">{{ label }}</label>\n    }\n\n    <div class=\"dds-progress__bar\">\n      <span [ngStyle]=\"progressValueStyle()\"\n            class=\"dds-progress__value\"></span>\n    </div>\n\n    @if (description && !errorMessage) {\n    <div class=\"dds-progress__description\">{{ description }}</div>\n    }\n    @if (errorMessage) {\n    <div class=\"dds-progress__description dds-progress__description_error\">{{ errorMessage }}</div>\n    }\n  </div>\n\n  <div role=\"log\"\n       aria-live=\"polite\"\n       class=\"dds-progress-wrap__hidden-desc\">{{ description || value + \"%\" }}</div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ProgressComponent } from './progress/progress.component';\n\n@NgModule({\n  declarations: [],\n  imports: [ProgressComponent],\n  exports: [ProgressComponent],\n})\nexport class ProgressModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}