{"version":3,"file":"clr-angular-forms-common.mjs","sources":["../../../projects/angular/forms/common/providers/control-id.service.ts","../../../projects/angular/forms/common/providers/container-id.service.ts","../../../projects/angular/forms/common/abstract-control.ts","../../../projects/angular/forms/common/control-subtexts/error.ts","../../../projects/angular/forms/common/control-subtexts/helper.ts","../../../projects/angular/forms/common/control-subtexts/success.ts","../../../projects/angular/forms/common/if-control-state/control-state.enum.ts","../../../projects/angular/forms/common/providers/layout.service.ts","../../../projects/angular/forms/common/providers/ng-control.service.ts","../../../projects/angular/forms/common/label.ts","../../../projects/angular/forms/common/providers/control-class.service.ts","../../../projects/angular/forms/common/abstract-container.ts","../../../projects/angular/forms/common/control-container.ts","../../../projects/angular/forms/common/providers/mark-control.service.ts","../../../projects/angular/forms/common/wrapped-control.ts","../../../projects/angular/forms/common/control.ts","../../../projects/angular/forms/common/form.ts","../../../projects/angular/forms/common/if-control-state/abstract-if-state.ts","../../../projects/angular/forms/common/if-control-state/if-error.ts","../../../projects/angular/forms/common/if-control-state/if-success.ts","../../../projects/angular/forms/common/layout.ts","../../../projects/angular/forms/common/common.module.ts","../../../projects/angular/forms/common/providers/focus.service.ts","../../../projects/angular/forms/common/index.ts","../../../projects/angular/forms/common/clr-angular-forms-common.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nlet counter = 0;\n\n@Injectable()\nexport class ControlIdService {\n  private _id = 'clr-form-control-' + ++counter;\n  private _idChange = new BehaviorSubject(this._id);\n\n  get id(): string {\n    return this._id;\n  }\n  set id(value: string) {\n    this._id = value;\n    this._idChange.next(value);\n  }\n\n  get idChange(): Observable<string> {\n    return this._idChange.asObservable();\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nlet counter = 0;\n\n/**\n * @TODO No idea why I need to use provideIn .. without I'm getting error that\n * ContainerIdService is not defined - But this must be optional service!?\n *\n * There is something wrong - will come back to investigate it when I have more time\n *\n */\n@Injectable()\nexport class ContainerIdService {\n  private _id = `clr-form-container-${++counter}`;\n  private _idChange = new BehaviorSubject(this._id);\n\n  get id(): string {\n    return this._id;\n  }\n  set id(value: string) {\n    this._id = value;\n    this._idChange.next(value);\n  }\n\n  get idChange(): Observable<string> {\n    return this._idChange.asObservable();\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, Optional } from '@angular/core';\n\nimport { ContainerIdService } from './providers/container-id.service';\nimport { ControlIdService } from './providers/control-id.service';\n\nexport const CONTROL_SUFFIX: { [key: string]: string | null } = {\n  HELPER: 'helper',\n  ERROR: 'error',\n  SUCCESS: 'success',\n  NONE: null,\n};\n\n@Directive()\nexport abstract class ClrAbstractControl {\n  /**\n   * Hold the suffix for the ID\n   */\n  controlIdSuffix = 'abstract';\n\n  protected constructor(\n    @Optional() protected controlIdService: ControlIdService,\n    @Optional() protected containerIdService: ContainerIdService\n  ) {}\n\n  get id(): string {\n    /**\n     * The order of witch the id will be pick is:\n     *   - Container ID  (Wrapper arround multiple Controls like, Checkbox, Radio, ...)\n     *   - Control ID (Single Control wrapper like Input, Textarea, Password, ...)\n     *   - None\n     */\n    if (this.containerIdService) {\n      return `${this.containerIdService.id}-${this.controlIdSuffix}`;\n    }\n\n    if (this.controlIdService) {\n      return `${this.controlIdService.id}-${this.controlIdSuffix}`;\n    }\n\n    return null;\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component, Optional } from '@angular/core';\n\nimport { ClrAbstractControl, CONTROL_SUFFIX } from '../abstract-control';\nimport { ContainerIdService } from '../providers/container-id.service';\nimport { ControlIdService } from '../providers/control-id.service';\n\n@Component({\n  selector: 'clr-control-error',\n  template: `\n    <cds-icon class=\"clr-validate-icon\" shape=\"error-standard\" status=\"danger\" aria-hidden=\"true\"></cds-icon>\n    <span class=\"clr-subtext\">\n      <ng-content></ng-content>\n    </span>\n  `,\n  host: {\n    '[class.clr-subtext-wrapper]': 'true',\n    '[class.error]': 'true',\n    '[attr.id]': 'id',\n  },\n  standalone: false,\n})\nexport class ClrControlError extends ClrAbstractControl {\n  override controlIdSuffix = CONTROL_SUFFIX.ERROR;\n\n  constructor(\n    @Optional() protected override controlIdService: ControlIdService,\n    @Optional() protected override containerIdService: ContainerIdService\n  ) {\n    super(controlIdService, containerIdService);\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component, Optional } from '@angular/core';\n\nimport { ClrAbstractControl, CONTROL_SUFFIX } from '../abstract-control';\nimport { ContainerIdService } from '../providers/container-id.service';\nimport { ControlIdService } from '../providers/control-id.service';\n\n@Component({\n  selector: 'clr-control-helper',\n  template: `<ng-content></ng-content>`,\n  host: {\n    '[class.clr-subtext]': 'true',\n    '[attr.id]': 'id',\n  },\n  standalone: false,\n})\nexport class ClrControlHelper extends ClrAbstractControl {\n  override controlIdSuffix = CONTROL_SUFFIX.HELPER;\n\n  constructor(\n    @Optional() protected override controlIdService: ControlIdService,\n    @Optional() protected override containerIdService: ContainerIdService\n  ) {\n    super(controlIdService, containerIdService);\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component, Optional } from '@angular/core';\n\nimport { ClrAbstractControl, CONTROL_SUFFIX } from '../abstract-control';\nimport { ContainerIdService } from '../providers/container-id.service';\nimport { ControlIdService } from '../providers/control-id.service';\n\n@Component({\n  selector: 'clr-control-success',\n  template: `\n    <cds-icon class=\"clr-validate-icon\" shape=\"success-standard\" status=\"success\" aria-hidden=\"true\"></cds-icon>\n    <span class=\"clr-subtext\">\n      <ng-content></ng-content>\n    </span>\n  `,\n  host: {\n    '[class.clr-subtext-wrapper]': 'true',\n    '[class.success]': 'true',\n    '[attr.id]': 'id',\n  },\n  standalone: false,\n})\nexport class ClrControlSuccess extends ClrAbstractControl {\n  override controlIdSuffix = CONTROL_SUFFIX.SUCCESS;\n\n  constructor(\n    @Optional() protected override controlIdService: ControlIdService,\n    @Optional() protected override containerIdService: ContainerIdService\n  ) {\n    super(controlIdService, containerIdService);\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport enum CONTROL_STATE {\n  VALID = 'VALID',\n  INVALID = 'INVALID',\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Injectable } from '@angular/core';\n\nexport enum ClrFormLayout {\n  VERTICAL = 'vertical',\n  HORIZONTAL = 'horizontal',\n  COMPACT = 'compact',\n}\n\n@Injectable()\nexport class LayoutService {\n  readonly minLabelSize = 1;\n  readonly maxLabelSize = 12;\n\n  layout: ClrFormLayout | string = ClrFormLayout.HORIZONTAL;\n\n  private layoutValues: string[] = Object.values(ClrFormLayout);\n  private _labelSize = 2;\n\n  get labelSize(): number {\n    return this._labelSize;\n  }\n  set labelSize(size: number) {\n    if (this.labelSizeIsValid(size)) {\n      this._labelSize = size;\n    }\n  }\n\n  get layoutClass(): string {\n    return `clr-form-${this.layout}`;\n  }\n\n  isVertical(): boolean {\n    return this.layout === ClrFormLayout.VERTICAL;\n  }\n\n  isHorizontal(): boolean {\n    return this.layout === ClrFormLayout.HORIZONTAL;\n  }\n\n  isCompact(): boolean {\n    return this.layout === ClrFormLayout.COMPACT;\n  }\n\n  isValid(layout: string): boolean {\n    return this.layoutValues.indexOf(layout) > -1;\n  }\n\n  labelSizeIsValid(labelSize: number): boolean {\n    return Number.isInteger(labelSize) && labelSize >= this.minLabelSize && labelSize <= this.maxLabelSize;\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Injectable } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { Observable, Subject } from 'rxjs';\n\nimport { ClrAbstractContainer } from '../abstract-container';\n\nexport interface Helpers {\n  show?: boolean;\n  showInvalid?: boolean;\n  showValid?: boolean;\n  showHelper?: boolean;\n}\n\n@Injectable()\nexport class NgControlService {\n  container: ClrAbstractContainer;\n  private _controls: NgControl[] = [];\n\n  // Observable to subscribe to the control, since its not available immediately for projected content\n  private _controlsChanges = new Subject<NgControl[]>();\n\n  get controls() {\n    return this._controls;\n  }\n\n  get controlsChanges(): Observable<NgControl[]> {\n    return this._controlsChanges.asObservable();\n  }\n\n  get hasMultipleControls() {\n    return this._controls?.length > 1;\n  }\n\n  addControl(control: NgControl) {\n    this._controls.push(control);\n\n    this.emitControlsChange(this._controls);\n  }\n\n  emitControlsChange(controls: NgControl[]) {\n    this._controlsChanges.next(controls);\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport {\n  ContentChild,\n  Directive,\n  ElementRef,\n  HostBinding,\n  HostListener,\n  Input,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Renderer2,\n} from '@angular/core';\nimport { ClrSignpost } from '@clr/angular/popover/signpost';\nimport { Subscription } from 'rxjs';\n\nimport { ControlIdService } from './providers/control-id.service';\nimport { LayoutService } from './providers/layout.service';\nimport { NgControlService } from './providers/ng-control.service';\n\n@Directive({\n  selector: 'label',\n  standalone: false,\n})\nexport class ClrControlLabel implements OnInit, OnDestroy {\n  @Input('id') idInput: string;\n  @HostBinding('attr.id') idAttr: string;\n\n  @Input('for') @HostBinding('attr.for') forAttr: string;\n\n  @ContentChild(ClrSignpost, { read: ElementRef }) private signpost: ElementRef;\n  private enableGrid = true;\n  private subscriptions: Subscription[] = [];\n\n  constructor(\n    @Optional() private controlIdService: ControlIdService,\n    @Optional() private layoutService: LayoutService,\n    @Optional() private ngControlService: NgControlService,\n    private renderer: Renderer2,\n    private el: ElementRef<HTMLLabelElement>\n  ) {}\n\n  get labelText(): string {\n    return this.el.nativeElement && this.el.nativeElement.textContent;\n  }\n\n  ngOnInit() {\n    // Prevent id attributes from being removed by the `undefined` host binding.\n    // This happens when a `label` is used outside of a control container and other use cases.\n    this.idAttr = this.idInput;\n\n    // Only add the clr-control-label if it is inside a control container\n    if (this.controlIdService || this.ngControlService) {\n      this.renderer.addClass(this.el.nativeElement, 'clr-control-label');\n    }\n    // Only set the grid column classes if we are in the right context and if they aren't already set\n    if (\n      this.enableGrid &&\n      this.layoutService &&\n      !this.layoutService.isVertical() &&\n      this.el.nativeElement &&\n      this.el.nativeElement.className.indexOf('clr-col') < 0\n    ) {\n      this.renderer.addClass(this.el.nativeElement, 'clr-col-12');\n      this.renderer.addClass(this.el.nativeElement, `clr-col-md-${this.layoutService.labelSize}`);\n    }\n    if (this.controlIdService && !this.forAttr) {\n      this.subscriptions.push(\n        this.controlIdService.idChange.subscribe(id => {\n          this.forAttr = id;\n          this.idAttr = this.idInput || `${id}-label`;\n        })\n      );\n    }\n  }\n\n  ngOnDestroy() {\n    this.subscriptions.forEach(sub => sub.unsubscribe());\n  }\n\n  disableGrid() {\n    this.enableGrid = false;\n  }\n\n  /**\n   * Allowing signposts inside labels to work without disabling default behavior. <label> is spreading a click event to its children so signposts get\n   * automatically closed once clicked inside a <label>.\n   * @param event\n   */\n  @HostListener('click', ['$event'])\n  private onClick(event) {\n    this.preventDefaultOnSignpostTarget(event);\n  }\n\n  private preventDefaultOnSignpostTarget(event) {\n    if (this.signpost && this.signpost.nativeElement && this.signpost.nativeElement.contains(event.target)) {\n      event.preventDefault();\n    }\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Injectable, Optional, Renderer2 } from '@angular/core';\n\nimport { LayoutService } from './layout.service';\nimport { CONTROL_STATE } from '../if-control-state/control-state.enum';\n\nconst CLASS_ERROR = 'clr-error';\nconst CLASS_SUCCESS = 'clr-success';\n\n@Injectable()\nexport class ControlClassService {\n  className = '';\n\n  constructor(@Optional() private layoutService: LayoutService) {}\n\n  controlClass(state: string, grid = false, additional = '') {\n    const controlClasses = [this.className, additional];\n\n    switch (state) {\n      case CONTROL_STATE.VALID:\n        controlClasses.push(CLASS_SUCCESS);\n        break;\n      case CONTROL_STATE.INVALID:\n        controlClasses.push(CLASS_ERROR);\n        break;\n    }\n\n    if (grid && this.layoutService && this.className.indexOf('clr-col') === -1) {\n      controlClasses.push(`clr-col-md-${this.layoutService.maxLabelSize - this.layoutService.labelSize} clr-col-12`);\n    }\n    return controlClasses.join(' ').trim();\n  }\n\n  // We want to remove the column classes from the input up to the container\n  initControlClass(renderer: Renderer2, element: HTMLElement) {\n    if (element && element.className) {\n      const klasses = element.className.split(' ');\n      const controlKlasses = [];\n\n      klasses.forEach(klass => {\n        if (klass.startsWith('clr-')) {\n          controlKlasses.push(klass);\n        }\n\n        if (klass.startsWith('clr-col')) {\n          renderer.removeClass(element, klass);\n        }\n      });\n\n      this.className = controlKlasses.join(' ').trim();\n    }\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { ContentChild, Directive, OnDestroy, Optional } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport { ClrControlError } from './control-subtexts/error';\nimport { ClrControlHelper } from './control-subtexts/helper';\nimport { ClrControlSuccess } from './control-subtexts/success';\nimport { CONTROL_STATE } from './if-control-state/control-state.enum';\nimport { ClrControlLabel } from './label';\nimport { ControlClassService } from './providers/control-class.service';\nimport { LayoutService } from './providers/layout.service';\nimport { NgControlService } from './providers/ng-control.service';\n\n@Directive()\nexport abstract class ClrAbstractContainer implements OnDestroy {\n  @ContentChild(ClrControlLabel, { static: false }) label: ClrControlLabel;\n  @ContentChild(ClrControlSuccess) controlSuccessComponent: ClrControlSuccess;\n  @ContentChild(ClrControlError) controlErrorComponent: ClrControlError;\n  @ContentChild(ClrControlHelper) controlHelperComponent: ClrControlHelper;\n\n  controls: NgControl[] = [];\n\n  protected subscriptions: Subscription[] = [];\n\n  constructor(\n    @Optional() protected layoutService: LayoutService,\n    protected controlClassService: ControlClassService,\n    protected ngControlService: NgControlService\n  ) {\n    this.subscriptions.push(\n      ngControlService.controlsChanges.subscribe(controls => {\n        this.controls = controls;\n      })\n    );\n\n    ngControlService.container = this;\n  }\n\n  get control() {\n    return this.controls[0];\n  }\n\n  /**\n   * @NOTE\n   * Helper control is a bit different than the others, it must be always visible:\n   *   -  Labels and instructions must always accompany forms and are persistent.\n   *   -  The recommendation here is to always have helper text or anything instructions visible.\n   *   -  The expectation is to have error text + helper text in the errored state. this way all users will have the helper text information always available.\n   */\n  get showHelper(): boolean {\n    /**\n     * @NOTE\n     * Saving the previous version in case something is changed. We'll return always true so we can be flexible\n     * and keep the condition per components.\n     *\n     * return (\n     * Helper Component exist and the state of the form is NONE (not touched)\n     * (!!this.controlHelperComponent && (!this.touched || this.state === CONTROL_STATE.NONE)) ||\n     * or there is no success component but the state of the form is VALID - show helper information\n     * (!!this.controlSuccessComponent === false && this.state === CONTROL_STATE.VALID) ||\n     * or there is no error component but the state of the form is INVALID - show helper information\n     * (!!this.controlErrorComponent === false && this.state === CONTROL_STATE.INVALID)\n     * );\n     */\n    return Boolean(this.controlHelperComponent);\n  }\n\n  /**\n   * We gonna set the helper control state, after all or most of the components\n   * are ready - also this will trigger some initial flows into wrappers and controls,\n   * like locating IDs  and setting  attributes.\n   */\n  get helpers() {\n    return {\n      show: this.showInvalid || this.showHelper || this.showValid,\n      showInvalid: this.showInvalid,\n      showHelper: this.showHelper,\n      showValid: this.showValid,\n    };\n  }\n\n  get showValid(): boolean {\n    return this.touched && this.state === CONTROL_STATE.VALID && this.successMessagePresent;\n  }\n\n  get showInvalid(): boolean {\n    return this.touched && this.state === CONTROL_STATE.INVALID && this.errorMessagePresent;\n  }\n\n  protected get successMessagePresent() {\n    return !!this.controlSuccessComponent;\n  }\n\n  protected get errorMessagePresent() {\n    return !!this.controlErrorComponent;\n  }\n\n  private get touched() {\n    return !!this.controls?.some(control => control.touched);\n  }\n\n  private get state() {\n    const controlStatuses = this.controls.map((control: NgControl) => {\n      return control.status;\n    });\n\n    // These status values are mutually exclusive, so a control\n    // cannot be both valid AND invalid or invalid AND disabled.\n    // if else order is important!\n    if (controlStatuses.includes(CONTROL_STATE.INVALID)) {\n      return CONTROL_STATE.INVALID;\n    } else if (controlStatuses.includes(CONTROL_STATE.VALID)) {\n      return CONTROL_STATE.VALID;\n    } else {\n      return null;\n    }\n  }\n\n  ngOnDestroy() {\n    this.subscriptions.forEach(subscription => subscription.unsubscribe());\n  }\n\n  controlClass() {\n    /**\n     * Decide what subtext to display:\n     *   - container is valid but no success component is implemented - use helper class\n     *   - container is valid and success component is implemented - use success class\n     *   - Pass form control state and return string of classes to be applied to the container.\n     */\n    const currentState = this.touched ? this.state : null;\n\n    return this.controlClassService.controlClass(currentState, this.addGrid());\n  }\n\n  addGrid() {\n    return this.layoutService && !this.layoutService.isVertical();\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component } from '@angular/core';\n\nimport { ClrAbstractContainer } from './abstract-container';\nimport { ControlClassService } from './providers/control-class.service';\nimport { ControlIdService } from './providers/control-id.service';\nimport { NgControlService } from './providers/ng-control.service';\n\n@Component({\n  selector: 'clr-control-container',\n  template: `\n    <ng-content select=\"label\"></ng-content>\n    @if (!label && addGrid()) {\n      <label></label>\n    }\n    <div class=\"clr-control-container\" [ngClass]=\"controlClass()\">\n      <div class=\"clr-input-wrapper\">\n        <ng-content></ng-content>\n      </div>\n      @if (showHelper) {\n        <ng-content select=\"clr-control-helper\"></ng-content>\n      }\n      @if (showInvalid) {\n        <ng-content select=\"clr-control-error\"></ng-content>\n      }\n      @if (showValid) {\n        <ng-content select=\"clr-control-success\"></ng-content>\n      }\n    </div>\n  `,\n  host: {\n    '[class.clr-form-control]': 'true',\n    '[class.clr-form-control-disabled]': 'control?.disabled',\n    '[class.clr-row]': 'addGrid()',\n  },\n  providers: [NgControlService, ControlIdService, ControlClassService],\n  standalone: false,\n})\nexport class ClrControlContainer extends ClrAbstractContainer {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable()\nexport class MarkControlService {\n  private _touched = new Subject<void>();\n\n  get touchedChange(): Observable<void> {\n    return this._touched.asObservable();\n  }\n\n  markAsTouched() {\n    this._touched.next();\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport {\n  Directive,\n  DoCheck,\n  ElementRef,\n  HostBinding,\n  HostListener,\n  InjectionToken,\n  Injector,\n  Input,\n  KeyValueDiffer,\n  KeyValueDiffers,\n  OnDestroy,\n  OnInit,\n  Renderer2,\n  Type,\n  ViewContainerRef,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { HostWrapper } from '@clr/angular/utils';\nimport { Subscription } from 'rxjs';\n\nimport { CONTROL_SUFFIX } from './abstract-control';\nimport { ContainerIdService } from './providers/container-id.service';\nimport { ControlClassService } from './providers/control-class.service';\nimport { ControlIdService } from './providers/control-id.service';\nimport { MarkControlService } from './providers/mark-control.service';\nimport { NgControlService } from './providers/ng-control.service';\n\nexport enum CHANGE_KEYS {\n  FORM = 'form',\n  MODEL = 'model',\n}\n\n@Directive()\nexport class WrappedFormControl<W> implements OnInit, DoCheck, OnDestroy {\n  _id: string;\n\n  protected controlIdService: ControlIdService;\n  protected ngControlService: NgControlService;\n  protected index = 0;\n  protected subscriptions: Subscription[] = [];\n\n  private controlClassService: ControlClassService;\n  private markControlService: MarkControlService;\n  private containerIdService: ContainerIdService;\n  private _containerInjector: Injector;\n  private differs: KeyValueDiffers;\n  private differ: KeyValueDiffer<any, any>;\n\n  // I lost way too much time trying to make this work without injecting the ViewContainerRef and the Injector,\n  // I'm giving up. So we have to inject these two manually for now.\n  constructor(\n    protected vcr: ViewContainerRef,\n    protected wrapperType: Type<W>,\n    injector: Injector,\n    private ngControl: NgControl | null,\n    protected renderer: Renderer2,\n    protected el: ElementRef<HTMLElement>\n  ) {\n    if (injector) {\n      this.ngControlService = injector.get(NgControlService, null);\n      this.markControlService = injector.get(MarkControlService, null);\n      this.differs = injector.get(KeyValueDiffers, null);\n    }\n\n    if (this.markControlService) {\n      this.subscriptions.push(\n        this.markControlService.touchedChange.subscribe(() => {\n          this.markAsTouched();\n        })\n      );\n    }\n  }\n\n  @Input()\n  @HostBinding()\n  get id() {\n    return this._id;\n  }\n  set id(value: string) {\n    this._id = value;\n    if (this.controlIdService) {\n      this.controlIdService.id = value;\n    }\n  }\n\n  @HostBinding('attr.aria-describedby')\n  private get ariaDescribedById(): string | null {\n    const helpers = this.ngControlService?.container?.helpers;\n\n    if (!helpers?.show) {\n      return null;\n    }\n\n    const elementId = this.containerIdService?.id || this.controlIdService?.id;\n    /**\n     * If ContainerIdService or ControlIdService are missing don't try to guess\n     * Don't set anything.\n     */\n    if (!elementId) {\n      return null;\n    }\n\n    /**\n     * As the helper text is now always visible. If we have error/success then we should use both ids.\n     */\n    const describedByIds = [`${elementId}-${CONTROL_SUFFIX.HELPER}`];\n    if (helpers.showInvalid) {\n      describedByIds.push(`${elementId}-${CONTROL_SUFFIX.ERROR}`);\n    } else if (helpers.showValid) {\n      describedByIds.push(`${elementId}-${CONTROL_SUFFIX.SUCCESS}`);\n    }\n\n    return describedByIds.join(' ');\n  }\n\n  ngOnInit() {\n    this._containerInjector = new HostWrapper(this.wrapperType, this.vcr, this.index);\n    this.controlIdService = this._containerInjector.get(ControlIdService);\n\n    this.injectControlClassService(this._containerInjector);\n\n    /**\n     * not all containers will provide `ContainerIdService`\n     */\n    this.containerIdService = this._containerInjector.get(ContainerIdService, null);\n\n    if (this._id) {\n      this.controlIdService.id = this._id;\n    } else {\n      this._id = this.controlIdService.id;\n    }\n\n    // 4 possible variations\n    // 1. NO  ngControlService and NO  ngControl\n    // 2. NO  ngControlService and YES ngControl\n    // 3. YES ngControlService and NO  ngControl\n    // 4. YES ngControlService and YES ngControl\n\n    if (this.ngControl) {\n      this.differ = this.differs.find(this.ngControl).create();\n    }\n\n    if (this.ngControlService && this.ngControl) {\n      this.ngControlService.addControl(this.ngControl);\n    }\n  }\n\n  ngDoCheck() {\n    if (this.ngControl) {\n      this.triggerDoCheck(this.differ, this.ngControl);\n    }\n  }\n\n  ngOnDestroy() {\n    this.subscriptions.forEach(sub => sub?.unsubscribe());\n  }\n\n  // blur HostListener decorator MUST be 1 and on the parent.\n  // overrides MUST NOT have HostListener decorator.\n  @HostListener('blur')\n  triggerValidation() {\n    if (this.ngControl?.control?.markAsTouched) {\n      this.ngControl.control.markAsTouched();\n    }\n  }\n\n  // @TODO This method has a try/catch due to an unknown issue that came when building the clrToggle feature\n  // We need to figure out why this fails for the ClrToggle scenario but works for Date picker...\n  // To see the error, remove the try/catch here and run the ClrToggle suite to see issues getting the container\n  // injector in time, and this ONLY HAPPENS in tests and not in dev/prod mode.\n  protected getProviderFromContainer<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T): T {\n    try {\n      return this._containerInjector.get(token, notFoundValue);\n      // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    } catch (e) {\n      return notFoundValue;\n    }\n  }\n\n  private injectControlClassService(injector: Injector) {\n    if (!this.controlClassService) {\n      this.controlClassService = injector.get(ControlClassService, null);\n      if (this.controlClassService) {\n        this.controlClassService.initControlClass(this.renderer, this.el.nativeElement);\n      }\n    }\n  }\n\n  private triggerDoCheck(differ: KeyValueDiffer<any, any>, ngControl: NgControl) {\n    if (differ) {\n      const changes = differ.diff(ngControl);\n      if (changes) {\n        changes.forEachChangedItem(change => {\n          if (\n            (change.key === CHANGE_KEYS.FORM || change.key === CHANGE_KEYS.MODEL) &&\n            change.currentValue !== change.previousValue\n          ) {\n            if (this.ngControlService) {\n              this.ngControlService.emitControlsChange(this.ngControlService.controls);\n            }\n\n            this.triggerValidation();\n          }\n        });\n      }\n    }\n  }\n\n  private markAsTouched(): void {\n    if (this.ngControlService && this.ngControlService.hasMultipleControls) {\n      this.ngControlService.controls.forEach((ngControl: NgControl) => {\n        ngControl.control.markAsTouched();\n        ngControl.control.updateValueAndValidity();\n      });\n\n      return;\n    }\n\n    if (this.ngControl) {\n      this.ngControl.control.markAsTouched();\n      this.ngControl.control.updateValueAndValidity();\n    }\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, ElementRef, Injector, Optional, Renderer2, Self, ViewContainerRef } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\nimport { ClrControlContainer } from './control-container';\nimport { WrappedFormControl } from './wrapped-control';\n\n@Directive({\n  selector: '[clrControl]',\n  host: { '[class.clr-input]': 'true' },\n  standalone: false,\n})\nexport class ClrControl extends WrappedFormControl<ClrControlContainer> {\n  protected override index = 1;\n\n  constructor(\n    vcr: ViewContainerRef,\n    injector: Injector,\n    @Self()\n    @Optional()\n    control: NgControl,\n    renderer: Renderer2,\n    el: ElementRef<HTMLElement>\n  ) {\n    super(vcr, ClrControlContainer, injector, control, renderer, el);\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { ContentChildren, Directive, HostListener, Input, QueryList } from '@angular/core';\n\nimport { ClrControlLabel } from './label';\nimport { LayoutService } from './providers/layout.service';\nimport { MarkControlService } from './providers/mark-control.service';\n\n@Directive({\n  selector: '[clrForm]',\n  providers: [LayoutService, MarkControlService],\n  host: {\n    '[class.clr-form]': 'true',\n    '[class.clr-form-horizontal]': 'layoutService.isHorizontal()',\n    '[class.clr-form-compact]': 'layoutService.isCompact()',\n  },\n  standalone: false,\n})\nexport class ClrForm {\n  @ContentChildren(ClrControlLabel, { descendants: true }) labels: QueryList<ClrControlLabel>;\n\n  constructor(\n    public layoutService: LayoutService,\n    private markControlService: MarkControlService\n  ) {}\n\n  @Input('clrLabelSize')\n  set labelSize(size: number | string) {\n    const sizeNumber = parseInt(size as string, 10) || 2;\n    this.layoutService.labelSize = sizeNumber;\n  }\n\n  @HostListener('submit')\n  onFormSubmit() {\n    this.markAsTouched();\n  }\n\n  // Trying to avoid adding an input and keep this backwards compatible at the same time\n  markAsTouched() {\n    this.markControlService.markAsTouched();\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, Optional } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgControl } from '@angular/forms';\nimport { merge, of, tap } from 'rxjs';\nimport { startWith, switchMap } from 'rxjs/operators';\n\nimport { NgControlService } from '../providers/ng-control.service';\n\n@Directive()\nexport abstract class AbstractIfState {\n  protected displayedContent = false;\n  protected controls: NgControl[];\n\n  protected constructor(@Optional() protected ngControlService: NgControlService) {\n    if (ngControlService) {\n      ngControlService.controlsChanges\n        .pipe(\n          tap(controls => {\n            this.controls = controls;\n          }),\n          switchMap(controls => {\n            if (!controls || controls.length === 0) {\n              return [];\n            }\n\n            const statusStreams = controls.map(c => this.getControlStatusChangesObservable(c));\n\n            return merge(...statusStreams);\n          }),\n          takeUntilDestroyed()\n        )\n        .subscribe(status => {\n          this.handleState(status);\n        });\n    }\n  }\n\n  protected handleState(_state: any): void {\n    /* overwrite in implementation to handle status change */\n  }\n\n  private getControlStatusChangesObservable(control: NgControl) {\n    if (!control.statusChanges) {\n      return of(null);\n    }\n\n    return control.statusChanges.pipe(startWith(control.status));\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, EmbeddedViewRef, Input, Optional, TemplateRef, ViewContainerRef } from '@angular/core';\n\nimport { AbstractIfState } from './abstract-if-state';\nimport { CONTROL_STATE } from './control-state.enum';\nimport { NgControlService } from '../providers/ng-control.service';\n\n@Directive({\n  selector: '[clrIfError]',\n  standalone: false,\n})\nexport class ClrIfError extends AbstractIfState {\n  @Input('clrIfError') error: string;\n\n  private embeddedViewRef: EmbeddedViewRef<any>;\n\n  constructor(\n    @Optional() ngControlService: NgControlService,\n    private template: TemplateRef<any>,\n    private container: ViewContainerRef\n  ) {\n    super(ngControlService);\n\n    if (!ngControlService) {\n      throw new Error('clrIfError can only be used within a form control container element like clr-input-container');\n    }\n  }\n  /**\n   * @param state CONTROL_STATE\n   */\n  protected override handleState(state: CONTROL_STATE) {\n    if (this.error && !!this.controls?.length) {\n      const invalidControl = this.controls?.filter(control => control.hasError(this.error))[0];\n      this.displayError(!!invalidControl, invalidControl);\n    } else {\n      this.displayError(CONTROL_STATE.INVALID === state);\n    }\n  }\n\n  private displayError(invalid: boolean, control = this.controls[0]) {\n    /* if no container do nothing */\n    if (!this.container) {\n      return;\n    }\n    if (invalid) {\n      if (this.displayedContent === false) {\n        this.embeddedViewRef = this.container.createEmbeddedView(this.template, {\n          error: control.getError(this.error),\n        });\n        this.displayedContent = true;\n      } else if (this.embeddedViewRef && this.embeddedViewRef.context) {\n        // if view is already rendered, update the error object to keep it in sync\n        this.embeddedViewRef.context.error = control.getError(this.error);\n      }\n    } else {\n      this.container.clear();\n      this.displayedContent = false;\n    }\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, Optional, TemplateRef, ViewContainerRef } from '@angular/core';\n\nimport { AbstractIfState } from './abstract-if-state';\nimport { CONTROL_STATE } from './control-state.enum';\nimport { NgControlService } from '../providers/ng-control.service';\n\n@Directive({\n  selector: '[clrIfSuccess]',\n  standalone: false,\n})\nexport class ClrIfSuccess extends AbstractIfState {\n  constructor(\n    @Optional() ngControlService: NgControlService,\n    private template: TemplateRef<any>,\n    private container: ViewContainerRef\n  ) {\n    super(ngControlService);\n\n    if (!ngControlService) {\n      throw new Error('ClrIfSuccess can only be used within a form control container element like clr-input-container');\n    }\n  }\n\n  /**\n   * @param state CONTROL_STATE\n   */\n  protected override handleState(state: CONTROL_STATE) {\n    const isValid = CONTROL_STATE.VALID === state;\n\n    if (isValid && !this.displayedContent) {\n      this.container.createEmbeddedView(this.template);\n    } else if (!isValid && this.container) {\n      this.container.clear();\n    }\n    this.displayedContent = isValid;\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, Input, OnInit } from '@angular/core';\n\nimport { ClrFormLayout, LayoutService } from './providers/layout.service';\n\n@Directive({\n  selector: '[clrForm][clrLayout]',\n  standalone: false,\n})\nexport class ClrLayout implements OnInit {\n  @Input('clrLayout') layout: ClrFormLayout | string;\n\n  constructor(public layoutService: LayoutService) {}\n\n  ngOnInit() {\n    // Only set the layout if it is a valid option\n    if (this.layout && this.layoutService.isValid(this.layout)) {\n      this.layoutService.layout = this.layout;\n    }\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ClarityIcons, ClrIcon, errorStandardIcon, successStandardIcon } from '@clr/angular/icon';\n\nimport { ClrControl } from './control';\nimport { ClrControlContainer } from './control-container';\nimport { ClrControlError } from './control-subtexts/error';\nimport { ClrControlHelper } from './control-subtexts/helper';\nimport { ClrControlSuccess } from './control-subtexts/success';\nimport { ClrForm } from './form';\nimport { ClrIfError } from './if-control-state/if-error';\nimport { ClrIfSuccess } from './if-control-state/if-success';\nimport { ClrControlLabel } from './label';\nimport { ClrLayout } from './layout';\n\n@NgModule({\n  imports: [CommonModule, ClrIcon],\n  declarations: [\n    ClrControlLabel,\n    ClrControlError,\n    ClrControlSuccess,\n    ClrControlHelper,\n    ClrIfError,\n    ClrIfSuccess,\n    ClrForm,\n    ClrLayout,\n    ClrControlContainer,\n    ClrControl,\n  ],\n  exports: [\n    ClrControlLabel,\n    ClrControlError,\n    ClrControlSuccess,\n    ClrControlHelper,\n    ClrIfError,\n    ClrIfSuccess,\n    ClrForm,\n    ClrLayout,\n    ClrControlContainer,\n    ClrControl,\n    ClrIcon,\n  ],\n})\nexport class ClrCommonFormsModule {\n  constructor() {\n    ClarityIcons.addIcons(successStandardIcon, errorStandardIcon);\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable()\nexport class FormsFocusService {\n  private _focused = new BehaviorSubject(false);\n  get focusChange(): Observable<boolean> {\n    return this._focused.asObservable();\n  }\n  set focused(state: boolean) {\n    this._focused.next(state);\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './abstract-container';\nexport * from './common.module';\nexport * from './control';\nexport * from './control-container';\nexport * from './control-subtexts/helper';\nexport * from './control-subtexts/error';\nexport * from './control-subtexts/success';\nexport * from './form';\nexport * from './if-control-state/if-error';\nexport * from './if-control-state/if-success';\nexport * from './if-control-state/abstract-if-state';\nexport * from './label';\nexport * from './layout';\nexport * from './providers/container-id.service';\nexport * from './providers/control-class.service';\nexport * from './providers/control-id.service';\nexport * from './providers/focus.service';\nexport * from './providers/layout.service';\nexport * from './providers/mark-control.service';\nexport * from './providers/ng-control.service';\nexport * from './wrapped-control';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["counter","i1.ControlIdService","i2.ContainerIdService","i2.LayoutService","i3.NgControlService","i1.LayoutService","i2.ControlClassService","i2.ClrControlLabel","i1","i2.MarkControlService","i1.NgControlService"],"mappings":"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"}