{"version":3,"file":"ng-base-lib.mjs","sources":["../../../projects/ng-base-lib/src/lib/ng-base-lib.ts","../../../projects/ng-base-lib/src/lib/modules/primeng.module.ts","../../../projects/ng-base-lib/src/lib/components/label/label.component.ts","../../../projects/ng-base-lib/src/lib/components/label/label.component.html","../../../projects/ng-base-lib/src/lib/services/components.service.ts","../../../projects/ng-base-lib/src/lib/components/form/form-array.component.ts","../../../projects/ng-base-lib/src/lib/components/form/form-array.component.html","../../../projects/ng-base-lib/src/lib/components/form/form-item.component.ts","../../../projects/ng-base-lib/src/lib/components/form/form.component.ts","../../../projects/ng-base-lib/src/lib/components/form/form.component.html","../../../projects/ng-base-lib/src/lib/components/form/form-array-item.component.ts","../../../projects/ng-base-lib/src/lib/components/form/form-array-item.component.html","../../../projects/ng-base-lib/src/lib/components/base-field-control/base-field-control.ts","../../../projects/ng-base-lib/src/lib/util/common.const.ts","../../../projects/ng-base-lib/src/lib/components/base-field-control/base-data-source-control.ts","../../../projects/ng-base-lib/src/lib/components/checkbox/checkbox.component.ts","../../../projects/ng-base-lib/src/lib/components/checkbox/checkbox.component.html","../../../projects/ng-base-lib/src/lib/components/dropdown/dropdown.component.ts","../../../projects/ng-base-lib/src/lib/components/dropdown/dropdown.component.html","../../../projects/ng-base-lib/src/lib/util/directives/only-number.directive.ts","../../../projects/ng-base-lib/src/lib/components/chip/chip.component.ts","../../../projects/ng-base-lib/src/lib/components/chip/chip.component.html","../../../projects/ng-base-lib/src/lib/components/radio/radio.component.ts","../../../projects/ng-base-lib/src/lib/components/radio/radio.component.html","../../../projects/ng-base-lib/src/lib/services/toast.service.ts","../../../projects/ng-base-lib/src/lib/components/toast/toast.component.ts","../../../projects/ng-base-lib/src/lib/components/toast/toast.component.html","../../../projects/ng-base-lib/src/lib/components/datepicker/datepicker.component.ts","../../../projects/ng-base-lib/src/lib/components/datepicker/datepicker.component.html","../../../projects/ng-base-lib/src/lib/components/breadcrumb/breadcrumb.component.ts","../../../projects/ng-base-lib/src/lib/components/breadcrumb/breadcrumb.component.html","../../../projects/ng-base-lib/src/lib/components/textarea/textarea.component.ts","../../../projects/ng-base-lib/src/lib/components/textarea/textarea.component.html","../../../projects/ng-base-lib/src/lib/components/input-switch/input-switch.component.ts","../../../projects/ng-base-lib/src/lib/components/input-switch/input-switch.component.html","../../../projects/ng-base-lib/src/lib/components/component-import.module.ts","../../../projects/ng-base-lib/src/lib/components/button/button.component.ts","../../../projects/ng-base-lib/src/lib/components/button/button.component.html","../../../projects/ng-base-lib/src/lib/components/input/input.component.ts","../../../projects/ng-base-lib/src/lib/components/input/input.component.html","../../../projects/ng-base-lib/src/lib/components/multiselect/multiselect.component.ts","../../../projects/ng-base-lib/src/lib/components/multiselect/multiselect.component.html","../../../projects/ng-base-lib/src/public-api.ts","../../../projects/ng-base-lib/src/ng-base-lib.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n  selector: 'lib-ng-base-lib',\n  imports: [],\n  template: ` <p>ng-base-lib works!</p> `,\n  styles: ``,\n})\nexport class NgBaseLib {}\n","import { NgModule } from \"@angular/core\";\n\nimport { ButtonModule } from 'primeng/button';\nimport { CheckboxModule } from \"primeng/checkbox\";\nimport { TooltipModule } from \"primeng/tooltip\";\nimport { ToggleSwitchModule } from 'primeng/toggleswitch';\nimport { SelectModule } from 'primeng/select';\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { ChipModule } from 'primeng/chip';\nimport { IconFieldModule } from 'primeng/iconfield';\nimport { InputIconModule } from 'primeng/inputicon';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { MessageModule } from 'primeng/message';\nimport { ToastModule } from 'primeng/toast';\nimport { DatePickerModule } from 'primeng/datepicker';\nimport { BreadcrumbModule } from 'primeng/breadcrumb';\nimport { TextareaModule } from 'primeng/textarea';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { InputGroupModule } from 'primeng/inputgroup';\nimport { InputGroupAddonModule } from 'primeng/inputgroupaddon';\n\nconst PRIMENG_MODULES: any[] = [\n    ButtonModule,\n    TooltipModule,\n    CheckboxModule,\n    ToggleSwitchModule,\n    SelectModule,\n    ProgressSpinnerModule,\n    InputNumberModule,\n    InputTextModule,\n    ChipModule,\n    IconFieldModule,\n    InputIconModule,\n    MultiSelectModule,\n    RadioButtonModule,\n    MessageModule,\n    ToastModule,\n    DatePickerModule,\n    BreadcrumbModule,\n    TextareaModule,\n    AutoCompleteModule,\n    InputGroupModule,\n    InputGroupAddonModule\n]\n\n@NgModule({\n    imports: [\n        PRIMENG_MODULES\n    ],\n    exports: [\n        PRIMENG_MODULES\n    ],\n    providers: [\n        // PrimeNGMessage,\n        // TerminalService,\n    ]\n})\n\nexport class PrimeNgModule { }","import { CommonModule } from '@angular/common';\nimport {\n  Component,\n  Input,\n  OnChanges,\n  OnInit,\n  SimpleChanges,\n} from '@angular/core';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { ComponentImports } from '../component-import.module';\n\n@Component({\n  selector: 'app-base-label',\n  templateUrl: './label.component.html',\n  styleUrls: ['./label.component.scss'],\n  imports: [ComponentImports],\n})\nexport class BaseLabelComponent implements OnInit, OnChanges {\n  @Input() mode: 'normal' | 'error' = 'normal';\n  @Input() label: string | { key: string; param: object } = '';\n  @Input() labelOneLine = false;\n  @Input() showOptionalText = false;\n  @Input() required = false;\n  @Input() optionalText = false;\n  @Input() labelStyle: string = '';\n  @Input() iconLabelTooltip: string | { key: string; param: object } = '';\n\n  labelKey!: string;\n  param!: object;\n\n  iconLabelTooltipKey!: string;\n  iconLabelTooltipParam!: object;\n\n  constructor() { }\n  ngOnInit(): void {\n    if (this.label && typeof this.label !== 'string') {\n      this.param = this.label.param;\n      this.labelKey = this.label.key;\n    } else {\n      this.labelKey = this.label as string;\n    }\n\n    if (this.iconLabelTooltip && typeof this.iconLabelTooltip !== 'string') {\n      this.iconLabelTooltipParam = this.iconLabelTooltip.param;\n      this.iconLabelTooltipKey = this.iconLabelTooltip.key;\n    } else {\n      this.iconLabelTooltipKey = this.iconLabelTooltip as string;\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes && changes.hasOwnProperty('label')) {\n      const currentChange: string | { key: string; param: object } =\n        changes['label'].currentValue;\n      if (currentChange && typeof currentChange !== 'string') {\n        this.labelKey = currentChange.key;\n        this.param = currentChange.param;\n      } else {\n        this.labelKey = currentChange as string;\n      }\n    }\n  }\n}\n","<div class=\"field-label\" *ngIf=\"mode === 'normal'\">\n  <label\n    *ngIf=\"labelKey\"\n    class=\"fz-14_lh-16\"\n    [ngClass]=\"{ oneline: labelOneLine }\"\n    [ngClass]=\"labelStyle\"\n    style=\"display: flex\"\n    [pTooltip]=\"labelOneLine ? (labelKey | translate: param) : ''\"\n    tooltipEvent=\"hover\"\n    tooltipPosition=\"top\"\n  >\n    {{ labelKey | translate: param }}\n    <span *ngIf=\"!required && showOptionalText\"> ({{ 'OPTIONAL' | translate }})</span>\n    <span class=\"asterisk\" *ngIf=\"required\">*</span>\n    <i\n      *ngIf=\"iconLabelTooltipKey\"\n      class=\"pi pi-info-circle\"\n      style=\"margin-left: 0.5rem; align-content: center\"\n      pTooltip=\"{{ iconLabelTooltipKey | translate: iconLabelTooltipParam }}\"\n      tooltipEvent=\"hover\"\n      tooltipPosition=\"top\"\n    ></i>\n  </label>\n</div>\n\n<div class=\"field-error\" *ngIf=\"mode === 'error'\">\n  <div class=\"error-message fz-14_lh-16\">\n    {{ labelKey | translate: param }}\n  </div>\n</div>\n","import { ComponentRef, EventEmitter, InjectionToken } from '@angular/core';\nimport { AbstractControl, FormArray, FormControl } from '@angular/forms';\nimport { MenuItem } from 'primeng/api';\nimport { ToastPositionType } from 'primeng/toast';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\n\nexport class BasedDto {\n    tenantId?: string;\n    createdDate?: Date;\n    createdBy?: string;\n    modifiedDate?: Date;\n    modifiedBy?: string;\n    statusId?: number;\n}\n\nexport interface BaseFormConfig {\n    id?: string;\n    type: CONTROL_TYPE;\n    label?: string | { key: string; param?: object } | string[];\n    name?: string;\n    placeholder?: string;\n    fieldControl?: FormControl | AbstractControl | null;\n    errorMessageList?: ErrorMessageList;\n    layoutDefine: {\n        row: number;\n        column: number;\n        colSpan?: number;\n    };\n    required?: boolean;\n    labelOneLine?: boolean;\n    cssContainer?: string;\n    disabled?: boolean;\n    disabledBy?: string;\n    disableByCondition?: any;\n    visibility?: 'hidden' | 'visible';\n    keepValueOnHide?: boolean;\n    iconLabelTooltip?: string | { key: string; param: object };\n    dependOnFields?: {\n        fields: string[] | EventEmitter<any>[];\n        action: (fieldConfig?: FormConfig, comp?: ComponentRef<any>) => void;\n        debounce?: number;\n    }[];\n    styleClass?: string;\n}\n\nexport enum CONTROL_TYPE {\n    Textbox = 'textbox',\n    Textarea = 'textarea',\n    Dropdown = 'dropdown',\n    Calendar = 'calendar',\n    Checkbox = 'checkbox',\n    Radio = 'radio',\n    Multiselect = 'multiselect',\n    FormArray = 'formarray',\n    Label = 'label',\n    Html = 'html',\n    InputNumber = 'inputNumber',\n    ButtonSet = 'buttonset',\n    InputMask = 'inputmask',\n    Button = 'button',\n    Switch = 'switch',\n    // autocomplete = 'autocomplete'\n}\n\nexport enum CONTROL_TYPE_CODE {\n    Textbox = 'TXT_S',\n    Textarea = 'TXT_M',\n    Dropdown = 'SEL_S',\n    Multiselect = 'SEL_M',\n    Radio = 'RAD',\n    Checkbox = 'CBX_S',\n    MultiCheckbox = 'CBX_M',\n    Number = 'NUM',\n    Date = 'DATE',\n    DateTime = 'DATETIME',\n    Time = 'TIME',\n    Url = 'URL',\n    Email = 'EML',\n    Phone = 'PHN',\n    User = 'USR',\n    Country = 'COUNTRY',\n    State = 'STATE',\n    City = 'CITY',\n    Postcode = 'POSTCODE',\n    Year = 'YEAR',\n}\n\nexport const NUMBER_INPUT_FORMAT = {\n    currency: new RegExp(/^RM \\d{2}.\\d{2}/gi),\n};\n\ninterface ErrorMessageList {\n    [key: string]: string | { key: string; param: object };\n}\n\nexport interface OptionsModel {\n    label?: string;\n    value: any;\n    preIcon?: string | {\n        icon?: string;\n        style?: IconStyle;\n    };\n    disabled?: boolean;\n    required?: boolean;\n}\n\nexport interface IconStyle {\n    [key: string]: string;\n}\n\nexport interface TreeOptionsModel {\n    label?: any;\n    value: any;\n    expandedIcon?: string;\n    collapsedIcon?: string;\n    icon?: string;\n    children?: TreeOptionsModel[];\n}\n\nexport interface BaseInputTextConfig {\n    autoFocus?: boolean;\n}\n\nexport interface BaseInputFormConfig extends BaseFormConfig, BaseInputTextConfig {\n    type: CONTROL_TYPE.Textbox;\n    mode?: 'text' | 'number' | 'password' | 'label-text' | 'email' | 'url' | 'phone' | 'chips';\n    prefix?: string;\n    suffix?: string;\n    onlyNumber?: boolean;\n    maxLength?: number;\n    min?: number;\n    max?: number;\n    minFractionDigits?: number;\n    maxFractionDigits?: number;\n    useGrouping?: boolean;\n    content?: string;\n    descriptionMessage?: string;\n    seperator?: string;\n    isValidPassword?: boolean;\n    iconLeftStyle?: string;\n    iconRightStyle?: string;\n}\n\nexport interface BaseSwitchFormConfig extends BaseFormConfig, BaseInputTextConfig {\n    type: CONTROL_TYPE.Switch;\n    content?: string;\n    descriptionMessage?: string;\n    inline?: boolean;\n}\n\nexport interface BaseDatepickerFormConfig extends BaseFormConfig {\n    type: CONTROL_TYPE.Calendar;\n    mode?: 'range' | 'single' | 'range_2' | 'label-text';\n    minDate?: Date;\n    maxDate?: Date;\n    dateFormat?: string;\n    view?: string;\n    showTime?: boolean;\n    timeOnly?: boolean;\n    showSeconds?: boolean;\n}\n\nexport interface BaseTextAreaFormConfig extends BaseFormConfig, BaseInputTextConfig {\n    type: CONTROL_TYPE.Textarea;\n    labelShowsOptional?: boolean;\n    hideLengthLimit?: boolean;\n    maxLength?: number;\n    autoResize?: boolean;\n    instructionText?: string;\n    tooltip?: string;\n    lineNumber?: number;\n}\n\nexport interface BaseHTMLFormConfig extends BaseFormConfig {\n    type: CONTROL_TYPE.Html;\n    dynamicHTML: string;\n}\n\nexport type BaseSelectFormConfig = Omit<BaseFormConfig, 'dependOnFields'> &\n    (BaseDataSourceAction | BaseDataSourceWithOptions) & {\n        type:\n        | CONTROL_TYPE.Radio\n        | CONTROL_TYPE.Checkbox\n        | CONTROL_TYPE.Dropdown\n        | CONTROL_TYPE.Multiselect;\n        direction?: 'row' | 'column';\n        optionsContainerClass?: string;\n        singleSelect?: boolean;\n        switchInput?: boolean;\n        defaultValue?: any;\n        containerClass?: string;\n        inputContainerClass?: string;\n        labelClass?: string;\n        defaultLabel?: string;\n        dependOnFields?: {\n            fields:\n            | (\n                | string\n                | EventEmitter<any>\n                | BehaviorSubject<any>\n                | Subject<any>\n                | Observable<any>\n            )[];\n            action: (\n                fieldConfig?: BaseDropdownFormConfig,\n                comp?: ComponentRef<any>,\n            ) => void;\n            updateOptions?: boolean;\n            debounce?: number;\n        }[];\n    };\n\nexport type BaseDropdownFormConfig = BaseSelectFormConfig & {\n    type: CONTROL_TYPE.Dropdown;\n    searchable?: boolean;\n    sortOption?: boolean;\n    group?: boolean;\n    showClear?: boolean;\n};\n\nexport type BaseMultiselectFormConfig = BaseSelectFormConfig & {\n    type: CONTROL_TYPE.Multiselect;\n    defaultLabel?: string;\n    searchable?: boolean;\n    sortOption?: boolean;\n    group?: boolean;\n    showClear?: boolean;\n    showChips?: boolean;\n};\n\nexport type BaseCheckBoxFormConfig = BaseSelectFormConfig & {\n    type: CONTROL_TYPE.Checkbox;\n};\n\nexport type BaseRadioFormConfig = BaseSelectFormConfig & {\n    type: CONTROL_TYPE.Radio;\n};\n\nexport interface BaseDataSourceAction {\n    dataSourceAction: (event?: BaseDataSourceActionEvent) => Observable<any>;\n    options?: undefined;\n    dataSourceDependOn?: string[];\n    virtualScroll?: VirtualScrollConfig | true;\n}\n\nexport interface BaseDataSourceActionEvent {\n    searchBy?: string;\n    pageIndex?: number;\n    rowPerPage?: number;\n    eventType:\n    | 'dependChange'\n    | 'changePageIndex'\n    | 'searchChange'\n    | 'other'\n    | 'initData';\n    defaultValue?: any;\n}\n\nexport interface VirtualScrollConfig {\n    pageSize?: number;\n}\n\nexport interface BaseDataSourceWithOptions {\n    options: OptionsModel[];\n}\n\nexport interface BaseFormArrayConfig extends BaseFormConfig {\n    type: CONTROL_TYPE.FormArray;\n    fields: FormArrayConfig[];\n    fieldControl: FormArray;\n    addBtnLabel?: string;\n    removeBtnLabel?: string;\n}\n\nexport type FormArrayConfig = FormConfig & {\n    fieldControlName: string;\n    fieldControl?: undefined;\n};\n\nexport interface BaseLabelFormConfig extends BaseFormConfig {\n    type: CONTROL_TYPE.Label;\n    mode?: 'normal' | 'error';\n    labelOneLine?: boolean;\n    required?: boolean;\n    labelStyle?: string;\n}\n\nexport interface BaseButtonFormConfig extends BaseFormConfig {\n    type: CONTROL_TYPE.Button;\n    label?: string;\n    outlined?: boolean;\n    isTextStyle?: boolean;\n    rounded?: boolean;\n    loading?: boolean;\n    onClickFunc: (e?: any) => void;\n    actionPermission?: {\n        actionType: string | string[];\n        moduleCode?: string;\n        createdBy?: string;\n    };\n    severity?: 'primary' | 'secondary';\n}\n\nexport const BASE_UI_TOKEN = new InjectionToken('BASE_UI_TOKEN');\nexport const FORM_ARRAY_ITEM_TOKEN = new InjectionToken(\n    'FORM_ARRAY_ITEM_TOKEN',\n);\nexport const FORM_ARRAY_TOKEN = new InjectionToken('FORM_ARRAY_TOKEN');\n\nexport type FormConfig =\n    | BaseInputFormConfig\n    | BaseTextAreaFormConfig\n    | BaseDropdownFormConfig\n    | BaseMultiselectFormConfig\n    | BaseCheckBoxFormConfig\n    | BaseRadioFormConfig\n    | BaseDatepickerFormConfig\n    | BaseHTMLFormConfig\n    | BaseLabelFormConfig\n    | BaseFormArrayConfig\n    | BaseButtonFormConfig\n    | BaseSwitchFormConfig;\n\nexport function isBaseButton(\n    config: FormConfig,\n): config is BaseButtonFormConfig {\n    return config.type === CONTROL_TYPE.Button;\n}\n\nexport const BASE_FORM_ITEMS_EVENT = {\n    OPTIONS_CHANGE: 'OPTIONS_CHANGE',\n};\n\nexport interface BaseMenuItem {\n    label: string;\n    id: string;\n    moduleCode?: string | object;\n    actionType?: string | string[];\n    disable?: boolean;\n    command?: any;\n}\n\nexport interface BaseTabMenuItem extends MenuItem {\n    moduleCode?: string | object;\n    actionType?: string | string[];\n}\n\nexport interface ProtertiesDto {\n    propertyId: string;\n    uid: string;\n    name: string;\n    code: string;\n    type: string;\n    isSystem: boolean;\n    isMandatory: boolean;\n    isEditable: boolean;\n    isVisiable: boolean;\n    moduleCode: string;\n    order: number;\n    statusID: number;\n    createdDate: Date;\n    createdBy: string;\n    modifiedDate: Date;\n    modifiedBy: string;\n}\n\nexport interface TableConfig {\n    header?: string;\n    code: string;\n    icon?: string;\n}\n\nexport interface EditorToolbarSetupDto {\n    bold?: boolean;\n    italic?: boolean;\n    underline?: boolean;\n    strike?: boolean;\n    orderedList?: boolean;\n    bulletList?: boolean;\n    checklist?: boolean;\n    link?: boolean;\n    image?: boolean;\n    video?: boolean;\n    clean?: boolean;\n    blockquote?: boolean;\n    codeBlock?: boolean;\n    align?: boolean;\n    size?: boolean;\n    font?: boolean;\n    color?: boolean;\n    backgroundColor?: boolean;\n    header?: boolean;\n    formula?: boolean;\n}\n\nexport class AttachmentDto extends BasedDto {\n    uid?: string;\n    folderName: string;\n    fullPath: string;\n    fileName: string;\n    fileType: string;\n    activityUid: string;\n    fileSize: number;\n    contactUid: string[];\n    companyUid: string[];\n    url?: string;\n}\n\nexport class MessageModel {\n    message: string;\n    severity?: 'success' | 'info' | 'warn' | 'error';\n    key?: string;\n    icon?: string;\n    isLoading?: boolean;\n    messageData?: any[];\n    sticky?: boolean;\n}","import { CommonModule } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectorRef,\n  Component,\n  Inject,\n  Input,\n  OnInit,\n  QueryList,\n  ViewChildren,\n  ViewContainerRef,\n} from '@angular/core';\nimport {\n  FormArray,\n  FormControl,\n  FormGroup,\n  ReactiveFormsModule,\n} from '@angular/forms';\nimport { FORM_ARRAY_TOKEN, FormArrayConfig } from '../../services/components.service';\nimport { ComponentImports } from '../component-import.module';\n\n@Component({\n  selector: 'app-base-form-array',\n  templateUrl: './form-array.component.html',\n  imports: [ComponentImports]\n})\nexport class FormArrayComponent implements OnInit, AfterViewInit {\n  @Input() fields: FormArrayConfig[] = [];\n  @Input() fieldControl: FormArray = new FormArray([] as any);\n  @Input() label: string = '';\n  @Input() addBtnLabel: string = 'Add more';\n  @Input() removeBtnLabel: string = 'Remove';\n  @ViewChildren('form', { read: ViewContainerRef })\n  container!: QueryList<ViewContainerRef>;\n\n  fieldConfigArr = [] as any;\n  formArrayValue = [] as any;\n  // formArrayControl = new FormArray([] as any);\n\n  constructor(\n    @Inject(FORM_ARRAY_TOKEN) private formArrItemComp: any,\n    private cdf: ChangeDetectorRef,\n  ) { }\n\n  ngOnInit(): void {\n    this.buildOriginForm();\n\n    if (!this.fieldControl.value) {\n      this.fieldControl.setValue([{}]);\n    }\n  }\n\n  ngAfterViewInit(): void {\n    this.render();\n    this.container.changes.subscribe((_val) => {\n      this.render();\n    });\n  }\n\n  getFieldsConfig(index: number): any {\n    return this.fieldConfigArr[index];\n  }\n\n  handleAddForm(index: number) {\n    const newForm = this.buildNewForm();\n    this.fieldControl.insert(index + 1, newForm);\n    this.formArrayValue = this.fieldControl.value;\n\n    this.fieldConfigArr.splice(\n      index + 1,\n      0,\n      this.fields.map((i) => ({\n        ...i,\n        fieldControl: this.fieldControl.controls[index + 1].get(\n          i.fieldControlName,\n        ),\n      })),\n    );\n  }\n\n  handleRemoveForm(i: number) {\n    this.fieldControl.removeAt(i);\n    this.formArrayValue = this.fieldControl.value;\n    this.fieldConfigArr = this.fieldConfigArr.filter(\n      (item: any, ind: number) => ind !== i,\n    );\n  }\n\n  private render() {\n    const container = this.container.toArray();\n    this.fieldControl.value.forEach((item: any, index: number) => {\n      if (container[index]) {\n        container[index].clear();\n        const formComp = container[index].createComponent<any>(\n          this.formArrItemComp.arrayItem,\n        );\n        formComp.instance.formConfig = this.getFieldsConfig(index);\n        formComp.instance.removeBtnLabel = this.removeBtnLabel;\n        formComp.instance.addBtnLabel = this.addBtnLabel;\n        formComp.instance.addForm.subscribe((val: any) => {\n          this.handleAddForm(index);\n        });\n        formComp.instance.removeForm.subscribe((val: any) => {\n          this.handleRemoveForm(index);\n        });\n      }\n    });\n    this.cdf.detectChanges();\n  }\n\n  private buildOriginForm() {\n    const controls = (this.fieldControl.controls[0] as FormGroup).controls;\n\n    const newForm = new FormGroup({});\n\n    Object.keys(controls).forEach((key) => {\n      const newControl = new FormControl(\n        controls[key].value,\n        controls[key].validator,\n        controls[key].asyncValidator,\n      );\n      newForm.addControl(key, newControl);\n    });\n    newForm.reset();\n\n    this.formArrayValue = this.fieldControl.value;\n\n    this.fieldConfigArr = [\n      this.fields.map((i) => ({\n        ...i,\n        fieldControl: this.fieldControl.controls[0].get(i.fieldControlName),\n      })),\n    ];\n  }\n\n  private buildNewForm() {\n    const controls = (this.fieldControl.controls[0] as FormGroup).controls;\n    const newForm = new FormGroup({});\n    Object.keys(controls).forEach((key) => {\n      const newControl = new FormControl(\n        '',\n        controls[key].validator,\n        controls[key].asyncValidator,\n      );\n      newForm.addControl(key, newControl);\n    });\n    newForm.reset();\n\n    return newForm;\n  }\n}\n","<div class=\"form-array-container\">\n  <app-base-label [label]=\"label\"></app-base-label>\n  <div class=\"form-item\" *ngFor=\"let value of formArrayValue; let i = index\">\n    #{{ i }}\n    <ng-container #form></ng-container>\n  </div>\n</div>\n","import {\n  Component,\n  ComponentRef,\n  Inject,\n  Input,\n  OnDestroy,\n  OnInit,\n  ViewChild,\n  ViewContainerRef,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { BaseButtonComponent } from '../button/button.component';\nimport {\n  combineLatest,\n  debounce,\n  distinctUntilChanged,\n  Observable,\n  Subject,\n  takeUntil,\n  timer,\n} from 'rxjs';\nimport { FormConfig, BASE_UI_TOKEN, FORM_ARRAY_TOKEN, isBaseButton, BaseButtonFormConfig, CONTROL_TYPE, BASE_FORM_ITEMS_EVENT } from '../../services/components.service';\nimport { ComponentImports } from '../component-import.module';\n\n@Component({\n  selector: 'app-form-item',\n  template: '<ng-container #formItemContainer></ng-container>',\n  imports: [ComponentImports]\n})\nexport class FormItemComponent implements OnInit, OnDestroy {\n  @ViewChild('formItemContainer', { read: ViewContainerRef, static: true })\n  formItemContainer!: ViewContainerRef;\n  private componentRef!: ComponentRef<any>;\n  destroy$ = new Subject();\n\n  @Input() fieldConfig!: FormConfig;\n  @Input() parentFieldConfig!: FormConfig[];\n\n  constructor(\n    @Inject(BASE_UI_TOKEN) private allBaseUIComp: any,\n    @Inject(FORM_ARRAY_TOKEN) private formArray: any,\n  ) { }\n\n  ngOnInit(): void {\n    this.formItemContainer.clear();\n    this.renderItem();\n  }\n\n  private renderItem() {\n    this.componentRef = this.formItemContainer.createComponent<any>(\n      this.allBaseUIComp[this.fieldConfig.type] ||\n      this.formArray[this.fieldConfig.type],\n    );\n\n    Object.keys(this.fieldConfig).forEach((i: any) => {\n      this.componentRef.instance[i] = (this.fieldConfig as any)[i];\n    });\n    this.componentRef.instance.parentFieldConfig = this.parentFieldConfig;\n    this.componentRef.instance.disabled =\n      this.fieldConfig.fieldControl?.disabled || this.fieldConfig.disabled;\n\n    if (!this.fieldConfig.fieldControl) {\n      this.componentRef.instance.fieldControl = new FormControl('');\n    }\n\n    if (this.fieldConfig.dependOnFields?.length) {\n      this.invokeDependent();\n    }\n\n    if (isBaseButton(this.fieldConfig)) {\n      (this.componentRef.instance as BaseButtonComponent).onClick\n        .pipe(takeUntil(this.destroy$))\n        .subscribe((val: any) => {\n          (this.fieldConfig as BaseButtonFormConfig).onClickFunc(val);\n        });\n    }\n\n    return this.componentRef.instance;\n  }\n\n  private invokeDependent() {\n    this.fieldConfig.dependOnFields?.forEach((deps: any) => {\n      if (\n        (this.fieldConfig.type === CONTROL_TYPE.Dropdown ||\n          this.fieldConfig.type === CONTROL_TYPE.Multiselect) &&\n        (deps as any).updateOptions\n      ) {\n        return;\n      }\n      const trackingField = deps.fields.map((field: any) => {\n        if (Object.values(BASE_FORM_ITEMS_EVENT).includes(field as string)) {\n          switch (field) {\n            case BASE_FORM_ITEMS_EVENT.OPTIONS_CHANGE:\n              return this.componentRef.instance['optionUpdated'];\n          }\n        }\n        if (typeof field === 'string') {\n          return this.parentFieldConfig.find((i) => i.id === field)\n            ?.fieldControl?.valueChanges;\n        }\n        return field;\n      });\n\n      combineLatest(trackingField as Observable<any>[])\n        .pipe(\n          takeUntil(this.destroy$),\n          distinctUntilChanged(),\n          debounce((_) => timer(deps.debounce || 0)),\n        )\n        .subscribe((_) => {\n          deps.action(this.fieldConfig as any, this.componentRef.instance);\n\n          Object.keys(this.fieldConfig).forEach((i: any) => {\n            this.componentRef.instance[i] = (this.fieldConfig as any)[i];\n          });\n        });\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next(true);\n    this.destroy$.complete();\n  }\n}\n","import {\n  AfterContentChecked,\n  ChangeDetectorRef,\n  Component,\n  effect,\n  Input,\n  OnChanges,\n  SimpleChanges,\n  ViewChildren,\n  ViewContainerRef,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { FormConfig } from '../../services/components.service';\nimport { ComponentImports } from '../component-import.module';\n\n@Component({\n  selector: 'app-base-form',\n  templateUrl: './form.component.html',\n  styleUrls: ['./form.component.scss'],\n  imports: [ComponentImports],\n})\nexport class BaseFormComponent implements OnChanges, AfterContentChecked {\n  @Input() formConfig: FormConfig[] = [];\n  @ViewChildren('formItemContainer', { read: ViewContainerRef })\n  formItemContainer!: ViewContainerRef[];\n\n  formConfigSorted: any[] = [];\n\n  constructor(\n    private cfr: ChangeDetectorRef,\n    private sanitized: DomSanitizer,\n  ) {\n    // effect(() => { }, {\n    //   allowSignalWrites: true\n    // });\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['formConfig']) {\n      this.sortFollowOrder();\n    }\n  }\n\n  private sortFollowOrder() {\n    this.formConfigSorted = this.formConfig;\n    this.formConfigSorted.sort((a: FormConfig, b: FormConfig) => {\n      if (a.layoutDefine.row < b.layoutDefine.row) {\n        return -1;\n      }\n      if (a.layoutDefine.row > b.layoutDefine.row) {\n        return 1;\n      }\n      return 0;\n    });\n\n    this.formConfigSorted = this.formConfigSorted.reduce(\n      (rs, cur: FormConfig) => {\n        if (cur.layoutDefine.row === rs[rs.length - 1]?.[0].layoutDefine.row) {\n          rs[rs.length - 1].push(cur);\n        } else {\n          rs.push([cur]);\n        }\n        return rs;\n      },\n      [],\n    );\n\n    this.formConfigSorted.forEach((i: FormConfig[]) => {\n      i.sort((a: FormConfig, b: FormConfig) => {\n        if (a.layoutDefine.row < b.layoutDefine.row) {\n          return -1;\n        }\n        if (a.layoutDefine.row > b.layoutDefine.row) {\n          return 1;\n        }\n        return 0;\n      });\n    });\n  }\n\n  updateConfig(item: FormConfig) {\n    if (item.fieldControl) {\n      // UPDATE VISIBILITY AND ERROR MESSAGE\n      // if(item.visibility === VISIBILITY.READ_ONLY) {\n      //   item.fieldControl.setErrors(null);\n      //   item.disabled = true\n      // }\n      if (item.visibility === 'hidden' && !item.keepValueOnHide) {\n        item.fieldControl.reset(null, { emitEvent: false });\n        item.fieldControl.setErrors(null);\n      }\n\n      // disable other items base on condition\n      if (item.disabledBy && item.disableByCondition) {\n        const dependency = this.formConfig.find(\n          (x) => x.name === item.disabledBy,\n        );\n        if (dependency?.fieldControl?.value === item.disableByCondition) {\n          item.fieldControl.setValue(null);\n          item.fieldControl.disable();\n        } else {\n          item.fieldControl.enable();\n        }\n      }\n    }\n\n    return item;\n  }\n\n  ngAfterContentChecked() {\n    this.cfr.detectChanges();\n  }\n\n  bypassSecurityTrustHtml(innerHtml: string) {\n    return this.sanitized.bypassSecurityTrustHtml(innerHtml);\n  }\n\n  trackByRow(index: number, el: any) {\n    if (el.id) return el.id;\n    return el;\n  }\n\n  trackByCol(index: number, el: any) {\n    return el;\n  }\n}\n","<div class=\"form-container\">\n  <div\n    *ngFor=\"let row of formConfigSorted; trackBy: trackByRow\"\n    class=\"row-layout-container\"\n  >\n    <div\n      *ngFor=\"let item of row; trackBy: trackByCol\"\n      class=\"item-layout-container\"\n      [className]=\"item.cssContainer\"\n      [style.width.%]=\"(100 * item.layoutDefine.colSpan) / 12 || 100\"\n      [ngClass]=\"{ hide: item.visibility === 'hidden' }\"\n      [id]=\"item.id\"\n    >\n      <app-form-item\n        *ngIf=\"item.type !== 'html'\"\n        [fieldConfig]=\"updateConfig(item)\"\n        [parentFieldConfig]=\"formConfig\"\n      >\n      </app-form-item>\n      <div\n        *ngIf=\"item.type === 'html'\"\n        [innerHtml]=\"bypassSecurityTrustHtml(item.dynamicHTML)\"\n      ></div>\n    </div>\n  </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormConfig } from '../../services/components.service';\nimport { ComponentImports } from '../component-import.module';\n\n@Component({\n  selector: 'app-form-array-item',\n  templateUrl: './form-array-item.component.html',\n  imports: [ComponentImports]\n})\nexport class FormArrayItemComponent {\n  @Input() removeBtnLabel!: string;\n  @Input() addBtnLabel!: string;\n  @Input() formConfig!: FormConfig[];\n  @Output() addForm = new EventEmitter();\n  @Output() removeForm = new EventEmitter();\n\n  handleAddForm() {\n    this.addForm.emit();\n  }\n\n  handleRemoveForm() {\n    this.removeForm.emit();\n  }\n}\n","<app-base-form [formConfig]=\"formConfig\"></app-base-form>\n<app-base-button\n  [outlined]=\"true\"\n  [label]=\"removeBtnLabel\"\n  (click)=\"handleRemoveForm()\"\n></app-base-button>\n<app-base-button\n  [label]=\"addBtnLabel\"\n  (click)=\"handleAddForm()\"\n></app-base-button>\n","import { Component, Input } from '@angular/core';\nimport { AbstractControl, FormControl } from '@angular/forms';\n\n// eslint-disable-next-line @angular-eslint/component-selector\n@Component({ selector: '', template: '' })\nexport abstract class BaseFieldControlComponent {\n  private _errorMessageList: { [key: string]: string } = {\n    required: 'ERROR.YOU_CANNOT_LEAVE_IT_BLANK',\n    passwordConfirmNotSame: 'ERROR.PASSWORD_MUST_BE_SAME',\n    invalidEmail: 'ERROR.INVALID_EMAIL',\n    invalidPassword: 'ERROR.INVALID_PASSWORD_FORMAT',\n    invalidUrl: 'ERROR.INVALID_URL',\n  };\n  @Input() id?: string;\n  @Input() label = '';\n  @Input() disabled: boolean = false;\n  @Input() fieldControl = new FormControl();\n  @Input() required: boolean = false;\n  @Input() placeholder: string = '';\n  @Input() visibility: string = 'visible';\n  @Input() set errorMessageList(val: any) {\n    this._errorMessageList = { ...this._errorMessageList, ...val };\n  }\n\n  get errorMessageList() {\n    return this._errorMessageList;\n  }\n\n  @Input() labelOneLine = false;\n  @Input() name = '';\n  @Input() iconLabelTooltip: string | { key: string; param: object } = '';\n\n  @Input() styleClass: string;\n\n  errorMessage!: string;\n\n  checkRequiredField() {\n    if (this.fieldControl.validator) {\n      const validator = this.fieldControl.validator({} as AbstractControl);\n      if (validator && validator['required']) {\n        return true;\n      }\n    }\n    return this.required;\n  }\n\n  checkInvalidField() {\n    const invalid =\n      (this.fieldControl?.dirty || this.fieldControl.touched) &&\n      this.fieldControl.invalid;\n    if (invalid && !this.disabled) {\n      this.errorMessage = !!this.errorMessageList\n        ? this.errorMessageList[Object.keys(this.fieldControl.errors || [])[0]]\n        : '';\n    }\n    return invalid;\n  }\n\n  checkDisabled() {\n    return (\n      this.disabled ||\n      this.fieldControl.disabled ||\n      this.fieldControl.parent?.disabled\n    );\n  }\n}\n","export const LoginMode = {\n    SignIn: 'SIGNIN',\n    SignUp: 'SIGNUP',\n    ForgotPassword: 'FORGOTPASSWORD',\n}\n\nexport const PERMISSION_LIST = [\"CONT\", \"COMP\", \"TEAM\", \"SETTING\", \"PROPERTY\"] as const;\nexport type PermissionTypeList = typeof PERMISSION_LIST[number];\n\nexport const ROW_PER_PAGE_DEFAULT = 10;\nexport const ROW_PER_PAGE_DEFAULT_LIST = [5, 10, 20, 50, 100];\n\nexport const NUMBER_OF_EXCEL_INSERT_ROW = 100;\n\nexport const EMPTY_VALUE_STRING = '--';\n\nexport const DEFAULT_FORMAT_DATE = 'dd/MM/yyyy';\nexport const DEFAULT_FORMAT_DATETIME = 'dd/MM/yyyy HH:mm:ss';\nexport const DATE_HOUR_MINUTES_UPPER_MERIDIEM = 'dd/MM/yyyy HH:mm a';\nexport const DATE_HOUR_MINUTES_SECONDS_UPPER_MERIDIEM = 'dd/MM/yyyy hh:mm:ss a';\nexport const EDITOR_CONTENT_LIMIT = 3000;\nexport const ATTACHMENT_MAX_SIZE = 10000000;\nexport const DEFAULT_PROFILE_PIC_URL = \"https://firebasestorage.googleapis.com/v0/b/crm-project-9b8c9.appspot.com/o/Default%2Fprofile.png?alt=media&token=3dda3486-803b-4241-8752-b57b8299ffb1\";\n\nexport const EMAIL_REGEX = new RegExp(/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/);\n\nexport const URL_REGEX = new RegExp(/^(https?:\\/\\/)?(www\\.)?([a-zA-Z0-9]+(\\.[a-zA-Z]{2,})+)(:[0-9]{1,5})?(\\/[^\\s]*)?$/);\n\nexport const DOWNLOAD_IMPORT_PROFILE_TEMPLATE_FILE_NAME_XLSX = 'template_example.xlsx';\n\nexport const MAX_PANEL_LIST = 5;","import {\n  Component,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  OnInit,\n} from '@angular/core';\nimport {\n  DependOnFieldsDataSourceConfig,\n  UpdateOptionsDependOnFieldConfig,\n} from '../dropdown/dropdown.interface';\nimport {\n  combineLatest,\n  debounce,\n  distinctUntilChanged,\n  Observable,\n  of,\n  startWith,\n  Subject,\n  takeUntil,\n  tap,\n  timer,\n} from 'rxjs';\nimport { BaseFieldControlComponent } from './base-field-control';\nimport { BaseDataSourceActionEvent, FormConfig, OptionsModel, VirtualScrollConfig } from '../../services/components.service';\nimport { ROW_PER_PAGE_DEFAULT } from '../../util/common.const';\n\n// eslint-disable-next-line @angular-eslint/component-selector\n@Component({ selector: '', template: '' })\nexport abstract class BaseFieldDataSourceControl\n  extends BaseFieldControlComponent\n  implements OnInit, OnDestroy {\n  @Input() dependOnFields: DependOnFieldsDataSourceConfig[] = [];\n  @Input() override placeholder: string = 'INPUT.SELECT';\n  @Input() dataSourceDependOn: string[] = [];\n  @Input() dataSourceAction:\n    | ((event?: BaseDataSourceActionEvent) => Observable<any>)\n    | null = null;\n  @Input() sortOption: boolean = false;\n  @Input() options: OptionsModel[] = [];\n  @Input() virtualScroll?: VirtualScrollConfig | true = undefined;\n  @Input() totalRecords: number = 0;\n\n  protected trackingField: Observable<any>[] | EventEmitter<any>[] = [];\n  protected currentEvent: BaseDataSourceActionEvent;\n  protected lazyLoading = false;\n  protected destroy$ = new Subject();\n\n  protected optionUpdated = new Subject();\n  parentFieldConfig: FormConfig[] = [];\n\n  ngOnInit(): void {\n    if (\n      this.dataSourceAction &&\n      !this.dependOnFields.some((c) => c.updateOptions) &&\n      !this.dataSourceDependOn.length\n    ) {\n      this.getOptions('initData');\n    }\n\n    if (this.dependOnFields.length) {\n      const updateOptionsDependList = this.dependOnFields.find(\n        (c) => c.updateOptions,\n      ) as UpdateOptionsDependOnFieldConfig;\n\n      if (updateOptionsDependList) {\n        this.trackingField = updateOptionsDependList.fields.map(\n          (c: string | EventEmitter<any>) =>\n            c instanceof EventEmitter\n              ? c\n              : this.parentFieldConfig.find((field) => field.id === c)\n                ?.fieldControl?.valueChanges,\n        ) as Observable<any>[] | EventEmitter<any>[];\n        this.invokeDependent({\n          debounce: updateOptionsDependList.debounce || 0,\n          action: updateOptionsDependList.action,\n        });\n      }\n    }\n\n    if (this.dataSourceDependOn.length) {\n      this.trackingField = this.dataSourceDependOn.map(\n        (c: string | EventEmitter<any>) =>\n          c instanceof EventEmitter\n            ? c\n            : this.parentFieldConfig\n              .find((field) => field.id === c)\n              ?.fieldControl?.valueChanges.pipe(startWith('')),\n      ) as Observable<any>[] | EventEmitter<any>[];\n\n      this.invokeDependent({\n        debounce: 0,\n        action: () => {\n          if (this.dataSourceAction) {\n            const event = this.buildEventAction('dependChange');\n            return this.dataSourceAction(event);\n          } else {\n            console.error('Not have dataSourceAction');\n            return of([]);\n          }\n        },\n      });\n    }\n  }\n\n  protected invokeDependent(updateOptionsDependList: {\n    debounce: number;\n    action: () => Observable<any>;\n  }) {\n    combineLatest(this.trackingField as Observable<any>[])\n      .pipe(\n        takeUntil(this.destroy$),\n        distinctUntilChanged(),\n        debounce((_) => timer(updateOptionsDependList.debounce || 0)),\n      )\n      .subscribe((val) => {\n        updateOptionsDependList\n          .action()\n          .pipe(takeUntil(this.destroy$), distinctUntilChanged())\n          .subscribe(\n            (\n              val:\n                | OptionsModel[]\n                | { options: OptionsModel[]; totalRecords: number },\n            ) => {\n              this.updatedOptions(val);\n            },\n          );\n      });\n  }\n\n  protected getOptions(eventType: BaseDataSourceActionEvent['eventType']) {\n    if (this.dataSourceAction) {\n      this.lazyLoading = true;\n      const event = this.buildEventAction(eventType);\n      this.dataSourceAction(event)\n        .pipe(tap(() => (this.lazyLoading = false)))\n        .subscribe(\n          (\n            val:\n              | OptionsModel[]\n              | { options: OptionsModel[]; totalRecords: number },\n          ) => {\n            this.updatedOptions(val, eventType);\n          },\n        );\n    }\n  }\n\n  protected buildEventAction(\n    eventType: BaseDataSourceActionEvent['eventType'],\n  ): BaseDataSourceActionEvent {\n    switch (eventType) {\n      case 'initData':\n      case 'dependChange':\n        this.currentEvent = {\n          pageIndex: 1,\n          rowPerPage: ROW_PER_PAGE_DEFAULT,\n          eventType,\n        };\n        break;\n      case 'searchChange':\n        this.currentEvent = {\n          pageIndex: 1,\n          rowPerPage: ROW_PER_PAGE_DEFAULT,\n          eventType,\n          searchBy: this.currentEvent.searchBy,\n        };\n        break;\n      case 'changePageIndex':\n        this.currentEvent = {\n          pageIndex: (this.currentEvent?.pageIndex || 1) + 1,\n          rowPerPage: ROW_PER_PAGE_DEFAULT,\n          eventType,\n          searchBy: this.currentEvent.searchBy,\n        };\n        break;\n      default:\n        this.currentEvent = {\n          eventType: 'other',\n          rowPerPage: ROW_PER_PAGE_DEFAULT,\n        };\n        break;\n    }\n    this.currentEvent.defaultValue = this.fieldControl.value;\n    return this.currentEvent;\n  }\n\n  protected updatedOptions(\n    val: OptionsModel[] | { options: OptionsModel[]; totalRecords: number },\n    eventType = '',\n  ) {\n    this.lazyLoading = false;\n    if (eventType !== 'changePageIndex') {\n      this.options = Array.isArray(val) ? val : val.options;\n    } else {\n      this.options = Array.isArray(val)\n        ? val\n        : this.options.concat(val.options);\n    }\n    this.optionUpdated.next(true);\n\n    if (this.virtualScroll && !Array.isArray(val)) {\n      this.totalRecords = val.totalRecords;\n    }\n\n    if (\n      !this.virtualScroll &&\n      this.fieldControl.value &&\n      this.fieldControl.value.length &&\n      this.options.every(\n        (option) => !this.fieldControl.value.includes(option.value),\n      )\n    ) {\n      this.fieldControl.reset({ emitEvent: false });\n    }\n  }\n\n  ngOnDestroy() {\n    this.destroy$.next(true);\n    this.destroy$.complete();\n  }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { BaseFieldDataSourceControl } from '../base-field-control/base-data-source-control';\nimport { Observable, takeUntil } from 'rxjs';\nimport { ComponentImports } from '../component-import.module';\n\n@Component({\n  selector: 'app-base-checkbox',\n  templateUrl: './checkbox.component.html',\n  styleUrls: ['./checkbox.component.scss'],\n  imports: [ComponentImports],\n})\nexport class BaseCheckboxComponent\n  extends BaseFieldDataSourceControl\n  implements OnInit {\n  @Input() override options: { label?: any; value: any; required?: boolean; disabled?: boolean }[] = [];\n  @Input() direction: 'row' | 'column' = 'row';\n  @Input() optionsContainerClass = '';\n  @Input() singleSelect = false;\n  @Input() override dataSourceAction: (() => Observable<any>) | null = null;\n  @Input() switchInput = false;\n  @Output() onChange: EventEmitter<any> = new EventEmitter();\n  constructor() {\n    super();\n  }\n\n  selected: (string | number)[] = [];\n\n  override ngOnInit(): void {\n    super.ngOnInit();\n\n    this.options = this.options.map((i) =>\n      typeof i.value === 'boolean' ? { ...i, value: i.value.toString() } : i,\n    );\n\n    this.optionUpdated.pipe(takeUntil(this.destroy$)).subscribe((_) => {\n      this.options = this.options.map((i) =>\n        typeof i.value === 'boolean' ? { ...i, value: i.value.toString() } : i,\n      );\n    });\n\n    this.fieldControl.valueChanges.subscribe((val) => {\n      if (Array.isArray(this.fieldControl.value))\n        this.selected = this.convertBooleanToStringValue(\n          this.fieldControl.value,\n        );\n      else {\n        if (this.fieldControl.value)\n          this.selected = this.selected.concat(\n            typeof this.fieldControl.value === 'boolean'\n              ? this.fieldControl.value.toString()\n              : this.fieldControl.value,\n          );\n      }\n    });\n\n    if (Array.isArray(this.fieldControl.value))\n      this.selected = this.convertBooleanToStringValue(this.fieldControl.value);\n    else {\n      if (this.fieldControl.value)\n        this.selected = this.selected.concat(\n          typeof this.fieldControl.value === 'boolean'\n            ? this.fieldControl.value.toString()\n            : this.fieldControl.value,\n        );\n    }\n\n    this.fieldControl.statusChanges\n      .pipe(takeUntil(this.destroy$))\n      .subscribe((val) => {\n        if (val === 'DISABLED') {\n          this.disabled = true;\n        } else {\n          this.disabled = false;\n        }\n      });\n  }\n\n  handleChange(event: any, value: any) {\n    if (this.singleSelect) {\n      if (!event.checked.includes(value)) {\n        this.selected = [];\n      } else {\n        this.selected = [value];\n      }\n    }\n    this.fieldControl.setValue(\n      this.selected.map((i) =>\n        i === 'true' ? true : i === 'false' ? false : i,\n      ),\n    );\n    this.onChange.emit(event);\n  }\n\n  private convertBooleanToStringValue(data: (number | boolean | string)[]) {\n    return data.map((i) => (typeof i === 'boolean' ? i.toString() : i));\n  }\n}\n","<div class=\"checkbox-container\">\n  @if (!!label) {\n    <app-base-label\n      class=\"main-label\"\n      [required]=\"checkRequiredField()\"\n      [label]=\"label\"\n      [labelOneLine]=\"labelOneLine\"\n      [iconLabelTooltip]=\"iconLabelTooltip\"\n    >\n    </app-base-label>\n  }\n  <div\n    [class]=\"'' + optionsContainerClass\"\n    [ngStyle]=\"{\n      'flex-direction': direction === 'row' ? 'row' : 'column',\n    }\"\n    style=\"display: flex; flex-wrap: wrap; gap: var(--content-gap)\"\n  >\n    <div class=\"input-container\" *ngFor=\"let item of options\">\n      <p-checkbox\n        [name]=\"item.value\"\n        [(ngModel)]=\"selected\"\n        [value]=\"item.value\"\n        [inputId]=\"item.value\"\n        [disabled]=\"item?.disabled || disabled\"\n        (onChange)=\"handleChange($event, item.value)\"\n        [class]=\"styleClass\"\n      >\n      </p-checkbox>\n      @if (item.label) {\n        <label [for]=\"item.value\" class=\"\"\n          >{{ item.label | translate }} <span class=\"asterisk\" *ngIf=\"item.required\">*</span></label\n        >\n      }\n    </div>\n  </div>\n  <app-base-label *ngIf=\"checkInvalidField()\" [label]=\"errorMessage\" mode=\"error\"> </app-base-label>\n</div>\n","import {\n  Component,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { BaseFieldDataSourceControl } from '../base-field-control/base-data-source-control';\nimport { Subject, debounceTime, distinctUntilChanged } from 'rxjs';\nimport { ComponentImports } from '../component-import.module';\nimport { Select } from 'primeng/select';\nimport { IconStyle } from '../../services/components.service';\n@Component({\n  selector: 'app-base-dropdown',\n  templateUrl: './dropdown.component.html',\n  styleUrls: ['./dropdown.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  imports: [ComponentImports]\n})\nexport class BaseDropdownComponent\n  extends BaseFieldDataSourceControl\n  implements OnInit {\n  @Input() override placeholder: string = 'INPUT.SELECT';\n  @Input() searchable!: boolean;\n  @Output() onItemSelected: EventEmitter<any> = new EventEmitter();\n  @Input() defaultValue: any = null;\n  @Input() showClear: boolean = true;\n  @Input() containerClass = '';\n\n  @ViewChild('dropdown') dropdown!: Select;\n  selectedName: string = '';\n  filterChange = new Subject<string>();\n  overlayWidth = 0;\n\n  constructor() {\n    super();\n  }\n\n  override ngOnInit(): void {\n    super.ngOnInit();\n    this.selectedName = this.getLabelByValue(\n      this.fieldControl.value || this.defaultValue,\n    );\n\n    if (this.searchable === undefined) {\n      this.searchable = this.options.length > 5;\n    }\n\n    if (this.virtualScroll) {\n      this.filterChange\n        .pipe(debounceTime(400), distinctUntilChanged())\n        .subscribe((value) => {\n          this.currentEvent.searchBy = value;\n          this.getOptions('searchChange');\n        });\n    }\n\n    if (this.disabled) {\n      this.fieldControl.disable()\n    }\n  }\n\n  onChange(event: any) {\n    this.selectedName = this.getLabelByValue(event.value);\n    this.onItemSelected.emit(event.value);\n  }\n\n  getLabelByValue(value: string | number) {\n    const t =\n      this.options?.find(\n        (i) => JSON.stringify(i.value) === JSON.stringify(value),\n      )?.label || '';\n    return t;\n  }\n\n  onLazyLoad(event: { first: number; last: number }) {\n    if (\n      event.last > 0 &&\n      event.last + 5 > this.options.length &&\n      this.options.length < this.totalRecords &&\n      !this.lazyLoading\n    ) {\n      this.getOptions('changePageIndex');\n    }\n  }\n  onShow(event: any) {\n    let element = event.element as HTMLElement;\n    element.style.width = this.overlayWidth + 'px';\n  }\n\n  onClick(event: any) {\n    let element = <HTMLElement>event.target.closest('p-select');\n    this.overlayWidth = element.offsetWidth;\n  }\n\n  isObject(val: any): val is { icon: string, style?: IconStyle } {\n    return typeof val === 'object' && val !== null && 'icon' in val;\n  }\n}\n","<div [ngClass]=\"['dropdown-container', containerClass]\">\n  <app-base-label\n    [required]=\"checkRequiredField()\"\n    [label]=\"label\"\n    [labelOneLine]=\"labelOneLine\"\n    *ngIf=\"label\"\n    [iconLabelTooltip]=\"iconLabelTooltip\"\n  >\n  </app-base-label>\n  <p-select\n    #dropdown\n    [class]=\"'dropdown-item ' + styleClass\"\n    [options]=\"options\"\n    appendTo=\"body\"\n    styleClass=\"base-dropdown-style\"\n    panelStyleClass=\"dropdown-overlay-style\"\n    [placeholder]=\"placeholder | translate\"\n    [formControl]=\"fieldControl\"\n    [ngClass]=\"{ invalid: checkInvalidField() }\"\n    optionLabel=\"label\"\n    optionValue=\"value\"\n    optionDisabled=\"disabled\"\n    [filter]=\"searchable\"\n    filterBy=\"label\"\n    (onFilter)=\"filterChange.next($event.filter)\"\n    [showClear]=\"showClear\"\n    (onChange)=\"onChange($event)\"\n    [tooltip]=\"selectedName\"\n    tooltipPosition=\"bottom\"\n    [virtualScroll]=\"!!virtualScroll\"\n    [virtualScrollItemSize]=\"lazyLoading ? 224 : 38\"\n    [virtualScrollOptions]=\"{\n      showLoader: true,\n      loading: lazyLoading,\n    }\"\n    [lazy]=\"!!virtualScroll\"\n    (onLazyLoad)=\"onLazyLoad($event)\"\n    (onShow)=\"onShow($event)\"\n    (onClick)=\"onClick($event)\"\n  >\n    <ng-template pTemplate=\"loader\">\n      <div class=\"dropdow-spinner\">\n        <p-progressSpinner strokeWidth=\"2\"></p-progressSpinner>\n      </div>\n    </ng-template>\n    <ng-template pTemplate=\"selectedItem\">\n      {{ getLabelByValue(fieldControl.value) | translate }}\n    </ng-template>\n    <ng-template let-option pTemplate=\"item\">\n      <div class=\"dropdown-item-div tw-flex tw-gap-[var(--content-gap)]\">\n        <div *ngIf=\"option.preIcon\" class=\"dropdown-item-icon\">\n          <i\n            *ngIf=\"isObject(option.preIcon); else stringIcon\"\n            [class]=\"option.preIcon.icon\"\n            [ngStyle]=\"option.preIcon.style\"\n          ></i>\n          <ng-template #stringIcon>\n            <i [class]=\"option.preIcon\"></i>\n          </ng-template>\n        </div>\n        <div class=\"dropdown-label\">\n          {{ option.label | translate }}\n        </div>\n      </div>\n    </ng-template>\n  </p-select>\n  <app-base-label ngClass=\"mt-1\" *ngIf=\"checkInvalidField()\" [label]=\"errorMessage\" mode=\"error\">\n  </app-base-label>\n</div>\n","import { Directive, HostListener, Input } from '@angular/core';\n\n@Directive({\n  selector: '[onlyNumber]',\n  standalone: true,\n})\nexport class OnlyNumberDirective {\n  numberPattern: string = '^[0-9]*$';\n  numberRegEx: RegExp = new RegExp(this.numberPattern);\n\n  @Input() onlyNumber: boolean;\n\n  @HostListener('keydown', ['$event']) onKeyDown(event: KeyboardEvent) {\n    const ctrlOrMetaKey = event.ctrlKey || event.metaKey;\n    const key = event.key;\n    if (this.onlyNumber) {\n      if (\n        // Allow: Ctrl+A\n        (key === 'a' && ctrlOrMetaKey) ||\n        // Allow: Ctrl+C\n        (key === 'c' && ctrlOrMetaKey) ||\n        // Allow: Ctrl+V\n        (key === 'v' && ctrlOrMetaKey) ||\n        // Allow: Ctrl+X\n        (key === 'x' && ctrlOrMetaKey) ||\n        // Allow: Backspace, Delete, Tab, Escape, Enter, Home, End, ArrowLeft, ArrowRight\n        key === 'Backspace' ||\n        key === 'Delete' ||\n        key === 'Tab' ||\n        key === 'Escape' ||\n        key === 'Enter' ||\n        key === 'Home' ||\n        key === 'End' ||\n        key === 'ArrowLeft' ||\n        key === 'ArrowRight'\n      ) {\n        // let it happen, don't do anything\n        return;\n      }\n      // Ensure that it is a number and stop the keypress\n      if (!this.validateValue(key)) {\n        event.preventDefault();\n      }\n    }\n  }\n\n  @HostListener('paste', ['$event']) onPaste(e: any) {\n    if (this.onlyNumber) {\n      const value = e.clipboardData.getData('text/plain');\n      if (!this.validateValue(value)) {\n        e.preventDefault();\n      }\n    }\n  }\n\n  validateValue(value: string): boolean {\n    return this.numberRegEx.test(value);\n  }\n}\n","import { Component, EventEmitter, Input, Output, SimpleChanges } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { ComponentImports } from '../component-import.module';\nimport { AttachmentDto } from '../../services/components.service';\n\n@Component({\n  selector: 'app-chip',\n  templateUrl: './chip.component.html',\n  styleUrl: './chip.component.scss',\n  imports: [ComponentImports]\n})\nexport class ChipComponent {\n  @Input() label: string = '';\n  @Input() removable: boolean = true;\n  @Input() file: File;\n  @Input() attachment: AttachmentDto;\n  @Input() isFile: boolean = false;\n  @Input() downloadable: boolean = true;\n  @Input() styleClass: string = \"\";\n  @Input() labelStyleClass: string = \"\";\n  @Input() removeIconName: string = \"pi pi-times-circle\";\n  @Input() removeIconStyleClass: string = \"\";\n  @Output() remove = new EventEmitter();\n\n  isShowDIalog: boolean = false;\n  safeGoogleDocsUrl: any;\n\n  constructor(\n    public sanitizer: DomSanitizer,\n  ) {\n  }\n\n  ngOnInit() {\n\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['attachment'] && changes['attachment'].currentValue) {\n\n    }\n  }\n\n  onRemove() {\n    if (this.isFile) {\n      this.remove.emit(this.file);\n    }\n    else {\n      this.remove.emit(this.attachment);\n    }\n  }\n\n  previewFileClick() {\n    if (this.downloadable && this.attachment?.url) {\n      const link = document.createElement('a');\n      if (this.attachment) {\n        link.href = this.attachment.url;\n        link.download = this.attachment.fileName || 'download'; // optional: custom filename\n        link.target = '_blank'; // optional: opens in new tab\n        link.click();\n      }\n    } else {\n      // TODO\n\n      // this.toastService.addSingle({\n      //   message: 'MESSAGE.FILE_NOT_READABLE_OR_PREVIEW',\n      //   severity: 'error',\n      //   key: 'filePreviewError'\n      // })\n    }\n  }\n}\n","<p-chip\n  [removable]=\"removable\"\n  [class]=\"styleClass + ' tw-flex tw-text-ellipsis tw-overflow-hidden chip-box'\"\n  (onRemove)=\"onRemove()\"\n  (click)=\"downloadable ? previewFileClick() : null\"\n>\n  <div [class]=\"labelStyleClass + ' chip-label'\">{{ label }}</div>\n  <ng-template #removeicon>\n    <i [class]=\"removeIconName + ' ' + removeIconStyleClass\"></i>\n  </ng-template>\n</p-chip>\n","import { Component, Input } from '@angular/core';\n\nimport { BaseFieldDataSourceControl } from '../base-field-control/base-data-source-control';\nimport { ComponentImports } from '../component-import.module';\n\n@Component({\n  selector: 'app-base-radio',\n  templateUrl: './radio.component.html',\n  styleUrls: ['./radio.component.scss'],\n  imports: [ComponentImports]\n})\nexport class BaseRadioComponent extends BaseFieldDataSourceControl {\n  @Input() override options!: { label?: any; value: any; preIcon?: string }[];\n  @Input() direction: 'row' | 'column' = 'row';\n  @Input() containerClass = '';\n  @Input() inputContainerClass = '';\n  @Input() labelClass = '';\n\n  constructor() {\n    super();\n  }\n\n  override ngOnInit() {\n    super.ngOnInit();\n\n    if (this.disabled) {\n      this.fieldControl.disable()\n    }\n  }\n}\n","<div [ngClass]=\"['radio-container', containerClass]\">\n  <app-base-label\n    [ngClass]=\"labelClass || 'mb-2'\"\n    *ngIf=\"!!label\"\n    [required]=\"checkRequiredField()\"\n    [label]=\"label\"\n    [labelOneLine]=\"labelOneLine\"\n    [iconLabelTooltip]=\"iconLabelTooltip\"\n  >\n  </app-base-label>\n  <div class=\"flex flex-wrap\" [ngClass]=\"{ 'flex-column': direction === 'column' }\">\n    <div\n      [class]=\"'input-container mr-4 ' + inputContainerClass\"\n      [ngClass]=\"{ 'mr-4': direction === 'row' }\"\n      *ngFor=\"let item of options; let i = index\"\n    >\n      <p-radioButton\n        [name]=\"label\"\n        [formControl]=\"fieldControl\"\n        [value]=\"item.value\"\n        [inputId]=\"label + i\"\n        [class]=\"styleClass\"\n      ></p-radioButton>\n      <label *ngIf=\"!!item.label\" [for]=\"label + i\" class=\"fz-14_lh-16\">{{\n        item.label | translate\n      }}</label>\n    </div>\n  </div>\n  <app-base-label *ngIf=\"checkInvalidField()\" [label]=\"errorMessage\" mode=\"error\"> </app-base-label>\n</div>\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MessageService } from 'primeng/api';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { MessageModel } from './components.service';\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class ToastService {\n    private toastListSubject = new BehaviorSubject<MessageModel[]>([]);\n    toastList$ = this.toastListSubject.asObservable();\n\n    // FIX: separate stream just for removal requests\n    private removeSubject = new Subject<string>();\n    remove$ = this.removeSubject.asObservable();\n\n    private toasts: MessageModel[] = [];\n\n    constructor(\n        private messageService: MessageService,\n        private translateService: TranslateService,\n    ) { }\n\n    addSingle(toastConfig: MessageModel) {\n        if (!toastConfig.key) {\n            toastConfig.key = `toast-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`;\n        }\n\n        switch (toastConfig.severity) {\n            case 'success':\n            case undefined:\n                toastConfig.severity = 'success';\n                toastConfig.icon = 'pi pi-check';\n                break;\n            case 'error':\n                toastConfig.icon = 'pi pi-times-circle';\n                break;\n            case 'info':\n                toastConfig.icon = 'pi pi-info-circle';\n                break;\n            case 'warn':\n                toastConfig.icon = 'pi pi-exclamation-triangle';\n                break;\n        }\n\n        const messageData = toastConfig.messageData || [];\n\n        this.toasts.push({\n            severity: toastConfig.severity ?? 'success',\n            message:\n                typeof toastConfig.message === 'string'\n                    ? this.translateService.instant(\n                        toastConfig.message,\n                        this.loadMessageData(messageData).reduce((acc, cur) => {\n                            acc[cur.label] = this.translateService.instant(cur.value);\n                            return acc;\n                        }, {} as Record<string, string>)\n                    ) || toastConfig.message\n                    : '',\n            key: toastConfig.key,\n            sticky: toastConfig.sticky || toastConfig.isLoading,\n            icon: toastConfig.isLoading ? 'pi pi-spin pi-spinner' : toastConfig.icon,\n            isLoading: toastConfig.isLoading,\n        });\n        this.toastListSubject.next([...this.toasts]);\n\n        // FIX: emit on remove$ instead of calling clear() directly\n        // so the component can play the leave animation first\n        if (!toastConfig.sticky && !toastConfig.isLoading) {\n            setTimeout(() => this.removeSubject.next(toastConfig.key!), 3000);\n        }\n    }\n\n    private loadMessageData(data: any[]) {\n        return data.map((i) => ({\n            label: this.translateService.instant(i.key),\n            value: i.value,\n        }));\n    }\n\n    addMultiple(toastConfig: MessageModel[]) {\n        this.messageService.addAll(\n            toastConfig.map((i) => {\n                switch (i.severity) {\n                    case 'success':\n                    case undefined:\n                        i.severity = 'success';\n                        i.icon = 'pi pi-check';\n                        break;\n                    case 'error':\n                        i.icon = 'pi pi-times-circle';\n                        break;\n                    case 'info':\n                        i.icon = 'pi pi-info-circle';\n                        break;\n                }\n                return {\n                    severity: i.severity,\n                    detail: this.translateService.instant(i.message),\n                    key: 'tr',\n                    sticky: i.isLoading,\n                    icon: i.isLoading ? 'pi pi-spin pi-spinner' : undefined,\n                    isLoading: i.isLoading,\n                };\n            }),\n        );\n    }\n\n    clear(key?: string) {\n        if (key) {\n            this.toasts = this.toasts.filter(t => t.key !== key);\n            this.removeSubject.next(key);  // FIX: route through remove$ so animation plays\n        } else {\n            // Clear all — emit remove$ for every tracked toast\n            const keys = this.toasts.map(t => t.key!);\n            this.toasts = [];\n            keys.forEach(k => this.removeSubject.next(k));\n        }\n        this.toastListSubject.next([...this.toasts]);\n    }\n}","import { Component, OnInit, ChangeDetectorRef, ViewEncapsulation } from '@angular/core';\nimport { MessageModel } from '../../services/components.service';\nimport { ToastService } from '../../services/toast.service';\nimport { ComponentImports } from '../component-import.module';\n\n@Component({\n  selector: 'app-toast',\n  templateUrl: './toast.component.html',\n  styleUrls: ['./toast.component.scss'],\n  imports: [ComponentImports],\n  encapsulation: ViewEncapsulation.None\n})\nexport class ToastComponent implements OnInit {\n  toastList: MessageModel[] = [];\n  enteredToasts: Record<string, boolean> = {};\n  closingToasts: Record<string, boolean> = {};\n\n  constructor(\n    private toastService: ToastService,\n    private cdr: ChangeDetectorRef,\n  ) { }\n\n  ngOnInit() {\n    this.toastService.toastList$.subscribe((list) => {\n      const currentKeys = new Set(this.toastList.map(t => t.key));\n      const closingKeys = new Set(Object.keys(this.closingToasts));\n\n      list.forEach((toast) => {\n        if (!currentKeys.has(toast.key) && !closingKeys.has(toast.key!)) {\n          this.toastList.push(toast);\n          if (toast.key) {\n            this.enteredToasts[toast.key] = false;\n          }\n        }\n      });\n\n      this.cdr.detectChanges();\n\n      this.toastList.forEach((toast) => {\n        if (toast.key && !this.enteredToasts[toast.key]) {\n          setTimeout(() => {\n            this.enteredToasts[toast.key!] = true;\n            this.cdr.detectChanges();\n          }, 16);\n        }\n      });\n    });\n\n    // FIX: auto-remove requests from the service go through\n    // removeToast() so the leave animation always plays\n    this.toastService.remove$.subscribe((key) => {\n      this.removeToast(key);\n    });\n  }\n\n  removeToast(key: string) {\n    // Guard: already closing, don't double-trigger\n    if (this.closingToasts[key]) return;\n\n    this.closingToasts[key] = true;\n    this.cdr.detectChanges();\n\n    setTimeout(() => {\n      this.toastList = this.toastList.filter(t => t.key !== key);\n      delete this.closingToasts[key];\n      delete this.enteredToasts[key];\n      this.toastService.clear(key);\n      this.cdr.detectChanges();\n    }, 300);\n  }\n\n  trackByKey(_: number, toast: MessageModel): string {\n    return toast.key ?? '';\n  }\n\n  isClosing(key: string): boolean {\n    return !!this.closingToasts[key];\n  }\n\n  hasEntered(key: string): boolean {\n    return !!this.enteredToasts[key];\n  }\n}","<div class=\"toast-container top-right\">\n  <div\n    *ngFor=\"let toast of toastList; trackBy: trackByKey\"\n    [ngClass]=\"{\n      'toast-item': true,\n      'toast-severity--success': toast.severity === 'success',\n      'toast-severity--error': toast.severity === 'error',\n      'toast-severity--info': toast.severity === 'info',\n      'toast-severity--warn': toast.severity === 'warn',\n      'toast-enter': !hasEntered(toast.key) && !isClosing(toast.key),\n      'toast-enter-active': hasEntered(toast.key) && !isClosing(toast.key),\n      'toast-leave-active': isClosing(toast.key),\n    }\"\n  >\n    <span [class]=\"toast.icon\"></span>\n    <div class=\"toast-message\">{{ toast.message }}</div>\n    <i class=\"pi pi-times toast-close\" (click)=\"removeToast(toast.key)\"></i>\n  </div>\n</div>\n","import {\n  Component,\n  Input,\n  OnChanges,\n  OnInit,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {\n  AbstractControl,\n  FormControl,\n  ValidationErrors,\n  ValidatorFn,\n  Validators,\n} from '@angular/forms';\nimport { BaseFieldControlComponent } from '../base-field-control/base-field-control';\n\n// to disable warnings then we have a config in angular.json allowedCommonJsDependencies\nimport dayjs from 'dayjs';\nimport { combineLatest, startWith, Subject, takeUntil } from 'rxjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { DEFAULT_FORMAT_DATE } from '../../util/common.const';\nimport { ComponentImports } from '../component-import.module';\nimport { DatePickerTypeView } from 'primeng/datepicker';\ndayjs.extend(customParseFormat);\n\n@Component({\n  selector: 'app-base-datepicker',\n  templateUrl: './datepicker.component.html',\n  styleUrls: ['./datepicker.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  imports: [ComponentImports]\n})\nexport class BaseDatepickerComponent\n  extends BaseFieldControlComponent\n  implements OnInit, OnChanges {\n  @Input() dateFormat!: string;\n  @Input() mode: 'range' | 'single' | 'range_2' = 'single';\n  @Input() override placeholder: string = DEFAULT_FORMAT_DATE;\n  @Input() minDate!: Date;\n  @Input() maxDate!: Date;\n  @Input() view?: DatePickerTypeView = 'date';\n  @Input() showTime: boolean = false;\n  @Input() showSeconds: boolean = false;\n  @Input() timeOnly: boolean = false;\n  destroy$: Subject<boolean> = new Subject<boolean>();\n\n  date_from = new FormControl();\n  date_to = new FormControl();\n  dateToErrorMessage = '';\n  constructor() {\n    super();\n  }\n\n  ngOnInit(): void {\n    if (this.mode === 'range_2') {\n      const _this = this;\n\n      const func = FormControl.prototype.markAsTouched;\n\n      FormControl.prototype.markAsTouched = function () {\n        func.call(this);\n        if (Array.isArray(this.value)) {\n          _this.date_from.setValue(_this.date_from.value, { emitEvent: false });\n          _this.date_to.setValue(_this.date_to.value, { emitEvent: false });\n          _this.date_from.markAsTouched();\n          _this.date_to.markAsTouched();\n        }\n      };\n\n      this.fieldControl.statusChanges\n        .pipe(takeUntil(this.destroy$))\n        .subscribe((status) => {\n          if (status === 'DISABLED') {\n            this.setDisabledRange(true);\n          }\n        });\n\n      this.date_from.updateValueAndValidity();\n      this.date_to.updateValueAndValidity();\n      if (typeof this.fieldControl.value === 'string') {\n        this.fieldControl = new FormControl({ emitEvent: false });\n        this.date_from.setValue(new Date(), { emitEvent: false });\n        this.date_from.markAsTouched();\n      } else {\n        if (this.fieldControl.value) {\n          if (\n            (this.fieldControl.value[0] === '' &&\n              this.fieldControl.value[1] === '') ||\n            (this.fieldControl.value[0] === null &&\n              this.fieldControl.value[1] === null)\n          ) {\n            this.date_from.reset(null, { emitEvent: false });\n            this.date_to.reset(null, { emitEvent: false });\n          } else {\n            this.date_from.setValue(this.fieldControl.value &&\n              this.fieldControl.value[0] instanceof Date\n              ? this.fieldControl.value[0]\n              : new Date(this.fieldControl.value?.[0]), { emitEvent: false });\n            this.date_to.setValue(this.fieldControl.value &&\n              this.fieldControl.value[1] instanceof Date\n              ? this.fieldControl.value[1]\n              : new Date(this.fieldControl.value?.[1]), { emitEvent: false });\n          }\n        }\n      }\n\n      combineLatest([\n        this.date_from.valueChanges.pipe(startWith(this.date_from.value)),\n        this.date_to.valueChanges.pipe(startWith(this.date_to.value)),\n      ]).subscribe(([from, to]) => {\n        if (from && to && dayjs(to).isBefore(dayjs(from))) {\n          this.date_from.setErrors({ invalid_range: true });\n          this.date_to.setErrors({ invalid_range: true });\n          this.fieldControl.setErrors({ invalid_range: true });\n        }\n\n        if (\n          from &&\n          to &&\n          !dayjs(to).isBefore(dayjs(from)) &&\n          (this.date_from.hasError('invalid_range') ||\n            this.date_to.hasError('invalid_range'))\n        ) {\n          this.date_from.setErrors({ invalid_range: null });\n          this.date_to.setErrors({ invalid_range: null });\n          this.date_from.updateValueAndValidity();\n          this.date_to.updateValueAndValidity();\n        }\n      });\n\n      this.fieldControl.valueChanges.subscribe((val) => {\n        if (\n          val === null ||\n          val === '' ||\n          (Array.isArray(val) && val.every((e) => e === null || e === ''))\n        ) {\n          if (this.mode === 'range_2') {\n            this.date_from.reset({ emitEvent: false });\n            this.date_to.reset({ emitEvent: false });\n          } else {\n            this.date_from.reset({ emitEvent: false });\n          }\n        } else {\n          if (val[0] !== this.date_from.value) {\n            this.date_from.setValue(val[0] instanceof Date ? val[0] : new Date(val[0]), { emitEvent: false });\n            this.date_from.markAsTouched();\n          }\n\n          if (val[1] !== this.date_to.value) {\n            this.date_to.setValue(val[0] instanceof Date ? val[1] : new Date(val[1]), { emitEvent: false });\n            this.date_to.markAsTouched();\n          }\n        }\n      });\n\n      this.setDisabledRange(this.disabled);\n    } else {\n      // this.fieldControl.addValidators(this.invalidDateFormat(this.dateFormat));\n      let validators = [this.invalidDateFormat(this.dateFormat)];\n      if (this.required) {\n        validators = [Validators.required, ...validators];\n      }\n      this.fieldControl.addValidators(validators);\n      this.fieldControl.updateValueAndValidity();\n    }\n\n    this.date_from.addValidators(this.invalidDateFormat(this.dateFormat));\n    this.date_to.addValidators(this.invalidDateFormat(this.dateFormat));\n\n    if (this.fieldControl.hasValidator(Validators.required)) {\n      // this.fieldControl.removeValidators(Validators.required);\n      // this.fieldControl.addValidators(this.customRequiredValidatorRange2);\n      this.date_from.addValidators(Validators.required);\n      this.date_to.addValidators(Validators.required);\n    }\n\n    this.errorMessageList = {\n      format: 'ERROR.INVALID_FORMAT',\n      invalid_range: 'ERROR.INVALID_DATE_RANGE',\n      ...this.errorMessageList,\n    };\n\n    if (this.disabled) {\n      this.fieldControl.disable()\n    }\n  }\n\n  ngOnChanges(changes: any): void {\n    if (this.mode === 'range_2' && changes.disabled) {\n      this.setDisabledRange(changes.disabled.currentValue);\n    }\n  }\n\n  setDisabledRange(disabled: boolean) {\n    if (disabled) {\n      this.date_from.disable();\n      this.date_to.disable();\n    } else {\n      this.date_from.enable();\n      this.date_to.enable();\n    }\n  }\n\n  invalidDateFormat(format: string = DEFAULT_FORMAT_DATE): ValidatorFn {\n    return (control: AbstractControl): ValidationErrors | null => {\n      if (typeof control.value === 'string') {\n        return !control.value || dayjs(control.value, format).isValid()\n          ? null\n          : { format: true };\n      } else {\n        return !control.value || dayjs(control.value).isValid()\n          ? null\n          : { format: true };\n      }\n    };\n  }\n\n  override checkInvalidField(): boolean {\n    if (this.mode !== 'range_2') return super.checkInvalidField();\n    const invalid =\n      (this.date_from?.dirty || this.date_from?.touched) &&\n      this.date_from?.invalid;\n    if (invalid && !this.disabled) {\n      this.errorMessage = !!this.errorMessageList\n        ? this.errorMessageList[Object.keys(this.date_from.errors || [])[0]]\n        : '';\n    }\n    return invalid;\n  }\n\n  checkInvalidDateToField(): boolean {\n    const invalid =\n      (this.date_to?.dirty || this.date_to?.touched) && this.date_to?.invalid;\n    if (invalid && !this.disabled) {\n      this.errorMessage = !!this.errorMessageList\n        ? this.errorMessageList[Object.keys(this.date_to.errors || [])[0]]\n        : '';\n      // not show invalid_range error message in date_to\n      this.dateToErrorMessage = !!this.errorMessageList\n        ? this.errorMessageList[\n        Object.keys(this.date_to.errors || []).filter(\n          (e) => e !== 'invalid_range',\n        )[0]\n        ]\n        : '';\n    }\n    return invalid;\n  }\n\n  customRequiredValidatorRange2 = (control: AbstractControl) => {\n    if (!control.value || (!control.value[0] && !control.value[1]))\n      return { required: true };\n    return null;\n  };\n\n  IsArrayLabel(label: any) {\n    return Array.isArray(label) && label.length > 1;\n  }\n}\n","<div class=\"datepicker-container\">\n  <app-base-label\n    *ngIf=\"!IsArrayLabel(label) && !!label\"\n    [required]=\"checkRequiredField()\"\n    [label]=\"label\"\n    [labelOneLine]=\"labelOneLine\"\n  >\n  </app-base-label>\n\n  <div class=\"input-container\">\n    <p-datepicker\n      *ngIf=\"mode === 'range' || mode === 'single'\"\n      [class]=\"'datepicker-item ' + styleClass\"\n      [keepInvalid]=\"true\"\n      iconPos=\"left\"\n      [showIcon]=\"true\"\n      icon=\"pi pi-calendar\"\n      appendTo=\"body\"\n      [dateFormat]=\"dateFormat || 'dd/mm/yy'\"\n      [placeholder]=\"placeholder\"\n      [ngClass]=\"{ invalid: checkInvalidField() }\"\n      [formControl]=\"fieldControl\"\n      [selectionMode]=\"mode\"\n      [minDate]=\"minDate\"\n      [maxDate]=\"maxDate\"\n      [required]=\"required\"\n      [showTime]=\"showTime\"\n      tabindex=\"-1\"\n      [showSeconds]=\"showSeconds\"\n      [timeOnly]=\"timeOnly\"\n      [showButtonBar]=\"true\"\n    >\n    </p-datepicker>\n\n    <!-- range 2 -->\n    <div *ngIf=\"mode === 'range_2'\" class=\"flex flex-row flex-wrap align-items-center\">\n      <div class=\"flex flex-column date-range-picker\">\n        <app-base-label *ngIf=\"IsArrayLabel(label)\" class=\"flex\" [label]=\"label[0]\">\n        </app-base-label>\n        <p-datepicker\n          class=\"datepicker-item date-from flex flex-1\"\n          appendTo=\"body\"\n          [dateFormat]=\"dateFormat || 'dd/mm/yy'\"\n          [placeholder]=\"placeholder\"\n          [ngClass]=\"{ invalid: checkInvalidField() }\"\n          [formControl]=\"date_from\"\n          [disabled]=\"disabled\"\n          [showIcon]=\"true\"\n          tabindex=\"-1\"\n          [timeOnly]=\"timeOnly\"\n          [showButtonBar]=\"true\"\n        ></p-datepicker>\n      </div>\n\n      <div\n        style=\"width: 7%\"\n        [class]=\"'px-2 text-center' + (IsArrayLabel(label) ? ' mt-4 p-2' : '')\"\n      >\n        to\n      </div>\n\n      <div class=\"flex flex-column date-range-picker\">\n        <app-base-label class=\"flex\" *ngIf=\"IsArrayLabel(label)\" class=\"flex\" [label]=\"label[1]\">\n        </app-base-label>\n        <p-datepicker\n          class=\"datepicker-item date-to flex-1\"\n          appendTo=\"body\"\n          [dateFormat]=\"dateFormat || 'dd/mm/yy'\"\n          [placeholder]=\"placeholder\"\n          [ngClass]=\"{ invalid: checkInvalidDateToField() }\"\n          [formControl]=\"date_to\"\n          [disabled]=\"disabled\"\n          [showIcon]=\"true\"\n          tabindex=\"-1\"\n          [timeOnly]=\"timeOnly\"\n          [showButtonBar]=\"true\"\n        ></p-datepicker>\n      </div>\n    </div>\n  </div>\n\n  <!-- error -->\n  <div class=\"w-full flex\">\n    <div class=\"pl-0\">\n      <app-base-label *ngIf=\"checkInvalidField()\" [label]=\"errorMessage\" mode=\"error\">\n      </app-base-label>\n    </div>\n\n    <app-base-label\n      class=\"pl-3\"\n      *ngIf=\"mode === 'range_2' && checkInvalidDateToField()\"\n      [label]=\"dateToErrorMessage\"\n      mode=\"error\"\n    >\n    </app-base-label>\n  </div>\n</div>\n","import { Component, Input, SimpleChanges } from '@angular/core';\nimport { Router, ActivatedRoute, NavigationEnd } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MenuItem } from 'primeng/api';\nimport { filter } from 'rxjs';\nimport { ComponentImports } from '../component-import.module';\n\n@Component({\n  selector: 'app-breadcrumb',\n  templateUrl: './breadcrumb.component.html',\n  styleUrl: './breadcrumb.component.scss',\n  imports: [ComponentImports]\n})\nexport class BreadcrumbComponent {\n  @Input() homeLink: string = '';\n  items: MenuItem[] = [];\n  home: MenuItem = {\n    routerLink: '',\n  };\n  constructor(\n    private router: Router,\n    private activatedRoute: ActivatedRoute,\n    private translateService: TranslateService,\n  ) { }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['homeLink'] && changes['homeLink'].currentValue) {\n      this.home = {\n        routerLink: `/${changes['homeLink'].currentValue}`,\n      }\n    }\n  }\n\n  ngOnInit() {\n    this.router.events\n      .pipe(filter((event) => event instanceof NavigationEnd))\n      .subscribe(() => {\n        this.buildBreadCrumbs();\n      });\n    this.buildBreadCrumbs();\n  }\n\n  buildBreadCrumbs() {\n    this.items = [];\n    let currentRoute = this.activatedRoute.root.children[0] as ActivatedRoute | null,\n      url = '';\n    let lastItem = '';\n    do {\n      const childrenRoutes = currentRoute?.children;\n      currentRoute = null;\n      childrenRoutes?.forEach((route) => {\n        if (route.outlet === 'primary' && route.snapshot?.data?.['title']) {\n          const routeSnapshot = route.snapshot;\n          if (lastItem != routeSnapshot.data['title']) {\n            lastItem = routeSnapshot.data['title'];\n            url +=\n              '/crm/' + routeSnapshot.url.map((segment) => segment.path).join('/');\n            this.items.push({\n              label: this.translateService.instant(routeSnapshot.data['title']),\n              routerLink: url,\n            });\n          }\n          currentRoute = route;\n        }\n      });\n    } while (currentRoute);\n  }\n}\n","<p-breadcrumb [model]=\"items\" [home]=\"home\"></p-breadcrumb>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { BaseFieldControlComponent } from '../base-field-control/base-field-control';\nimport { ComponentImports } from '../component-import.module';\n\n@Component({\n  selector: 'app-base-textarea',\n  templateUrl: './textarea.component.html',\n  styleUrls: ['./textarea.component.scss'],\n  imports: [ComponentImports]\n})\nexport class BaseTextareaComponent\n  extends BaseFieldControlComponent\n  implements OnInit {\n  @Input() lineNumber: number = 3;\n  @Input() maxLength!: number;\n  @Input() autoResize: boolean = true;\n  @Input() labelShowsOptional = false;\n  @Input() hideLengthLimit = false;\n  @Input() instructionText = '';\n  @Input() tooltip = '';\n  @Input() autoFocus: boolean = false;\n  currentLength: number = 0;\n  constructor() {\n    super();\n  }\n\n  ngOnInit(): void {\n    this.currentLength = this.fieldControl.value?.length || 0;\n    this.fieldControl.valueChanges.subscribe((val: string) => {\n      this.currentLength = val?.length || 0;\n    });\n\n    if (this.maxLength > 500 || !this.maxLength) this.maxLength = 500;\n  }\n}\n","<div class=\"textarea-container\" [ngClass]=\"{ invalid: checkInvalidField() }\">\n  <app-base-label\n    *ngIf=\"!!label\"\n    [required]=\"checkRequiredField()\"\n    [label]=\"label\"\n    [labelOneLine]=\"labelOneLine\"\n    [showOptionalText]=\"labelShowsOptional\"\n  >\n  </app-base-label>\n  <div class=\"input-container\">\n    <textarea\n      pTextarea\n      [rows]=\"lineNumber\"\n      placeholder=\"{{ placeholder | translate }}\"\n      [autoResize]=\"autoResize\"\n      [attr.maxLength]=\"maxLength ? maxLength : null\"\n      [formControl]=\"fieldControl\"\n      [readonly]=\"disabled\"\n      pTooltip=\"{{ tooltip | translate }}\"\n      [pAutoFocus]=\"autoFocus\"\n      [class]=\"styleClass\"\n    ></textarea>\n    <div class=\"count\" *ngIf=\"maxLength > 0 && !hideLengthLimit\">\n      ({{ currentLength }}/{{ maxLength }} characters)\n    </div>\n  </div>\n  <app-base-label *ngIf=\"checkInvalidField()\" [label]=\"errorMessage\" mode=\"error\"> </app-base-label>\n  <div class=\"text-color-secondary\">{{ instructionText | translate }}</div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { BaseFieldControlComponent } from '../base-field-control/base-field-control';\nimport { ComponentImports } from '../component-import.module';\n\n@Component({\n  selector: 'app-base-switch',\n  templateUrl: './input-switch.component.html',\n  styleUrl: './input-switch.component.scss',\n  imports: [ComponentImports],\n})\nexport class BaseSwitchComponent extends BaseFieldControlComponent {\n  @Input() content!: string;\n  @Input() inline: boolean = false;\n  @Input() descriptionMessage: string = '';\n\n  @Output() switchUpdate: EventEmitter<any> = new EventEmitter<any>();\n\n  constructor() {\n    super();\n  }\n\n  inputSwitchOnClick() {\n    this.switchUpdate.emit();\n  }\n}\n","<div class=\"textbox-container\">\n  <div [ngClass]=\"{ 'inline-layout': inline }\">\n    <div class=\"label-wrapper\">\n      <app-base-label\n        *ngIf=\"!!label\"\n        [required]=\"checkRequiredField()\"\n        [label]=\"label\"\n        [labelOneLine]=\"labelOneLine\"\n        [iconLabelTooltip]=\"iconLabelTooltip\"\n      >\n      </app-base-label>\n      <div class=\"description-message\" *ngIf=\"descriptionMessage\">\n        {{ descriptionMessage | translate }}\n      </div>\n    </div>\n\n    <div class=\"input-switch-container\">\n      <p-toggleswitch\n        (onChange)=\"inputSwitchOnClick()\"\n        [formControl]=\"fieldControl\"\n      ></p-toggleswitch>\n      <div class=\"inline-flex ml-2\" *ngIf=\"content\">{{ content | translate }}</div>\n    </div>\n  </div>\n\n  <app-base-label ngClass=\"mt-2\" *ngIf=\"checkInvalidField()\" [label]=\"errorMessage\" mode=\"error\">\n  </app-base-label>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { PrimeNgModule } from \"../modules/primeng.module\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { BaseLabelComponent } from \"./label/label.component\";\nimport { BaseButtonComponent } from \"./button/button.component\";\nimport { FormArrayComponent } from \"./form/form-array.component\";\nimport { FormArrayItemComponent } from \"./form/form-array-item.component\";\nimport { BaseFormComponent } from \"./form/form.component\";\nimport { FormItemComponent } from \"./form/form-item.component\";\nimport { BaseCheckboxComponent } from \"./checkbox/checkbox.component\";\n\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { BaseDropdownComponent } from \"./dropdown/dropdown.component\";\nimport { OnlyNumberDirective } from \"../util/directives/only-number.directive\";\nimport { PasswordDirective } from \"primeng/password\";\nimport { ChipComponent } from \"./chip/chip.component\";\nimport { BaseRadioComponent } from \"./radio/radio.component\";\nimport { ToastComponent } from \"./toast/toast.component\";\nimport { TextareaModule } from 'primeng/textarea';\nimport { BaseDatepickerComponent } from \"./datepicker/datepicker.component\";\nimport { BreadcrumbComponent } from \"./breadcrumb/breadcrumb.component\";\nimport { BaseTextareaComponent } from \"./textarea/textarea.component\";\nimport { AutoFocusModule } from 'primeng/autofocus';\nimport { BaseSwitchComponent } from \"./input-switch/input-switch.component\";\n\nconst components = [\n    BaseLabelComponent,\n    BaseButtonComponent,\n    FormArrayComponent,\n    FormArrayItemComponent,\n    FormItemComponent,\n    BaseFormComponent,\n    BaseCheckboxComponent,\n    BaseDropdownComponent,\n    ChipComponent,\n    BaseRadioComponent,\n    ToastComponent,\n    BaseTextareaComponent,\n    BaseDatepickerComponent,\n    BreadcrumbComponent,\n    AutoFocusModule,\n    BaseSwitchComponent\n]\n\nexport const ComponentImports = [\n    components,\n\n    PrimeNgModule,\n    CommonModule,\n    FormsModule,\n    ReactiveFormsModule,\n    TranslateModule,\n    OnlyNumberDirective,\n    PasswordDirective\n];","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ComponentImports } from '../component-import.module';\nimport { BaseFieldControlComponent } from '../base-field-control/base-field-control';\nimport { SplitButton } from 'primeng/splitbutton';\n\n@Component({\n  selector: 'app-base-button',\n  imports: [ComponentImports],\n  templateUrl: './button.component.html',\n  styleUrl: './button.component.scss',\n})\nexport class BaseButtonComponent\n  extends BaseFieldControlComponent\n  implements OnInit {\n  @Input() outlined!: boolean;\n  @Input() color: 'normal' | 'red' | 'yellow' | 'green' = 'normal';\n  @Input() iconUrl!: string;\n  @Input() rightIcon: boolean = false;\n  @Input() iconName: string = '';\n  @Input() type: 'normal' | 'split' = 'normal';\n  @Input() buttonType: 'button' | 'submit' = 'button';\n  @Input() isTextStyle: boolean = false;\n  @Input() rounded: boolean = false;\n  @Input() splitButtonItems: {\n    label: string;\n    icon?: string;\n    command?: () => void;\n  }[] = [];\n  @Input() splitOneClick = false;\n  @Output() onClick = new EventEmitter();\n  @Input() actionType?: string | string[];\n  @Input() createdBy?: string;\n  @Input() moduleCode?: any;\n  @Input() buttonClass: string = '';\n  @Input() loading: boolean = false;\n  @Input() raised: boolean = false;\n  @Input() isSpinning: boolean = false;\n  @Input() severity: 'primary' | 'secondary' = 'primary';\n\n  constructor() {\n    super();\n  }\n\n  actionPermission: {\n    moduleCode: string | string[];\n    actionType: string | string[];\n  } = null as any;\n\n  ngOnInit(): void {\n    if (this.type === 'split' && this.splitOneClick) {\n      SplitButton.prototype.onDefaultButtonClick =\n        SplitButton.prototype.onDropdownButtonClick;\n    }\n\n    if (this.actionPermission) {\n      this.moduleCode = this.actionPermission.moduleCode;\n      this.actionType = this.actionPermission.actionType;\n    }\n  }\n\n  click($event: MouseEvent) {\n    this.onClick.emit($event);\n  }\n}\n","<div class=\"button-container\">\n  <ng-container [ngSwitch]=\"type\">\n    <ng-template [ngSwitchDefault]>\n      <p-button\n        [rounded]=\"rounded\"\n        [outlined]=\"outlined || severity === 'secondary'\"\n        [type]=\"buttonType\"\n        [label]=\"isSpinning ? undefined : (label | translate)\"\n        [icon]=\"(!!iconName ? iconName : '') + (isSpinning ? ' pi pi-spin pi-spinner ' : '')\"\n        [iconPos]=\"rightIcon ? 'right' : 'left'\"\n        [class]=\"'button-item ' + buttonClass\"\n        [text]=\"isTextStyle\"\n        [ngClass]=\"{\n          'border-none': !outlined,\n          'bg-red-400': color === 'red',\n          oneline: labelOneLine,\n          'outline-hover': outlined || severity === 'secondary' || isTextStyle,\n        }\"\n        [disabled]=\"disabled\"\n        (click)=\"click($event)\"\n        [loading]=\"loading\"\n        [raised]=\"raised\"\n        [styleClass]=\"styleClass\"\n      >\n        <img class=\"h-1rem w-1rem\" alt=\"icon\" *ngIf=\"!!iconUrl && !rightIcon\" [src]=\"iconUrl\" />\n      </p-button>\n    </ng-template>\n    <ng-template [ngSwitchCase]=\"'split'\">\n      <!-- TODO -->\n      <!-- <p-splitButton\n        label=\"{{ label | translate }}\"\n        [icon]=\"!!iconName ? iconName : ''\"\n        [iconPos]=\"rightIcon ? 'right' : 'left'\"\n        class=\"split-button-item\"\n        [ngClass]=\"{\n          outlined: outlined,\n          'bg-red-400': color === 'red'\n        }\"\n        [disabled]=\"disabled\"\n        [model]=\"splitButtonItems\"\n      >\n      </p-splitButton> -->\n    </ng-template>\n  </ng-container>\n</div>\n","import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\nimport { BaseFieldControlComponent } from '../base-field-control/base-field-control';\nimport { EMAIL_REGEX, URL_REGEX } from '../../util/common.const';\nimport { ComponentImports } from '../component-import.module';\n\n@Component({\n  selector: 'app-base-input',\n  templateUrl: './input.component.html',\n  styleUrls: ['./input.component.scss'],\n  imports: [ComponentImports]\n})\nexport class BaseInputComponent\n  extends BaseFieldControlComponent\n  implements OnInit {\n  @Input() mode: 'text' | 'number' | 'password' | 'label-text' | 'email' | 'url' | 'phone' | 'chips' =\n    'text';\n  @Input() iconUrl!: string;\n  @Input() leftIconUrl!: string;\n  @Input() onBlurFunction: any;\n  @Input() onlyNumber: boolean = false;\n  @Input() maxLength = 255;\n  @Input() prefix: string = '';\n  @Input() suffix: string = '';\n  @Input() min!: number;\n  @Input() max!: number;\n  @Input() minFractionDigits: number = 2;\n  @Input() maxFractionDigits: number = 2;\n  @Input() useGrouping: boolean = true;\n  @Input() content!: string;\n  @Input() descriptionMessage: string = '';\n  @Input() labelTextStyle: string = '';\n  @Input() autoFocus: boolean = false;\n  @Input() iconLeftStyle: string = '';\n  @Input() iconRightStyle: string = '';\n  @Input() seperator: string = ' ';\n  @Input() isValidPassword: boolean = true;\n  @ViewChild('prefix_content', { static: true })\n  prefix_content!: ElementRef<HTMLDivElement>;\n\n  paddingForPrefix = 10;\n\n  ngOnInit() {\n    if (this.mode === 'number') {\n      this.fieldControl.setValue(this.fieldControl.value ?? undefined, {\n        emitEvent: false,\n      });\n    }\n\n    // validate email\n    if (this.mode === 'email') {\n      this.fieldControl.valueChanges.subscribe(val => {\n        if (!EMAIL_REGEX.test(val)) {\n          this.fieldControl.setErrors({\n            invalidEmail: true\n          })\n        }\n      });\n    }\n\n    // validate email\n    if (this.mode === 'url') {\n      this.fieldControl.valueChanges.subscribe(val => {\n        if (!URL_REGEX.test(val)) {\n          this.fieldControl.setErrors({\n            invalidUrl: true\n          })\n        }\n      });\n    }\n\n    // validate password \n    if (this.mode === 'password') {\n      this.fieldControl.valueChanges.subscribe(val => {\n        if (val?.length === 0 && this.required) {\n          this.fieldControl.setErrors({\n            require: true\n          });\n        }\n      });\n    }\n\n    // chips\n    if (this.mode === 'chips' && !Array.isArray(this.fieldControl.value)) {\n      this.fieldControl.setValue([], { emitEvent: false });\n    }\n\n    this.paddingForPrefix = this.prefix_content?.nativeElement.clientWidth;\n  }\n\n  onBlur() {\n    if (!!this.onBlurFunction) return this.onBlurFunction();\n  }\n}\n","<div class=\"textbox-container\">\n  <app-base-label\n    *ngIf=\"!!label\"\n    [required]=\"checkRequiredField()\"\n    [label]=\"label\"\n    [labelOneLine]=\"labelOneLine\"\n    [iconLabelTooltip]=\"iconLabelTooltip\"\n  >\n  </app-base-label>\n\n  <p-iconField [iconPosition]=\"iconLeftStyle != '' ? 'left' : 'right'\">\n    <p-inputIcon [styleClass]=\"iconLeftStyle != '' ? iconLeftStyle : iconRightStyle\" />\n\n    <p-inputgroup>\n      @if (prefix) {\n        <p-inputgroup-addon>{{ prefix }}</p-inputgroup-addon>\n      }\n\n      <!-- text, email, url, phone -->\n      <div\n        class=\"input-container\"\n        *ngIf=\"mode === 'text' || mode === 'email' || mode === 'url' || mode === 'phone'\"\n      >\n        <input\n          pInputText\n          [pAutoFocus]=\"autoFocus\"\n          [type]=\"mode\"\n          placeholder=\"{{ placeholder | translate }}\"\n          [ngClass]=\"{\n            invalid: checkInvalidField(),\n            'pr-30': !!iconUrl,\n            'pl-30': !!leftIconUrl,\n            disabled: disabled,\n          }\"\n          [readonly]=\"disabled\"\n          [formControl]=\"fieldControl\"\n          (blur)=\"onBlur()\"\n          [maxLength]=\"maxLength\"\n          [onlyNumber]=\"mode === 'phone'\"\n          [class]=\"styleClass\"\n          [class.prefix]=\"prefix\"\n          [class.suffix]=\"suffix\"\n        />\n\n        <img *ngIf=\"!!iconUrl\" [src]=\"iconUrl\" />\n        <img class=\"leftIcon\" *ngIf=\"!!leftIconUrl\" [src]=\"leftIconUrl\" />\n        <div class=\"description-message\" *ngIf=\"descriptionMessage\">\n          {{ descriptionMessage | translate }}\n        </div>\n      </div>\n\n      <!-- password -->\n      <div class=\"input-container\" *ngIf=\"mode === 'password'\">\n        <input\n          pInputText\n          [pAutoFocus]=\"autoFocus\"\n          [type]=\"mode\"\n          placeholder=\"{{ placeholder | translate }}\"\n          [ngClass]=\"{\n            invalid: checkInvalidField(),\n            'pr-30': !!iconUrl,\n            'pl-30': !!leftIconUrl,\n            disabled: disabled,\n          }\"\n          [readonly]=\"disabled\"\n          [formControl]=\"fieldControl\"\n          (blur)=\"onBlur()\"\n          [maxLength]=\"maxLength\"\n          *ngIf=\"isValidPassword\"\n          validatePassword\n          [class]=\"styleClass\"\n          [class.prefix]=\"prefix\"\n          [class.suffix]=\"suffix\"\n        />\n\n        <input\n          pInputText\n          [pAutoFocus]=\"autoFocus\"\n          [type]=\"mode\"\n          placeholder=\"{{ placeholder | translate }}\"\n          [ngClass]=\"{\n            invalid: checkInvalidField(),\n            'pr-30': !!iconUrl,\n            'pl-30': !!leftIconUrl,\n            disabled: disabled,\n          }\"\n          [readonly]=\"disabled\"\n          [formControl]=\"fieldControl\"\n          (blur)=\"onBlur()\"\n          [maxLength]=\"maxLength\"\n          *ngIf=\"!isValidPassword\"\n          [class]=\"styleClass\"\n        />\n\n        <img *ngIf=\"!!iconUrl\" [src]=\"iconUrl\" />\n        <img class=\"leftIcon\" *ngIf=\"!!leftIconUrl\" [src]=\"leftIconUrl\" />\n        <div class=\"description-message\" *ngIf=\"descriptionMessage\">\n          {{ descriptionMessage | translate }}\n        </div>\n      </div>\n\n\n      <!-- number -->\n      <div class=\"input-number-container\" *ngIf=\"mode === 'number'\">\n        <p-inputNumber\n          [readonly]=\"disabled\"\n          [formControl]=\"fieldControl\"\n          (blur)=\"onBlur()\"\n          [maxlength]=\"maxLength\"\n          placeholder=\"{{ placeholder | translate }}\"\n          [ngClass]=\"{\n            invalid: checkInvalidField(),\n            'pr-30': !!iconUrl,\n            'pl-30': !!leftIconUrl,\n            disabled: disabled,\n          }\"\n          [inputStyle]=\"{ 'padding-left': paddingForPrefix + 'px' }\"\n          [minFractionDigits]=\"minFractionDigits\"\n          [maxFractionDigits]=\"maxFractionDigits\"\n          [useGrouping]=\"useGrouping\"\n          mode=\"decimal\"\n          [allowEmpty]=\"true\"\n          [min]=\"min\"\n          [max]=\"max\"\n          [pAutoFocus]=\"autoFocus\"\n          [onlyNumber]=\"true\"\n          [class]=\"styleClass\"\n          [class.prefix]=\"prefix\"\n          [class.suffix]=\"suffix\"\n        ></p-inputNumber>\n\n        <img *ngIf=\"!!iconUrl\" [src]=\"iconUrl\" />\n        <img class=\"leftIcon\" *ngIf=\"!!leftIconUrl\" [src]=\"leftIconUrl\" />\n      </div>\n\n      <!-- label-text -->\n      <div class=\"input-container\" *ngIf=\"mode === 'label-text'\">\n        <app-base-label [labelStyle]=\"'font-normal ' + labelTextStyle\" [label]=\"fieldControl.value\">\n        </app-base-label>\n      </div>\n\n      <!-- chips -->\n      <div class=\"input-container\" *ngIf=\"mode === 'chips'\">\n        <p-autoComplete\n          [multiple]=\"true\"\n          [separator]=\"seperator\"\n          [formControl]=\"fieldControl\"\n          [typeahead]=\"false\"\n          [addOnBlur]=\"true\"\n          [addOnTab]=\"true\"\n          (onBlur)=\"onBlur()\"\n          [maxlength]=\"maxLength\"\n          placeholder=\"{{ placeholder | translate }}\"\n          [ngClass]=\"{\n            invalid: checkInvalidField(),\n            'pr-30': !!iconUrl,\n            'pl-30': !!leftIconUrl,\n            disabled: disabled,\n          }\"\n          [inputStyle]=\"{ 'padding-left': paddingForPrefix + 'px', width: '100%' }\"\n          [pAutoFocus]=\"autoFocus\"\n          [onlyNumber]=\"onlyNumber\"\n          [class]=\"styleClass\"\n          [class.prefix]=\"prefix\"\n          [class.suffix]=\"suffix\"\n        ></p-autoComplete>\n\n        <img *ngIf=\"!!iconUrl\" [src]=\"iconUrl\" />\n        <img class=\"leftIcon\" *ngIf=\"!!leftIconUrl\" [src]=\"leftIconUrl\" />\n      </div>\n\n      @if (suffix) {\n        <p-inputgroup-addon>{{ suffix }}</p-inputgroup-addon>\n      }\n    </p-inputgroup>\n  </p-iconField>\n\n  <!-- error message -->\n  <app-base-label ngClass=\"mt-2\" *ngIf=\"checkInvalidField()\" [label]=\"errorMessage\" mode=\"error\">\n  </app-base-label>\n</div>\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { BaseFieldDataSourceControl } from '../base-field-control/base-data-source-control';\nimport { MultiSelect } from 'primeng/multiselect';\nimport { Subject, debounceTime, distinctUntilChanged } from 'rxjs';\nimport { ComponentImports } from '../component-import.module';\n\n@Component({\n  selector: 'app-base-multiselect',\n  templateUrl: './multiselect.component.html',\n  styleUrls: ['./multiselect.component.scss'],\n  imports: [ComponentImports]\n})\nexport class BaseMultiselectComponent\n  extends BaseFieldDataSourceControl\n  implements OnInit {\n  @Input() showClear: boolean = true;\n  @Input() showChips: boolean = true;\n  @ViewChild('multiselect') multiselect!: MultiSelect;\n  filterChange = new Subject<string>();\n\n  constructor() {\n    super();\n  }\n\n  override ngOnInit(): void {\n    super.ngOnInit();\n\n    if (this.virtualScroll) {\n      this.filterChange\n        .pipe(debounceTime(400), distinctUntilChanged())\n        .subscribe((value) => {\n          this.currentEvent.searchBy = value;\n          this.getOptions('searchChange');\n        });\n    }\n  }\n\n  ngAfterViewInit() {\n    this.override();\n  }\n\n  handleRemove(item: any) {\n    this.fieldControl.markAsDirty();\n    this.fieldControl.markAsTouched();\n    this.fieldControl.setValue(\n      this.fieldControl.value.filter((i: any) => i !== item),\n    );\n  }\n\n  getChipLabel(item: any) {\n    return this.options.find((i) => i.value === item)?.label || '';\n  }\n\n  onLazyLoad(event: { first: number; last: number }) {\n    if (\n      event.last > 0 &&\n      event.last + 5 > this.options.length &&\n      this.options.length < this.totalRecords &&\n      !this.lazyLoading\n    ) {\n      this.getOptions('changePageIndex');\n    }\n  }\n\n  handleFilter(event: any) {\n    if (this.virtualScroll) {\n      this.currentEvent.searchBy = event.filter;\n      this.getOptions('searchChange');\n    }\n  }\n\n  private override() {\n    const _this = this;\n\n    // TODO\n    // const filterFunc = this.multiselect.activateFilter;\n    // this.multiselect.activateFilter = function () {\n    //   if (!_this.virtualScroll) {\n    //     filterFunc.call(this);\n    //   }\n    // };\n  }\n}\n","<div class=\"multiselect-container\">\n  <app-base-label\n    *ngIf=\"!!label\"\n    [required]=\"checkRequiredField()\"\n    [label]=\"label\"\n    [labelOneLine]=\"labelOneLine\"\n    [ngClass]=\"'mb-1'\"\n  >\n  </app-base-label>\n  <div class=\"p-inputgroup\">\n    <p-multiSelect\n      #multiselect\n      [class]=\"styleClass + 'border-noround-left'\"\n      [options]=\"options\"\n      [formControl]=\"fieldControl\"\n      [ngClass]=\"{ invalid: checkInvalidField() }\"\n      optionLabel=\"label\"\n      optionValue=\"value\"\n      appendTo=\"body\"\n      (onFilter)=\"filterChange.next($event.filter)\"\n      panelStyleClass=\"multiselect-panel-wrapper\"\n      placeholder=\"{{ placeholder | translate }}\"\n      [virtualScroll]=\"!!virtualScroll\"\n      [virtualScrollItemSize]=\"lazyLoading ? 200 : 38\"\n      [virtualScrollOptions]=\"{\n        showLoader: true,\n        loading: lazyLoading,\n      }\"\n      [lazy]=\"!!virtualScroll\"\n      (onLazyLoad)=\"onLazyLoad($event)\"\n      [showClear]=\"showClear\"\n    >\n      <ng-template let-value pTemplate=\"selectedItems\">\n        <div *ngIf=\"fieldControl.value?.length > 0\">\n          {{ fieldControl.value?.length }} items selected\n        </div>\n        <div *ngIf=\"fieldControl.value?.length === 0 || !fieldControl.value\">\n          {{ placeholder | translate }}\n        </div>\n      </ng-template>\n      <ng-template let-option pTemplate=\"item\">\n        <div>{{ option.label }}</div>\n      </ng-template>\n    </p-multiSelect>\n  </div>\n\n  <div class=\"flex mt-2 flex-wrap\" *ngIf=\"showChips\">\n    <app-chip\n      class=\"mr-2 mb-2\"\n      *ngFor=\"let item of fieldControl.value\"\n      [label]=\"getChipLabel(item)\"\n      [removable]=\"!checkDisabled()\"\n      (remove)=\"handleRemove(item)\"\n    ></app-chip>\n  </div>\n  <app-base-label *ngIf=\"checkInvalidField()\" [label]=\"errorMessage\" mode=\"error\"> </app-base-label>\n</div>\n","/*\n * Public API Surface of ng-base-lib\n */\n\nexport * from './lib/ng-base-lib';\n\nexport * from './lib/components';\nexport * from './lib/services';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.PrimeNgModule","i4","i5","i6","i1.BaseLabelComponent","i3.PrimeNgModule","i3","i2.FormItemComponent","i4.PrimeNgModule","i1.BaseButtonComponent","i2.BaseFormComponent","i7","i8","i9","i2","i1.ToastService","i11","i12","i13","i14.OnlyNumberDirective","i2.ChipComponent"],"mappings":"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"}