{"version":3,"file":"material-zui-angular-chip.mjs","sources":["../../../../projects/material-zui/angular/chip/src/index.component.ts","../../../../projects/material-zui/angular/chip/src/index.component.html","../../../../projects/material-zui/angular/chip/src/index.module.ts","../../../../projects/material-zui/angular/chip/material-zui-angular-chip.ts"],"sourcesContent":["import {COMMA, ENTER} from '@angular/cdk/keycodes'\nimport {Component, ElementRef, EventEmitter, HostBinding, Input, Output, ViewChild, forwardRef} from '@angular/core'\nimport {AbstractControl, AsyncValidatorFn, ControlValueAccessor, FormControl, FormGroup, NG_VALUE_ACCESSOR, NgForm, ValidationErrors} from '@angular/forms'\nimport {MatAutocompleteSelectedEvent, MatAutocompleteTrigger} from '@angular/material/autocomplete'\nimport {MatChipGrid, MatChipInputEvent} from '@angular/material/chips'\nimport {MatFormFieldAppearance} from '@angular/material/form-field'\nimport {TooltipPosition} from '@angular/material/tooltip'\nimport * as $ from 'jquery'\nimport {Subject, Subscription, timer} from 'rxjs'\nimport {debounce, debounceTime, distinctUntilChanged} from 'rxjs/operators'\n\nimport {DEFAULT_DELAY, MAX_MSG, MIN_MSG, REQUIRED, WIDTH} from '@material-zui/angular/data'\nimport {IInputVal, IValidatorMessage, Items, ZuiGetError} from '@material-zui/angular/type'\nimport {toBool, toBoolReverse} from '@material-zui/core/boolean'\nimport {uuid} from '@material-zui/core/faker'\nimport {format} from '@material-zui/core/number'\nimport {isPromise} from '@material-zui/core/promise'\nimport {ZuiNullable} from '@material-zui/core/type'\nimport {IDataChange, IStyle, ZCInputTokenEndFunc, ZCValidatorFunc} from './type'\n\n@Component({\n  selector: 'zui-chip',\n  templateUrl: './index.component.html',\n  styleUrls: ['./index.component.scss', '../../assets/scss/style.scss'],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => ZuiChipComponent),\n      multi: true,\n    },\n  ],\n})\nexport class ZuiChipComponent implements ControlValueAccessor {\n  @Input() label!: string\n  @Input() placeholder!: string\n  @Input() valueField!: string\n  @Input() displayField!: string\n  @Input() colorField!: string\n  @Input() bgColorField!: string\n  @Input() srcImageField!: string\n  @Input() removableField!: string\n  @Input() hintStart!: string\n  @Input() hintEnd!: string\n  @Input() selected!: number\n  @Input() name: string = `zui-chip-${uuid()}`\n\n  @Input() max!: number\n  @Input() min!: number\n\n  @Input() items: Items = []\n\n  /** import {ENTER, COMMA, TAB} from '@angular/cdk/keycodes' */\n  @Input() separatorKeysCodes: number[] = [ENTER, COMMA]\n\n  @Input() mode: 'input' | 'view' = 'input'\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  /** \"legacy\" | \"standard\" | \"fill\" | \"outline\"*/\n  @Input() appearance: MatFormFieldAppearance = 'outline'\n\n  @Input() disabledValidate: boolean = false\n\n  @Input() validatorMessage!: IValidatorMessage\n  validatorMessageDefault: IValidatorMessage = {required: REQUIRED}\n  validatorMessageVal: IValidatorMessage = this.validatorMessageDefault\n\n  @Input() set model(value: any[]) {\n    this.formControl.setValue(value)\n  }\n\n  @Input() set required(val: IInputVal) {\n    this.requiredVal = toBool(val)\n  }\n  requiredVal: boolean = false\n\n  @Input('disabledTooltip') set _disabledTooltip(val: IInputVal) {\n    this.disabledTooltip = toBool(val)\n  }\n  disabledTooltip: boolean = false\n\n  @Input() tooltipPosition: TooltipPosition = 'above'\n\n  @Input() set wrapItem(val: IInputVal) {\n    this.wrapItemVal = toBool(val)\n    if (this.wrapItemVal) this.disabledTooltip = true\n  }\n  wrapItemVal: boolean = false\n\n  @Input() set delay(val: number) {\n    this.#delay = val\n  }\n  #delay!: number\n\n  /** default \"200px\", eg: \"300px\", \"400em\", \"500rem\" */\n  @Input() set width(val: string) {\n    this.widthVal = val\n    this.fullWidth = false\n  }\n  widthVal: string = WIDTH\n\n  @Input() set noFullWidth(val: IInputVal) {\n    this.fullWidth = toBoolReverse(val)\n  }\n  fullWidth: boolean = true\n\n  @Input() set noDuplicate(val: IInputVal) {\n    this.allowDuplicate = toBoolReverse(val)\n  }\n  allowDuplicate: boolean = true\n\n  @Input() set validateFirst(val: IInputVal) {\n    this.validateFirstVal = toBool(val)\n  }\n  validateFirstVal: boolean = false\n\n  /** load items data when init component, use for case Items is return a Promise */\n  @Input() set loadOnInit(val: IInputVal) {\n    this.loadOnInitVal = toBool(val)\n  }\n  loadOnInitVal: boolean = false\n\n  @Input() set disabledRemove(val: IInputVal) {\n    this.disabledRemoveVal = toBool(val)\n  }\n  disabledRemoveVal: boolean = false\n\n  @Input() set disabledInput(val: IInputVal) {\n    this.disabledInputVal = toBool(val)\n    if (toBool(val)) {\n      this.inputControl.disable()\n    } else {\n      this.inputControl.enable()\n    }\n  }\n  disabledInputVal: boolean = false\n\n  @Input() set chipFullWidth(val: IInputVal) {\n    this.chipFullWidthVal = toBool(val)\n  }\n  chipFullWidthVal: boolean = false\n\n  @Input() set disabled(val: IInputVal) {\n    if (toBool(val)) {\n      this.formControl.disable()\n    } else {\n      this.formControl.enable()\n    }\n  }\n\n  @Input() set caseSensitive(val: IInputVal) {\n    this.caseSensitiveVal = toBool(val)\n  }\n  caseSensitiveVal!: boolean\n\n  @Input() set disabledFreeText(val: IInputVal) {\n    this.allowFreeText = toBoolReverse(val)\n  }\n  allowFreeText: boolean = true\n\n  @Input() set validator(validator: ZCValidatorFunc) {\n    this.#validator = validator\n  }\n  #validator!: ZCValidatorFunc\n\n  @Input() set inputTokenEnd(inputTokenEnd: ZCInputTokenEndFunc) {\n    this.#inputTokenEnd = inputTokenEnd\n  }\n  #inputTokenEnd!: ZCInputTokenEndFunc\n\n  @Output() modelChange = new EventEmitter<any[]>()\n  @Output() dataChange = new EventEmitter<IDataChange>()\n\n  @ViewChild('input') input!: ElementRef<HTMLInputElement>\n  @ViewChild('chipGrid') chipGrid!: MatChipGrid\n  @ViewChild('autoComplete', {read: MatAutocompleteTrigger}) autoComplete!: MatAutocompleteTrigger\n\n  @HostBinding('class.d-inline-block') get inlineBlock() {\n    return !this.fullWidth\n  }\n  @HostBinding('class.d-block') get block() {\n    return this.fullWidth\n  }\n\n  #subscription = new Subscription()\n  #updatePosSubject = new Subject()\n  inputControl = new FormControl()\n  formControl = new FormControl()\n\n  filteredItems: any[] = []\n  selectedItems: any[] = []\n\n  loading: boolean = false\n  focusToLoad: boolean = true\n\n  ngOnInit(): void {\n    this.#subscription.add(\n      this.inputControl.valueChanges\n        .pipe(\n          debounce(() => timer(this.#delay)),\n          distinctUntilChanged()\n        )\n        .subscribe(this.#setFilteredItem)\n    )\n    this.#subscription.add(this.#updatePosSubject.pipe(debounceTime(200)).subscribe(() => this.autoComplete.updatePosition()))\n  }\n\n  ngAfterViewInit(): void {\n    this.#form?.addControl(this.name, this.formControl)\n    $('body *')\n      .on('wheel', (e: JQuery.Event) => {\n        if (this.autoComplete?.panelOpen) e.preventDefault()\n      })\n      .on('scroll', (_e: JQuery.Event) => {\n        if (this.autoComplete?.panelOpen) this.#updatePosSubject.next(null)\n      })\n  }\n\n  async ngOnChanges(): Promise<void> {\n    await this.#loadOnInit()\n    this.#setSelectedItem()\n    this.#setLengthValidate()\n    this.#setDelayTime()\n    this.#updateValidator()\n  }\n\n  ngOnDestroy(): void {\n    this.#subscription.unsubscribe()\n    $('body *').off()\n  }\n\n  get selectedValue(): any[] {\n    return (this.selectedItems?.length > 0 ? this.selectedItems.map(item => item[this.valueField]) : null) as any\n  }\n\n  get itemsIsArray(): boolean {\n    return Array.isArray(this.items)\n  }\n\n  get error(): ZuiGetError {\n    if (!this.disabledValidate) {\n      const {required, max, min} = this.validatorMessageVal\n      if (this.formControl?.hasError('required')) return required\n      if (this.formControl?.hasError('min')) return min\n      if (this.formControl?.hasError('max')) return max\n      if (this.formControl?.hasError('validatorError') || this.formControl?.hasError('validatorMsg')) return this.formControl.errors?.['validatorMsg']\n    }\n    return false\n  }\n\n  #searchItems = async (searchTerm: string, isCallSearch: boolean = true): Promise<any[]> => {\n    try {\n      let items = Array.isArray(this.items) ? this.items : []\n      if (typeof this.items === 'function' && isCallSearch) {\n        this.loading = true\n        items = await this.items(searchTerm)\n      }\n      return items\n    } catch {\n      return []\n    } finally {\n      this.loading = false\n    }\n  }\n\n  #setFilteredItem = async (searchTerm: string = ''): Promise<void> => {\n    if (typeof searchTerm === 'string') {\n      const items = await this.#searchItems(searchTerm)\n      const filteredItems = this.caseSensitiveVal\n        ? items.filter(item => item?.[this.displayField]?.includes(searchTerm))\n        : items.filter(item => (item?.[this.displayField] ?? '').toLowerCase().includes(searchTerm))\n      this.filteredItems = this.allowDuplicate ? filteredItems : filteredItems.filter(item => !this.selectedValue?.includes(item?.[this.valueField]))\n    }\n  }\n\n  #loadOnInit = async (): Promise<void> => {\n    if (this.loadOnInitVal) {\n      await this.#setFilteredItem()\n      this.loadOnInitVal = false\n      this.focusToLoad = false\n    }\n  }\n\n  #setSelectedItem = (): void => {\n    const values: any[] = this.formControl?.value\n    let items = this.itemsIsArray ? (this.items as any[]) : []\n    if (typeof this.items === 'function') items = [...this.selectedItems, ...this.filteredItems]\n    this.selectedItems = values\n      ? values\n          .map(value => {\n            const found = items?.find(item => item?.[this.valueField] === value)\n            if (found) return found\n            if (this.allowFreeText) return {[this.valueField]: value, [this.displayField]: value}\n          })\n          .filter(Boolean)\n      : []\n  }\n\n  #setDelayTime = (): void => {\n    if (this.#delay === undefined) {\n      if (typeof this.items === 'function') {\n        this.#delay = DEFAULT_DELAY\n      } else {\n        this.#delay = 0\n      }\n    }\n  }\n\n  #lengthError = (message: string, number?: number): string => `${message} ${number ? format(number) : ''}`\n\n  #setLengthValidate = (): void => {\n    let {min, max} = this.validatorMessage ?? {}\n    if (!max) max = this.#lengthError(MAX_MSG, this.max)\n    if (!min) min = this.#lengthError(MIN_MSG, this.min)\n    this.validatorMessageVal = {...this.validatorMessageDefault, ...this.validatorMessage, min, max}\n  }\n\n  #emitValue = (): void => {\n    const selectedValue = this.selectedValue\n    const selectedItems = this.valueField && this.displayField ? this.selectedItems : selectedValue\n    this.dataChange.emit({selectedValue, selectedItems})\n    this.modelChange.emit(this.selectedValue)\n    this.formControl.setValue(this.selectedValue)\n    this.formControl.markAllAsTouched()\n  }\n\n  #updateValidator = (): void => {\n    this.formControl.clearAsyncValidators()\n    const asyncValidators: AsyncValidatorFn[] = []\n    if (!!this.#validator) asyncValidators.push(this.#customValidator())\n    if (this.min || this.max) asyncValidators.push(this.#minMaxValidator())\n    this.formControl.setAsyncValidators(asyncValidators)\n    this.formControl.updateValueAndValidity()\n    if (this.validateFirstVal) this.formControl.markAllAsTouched()\n  }\n\n  #minMaxValidator =\n    (): AsyncValidatorFn =>\n    async (c: AbstractControl): Promise<ZuiNullable<ValidationErrors>> => {\n      const values = c?.value ?? ''\n      if (this.min && values.length < this.min) return {min: this.min}\n      if (this.max && values.length > this.max) return {max: this.max}\n      return null\n    }\n\n  #customValidator =\n    (): AsyncValidatorFn =>\n    async (c: AbstractControl): Promise<ValidationErrors | null> => {\n      this.#setSelectedItem()\n      const value = c?.value ?? []\n      const validator = this.#validator(value, this.selectedItems)\n      let validatorMsg: ZuiNullable<string> = null\n      let validatorError: boolean = !!validator\n      if (typeof validator === 'string') {\n        validatorMsg = validator\n      } else if (typeof validator === 'boolean') {\n        validatorError = !validator\n      } else if (validator instanceof Promise) {\n        const resultValidator = await validator\n        if (typeof resultValidator === 'string') {\n          validatorMsg = resultValidator\n        } else if (typeof resultValidator === 'boolean') {\n          validatorError = !resultValidator\n        }\n      }\n      return validatorError ? {validatorError, validatorMsg} : null\n    }\n\n  #onInputTokenEnd = async (event: MatChipInputEvent): Promise<void> => {\n    try {\n      if (!!this.#inputTokenEnd) {\n        this.loading = true\n        const execute = this.#inputTokenEnd(event, this.chipGrid)\n        if (isPromise(execute)) await execute\n      }\n    } finally {\n      this.loading = false\n    }\n  }\n\n  onChange(_: any): void {}\n\n  registerOnTouched(): void {}\n\n  registerOnChange(fn: () => void): void {\n    this.onChange = fn\n  }\n\n  writeValue = (value: string): void => {\n    this.formControl.setValue(value)\n  }\n\n  onFocus = async (_e?: Event): Promise<void> => {\n    if (this.focusToLoad) {\n      await this.#setFilteredItem()\n      this.focusToLoad = false\n      setTimeout(() => {\n        this.autoComplete?.openPanel()\n        this.autoComplete?.updatePosition()\n      }, 0)\n    }\n  }\n\n  add = async (event: MatChipInputEvent): Promise<void> => {\n    if (this.allowFreeText) {\n      const value = event.value.trim()\n      if (value) {\n        this.selectedItems.push({[this.valueField]: value, [this.displayField]: value})\n        this.input.nativeElement.value = ''\n        this.focusToLoad = true\n        this.#emitValue()\n        this.onFocus()\n      }\n    }\n    await this.#onInputTokenEnd(event)\n  }\n\n  remove = (removeItem: any): void => {\n    this.selectedItems = this.selectedItems.filter(item => item[this.valueField] !== removeItem[this.valueField])\n    this.focusToLoad = true\n    this.#emitValue()\n    this.onFocus()\n  }\n\n  onSelected = (event: MatAutocompleteSelectedEvent): void => {\n    this.selectedItems.push(event.option.value)\n    this.focusToLoad = true\n    this.filteredItems = []\n    this.input.nativeElement.value = ''\n    this.#emitValue()\n    this.onFocus()\n  }\n\n  styleChip = (item: any): IStyle => {\n    const color = item?.[this.colorField]\n    const bgColor = item?.[this.bgColorField]\n    return {'background-color': bgColor, color}\n  }\n\n  allowRemovable = (item: any): boolean => item?.[this.removableField] ?? true\n}\n","<mat-form-field *ngIf=\"mode === 'input'\" class=\"zui-chip\" [class.w-100]=\"fullWidth\" [appearance]=\"appearance\" [ngStyle]=\"{width: widthVal}\">\n  <mat-label>{{ label }}</mat-label>\n  <mat-chip-grid #chipGrid [required]=\"!disabledValidate && requiredVal\" [formControl]=\"formControl\">\n    <ng-container *ngIf=\"disabledRemoveVal; else removable\">\n      <mat-chip-row *ngFor=\"let item of selectedItems\" class=\"zui-chip__row\" [class.w-100]=\"chipFullWidthVal\" [value]=\"selected\" [ngStyle]=\"styleChip(item)\" [removable]=\"false\">\n        <mat-chip-avatar *ngIf=\"srcImageField && item[srcImageField]\">\n          <img class=\"zui-chip__img\" [src]=\"item[srcImageField]\" [alt]=\"item[valueField]\" />\n        </mat-chip-avatar>\n        {{ item[displayField] }}\n      </mat-chip-row>\n    </ng-container>\n    <ng-template #removable>\n      <mat-chip-row\n        *ngFor=\"let item of selectedItems\"\n        class=\"zui-chip__row\"\n        [class.w-100]=\"chipFullWidthVal\"\n        [value]=\"selected\"\n        [removable]=\"allowRemovable(item)\"\n        (removed)=\"remove(item)\"\n        [ngStyle]=\"styleChip(item)\"\n      >\n        <mat-chip-avatar *ngIf=\"srcImageField && item[srcImageField]\">\n          <img class=\"zui-chip__img\" [src]=\"item[srcImageField]\" [alt]=\"item[valueField]\" />\n        </mat-chip-avatar>\n        <span class=\"d-flex-1\">{{ item[displayField] }}</span>\n        <mat-icon *ngIf=\"allowRemovable(item)\" matChipRemove>cancel</mat-icon>\n      </mat-chip-row>\n    </ng-template>\n    <input\n      #input\n      #autoComplete\n      [class.d-none]=\"disabledInputVal || !allowFreeText\"\n      [placeholder]=\"placeholder\"\n      [formControl]=\"inputControl\"\n      [matAutocomplete]=\"auto\"\n      [matChipInputFor]=\"chipGrid\"\n      [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n      (matChipInputTokenEnd)=\"add($event)\"\n      (focus)=\"onFocus($event)\"\n    />\n    <input\n      #input\n      #autoComplete\n      [class.d-none]=\"disabledInputVal || allowFreeText\"\n      [placeholder]=\"placeholder\"\n      [formControl]=\"inputControl\"\n      [matAutocomplete]=\"auto\"\n      [matChipInputFor]=\"chipGrid\"\n      (matChipInputTokenEnd)=\"add($event)\"\n      (focus)=\"onFocus($event)\"\n    />\n    <mat-spinner matSuffix *ngIf=\"loading\" strokeWidth=\"2\" mode=\"indeterminate\" diameter=\"18\" value=\"100\"></mat-spinner>\n  </mat-chip-grid>\n\n  <mat-error *ngIf=\"error\">{{ error }}</mat-error>\n  <mat-hint *ngIf=\"hintStart\" [align]=\"'start'\">{{ hintStart }}</mat-hint>\n  <mat-hint *ngIf=\"hintEnd\" [align]=\"'end'\">{{ hintEnd }}</mat-hint>\n  <mat-hint *ngIf=\"!hintEnd && !min && max\" [align]=\"'end'\">{{ selectedItems.length }}/{{ max }}</mat-hint>\n  <mat-hint *ngIf=\"!hintEnd && min && max\" [align]=\"'end'\">{{ selectedItems.length }}/({{ min }}-{{ max }})</mat-hint>\n\n  <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onSelected($event)\">\n    <mat-option\n      *ngFor=\"let item of filteredItems\"\n      [value]=\"item\"\n      [matTooltip]=\"item[displayField]\"\n      [matTooltipDisabled]=\"disabledTooltip\"\n      [matTooltipPosition]=\"tooltipPosition\"\n      [class.zui-option-wrap]=\"wrapItemVal\"\n    >\n      {{ item[displayField] }}\n    </mat-option>\n  </mat-autocomplete>\n</mat-form-field>\n\n<mat-chip-listbox *ngIf=\"mode === 'view'\" #chipGrid [required]=\"!disabledValidate && requiredVal\" [formControl]=\"formControl\">\n  <ng-container *ngIf=\"disabledRemoveVal; else removable\">\n    <mat-chip *ngFor=\"let item of selectedItems\" class=\"zui-chip__row\" [class.w-100]=\"chipFullWidthVal\" [value]=\"selected\" [ngStyle]=\"styleChip(item)\" [removable]=\"false\">\n      <img *ngIf=\"srcImageField && item[srcImageField]\" matChipAvatar [src]=\"item[srcImageField]\" [alt]=\"item[valueField]\" />\n      {{ item[displayField] }}\n    </mat-chip>\n  </ng-container>\n  <ng-template #removable>\n    <mat-chip\n      *ngFor=\"let item of selectedItems\"\n      class=\"zui-chip__row\"\n      [class.w-100]=\"chipFullWidthVal\"\n      [value]=\"selected\"\n      [removable]=\"allowRemovable(item)\"\n      (removed)=\"remove(item)\"\n      [ngStyle]=\"styleChip(item)\"\n    >\n      <img *ngIf=\"srcImageField && item[srcImageField]\" matChipAvatar [src]=\"item[srcImageField]\" [alt]=\"item[valueField]\" />\n      <span class=\"d-flex-1\">{{ item[displayField] }}</span>\n      <mat-icon *ngIf=\"allowRemovable(item)\" matChipRemove>cancel</mat-icon>\n    </mat-chip>\n  </ng-template>\n</mat-chip-listbox>\n","import {NgModule} from '@angular/core'\nimport {ZuiAngularModule} from '@material-zui/angular/modules'\nimport {ZuiChipComponent} from './index.component'\n\n@NgModule({\n  imports: [ZuiAngularModule],\n  declarations: [ZuiChipComponent],\n  exports: [ZuiChipComponent],\n})\nexport class ZuiChipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}