{"version":3,"file":"tapsellorg-angular-material-library-condition-builder.mjs","sources":["../../projects/pegah-library/condition-builder/condition-operator/condition-operator.component.ts","../../projects/pegah-library/condition-builder/condition-operator/condition-operator.component.html","../../projects/pegah-library/condition-builder/condition-builder.utils.ts","../../projects/pegah-library/condition-builder/config.ts","../../projects/pegah-library/condition-builder/condition-builder.component.ts","../../projects/pegah-library/condition-builder/condition-builder.component.html","../../projects/pegah-library/condition-builder/condition-builder.module.ts","../../projects/pegah-library/condition-builder/tapsellorg-angular-material-library-condition-builder.ts"],"sourcesContent":["import {\n  ChangeDetectionStrategy,\n  Component,\n  effect,\n  forwardRef,\n  input,\n  OnInit,\n  output,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { PghConditionOperators } from '../models';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, UntypedFormControl } from '@angular/forms';\n\n@Component({\n  selector: 'pgh-condition-operator',\n  templateUrl: './condition-operator.component.html',\n  styleUrls: ['./condition-operator.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => PghConditionOperatorComponent),\n      multi: true,\n    },\n  ],\n  standalone: false,\n})\nexport class PghConditionOperatorComponent implements OnInit, ControlValueAccessor {\n  value = input<PghConditionOperators>();\n  valueChanges = output<PghConditionOperators>();\n\n  operatorControl: UntypedFormControl = new UntypedFormControl('AND');\n  onChange?: (newValue: PghConditionOperators) => void;\n  onTouched?: (value: any) => void;\n\n  constructor() {\n    effect(() => {\n      if (this.value()) {\n        this.operatorControl.setValue(this.value());\n      }\n    });\n  }\n\n  ngOnInit(): void {\n    this.setUpOperatorChangeValueListener();\n  }\n\n  registerOnChange(fn: (newValue: PghConditionOperators) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: (value: any) => void): void {\n    this.onTouched = fn;\n  }\n\n  writeValue(value: PghConditionOperators): void {\n    this.operatorControl.setValue(value);\n  }\n\n  private setUpOperatorChangeValueListener(): void {\n    this.operatorControl.valueChanges.subscribe(value => {\n      if (this.onChange) this.onChange?.(value);\n      else this.valueChanges.emit(value);\n    });\n  }\n}\n","<div class=\"pgh-condition-operator\">\n  <div class=\"pgh-condition-operator-horizontal-line\"></div>\n  <div class=\"pgh-condition-operator-vertical-line\"></div>\n  <div>\n    <mat-button-toggle-group [formControl]=\"operatorControl\" vertical>\n      <mat-button-toggle\n        value=\"AND\"\n        [ngClass]=\"operatorControl.value === 'AND' ? ['font-weight-bold', 'text-primary'] : ''\"\n      >\n        {{ 'CONDITION_BUILDER_AND' | translate }}\n      </mat-button-toggle>\n      <mat-button-toggle\n        value=\"OR\"\n        [ngClass]=\"operatorControl.value === 'OR' ? ['font-weight-bold', 'text-accent'] : ''\"\n      >\n        {{ 'CONDITION_BUILDER_OR' | translate }}\n      </mat-button-toggle>\n    </mat-button-toggle-group>\n  </div>\n  <div class=\"pgh-condition-operator-vertical-line\"></div>\n  <div class=\"pgh-condition-operator-horizontal-line\"></div>\n</div>\n","import {\n  AbstractControl,\n  UntypedFormArray,\n  UntypedFormControl,\n  UntypedFormGroup,\n} from '@angular/forms';\n\n/**\n * Deep clones the given AbstractControl, preserving values, validators, async validators, and disabled status.\n * @param control AbstractControl\n * @returns AbstractControl\n */\nexport function pghCloneAbstractControl<T extends AbstractControl>(control: T): T {\n  let newControl: T;\n\n  if (control instanceof UntypedFormGroup) {\n    const formGroup = new UntypedFormGroup({}, control.validator, control.asyncValidator);\n    const { controls } = control;\n\n    Object.keys(controls).forEach(key => {\n      formGroup.addControl(key, pghCloneAbstractControl(controls[key]));\n    });\n\n    newControl = formGroup as any;\n  } else if (control instanceof UntypedFormArray) {\n    const formArray = new UntypedFormArray([], control.validator, control.asyncValidator);\n\n    control.controls.forEach(formControl => formArray.push(pghCloneAbstractControl(formControl)));\n\n    newControl = formArray as any;\n  } else if (control instanceof UntypedFormControl) {\n    newControl = new UntypedFormControl(\n      control.value,\n      control.validator,\n      control.asyncValidator,\n    ) as any;\n  } else {\n    throw new Error('Error: unexpected control value');\n  }\n\n  if (control.disabled) newControl.disable({ emitEvent: false });\n\n  return newControl;\n}\n","import { InjectionToken } from '@angular/core';\nimport { PghConditionBuilderConfig } from './models';\n\nexport const PGH_CONDITION_BUILDER_CONFIG = new InjectionToken<PghConditionBuilderConfig>(\n  'condition-builder-config',\n  {\n    providedIn: 'root',\n    factory: () => {\n      const result: PghConditionBuilderConfig = {\n        hasReset: true,\n        hasValidation: true,\n        addButtonText: 'CONDITION_BUILDER_NEW_FILTER_BUTTON',\n        resetButtonText: 'CONDITION_BUILDER_RESET_BUTTON',\n        deleteButtonTooltip: 'CONDITION_BUILDER_DELETE_BUTTON',\n        validationHintTooltip: 'CONDITION_BUILDER_VALIDATION_HINT',\n        hasDeleteButtonOnLengthOne: false,\n      };\n      return result;\n    },\n  },\n);\n","import {\n  Component,\n  Input,\n  forwardRef,\n  Inject,\n  OnInit,\n  ViewEncapsulation,\n  ChangeDetectionStrategy,\n  ContentChild,\n  TemplateRef,\n  ChangeDetectorRef,\n  input,\n} from '@angular/core';\nimport {\n  PghConditionBuilderConfig,\n  PghConditionBuilderValue,\n  PghConditionOperators,\n} from './models';\nimport {\n  AbstractControl,\n  ControlValueAccessor,\n  UntypedFormArray,\n  UntypedFormBuilder,\n  UntypedFormControl,\n  UntypedFormGroup,\n  NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { pghCloneAbstractControl } from './condition-builder.utils';\nimport { PGH_CONDITION_BUILDER_CONFIG } from './config';\n\n@Component({\n  selector: 'pgh-condition-builder',\n  templateUrl: './condition-builder.component.html',\n  styleUrls: ['./condition-builder.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => PghConditionBuilderComponent),\n      multi: true,\n    },\n  ],\n  standalone: false,\n})\nexport class PghConditionBuilderComponent implements OnInit, ControlValueAccessor {\n  filterControl = input<AbstractControl>();\n  addButtonText = input<string>();\n\n  @ContentChild(TemplateRef) filterFormTemplateRef!: TemplateRef<unknown>;\n\n  conditionBuilderForm: UntypedFormGroup = this.formBuilder.group({\n    operator: 'AND',\n    filters: this.formBuilder.array([]),\n  });\n\n  onChange?: (value: PghConditionBuilderValue | null) => void;\n  onTouched?: (value: PghConditionBuilderValue | null) => void;\n\n  constructor(\n    private formBuilder: UntypedFormBuilder,\n    private changeDetectorRef: ChangeDetectorRef,\n    @Inject(PGH_CONDITION_BUILDER_CONFIG) public conditionBuilderConfig: PghConditionBuilderConfig,\n  ) {}\n\n  ngOnInit(): void {\n    this.setupFormChangeValueListener();\n    this.addNewFilter();\n  }\n\n  get filters(): UntypedFormArray {\n    return this.conditionBuilderForm.controls['filters'] as UntypedFormArray;\n  }\n\n  get operator(): UntypedFormControl {\n    return this.conditionBuilderForm.controls['operator'] as UntypedFormControl;\n  }\n\n  addNewFilter(): void {\n    if (this.filterControl()) this.filters.push(pghCloneAbstractControl(this.filterControl()!));\n  }\n\n  onOperatorChange(event: PghConditionOperators): void {\n    this.operator.setValue(event);\n  }\n\n  deleteFilter(index: number): void {\n    this.filters.removeAt(index);\n    if (!this.filters.length) {\n      this.addNewFilter();\n    }\n  }\n\n  private setupFormChangeValueListener(): void {\n    this.conditionBuilderForm.valueChanges.subscribe((value: PghConditionBuilderValue | null) => {\n      if (value?.filters) value.filters = value.filters.filter(filter => filter);\n      this.onChange?.(value);\n    });\n  }\n\n  registerOnChange(fn: (value: PghConditionBuilderValue | null) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: (value: PghConditionBuilderValue | null) => void): void {\n    this.onTouched = fn;\n  }\n\n  writeValue(value: PghConditionBuilderValue | null): void {\n    this.filters.clear();\n    if (value) {\n      value.filters.forEach(_ => this.addNewFilter());\n      this.conditionBuilderForm.patchValue(value);\n    } else {\n      this.addNewFilter();\n    }\n    this.changeDetectorRef.markForCheck();\n  }\n\n  reset() {\n    this.writeValue(null);\n  }\n}\n","<div class=\"pgh-condition-builder\">\n  <div class=\"d-flex ps-3\" [formGroup]=\"conditionBuilderForm\">\n    @if (filters.length > 1) {\n    <div class=\"py-3 me-3\">\n      <pgh-condition-operator\n        [value]=\"operator.value\"\n        (valueChanges)=\"onOperatorChange($event)\"\n      ></pgh-condition-operator>\n    </div>\n    }\n    <div class=\"pgh-condition-builder-filters\" formArrayName=\"filters\">\n      @for (filter of filters.controls; track filter; let i = $index) { @if (i > 0) {\n      <mat-divider class=\"pgh-condition-builder-divider\"></mat-divider>\n      }\n      <div class=\"d-flex align-items-center\">\n        <div class=\"flex-grow-1\" [formGroupName]=\"i\">\n          <ng-container\n            *ngTemplateOutlet=\"filterFormTemplateRef; context: { $implicit: filter, index: i }\"\n          ></ng-container>\n        </div>\n        @if (conditionBuilderConfig.hasDeleteButtonOnLengthOne || filters.length > 1) {\n        <button\n          mat-icon-button\n          class=\"text-gray\"\n          [matTooltip]=\"conditionBuilderConfig.deleteButtonTooltip | translate\"\n          (click)=\"deleteFilter(i)\"\n        >\n          <mat-icon svgIcon=\"delete\"></mat-icon>\n        </button>\n        }\n      </div>\n      }\n    </div>\n  </div>\n  <div class=\"pgh-condition-builder-actions\">\n    <div class=\"d-flex align-items-center\">\n      <button\n        mat-button\n        color=\"primary\"\n        (click)=\"addNewFilter()\"\n        [disabled]=\"conditionBuilderConfig.hasValidation ? conditionBuilderForm.invalid : false\"\n      >\n        <mat-icon svgIcon=\"add\" class=\"me-1\"></mat-icon>\n        <span>{{ addButtonText() ?? (conditionBuilderConfig.addButtonText | translate) }}</span>\n      </button>\n      @if (conditionBuilderConfig.hasValidation ? conditionBuilderForm.invalid : false) {\n      <mat-icon\n        svgIcon=\"info\"\n        class=\"text-gray\"\n        [matTooltip]=\"conditionBuilderConfig.validationHintTooltip | translate\"\n      ></mat-icon>\n      }\n    </div>\n    @if (conditionBuilderConfig.hasReset) {\n    <button mat-button color=\"primary\" (click)=\"reset()\">\n      {{ 'CONDITION_BUILDER_RESET_BUTTON' | translate }}\n    </button>\n    }\n  </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { PghConditionOperatorComponent } from './condition-operator/condition-operator.component';\nimport { PghConditionBuilderComponent } from './condition-builder.component';\nimport { TranslateModule } from '@tapsellorg/angular-material-library/src/lib/translate';\n\n@NgModule({\n  declarations: [PghConditionBuilderComponent, PghConditionOperatorComponent],\n  imports: [\n    CommonModule,\n    MatButtonModule,\n    MatIconModule,\n    MatTooltipModule,\n    ReactiveFormsModule,\n    MatDividerModule,\n    MatButtonToggleModule,\n    TranslateModule,\n  ],\n  exports: [PghConditionBuilderComponent, PghConditionOperatorComponent],\n})\nexport class PghConditionBuilderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3","i4","i1","i7.PghConditionOperatorComponent","i8"],"mappings":"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"}