{"version":3,"file":"acorex-components-check-box.mjs","sources":["../../../../packages/components/check-box/src/lib/check-box.component.ts","../../../../packages/components/check-box/src/lib/check-box.component.html","../../../../packages/components/check-box/src/lib/check-box.module.ts","../../../../packages/components/check-box/src/acorex-components-check-box.ts"],"sourcesContent":["import { AXComponent, AXValuableComponent, MXColorComponent, MXValueComponent } from '@acorex/cdk/common';\n\nimport { AXLabelComponent } from '@acorex/components/label';\nimport { AXLoadingComponent } from '@acorex/components/loading';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n  Component,\n  ContentChildren,\n  HostBinding,\n  HostListener,\n  Input,\n  QueryList,\n  ViewEncapsulation,\n  forwardRef,\n  input,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\n\n/**\n * A checkbox component that allows users to select or deselect an option.\n *\n * @category Components\n */\n@Component({\n  selector: 'ax-check-box',\n  templateUrl: './check-box.component.html',\n  styleUrls: ['./check-box.component.css'],\n  inputs: ['disabled', 'tabIndex', 'readonly', 'color', 'value', 'name', 'id'],\n  outputs: ['onBlur', 'onFocus', 'valueChange', 'onValueChanged'],\n  encapsulation: ViewEncapsulation.None,\n\n  providers: [\n    { provide: AXValuableComponent, useExisting: AXCheckBoxComponent },\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => AXCheckBoxComponent),\n      multi: true,\n    },\n    { provide: AXComponent, useExisting: AXCheckBoxComponent },\n  ],\n  imports: [FormsModule, AXLoadingComponent],\n})\nexport class AXCheckBoxComponent extends classes(MXValueComponent<boolean>, MXColorComponent) {\n  isLoading = input(false);\n\n  /**\n   *  @ignore\n   */\n  @ContentChildren(AXLabelComponent)\n  private _labels: QueryList<AXLabelComponent>;\n\n  /**\n   * Sets the checkbox to an indeterminate state.\n   *\n   * @defaultValue false\n   */\n  @Input()\n  public indeterminate = false;\n\n  /**\n   *  @ignore\n   */\n  protected _stateIndeterminate = false;\n\n  /**\n   *  @ignore\n   */\n  protected override internalGetValue(value: unknown): boolean | null {\n    if (!this.indeterminate && value == null) {\n      return false;\n    }\n    if (this.indeterminate && value == null) {\n      return null;\n    }\n    return coerceBooleanProperty(value);\n  }\n\n  /**\n   * Sets the checkbox state based on the provided value.\n   *\n   * @param value - `boolean` or `null`. Determines if the checkbox is checked, unchecked, or indeterminate.\n   */\n  override internalSetValue(value: boolean | null) {\n    if (this.indeterminate && value == null) {\n      this._stateIndeterminate = true;\n      return null;\n    } else if (!this.indeterminate && value == null) {\n      this._stateIndeterminate = false;\n      return false;\n    } else {\n      this._stateIndeterminate = false;\n      return value == true ? true : false;\n    }\n  }\n\n  /**\n   *  @ignore\n   */\n  protected override ngOnInit(): void {\n    super.ngOnInit();\n    //\n    this.registerValidation();\n  }\n\n  /**\n   * @ignore\n   */\n\n  ngAfterViewInit() {\n    this._labels?.forEach((c) => {\n      //TODO: remove listener\n      c.getHostElement().addEventListener('click', () => {\n        this.changeValue();\n      });\n    });\n  }\n\n  /**\n   * @ignore\n   */\n  @HostListener('click', ['$event'])\n  _handleClick(e: UIEvent) {\n    e.stopPropagation();\n    if (this.readonly || this.disabled || this.isLoading()) {\n      e.preventDefault();\n      return false;\n    }\n    return true;\n  }\n\n  /**\n   *  @ignore\n   */\n  protected _handleModelChange(value: boolean | null) {\n    this.commitValue(value, true);\n  }\n\n  /**\n   * @ignore\n   */\n  @HostBinding('class')\n  private get __hostClass(): string {\n    return `${this.color ? this.color : 'ax-primary'}`;\n  }\n\n  protected changeValue() {\n    if (!this.readonly && !this.disabled && !this.isLoading()) {\n      this.commitValue(!this.value, true);\n    }\n  }\n}\n","<div class=\"ax-checkbox-label\" [class.ax-state-readonly]=\"readonly\" [class.ax-state-disabled]=\"disabled\">\n  <div class=\"ax-checkbox-start-side\">\n    @if (isLoading()) {\n      <div class=\"ax-loading-container\">\n        <ax-loading></ax-loading>\n      </div>\n    } @else {\n      <input\n        [id]=\"id\"\n        class=\"ax-check-box\"\n        type=\"checkbox\"\n        [indeterminate]=\"_stateIndeterminate\"\n        [ngModel]=\"value\"\n        (ngModelChange)=\"_handleModelChange($event)\"\n        [checked]=\"value\"\n        [disabled]=\"disabled\"\n        [readonly]=\"readonly\"\n        [tabindex]=\"tabIndex\"\n        (focus)=\"emitOnFocusEvent($event)\"\n        (blur)=\"emitOnBlurEvent($event)\"\n        #cb\n      />\n      <div class=\"ax-checkbox-background\" (click)=\"changeValue()\">\n        @if (cb.indeterminate) {\n          <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n            <rect x=\"3\" y=\"7\" width=\"10\" height=\"2\" />\n          </svg>\n        }\n        @if (cb.checked) {\n          <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n            <path\n              d=\"M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z\"\n            />\n          </svg>\n        }\n      </div>\n    }\n  </div>\n  <div class=\"ax-checkbox-end-side\">\n    <ng-content select=\"ax-label\"></ng-content>\n    <ng-content select=\"ax-form-hint\"></ng-content>\n    <span class=\"ax-error-container\"></span>\n  </div>\n</div>\n<ng-content select=\"ax-validation-rule\"></ng-content>\n","import { NgModule } from '@angular/core';\nimport { AXCheckBoxComponent } from './check-box.component';\n\n@NgModule({\n  imports: [AXCheckBoxComponent],\n  exports: [AXCheckBoxComponent],\n})\nexport class AXCheckBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}