{"version":3,"file":"usitsdasdesign-dds-ng-toggle.mjs","sources":["../../src/app/dds/toggle/toggle-group/toggle-group.component.ts","../../src/app/dds/toggle/toggle-group/toggle-group.component.html","../../src/app/dds/toggle/toggle/constants.ts","../../src/app/dds/toggle/toggle/toggle.component.ts","../../src/app/dds/toggle/toggle/toggle.component.html","../../src/app/dds/toggle/toggle.module.ts","../../src/app/dds/toggle/usitsdasdesign-dds-ng-toggle.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { AfterContentInit, ChangeDetectionStrategy, Component, HostBinding, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { coerceBooleanProperty, generateId } from '@usitsdasdesign/dds-ng/core/utils';\nimport { DDS_FORM_CONTROL_GROUP, DdsFormControlGroup } from '@usitsdasdesign/dds-ng/shared';\nimport { ToggleComponent } from '../toggle/toggle.component';\n\n@Component({\n  selector: 'dds-toggle-group',\n  templateUrl: './toggle-group.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: DDS_FORM_CONTROL_GROUP,\n      useExisting: ToggleGroupComponent,\n    },\n  ],\n  standalone: true,\n  imports: [CommonModule],\n})\nexport class ToggleGroupComponent implements OnInit, OnChanges, AfterContentInit, DdsFormControlGroup {\n  // ARIA role attribute for the host element.\n  @HostBinding('attr.role') hostRole = 'group';\n\n  // Title of the toggle group.\n  @Input() title: string | undefined;\n\n  // Indicates if the toggle group is in inverse mode.\n  @Input() isInverse: boolean | undefined;\n\n  // Indicates if the toggle group is required.\n  @Input() isRequired: boolean | undefined = false;\n\n  // Unique identifier for the toggle group.\n  public groupId: string;\n\n  // Collection of toggle items within the group.\n  private toggleItems: ToggleComponent[] = [];\n\n  public ngOnInit(): void {\n    this.groupId = generateId();\n  }\n\n  public ngOnChanges(changes: SimpleChanges): void {\n    if (changes.isRequired) {\n      this.isRequired = coerceBooleanProperty(changes.isRequired.currentValue);\n      this.setToggleRequired(this.isRequired);\n    }\n\n    if (changes.isInverse) {\n      this.setItemsInverse(changes.isInverse?.currentValue);\n    }\n  }\n\n  public ngAfterContentInit(): void {\n    this.setToggleRequired(this.isRequired);\n    this.setItemsInverse(this.isInverse);\n  }\n\n  // Adds a toggle item to the group.\n  public addToggleItem(Toggle: ToggleComponent): void {\n    this.toggleItems.push(Toggle);\n  }\n\n  // Sets the required state for all toggle items in the group.\n  public setToggleRequired(isRequired: boolean): void {\n    this.toggleItems.forEach((toggle: ToggleComponent) => {\n      toggle.isRequiredGroup = isRequired;\n      toggle.cdr.detectChanges();\n    });\n  }\n\n  // Sets the inverse state for all toggle items in the group.\n  public setItemsInverse(isInverse: boolean): void {\n    this.toggleItems.forEach((toggle: ToggleComponent) => {\n      toggle.setInverse(isInverse);\n    });\n  }\n}\n","@if (title) {\n  <span [ngClass]=\"{\n            'dds-custom-control_inverse': isInverse\n      }\"\n        class=\"dds-custom-control__title\"\n        [attr.id]=\"groupId\">{{title}}\n    @if (isRequired) {\n      <span class=\"dds-required\"></span>\n    }\n  </span>\n}\n<div class=\"dds-custom-control__group\"\n     role=\"group\"\n     [attr.aria-labelledby]=\"groupId\">\n  <ng-content></ng-content>\n</div>\n","import { ThemeClassesMap, ThemeMapEnum } from '@usitsdasdesign/dds-ng/core/theme';\nimport { Themes } from '@usitsdasdesign/dds-ng/shared';\n\nexport const TOGGLE_SPINNER_SIZE = '10px';\n\nexport const themeClassesMap: ThemeClassesMap = {\n  [ThemeMapEnum.Themes]: {\n    [Themes.dark]: 'dds-toggle_dark',\n    [Themes.blue]: 'dds-toggle_blue',\n  },\n};\n","import { CommonModule } from '@angular/common';\nimport {\n  ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, HostBinding, Input, OnChanges, OnInit, Optional, Output, Self, SimpleChanges, ViewChild\n} from '@angular/core';\nimport { FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { ErrorStateCtor, ErrorStateMixin, FormAccessorCtor, FormAccessorMixin } from '@usitsdasdesign/dds-ng/core/common-behaviors';\nimport { FocusHandlerDirective, FocusHandlerModule } from '@usitsdasdesign/dds-ng/core/focus-handler';\nimport { ThemeClassesMap, ThemeModule } from '@usitsdasdesign/dds-ng/core/theme';\nimport { coerceBooleanProperty } from '@usitsdasdesign/dds-ng/core/utils';\nimport { AdditionalClass, DDS_FORM_CONTROL, DdsFormControl, ErrorState, SpinnerThemes, Themes } from '@usitsdasdesign/dds-ng/shared';\nimport { DdsConfigService } from '@usitsdasdesign/dds-ng/shared/dds-config';\nimport { SpinnerModule, SpinnerOptions } from '@usitsdasdesign/dds-ng/spinner';\nimport { ToggleGroupComponent } from '../toggle-group/toggle-group.component';\nimport { TOGGLE_SPINNER_SIZE, themeClassesMap } from './constants';\n\nconst ToggleBase: FormAccessorCtor & ErrorStateCtor = FormAccessorMixin(ErrorStateMixin());\n\n@Component({\n  selector: 'dds-toggle',\n  templateUrl: './toggle.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: DDS_FORM_CONTROL,\n      useExisting: ToggleComponent,\n    },\n  ],\n  standalone: true,\n  imports: [CommonModule, FocusHandlerModule, SpinnerModule, ThemeModule],\n})\nexport class ToggleComponent extends ToggleBase implements OnInit, DdsFormControl, OnChanges {\n  // Host binding to add flex class to the component\n  @HostBinding(`class.${AdditionalClass.flex}`) isFlex = true;\n  // Host binding to add disabled class to the component and input property for disabled state\n  @HostBinding(`class.${AdditionalClass.disabled}`) @Input() disabled: boolean | undefined;\n\n  // ViewChild to access the toggle input element\n  @ViewChild('toggleInput') toggleInput: ElementRef<HTMLInputElement>;\n  // ViewChild to access the focus handler directive\n  @ViewChild(FocusHandlerDirective) focusDir: FocusHandlerDirective;\n\n  // Input property for the label of the toggle\n  @Input() label: string | undefined;\n  // Input property for the aria-label attribute\n  @Input() ariaLabel: string | undefined;\n  // Input property for custom CSS class\n  @Input() customClass: string | undefined;\n  // Input property for the theme, defaulting to the theme from the configuration service\n  @Input() theme: Themes | string | undefined = this.ddsConfig.getConfig().theme;\n  // Input property for inverse state\n  @Input() isInverse: boolean | undefined;\n  // Input property for error state\n  @Input() isError: boolean | undefined;\n  // Input property for required state, defaulting to false\n  @Input() isRequired: boolean | undefined = false;\n  // Input property for error state, defaulting to the error state from the configuration service\n  @Input() errorState: string | ErrorState | undefined = this.ddsConfig.getConfig().errorState;\n  // Input property for processing status active state\n  @Input() isProcessingStatusActive: boolean | undefined;\n  // Input property for the value of the toggle\n  @Input() value: boolean | undefined;\n\n  // Output event emitter for state change\n  @Output() stateChanged = new EventEmitter<boolean>();\n  // Output event emitter for processing state activation\n  @Output() processingStateActivated = new EventEmitter<boolean>();\n\n  // Spinner options for the toggle component\n  public spinnerOptions: SpinnerOptions = {\n    size: TOGGLE_SPINNER_SIZE,\n    theme: SpinnerThemes.gray,\n  };\n  // Processing status flag\n  public processingStatus: boolean;\n  // Theme configuration map\n  public themeConfig: ThemeClassesMap = themeClassesMap;\n  // Flag for required group state\n  public isRequiredGroup = false;\n  // Internal error state flag\n  public _isError: boolean;\n\n  constructor(\n    @Optional() @Self() public ngControl: NgControl,\n    @Optional() public parentForm: NgForm,\n    @Optional() public parentFormGroup: FormGroupDirective,\n    public cdr: ChangeDetectorRef,\n    public el: ElementRef,\n    private ddsConfig: DdsConfigService,\n    @Optional() public toggleGroup: ToggleGroupComponent\n  ) {\n    super();\n\n    // If ngControl is present, set this component as the value accessor\n    if (this.ngControl !== null) {\n      this.ngControl.valueAccessor = this;\n    }\n  }\n\n  public ngOnInit(): void {\n    super.ngOnInit();\n    // Add this toggle component to the toggle group if present\n    this.toggleGroup?.addToggleItem(this);\n  }\n\n  public ngOnChanges(changes: SimpleChanges): void {\n    // Coerce the isRequired input to a boolean value\n    if (changes.isRequired) {\n      this.isRequired = coerceBooleanProperty(changes.isRequired.currentValue);\n    }\n\n    super.ngOnChanges(changes);\n  }\n\n  public toggleState(success = false): void {\n    // Handle the processing status if active\n    if (this.isProcessingStatusActive) {\n      if (!this.processingStatus) {\n        this.processingStatus = true;\n        this.processingStateActivated.emit(!this.value);\n      } else {\n        if (success) {\n          this.changeHandle();\n        }\n\n        this.processingStatus = false;\n        this.cdr.markForCheck();\n      }\n    } else {\n      this.changeHandle();\n    }\n\n    this.checkError();\n    this.onModelTouched();\n  }\n\n  public changeHandle(): void {\n    // Toggle the value and emit the state change event\n    this.value = !this.value;\n    this.onModelChange(this.value);\n    this.stateChanged.emit(this.value);\n    this.cdr.markForCheck();\n  }\n\n  public writeValue(active: boolean): void {\n    // Write the value to the component and mark for check\n    this.value = active;\n    super.writeValue(active);\n    this.cdr.markForCheck();\n  }\n\n  public setDisabledState(disabled: boolean): void {\n    // Set the disabled state and mark for check\n    this.disabled = disabled;\n    this.cdr.markForCheck();\n  }\n\n  public setInverse(isInverse: boolean): void {\n    // Set the inverse state and detect changes\n    this.isInverse = isInverse;\n    this.cdr.detectChanges();\n  }\n\n  public reset(): void {\n    // Reset the value and emit the state change event\n    this.value = false;\n    this.checkError();\n    this.onModelChange(null);\n    this.stateChanged.emit(null);\n    this.cdr.markForCheck();\n  }\n}\n","<label [ngClass]=\"{\n         'dds-toggle_disabled': disabled,\n         'dds-toggle_processing-status': processingStatus,\n         'dds-toggle_inverse': isInverse,\n         'dds-toggle_danger': _isError\n       }\"\n       [theme]=\"theme\"\n       [ddsTheme]=\"themeConfig\"\n       class=\"dds-toggle {{customClass}}\">\n  <input [checked]=\"value\"\n         [value]=\"label\"\n         [disabled]=\"disabled\"\n         [attr.aria-disabled]=\"disabled\"\n         [attr.aria-required]=\"isRequired || isRequiredGroup || _isFormControlRequired\"\n         [attr.aria-invalid]=\"_isError\"\n         [attr.aria-label]=\"ariaLabel || label\"\n         [required]=\"isRequired || isRequiredGroup\"\n         role=\"switch\"\n         ddsFocus\n         class=\"dds-toggle__input\"\n         type=\"checkbox\"\n         (change)=\"toggleState()\"\n         (keydown.enter)=\"toggleState()\"\n         #toggleInput />\n  <div [ngClass]=\"{\n         'dds-toggle__switcher_active': value\n       }\"\n       class=\"dds-toggle__switcher\">\n    @if (processingStatus) {\n      <dds-spinner [size]=\"spinnerOptions.size\"\n                   [theme]=\"spinnerOptions.theme\"\n                   class=\"dds-toggle__spinner\"></dds-spinner>\n    }\n    <span class=\"dds-toggle__circle\"></span>\n    <span class=\"dds-toggle__line\"></span>\n  </div>\n\n  @if (label) {\n    <span class=\"dds-toggle__title\">{{ label }}\n      @if (isRequired) {\n        <span class=\"dds-required\"></span>\n      }\n    </span>\n  }\n</label>","import { NgModule } from '@angular/core';\nimport { ToggleGroupComponent } from './toggle-group/toggle-group.component';\nimport { ToggleComponent } from './toggle/toggle.component';\n\n@NgModule({\n  declarations: [],\n  imports: [ToggleComponent, ToggleGroupComponent],\n  exports: [ToggleComponent, ToggleGroupComponent],\n})\nexport class ToggleModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3.ToggleGroupComponent"],"mappings":"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"}