{"version":3,"file":"material-zui-angular-checkbox.mjs","sources":["../../../../projects/material-zui/angular/checkbox/src/index.service.ts","../../../../projects/material-zui/angular/checkbox/src/index.component.ts","../../../../projects/material-zui/angular/checkbox/src/index.component.html","../../../../projects/material-zui/angular/checkbox/src/index.module.ts","../../../../projects/material-zui/angular/checkbox/material-zui-angular-checkbox.ts"],"sourcesContent":["import {Injectable} from '@angular/core'\nimport {FormControl, FormGroup} from '@angular/forms'\nimport {ZuiCheckboxComponent} from './index.component'\n\n@Injectable({providedIn: 'root'})\nexport class ZUICheckboxService {\n  #checkAll = new Map<string, ZuiCheckboxComponent>()\n  #checkbox = new Map<string, FormGroup>()\n\n  #getFormGroup = (groupName: string): FormGroup | undefined => this.#checkbox.get(groupName)\n\n  addControl = (value: {name: string; groupName: string; formControl: FormControl}): void => {\n    const {name, groupName, formControl} = value\n    const groupCheckbox = this.#checkbox.get(groupName)\n    if (groupCheckbox) {\n      groupCheckbox.addControl(name, formControl)\n    } else {\n      this.#checkbox.set(groupName, new FormGroup({[name]: formControl}))\n    }\n  }\n\n  addControlCheckAll = (component: ZuiCheckboxComponent): void => {\n    this.#checkAll.set(component.groupName, component)\n  }\n\n  removeControl = (groupName: string, name: string): void => {\n    const formGroup = this.#getFormGroup(groupName)\n    formGroup?.removeControl(name)\n  }\n\n  change = (input: {name: string; groupName: string; value: boolean}): void => {\n    const {name, groupName, value} = input\n    const formGroup = this.#getFormGroup(groupName)\n    if (formGroup) {\n      const arrayValue = Object.values(formGroup.value)\n      const isCheckAll = arrayValue.every(Boolean)\n      const isExistCheck = arrayValue.some(Boolean)\n      const checkAllComponent = this.#checkAll.get(groupName)\n\n      formGroup.patchValue({[name]: value})\n      if (checkAllComponent) {\n        checkAllComponent.indeterminate = false\n        checkAllComponent.formControl.setValue(false)\n        if (isCheckAll) {\n          checkAllComponent.formControl.setValue(true)\n        } else if (isExistCheck) {\n          setTimeout(() => (checkAllComponent.indeterminate = true))\n        }\n      }\n    }\n  }\n\n  changeAll = (groupName: string, value: boolean): void => {\n    const formGroup = this.#getFormGroup(groupName)\n    formGroup?.setValue(Object.keys(formGroup.value).reduce((acc, item) => ({...acc, [item]: value}), {}))\n  }\n}\n","import {Component, EventEmitter, Input, Output} from '@angular/core'\nimport {FormControl, FormGroup, NgForm, ValidatorFn, Validators} from '@angular/forms'\nimport {Subscription} from 'rxjs'\n\nimport {REQUIRED} from '@material-zui/angular/data'\nimport {IInputVal} from '@material-zui/angular/type'\nimport * as ZuiB from '@material-zui/core/boolean'\nimport {uuid} from '@material-zui/core/faker'\nimport {ZUICheckboxService} from './index.service'\nimport {ZuiCheckboxStatus, ZuiCheckboxType, ILabelPosition} from './type'\n\n@Component({\n  selector: 'zui-checkbox',\n  templateUrl: './index.component.html',\n  styleUrls: ['./index.component.scss'],\n})\nexport class ZuiCheckboxComponent {\n  @Input() label!: string\n  @Input() name: string = uuid()\n  @Input() validateMsg: string = REQUIRED\n  @Input() groupName!: string\n\n  /**\n   * \"checkbox\" | \"slide\"\n   */\n  @Input() type: ZuiCheckboxType = 'checkbox'\n\n  /**\n   * \"primary\" | \"accent\" | \"warn\"\n   */\n  @Input() status: ZuiCheckboxStatus = 'primary'\n\n  @Input() color!: string\n  @Input() rippleColor!: string\n\n  @Input() disabledValidate: boolean = false\n  @Input() indeterminate: boolean = false\n\n  /**\n   * \"before\" | \"after\"\n   */\n  @Input() position: ILabelPosition = 'after'\n\n  requiredVal: boolean = false\n  @Input() set required(val: IInputVal) {\n    this.requiredVal = ZuiB.toBool(val)\n  }\n\n  isCheckAll: boolean = false\n  @Input() set checkAll(val: IInputVal) {\n    this.isCheckAll = ZuiB.toBool(val)\n  }\n\n  disabledVal: boolean = false\n  @Input() set disabled(val: IInputVal) {\n    this.disabledVal = ZuiB.toBool(val)\n  }\n\n  /**\n   * disable select text\n   */\n  @Input() set disabledSelect(val: IInputVal) {\n    this.disabledSelectVal = ZuiB.toBool(val)\n  }\n  disabledSelectVal: boolean = false\n\n  allowToggle: boolean = true\n  @Input() set disabledToggle(val: IInputVal) {\n    this.allowToggle = ZuiB.toBoolReverse(val)\n  }\n\n  @Input() set model(value: boolean) {\n    this.formControl.setValue(value)\n    // if (this.groupName) {\n    //   if (this.isCheckAll) {\n    //     this.zuiCheckboxService.addControlCheckAll(this)\n    //   } else {\n    //     // console.log('ngAfterViewInit', this.name, this.formControl.value)\n    //     this.zuiCheckboxService.addControl({groupName: this.groupName, formControl: this.formControl, name: this.name})\n    //     this.zuiCheckboxService.change({name: this.name, groupName: this.groupName, value: this.formControl.value})\n    //   }\n    // }\n  }\n\n  #form!: FormGroup\n  @Input() set form(val: NgForm | FormGroup) {\n    if (val) {\n      if (val instanceof NgForm) {\n        this.#form = val.form\n      } else {\n        this.#form = val\n      }\n    }\n  }\n\n  @Output() modelChange = new EventEmitter<boolean>()\n  @Output() indeterminateChange = new EventEmitter<boolean>()\n\n  #subscription = new Subscription()\n  formControl = new FormControl()\n\n  constructor(private zuiCheckboxService: ZUICheckboxService) {}\n\n  ngOnInit(): void {\n    this.#subscription.add(\n      this.formControl.valueChanges.subscribe(value => {\n        this.modelChange.emit(!!value)\n      })\n    )\n  }\n\n  ngOnChanges(): void {\n    this.formControl.clearValidators()\n    const validators: ValidatorFn[] = []\n    if (this.requiredVal) validators.push(Validators.requiredTrue)\n    this.formControl.setValidators(validators)\n\n    if (this.disabledVal) this.formControl.disable()\n    if (!this.status) this.status = 'primary'\n    if (!this.rippleColor) this.rippleColor = this.color\n  }\n\n  ngAfterViewInit(): void {\n    this.#form?.addControl(this.name, this.formControl)\n    if (this.groupName) {\n      if (this.isCheckAll) {\n        this.zuiCheckboxService.addControlCheckAll(this)\n      } else {\n        this.zuiCheckboxService.addControl({groupName: this.groupName, formControl: this.formControl, name: this.name})\n        // this.zuiCheckboxService.change({name: this.name, groupName: this.groupName, value: this.formControl.value})\n      }\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.#subscription.unsubscribe()\n    if (this.groupName) this.zuiCheckboxService.removeControl(this.groupName, this.name)\n  }\n\n  onIndeterminateChange = (value: boolean): void => {\n    this.indeterminateChange.emit(value)\n  }\n\n  onChange = (value: boolean): void => {\n    if (this.groupName) {\n      if (this.isCheckAll) {\n        this.zuiCheckboxService.changeAll(this.groupName, value)\n      } else {\n        this.zuiCheckboxService.change({name: this.name, groupName: this.groupName, value})\n      }\n    }\n  }\n}\n","<div class=\"d-inline-flex flex-column\">\n  <ng-container *ngIf=\"type === 'checkbox'\">\n    <ng-container *ngIf=\"color\">\n      <mat-checkbox\n        style=\"--c: {{ color }}; --cRipple: {{ rippleColor }}\"\n        class=\"zui-checkbox-color\"\n        [formControl]=\"formControl\"\n        [labelPosition]=\"position\"\n        [indeterminate]=\"indeterminate\"\n        (indeterminateChange)=\"onIndeterminateChange($event)\"\n        (change)=\"onChange($event.checked)\"\n      >\n        {{ label }}\n      </mat-checkbox>\n      <mat-error *ngIf=\"!disabledValidate && formControl?.hasError('required')\" class=\"zui-checkbox-error\">{{ validateMsg }}</mat-error>\n    </ng-container>\n    <ng-container *ngIf=\"!color && status\">\n      <mat-checkbox\n        [formControl]=\"formControl\"\n        [labelPosition]=\"position\"\n        [color]=\"status\"\n        [indeterminate]=\"indeterminate\"\n        (indeterminateChange)=\"onIndeterminateChange($event)\"\n        (change)=\"onChange($event.checked)\"\n      >\n        {{ label }}\n      </mat-checkbox>\n      <mat-error *ngIf=\"!disabledValidate && formControl?.hasError('required')\" class=\"zui-checkbox-error\">{{ validateMsg }}</mat-error>\n    </ng-container>\n  </ng-container>\n\n  <ng-container *ngIf=\"type === 'slide'\">\n    <ng-container *ngIf=\"color\">\n      <mat-slide-toggle\n        style=\"--c: {{ color }}\"\n        class=\"zui-checkbox-color\"\n        [class.zui-noselect]=\"disabledSelectVal\"\n        [formControl]=\"formControl\"\n        [labelPosition]=\"position\"\n        (change)=\"onChange($event.checked)\"\n      >\n        {{ label }}\n      </mat-slide-toggle>\n      <mat-error *ngIf=\"!disabledValidate && formControl?.hasError('required')\" class=\"zui-checkbox-error mt-2\">{{ validateMsg }}</mat-error>\n    </ng-container>\n    <ng-container *ngIf=\"!color && status\">\n      <mat-slide-toggle [color]=\"status\" class=\"zui-checkbox-color\" [class.zui-noselect]=\"disabledSelectVal\" [formControl]=\"formControl\" [labelPosition]=\"position\" (change)=\"onChange($event.checked)\">\n        {{ label }}\n      </mat-slide-toggle>\n      <mat-error *ngIf=\"!disabledValidate && formControl?.hasError('required')\" class=\"zui-checkbox-error mt-2\">{{ validateMsg }}</mat-error>\n    </ng-container>\n  </ng-container>\n</div>\n","import {NgModule} from '@angular/core'\nimport {ZuiAngularModule} from '@material-zui/angular/modules'\nimport {ZuiCheckboxComponent} from './index.component'\n\n@NgModule({\n  imports: [ZuiAngularModule],\n  declarations: [ZuiCheckboxComponent],\n  exports: [ZuiCheckboxComponent],\n})\nexport class ZuiCheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ZUICheckboxService"],"mappings":"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"}