{"version":3,"file":"ng-dynamic-json-form.mjs","sources":["../../../lib/core/utilities/get-control-errors.ts","../../../lib/core/components/custom-control/custom-control.component.ts","../../../lib/core/components/custom-error-message/custom-error-message.abstract.ts","../../../lib/core/components/custom-form-label/custom-form-label.abstract.ts","../../../lib/core/utilities/get-class-list-from-string.ts","../../../lib/core/utilities/get-style-list-from-string.ts","../../../lib/core/directives/control-layout.directive.ts","../../../lib/core/directives/host-id.directive.ts","../../../lib/core/directives/imask-value-patch.directive.ts","../../../lib/core/providers/props-binding.provider.ts","../../../lib/core/directives/props-binding.directive.ts","../../../lib/core/directives/textarea-auto-height.directive.ts","../../../lib/core/models/validators.enum.ts","../../../lib/core/models/conditions-action.enum.ts","../../../lib/core/pipes/control-type-by-config.pipe.ts","../../../lib/core/services/global-variable.service.ts","../../../lib/core/pipes/is-control-required.pipe.ts","../../../lib/core/services/host-event.service.ts","../../../lib/core/services/form-validation.service.ts","../../../lib/core/components/error-message/error-message.component.ts","../../../lib/core/components/error-message/error-message.component.html","../../../lib/core/components/form-label/form-label.component.ts","../../../lib/core/components/form-label/form-label.component.html","../../../lib/core/components/content-wrapper/content-wrapper.component.ts","../../../lib/core/components/content-wrapper/content-wrapper.component.html","../../../lib/core/services/config-mapping.service.ts","../../../lib/core/utilities/get-boolean-operation-result.ts","../../../lib/core/utilities/get-value-in-object.ts","../../../lib/core/utilities/schema-validator.js","../../../lib/core/services/config-validation.service.ts","../../../lib/core/utilities/evaluate-conditions-statements.ts","../../../lib/core/utilities/get-control-and-value-path.ts","../../../lib/core/services/form-conditions.service.ts","../../../lib/core/services/form-generator.service.ts","../../../lib/core/services/form-ready-state.service.ts","../../../lib/core/services/form-value.service.ts","../../../lib/core/services/http-request-cache.service.ts","../../../lib/core/utilities/trim-object-by-keys.ts","../../../lib/core/services/options-data.service.ts","../../../lib/core/ui-basic/ui-basic-checkbox/ui-basic-checkbox.component.ts","../../../lib/core/ui-basic/ui-basic-checkbox/ui-basic-checkbox.component.html","../../../lib/core/ui-basic/ui-basic-date/ui-basic-date.component.ts","../../../lib/core/ui-basic/ui-basic-date/ui-basic-date.component.html","../../../lib/core/ui-basic/ui-basic-input-mask/ui-basic-input-mask.component.ts","../../../lib/core/ui-basic/ui-basic-input-mask/ui-basic-input-mask.component.html","../../../lib/core/ui-basic/ui-basic-input/ui-basic-input.component.ts","../../../lib/core/ui-basic/ui-basic-input/ui-basic-input.component.html","../../../lib/core/ui-basic/ui-basic-radio/ui-basic-radio.component.ts","../../../lib/core/ui-basic/ui-basic-radio/ui-basic-radio.component.html","../../../lib/core/ui-basic/ui-basic-range/ui-basic-range.component.ts","../../../lib/core/ui-basic/ui-basic-range/ui-basic-range.component.html","../../../lib/core/ui-basic/ui-basic-select/ui-basic-select.component.ts","../../../lib/core/ui-basic/ui-basic-select/ui-basic-select.component.html","../../../lib/core/ui-basic/ui-basic-switch/ui-basic-switch.component.ts","../../../lib/core/ui-basic/ui-basic-switch/ui-basic-switch.component.html","../../../lib/core/ui-basic/ui-basic-textarea/ui-basic-textarea.component.ts","../../../lib/core/ui-basic/ui-basic-textarea/ui-basic-textarea.component.html","../../../lib/core/ui-basic/ui-basic-components.constant.ts","../../../lib/core/components/form-control/form-control.component.ts","../../../lib/core/components/form-control/form-control.component.html","../../../lib/core/components/form-group/form-group.component.ts","../../../lib/core/components/form-group/form-group.component.html","../../../lib/core/providers/ng-dynamic-json-form.provider.ts","../../../lib/core/ng-dynamic-json-form.component.ts","../../../lib/core/ng-dynamic-json-form.component.html","../../../lib/public-api.ts","../../../lib/ng-dynamic-json-form.ts"],"sourcesContent":["import {\r\n  AbstractControl,\r\n  ValidationErrors,\r\n  isFormControl,\r\n  isFormGroup,\r\n} from '@angular/forms';\r\n\r\n/**Get all the errors in the AbstractControl recursively\r\n * @example\r\n * root: {\r\n *  control1: ValidationErrors,\r\n *  control2: {\r\n *    childA: ValidationErrors\r\n *  }\r\n * }\r\n */\r\nexport function getControlErrors(\r\n  control: AbstractControl | undefined\r\n): ValidationErrors | null {\r\n  if (!control) {\r\n    return null;\r\n  }\r\n\r\n  if (isFormControl(control)) {\r\n    return control.errors;\r\n  }\r\n\r\n  if (isFormGroup(control)) {\r\n    const result = Object.keys(control.controls).reduce((acc, key) => {\r\n      const childControl = control.controls[key];\r\n      const err = getControlErrors(childControl);\r\n\r\n      return err ? { ...acc, [key]: err } : acc;\r\n    }, {});\r\n\r\n    return !Object.keys(result).length ? null : result;\r\n  }\r\n\r\n  return null;\r\n}\r\n","import { Component, signal } from '@angular/core';\r\nimport {\r\n  AbstractControl,\r\n  ControlValueAccessor,\r\n  UntypedFormGroup,\r\n  ValidationErrors,\r\n  Validator,\r\n} from '@angular/forms';\r\nimport { FormControlConfig, OptionItem } from '../../models';\r\nimport { getControlErrors } from '../../utilities/get-control-errors';\r\n\r\n@Component({\r\n  selector: 'custom-control',\r\n  template: ``,\r\n  standalone: true,\r\n})\r\nexport class CustomControlComponent implements ControlValueAccessor, Validator {\r\n  /**\r\n   * This control can be use to bind the UI of the custom component with the parent control.\r\n   * Use this if you don't want to rewrite/override every methods in the CVA manually.\r\n   *\r\n   * Assign it with instance of `AbstractControl`\r\n   *\r\n   * ```\r\n   * // FormControl\r\n   * override control = new FormControl('');\r\n   *\r\n   * // FormGroup\r\n   * override control = new FormGroup({\r\n   *  controlA: new FormControl(...),\r\n   *  controlB: new FormControl(...)\r\n   * });\r\n   * ```\r\n   */\r\n  control?: AbstractControl;\r\n\r\n  hostForm = signal<UntypedFormGroup | undefined>(undefined);\r\n  data = signal<FormControlConfig | undefined>(undefined);\r\n  hideErrorMessage = signal<boolean | undefined>(undefined);\r\n\r\n  writeValue(obj: any): void {\r\n    this.control?.patchValue(obj);\r\n  }\r\n\r\n  registerOnChange(fn: any): void {}\r\n\r\n  registerOnTouched(fn: any): void {}\r\n\r\n  setDisabledState(isDisabled: boolean): void {\r\n    isDisabled ? this.control?.disable() : this.control?.enable();\r\n  }\r\n\r\n  validate(control: AbstractControl<any, any>): ValidationErrors | null {\r\n    return getControlErrors(this.control);\r\n  }\r\n\r\n  markAsDirty(): void {}\r\n\r\n  markAsPristine(): void {}\r\n\r\n  markAsTouched(): void {}\r\n\r\n  markAsUntouched(): void {}\r\n\r\n  setErrors(errors: ValidationErrors | null): void {}\r\n\r\n  onOptionsGet(options: OptionItem[]): void {\r\n    const data = this.data();\r\n\r\n    if (!data || !data.options) {\r\n      return;\r\n    }\r\n\r\n    this.data.update((x) => {\r\n      if (!x?.options) {\r\n        return x;\r\n      }\r\n\r\n      x.options.data = [...options];\r\n\r\n      return { ...x };\r\n    });\r\n  }\r\n}\r\n","import { signal } from '@angular/core';\r\nimport { AbstractControl, FormControl } from '@angular/forms';\r\n\r\nexport abstract class CustomErrorMessage {\r\n  control: AbstractControl = new FormControl();\r\n  errorMessages = signal<string[]>([]);\r\n}\r\n","import { signal } from '@angular/core';\r\nimport { FormLayout } from '../../models/form-layout.interface';\r\n\r\nexport abstract class CustomFormLabel {\r\n  collapsible = signal<boolean>(false);\r\n  expand = signal<boolean>(false);\r\n  label = signal<string | undefined>(undefined);\r\n  layout = signal<FormLayout | undefined>(undefined);\r\n  props = signal<any | undefined>(undefined);\r\n}\r\n","export function getClassListFromString(\r\n  classNames: string | undefined\r\n): string[] {\r\n  if (!classNames) {\r\n    return [];\r\n  }\r\n\r\n  try {\r\n    return classNames\r\n      .split(/\\s{1,}/)\r\n      .map((x) => x.trim())\r\n      .filter(Boolean);\r\n  } catch {\r\n    return [];\r\n  }\r\n}\r\n","export function getStyleListFromString(styles: string | undefined): string[] {\r\n  if (!styles) {\r\n    return [];\r\n  }\r\n\r\n  try {\r\n    return styles\r\n      .split(';')\r\n      .map((x) => x.trim())\r\n      .filter(Boolean);\r\n  } catch {\r\n    return [];\r\n  }\r\n}\r\n","import {\r\n  Directive,\r\n  ElementRef,\r\n  computed,\r\n  effect,\r\n  inject,\r\n  input,\r\n} from '@angular/core';\r\nimport { FormControlConfig } from '../models';\r\nimport { getClassListFromString } from '../utilities/get-class-list-from-string';\r\nimport { getStyleListFromString } from '../utilities/get-style-list-from-string';\r\n\r\n@Directive({\r\n  selector: '[controlLayout]',\r\n  standalone: true,\r\n})\r\nexport class ControlLayoutDirective {\r\n  private el = inject(ElementRef);\r\n\r\n  controlLayout = input<{\r\n    type?:\r\n      | 'host'\r\n      | 'label'\r\n      | 'content'\r\n      | 'formGroup'\r\n      | 'description'\r\n      | 'inputArea'\r\n      | 'error';\r\n    layout?: FormControlConfig['layout'];\r\n  }>();\r\n\r\n  classNames = computed(() => {\r\n    const data = this.controlLayout();\r\n    if (!data) {\r\n      return [];\r\n    }\r\n\r\n    const { type, layout } = data;\r\n    const classString = layout?.[`${type ?? 'host'}Class`] ?? '';\r\n    const result = getClassListFromString(classString);\r\n\r\n    return result;\r\n  });\r\n\r\n  styleList = computed(() => {\r\n    const data = this.controlLayout();\r\n    if (!data) {\r\n      return [];\r\n    }\r\n\r\n    const { type, layout } = data;\r\n    const styleString = layout?.[`${type ?? 'host'}Styles`] ?? '';\r\n    const result = getStyleListFromString(styleString);\r\n\r\n    return result;\r\n  });\r\n\r\n  updateClass = effect(() => {\r\n    const host = this.el.nativeElement as HTMLElement;\r\n    const classNames = this.classNames();\r\n\r\n    if (!classNames.length) {\r\n      return;\r\n    }\r\n\r\n    host.classList.add(...classNames);\r\n  });\r\n\r\n  updateStyles = effect(() => {\r\n    const host = this.el.nativeElement as HTMLElement;\r\n    const styleList = this.styleList();\r\n\r\n    if (!styleList.length) {\r\n      return;\r\n    }\r\n\r\n    for (const item of styleList) {\r\n      const [name, value] = item.split(':').map((x) => x.trim());\r\n      host.style.setProperty(name, value);\r\n    }\r\n  });\r\n}\r\n","import {\r\n  Directive,\r\n  ElementRef,\r\n  computed,\r\n  effect,\r\n  inject,\r\n  input,\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[hostId]',\r\n  standalone: true,\r\n})\r\nexport class HostIdDirective {\r\n  private el = inject(ElementRef);\r\n\r\n  hostId = input<{ parentId?: string; controlName?: string }>();\r\n\r\n  computedId = computed(() => {\r\n    const hostId = this.hostId();\r\n\r\n    if (!hostId) {\r\n      return;\r\n    }\r\n\r\n    const { parentId, controlName } = hostId;\r\n    return parentId ? `${parentId}.${controlName}` : controlName;\r\n  });\r\n\r\n  updateAttribute = effect(() => {\r\n    const id = this.computedId();\r\n    const host = this.el.nativeElement as HTMLElement;\r\n\r\n    if (id) {\r\n      host.setAttribute('id', id);\r\n    }\r\n  });\r\n}\r\n","import { Directive, inject } from '@angular/core';\r\nimport { IMaskDirective } from 'angular-imask';\r\n\r\n@Directive({\r\n  selector: '[imaskValuePatch]',\r\n  standalone: true,\r\n})\r\nexport class ImaskValuePatchDirective {\r\n  private imask = inject(IMaskDirective);\r\n  private isNumber = false;\r\n\r\n  constructor() {\r\n    const iMask = this.imask;\r\n\r\n    iMask.writeValue = (value: string | number) => {\r\n      // ----- Modified area -----\r\n      if (!this.isNumber) {\r\n        this.isNumber = typeof value === 'number';\r\n      }\r\n\r\n      value = value == null && iMask.unmask !== 'typed' ? '' : `${value}`;\r\n      // ----- Modified area -----\r\n\r\n      if (iMask.maskRef) {\r\n        iMask.beginWrite(value);\r\n        iMask.maskValue = value;\r\n        iMask.endWrite();\r\n      } else {\r\n        iMask['_renderer'].setProperty(iMask.element, 'value', value);\r\n        iMask['_initialValue'] = value;\r\n      }\r\n    };\r\n\r\n    iMask['_onAccept'] = () => {\r\n      // ----- Modified area -----\r\n      const valueParsed = this.isNumber\r\n        ? parseFloat(iMask.maskValue)\r\n        : iMask.maskValue;\r\n\r\n      const value = isNaN(valueParsed) ? null : valueParsed;\r\n      // ----- Modified area -----\r\n\r\n      // if value was not changed during writing don't fire events\r\n      // for details see https://github.com/uNmAnNeR/imaskjs/issues/136\r\n      if (iMask['_writing'] && value === iMask.endWrite()) return;\r\n      iMask.onChange(value);\r\n      iMask.accept.emit(value);\r\n    };\r\n  }\r\n}\r\n","import { InjectionToken, Provider, ProviderToken } from '@angular/core';\r\n\r\ninterface PropsBindingItem {\r\n  key: string;\r\n  token: ProviderToken<any>;\r\n}\r\n\r\nexport const PROPS_BINDING_INJECTORS = new InjectionToken<PropsBindingItem[]>(\r\n  'property-binding-injector'\r\n);\r\n\r\nexport function providePropsBinding(value: PropsBindingItem[]): Provider {\r\n  return {\r\n    provide: PROPS_BINDING_INJECTORS,\r\n    useValue: value,\r\n  };\r\n}\r\n","import {\r\n  ChangeDetectorRef,\r\n  Directive,\r\n  ElementRef,\r\n  Injector,\r\n  SimpleChange,\r\n  WritableSignal,\r\n  computed,\r\n  effect,\r\n  inject,\r\n  input,\r\n  isSignal,\r\n} from '@angular/core';\r\nimport { PROPS_BINDING_INJECTORS } from '../providers/props-binding.provider';\r\n@Directive({\r\n  selector: '[propsBinding]',\r\n  standalone: true,\r\n})\r\nexport class PropsBindingDirective {\r\n  private injectionTokens = inject(PROPS_BINDING_INJECTORS, {\r\n    optional: true,\r\n  });\r\n  private injector = inject(Injector);\r\n  private cd = inject(ChangeDetectorRef);\r\n  private el = inject(ElementRef);\r\n\r\n  propsBinding = input<{ props: any; key?: string; omit?: string[] }[]>([]);\r\n\r\n  validPropsData = computed(() =>\r\n    this.propsBinding().filter(\r\n      (x) =>\r\n        Boolean(x) &&\r\n        typeof x.props === 'object' &&\r\n        Object.keys(x.props).length > 0,\r\n    ),\r\n  );\r\n\r\n  handlePropsGet = effect(() => {\r\n    const propsData = this.validPropsData();\r\n\r\n    if (!propsData.length) {\r\n      return;\r\n    }\r\n\r\n    const hostEl = this.el.nativeElement as HTMLElement | undefined;\r\n\r\n    for (const item of propsData) {\r\n      const { props, key, omit = [] } = item;\r\n      const providerToken = this.injectionTokens?.find(\r\n        (x) => x.key === key,\r\n      )?.token;\r\n\r\n      const component = !providerToken\r\n        ? null\r\n        : this.injector.get(providerToken);\r\n\r\n      for (const key in props) {\r\n        const value = props[key];\r\n\r\n        if (value == undefined || omit.includes(key)) {\r\n          continue;\r\n        }\r\n\r\n        if (component) {\r\n          this.updateComponentProperty({ component, key, value });\r\n        }\r\n\r\n        if (hostEl) {\r\n          // Only set CSS custom properties (starting with --) or valid HTML attributes\r\n          if (key.startsWith('--')) {\r\n            hostEl.style.setProperty(key, value);\r\n          } else if (this.isValidHtmlAttribute(key)) {\r\n            hostEl.setAttribute(key, value);\r\n          }\r\n        }\r\n      }\r\n    }\r\n\r\n    this.cd.markForCheck();\r\n    this.cd.detectChanges();\r\n  });\r\n\r\n  private updateComponentProperty(data: {\r\n    component: any;\r\n    key: any;\r\n    value: any;\r\n  }): void {\r\n    const { component, key, value } = data;\r\n    const hasProperty = this.hasProperty(component, key);\r\n\r\n    if (!hasProperty) {\r\n      return;\r\n    }\r\n\r\n    const property = component[key];\r\n\r\n    if (isSignal(property)) {\r\n      if (typeof (property as any).set === 'function') {\r\n        (property as WritableSignal<any>).set(value);\r\n      }\r\n    } else {\r\n      component[key] = value;\r\n    }\r\n\r\n    // For compatibility\r\n    if (component['ngOnChanges']) {\r\n      const simpleChange = new SimpleChange(undefined, value, true);\r\n      component.ngOnChanges({ [key]: simpleChange });\r\n    }\r\n  }\r\n\r\n  private hasProperty(obj: any, key: string): boolean {\r\n    return Object.hasOwn(obj, key) || key in obj;\r\n  }\r\n\r\n  private isValidHtmlAttribute(attributeName: string): boolean {\r\n    // Common HTML attributes - this is not exhaustive but covers most use cases\r\n    const validAttributes = new Set([\r\n      'id',\r\n      'class',\r\n      'style',\r\n      'title',\r\n      'lang',\r\n      'dir',\r\n      'hidden',\r\n      'tabindex',\r\n      'accesskey',\r\n      'contenteditable',\r\n      'draggable',\r\n      'spellcheck',\r\n      'translate',\r\n      'role',\r\n      'aria-label',\r\n      'aria-labelledby',\r\n      'aria-describedby',\r\n      'aria-hidden',\r\n      'aria-expanded',\r\n      'aria-selected',\r\n      'aria-checked',\r\n      'aria-disabled',\r\n      'data-testid',\r\n      'disabled',\r\n      'readonly',\r\n      'required',\r\n      'placeholder',\r\n      'value',\r\n      'checked',\r\n      'selected',\r\n      'multiple',\r\n      'size',\r\n      'rows',\r\n      'cols',\r\n      'min',\r\n      'max',\r\n      'step',\r\n      'pattern',\r\n      'minlength',\r\n      'maxlength',\r\n      'src',\r\n      'alt',\r\n      'href',\r\n      'target',\r\n      'rel',\r\n      'type',\r\n      'name',\r\n      'for',\r\n    ]);\r\n\r\n    // Allow data-* and aria-* attributes\r\n    return (\r\n      validAttributes.has(attributeName.toLowerCase()) ||\r\n      attributeName.startsWith('data-') ||\r\n      attributeName.startsWith('aria-')\r\n    );\r\n  }\r\n}\r\n","import {\r\n  Directive,\r\n  ElementRef,\r\n  HostListener,\r\n  inject,\r\n  input,\r\n  OnInit,\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[textareaAutoHeight]',\r\n  standalone: true,\r\n})\r\nexport class TextareaAutHeightDirective implements OnInit {\r\n  private el = inject(ElementRef);\r\n\r\n  autoResize = input<boolean>(true);\r\n\r\n  @HostListener('input', ['$event'])\r\n  onInput(): void {\r\n    this.setHeight();\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.removeResizeProperty();\r\n  }\r\n\r\n  private removeResizeProperty(): void {\r\n    const hostEl = this.el.nativeElement as HTMLElement;\r\n    hostEl.style.setProperty('resize', 'none');\r\n  }\r\n\r\n  private setHeight(): void {\r\n    const autoResize = this.autoResize();\r\n    const hostEl = this.el.nativeElement as HTMLElement;\r\n\r\n    if (!hostEl || !autoResize) {\r\n      return;\r\n    }\r\n\r\n    const borderWidth = Math.ceil(\r\n      parseFloat(window.getComputedStyle(hostEl).borderWidth),\r\n    );\r\n\r\n    hostEl.style.removeProperty('height');\r\n    hostEl.style.setProperty(\r\n      'height',\r\n      `${hostEl.scrollHeight + borderWidth * 2}px`,\r\n    );\r\n  }\r\n}\r\n","export enum ValidatorsEnum {\r\n  required = 'required',\r\n  requiredTrue = 'requiredTrue',\r\n  min = 'min',\r\n  max = 'max',\r\n  minLength = 'minLength',\r\n  maxLength = 'maxLength',\r\n  email = 'email',\r\n  pattern = 'pattern',\r\n}\r\n","import { ValidatorsEnum } from './validators.enum';\r\n\r\nexport enum ConditionsActionEnum {\r\n  'control.hidden' = 'control.hidden',\r\n  'control.disabled' = 'control.disabled',\r\n  'validator.required' = `validator.${ValidatorsEnum.required}`,\r\n  'validator.requiredTrue' = `validator.${ValidatorsEnum.requiredTrue}`,\r\n  'validator.min' = `validator.${ValidatorsEnum.min}`,\r\n  'validator.max' = `validator.${ValidatorsEnum.max}`,\r\n  'validator.minLength' = `validator.${ValidatorsEnum.minLength}`,\r\n  'validator.maxLength' = `validator.${ValidatorsEnum.maxLength}`,\r\n  'validator.email' = `validator.${ValidatorsEnum.email}`,\r\n  'validator.pattern' = `validator.${ValidatorsEnum.pattern}`,\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { FormControlConfig } from '../models';\r\n\r\n@Pipe({\r\n  name: 'controlTypeByConfig',\r\n  standalone: true,\r\n})\r\nexport class ControlTypeByConfigPipe implements PipeTransform {\r\n  transform(config: FormControlConfig): 'FormControl' | 'FormGroup' {\r\n    if (!config.children) {\r\n      return 'FormControl';\r\n    }\r\n\r\n    return 'FormGroup';\r\n  }\r\n}\r\n","import { Injectable, TemplateRef, Type } from '@angular/core';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport { CustomErrorMessage } from '../components/custom-error-message/custom-error-message.abstract';\r\nimport { CustomFormLabel } from '../components/custom-form-label/custom-form-label.abstract';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport {\r\n  ConditionsActionFunctions,\r\n  CustomComponents,\r\n  CustomErrorComponents,\r\n  CustomLabelComponents,\r\n  CustomTemplates,\r\n  FormControlConfig,\r\n  FormLayout,\r\n  OptionItem,\r\n  UiComponents,\r\n} from '../models';\r\nimport { CustomAsyncValidators } from '../models/custom-async-validators.type';\r\nimport { CustomValidators } from '../models/custom-validators.type';\r\nimport { FormConfig } from '../providers/ng-dynamic-json-form.provider';\r\ninterface GlobalVariables\r\n  extends Omit<\r\n    GlobalVariableService,\r\n    'setup' | 'rootConfigs' | 'rootForm' | 'hideErrorMessage$'\r\n  > {}\r\n@Injectable()\r\nexport class GlobalVariableService {\r\n  descriptionPosition?: FormLayout['descriptionPosition'];\r\n  hideErrorMessage$ = new BehaviorSubject<boolean | undefined>(undefined);\r\n  rootConfigs: FormControlConfig[] = [];\r\n  rootForm?: UntypedFormGroup;\r\n  showErrorsOnTouched = true;\r\n\r\n  // =============== The variables that must be initialized ===============\r\n  hostElement?: HTMLElement;\r\n  conditionsActionFunctions: ConditionsActionFunctions | undefined;\r\n  optionsSources:\r\n    | {\r\n        [key: string]: Observable<OptionItem[]>;\r\n      }\r\n    | undefined;\r\n  uiComponents: UiComponents | undefined;\r\n  customAsyncValidators: CustomAsyncValidators | undefined;\r\n  customValidators: CustomValidators | undefined;\r\n  customComponents: CustomComponents | undefined;\r\n  customTemplates: CustomTemplates | undefined;\r\n\r\n  // Custom error\r\n  errorComponents: CustomErrorComponents | undefined;\r\n  errorTemplates: CustomTemplates | undefined;\r\n  errorTemplateDefault: TemplateRef<any> | undefined;\r\n  errorComponentDefault: Type<CustomErrorMessage> | undefined;\r\n\r\n  // Custom label\r\n  labelComponents: CustomLabelComponents | undefined;\r\n  labelTemplates: CustomTemplates | undefined;\r\n  labelTemplateDefault: TemplateRef<any> | undefined;\r\n\r\n  // Custom loading\r\n  labelComponentDefault: Type<CustomFormLabel> | undefined;\r\n  loadingComponent: Type<any> | undefined;\r\n  loadingTemplate: TemplateRef<any> | undefined;\r\n\r\n  // Hide error message\r\n  hideErrorsForTypes: FormConfig['hideErrorsForTypes'];\r\n\r\n  // Global validation messages\r\n  validationMessages: FormConfig['validationMessages'];\r\n  // ======================================================================\r\n\r\n  setup(variables: GlobalVariables): void {\r\n    for (const key in variables) {\r\n      (this as any)[key] = (variables as any)[key];\r\n    }\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { AbstractControl, Validators } from '@angular/forms';\r\n\r\n@Pipe({\r\n  name: 'isControlRequired',\r\n  standalone: true,\r\n})\r\nexport class IsControlRequiredPipe implements PipeTransform {\r\n  transform(value: AbstractControl | undefined): boolean {\r\n    if (!value) {\r\n      return false;\r\n    }\r\n\r\n    return value.hasValidator(Validators.required);\r\n  }\r\n}\r\n","import { isPlatformServer } from '@angular/common';\r\nimport { inject, Injectable, PLATFORM_ID } from '@angular/core';\r\nimport { EMPTY, fromEvent, merge, Observable, Subject, tap } from 'rxjs';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class HostEventService {\r\n  private platformId = inject(PLATFORM_ID);\r\n\r\n  readonly focusOut$ = new Subject<FocusEvent>();\r\n  readonly keyUp$ = new Subject<KeyboardEvent>();\r\n  readonly keyDown$ = new Subject<KeyboardEvent>();\r\n  readonly pointerUp$ = new Subject<PointerEvent>();\r\n  readonly pointerDown$ = new Subject<PointerEvent>();\r\n\r\n  start$(hostElement: HTMLElement): Observable<any> {\r\n    if (this.isServer) {\r\n      return EMPTY;\r\n    }\r\n\r\n    return merge(\r\n      this.event$(hostElement, 'focusout', this.focusOut$),\r\n      this.event$(hostElement, 'keyup', this.keyUp$),\r\n      this.event$(hostElement, 'keydown', this.keyDown$),\r\n      this.event$(hostElement, 'pointerup', this.pointerUp$),\r\n      this.event$(hostElement, 'pointerdown', this.pointerDown$),\r\n    );\r\n  }\r\n\r\n  private event$(\r\n    target: HTMLElement,\r\n    name: string,\r\n    subject: Subject<any>,\r\n  ): Observable<any> {\r\n    if (this.isServer) {\r\n      return EMPTY;\r\n    }\r\n\r\n    return fromEvent(target, name, { passive: true }).pipe(\r\n      tap((x) => subject.next(x)),\r\n    );\r\n  }\r\n\r\n  private get isServer(): boolean {\r\n    return isPlatformServer(this.platformId);\r\n  }\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport {\r\n  AbstractControl,\r\n  AsyncValidatorFn,\r\n  ValidationErrors,\r\n  ValidatorFn,\r\n  Validators,\r\n} from '@angular/forms';\r\nimport { Observable, map, of, startWith } from 'rxjs';\r\nimport { CustomValidators, ValidatorConfig, ValidatorsEnum } from '../models';\r\nimport { CustomAsyncValidators } from '../models/custom-async-validators.type';\r\nimport { GlobalVariableService } from './global-variable.service';\r\n\r\nfunction emailValidator(control: AbstractControl): ValidationErrors | null {\r\n  const emailValid = RegExp(/^[^@\\s!(){}<>]+@[\\w-]+(\\.[A-Za-z]+)+$/).test(\r\n    control.value,\r\n  );\r\n\r\n  if (!control.value) {\r\n    return null;\r\n  }\r\n\r\n  return emailValid ? null : { email: 'Invalid email format' };\r\n}\r\n\r\nconst builtInValidators = (\r\n  value?: any,\r\n): {\r\n  [key in ValidatorsEnum]?: ValidatorFn;\r\n} =>\r\n  ({\r\n    [ValidatorsEnum.required]: Validators.required,\r\n    [ValidatorsEnum.requiredTrue]: Validators.requiredTrue,\r\n    [ValidatorsEnum.email]: emailValidator,\r\n    [ValidatorsEnum.pattern]: Validators.pattern(value),\r\n    [ValidatorsEnum.min]: Validators.min(value),\r\n    [ValidatorsEnum.max]: Validators.max(value),\r\n    [ValidatorsEnum.minLength]: Validators.minLength(value),\r\n    [ValidatorsEnum.maxLength]: Validators.maxLength(value),\r\n  }) as const;\r\n\r\n@Injectable()\r\nexport class FormValidationService {\r\n  private globalVariableService = inject(GlobalVariableService);\r\n\r\n  getErrorMessages$(\r\n    control: AbstractControl | null | undefined,\r\n    validators?: ValidatorConfig[],\r\n  ): Observable<string[]> {\r\n    if (!control || !validators?.length) {\r\n      return of([]);\r\n    }\r\n\r\n    return control.statusChanges.pipe(\r\n      startWith(control.status),\r\n      map(() =>\r\n        this.getErrorMessages(control.errors, control.value, validators),\r\n      ),\r\n    );\r\n  }\r\n\r\n  getValidators(input: ValidatorConfig[] | undefined): ValidatorFn[] {\r\n    if (!input || !input.length) {\r\n      return [];\r\n    }\r\n\r\n    // Remove duplicates\r\n    const filteredConfigs = [\r\n      ...new Map(input.map((v) => [v.name, v])).values(),\r\n    ];\r\n\r\n    const customValidators = this.globalVariableService.customValidators;\r\n    const validatorFns = filteredConfigs.map((item) => {\r\n      const { name } = item;\r\n      const value = this.getValidatorValue(item);\r\n      const builtInValidator = builtInValidators(value)[name as ValidatorsEnum];\r\n      const customValidator = this.getValidatorFn(\r\n        item,\r\n        customValidators?.[name],\r\n      ) as ValidatorFn | null;\r\n\r\n      const result = customValidator ?? builtInValidator;\r\n\r\n      return result;\r\n    });\r\n\r\n    return validatorFns.filter(Boolean) as ValidatorFn[];\r\n  }\r\n\r\n  getAsyncValidators(input: ValidatorConfig[] | undefined): AsyncValidatorFn[] {\r\n    if (!input || !input.length) {\r\n      return [];\r\n    }\r\n\r\n    // Remove duplicates\r\n    const filteredConfigs = [\r\n      ...new Map(input.map((v) => [v.name, v])).values(),\r\n    ];\r\n\r\n    const customAsyncValidators =\r\n      this.globalVariableService.customAsyncValidators;\r\n\r\n    const validatorFns = filteredConfigs.map((item) => {\r\n      const validatorFn = customAsyncValidators?.[item.name];\r\n      return this.getValidatorFn(item, validatorFn) as AsyncValidatorFn | null;\r\n    });\r\n\r\n    return validatorFns.filter(Boolean) as AsyncValidatorFn[];\r\n  }\r\n\r\n  /**Get the error messages of the control\r\n   *\r\n   * @description\r\n   * Try to get the custom error message specified in the config first,\r\n   * else use the error message in the `ValidationErrors`.\r\n   *\r\n   * When using custom validator, the custom message most likely will not working,\r\n   * it's because we are using the key in the errors to find the config message.\r\n   * Since user can define the error object, it becomes very difficult to match the config name\r\n   * with the keys in the error object.\r\n   */\r\n  private getErrorMessages(\r\n    controlErrors: ValidationErrors | null,\r\n    controlValue: any,\r\n    validatorConfigs: ValidatorConfig[],\r\n  ): string[] {\r\n    if (!controlErrors) {\r\n      return [];\r\n    }\r\n\r\n    const errorMessage = (error: any) => {\r\n      return typeof error === 'string' ? error : JSON.stringify(error);\r\n    };\r\n\r\n    return Object.keys(controlErrors).reduce((acc, key) => {\r\n      const error = controlErrors[key];\r\n      const config = this.getConfigFromErrorKey(\r\n        { [key]: error },\r\n        validatorConfigs,\r\n      );\r\n\r\n      const configMessage = config?.message;\r\n      const defaultMessage =\r\n        this.globalVariableService.validationMessages?.[config?.name ?? ''];\r\n\r\n      const customMessage = (configMessage || defaultMessage)\r\n        ?.replace(/{{value}}/g, controlValue || '')\r\n        .replace(/{{validatorValue}}/g, config?.value);\r\n\r\n      acc.push(customMessage || errorMessage(error));\r\n\r\n      return acc;\r\n    }, [] as string[]);\r\n  }\r\n\r\n  private getConfigFromErrorKey(\r\n    error: { [key: string]: any },\r\n    configs: ValidatorConfig[],\r\n  ): ValidatorConfig | undefined {\r\n    // The key mapping of the `ValidationErrors` with the `ValidatorConfig`,\r\n    // to let us get the correct message by using `name` of `ValidatorConfig`.\r\n    const valueKeyMapping: { [key in ValidatorsEnum]?: string } = {\r\n      pattern: 'requiredPattern',\r\n      min: 'min',\r\n      max: 'max',\r\n      minLength: 'requiredLength',\r\n      maxLength: 'requiredLength',\r\n    };\r\n\r\n    const getValidatorValue = (v: any) => {\r\n      return typeof v !== 'number' && !isNaN(v) ? parseFloat(v) : v;\r\n    };\r\n\r\n    const [errorKey, errorValue] = Object.entries(error)[0];\r\n\r\n    const result = configs.find((item) => {\r\n      const { name, value } = item;\r\n\r\n      if (errorKey !== name.toLowerCase()) {\r\n        return false;\r\n      }\r\n\r\n      if (value === undefined || value === null || value === '') {\r\n        return true;\r\n      }\r\n\r\n      const targetKey = valueKeyMapping[name as ValidatorsEnum] ?? '';\r\n      const requiredValue = errorValue[targetKey];\r\n      const validatorValue = getValidatorValue(value);\r\n\r\n      return requiredValue && name === 'pattern'\r\n        ? requiredValue.includes(validatorValue)\r\n        : requiredValue === validatorValue;\r\n    });\r\n\r\n    return result;\r\n  }\r\n\r\n  private getValidatorValue(validatorConfig: ValidatorConfig) {\r\n    const { name, value, flags } = validatorConfig;\r\n\r\n    switch (name) {\r\n      case ValidatorsEnum.pattern:\r\n        return value instanceof RegExp ? value : new RegExp(value, flags);\r\n\r\n      case ValidatorsEnum.min:\r\n      case ValidatorsEnum.max:\r\n      case ValidatorsEnum.minLength:\r\n      case ValidatorsEnum.maxLength:\r\n        try {\r\n          return typeof value !== 'number' ? parseFloat(value) : value;\r\n        } catch {\r\n          break;\r\n        }\r\n\r\n      default:\r\n        return value;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Get validatorFn from either validatorFn or factory function that return a validatorFn.\r\n   * If it's a factory function, return the validatorFn instead.\r\n   *\r\n   * @param validatorConfig\r\n   * @param validatorFn\r\n   */\r\n  private getValidatorFn(\r\n    validatorConfig: ValidatorConfig,\r\n    validatorFn:\r\n      | CustomValidators[string]\r\n      | CustomAsyncValidators[string]\r\n      | undefined,\r\n  ): ValidatorFn | AsyncValidatorFn | null {\r\n    const { value } = validatorConfig;\r\n\r\n    if (!validatorFn) {\r\n      return null;\r\n    }\r\n\r\n    const result =\r\n      typeof validatorFn({} as any) !== 'function'\r\n        ? validatorFn\r\n        : validatorFn(value);\r\n\r\n    return result as ValidatorFn | AsyncValidatorFn;\r\n  }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport {\r\n  Component,\r\n  TemplateRef,\r\n  Type,\r\n  ViewContainerRef,\r\n  computed,\r\n  effect,\r\n  inject,\r\n  input,\r\n  signal,\r\n  untracked,\r\n  viewChild,\r\n} from '@angular/core';\r\nimport { rxResource } from '@angular/core/rxjs-interop';\r\nimport { AbstractControl } from '@angular/forms';\r\nimport { ValidatorConfig } from '../../models';\r\nimport { FormValidationService } from '../../services/form-validation.service';\r\nimport { CustomErrorMessage } from '../custom-error-message/custom-error-message.abstract';\r\n\r\n@Component({\r\n  selector: 'error-message',\r\n  imports: [CommonModule],\r\n  templateUrl: './error-message.component.html',\r\n  host: {\r\n    class: 'error-message',\r\n  },\r\n})\r\nexport class ErrorMessageComponent {\r\n  private internal_formValidationService = inject(FormValidationService);\r\n  private customComponentInstance = signal<CustomErrorMessage | null>(null);\r\n\r\n  control = input<AbstractControl>();\r\n  validators = input<ValidatorConfig[]>();\r\n  customComponent = input<Type<CustomErrorMessage>>();\r\n  customTemplate = input<TemplateRef<any> | null>(null);\r\n\r\n  useDefaultTemplate = computed(\r\n    () => !this.customComponent() && !this.customTemplate(),\r\n  );\r\n\r\n  componentAnchor = viewChild.required('componentAnchor', {\r\n    read: ViewContainerRef,\r\n  });\r\n\r\n  errorMessages = rxResource({\r\n    params: () => {\r\n      const control = this.control();\r\n      const validators = this.validators();\r\n\r\n      return { control, validators };\r\n    },\r\n    stream: ({ params }) => {\r\n      return this.internal_formValidationService.getErrorMessages$(\r\n        params.control,\r\n        params.validators,\r\n      );\r\n    },\r\n    defaultValue: [],\r\n  });\r\n\r\n  updateControlErrors = effect(() => {\r\n    const messages = this.errorMessages.value();\r\n    const customComponent = this.customComponentInstance();\r\n\r\n    if (!customComponent) {\r\n      return;\r\n    }\r\n\r\n    customComponent.errorMessages.set([...messages]);\r\n  });\r\n\r\n  injectComponent = effect(() => {\r\n    const control = this.control();\r\n    const customComponent = this.customComponent();\r\n    const anchor = this.componentAnchor();\r\n\r\n    if (!customComponent || !anchor || !control) {\r\n      return;\r\n    }\r\n\r\n    untracked(() => {\r\n      anchor.clear();\r\n\r\n      const componentRef = anchor.createComponent(customComponent);\r\n\r\n      componentRef.instance.control = control;\r\n      this.customComponentInstance.set(componentRef.instance);\r\n\r\n      this.injectComponent.destroy();\r\n    });\r\n  });\r\n}\r\n","<!-- Custom error message component -->\r\n<ng-container #componentAnchor></ng-container>\r\n<ng-container\r\n  [ngTemplateOutlet]=\"customTemplate()\"\r\n  [ngTemplateOutletContext]=\"{\r\n    control: control(),\r\n    messages: errorMessages.value(),\r\n  }\"\r\n></ng-container>\r\n\r\n<!-- Default error message component -->\r\n@if (useDefaultTemplate()) {\r\n  @for (error of errorMessages.value(); track $index) {\r\n    <div>{{ error }}</div>\r\n  }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport {\r\n  afterNextRender,\r\n  Component,\r\n  computed,\r\n  DestroyRef,\r\n  effect,\r\n  ElementRef,\r\n  inject,\r\n  input,\r\n  signal,\r\n  TemplateRef,\r\n  Type,\r\n  untracked,\r\n  viewChild,\r\n  ViewContainerRef,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { filter, fromEvent, tap } from 'rxjs';\r\nimport { FormControlConfig } from '../../models';\r\nimport { FormLayout } from '../../models/form-layout.interface';\r\nimport { CustomFormLabel } from '../custom-form-label/custom-form-label.abstract';\r\n\r\n@Component({\r\n  selector: 'form-label',\r\n  imports: [CommonModule],\r\n  templateUrl: './form-label.component.html',\r\n  styleUrls: ['./form-label.component.scss'],\r\n  host: {\r\n    class: 'form-label',\r\n  },\r\n})\r\nexport class FormLabelComponent {\r\n  private el = inject(ElementRef);\r\n  private destroyRef = inject(DestroyRef);\r\n  private collapsibleElCssText = '';\r\n  private componentRef?: CustomFormLabel;\r\n\r\n  label = input<string>();\r\n  layout = input<FormControlConfig['layout']>();\r\n  props = input<FormControlConfig['props']>();\r\n  collapsibleEl = input<HTMLElement>();\r\n  /**\r\n   * State that comes from the root component.\r\n   * This will overwrite the current collapsible state\r\n   */\r\n  state = input<FormLayout['contentCollapsible']>();\r\n  customComponent = input<Type<CustomFormLabel>>();\r\n  customTemplate = input<TemplateRef<any>>();\r\n\r\n  componentAnchor = viewChild.required<ViewContainerRef>('componentAnchor');\r\n\r\n  expand = signal<boolean>(false);\r\n\r\n  useDefaultTemplate = computed(\r\n    () => !this.customComponent() && !this.customTemplate(),\r\n  );\r\n\r\n  isCollapsible = computed(() => {\r\n    const layout = this.layout();\r\n    if (!layout) {\r\n      return false;\r\n    }\r\n\r\n    return (\r\n      layout.contentCollapsible === 'collapse' ||\r\n      layout.contentCollapsible === 'expand'\r\n    );\r\n  });\r\n\r\n  injectCustomComponent = effect(() => {\r\n    const anchor = this.componentAnchor();\r\n    const customComponent = this.customComponent();\r\n\r\n    if (!anchor || !customComponent) {\r\n      return;\r\n    }\r\n\r\n    untracked(() => {\r\n      const componentRef = anchor.createComponent(customComponent);\r\n\r\n      componentRef.instance.label.set(this.label());\r\n      componentRef.instance.layout.set(this.layout());\r\n      componentRef.instance.props.set(this.props());\r\n      componentRef.instance.collapsible.set(this.isCollapsible());\r\n      componentRef.instance.expand.set(this.expand());\r\n      this.componentRef = componentRef.instance;\r\n\r\n      this.injectCustomComponent.destroy();\r\n    });\r\n  });\r\n\r\n  handleStateChange = effect(() => {\r\n    const isCollapsible = this.isCollapsible();\r\n    const state = this.state();\r\n\r\n    if (!isCollapsible || !state) {\r\n      return;\r\n    }\r\n\r\n    this.toggle(state === 'expand');\r\n  });\r\n\r\n  setExpandInitialState = effect(() => {\r\n    const state = this.state();\r\n\r\n    if (state) {\r\n      this.expand.set(state === 'expand');\r\n    } else {\r\n      this.expand.set(this.layout()?.contentCollapsible === 'expand');\r\n    }\r\n\r\n    this.setExpandInitialState.destroy();\r\n  });\r\n\r\n  setHostStyle = effect(() => {\r\n    const host = this.el.nativeElement as HTMLElement;\r\n    const label = this.label();\r\n    const customComponent = this.customComponent();\r\n    const isCollapsible = this.isCollapsible();\r\n\r\n    if (!label || !!customComponent) {\r\n      return;\r\n    }\r\n\r\n    if (isCollapsible) {\r\n      host.style.setProperty('display', 'flex');\r\n      host.style.setProperty('cursor', 'pointer');\r\n    } else {\r\n      host.style.setProperty('display', 'inline-block');\r\n      host.style.removeProperty('cursor');\r\n    }\r\n  });\r\n\r\n  constructor() {\r\n    afterNextRender(() => {\r\n      this.initCollapsibleEl();\r\n      this.listenClickEvent();\r\n    });\r\n  }\r\n\r\n  toggle = (expand?: boolean) => {\r\n    const collapsible = this.isCollapsible();\r\n\r\n    if (!collapsible) {\r\n      return;\r\n    }\r\n\r\n    this.expand.update((x) => expand ?? !x);\r\n    this.setElementHeight();\r\n\r\n    if (this.componentRef) {\r\n      this.componentRef.expand.set(this.expand());\r\n    }\r\n  };\r\n\r\n  private listenTransition(): void {\r\n    const el = this.collapsibleEl();\r\n\r\n    if (!el) {\r\n      return;\r\n    }\r\n\r\n    const transitionEnd$ = fromEvent(el, 'transitionend', {\r\n      passive: true,\r\n    }).pipe(\r\n      filter(() => this.expand()),\r\n      tap(() => {\r\n        el?.classList.remove(...['height', 'overflow']);\r\n      }),\r\n    );\r\n\r\n    transitionEnd$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe();\r\n  }\r\n\r\n  private setElementHeight(): void {\r\n    this.setExpandStyle();\r\n\r\n    if (!this.expand()) {\r\n      requestAnimationFrame(() => this.setCollapseStyle());\r\n    }\r\n  }\r\n\r\n  private initCollapsibleEl(): void {\r\n    const el = this.collapsibleEl();\r\n\r\n    if (!el || !this.isCollapsible()) {\r\n      return;\r\n    }\r\n\r\n    this.collapsibleElCssText = el.style.cssText || '';\r\n    el.classList.add('collapsible-container');\r\n    this.listenTransition();\r\n\r\n    if (!this.expand()) {\r\n      this.setCollapseStyle();\r\n    }\r\n  }\r\n\r\n  private setCollapseStyle(): void {\r\n    const el = this.collapsibleEl();\r\n    const stylesToRemove = ['border', 'padding', 'margin'];\r\n\r\n    if (!el) {\r\n      return;\r\n    }\r\n\r\n    stylesToRemove.forEach((style) => {\r\n      if (!this.collapsibleElCssText.includes(style)) return;\r\n      el.style.removeProperty(style);\r\n    });\r\n\r\n    el.style.setProperty('overflow', 'hidden');\r\n    el.style.setProperty('height', '0px');\r\n  }\r\n\r\n  private setExpandStyle(): void {\r\n    const el = this.collapsibleEl();\r\n\r\n    const height = !el ? 0 : el.scrollHeight + 1;\r\n\r\n    // Set existing styles from collapsible element first\r\n    if (this.collapsibleElCssText) {\r\n      el?.setAttribute('style', this.collapsibleElCssText);\r\n    }\r\n\r\n    // Then set height later to overwrite height style\r\n    el?.style.setProperty('height', `${height}px`);\r\n  }\r\n\r\n  private listenClickEvent(): void {\r\n    const host = this.el.nativeElement as HTMLElement;\r\n    const collapsible = this.isCollapsible();\r\n\r\n    if (!collapsible) {\r\n      return;\r\n    }\r\n\r\n    fromEvent(host, 'click', { passive: true })\r\n      .pipe(\r\n        tap(() => this.toggle()),\r\n        takeUntilDestroyed(this.destroyRef),\r\n      )\r\n      .subscribe();\r\n  }\r\n}\r\n","@if (useDefaultTemplate()) {\r\n  <span class=\"text\">{{ label() }}</span>\r\n  @if (isCollapsible()) {\r\n    <span\r\n      style=\"margin-left: auto\"\r\n      [ngStyle]=\"{\r\n        transform: !expand() ? 'rotate(-180deg)' : 'rotate(0deg)',\r\n      }\"\r\n    >\r\n      <!-- prettier-ignore -->\r\n      <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1em\" height=\"1em\" fill=\"currentColor\" class=\"bi bi-chevron-up\" viewBox=\"0 0 16 16\">\r\n        <path fill-rule=\"evenodd\" d=\"M7.646 4.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1-.708.708L8 5.707l-5.646 5.647a.5.5 0 0 1-.708-.708z\"/>\r\n      </svg>\r\n    </span>\r\n  }\r\n}\r\n\r\n<ng-container #componentAnchor></ng-container>\r\n\r\n@if (customTemplate(); as template) {\r\n  <ng-container\r\n    [ngTemplateOutlet]=\"template\"\r\n    [ngTemplateOutletContext]=\"{\r\n      label: label(),\r\n      layout: layout(),\r\n      toggle,\r\n      collapsible: isCollapsible(),\r\n      expand: expand(),\r\n      props: props(),\r\n    }\"\r\n  ></ng-container>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport {\r\n  Component,\r\n  computed,\r\n  DestroyRef,\r\n  inject,\r\n  input,\r\n  OnInit,\r\n  signal,\r\n} from '@angular/core';\r\nimport {\r\n  rxResource,\r\n  takeUntilDestroyed,\r\n  toSignal,\r\n} from '@angular/core/rxjs-interop';\r\nimport { AbstractControl } from '@angular/forms';\r\nimport { map, merge, startWith, takeWhile, tap } from 'rxjs';\r\nimport { ControlLayoutDirective } from '../../directives/control-layout.directive';\r\nimport { FormControlConfig } from '../../models';\r\nimport { FormLayout } from '../../models/form-layout.interface';\r\nimport { IsControlRequiredPipe } from '../../pipes/is-control-required.pipe';\r\nimport { GlobalVariableService } from '../../services/global-variable.service';\r\nimport { HostEventService } from '../../services/host-event.service';\r\nimport { ErrorMessageComponent } from '../error-message/error-message.component';\r\nimport { FormLabelComponent } from '../form-label/form-label.component';\r\n\r\n@Component({\r\n  selector: 'content-wrapper',\r\n  imports: [\r\n    CommonModule,\r\n    FormLabelComponent,\r\n    ErrorMessageComponent,\r\n    ControlLayoutDirective,\r\n    IsControlRequiredPipe,\r\n  ],\r\n  templateUrl: './content-wrapper.component.html',\r\n  styles: [],\r\n})\r\nexport class ContentWrapperComponent implements OnInit {\r\n  private destroyRef = inject(DestroyRef);\r\n  private global = inject(GlobalVariableService);\r\n  private hostEventService = inject(HostEventService);\r\n\r\n  readonly showErrorsOnTouched = this.global.showErrorsOnTouched;\r\n\r\n  config = input<FormControlConfig>();\r\n  control = input<AbstractControl>();\r\n  collapsibleState = input<FormLayout['contentCollapsible']>();\r\n\r\n  isDirty = signal<boolean>(false);\r\n  isTouched = signal<boolean>(false);\r\n\r\n  controlErrors = rxResource({\r\n    params: () => this.control(),\r\n    stream: ({ params }) =>\r\n      merge(params.valueChanges, params.statusChanges).pipe(\r\n        startWith(params.status),\r\n        map(() => params.errors),\r\n      ),\r\n    defaultValue: null,\r\n  });\r\n\r\n  hideErrors = toSignal(\r\n    this.global.hideErrorMessage$.pipe(tap(() => this.updateControlStatus())),\r\n  );\r\n\r\n  formControlName = computed(() => this.config()?.formControlName ?? '');\r\n\r\n  description = computed(() => this.config()?.description);\r\n  descriptionPosition = computed(() => {\r\n    const position =\r\n      this.layout()?.descriptionPosition ?? this.global.descriptionPosition;\r\n\r\n    return position;\r\n  });\r\n\r\n  label = computed(() => this.config()?.label);\r\n  layout = computed(() => this.config()?.layout);\r\n  props = computed(() => this.config()?.props);\r\n\r\n  validators = computed(() => {\r\n    const { validators, asyncValidators } = this.config() ?? {};\r\n    return [...(validators || []), ...(asyncValidators || [])];\r\n  });\r\n\r\n  showLabel = computed(() => this.label() && this.layout()?.hideLabel !== true);\r\n\r\n  customErrorComponent = computed(() => {\r\n    const name = this.formControlName();\r\n    const components = this.global.errorComponents;\r\n    const defaultComponent = this.global.errorComponentDefault;\r\n\r\n    return components?.[name] ?? defaultComponent;\r\n  });\r\n\r\n  customErrorTemplate = computed(() => {\r\n    const name = this.formControlName();\r\n    const templates = this.global.errorTemplates;\r\n    const defaultTemplate = this.global.errorTemplateDefault;\r\n\r\n    return templates?.[name] ?? defaultTemplate ?? null;\r\n  });\r\n\r\n  customLabelComponent = computed(() => {\r\n    const name = this.formControlName();\r\n    const components = this.global.labelComponents;\r\n    const defaultComponent = this.global.labelComponentDefault;\r\n\r\n    return components?.[name] ?? defaultComponent;\r\n  });\r\n\r\n  customLabelTemplate = computed(() => {\r\n    const name = this.formControlName();\r\n    const templates = this.global.labelTemplates;\r\n    const defaultTemplate = this.global.labelTemplateDefault;\r\n\r\n    return templates?.[name] ?? defaultTemplate;\r\n  });\r\n\r\n  renderErrorSection = computed(() => {\r\n    const type = this.config()?.type ?? 'text';\r\n    const typesToHide = this.global.hideErrorsForTypes ?? [];\r\n\r\n    return typesToHide.filter(Boolean).every((x) => x !== type);\r\n  });\r\n\r\n  showErrors = computed(() => {\r\n    const errors = this.controlErrors.value();\r\n    const hideErrors = this.hideErrors();\r\n    const isDirty = this.isDirty();\r\n    const isTouched = this.isTouched();\r\n\r\n    if (!errors || hideErrors) {\r\n      return false;\r\n    }\r\n\r\n    if (this.showErrorsOnTouched) {\r\n      return isDirty || isTouched || false;\r\n    }\r\n\r\n    return isDirty ?? false;\r\n  });\r\n\r\n  ngOnInit(): void {\r\n    merge(this.hostEventService.keyUp$, this.hostEventService.pointerUp$)\r\n      .pipe(\r\n        tap(() => this.updateControlStatus()),\r\n        takeWhile(() => !this.isDirty() && !this.isTouched()),\r\n        takeUntilDestroyed(this.destroyRef),\r\n      )\r\n      .subscribe();\r\n  }\r\n\r\n  updateControlStatus(): void {\r\n    const control = this.control();\r\n\r\n    // At this time this function is fired, all of the `updateControlStatus` in the `FormControlComponent` are just fired.\r\n    // Control state is unchanged at this event loop, so we put it in the next event loop to get the correct result.\r\n    queueMicrotask(() => {\r\n      this.isDirty.set(control?.dirty ?? false);\r\n      this.isTouched.set(control?.touched ?? false);\r\n    });\r\n  }\r\n}\r\n","<!-- Label -->\r\n@if (showLabel()) {\r\n  <form-label\r\n    [label]=\"label()\"\r\n    [layout]=\"layout()\"\r\n    [props]=\"props()\"\r\n    [collapsibleEl]=\"collapsibleEl\"\r\n    [customComponent]=\"customLabelComponent()\"\r\n    [customTemplate]=\"customLabelTemplate()\"\r\n    [state]=\"collapsibleState()\"\r\n    [controlLayout]=\"{\r\n      type: 'label',\r\n      layout: layout(),\r\n    }\"\r\n    [ngClass]=\"{\r\n      required:\r\n        !layout()?.autoAddRequiredClass === true\r\n          ? (control() | isControlRequired)\r\n          : null,\r\n    }\"\r\n  ></form-label>\r\n}\r\n\r\n<div\r\n  #collapsibleEl\r\n  [controlLayout]=\"{\r\n    type: 'content',\r\n    layout: layout(),\r\n  }\"\r\n>\r\n  <!-- Description (before) -->\r\n  @if (description() && descriptionPosition() !== \"after\") {\r\n    <ng-container [ngTemplateOutlet]=\"descriptionTemplate\"></ng-container>\r\n  }\r\n\r\n  <ng-content></ng-content>\r\n\r\n  <!-- Validation message -->\r\n  @if (renderErrorSection()) {\r\n    <error-message\r\n      [control]=\"control()\"\r\n      [validators]=\"validators()\"\r\n      [customComponent]=\"customErrorComponent()\"\r\n      [customTemplate]=\"customErrorTemplate()\"\r\n      [controlLayout]=\"{\r\n        type: 'error',\r\n        layout: layout(),\r\n      }\"\r\n      [ngClass]=\"{\r\n        hidden: !showErrors(),\r\n      }\"\r\n    ></error-message>\r\n  }\r\n\r\n  <!-- Description (after) -->\r\n  @if (description() && descriptionPosition() === \"after\") {\r\n    <ng-container [ngTemplateOutlet]=\"descriptionTemplate\"></ng-container>\r\n  }\r\n</div>\r\n\r\n<!-- Description template -->\r\n<ng-template #descriptionTemplate>\r\n  <span\r\n    class=\"form-description\"\r\n    [ngClass]=\"{\r\n      'position-after': descriptionPosition() === 'after',\r\n    }\"\r\n    [controlLayout]=\"{\r\n      type: 'description',\r\n      layout: layout(),\r\n    }\"\r\n    >{{ description() }}</span\r\n  >\r\n</ng-template>\r\n","import { Injectable } from '@angular/core';\r\nimport IMask, { FactoryArg, Masked } from 'imask/esm/index';\r\nimport { FormControlConfig } from '../models';\r\n\r\n@Injectable()\r\nexport class ConfigMappingService {\r\n  getCorrectedConfig(input: FormControlConfig): FormControlConfig {\r\n    const config = structuredClone(input) as FormControlConfig;\r\n    const { formControlName, props, inputMask, children = [] } = config;\r\n\r\n    config.formControlName = this.getFormControlName(formControlName);\r\n    config.value = config.value ?? this.getFallbackValue(config);\r\n\r\n    if (props) {\r\n      config.props = Object.keys(props).reduce((acc, key) => {\r\n        if (typeof acc[key] === 'string') {\r\n          acc[key] = this.parseStringValue(acc[key]);\r\n        }\r\n\r\n        return acc;\r\n      }, props);\r\n    }\r\n\r\n    if (inputMask) {\r\n      this.mapInputMask(inputMask);\r\n    }\r\n\r\n    if (children.length > 0) {\r\n      config.children = children.map((x) => this.getCorrectedConfig(x));\r\n    }\r\n\r\n    return config;\r\n  }\r\n\r\n  private getFallbackValue(item: FormControlConfig): any {\r\n    switch (item.type) {\r\n      case 'checkbox': {\r\n        const isBinary = !item.options?.src && item.options?.data?.length === 1;\r\n        return isBinary ? false : [];\r\n      }\r\n\r\n      case 'switch':\r\n        return false;\r\n\r\n      default:\r\n        return item.value;\r\n    }\r\n  }\r\n\r\n  private getFormControlName(name: string): string {\r\n    const replaceSpaces = (str: string) => str.replaceAll(/\\s/g, '_');\r\n    const removeSpecialCharacters = (str: string) =>\r\n      str.replaceAll(/[.,]/g, '');\r\n\r\n    const result = [replaceSpaces, removeSpecialCharacters].reduce(\r\n      (acc, fn) => fn(acc),\r\n      name,\r\n    );\r\n\r\n    return result;\r\n  }\r\n\r\n  private mapInputMask(val: FactoryArg): void {\r\n    const mask = val as Masked;\r\n\r\n    // Number, RangeMask, Regex or pattern\r\n    if (typeof mask.mask === 'string') {\r\n      const _mask = mask.mask.trim();\r\n\r\n      if (_mask === 'Number') mask.mask = Number;\r\n      if (_mask === 'Imask.MaskedRange') mask.mask = IMask.MaskedRange;\r\n      if (new RegExp(/^\\/.*\\/\\w*?$/).test(_mask)) {\r\n        const array = _mask.split('/');\r\n        const flags = array.concat().pop();\r\n        mask.mask = new RegExp(array[1], flags);\r\n      }\r\n    }\r\n\r\n    // Dynamic mask\r\n    if (Array.isArray(mask.mask)) {\r\n      mask.mask.forEach((x) => this.mapInputMask(x));\r\n    }\r\n  }\r\n\r\n  private parseStringValue(input: string): any {\r\n    const _input = input.trim();\r\n\r\n    // Get Date from \"Date(xxx)\"\r\n    if (_input.startsWith('Date(') && _input.endsWith(')')) {\r\n      const dateString = _input.replace('Date(', '').replace(')', '').trim();\r\n\r\n      try {\r\n        return new Date(dateString);\r\n      } catch {\r\n        return input;\r\n      }\r\n    }\r\n\r\n    // Get Date from ISO 8601 string\r\n    if (this.isIsoDate(_input)) {\r\n      return new Date(_input);\r\n    }\r\n\r\n    return _input;\r\n  }\r\n\r\n  /**https://stackoverflow.com/questions/52869695/check-if-a-date-string-is-in-iso-and-utc-format */\r\n  private isIsoDate(str: string) {\r\n    if (!/\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/.test(str)) return false;\r\n    const d = new Date(str);\r\n    return d instanceof Date && !isNaN(d.getTime()) && d.toISOString() === str;\r\n  }\r\n}\r\n","import { ConditionsOperator } from '../models/conditions-operator.type';\r\n\r\nexport function evaluateBooleanOperation([left, operator, right]: [\r\n  any,\r\n  ConditionsOperator,\r\n  any\r\n]): boolean {\r\n  switch (operator) {\r\n    case '===':\r\n      return left === right;\r\n\r\n    case '!==':\r\n      return left !== right;\r\n\r\n    case '>=':\r\n      return left >= right;\r\n\r\n    case '>':\r\n      return left > right;\r\n\r\n    case '<=':\r\n      return left <= right;\r\n\r\n    case '<':\r\n      return left < right;\r\n\r\n    case 'includes':\r\n      return Array.isArray(left) ? left.includes(right) : false;\r\n\r\n    case 'notIncludes':\r\n      return Array.isArray(left) ? !left.includes(right) : false;\r\n  }\r\n}\r\n","import { ConditionsStatementTuple, ConditionsOperator } from '../models';\r\nimport { evaluateBooleanOperation } from './get-boolean-operation-result';\r\n\r\n/**\r\n * Get the value in an object located in a specific key.\r\n *\r\n * @param obj The object we want to get the value.\r\n * @param path The path to the target value, with period delimiter\r\n *\r\n * @description\r\n * If one of the path's value is array and the index needs to evaluate at runtime,\r\n * use the syntax same with `ConditionsIfTupple`.\r\n *\r\n * @example\r\n * ```\r\n * level1: {\r\n *  level2: {\r\n *    list: [\r\n *      {\r\n *        value: 0,\r\n *      },\r\n *      {\r\n *        value: 1,\r\n *      },\r\n *      ...\r\n *    ],\r\n *  },\r\n *}\r\n * ```\r\n * Orignal path: `level1.level2.list.[\"value\", \"===\", 1].value`\r\n *\r\n * Resulting path: `level1.level2.list.1.value`\r\n *\r\n * If the array contains only primitive value, leave the first parameter of ConditionsIfTupple empty.\r\n * For example, change `[\"value\", \"===\", 1]` to `[,\"===\", 1].\r\n */\r\nexport function getValueInObject(obj: any, path: string | undefined): any {\r\n  if (!path || !obj || typeof obj !== 'object') {\r\n    return obj;\r\n  }\r\n\r\n  // Store the array value, so that we can get the\r\n  // target index in the next loop.\r\n  let tempArray: any[] = [];\r\n\r\n  try {\r\n    return path\r\n      .split('.')\r\n      .map((x) => x.trim())\r\n      .reduce((acc, key) => {\r\n        if (acc === null || acc === undefined) {\r\n          return acc;\r\n        }\r\n\r\n        const value = acc[key];\r\n        const getKeyByIndex =\r\n          key.startsWith('[') &&\r\n          key.endsWith(']') &&\r\n          key.split(',').length === 3;\r\n\r\n        if (Array.isArray(value)) {\r\n          tempArray = value;\r\n        }\r\n\r\n        return getKeyByIndex ? acc[getItemIndex(tempArray, key)] : value;\r\n      }, obj);\r\n  } catch (error) {\r\n    console.error(error);\r\n    return null;\r\n  }\r\n}\r\n\r\nfunction getItemIndex(array: any[], path: string): string {\r\n  const validSyntax =\r\n    path.startsWith('[') && path.endsWith(']') && path.split(',').length === 3;\r\n\r\n  if (!validSyntax || !Array.isArray(array)) {\r\n    return path;\r\n  }\r\n\r\n  const removeQuotes = (str: string) =>\r\n    str.replaceAll('\"', '').replaceAll(\"'\", '');\r\n\r\n  const [key, operator, value] = path\r\n    .replace('[', '')\r\n    .replace(']', '')\r\n    .split(',')\r\n    .map((x) => x.trim()) as ConditionsStatementTuple;\r\n\r\n  const _key = removeQuotes(key);\r\n  const _operator = removeQuotes(operator) as ConditionsOperator;\r\n\r\n  // The `path` is already a string, so we have to parse what is the type of the `value`.\r\n  // If the `value` is wrapped with quotes then we take it as a string after removing the quotes.\r\n  // Otherwise use JSON.parse() to get the value with correct type. (ex: number)\r\n  const valueParsed = () => {\r\n    if (typeof value !== 'string') return value;\r\n\r\n    const isString = new RegExp(/^('|\").*('|\")$/).test(value);\r\n    return isString ? removeQuotes(value) : JSON.parse(value);\r\n  };\r\n\r\n  const index = array.findIndex((item) => {\r\n    const left = !_key ? item : getValueInObject(item, _key);\r\n    const right = valueParsed();\r\n\r\n    return evaluateBooleanOperation([left, _operator, right]);\r\n  });\r\n\r\n  return index < 0 ? '0' : index.toString();\r\n}\r\n","\"use strict\";export const ConfigConditionsSchema = validate10;const schema11 = {\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"$id\":\"ConfigConditionsSchema\",\"type\":\"object\",\"patternProperties\":{\"^.+$\":{\"$ref\":\"#/definitions/conditionGroupConfig\"}},\"additionalProperties\":false,\"definitions\":{\"conditionIfConfig\":{\"type\":\"array\",\"minItems\":3,\"maxItems\":3,\"items\":[{},{\"enum\":[\"===\",\"!==\",\">=\",\">\",\"<=\",\"<\",\"includes\",\"notIncludes\"]},{}]},\"conditionGroupItem\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"$ref\":\"#/definitions/conditionIfConfig\"},{\"$ref\":\"#/definitions/conditionGroupConfig\"}]}},\"conditionGroupConfig\":{\"type\":\"object\",\"properties\":{\"&&\":{\"$ref\":\"#/definitions/conditionGroupItem\"},\"||\":{\"$ref\":\"#/definitions/conditionGroupItem\"}},\"additionalProperties\":false},\"conditionConfig\":{\"type\":\"object\",\"patternProperties\":{\"^.+$\":{\"$ref\":\"#/definitions/conditionGroupConfig\"}},\"additionalProperties\":false}}};const pattern0 = new RegExp(\"^.+$\", \"u\");const schema12 = {\"type\":\"object\",\"properties\":{\"&&\":{\"$ref\":\"#/definitions/conditionGroupItem\"},\"||\":{\"$ref\":\"#/definitions/conditionGroupItem\"}},\"additionalProperties\":false};const schema13 = {\"type\":\"array\",\"items\":{\"anyOf\":[{\"$ref\":\"#/definitions/conditionIfConfig\"},{\"$ref\":\"#/definitions/conditionGroupConfig\"}]}};const schema14 = {\"type\":\"array\",\"minItems\":3,\"maxItems\":3,\"items\":[{},{\"enum\":[\"===\",\"!==\",\">=\",\">\",\"<=\",\"<\",\"includes\",\"notIncludes\"]},{}]};const wrapper0 = {validate: validate11};function validate12(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data}={}){let vErrors = null;let errors = 0;if(errors === 0){if(Array.isArray(data)){var valid0 = true;const len0 = data.length;for(let i0=0; i0<len0; i0++){let data0 = data[i0];const _errs1 = errors;const _errs2 = errors;let valid1 = false;const _errs3 = errors;const _errs4 = errors;if(errors === _errs4){if(Array.isArray(data0)){if(data0.length > 3){const err0 = {instancePath:instancePath+\"/\" + i0,schemaPath:\"#/definitions/conditionIfConfig/maxItems\",keyword:\"maxItems\",params:{limit: 3},message:\"must NOT have more than 3 items\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}else {if(data0.length < 3){const err1 = {instancePath:instancePath+\"/\" + i0,schemaPath:\"#/definitions/conditionIfConfig/minItems\",keyword:\"minItems\",params:{limit: 3},message:\"must NOT have fewer than 3 items\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}else {const len1 = data0.length;if(len1 > 1){let data1 = data0[1];if(!((((((((data1 === \"===\") || (data1 === \"!==\")) || (data1 === \">=\")) || (data1 === \">\")) || (data1 === \"<=\")) || (data1 === \"<\")) || (data1 === \"includes\")) || (data1 === \"notIncludes\"))){const err2 = {instancePath:instancePath+\"/\" + i0+\"/1\",schemaPath:\"#/definitions/conditionIfConfig/items/1/enum\",keyword:\"enum\",params:{allowedValues: schema14.items[1].enum},message:\"must be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}}}}else {const err3 = {instancePath:instancePath+\"/\" + i0,schemaPath:\"#/definitions/conditionIfConfig/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}var _valid0 = _errs3 === errors;valid1 = valid1 || _valid0;if(!valid1){const _errs7 = errors;if(!(wrapper0.validate(data0, {instancePath:instancePath+\"/\" + i0,parentData:data,parentDataProperty:i0,rootData}))){vErrors = vErrors === null ? wrapper0.validate.errors : vErrors.concat(wrapper0.validate.errors);errors = vErrors.length;}var _valid0 = _errs7 === errors;valid1 = valid1 || _valid0;}if(!valid1){const err4 = {instancePath:instancePath+\"/\" + i0,schemaPath:\"#/items/anyOf\",keyword:\"anyOf\",params:{},message:\"must match a schema in anyOf\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;validate12.errors = vErrors;return false;}else {errors = _errs2;if(vErrors !== null){if(_errs2){vErrors.length = _errs2;}else {vErrors = null;}}}var valid0 = _errs1 === errors;if(!valid0){break;}}}else {validate12.errors = [{instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"}];return false;}}validate12.errors = vErrors;return errors === 0;}function validate11(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data}={}){let vErrors = null;let errors = 0;if(errors === 0){if(data && typeof data == \"object\" && !Array.isArray(data)){const _errs1 = errors;for(const key0 in data){if(!((key0 === \"&&\") || (key0 === \"||\"))){validate11.errors = [{instancePath,schemaPath:\"#/additionalProperties\",keyword:\"additionalProperties\",params:{additionalProperty: key0},message:\"must NOT have additional properties\"}];return false;break;}}if(_errs1 === errors){if(data[\"&&\"] !== undefined){const _errs2 = errors;if(!(validate12(data[\"&&\"], {instancePath:instancePath+\"/&&\",parentData:data,parentDataProperty:\"&&\",rootData}))){vErrors = vErrors === null ? validate12.errors : vErrors.concat(validate12.errors);errors = vErrors.length;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data[\"||\"] !== undefined){const _errs3 = errors;if(!(validate12(data[\"||\"], {instancePath:instancePath+\"/||\",parentData:data,parentDataProperty:\"||\",rootData}))){vErrors = vErrors === null ? validate12.errors : vErrors.concat(validate12.errors);errors = vErrors.length;}var valid0 = _errs3 === errors;}else {var valid0 = true;}}}}else {validate11.errors = [{instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}validate11.errors = vErrors;return errors === 0;}function validate10(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data}={}){/*# sourceURL=\"ConfigConditionsSchema\" */;let vErrors = null;let errors = 0;if(errors === 0){if(data && typeof data == \"object\" && !Array.isArray(data)){const _errs1 = errors;for(const key0 in data){if(!(pattern0.test(key0))){validate10.errors = [{instancePath,schemaPath:\"#/additionalProperties\",keyword:\"additionalProperties\",params:{additionalProperty: key0},message:\"must NOT have additional properties\"}];return false;break;}}if(_errs1 === errors){var valid0 = true;for(const key1 in data){if(pattern0.test(key1)){const _errs2 = errors;if(!(validate11(data[key1], {instancePath:instancePath+\"/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),parentData:data,parentDataProperty:key1,rootData}))){vErrors = vErrors === null ? validate11.errors : vErrors.concat(validate11.errors);errors = vErrors.length;}var valid0 = _errs2 === errors;if(!valid0){break;}}}}}else {validate10.errors = [{instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}validate10.errors = vErrors;return errors === 0;}export const ConfigLayoutSchema = validate16;const schema15 = {\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"$id\":\"ConfigLayoutSchema\",\"type\":\"object\",\"properties\":{\"hostClass\":{\"type\":\"string\"},\"hostStyles\":{\"type\":\"string\"},\"labelClass\":{\"type\":\"string\"},\"labelStyles\":{\"type\":\"string\"},\"contentClass\":{\"type\":\"string\"},\"contentStyles\":{\"type\":\"string\"},\"formGroupClass\":{\"type\":\"string\"},\"formGroupStyles\":{\"type\":\"string\"},\"descriptionClass\":{\"type\":\"string\"},\"descriptionStyles\":{\"type\":\"string\"},\"inputAreaClass\":{\"type\":\"string\"},\"inputAreaStyles\":{\"type\":\"string\"},\"errorClass\":{\"type\":\"string\"},\"errorStyles\":{\"type\":\"string\"},\"descriptionPosition\":{\"enum\":[\"after\",\"before\"]},\"hideLabel\":{\"type\":\"boolean\"},\"contentCollapsible\":{\"enum\":[\"collapse\",\"expand\"],\"description\":\"Enable expand/collapse of content. The default state will be determined by value provided\"},\"autoAddRequiredClass\":{\"type\":\"boolean\",\"description\":\"Add `required` class automatically to control if there's validator named `required`. Default is true.\"}}};function validate16(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data}={}){/*# sourceURL=\"ConfigLayoutSchema\" */;let vErrors = null;let errors = 0;if(errors === 0){if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.hostClass !== undefined){const _errs1 = errors;if(typeof data.hostClass !== \"string\"){validate16.errors = [{instancePath:instancePath+\"/hostClass\",schemaPath:\"#/properties/hostClass/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid0 = _errs1 === errors;}else {var valid0 = true;}if(valid0){if(data.hostStyles !== undefined){const _errs3 = errors;if(typeof data.hostStyles !== \"string\"){validate16.errors = [{instancePath:instancePath+\"/hostStyles\",schemaPath:\"#/properties/hostStyles/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid0 = _errs3 === errors;}else {var valid0 = true;}if(valid0){if(data.labelClass !== undefined){const _errs5 = errors;if(typeof data.labelClass !== \"string\"){validate16.errors = [{instancePath:instancePath+\"/labelClass\",schemaPath:\"#/properties/labelClass/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid0 = _errs5 === errors;}else {var valid0 = true;}if(valid0){if(data.labelStyles !== undefined){const _errs7 = errors;if(typeof data.labelStyles !== \"string\"){validate16.errors = [{instancePath:instancePath+\"/labelStyles\",schemaPath:\"#/properties/labelStyles/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.contentClass !== undefined){const _errs9 = errors;if(typeof data.contentClass !== \"string\"){validate16.errors = [{instancePath:instancePath+\"/contentClass\",schemaPath:\"#/properties/contentClass/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid0 = _errs9 === errors;}else {var valid0 = true;}if(valid0){if(data.contentStyles !== undefined){const _errs11 = errors;if(typeof data.contentStyles !== \"string\"){validate16.errors = [{instancePath:instancePath+\"/contentStyles\",schemaPath:\"#/properties/contentStyles/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid0 = _errs11 === errors;}else {var valid0 = true;}if(valid0){if(data.formGroupClass !== undefined){const _errs13 = errors;if(typeof data.formGroupClass !== \"string\"){validate16.errors = [{instancePath:instancePath+\"/formGroupClass\",schemaPath:\"#/properties/formGroupClass/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid0 = _errs13 === errors;}else {var valid0 = true;}if(valid0){if(data.formGroupStyles !== undefined){const _errs15 = errors;if(typeof data.formGroupStyles !== \"string\"){validate16.errors = [{instancePath:instancePath+\"/formGroupStyles\",schemaPath:\"#/properties/formGroupStyles/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid0 = _errs15 === errors;}else {var valid0 = true;}if(valid0){if(data.descriptionClass !== undefined){const _errs17 = errors;if(typeof data.descriptionClass !== \"string\"){validate16.errors = [{instancePath:instancePath+\"/descriptionClass\",schemaPath:\"#/properties/descriptionClass/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid0 = _errs17 === errors;}else {var valid0 = true;}if(valid0){if(data.descriptionStyles !== undefined){const _errs19 = errors;if(typeof data.descriptionStyles !== \"string\"){validate16.errors = [{instancePath:instancePath+\"/descriptionStyles\",schemaPath:\"#/properties/descriptionStyles/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid0 = _errs19 === errors;}else {var valid0 = true;}if(valid0){if(data.inputAreaClass !== undefined){const _errs21 = errors;if(typeof data.inputAreaClass !== \"string\"){validate16.errors = [{instancePath:instancePath+\"/inputAreaClass\",schemaPath:\"#/properties/inputAreaClass/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid0 = _errs21 === errors;}else {var valid0 = true;}if(valid0){if(data.inputAreaStyles !== undefined){const _errs23 = errors;if(typeof data.inputAreaStyles !== \"string\"){validate16.errors = [{instancePath:instancePath+\"/inputAreaStyles\",schemaPath:\"#/properties/inputAreaStyles/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid0 = _errs23 === errors;}else {var valid0 = true;}if(valid0){if(data.errorClass !== undefined){const _errs25 = errors;if(typeof data.errorClass !== \"string\"){validate16.errors = [{instancePath:instancePath+\"/errorClass\",schemaPath:\"#/properties/errorClass/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid0 = _errs25 === errors;}else {var valid0 = true;}if(valid0){if(data.errorStyles !== undefined){const _errs27 = errors;if(typeof data.errorStyles !== \"string\"){validate16.errors = [{instancePath:instancePath+\"/errorStyles\",schemaPath:\"#/properties/errorStyles/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid0 = _errs27 === errors;}else {var valid0 = true;}if(valid0){if(data.descriptionPosition !== undefined){let data14 = data.descriptionPosition;const _errs29 = errors;if(!((data14 === \"after\") || (data14 === \"before\"))){validate16.errors = [{instancePath:instancePath+\"/descriptionPosition\",schemaPath:\"#/properties/descriptionPosition/enum\",keyword:\"enum\",params:{allowedValues: schema15.properties.descriptionPosition.enum},message:\"must be equal to one of the allowed values\"}];return false;}var valid0 = _errs29 === errors;}else {var valid0 = true;}if(valid0){if(data.hideLabel !== undefined){const _errs30 = errors;if(typeof data.hideLabel !== \"boolean\"){validate16.errors = [{instancePath:instancePath+\"/hideLabel\",schemaPath:\"#/properties/hideLabel/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"}];return false;}var valid0 = _errs30 === errors;}else {var valid0 = true;}if(valid0){if(data.contentCollapsible !== undefined){let data16 = data.contentCollapsible;const _errs32 = errors;if(!((data16 === \"collapse\") || (data16 === \"expand\"))){validate16.errors = [{instancePath:instancePath+\"/contentCollapsible\",schemaPath:\"#/properties/contentCollapsible/enum\",keyword:\"enum\",params:{allowedValues: schema15.properties.contentCollapsible.enum},message:\"must be equal to one of the allowed values\"}];return false;}var valid0 = _errs32 === errors;}else {var valid0 = true;}if(valid0){if(data.autoAddRequiredClass !== undefined){const _errs33 = errors;if(typeof data.autoAddRequiredClass !== \"boolean\"){validate16.errors = [{instancePath:instancePath+\"/autoAddRequiredClass\",schemaPath:\"#/properties/autoAddRequiredClass/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"}];return false;}var valid0 = _errs33 === errors;}else {var valid0 = true;}}}}}}}}}}}}}}}}}}}else {validate16.errors = [{instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}validate16.errors = vErrors;return errors === 0;}export const ConfigOptionsSchema = validate17;const schema16 = {\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"$id\":\"ConfigOptionsSchema\",\"type\":\"object\",\"properties\":{\"data\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"label\":{\"type\":\"string\"},\"value\":{}}}},\"src\":{\"oneOf\":[{\"type\":\"string\"},{\"$ref\":\"#/definitions/optionSourceConfig\"}]},\"srcAppendPosition\":{\"type\":\"string\",\"enum\":[\"after\",\"before\"]},\"autoSelectFirst\":{\"type\":\"boolean\"},\"layout\":{\"type\":\"string\",\"enum\":[\"row\",\"column\"]},\"labelPosition\":{\"type\":\"string\",\"enum\":[\"after\",\"before\"]},\"containerClass\":{\"type\":\"string\"},\"containerStyles\":{\"type\":\"string\"}},\"definitions\":{\"optionSourceConfig\":{\"type\":\"object\",\"properties\":{\"url\":{\"type\":\"string\"},\"method\":{\"type\":\"string\",\"enum\":[\"GET\",\"POST\"]},\"headers\":{},\"body\":{},\"mapData\":{\"type\":\"object\",\"properties\":{\"labelKey\":{\"type\":\"string\"},\"valueKeys\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"contentPath\":{\"type\":\"string\"},\"slice\":{\"type\":\"array\",\"items\":[{\"type\":\"number\"},{\"type\":\"number\"}],\"minItems\":2,\"maxItems\":2},\"appendPosition\":{\"type\":\"string\",\"enum\":[\"after\",\"before\"]}}},\"trigger\":{\"type\":\"object\",\"properties\":{\"by\":{\"type\":\"string\"},\"body\":{},\"debounceTime\":{\"type\":\"number\"}}},\"filter\":{\"type\":\"object\",\"properties\":{\"by\":{\"type\":\"string\"},\"conditions\":{\"$ref\":\"ConfigConditionsSchema#/definitions/conditionGroupConfig\"},\"debounceTime\":{\"type\":\"number\"}}}}}}};const schema17 = {\"type\":\"object\",\"properties\":{\"url\":{\"type\":\"string\"},\"method\":{\"type\":\"string\",\"enum\":[\"GET\",\"POST\"]},\"headers\":{},\"body\":{},\"mapData\":{\"type\":\"object\",\"properties\":{\"labelKey\":{\"type\":\"string\"},\"valueKeys\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"contentPath\":{\"type\":\"string\"},\"slice\":{\"type\":\"array\",\"items\":[{\"type\":\"number\"},{\"type\":\"number\"}],\"minItems\":2,\"maxItems\":2},\"appendPosition\":{\"type\":\"string\",\"enum\":[\"after\",\"before\"]}}},\"trigger\":{\"type\":\"object\",\"properties\":{\"by\":{\"type\":\"string\"},\"body\":{},\"debounceTime\":{\"type\":\"number\"}}},\"filter\":{\"type\":\"object\",\"properties\":{\"by\":{\"type\":\"string\"},\"conditions\":{\"$ref\":\"ConfigConditionsSchema#/definitions/conditionGroupConfig\"},\"debounceTime\":{\"type\":\"number\"}}}}};function validate19(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data}={}){let vErrors = null;let errors = 0;if(errors === 0){if(data && typeof data == \"object\" && !Array.isArray(data)){const _errs1 = errors;for(const key0 in data){if(!((key0 === \"&&\") || (key0 === \"||\"))){validate19.errors = [{instancePath,schemaPath:\"#/additionalProperties\",keyword:\"additionalProperties\",params:{additionalProperty: key0},message:\"must NOT have additional properties\"}];return false;break;}}if(_errs1 === errors){if(data[\"&&\"] !== undefined){const _errs2 = errors;if(!(validate12(data[\"&&\"], {instancePath:instancePath+\"/&&\",parentData:data,parentDataProperty:\"&&\",rootData}))){vErrors = vErrors === null ? validate12.errors : vErrors.concat(validate12.errors);errors = vErrors.length;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data[\"||\"] !== undefined){const _errs3 = errors;if(!(validate12(data[\"||\"], {instancePath:instancePath+\"/||\",parentData:data,parentDataProperty:\"||\",rootData}))){vErrors = vErrors === null ? validate12.errors : vErrors.concat(validate12.errors);errors = vErrors.length;}var valid0 = _errs3 === errors;}else {var valid0 = true;}}}}else {validate19.errors = [{instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}validate19.errors = vErrors;return errors === 0;}function validate18(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data}={}){let vErrors = null;let errors = 0;if(errors === 0){if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.url !== undefined){const _errs1 = errors;if(typeof data.url !== \"string\"){validate18.errors = [{instancePath:instancePath+\"/url\",schemaPath:\"#/properties/url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid0 = _errs1 === errors;}else {var valid0 = true;}if(valid0){if(data.method !== undefined){let data1 = data.method;const _errs3 = errors;if(typeof data1 !== \"string\"){validate18.errors = [{instancePath:instancePath+\"/method\",schemaPath:\"#/properties/method/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}if(!((data1 === \"GET\") || (data1 === \"POST\"))){validate18.errors = [{instancePath:instancePath+\"/method\",schemaPath:\"#/properties/method/enum\",keyword:\"enum\",params:{allowedValues: schema17.properties.method.enum},message:\"must be equal to one of the allowed values\"}];return false;}var valid0 = _errs3 === errors;}else {var valid0 = true;}if(valid0){if(data.mapData !== undefined){let data2 = data.mapData;const _errs5 = errors;if(errors === _errs5){if(data2 && typeof data2 == \"object\" && !Array.isArray(data2)){if(data2.labelKey !== undefined){const _errs7 = errors;if(typeof data2.labelKey !== \"string\"){validate18.errors = [{instancePath:instancePath+\"/mapData/labelKey\",schemaPath:\"#/properties/mapData/properties/labelKey/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid1 = _errs7 === errors;}else {var valid1 = true;}if(valid1){if(data2.valueKeys !== undefined){let data4 = data2.valueKeys;const _errs9 = errors;if(errors === _errs9){if(Array.isArray(data4)){var valid2 = true;const len0 = data4.length;for(let i0=0; i0<len0; i0++){const _errs11 = errors;if(typeof data4[i0] !== \"string\"){validate18.errors = [{instancePath:instancePath+\"/mapData/valueKeys/\" + i0,schemaPath:\"#/properties/mapData/properties/valueKeys/items/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid2 = _errs11 === errors;if(!valid2){break;}}}else {validate18.errors = [{instancePath:instancePath+\"/mapData/valueKeys\",schemaPath:\"#/properties/mapData/properties/valueKeys/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"}];return false;}}var valid1 = _errs9 === errors;}else {var valid1 = true;}if(valid1){if(data2.contentPath !== undefined){const _errs13 = errors;if(typeof data2.contentPath !== \"string\"){validate18.errors = [{instancePath:instancePath+\"/mapData/contentPath\",schemaPath:\"#/properties/mapData/properties/contentPath/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid1 = _errs13 === errors;}else {var valid1 = true;}if(valid1){if(data2.slice !== undefined){let data7 = data2.slice;const _errs15 = errors;if(errors === _errs15){if(Array.isArray(data7)){if(data7.length > 2){validate18.errors = [{instancePath:instancePath+\"/mapData/slice\",schemaPath:\"#/properties/mapData/properties/slice/maxItems\",keyword:\"maxItems\",params:{limit: 2},message:\"must NOT have more than 2 items\"}];return false;}else {if(data7.length < 2){validate18.errors = [{instancePath:instancePath+\"/mapData/slice\",schemaPath:\"#/properties/mapData/properties/slice/minItems\",keyword:\"minItems\",params:{limit: 2},message:\"must NOT have fewer than 2 items\"}];return false;}else {const len1 = data7.length;if(len1 > 0){let data8 = data7[0];const _errs17 = errors;if(!((typeof data8 == \"number\") && (isFinite(data8)))){validate18.errors = [{instancePath:instancePath+\"/mapData/slice/0\",schemaPath:\"#/properties/mapData/properties/slice/items/0/type\",keyword:\"type\",params:{type: \"number\"},message:\"must be number\"}];return false;}var valid3 = _errs17 === errors;}if(valid3){if(len1 > 1){let data9 = data7[1];const _errs19 = errors;if(!((typeof data9 == \"number\") && (isFinite(data9)))){validate18.errors = [{instancePath:instancePath+\"/mapData/slice/1\",schemaPath:\"#/properties/mapData/properties/slice/items/1/type\",keyword:\"type\",params:{type: \"number\"},message:\"must be number\"}];return false;}var valid3 = _errs19 === errors;}}}}}else {validate18.errors = [{instancePath:instancePath+\"/mapData/slice\",schemaPath:\"#/properties/mapData/properties/slice/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"}];return false;}}var valid1 = _errs15 === errors;}else {var valid1 = true;}if(valid1){if(data2.appendPosition !== undefined){let data10 = data2.appendPosition;const _errs21 = errors;if(typeof data10 !== \"string\"){validate18.errors = [{instancePath:instancePath+\"/mapData/appendPosition\",schemaPath:\"#/properties/mapData/properties/appendPosition/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}if(!((data10 === \"after\") || (data10 === \"before\"))){validate18.errors = [{instancePath:instancePath+\"/mapData/appendPosition\",schemaPath:\"#/properties/mapData/properties/appendPosition/enum\",keyword:\"enum\",params:{allowedValues: schema17.properties.mapData.properties.appendPosition.enum},message:\"must be equal to one of the allowed values\"}];return false;}var valid1 = _errs21 === errors;}else {var valid1 = true;}}}}}}else {validate18.errors = [{instancePath:instancePath+\"/mapData\",schemaPath:\"#/properties/mapData/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}var valid0 = _errs5 === errors;}else {var valid0 = true;}if(valid0){if(data.trigger !== undefined){let data11 = data.trigger;const _errs23 = errors;if(errors === _errs23){if(data11 && typeof data11 == \"object\" && !Array.isArray(data11)){if(data11.by !== undefined){const _errs25 = errors;if(typeof data11.by !== \"string\"){validate18.errors = [{instancePath:instancePath+\"/trigger/by\",schemaPath:\"#/properties/trigger/properties/by/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid4 = _errs25 === errors;}else {var valid4 = true;}if(valid4){if(data11.debounceTime !== undefined){let data13 = data11.debounceTime;const _errs27 = errors;if(!((typeof data13 == \"number\") && (isFinite(data13)))){validate18.errors = [{instancePath:instancePath+\"/trigger/debounceTime\",schemaPath:\"#/properties/trigger/properties/debounceTime/type\",keyword:\"type\",params:{type: \"number\"},message:\"must be number\"}];return false;}var valid4 = _errs27 === errors;}else {var valid4 = true;}}}else {validate18.errors = [{instancePath:instancePath+\"/trigger\",schemaPath:\"#/properties/trigger/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}var valid0 = _errs23 === errors;}else {var valid0 = true;}if(valid0){if(data.filter !== undefined){let data14 = data.filter;const _errs29 = errors;if(errors === _errs29){if(data14 && typeof data14 == \"object\" && !Array.isArray(data14)){if(data14.by !== undefined){const _errs31 = errors;if(typeof data14.by !== \"string\"){validate18.errors = [{instancePath:instancePath+\"/filter/by\",schemaPath:\"#/properties/filter/properties/by/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid5 = _errs31 === errors;}else {var valid5 = true;}if(valid5){if(data14.conditions !== undefined){const _errs33 = errors;if(!(validate19(data14.conditions, {instancePath:instancePath+\"/filter/conditions\",parentData:data14,parentDataProperty:\"conditions\",rootData}))){vErrors = vErrors === null ? validate19.errors : vErrors.concat(validate19.errors);errors = vErrors.length;}var valid5 = _errs33 === errors;}else {var valid5 = true;}if(valid5){if(data14.debounceTime !== undefined){let data17 = data14.debounceTime;const _errs34 = errors;if(!((typeof data17 == \"number\") && (isFinite(data17)))){validate18.errors = [{instancePath:instancePath+\"/filter/debounceTime\",schemaPath:\"#/properties/filter/properties/debounceTime/type\",keyword:\"type\",params:{type: \"number\"},message:\"must be number\"}];return false;}var valid5 = _errs34 === errors;}else {var valid5 = true;}}}}else {validate18.errors = [{instancePath:instancePath+\"/filter\",schemaPath:\"#/properties/filter/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}var valid0 = _errs29 === errors;}else {var valid0 = true;}}}}}}else {validate18.errors = [{instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}validate18.errors = vErrors;return errors === 0;}function validate17(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data}={}){/*# sourceURL=\"ConfigOptionsSchema\" */;let vErrors = null;let errors = 0;if(errors === 0){if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.data !== undefined){let data0 = data.data;const _errs1 = errors;if(errors === _errs1){if(Array.isArray(data0)){var valid1 = true;const len0 = data0.length;for(let i0=0; i0<len0; i0++){let data1 = data0[i0];const _errs3 = errors;if(errors === _errs3){if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(data1.label !== undefined){if(typeof data1.label !== \"string\"){validate17.errors = [{instancePath:instancePath+\"/data/\" + i0+\"/label\",schemaPath:\"#/properties/data/items/properties/label/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}}else {validate17.errors = [{instancePath:instancePath+\"/data/\" + i0,schemaPath:\"#/properties/data/items/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}var valid1 = _errs3 === errors;if(!valid1){break;}}}else {validate17.errors = [{instancePath:instancePath+\"/data\",schemaPath:\"#/properties/data/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"}];return false;}}var valid0 = _errs1 === errors;}else {var valid0 = true;}if(valid0){if(data.src !== undefined){let data3 = data.src;const _errs7 = errors;const _errs8 = errors;let valid3 = false;let passing0 = null;const _errs9 = errors;if(typeof data3 !== \"string\"){const err0 = {instancePath:instancePath+\"/src\",schemaPath:\"#/properties/src/oneOf/0/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}var _valid0 = _errs9 === errors;if(_valid0){valid3 = true;passing0 = 0;}const _errs11 = errors;if(!(validate18(data3, {instancePath:instancePath+\"/src\",parentData:data,parentDataProperty:\"src\",rootData}))){vErrors = vErrors === null ? validate18.errors : vErrors.concat(validate18.errors);errors = vErrors.length;}var _valid0 = _errs11 === errors;if(_valid0 && valid3){valid3 = false;passing0 = [passing0, 1];}else {if(_valid0){valid3 = true;passing0 = 1;}}if(!valid3){const err1 = {instancePath:instancePath+\"/src\",schemaPath:\"#/properties/src/oneOf\",keyword:\"oneOf\",params:{passingSchemas: passing0},message:\"must match exactly one schema in oneOf\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate17.errors = vErrors;return false;}else {errors = _errs8;if(vErrors !== null){if(_errs8){vErrors.length = _errs8;}else {vErrors = null;}}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.srcAppendPosition !== undefined){let data4 = data.srcAppendPosition;const _errs12 = errors;if(typeof data4 !== \"string\"){validate17.errors = [{instancePath:instancePath+\"/srcAppendPosition\",schemaPath:\"#/properties/srcAppendPosition/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}if(!((data4 === \"after\") || (data4 === \"before\"))){validate17.errors = [{instancePath:instancePath+\"/srcAppendPosition\",schemaPath:\"#/properties/srcAppendPosition/enum\",keyword:\"enum\",params:{allowedValues: schema16.properties.srcAppendPosition.enum},message:\"must be equal to one of the allowed values\"}];return false;}var valid0 = _errs12 === errors;}else {var valid0 = true;}if(valid0){if(data.autoSelectFirst !== undefined){const _errs14 = errors;if(typeof data.autoSelectFirst !== \"boolean\"){validate17.errors = [{instancePath:instancePath+\"/autoSelectFirst\",schemaPath:\"#/properties/autoSelectFirst/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"}];return false;}var valid0 = _errs14 === errors;}else {var valid0 = true;}if(valid0){if(data.layout !== undefined){let data6 = data.layout;const _errs16 = errors;if(typeof data6 !== \"string\"){validate17.errors = [{instancePath:instancePath+\"/layout\",schemaPath:\"#/properties/layout/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}if(!((data6 === \"row\") || (data6 === \"column\"))){validate17.errors = [{instancePath:instancePath+\"/layout\",schemaPath:\"#/properties/layout/enum\",keyword:\"enum\",params:{allowedValues: schema16.properties.layout.enum},message:\"must be equal to one of the allowed values\"}];return false;}var valid0 = _errs16 === errors;}else {var valid0 = true;}if(valid0){if(data.labelPosition !== undefined){let data7 = data.labelPosition;const _errs18 = errors;if(typeof data7 !== \"string\"){validate17.errors = [{instancePath:instancePath+\"/labelPosition\",schemaPath:\"#/properties/labelPosition/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}if(!((data7 === \"after\") || (data7 === \"before\"))){validate17.errors = [{instancePath:instancePath+\"/labelPosition\",schemaPath:\"#/properties/labelPosition/enum\",keyword:\"enum\",params:{allowedValues: schema16.properties.labelPosition.enum},message:\"must be equal to one of the allowed values\"}];return false;}var valid0 = _errs18 === errors;}else {var valid0 = true;}if(valid0){if(data.containerClass !== undefined){const _errs20 = errors;if(typeof data.containerClass !== \"string\"){validate17.errors = [{instancePath:instancePath+\"/containerClass\",schemaPath:\"#/properties/containerClass/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid0 = _errs20 === errors;}else {var valid0 = true;}if(valid0){if(data.containerStyles !== undefined){const _errs22 = errors;if(typeof data.containerStyles !== \"string\"){validate17.errors = [{instancePath:instancePath+\"/containerStyles\",schemaPath:\"#/properties/containerStyles/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid0 = _errs22 === errors;}else {var valid0 = true;}}}}}}}}}else {validate17.errors = [{instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}validate17.errors = vErrors;return errors === 0;}export const ConfigValidatorsSchema = validate24;const schema19 = {\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"$id\":\"ConfigValidatorsSchema\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"message\":{\"type\":\"string\"},\"flags\":{\"type\":\"string\"},\"value\":{}}}};function validate24(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data}={}){/*# sourceURL=\"ConfigValidatorsSchema\" */;let vErrors = null;let errors = 0;if(errors === 0){if(Array.isArray(data)){var valid0 = true;const len0 = data.length;for(let i0=0; i0<len0; i0++){let data0 = data[i0];const _errs1 = errors;if(errors === _errs1){if(data0 && typeof data0 == \"object\" && !Array.isArray(data0)){if(data0.name !== undefined){const _errs3 = errors;if(typeof data0.name !== \"string\"){validate24.errors = [{instancePath:instancePath+\"/\" + i0+\"/name\",schemaPath:\"#/items/properties/name/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid1 = _errs3 === errors;}else {var valid1 = true;}if(valid1){if(data0.message !== undefined){const _errs5 = errors;if(typeof data0.message !== \"string\"){validate24.errors = [{instancePath:instancePath+\"/\" + i0+\"/message\",schemaPath:\"#/items/properties/message/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid1 = _errs5 === errors;}else {var valid1 = true;}if(valid1){if(data0.flags !== undefined){const _errs7 = errors;if(typeof data0.flags !== \"string\"){validate24.errors = [{instancePath:instancePath+\"/\" + i0+\"/flags\",schemaPath:\"#/items/properties/flags/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid1 = _errs7 === errors;}else {var valid1 = true;}}}}else {validate24.errors = [{instancePath:instancePath+\"/\" + i0,schemaPath:\"#/items/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}var valid0 = _errs1 === errors;if(!valid0){break;}}}else {validate24.errors = [{instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"}];return false;}}validate24.errors = vErrors;return errors === 0;}export const ConfigMainSchema = validate25;const schema20 = {\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"$id\":\"ConfigMainSchema\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"formControlName\":{\"type\":\"string\"},\"asyncValidators\":{\"$ref\":\"ConfigValidatorsSchema\"},\"conditions\":{\"$ref\":\"ConfigConditionsSchema\"},\"children\":{\"$ref\":\"#\"},\"description\":{\"type\":\"string\"},\"props\":{},\"hidden\":{\"type\":\"boolean\"},\"label\":{\"type\":\"string\"},\"layout\":{\"$ref\":\"ConfigLayoutSchema\"},\"inputMask\":{},\"options\":{\"$ref\":\"ConfigOptionsSchema\"},\"readonly\":{\"type\":\"boolean\"},\"type\":{\"type\":\"string\"},\"value\":{},\"validators\":{\"$ref\":\"ConfigValidatorsSchema\"}},\"required\":[\"formControlName\"]}};function validate25(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data}={}){/*# sourceURL=\"ConfigMainSchema\" */;let vErrors = null;let errors = 0;if(errors === 0){if(Array.isArray(data)){var valid0 = true;const len0 = data.length;for(let i0=0; i0<len0; i0++){let data0 = data[i0];const _errs1 = errors;if(errors === _errs1){if(data0 && typeof data0 == \"object\" && !Array.isArray(data0)){let missing0;if((data0.formControlName === undefined) && (missing0 = \"formControlName\")){validate25.errors = [{instancePath:instancePath+\"/\" + i0,schemaPath:\"#/items/required\",keyword:\"required\",params:{missingProperty: missing0},message:\"must have required property '\"+missing0+\"'\"}];return false;}else {if(data0.formControlName !== undefined){const _errs3 = errors;if(typeof data0.formControlName !== \"string\"){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/formControlName\",schemaPath:\"#/items/properties/formControlName/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid1 = _errs3 === errors;}else {var valid1 = true;}if(valid1){if(data0.asyncValidators !== undefined){let data2 = data0.asyncValidators;const _errs5 = errors;const _errs6 = errors;if(errors === _errs6){if(Array.isArray(data2)){var valid3 = true;const len1 = data2.length;for(let i1=0; i1<len1; i1++){let data3 = data2[i1];const _errs8 = errors;if(errors === _errs8){if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(data3.name !== undefined){const _errs10 = errors;if(typeof data3.name !== \"string\"){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/asyncValidators/\" + i1+\"/name\",schemaPath:\"ConfigValidatorsSchema/items/properties/name/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid4 = _errs10 === errors;}else {var valid4 = true;}if(valid4){if(data3.message !== undefined){const _errs12 = errors;if(typeof data3.message !== \"string\"){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/asyncValidators/\" + i1+\"/message\",schemaPath:\"ConfigValidatorsSchema/items/properties/message/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid4 = _errs12 === errors;}else {var valid4 = true;}if(valid4){if(data3.flags !== undefined){const _errs14 = errors;if(typeof data3.flags !== \"string\"){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/asyncValidators/\" + i1+\"/flags\",schemaPath:\"ConfigValidatorsSchema/items/properties/flags/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid4 = _errs14 === errors;}else {var valid4 = true;}}}}else {validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/asyncValidators/\" + i1,schemaPath:\"ConfigValidatorsSchema/items/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}var valid3 = _errs8 === errors;if(!valid3){break;}}}else {validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/asyncValidators\",schemaPath:\"ConfigValidatorsSchema/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"}];return false;}}var valid1 = _errs5 === errors;}else {var valid1 = true;}if(valid1){if(data0.conditions !== undefined){const _errs16 = errors;if(!(validate10(data0.conditions, {instancePath:instancePath+\"/\" + i0+\"/conditions\",parentData:data0,parentDataProperty:\"conditions\",rootData}))){vErrors = vErrors === null ? validate10.errors : vErrors.concat(validate10.errors);errors = vErrors.length;}var valid1 = _errs16 === errors;}else {var valid1 = true;}if(valid1){if(data0.children !== undefined){const _errs17 = errors;if(!(validate25(data0.children, {instancePath:instancePath+\"/\" + i0+\"/children\",parentData:data0,parentDataProperty:\"children\",rootData}))){vErrors = vErrors === null ? validate25.errors : vErrors.concat(validate25.errors);errors = vErrors.length;}var valid1 = _errs17 === errors;}else {var valid1 = true;}if(valid1){if(data0.description !== undefined){const _errs18 = errors;if(typeof data0.description !== \"string\"){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/description\",schemaPath:\"#/items/properties/description/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid1 = _errs18 === errors;}else {var valid1 = true;}if(valid1){if(data0.hidden !== undefined){const _errs20 = errors;if(typeof data0.hidden !== \"boolean\"){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/hidden\",schemaPath:\"#/items/properties/hidden/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"}];return false;}var valid1 = _errs20 === errors;}else {var valid1 = true;}if(valid1){if(data0.label !== undefined){const _errs22 = errors;if(typeof data0.label !== \"string\"){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/label\",schemaPath:\"#/items/properties/label/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid1 = _errs22 === errors;}else {var valid1 = true;}if(valid1){if(data0.layout !== undefined){let data12 = data0.layout;const _errs24 = errors;const _errs25 = errors;if(errors === _errs25){if(data12 && typeof data12 == \"object\" && !Array.isArray(data12)){if(data12.hostClass !== undefined){const _errs27 = errors;if(typeof data12.hostClass !== \"string\"){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/layout/hostClass\",schemaPath:\"ConfigLayoutSchema/properties/hostClass/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid6 = _errs27 === errors;}else {var valid6 = true;}if(valid6){if(data12.hostStyles !== undefined){const _errs29 = errors;if(typeof data12.hostStyles !== \"string\"){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/layout/hostStyles\",schemaPath:\"ConfigLayoutSchema/properties/hostStyles/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid6 = _errs29 === errors;}else {var valid6 = true;}if(valid6){if(data12.labelClass !== undefined){const _errs31 = errors;if(typeof data12.labelClass !== \"string\"){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/layout/labelClass\",schemaPath:\"ConfigLayoutSchema/properties/labelClass/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid6 = _errs31 === errors;}else {var valid6 = true;}if(valid6){if(data12.labelStyles !== undefined){const _errs33 = errors;if(typeof data12.labelStyles !== \"string\"){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/layout/labelStyles\",schemaPath:\"ConfigLayoutSchema/properties/labelStyles/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid6 = _errs33 === errors;}else {var valid6 = true;}if(valid6){if(data12.contentClass !== undefined){const _errs35 = errors;if(typeof data12.contentClass !== \"string\"){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/layout/contentClass\",schemaPath:\"ConfigLayoutSchema/properties/contentClass/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid6 = _errs35 === errors;}else {var valid6 = true;}if(valid6){if(data12.contentStyles !== undefined){const _errs37 = errors;if(typeof data12.contentStyles !== \"string\"){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/layout/contentStyles\",schemaPath:\"ConfigLayoutSchema/properties/contentStyles/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid6 = _errs37 === errors;}else {var valid6 = true;}if(valid6){if(data12.formGroupClass !== undefined){const _errs39 = errors;if(typeof data12.formGroupClass !== \"string\"){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/layout/formGroupClass\",schemaPath:\"ConfigLayoutSchema/properties/formGroupClass/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid6 = _errs39 === errors;}else {var valid6 = true;}if(valid6){if(data12.formGroupStyles !== undefined){const _errs41 = errors;if(typeof data12.formGroupStyles !== \"string\"){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/layout/formGroupStyles\",schemaPath:\"ConfigLayoutSchema/properties/formGroupStyles/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid6 = _errs41 === errors;}else {var valid6 = true;}if(valid6){if(data12.descriptionClass !== undefined){const _errs43 = errors;if(typeof data12.descriptionClass !== \"string\"){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/layout/descriptionClass\",schemaPath:\"ConfigLayoutSchema/properties/descriptionClass/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid6 = _errs43 === errors;}else {var valid6 = true;}if(valid6){if(data12.descriptionStyles !== undefined){const _errs45 = errors;if(typeof data12.descriptionStyles !== \"string\"){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/layout/descriptionStyles\",schemaPath:\"ConfigLayoutSchema/properties/descriptionStyles/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid6 = _errs45 === errors;}else {var valid6 = true;}if(valid6){if(data12.inputAreaClass !== undefined){const _errs47 = errors;if(typeof data12.inputAreaClass !== \"string\"){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/layout/inputAreaClass\",schemaPath:\"ConfigLayoutSchema/properties/inputAreaClass/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid6 = _errs47 === errors;}else {var valid6 = true;}if(valid6){if(data12.inputAreaStyles !== undefined){const _errs49 = errors;if(typeof data12.inputAreaStyles !== \"string\"){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/layout/inputAreaStyles\",schemaPath:\"ConfigLayoutSchema/properties/inputAreaStyles/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid6 = _errs49 === errors;}else {var valid6 = true;}if(valid6){if(data12.errorClass !== undefined){const _errs51 = errors;if(typeof data12.errorClass !== \"string\"){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/layout/errorClass\",schemaPath:\"ConfigLayoutSchema/properties/errorClass/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid6 = _errs51 === errors;}else {var valid6 = true;}if(valid6){if(data12.errorStyles !== undefined){const _errs53 = errors;if(typeof data12.errorStyles !== \"string\"){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/layout/errorStyles\",schemaPath:\"ConfigLayoutSchema/properties/errorStyles/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid6 = _errs53 === errors;}else {var valid6 = true;}if(valid6){if(data12.descriptionPosition !== undefined){let data27 = data12.descriptionPosition;const _errs55 = errors;if(!((data27 === \"after\") || (data27 === \"before\"))){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/layout/descriptionPosition\",schemaPath:\"ConfigLayoutSchema/properties/descriptionPosition/enum\",keyword:\"enum\",params:{allowedValues: schema15.properties.descriptionPosition.enum},message:\"must be equal to one of the allowed values\"}];return false;}var valid6 = _errs55 === errors;}else {var valid6 = true;}if(valid6){if(data12.hideLabel !== undefined){const _errs56 = errors;if(typeof data12.hideLabel !== \"boolean\"){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/layout/hideLabel\",schemaPath:\"ConfigLayoutSchema/properties/hideLabel/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"}];return false;}var valid6 = _errs56 === errors;}else {var valid6 = true;}if(valid6){if(data12.contentCollapsible !== undefined){let data29 = data12.contentCollapsible;const _errs58 = errors;if(!((data29 === \"collapse\") || (data29 === \"expand\"))){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/layout/contentCollapsible\",schemaPath:\"ConfigLayoutSchema/properties/contentCollapsible/enum\",keyword:\"enum\",params:{allowedValues: schema15.properties.contentCollapsible.enum},message:\"must be equal to one of the allowed values\"}];return false;}var valid6 = _errs58 === errors;}else {var valid6 = true;}if(valid6){if(data12.autoAddRequiredClass !== undefined){const _errs59 = errors;if(typeof data12.autoAddRequiredClass !== \"boolean\"){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/layout/autoAddRequiredClass\",schemaPath:\"ConfigLayoutSchema/properties/autoAddRequiredClass/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"}];return false;}var valid6 = _errs59 === errors;}else {var valid6 = true;}}}}}}}}}}}}}}}}}}}else {validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/layout\",schemaPath:\"ConfigLayoutSchema/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}var valid1 = _errs24 === errors;}else {var valid1 = true;}if(valid1){if(data0.options !== undefined){const _errs61 = errors;if(!(validate17(data0.options, {instancePath:instancePath+\"/\" + i0+\"/options\",parentData:data0,parentDataProperty:\"options\",rootData}))){vErrors = vErrors === null ? validate17.errors : vErrors.concat(validate17.errors);errors = vErrors.length;}var valid1 = _errs61 === errors;}else {var valid1 = true;}if(valid1){if(data0.readonly !== undefined){const _errs62 = errors;if(typeof data0.readonly !== \"boolean\"){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/readonly\",schemaPath:\"#/items/properties/readonly/type\",keyword:\"type\",params:{type: \"boolean\"},message:\"must be boolean\"}];return false;}var valid1 = _errs62 === errors;}else {var valid1 = true;}if(valid1){if(data0.type !== undefined){const _errs64 = errors;if(typeof data0.type !== \"string\"){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/type\",schemaPath:\"#/items/properties/type/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid1 = _errs64 === errors;}else {var valid1 = true;}if(valid1){if(data0.validators !== undefined){let data34 = data0.validators;const _errs66 = errors;const _errs67 = errors;if(errors === _errs67){if(Array.isArray(data34)){var valid8 = true;const len2 = data34.length;for(let i2=0; i2<len2; i2++){let data35 = data34[i2];const _errs69 = errors;if(errors === _errs69){if(data35 && typeof data35 == \"object\" && !Array.isArray(data35)){if(data35.name !== undefined){const _errs71 = errors;if(typeof data35.name !== \"string\"){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/validators/\" + i2+\"/name\",schemaPath:\"ConfigValidatorsSchema/items/properties/name/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid9 = _errs71 === errors;}else {var valid9 = true;}if(valid9){if(data35.message !== undefined){const _errs73 = errors;if(typeof data35.message !== \"string\"){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/validators/\" + i2+\"/message\",schemaPath:\"ConfigValidatorsSchema/items/properties/message/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid9 = _errs73 === errors;}else {var valid9 = true;}if(valid9){if(data35.flags !== undefined){const _errs75 = errors;if(typeof data35.flags !== \"string\"){validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/validators/\" + i2+\"/flags\",schemaPath:\"ConfigValidatorsSchema/items/properties/flags/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid9 = _errs75 === errors;}else {var valid9 = true;}}}}else {validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/validators/\" + i2,schemaPath:\"ConfigValidatorsSchema/items/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}var valid8 = _errs69 === errors;if(!valid8){break;}}}else {validate25.errors = [{instancePath:instancePath+\"/\" + i0+\"/validators\",schemaPath:\"ConfigValidatorsSchema/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"}];return false;}}var valid1 = _errs66 === errors;}else {var valid1 = true;}}}}}}}}}}}}}}else {validate25.errors = [{instancePath:instancePath+\"/\" + i0,schemaPath:\"#/items/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}var valid0 = _errs1 === errors;if(!valid0){break;}}}else {validate25.errors = [{instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"}];return false;}}validate25.errors = vErrors;return errors === 0;}","import { Injectable, inject } from '@angular/core';\r\nimport { ErrorObject, ValidateFunction } from 'ajv';\r\nimport { FormControlConfig } from '../models';\r\nimport { ConfigValidationErrors } from '../models/config-validation-errors.interface';\r\nimport { getValueInObject } from '../utilities/get-value-in-object';\r\nimport { ConfigMainSchema } from '../utilities/schema-validator';\r\nimport { ConfigMappingService } from './config-mapping.service';\r\n\r\nconst validate = ConfigMainSchema as ValidateFunction;\r\n@Injectable()\r\nexport class ConfigValidationService {\r\n  private configMappingService = inject(ConfigMappingService);\r\n\r\n  validateAndGetConfig(input: string | FormControlConfig[] | undefined): {\r\n    configs: FormControlConfig[] | null;\r\n    errors?: ConfigValidationErrors[];\r\n  } {\r\n    const failedResult = {\r\n      configs: null,\r\n      errors: [{ errors: 'No configs found' }],\r\n    };\r\n\r\n    if (Array.isArray(input)) {\r\n      if (!validate(input)) {\r\n        failedResult.errors = (validate.errors || []).map((x) =>\r\n          this.getBeautifyErrors(x, input)\r\n        );\r\n\r\n        return failedResult;\r\n      }\r\n\r\n      const configsGet = input\r\n        .filter(Boolean)\r\n        .map((x) => this.configMappingService.getCorrectedConfig(x));\r\n\r\n      return { configs: configsGet };\r\n    }\r\n\r\n    if (typeof input === 'string') {\r\n      try {\r\n        const data = JSON.parse(input);\r\n        return this.validateAndGetConfig(data);\r\n      } catch (err: any) {\r\n        failedResult.errors = [\r\n          {\r\n            // https://stackoverflow.com/questions/18391212/is-it-not-possible-to-stringify-an-error-using-json-stringify\r\n            errors: JSON.stringify(err, Object.getOwnPropertyNames(err), 4),\r\n          },\r\n        ];\r\n\r\n        return failedResult;\r\n      }\r\n    }\r\n\r\n    return failedResult;\r\n  }\r\n\r\n  private getBeautifyErrors(\r\n    err: ErrorObject,\r\n    configs: FormControlConfig[]\r\n  ): ConfigValidationErrors {\r\n    const paths = err.instancePath.substring(1).split('/');\r\n    const lastSegment = paths[paths.length - 1];\r\n    const isObject = new RegExp(/^\\d+$/).test(lastSegment);\r\n    const configPath = isObject ? paths.join('.') : paths[paths.length - 2];\r\n    const config = getValueInObject(configs, configPath);\r\n    const errorMessage = isObject\r\n      ? err.message ?? ''\r\n      : `\"${lastSegment}\" ${err.message}`;\r\n\r\n    return {\r\n      errors: errorMessage,\r\n      config,\r\n    };\r\n  }\r\n}\r\n","import { ConditionsGroup, ConditionsStatementTuple } from '../models';\r\nimport { evaluateBooleanOperation } from './get-boolean-operation-result';\r\n\r\nexport function evaluateConditionsStatements(\r\n  conditionsGroup: ConditionsGroup,\r\n  mapTuppleFn: (tupple: ConditionsStatementTuple) => ConditionsStatementTuple\r\n): boolean | undefined {\r\n  if (!conditionsGroup['&&'] && !conditionsGroup['||']) {\r\n    return undefined;\r\n  }\r\n\r\n  const groupOperator = conditionsGroup['&&'] ? '&&' : '||';\r\n  const conditionsGroupItems = conditionsGroup[groupOperator]!;\r\n\r\n  const childrenStatementsResult = conditionsGroupItems\r\n    .filter((x) => !Array.isArray(x))\r\n    .map((x) => x as ConditionsGroup)\r\n    .map((x) => evaluateConditionsStatements(x, mapTuppleFn));\r\n\r\n  const statementsResult = conditionsGroupItems\r\n    .filter((x) => Array.isArray(x))\r\n    .map((x) => x as ConditionsStatementTuple)\r\n    .map((x) => {\r\n      const [left, operator, right] = mapTuppleFn(x);\r\n      const result = evaluateBooleanOperation([left, operator, right]);\r\n\r\n      return result;\r\n    });\r\n\r\n  const bools = childrenStatementsResult\r\n    .concat(statementsResult)\r\n    .filter((x) => x !== undefined);\r\n\r\n  return groupOperator === '&&' ? bools.every(Boolean) : bools.some(Boolean);\r\n}\r\n","/**Parse the given path, return the correct control path and the value path if present.\r\n *\r\n * @example\r\n * \"controlA\"\r\n * return { controlPath: \"controlA\" }\r\n * \r\n * \"controlA,obj.prop1\"\r\n * return { controlPath: \"controlA\", valuePath: \"obj.prop1\" }\r\n * \r\n * \"controlA,obj.[,===,A].prop2\"\r\n * return { controlPath: \"controlA\", valuePath: \"obj.[,===,A].prop2\" }\r\n */\r\nexport function getControlAndValuePath(path: string): {\r\n  controlPath: string;\r\n  valuePath?: string | undefined;\r\n} {\r\n  const paths = path\r\n    .trim()\r\n    .split(/(,(?![^\\[]*\\]))/)\r\n    .filter((x) => x !== ',');\r\n\r\n  return {\r\n    controlPath: paths[0].trim(),\r\n    ...(paths.length > 1 && {\r\n      valuePath: paths[1],\r\n    }),\r\n  };\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { AbstractControl } from '@angular/forms';\r\nimport { Observable, filter, from, mergeMap, of, tap } from 'rxjs';\r\nimport {\r\n  Conditions,\r\n  ConditionsActionEnum,\r\n  ConditionsGroup,\r\n  ConditionsStatementTuple,\r\n  FormControlConfig,\r\n} from '../models';\r\nimport { evaluateConditionsStatements } from '../utilities/evaluate-conditions-statements';\r\nimport { getControlAndValuePath } from '../utilities/get-control-and-value-path';\r\nimport { getValueInObject } from '../utilities/get-value-in-object';\r\nimport { FormValidationService } from './form-validation.service';\r\nimport { GlobalVariableService } from './global-variable.service';\r\n\r\n@Injectable()\r\nexport class FormConditionsService {\r\n  private globalVariableService = inject(GlobalVariableService);\r\n  private formValidationService = inject(FormValidationService);\r\n\r\n  private configsWithConditions: Record<string, FormControlConfig> = {};\r\n\r\n  /**Listen to the controls that specified in `conditions` to trigger the `targetControl` status and validators\r\n   * @param form The root form\r\n   * @param configs The JSON data\r\n   */\r\n  listenConditions$(): Observable<any> {\r\n    const configs = this.globalVariableService.rootConfigs;\r\n    const form = this.globalVariableService.rootForm;\r\n\r\n    if (!configs.length || !form || typeof window === 'undefined') {\r\n      return of(null);\r\n    }\r\n\r\n    const configsWithConditions = this.extractConfigsWithConditions(configs);\r\n    const controls = this.getPathsOfControlsToListen(configs)\r\n      .map((x) => form.get(x))\r\n      .filter(Boolean) as AbstractControl[];\r\n\r\n    this.configsWithConditions = structuredClone(configsWithConditions);\r\n\r\n    // Avoid using any debounceTime, throttleTime, distinctUntilChanged technique here\r\n    return from(controls).pipe(\r\n      mergeMap((x) => x.valueChanges),\r\n      tap(() => this.handleValueChanges(configsWithConditions)),\r\n    );\r\n  }\r\n\r\n  executeConditions(): void {\r\n    this.handleValueChanges(this.configsWithConditions);\r\n  }\r\n\r\n  private handleValueChanges(data: {\r\n    [fullControlPath: string]: FormControlConfig;\r\n  }): void {\r\n    const form = this.globalVariableService.rootForm;\r\n    if (!form) return;\r\n\r\n    for (const key in data) {\r\n      const control = form.get(key);\r\n      if (!control) continue;\r\n\r\n      const config = data[key];\r\n      const conditions = config.conditions!;\r\n\r\n      this.executeCustomActions(conditions, control);\r\n      this.toggleValidators(config, control);\r\n      this.toggleControlStates(conditions, control, key);\r\n    }\r\n  }\r\n\r\n  private toggleControlStates(\r\n    conditions: Conditions,\r\n    control: AbstractControl,\r\n    controlPath: string,\r\n  ): void {\r\n    const actionDisabled = ConditionsActionEnum['control.disabled'];\r\n    const actionHidden = ConditionsActionEnum['control.hidden'];\r\n    const actions = Object.keys(conditions).filter(\r\n      (x) => x === actionDisabled || x === actionHidden,\r\n    );\r\n\r\n    if (!actions.length) {\r\n      return;\r\n    }\r\n\r\n    for (const action of actions) {\r\n      const bool = this.evaluateConditionsStatement(conditions[action]!);\r\n\r\n      if (bool === undefined) {\r\n        continue;\r\n      }\r\n\r\n      if (action === actionDisabled) {\r\n        this.disableControl(control, bool);\r\n      }\r\n\r\n      if (action === actionHidden) {\r\n        // Must toggle visibility before disable, to prevent incorrect behavior of child element\r\n        // e.g. Primeng Textarea `autoResize` will fail\r\n        this.hideControl$(controlPath, bool)\r\n          .pipe(tap(() => this.disableControl(control, bool)))\r\n          .subscribe();\r\n      }\r\n    }\r\n  }\r\n\r\n  private disableControl(control: AbstractControl, disable: boolean): void {\r\n    disable ? control.disable() : control.enable();\r\n    this.globalVariableService.rootForm?.updateValueAndValidity();\r\n  }\r\n\r\n  private hideControl$(controlPath: string, hide: boolean): Observable<any> {\r\n    const setStyle = (el: HTMLElement, name: string, value: any) => {\r\n      if (hide) {\r\n        el.style.setProperty(name, value);\r\n      } else {\r\n        el.style.removeProperty(name);\r\n      }\r\n    };\r\n\r\n    return this.getTargetEl$(controlPath).pipe(\r\n      filter(Boolean),\r\n      tap((x) => {\r\n        setStyle(x, 'display', 'none');\r\n      }),\r\n    );\r\n  }\r\n\r\n  private toggleValidators(\r\n    config: FormControlConfig,\r\n    control: AbstractControl,\r\n  ): void {\r\n    const { conditions = {}, validators = [] } = config;\r\n    const actionPrefix = {\r\n      asyncValidator: 'asyncValidator',\r\n      validator: 'validator',\r\n    };\r\n\r\n    if (!validators.length) {\r\n      return;\r\n    }\r\n\r\n    const getActions = (async: boolean) => {\r\n      return Object.keys(conditions).filter((x) => {\r\n        const prefix = async\r\n          ? actionPrefix.asyncValidator\r\n          : actionPrefix.validator;\r\n\r\n        // Get the actions that starts with \"validator.xxx\" or \"asyncValidator.xxx\" only\r\n        const regExp = new RegExp(`^${prefix}\\.[a-zA-z]{1,}$`);\r\n\r\n        return regExp.test(x);\r\n      });\r\n    };\r\n\r\n    const getConditionValidatorConfigs = (async: boolean) => {\r\n      const actions = getActions(async);\r\n      const result = validators.filter((x) => {\r\n        const prefix = async\r\n          ? actionPrefix.asyncValidator\r\n          : actionPrefix.validator;\r\n        const actionName = `${prefix}.${x.name ?? ''}` as ConditionsActionEnum;\r\n        const target = actions.includes(actionName);\r\n\r\n        if (target) {\r\n          return this.evaluateConditionsStatement(conditions[actionName]!);\r\n        }\r\n\r\n        return true;\r\n      });\r\n\r\n      return result;\r\n    };\r\n\r\n    const toggleValidators = () => {\r\n      const validatorConfigs = getConditionValidatorConfigs(false);\r\n      const validatorFns =\r\n        this.formValidationService.getValidators(validatorConfigs);\r\n\r\n      control.setValidators(validatorFns);\r\n    };\r\n\r\n    const toggleAsyncValidators = () => {\r\n      const validatorConfigs = getConditionValidatorConfigs(true);\r\n      const validatorFns =\r\n        this.formValidationService.getAsyncValidators(validatorConfigs);\r\n\r\n      control.setAsyncValidators(validatorFns);\r\n    };\r\n\r\n    toggleValidators();\r\n    toggleAsyncValidators();\r\n    control.updateValueAndValidity();\r\n    this.globalVariableService.rootForm?.updateValueAndValidity();\r\n  }\r\n\r\n  private executeCustomActions(\r\n    conditions: Conditions,\r\n    control: AbstractControl,\r\n  ): void {\r\n    const definedActions = Object.values(ConditionsActionEnum);\r\n    const customActions = Object.keys(conditions).filter(\r\n      (x) => !definedActions.includes(x as ConditionsActionEnum),\r\n    );\r\n\r\n    if (!customActions.length) {\r\n      return;\r\n    }\r\n\r\n    for (const action of customActions) {\r\n      const bool = this.evaluateConditionsStatement(conditions[action]!);\r\n      if (!bool) continue;\r\n\r\n      const functions = this.globalVariableService.conditionsActionFunctions;\r\n\r\n      if (!functions) continue;\r\n      if (!functions[action]) continue;\r\n      if (typeof functions[action] !== 'function') continue;\r\n\r\n      functions[action](control);\r\n    }\r\n  }\r\n\r\n  /**Get the target element by using `id`(full control path) on each `div` inside current NgDynamicJsonForm instance */\r\n  private getTargetEl$(controlPath: string): Observable<HTMLElement | null> {\r\n    if (typeof window === 'undefined') {\r\n      return of(null);\r\n    }\r\n\r\n    return new Observable((subscriber) => {\r\n      window.requestAnimationFrame(() => {\r\n        // Use `CSS.escape()` to escape all the invalid characters.\r\n        const element = this.globalVariableService.hostElement?.querySelector(\r\n          `#${CSS.escape(controlPath)}`,\r\n        );\r\n\r\n        subscriber.next(!element ? null : (element as HTMLElement));\r\n        subscriber.complete();\r\n        subscriber.unsubscribe();\r\n      });\r\n    });\r\n  }\r\n\r\n  private getPathsOfControlsToListen(configs: FormControlConfig[]): string[] {\r\n    const extractPaths = (group: ConditionsGroup): string[] => {\r\n      const value = group['&&'] || group['||'];\r\n      if (!value) return [];\r\n\r\n      return value.flatMap((x) =>\r\n        Array.isArray(x)\r\n          ? [\r\n              this.getControlPathFromStatement(x[0]) ?? '',\r\n              this.getControlPathFromStatement(x[2]) ?? '',\r\n            ]\r\n          : extractPaths(x),\r\n      );\r\n    };\r\n\r\n    const result = configs.reduce((acc, curr) => {\r\n      const { conditions, children } = curr;\r\n      const paths = !conditions\r\n        ? []\r\n        : Object.values(conditions)\r\n            .filter((x) => Boolean(x) && Object.keys(x!).length > 0)\r\n            .flatMap((x) => extractPaths(x!))\r\n            .filter(Boolean);\r\n\r\n      const childrenPaths = !children?.length\r\n        ? []\r\n        : this.getPathsOfControlsToListen(children);\r\n\r\n      acc.push(...paths.concat(childrenPaths));\r\n      return acc;\r\n    }, [] as string[]);\r\n\r\n    const removeDuplicates = [...new Set(result)];\r\n    return removeDuplicates;\r\n  }\r\n\r\n  /**\r\n   * Get all the configs which has `conditions` set.\r\n   *\r\n   * @description\r\n   * The `fullControlPath` is the path to the control where the conditions will have effect on it.\r\n   */\r\n  private extractConfigsWithConditions(\r\n    configs: FormControlConfig[],\r\n    parentControlPath?: string,\r\n  ): { [fullControlPath: string]: FormControlConfig } {\r\n    const result = configs.reduce(\r\n      (acc, curr) => {\r\n        const { conditions, children } = curr;\r\n        const fullControlPath = parentControlPath\r\n          ? `${parentControlPath}.${curr.formControlName}`\r\n          : curr.formControlName;\r\n\r\n        if (conditions) acc[fullControlPath] = curr;\r\n        if (children && children.length) {\r\n          acc = {\r\n            ...acc,\r\n            ...this.extractConfigsWithConditions(children, fullControlPath),\r\n          };\r\n        }\r\n\r\n        return acc;\r\n      },\r\n      {} as { [fullControlPath: string]: FormControlConfig },\r\n    );\r\n\r\n    return result;\r\n  }\r\n\r\n  private evaluateConditionsStatement(\r\n    conditionsGroup: ConditionsGroup,\r\n  ): boolean | undefined {\r\n    const form = this.globalVariableService.rootForm;\r\n\r\n    if (!form || (!conditionsGroup['&&'] && !conditionsGroup['||'])) {\r\n      return undefined;\r\n    }\r\n\r\n    const mapTupleFn = (tuple: ConditionsStatementTuple) => {\r\n      const [left, operator, right] = tuple;\r\n      const result = [\r\n        this.getValueFromStatement(left),\r\n        operator,\r\n        this.getValueFromStatement(right),\r\n      ] as ConditionsStatementTuple;\r\n\r\n      return result;\r\n    };\r\n\r\n    return evaluateConditionsStatements(conditionsGroup, mapTupleFn);\r\n  }\r\n\r\n  /**\r\n   * Get control path using the string in the conditions statement tuple.\r\n   *\r\n   * ```js\r\n   * form = new FormGroup{\r\n   *  controlA: new FormControl(),\r\n   *  controlB: new FormControl(),\r\n   * }\r\n   * ```\r\n   *\r\n   * - \"controlA\" => Should get \"controlA\"\r\n   * - \"controlB\" => Should get \"controlB\"\r\n   * - \"controlA,prop1\" => Should get \"controlA\"\r\n   * - \"controlC\" => undefined\r\n   */\r\n  private getControlPathFromStatement(input: any): string | undefined {\r\n    const form = this.globalVariableService.rootForm;\r\n    if (!form) return undefined;\r\n    if (typeof input !== 'string') return undefined;\r\n\r\n    const paths = getControlAndValuePath(input);\r\n    const targetControl = form.get(paths.controlPath);\r\n\r\n    if (!targetControl) return undefined;\r\n    return paths.controlPath;\r\n  }\r\n\r\n  /**Get the value from the statement, either it's literally a value or comes from a control\r\n   *\r\n   * ```js\r\n   * formValue = {\r\n   *   controlA: 'textValue',\r\n   *   controlB: false\r\n   * }\r\n   * ```\r\n   *\r\n   * - \"controlA\" => \"textValue\"\r\n   * - \"controlB\" => false\r\n   */\r\n  private getValueFromStatement(input: any): any {\r\n    const form = this.globalVariableService.rootForm;\r\n\r\n    if (!form) return input;\r\n    if (typeof input !== 'string') return input;\r\n\r\n    const paths = getControlAndValuePath(input);\r\n    const targetControl = form.get(paths.controlPath);\r\n\r\n    // If it is string but not found in the FormGroup,\r\n    // then we consider it as literal string value,\r\n    // not control path.\r\n    if (!targetControl) return input;\r\n\r\n    const result = !paths.valuePath\r\n      ? targetControl.value\r\n      : getValueInObject(targetControl.value, paths.valuePath);\r\n\r\n    return result;\r\n  }\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { FormControl, UntypedFormGroup } from '@angular/forms';\r\nimport { FormControlConfig } from '../models/form-control-config.interface';\r\nimport { FormValidationService } from './form-validation.service';\r\n\r\n@Injectable()\r\nexport class FormGeneratorService {\r\n  private formValidationService = inject(FormValidationService);\r\n\r\n  generateFormGroup(data: FormControlConfig[]): UntypedFormGroup {\r\n    const formGroup = new UntypedFormGroup({});\r\n\r\n    for (const item of data) {\r\n      const control = !item.children?.length\r\n        ? new FormControl(item.value)\r\n        : this.generateFormGroup(item.children);\r\n\r\n      const validators = this.formValidationService.getValidators(\r\n        item.validators\r\n      );\r\n\r\n      const asyncValidators = this.formValidationService.getAsyncValidators(\r\n        item.asyncValidators\r\n      );\r\n\r\n      control.setValidators(validators);\r\n      control.setAsyncValidators(asyncValidators);\r\n\r\n      formGroup.addControl(item.formControlName, control);\r\n\r\n      // Runs the validation manually after async validators are initialized,\r\n      // to prevent the initial status stuck at \"PENDING\".\r\n      if (asyncValidators.length > 0) {\r\n        queueMicrotask(() => control.updateValueAndValidity());\r\n      }\r\n    }\r\n\r\n    return formGroup;\r\n  }\r\n}\r\n","import { Injectable, signal } from '@angular/core';\r\nimport { FormControlConfig } from '../models';\r\n\r\n@Injectable()\r\nexport class FormReadyStateService {\r\n  private optionsLoadingCount = signal<number>(0);\r\n\r\n  optionsReady = signal<boolean>(false);\r\n\r\n  optionsLoading(add: boolean): void {\r\n    const ready = this.optionsReady();\r\n\r\n    if (ready) {\r\n      return;\r\n    }\r\n\r\n    this.optionsLoadingCount.update((x) => (x += add ? 1 : -1));\r\n\r\n    if (this.optionsLoadingCount() === 0) {\r\n      this.optionsReady.set(true);\r\n    }\r\n  }\r\n\r\n  resetState(): void {\r\n    this.optionsReady.set(false);\r\n  }\r\n\r\n  haveOptionsToWait(configs: FormControlConfig[]): boolean {\r\n    if (!configs.length) return false;\r\n\r\n    const result = configs.some((x) =>\r\n      !x.children?.length\r\n        ? Boolean(x.options) && Boolean(x.options!.src)\r\n        : this.haveOptionsToWait(x.children),\r\n    );\r\n\r\n    return result;\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { UntypedFormGroup, isFormControl, isFormGroup } from '@angular/forms';\r\nimport { FormControlConfig, OptionSourceConfig } from '../models';\r\nimport { FormDisplayValue } from '../models/form-display-value.interface';\r\n\r\n@Injectable()\r\nexport class FormValueService {\r\n  patchForm(form: UntypedFormGroup | undefined, value: any): void {\r\n    if (!form) return;\r\n\r\n    for (const key in value) {\r\n      const _value = value[key];\r\n      const control = form.get(key);\r\n\r\n      if (!control) continue;\r\n\r\n      if (isFormControl(control)) {\r\n        control.patchValue(_value);\r\n      }\r\n\r\n      if (isFormGroup(control)) {\r\n        this.patchForm(control, _value);\r\n      }\r\n    }\r\n  }\r\n\r\n  getFormDisplayValue(\r\n    value: any,\r\n    configs: FormControlConfig[]\r\n  ): FormDisplayValue {\r\n    const keyPreserved = this.getKeyPreservedDisplayValue(value, configs);\r\n\r\n    return {\r\n      keyMapped: this.getKeyMappedFormDisplayValue(keyPreserved, configs),\r\n      keyPreserved,\r\n    };\r\n  }\r\n\r\n  private getKeyPreservedDisplayValue(\r\n    formValue: any,\r\n    configs: FormControlConfig[]\r\n  ): any {\r\n    const result = structuredClone(formValue);\r\n\r\n    if (typeof result === null || typeof result !== 'object') {\r\n      return result;\r\n    }\r\n\r\n    for (const item of configs) {\r\n      const value = result?.[item.formControlName];\r\n\r\n      if (item.options) {\r\n        const isDynamicOptions = Boolean(\r\n          item.options.src && typeof item.options.src !== 'string'\r\n        );\r\n\r\n        const labelKey = isDynamicOptions\r\n          ? (item.options.src as OptionSourceConfig).mapData?.labelKey ??\r\n            'label'\r\n          : 'label';\r\n\r\n        const getLabel = (val: any) => {\r\n          if (typeof val === 'object') return val?.[labelKey];\r\n          return item.options?.data?.find((x) => x.value === val)?.label;\r\n        };\r\n\r\n        result[item.formControlName] = Array.isArray(value)\r\n          ? value.map((x) => getLabel(x))\r\n          : getLabel(value);\r\n      }\r\n\r\n      if (!!item.children?.length) {\r\n        result[item.formControlName] = this.getKeyPreservedDisplayValue(\r\n          value,\r\n          item.children\r\n        );\r\n      }\r\n    }\r\n\r\n    return result;\r\n  }\r\n\r\n  private getKeyMappedFormDisplayValue(\r\n    value: any,\r\n    configs: FormControlConfig[]\r\n  ): any {\r\n    const newResult: any = {};\r\n\r\n    if (value === null || typeof value !== 'object') {\r\n      return value;\r\n    }\r\n\r\n    for (const item of configs) {\r\n      const _value = value[item.formControlName];\r\n      const key = item.label ?? item.formControlName;\r\n\r\n      newResult[key] = _value;\r\n\r\n      if (!!item.children?.length) {\r\n        newResult[key] = this.getKeyMappedFormDisplayValue(\r\n          _value,\r\n          item.children\r\n        );\r\n      }\r\n    }\r\n\r\n    return newResult;\r\n  }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { Observable, Subject, finalize, tap } from 'rxjs';\r\n\r\ninterface RequestResponse {\r\n  src: string;\r\n  data$: Subject<Object>;\r\n  body?: any;\r\n}\r\n\r\ninterface RequestParams {\r\n  src: string;\r\n  method: 'POST' | 'GET';\r\n  headers?: any;\r\n  body?: any;\r\n}\r\n\r\n@Injectable()\r\nexport class HttpRequestCacheService {\r\n  private requests: RequestResponse[] = [];\r\n  private http = inject(HttpClient);\r\n\r\n  request$(params: RequestParams): Observable<Object> {\r\n    const { src, method, headers, body } = params;\r\n    const source$ =\r\n      method === 'GET'\r\n        ? this.http.get(src, { headers })\r\n        : this.http.post(src, body ?? {}, { headers });\r\n\r\n    const sameRequest = this.prevSameRequest(params);\r\n\r\n    if (sameRequest) {\r\n      if (!sameRequest.data$.closed) return sameRequest.data$;\r\n      sameRequest.data$ = new Subject<Object>();\r\n    } else {\r\n      this.requests.push({\r\n        src,\r\n        data$: new Subject<Object>(),\r\n        body,\r\n      });\r\n    }\r\n\r\n    return source$.pipe(\r\n      tap((x) => {\r\n        const sameRequest = this.prevSameRequest(params);\r\n        !sameRequest?.data$.closed && sameRequest?.data$.next(x);\r\n      }),\r\n      finalize(() => {\r\n        const sameRequest = this.prevSameRequest(params);\r\n        sameRequest?.data$.complete();\r\n        sameRequest?.data$.unsubscribe();\r\n      })\r\n    );\r\n  }\r\n\r\n  reset(): void {\r\n    this.requests\r\n      .filter((x) => !x.data$.closed)\r\n      .forEach(({ data$ }) => {\r\n        data$.next([]);\r\n        data$.complete();\r\n        data$.unsubscribe();\r\n      });\r\n\r\n    this.requests = [];\r\n  }\r\n\r\n  private prevSameRequest({\r\n    src,\r\n    method,\r\n    body,\r\n  }: RequestParams): RequestResponse | undefined {\r\n    const result = this.requests.find((x) => {\r\n      if (method === 'POST' && body) {\r\n        const sameBody = JSON.stringify(body) === JSON.stringify(x.body);\r\n        return x.src === src && sameBody;\r\n      }\r\n\r\n      return x.src === src;\r\n    });\r\n\r\n    return result;\r\n  }\r\n}\r\n","import { getValueInObject } from './get-value-in-object';\r\n\r\n/**\r\n * Return the new object with only the keys provided.\r\n * If any of the data is nested, the final object will be flatten out.\r\n *\r\n * @param obj The original object\r\n * @param keys The keys to use as new object\r\n * @returns New object contains only specific keys.\r\n *\r\n * The following example shows what happened if there is nested data.\r\n * @example\r\n * from:\r\n * {\r\n *    A: {\r\n *      childA: ...\r\n *    },\r\n *    B: ...,\r\n *    C: ...\r\n * }\r\n *\r\n * to:\r\n * {\r\n *    childA: ...,\r\n *    B: ...,\r\n *    C: ...\r\n * }\r\n */\r\nexport function trimObjectByKeys(obj: any, keys: string[]): any {\r\n  if (typeof obj !== 'object') {\r\n    return obj;\r\n  }\r\n\r\n  if (keys.length === 1) {\r\n    return getValueInObject(obj, keys[0]);\r\n  }\r\n\r\n  return keys.reduce((acc, key) => {\r\n    // If any of the data is nested.\r\n    const _keys = key.split('.').map((x) => x.trim());\r\n\r\n    // We get the last key as new key if the data is nested.\r\n    const newKey = _keys.length > 1 ? _keys[_keys.length - 1] : key;\r\n\r\n    // Finally, we export the new object that's flatten.\r\n    acc[newKey] = getValueInObject(obj, key);\r\n    return acc;\r\n  }, {} as any);\r\n}\r\n","import { Injectable, inject, isDevMode } from '@angular/core';\r\nimport {\r\n  EMPTY,\r\n  Observable,\r\n  Subject,\r\n  catchError,\r\n  combineLatest,\r\n  debounceTime,\r\n  distinctUntilChanged,\r\n  finalize,\r\n  map,\r\n  of,\r\n  startWith,\r\n  switchMap,\r\n  takeUntil,\r\n  tap,\r\n} from 'rxjs';\r\nimport {\r\n  ConditionsStatementTuple,\r\n  OptionItem,\r\n  OptionSourceConfig,\r\n} from '../models';\r\nimport { evaluateConditionsStatements } from '../utilities/evaluate-conditions-statements';\r\nimport { getControlAndValuePath } from '../utilities/get-control-and-value-path';\r\nimport { getValueInObject } from '../utilities/get-value-in-object';\r\nimport { trimObjectByKeys } from '../utilities/trim-object-by-keys';\r\nimport { GlobalVariableService } from './global-variable.service';\r\nimport { HttpRequestCacheService } from './http-request-cache.service';\r\n\r\n@Injectable()\r\nexport class OptionsDataService {\r\n  private globalVariableService = inject(GlobalVariableService);\r\n  private httpRequestCacheService = inject(HttpRequestCacheService);\r\n  private cancelAll$ = new Subject<void>();\r\n\r\n  cancelAllRequest(): void {\r\n    this.cancelAll$.next();\r\n    this.httpRequestCacheService.reset();\r\n  }\r\n\r\n  onDestroy(): void {\r\n    this.cancelAllRequest();\r\n    this.cancelAll$.complete();\r\n  }\r\n\r\n  getOptions$(srcConfig: OptionSourceConfig): Observable<OptionItem[]> {\r\n    if (!srcConfig) {\r\n      return EMPTY;\r\n    }\r\n\r\n    const { url, method, headers, mapData } = srcConfig;\r\n    const bodyMapped = this.mapBodyValue(srcConfig);\r\n    const src = this.getMappedSrc(url, bodyMapped);\r\n\r\n    return this.httpRequestCacheService\r\n      .request$({\r\n        src,\r\n        method,\r\n        headers,\r\n        body: bodyMapped,\r\n      })\r\n      .pipe(\r\n        map((x) => this.mapData(x, mapData)),\r\n        tap((x) => {\r\n          if (isDevMode() && x.length > 100) {\r\n            console.warn(\r\n              `NgDynamicJsonForm:\\nThe data length from the response ${srcConfig.url} is > 100.\\n` +\r\n                `Please make sure there is optimization made. e.g. virtual scroll, lazy loading`,\r\n            );\r\n          }\r\n        }),\r\n        catchError(() => of([])),\r\n        takeUntil(this.cancelAll$),\r\n      );\r\n  }\r\n\r\n  getOptionsByFilter$(props: {\r\n    srcConfig: OptionSourceConfig;\r\n    valueChangeCallback: () => void;\r\n    finalizeCallback: () => void;\r\n  }): Observable<OptionItem[]> {\r\n    const { srcConfig, finalizeCallback, valueChangeCallback } = props;\r\n\r\n    const sourceValueChanges$ = this.onTriggerControlChanges$(\r\n      srcConfig.filter || srcConfig.trigger,\r\n      valueChangeCallback,\r\n    );\r\n\r\n    if (!srcConfig.filter) {\r\n      return of([]);\r\n    }\r\n\r\n    const mapTupleFn = (\r\n      tuple: ConditionsStatementTuple,\r\n      triggerValue: any,\r\n      optionItem: OptionItem | null | undefined,\r\n    ): ConditionsStatementTuple => {\r\n      const [triggerValuePath, operator, optionValuePath] = tuple;\r\n      return [\r\n        getValueInObject(triggerValue, triggerValuePath),\r\n        operator,\r\n        getValueInObject(optionItem?.value, optionValuePath),\r\n      ];\r\n    };\r\n\r\n    const data$ = this.getOptions$(srcConfig).pipe(\r\n      finalize(() => finalizeCallback()),\r\n    );\r\n\r\n    const result$ = combineLatest([data$, sourceValueChanges$]).pipe(\r\n      map(([options, value]) =>\r\n        options.filter((optionItem) => {\r\n          const result = evaluateConditionsStatements(\r\n            srcConfig.filter!.conditions!,\r\n            (e) => mapTupleFn(e, value, optionItem),\r\n          );\r\n\r\n          return result;\r\n        }),\r\n      ),\r\n      tap({\r\n        next: () => finalizeCallback(),\r\n        error: () => finalizeCallback(),\r\n      }),\r\n    );\r\n\r\n    return result$.pipe(takeUntil(this.cancelAll$));\r\n  }\r\n\r\n  getOptionsOnTrigger$(props: {\r\n    srcConfig: OptionSourceConfig;\r\n    valueChangeCallback: () => void;\r\n    finalizeCallback: () => void;\r\n  }): Observable<OptionItem[]> {\r\n    const { srcConfig, finalizeCallback, valueChangeCallback } = props;\r\n\r\n    const sourceValueChanges$ = this.onTriggerControlChanges$(\r\n      srcConfig.filter || srcConfig.trigger,\r\n      valueChangeCallback,\r\n    );\r\n\r\n    if (!srcConfig.trigger) {\r\n      return of([]);\r\n    }\r\n\r\n    return sourceValueChanges$.pipe(\r\n      switchMap(() =>\r\n        this.getOptions$(srcConfig).pipe(finalize(() => finalizeCallback())),\r\n      ),\r\n      takeUntil(this.cancelAll$),\r\n    );\r\n  }\r\n\r\n  /**The `valueChanges` of trigger control */\r\n  private onTriggerControlChanges$(\r\n    triggerConfig: OptionSourceConfig['trigger'] | OptionSourceConfig['filter'],\r\n    valueChangesCallback?: () => void,\r\n  ): Observable<any> {\r\n    if (!triggerConfig) {\r\n      return EMPTY;\r\n    }\r\n\r\n    const { by, debounceTime: _debounceTime = 0 } = triggerConfig;\r\n    if (!by.trim()) {\r\n      return EMPTY;\r\n    }\r\n\r\n    const form = this.globalVariableService.rootForm;\r\n    const paths = getControlAndValuePath(by);\r\n    const control = form?.get(paths.controlPath);\r\n\r\n    if (!control) {\r\n      if (isDevMode()) {\r\n        console.warn(`Form control ${paths.controlPath} not found.`);\r\n      }\r\n      return EMPTY;\r\n    }\r\n\r\n    return control.valueChanges.pipe(\r\n      startWith(control.value),\r\n      distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)),\r\n      // The callback when valueChanges emit, should place before debounceTime\r\n      tap(() => valueChangesCallback?.()),\r\n      debounceTime(_debounceTime),\r\n      map((x) => (!paths.valuePath ? x : getValueInObject(x, paths.valuePath))),\r\n    );\r\n  }\r\n\r\n  private mapData(\r\n    input: Object,\r\n    mapData: OptionSourceConfig['mapData'],\r\n  ): OptionItem[] {\r\n    if (!input) return [];\r\n\r\n    const { contentPath, slice, labelKey, valueKeys } = mapData ?? {};\r\n    const data = contentPath ? getValueInObject(input, contentPath) : input;\r\n    const filteredValueKeys = [...new Set(valueKeys)].filter(Boolean);\r\n\r\n    if (!data || !Array.isArray(data)) return [];\r\n\r\n    const slicedData = data.slice(slice?.[0] ?? 0, slice?.[1] ?? data.length);\r\n    const result: OptionItem[] = slicedData.map((item: any) => ({\r\n      label: getValueInObject(item, labelKey),\r\n      value: !filteredValueKeys.length\r\n        ? item\r\n        : trimObjectByKeys(item, filteredValueKeys),\r\n    }));\r\n\r\n    return result;\r\n  }\r\n\r\n  private getMappedSrc(src: string, body: any): string {\r\n    // url variables (.../:x/:y/:z)\r\n    const urlVariables = src.match(/:([^/:\\s]+)/g) || ([] as string[]);\r\n\r\n    if (typeof body !== 'object') {\r\n      return src;\r\n    }\r\n\r\n    if (!urlVariables.length) {\r\n      return `${src}?${new URLSearchParams(body).toString()}`;\r\n    }\r\n\r\n    return Object.keys(body).reduce((acc, key) => {\r\n      acc = acc.replace(`:${key}`, `${body[key]}`);\r\n      return acc;\r\n    }, src);\r\n  }\r\n\r\n  private mapBodyValue(config: OptionSourceConfig): any {\r\n    if (!config.trigger) return config.body;\r\n\r\n    const triggerBody = config.trigger.body;\r\n    if (!triggerBody) return null;\r\n\r\n    const form = this.globalVariableService.rootForm;\r\n    const result = Object.keys(triggerBody).reduce((acc, key) => {\r\n      const { controlPath, valuePath } = getControlAndValuePath(\r\n        triggerBody[key],\r\n      );\r\n\r\n      const control = form?.get(controlPath);\r\n      const value = getValueInObject(control?.value, valuePath);\r\n\r\n      acc[key] = !control ? triggerBody[key] : value;\r\n      return acc;\r\n    }, {} as any);\r\n\r\n    return result;\r\n  }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, computed } from '@angular/core';\r\nimport { FormArray, FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { CustomControlComponent } from '../../components/custom-control/custom-control.component';\r\nimport { PropsBindingDirective } from '../../directives';\r\n\r\n@Component({\r\n  selector: 'ui-basic-checkbox',\r\n  imports: [CommonModule, ReactiveFormsModule, PropsBindingDirective],\r\n  templateUrl: './ui-basic-checkbox.component.html',\r\n  styles: [],\r\n  host: {\r\n    class: 'ui-basic',\r\n  },\r\n})\r\nexport class UiBasicCheckboxComponent extends CustomControlComponent {\r\n  private onChange?: any;\r\n\r\n  override control = new FormArray<FormControl>([]);\r\n\r\n  groupButtonsStyles = computed(() => {\r\n    const { layout, containerStyles } = this.data()?.options ?? {};\r\n\r\n    return `\r\n      flex-direction: ${layout ?? 'row'};\r\n      align-items: flex-start;\r\n      ${containerStyles ?? ''}\r\n    `.replace(/\\s{2,}/g, '');\r\n  });\r\n\r\n  override writeValue(obj: any): void {\r\n    this.control.clear();\r\n\r\n    if (Array.isArray(obj)) {\r\n      obj.forEach((x) => this.addItem(x));\r\n    } else {\r\n      this.addItem(obj);\r\n    }\r\n  }\r\n\r\n  override registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  toggle(e: Event): void {\r\n    const checked = (e.target as HTMLInputElement).checked;\r\n    this.onChange(checked);\r\n  }\r\n\r\n  onCheckboxChange(e: Event, index: number): void {\r\n    const data = this.data();\r\n    const input = e.target as HTMLInputElement;\r\n    const checked = input.checked;\r\n\r\n    const value = data?.options?.data\r\n      ?.map((x) => x.value)\r\n      .filter((val, i) => (i === index ? checked : this.isChecked(val)));\r\n\r\n    this.control.clear();\r\n    value?.forEach((x) => this.addItem(x));\r\n    this.onChange(this.control.value);\r\n  }\r\n\r\n  isChecked(val: any): boolean {\r\n    return this.control.value.some(\r\n      (x) => JSON.stringify(x) === JSON.stringify(val),\r\n    );\r\n  }\r\n\r\n  private addItem(val?: any): void {\r\n    const control = new FormControl(val);\r\n    this.control.push(control);\r\n  }\r\n}\r\n","@if (data(); as data) {\r\n  <div\r\n    class=\"group-buttons\"\r\n    [style]=\"groupButtonsStyles()\"\r\n    [ngClass]=\"[\r\n      data.options?.containerClass ?? '',\r\n      control.disabled ? 'disabled' : '',\r\n    ]\"\r\n  >\r\n    @for (item of data.options?.data; track $index) {\r\n      <label\r\n        class=\"option-button\"\r\n        [ngStyle]=\"{\r\n          'justify-content':\r\n            data.options?.labelPosition === 'before' ? 'space-between' : null,\r\n        }\"\r\n      >\r\n        <ng-container\r\n          *ngTemplateOutlet=\"\r\n            labelTemplate;\r\n            context: {\r\n              label: item.label,\r\n              isBefore: true,\r\n            }\r\n          \"\r\n        ></ng-container>\r\n        @if (data.options && data.options.data) {\r\n          <!-- binary checkbox -->\r\n          @if (data.options.data.length === 1) {\r\n            <input\r\n              type=\"checkbox\"\r\n              [propsBinding]=\"[\r\n                {\r\n                  props: data.props,\r\n                  omit: ['type'],\r\n                },\r\n              ]\"\r\n              [checked]=\"!control.value.length ? false : control.value[0]\"\r\n              [disabled]=\"control.disabled\"\r\n              (change)=\"toggle($event)\"\r\n            />\r\n          }\r\n          <!-- multi-select checkbox -->\r\n          @if (data.options.data.length > 1) {\r\n            <input\r\n              type=\"checkbox\"\r\n              [propsBinding]=\"[\r\n                {\r\n                  props: data.props,\r\n                  omit: ['type'],\r\n                },\r\n              ]\"\r\n              [checked]=\"isChecked(item.value)\"\r\n              [disabled]=\"control.disabled\"\r\n              (change)=\"onCheckboxChange($event, $index)\"\r\n            />\r\n          }\r\n        }\r\n        <span class=\"marker\"></span>\r\n        <ng-container\r\n          *ngTemplateOutlet=\"\r\n            labelTemplate;\r\n            context: {\r\n              label: item.label,\r\n              isBefore: false,\r\n            }\r\n          \"\r\n        ></ng-container>\r\n      </label>\r\n    }\r\n  </div>\r\n  <ng-template #labelTemplate let-label=\"label\" let-isBefore=\"isBefore\">\r\n    @if ((data.options?.labelPosition === \"before\") === isBefore) {\r\n      <span>{{ label }}</span>\r\n    }\r\n  </ng-template>\r\n}\r\n","import { CommonModule, formatDate } from '@angular/common';\r\nimport { Component, LOCALE_ID, computed, inject } from '@angular/core';\r\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\r\nimport { CustomControlComponent } from '../../components/custom-control/custom-control.component';\r\nimport { PropsBindingDirective } from '../../directives';\r\n\r\n@Component({\r\n  selector: 'ui-basic-date',\r\n  imports: [CommonModule, ReactiveFormsModule, PropsBindingDirective],\r\n  templateUrl: './ui-basic-date.component.html',\r\n  styles: [],\r\n  host: {\r\n    class: 'ui-basic',\r\n  },\r\n})\r\nexport class UiBasicDateComponent extends CustomControlComponent {\r\n  private locale = inject(LOCALE_ID);\r\n  private onChange?: any;\r\n\r\n  dateSettings = computed(() => {\r\n    const { min, max } = this.data()?.props ?? {};\r\n    return {\r\n      min: !min ? '' : formatDate(min, 'yyyy-MM-dd', this.locale),\r\n      max: !max ? '' : formatDate(max, 'yyyy-MM-dd', this.locale),\r\n    };\r\n  });\r\n\r\n  override control = new FormGroup({\r\n    date: new FormControl(''),\r\n    time: new FormControl(''),\r\n  });\r\n\r\n  override writeValue(obj: any): void {\r\n    if (!obj) return;\r\n\r\n    const dateRaw = formatDate(obj, 'yyyy-MM-dd,HH:mm:ss', this.locale);\r\n    this.control.patchValue({\r\n      date: dateRaw.split(',')[0],\r\n      time: dateRaw.split(',')[1],\r\n    });\r\n  }\r\n\r\n  override registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  emitValue(): void {\r\n    const { date, time } = this.control.value;\r\n\r\n    if (!date) {\r\n      return;\r\n    }\r\n\r\n    const _date = new Date(date);\r\n\r\n    if (time) {\r\n      const [hours, minutes, seconds] = time.split(':');\r\n      if (hours) _date.setHours(parseInt(hours));\r\n      if (minutes) _date.setMinutes(parseInt(minutes));\r\n      if (seconds) _date.setSeconds(parseInt(seconds));\r\n    }\r\n\r\n    this.onChange(_date);\r\n  }\r\n}\r\n","@if (data(); as data) {\r\n  <div\r\n    class=\"date-input\"\r\n    [ngClass]=\"{\r\n      disabled: control.disabled,\r\n    }\"\r\n  >\r\n    <input\r\n      type=\"date\"\r\n      [attr.min]=\"dateSettings().min\"\r\n      [attr.max]=\"dateSettings().max\"\r\n      [propsBinding]=\"[\r\n        {\r\n          props: data.props,\r\n          omit: ['min', 'max', 'type'],\r\n        },\r\n      ]\"\r\n      [formControl]=\"control.controls.date\"\r\n      (change)=\"emitValue()\"\r\n    />\r\n    @if (data.props?.showTime === true) {\r\n      <input type=\"time\" [formControl]=\"control.controls.time\" />\r\n    }\r\n  </div>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { IMaskDirective } from 'angular-imask';\r\nimport { CustomControlComponent } from '../../components/custom-control/custom-control.component';\r\nimport {\r\n  ImaskValuePatchDirective,\r\n  PropsBindingDirective,\r\n} from '../../directives';\r\nimport { providePropsBinding } from '../../providers/props-binding.provider';\r\n@Component({\r\n    selector: 'ui-basic-input-mask',\r\n    imports: [\r\n        CommonModule,\r\n        ReactiveFormsModule,\r\n        IMaskDirective,\r\n        ImaskValuePatchDirective,\r\n        PropsBindingDirective,\r\n    ],\r\n    providers: [\r\n        providePropsBinding([\r\n            {\r\n                key: 'imask',\r\n                token: IMaskDirective,\r\n            },\r\n        ]),\r\n    ],\r\n    templateUrl: './ui-basic-input-mask.component.html',\r\n    styles: [],\r\n    host: {\r\n        class: 'ui-basic',\r\n    }\r\n})\r\nexport class UiBasicInputMaskComponent extends CustomControlComponent {\r\n  override control = new FormControl('');\r\n\r\n  onChange?: any;\r\n\r\n  override registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n}\r\n","@if (data(); as data) {\r\n  <input\r\n    type=\"text\"\r\n    imaskValuePatch\r\n    [ngClass]=\"{ disabled: control.disabled }\"\r\n    [imask]=\"data.inputMask\"\r\n    [propsBinding]=\"[\r\n      {\r\n        props: data.props,\r\n        omit: ['type'],\r\n      },\r\n      {\r\n        key: 'imask',\r\n        props: data.props,\r\n      },\r\n    ]\"\r\n    [formControl]=\"control\"\r\n    (complete)=\"onChange(control.value)\"\r\n  />\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component } from '@angular/core';\r\nimport { ReactiveFormsModule, UntypedFormControl } from '@angular/forms';\r\nimport { CustomControlComponent } from '../../components/custom-control/custom-control.component';\r\nimport { PropsBindingDirective } from '../../directives';\r\n\r\n@Component({\r\n    selector: 'ui-basic-input',\r\n    imports: [CommonModule, ReactiveFormsModule, PropsBindingDirective],\r\n    templateUrl: './ui-basic-input.component.html',\r\n    styles: [],\r\n    host: {\r\n        class: 'ui-basic',\r\n    }\r\n})\r\nexport class UiBasicInputComponent extends CustomControlComponent {\r\n  override control = new UntypedFormControl('');\r\n\r\n  onChange?: any;\r\n\r\n  override registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  onInput(e: Event): void {\r\n    const value = (e.target as HTMLInputElement).value;\r\n\r\n    this.control.setValue(value);\r\n    this.onChange(value);\r\n  }\r\n}\r\n","@if (data(); as data) {\r\n  <input\r\n    [ngClass]=\"{ disabled: control.disabled }\"\r\n    [attr.type]=\"data.type ?? 'text'\"\r\n    [propsBinding]=\"[\r\n      {\r\n        props: data.props,\r\n        omit: ['type'],\r\n      },\r\n    ]\"\r\n    [formControl]=\"control\"\r\n    (input)=\"onInput($event)\"\r\n  />\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, computed, signal } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { CustomControlComponent } from '../../components/custom-control/custom-control.component';\r\nimport { PropsBindingDirective } from '../../directives';\r\n\r\n@Component({\r\n  selector: 'ui-basic-radio',\r\n  imports: [CommonModule, ReactiveFormsModule, PropsBindingDirective],\r\n  templateUrl: './ui-basic-radio.component.html',\r\n  styles: [],\r\n  host: {\r\n    class: 'ui-basic',\r\n  },\r\n})\r\nexport class UiBasicRadioComponent extends CustomControlComponent {\r\n  private onChange?: any;\r\n\r\n  options = computed(() => this.data()?.options?.data ?? []);\r\n\r\n  selectedIndex = signal<number>(-1);\r\n  isDisabled = signal<boolean>(false);\r\n\r\n  override writeValue(obj: any): void {\r\n    const index =\r\n      this.options().findIndex(\r\n        (x) => JSON.stringify(x.value) === JSON.stringify(obj),\r\n      ) ?? -1;\r\n\r\n    this.selectedIndex.set(index);\r\n  }\r\n\r\n  override registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  override setDisabledState(isDisabled: boolean): void {\r\n    this.isDisabled.set(isDisabled);\r\n  }\r\n\r\n  emitValue(i: number): void {\r\n    const value = this.options()[i].value;\r\n    this.onChange(value);\r\n  }\r\n}\r\n","@if (data(); as data) {\r\n  <div\r\n    class=\"group-buttons\"\r\n    [style]=\"data.options?.containerStyles\"\r\n    [ngClass]=\"[\r\n      data.options?.containerClass ?? '',\r\n      isDisabled() ? 'disabled' : '',\r\n    ]\"\r\n    [ngStyle]=\"{\r\n      'flex-direction': data.options?.layout,\r\n    }\"\r\n  >\r\n    @for (item of data.options?.data; track $index) {\r\n      <div class=\"option-button-wrapper\">\r\n        <label\r\n          class=\"option-button\"\r\n          [ngStyle]=\"{\r\n            'justify-content':\r\n              data.options?.labelPosition === 'before' ? 'space-between' : null,\r\n          }\"\r\n        >\r\n          @if (data.options?.labelPosition === \"before\") {\r\n            <span>{{ item.label }}</span>\r\n          }\r\n          <input\r\n            type=\"radio\"\r\n            [name]=\"data.formControlName\"\r\n            [propsBinding]=\"[\r\n              {\r\n                props: data.props,\r\n                omit: ['type', 'name'],\r\n              },\r\n            ]\"\r\n            [checked]=\"selectedIndex() === $index\"\r\n            (change)=\"emitValue($index)\"\r\n          />\r\n          <span class=\"marker\"></span>\r\n          @if (data.options?.labelPosition !== \"before\") {\r\n            <span>{{ item.label }}</span>\r\n          }\r\n        </label>\r\n      </div>\r\n    }\r\n  </div>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, computed } from '@angular/core';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { CustomControlComponent } from '../../components/custom-control/custom-control.component';\r\nimport { PropsBindingDirective } from '../../directives';\r\n\r\n@Component({\r\n  selector: 'ui-basic-range',\r\n  imports: [CommonModule, ReactiveFormsModule, PropsBindingDirective],\r\n  templateUrl: './ui-basic-range.component.html',\r\n  styles: [],\r\n  host: {\r\n    class: 'ui-basic',\r\n  },\r\n})\r\nexport class UiBasicRangeComponent extends CustomControlComponent {\r\n  override control = new FormControl(0);\r\n\r\n  onChange?: any;\r\n\r\n  controlValue = toSignal(this.control.valueChanges, {\r\n    initialValue: this.control.value,\r\n  });\r\n\r\n  valuePosition = computed(() => {\r\n    const controlValue = this.controlValue() ?? 0;\r\n    const props = this.data()?.props;\r\n    const min = props?.min ?? 0;\r\n    const max = props?.max ?? 0;\r\n\r\n    return `${((controlValue - min) / (max - min)) * 100}%`;\r\n  });\r\n\r\n  tickMarks = computed(() => {\r\n    const { min, max, showTickMarks, step } = this.data()?.props ?? {};\r\n\r\n    const diff = (max ?? 1) - (min ?? 1);\r\n    const steps = step ?? 1;\r\n\r\n    if (diff === 0) {\r\n      return [];\r\n    }\r\n\r\n    return Array.from(Array(Math.ceil(diff / steps) + 1).keys()).map(\r\n      (x, i) => i,\r\n    );\r\n  });\r\n\r\n  override registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n}\r\n","@if (data(); as data) {\r\n  <div\r\n    class=\"range-input\"\r\n    [ngClass]=\"{\r\n      'show-tick-marks':\r\n        data.props?.showTickMarks === true ||\r\n        data.props?.showCurrentValue === true,\r\n      disabled: control.disabled,\r\n    }\"\r\n  >\r\n    <input\r\n      type=\"range\"\r\n      [ngStyle]=\"{\r\n        'background-size': valuePosition,\r\n      }\"\r\n      [propsBinding]=\"[\r\n        {\r\n          props: data.props,\r\n          omit: ['type'],\r\n        },\r\n      ]\"\r\n      [formControl]=\"control\"\r\n      (input)=\"onChange(control.value)\"\r\n    />\r\n    @if (data.props?.showCurrentValue) {\r\n      <div class=\"current-value\" [style.--left]=\"valuePosition()\">\r\n        {{ control.value }}\r\n      </div>\r\n    }\r\n    @if (data.props?.showTickMarks) {\r\n      <div class=\"tick-marks-container\">\r\n        @for (mark of tickMarks(); track $index) {\r\n          <span class=\"tick-mark\"></span>\r\n        }\r\n      </div>\r\n      <div class=\"min-number\">{{ data.props?.min }}</div>\r\n      <div class=\"max-number\">{{ data.props?.max }}</div>\r\n    }\r\n  </div>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, computed } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { CustomControlComponent } from '../../components/custom-control/custom-control.component';\r\nimport { PropsBindingDirective } from '../../directives';\r\n\r\n@Component({\r\n  selector: 'ui-basic-select',\r\n  imports: [CommonModule, ReactiveFormsModule, PropsBindingDirective],\r\n  templateUrl: './ui-basic-select.component.html',\r\n  styles: [],\r\n  host: {\r\n    class: 'ui-basic',\r\n  },\r\n})\r\nexport class UiBasicSelectComponent extends CustomControlComponent {\r\n  override control = new FormControl(-1);\r\n\r\n  options = computed(() => this.data()?.options?.data ?? []);\r\n\r\n  onTouched = () => {};\r\n  onChange = (_: any) => {};\r\n\r\n  override writeValue(obj: any): void {\r\n    const index = this.options().findIndex(\r\n      (x) => JSON.stringify(x.value) === JSON.stringify(obj),\r\n    );\r\n\r\n    if (index !== undefined) {\r\n      this.control.setValue(index);\r\n    }\r\n  }\r\n\r\n  override registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  override registerOnTouched(fn: any): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  emitValue(e: Event): void {\r\n    const index = (e.target as HTMLSelectElement).value;\r\n\r\n    if (index) {\r\n      const value = this.options().map((x) => x.value)?.[parseInt(index)];\r\n      this.onChange(value);\r\n    }\r\n  }\r\n}\r\n","@if (data(); as data) {\r\n  <div\r\n    class=\"group-buttons\"\r\n    [ngClass]=\"{\r\n      disabled: control.disabled,\r\n    }\"\r\n    [ngStyle]=\"{\r\n      'flex-direction': data.options?.layout,\r\n    }\"\r\n  >\r\n    <select\r\n      [propsBinding]=\"[\r\n        {\r\n          props: data.props,\r\n        },\r\n      ]\"\r\n      [formControl]=\"control\"\r\n      (blur)=\"onTouched()\"\r\n      (change)=\"emitValue($event)\"\r\n    >\r\n      @for (item of data.options?.data; track $index) {\r\n        <option [value]=\"$index\">{{ item.label }}</option>\r\n      }\r\n    </select>\r\n  </div>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { CustomControlComponent } from '../../components/custom-control/custom-control.component';\r\nimport { PropsBindingDirective } from '../../directives';\r\n\r\n@Component({\r\n  selector: 'ui-basic-switch',\r\n  imports: [CommonModule, ReactiveFormsModule, PropsBindingDirective],\r\n  templateUrl: './ui-basic-switch.component.html',\r\n  styles: [],\r\n  host: {\r\n    class: 'ui-basic',\r\n  },\r\n})\r\nexport class UiBasicSwitchComponent extends CustomControlComponent {\r\n  private onChange?: any;\r\n\r\n  override control = new FormControl(false);\r\n\r\n  override registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  emitValue(e: Event): void {\r\n    const checked = (e.target as HTMLInputElement).checked;\r\n\r\n    this.control.setValue(checked);\r\n    this.onChange(checked);\r\n  }\r\n}\r\n","@if (data(); as data) {\r\n  <div\r\n    class=\"option-button-wrapper\"\r\n    [ngClass]=\"{\r\n      disabled: control.disabled,\r\n    }\"\r\n  >\r\n    <label class=\"option-button switch-button\">\r\n      @if (data.options?.labelPosition === \"before\") {\r\n        <ng-container [ngTemplateOutlet]=\"labelTemplate\"></ng-container>\r\n      }\r\n      <input\r\n        type=\"checkbox\"\r\n        [propsBinding]=\"[\r\n          {\r\n            props: data.props,\r\n            omit: ['type'],\r\n          },\r\n        ]\"\r\n        [checked]=\"control.value === true\"\r\n        (change)=\"emitValue($event)\"\r\n      />\r\n      <span class=\"marker\"></span>\r\n      @if (data.options?.labelPosition !== \"before\") {\r\n        <ng-container [ngTemplateOutlet]=\"labelTemplate\"></ng-container>\r\n      }\r\n    </label>\r\n  </div>\r\n  <ng-template #labelTemplate>\r\n    @if (data.options?.data?.[0]?.label) {\r\n      <span>{{ data.options?.data?.[0]?.label }}</span>\r\n    }\r\n  </ng-template>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { CustomControlComponent } from '../../components/custom-control/custom-control.component';\r\nimport {\r\n  PropsBindingDirective,\r\n  TextareaAutHeightDirective,\r\n} from '../../directives';\r\nimport { providePropsBinding } from '../../providers/props-binding.provider';\r\n\r\n@Component({\r\n    selector: 'ui-basic-textarea',\r\n    imports: [\r\n        CommonModule,\r\n        ReactiveFormsModule,\r\n        TextareaAutHeightDirective,\r\n        PropsBindingDirective,\r\n    ],\r\n    providers: [\r\n        providePropsBinding([\r\n            {\r\n                key: 'textarea-autoheight',\r\n                token: TextareaAutHeightDirective,\r\n            },\r\n        ]),\r\n    ],\r\n    templateUrl: './ui-basic-textarea.component.html',\r\n    styles: [],\r\n    host: {\r\n        class: 'ui-basic',\r\n    }\r\n})\r\nexport class UiBasicTextareaComponent extends CustomControlComponent {\r\n  override control = new FormControl('');\r\n\r\n  onChange?: any;\r\n\r\n  override registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  onInput(e: Event): void {\r\n    const value = (e.target as HTMLInputElement).value;\r\n\r\n    this.control.setValue(value);\r\n    this.onChange(value);\r\n  }\r\n}\r\n","@if (data(); as data) {\r\n  <textarea\r\n    textareaAutoHeight\r\n    [ngClass]=\"{ disabled: control.disabled }\"\r\n    [propsBinding]=\"[\r\n      {\r\n        key: 'textarea-autoheight',\r\n        props: data.props,\r\n      },\r\n    ]\"\r\n    [formControl]=\"control\"\r\n    (input)=\"onInput($event)\"\r\n  ></textarea>\r\n}\r\n","import { UiComponents } from '../models';\r\nimport { UiBasicCheckboxComponent } from './ui-basic-checkbox/ui-basic-checkbox.component';\r\nimport { UiBasicDateComponent } from './ui-basic-date/ui-basic-date.component';\r\nimport { UiBasicInputMaskComponent } from './ui-basic-input-mask/ui-basic-input-mask.component';\r\nimport { UiBasicInputComponent } from './ui-basic-input/ui-basic-input.component';\r\nimport { UiBasicRadioComponent } from './ui-basic-radio/ui-basic-radio.component';\r\nimport { UiBasicRangeComponent } from './ui-basic-range/ui-basic-range.component';\r\nimport { UiBasicSelectComponent } from './ui-basic-select/ui-basic-select.component';\r\nimport { UiBasicSwitchComponent } from './ui-basic-switch/ui-basic-switch.component';\r\nimport { UiBasicTextareaComponent } from './ui-basic-textarea/ui-basic-textarea.component';\r\n\r\nexport const UI_BASIC_COMPONENTS: UiComponents = {\r\n  checkbox: UiBasicCheckboxComponent,\r\n  date: UiBasicDateComponent,\r\n  password: UiBasicInputComponent,\r\n  number: UiBasicInputComponent,\r\n  email: UiBasicInputComponent,\r\n  radio: UiBasicRadioComponent,\r\n  range: UiBasicRangeComponent,\r\n  select: UiBasicSelectComponent,\r\n  switch: UiBasicSwitchComponent,\r\n  text: UiBasicInputComponent,\r\n  textMask: UiBasicInputMaskComponent,\r\n  textarea: UiBasicTextareaComponent,\r\n};\r\n","import { CommonModule } from '@angular/common';\r\nimport {\r\n  Component,\r\n  ComponentRef,\r\n  computed,\r\n  DestroyRef,\r\n  effect,\r\n  forwardRef,\r\n  HostListener,\r\n  inject,\r\n  input,\r\n  signal,\r\n  Type,\r\n  untracked,\r\n  viewChild,\r\n  ViewContainerRef,\r\n} from '@angular/core';\r\nimport {\r\n  takeUntilDestroyed,\r\n  toObservable,\r\n  toSignal,\r\n} from '@angular/core/rxjs-interop';\r\nimport {\r\n  AbstractControl,\r\n  ControlValueAccessor,\r\n  NG_VALIDATORS,\r\n  NG_VALUE_ACCESSOR,\r\n  ValidationErrors,\r\n  Validator,\r\n} from '@angular/forms';\r\nimport {\r\n  combineLatest,\r\n  EMPTY,\r\n  filter,\r\n  finalize,\r\n  Observable,\r\n  startWith,\r\n  switchMap,\r\n  tap,\r\n} from 'rxjs';\r\nimport {\r\n  FormControlConfig,\r\n  FormStatusFunctions,\r\n  OptionItem,\r\n  OptionSourceConfig,\r\n} from '../../models';\r\nimport {\r\n  FormReadyStateService,\r\n  GlobalVariableService,\r\n  OptionsDataService,\r\n} from '../../services';\r\nimport { UI_BASIC_COMPONENTS } from '../../ui-basic/ui-basic-components.constant';\r\nimport { UiBasicInputComponent } from '../../ui-basic/ui-basic-input/ui-basic-input.component';\r\nimport { CustomControlComponent } from '../custom-control/custom-control.component';\r\n\r\n@Component({\r\n  selector: 'form-control',\r\n  imports: [CommonModule],\r\n  templateUrl: './form-control.component.html',\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => FormControlComponent),\r\n      multi: true,\r\n    },\r\n    {\r\n      provide: NG_VALIDATORS,\r\n      useExisting: forwardRef(() => FormControlComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n  styles: [':host { display: block }'],\r\n  host: {\r\n    class: 'form-control',\r\n  },\r\n})\r\nexport class FormControlComponent implements ControlValueAccessor, Validator {\r\n  private destroyRef = inject(DestroyRef);\r\n  private global = inject(GlobalVariableService);\r\n  private formReadyStateService = inject(FormReadyStateService);\r\n  private optionsDataService = inject(OptionsDataService);\r\n\r\n  private readonly uiComponents = this.global.uiComponents;\r\n\r\n  private inputComponentRef = signal<CustomControlComponent | undefined>(\r\n    undefined,\r\n  );\r\n  private pendingValue = signal<any>(null);\r\n\r\n  private onChange = (_: any) => {};\r\n  private onTouched = () => {};\r\n\r\n  readonly loadingComponent = this.global.loadingComponent ?? null;\r\n  readonly loadingTemplate = this.global.loadingTemplate ?? null;\r\n  readonly hostForm = this.global.rootForm;\r\n  readonly hideErrorMessage$ = this.global.hideErrorMessage$;\r\n\r\n  data = input<FormControlConfig>();\r\n  control = input<AbstractControl>();\r\n  customComponent = input<Type<CustomControlComponent>>();\r\n\r\n  inputComponentAnchor = viewChild.required('inputComponentAnchor', {\r\n    read: ViewContainerRef,\r\n  });\r\n\r\n  loading = signal<boolean>(false);\r\n\r\n  inputType = computed(() => {\r\n    const data = this.data();\r\n\r\n    if (data?.inputMask) {\r\n      return 'textMask';\r\n    }\r\n\r\n    // Fallback to text input if `type` is not specified.\r\n    if (!data?.type) {\r\n      return 'text';\r\n    }\r\n\r\n    switch (data.type) {\r\n      case 'number':\r\n      case 'text':\r\n        return 'text';\r\n\r\n      default:\r\n        return data.type;\r\n    }\r\n  });\r\n\r\n  inputComponent = computed(() => {\r\n    const customComponent = this.customComponent();\r\n    const inputType = this.inputType();\r\n    const uiComponents = this.uiComponents;\r\n\r\n    if (customComponent) {\r\n      return customComponent;\r\n    }\r\n\r\n    if (uiComponents && uiComponents[inputType]) {\r\n      return uiComponents[inputType];\r\n    }\r\n\r\n    return UI_BASIC_COMPONENTS[inputType] || UiBasicInputComponent;\r\n  });\r\n\r\n  customInputTemplate = computed(() => {\r\n    const formControlName = this.data()?.formControlName;\r\n    const templates = this.global.customTemplates;\r\n\r\n    if (!formControlName || !templates) {\r\n      return null;\r\n    }\r\n\r\n    return templates[formControlName];\r\n  });\r\n\r\n  optionsConfig = computed(() => structuredClone(this.data()?.options));\r\n\r\n  dynamicOptions = toSignal(\r\n    toObservable(this.optionsConfig).pipe(\r\n      filter(Boolean),\r\n      switchMap((x) => {\r\n        const { src } = x;\r\n\r\n        if (!src) {\r\n          return EMPTY;\r\n        }\r\n\r\n        if (typeof src === 'string') {\r\n          const source$ = this.global.optionsSources?.[src] || EMPTY;\r\n\r\n          this.setLoading(true);\r\n\r\n          return source$.pipe(\r\n            // The source$ might be a hybrid Observable, which outer stream is HOT (from Subject),\r\n            // and inner stream is COLD (http request). So we need to call setLoading(false) in both\r\n            // `next` and `error`, instead of using finalize().\r\n            tap({\r\n              next: () => this.setLoading(false),\r\n              error: () => this.setLoading(false),\r\n            }),\r\n          );\r\n        }\r\n\r\n        if (src.filter || src.trigger) {\r\n          return this.getOptionsByFilterOrTrigger(src);\r\n        }\r\n\r\n        this.setLoading(true);\r\n        return this.optionsDataService\r\n          .getOptions$(src)\r\n          .pipe(finalize(() => this.setLoading(false)));\r\n      }),\r\n    ),\r\n  );\r\n\r\n  useCustomLoading = computed(\r\n    () => Boolean(this.loadingComponent) || Boolean(this.loadingTemplate),\r\n  );\r\n\r\n  init = effect(() => {\r\n    const anchor = this.inputComponentAnchor();\r\n    const useTemplate = !!this.customInputTemplate();\r\n    const inputComponent = this.inputComponent();\r\n\r\n    if (useTemplate || !anchor || !inputComponent) {\r\n      return;\r\n    }\r\n\r\n    anchor.clear();\r\n\r\n    untracked(() => {\r\n      const componentRef = anchor.createComponent(inputComponent);\r\n      this.inputComponentRef.set(componentRef.instance);\r\n      this.initComponentInstance(componentRef);\r\n\r\n      // Do this in the next tick to get the correct state of the component,\r\n      // because the component is just created at this time.\r\n      queueMicrotask(() => {\r\n        this.syncControlErrors();\r\n      });\r\n\r\n      this.init.destroy();\r\n    });\r\n  });\r\n\r\n  handleOptionsFetched = effect(() => {\r\n    const dynamicOptions = this.dynamicOptions();\r\n    const inputComponent = this.inputComponentRef();\r\n\r\n    if (!dynamicOptions || !inputComponent) {\r\n      return;\r\n    }\r\n\r\n    untracked(() => {\r\n      const { autoSelectFirst, data, srcAppendPosition } =\r\n        this.optionsConfig() ?? {};\r\n\r\n      const pendingValue = this.pendingValue();\r\n      const staticOptions = structuredClone(data ?? []);\r\n\r\n      const newOptions =\r\n        srcAppendPosition === 'before'\r\n          ? dynamicOptions.concat(staticOptions)\r\n          : staticOptions?.concat(dynamicOptions);\r\n\r\n      inputComponent.onOptionsGet(newOptions);\r\n\r\n      if (pendingValue) {\r\n        this.writeControlValue(pendingValue);\r\n        this.pendingValue.set(null);\r\n      } else if (autoSelectFirst && newOptions.length > 0) {\r\n        this.writeControlValue(newOptions[0].value);\r\n      }\r\n    });\r\n  });\r\n\r\n  @HostListener('focusout', ['$event'])\r\n  onFocusOut(): void {\r\n    if (this.inputType() === 'select') {\r\n      // For select component, trigger when it's blurred.\r\n      // It should be implemented on the corresponding component.\r\n      return;\r\n    }\r\n\r\n    this.onTouched();\r\n  }\r\n\r\n  writeValue(obj: any): void {\r\n    this.pendingValue.set(obj);\r\n    this.inputComponentRef()?.writeValue(obj);\r\n  }\r\n\r\n  registerOnChange(fn: (_: any) => void): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: () => void): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    this.inputComponentRef()?.setDisabledState(isDisabled);\r\n  }\r\n\r\n  validate(control: AbstractControl<any, any>): ValidationErrors | null {\r\n    return this.inputComponentRef()?.validate(control) ?? null;\r\n  }\r\n\r\n  updateControlStatus(type: keyof FormStatusFunctions): void {\r\n    const control = this.control();\r\n    const inputComponent = this.inputComponentRef();\r\n\r\n    switch (type) {\r\n      case 'setDirty': {\r\n        inputComponent?.control?.markAsDirty();\r\n        inputComponent?.markAsDirty();\r\n        control?.markAsDirty();\r\n\r\n        break;\r\n      }\r\n\r\n      case 'setPristine': {\r\n        inputComponent?.control?.markAsPristine();\r\n        inputComponent?.markAsPristine();\r\n        control?.markAsPristine();\r\n\r\n        break;\r\n      }\r\n\r\n      case 'setTouched': {\r\n        inputComponent?.control?.markAsTouched();\r\n        inputComponent?.markAsTouched();\r\n        control?.markAsTouched();\r\n\r\n        break;\r\n      }\r\n\r\n      case 'setUntouched': {\r\n        inputComponent?.control?.markAsUntouched();\r\n        inputComponent?.markAsUntouched();\r\n        control?.markAsUntouched();\r\n\r\n        break;\r\n      }\r\n    }\r\n  }\r\n\r\n  private getOptionsByFilterOrTrigger(\r\n    srcConfig: OptionSourceConfig,\r\n  ): Observable<OptionItem[]> {\r\n    const { filter } = srcConfig;\r\n\r\n    const valueChangeCallback = () => {\r\n      this.setLoading(true);\r\n\r\n      if (!this.pendingValue()) {\r\n        this.writeControlValue(null);\r\n      }\r\n    };\r\n\r\n    const finalizeCallback = () => {\r\n      this.setLoading(false);\r\n    };\r\n\r\n    if (filter) {\r\n      return this.optionsDataService.getOptionsByFilter$({\r\n        srcConfig,\r\n        valueChangeCallback,\r\n        finalizeCallback,\r\n      });\r\n    }\r\n\r\n    return this.optionsDataService.getOptionsOnTrigger$({\r\n      srcConfig,\r\n      valueChangeCallback,\r\n      finalizeCallback,\r\n    });\r\n  }\r\n\r\n  private initComponentInstance(\r\n    componentRef: ComponentRef<CustomControlComponent>,\r\n  ): void {\r\n    componentRef.instance.data.set(this.data());\r\n    componentRef.instance.hostForm.set(this.hostForm);\r\n    componentRef.instance.writeValue(this.pendingValue());\r\n    componentRef.instance.registerOnChange(this.onChange);\r\n    componentRef.instance.registerOnTouched(this.onTouched);\r\n  }\r\n\r\n  private setLoading(loading: boolean): void {\r\n    this.loading.set(loading);\r\n    this.formReadyStateService.optionsLoading(loading);\r\n  }\r\n\r\n  private writeControlValue(value: any): void {\r\n    this.control()?.setValue(value);\r\n    this.inputComponentRef()?.writeValue(value);\r\n  }\r\n\r\n  private syncControlErrors(): void {\r\n    const control = this.control();\r\n    const inputComponent = this.inputComponentRef();\r\n\r\n    if (!control || !inputComponent) {\r\n      console.error('No control or input component found!');\r\n      return;\r\n    }\r\n\r\n    const getErrors = () => {\r\n      const controlErrors = control.errors;\r\n      const componentErrors = inputComponent?.control?.errors;\r\n\r\n      if (!controlErrors && !componentErrors) {\r\n        return null;\r\n      }\r\n\r\n      return controlErrors;\r\n    };\r\n\r\n    const setComponentErrors = (errors: ValidationErrors | null) => {\r\n      inputComponent.control?.setErrors(errors);\r\n      inputComponent.setErrors(errors);\r\n    };\r\n\r\n    const handleHideErrorsValueChange = (hide: boolean | undefined) => {\r\n      inputComponent.hideErrorMessage.set(hide);\r\n\r\n      if (hide === false) {\r\n        this.updateControlStatus('setDirty');\r\n        this.updateControlStatus('setTouched');\r\n      }\r\n    };\r\n\r\n    // Propagate the initial errors to the CustomControlComponent\r\n    setComponentErrors(getErrors());\r\n\r\n    combineLatest([\r\n      this.hideErrorMessage$,\r\n      control.statusChanges.pipe(startWith(control.status)),\r\n    ])\r\n      .pipe(\r\n        tap(([hideErrors]) => {\r\n          const errors = hideErrors ? null : getErrors();\r\n\r\n          setComponentErrors(errors);\r\n          handleHideErrorsValueChange(hideErrors);\r\n        }),\r\n        takeUntilDestroyed(this.destroyRef),\r\n      )\r\n      .subscribe();\r\n  }\r\n}\r\n","<div\r\n  class=\"input-container\"\r\n  [ngClass]=\"{\r\n    disabled: !useCustomLoading() && loading(),\r\n    hidden: useCustomLoading() && loading(),\r\n  }\"\r\n>\r\n  <!-- Input template -->\r\n  <ng-container\r\n    [ngTemplateOutlet]=\"customInputTemplate()\"\r\n    [ngTemplateOutletContext]=\"{\r\n      control: control(),\r\n      data,\r\n      hostForm,\r\n      hideErrorMessage: hideErrorMessage$.value,\r\n    }\"\r\n  ></ng-container>\r\n\r\n  <!-- Input component -->\r\n  <ng-container #inputComponentAnchor></ng-container>\r\n</div>\r\n\r\n<div class=\"loading-container\" [ngClass]=\"{ hidden: !loading() }\">\r\n  <!-- Loading component -->\r\n  <ng-container *ngComponentOutlet=\"loadingComponent\"></ng-container>\r\n\r\n  <!-- Loading template -->\r\n  <ng-container [ngTemplateOutlet]=\"loadingTemplate\"> </ng-container>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport {\r\n  Component,\r\n  ElementRef,\r\n  effect,\r\n  inject,\r\n  input,\r\n  viewChild,\r\n  viewChildren,\r\n} from '@angular/core';\r\nimport { ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\r\nimport { getClassListFromString } from '../../../core/utilities/get-class-list-from-string';\r\nimport { getStyleListFromString } from '../../../core/utilities/get-style-list-from-string';\r\nimport { ControlLayoutDirective } from '../../directives/control-layout.directive';\r\nimport { HostIdDirective } from '../../directives/host-id.directive';\r\nimport { FormControlConfig, FormStatusFunctions } from '../../models';\r\nimport { FormLayout } from '../../models/form-layout.interface';\r\nimport { ControlTypeByConfigPipe } from '../../pipes/control-type-by-config.pipe';\r\nimport { GlobalVariableService } from '../../services/global-variable.service';\r\nimport { ContentWrapperComponent } from '../content-wrapper/content-wrapper.component';\r\nimport { FormControlComponent } from '../form-control/form-control.component';\r\n\r\n@Component({\r\n  selector: 'form-group',\r\n  imports: [\r\n    CommonModule,\r\n    ReactiveFormsModule,\r\n    ContentWrapperComponent,\r\n    HostIdDirective,\r\n    ControlLayoutDirective,\r\n    FormControlComponent,\r\n    ControlTypeByConfigPipe,\r\n  ],\r\n  templateUrl: './form-group.component.html',\r\n  host: {\r\n    class: 'grid-container form-group-container',\r\n  },\r\n})\r\nexport class FormGroupComponent {\r\n  private el = inject(ElementRef);\r\n  private globalVariableService = inject(GlobalVariableService);\r\n\r\n  readonly customComponents = this.globalVariableService.customComponents;\r\n\r\n  configs = input<FormControlConfig[]>();\r\n  collapsibleState = input<FormLayout['contentCollapsible']>();\r\n  parentId = input<string>();\r\n  parentForm = input.required<UntypedFormGroup>();\r\n  rootClass = input<string>();\r\n  rootStyles = input<string>();\r\n\r\n  contentWrapperRefs = viewChildren(ContentWrapperComponent);\r\n  contentWrapperEl = viewChild(ContentWrapperComponent, {\r\n    read: ElementRef,\r\n  });\r\n  formGroupRefs = viewChildren(FormGroupComponent);\r\n  formControlRefs = viewChildren(FormControlComponent);\r\n\r\n  updateClassList = effect(() => {\r\n    const host = this.el.nativeElement as HTMLElement;\r\n    const rootClass = this.rootClass();\r\n\r\n    if (!rootClass) {\r\n      return;\r\n    }\r\n\r\n    const classList = getClassListFromString(rootClass);\r\n    host.classList.add(...classList);\r\n  });\r\n\r\n  updateStyleList = effect(() => {\r\n    const host = this.el.nativeElement as HTMLElement;\r\n    const rootStyles = this.rootStyles();\r\n\r\n    if (!rootStyles) {\r\n      return;\r\n    }\r\n\r\n    const styleList = getStyleListFromString(rootStyles);\r\n\r\n    for (const item of styleList) {\r\n      const [name, value] = item.split(':');\r\n      host.style.setProperty(name, value);\r\n    }\r\n  });\r\n\r\n  updateStatus(type: keyof FormStatusFunctions): void {\r\n    this.contentWrapperRefs()?.forEach((x) => x.updateControlStatus());\r\n    this.formControlRefs()?.forEach((x) => x.updateControlStatus(type));\r\n    this.formGroupRefs()?.forEach((x) => x.updateStatus(type));\r\n  }\r\n}\r\n","@if (parentForm(); as pForm) {\r\n  <ng-container [formGroup]=\"pForm\">\r\n    @for (item of configs(); track `${$index}_${item.formControlName}`) {\r\n      @if (!item.hidden) {\r\n        @if (pForm.controls[item.formControlName]; as targetControl) {\r\n          <content-wrapper\r\n            style=\"display: block\"\r\n            [config]=\"item\"\r\n            [control]=\"targetControl\"\r\n            [collapsibleState]=\"collapsibleState()\"\r\n            [controlLayout]=\"{\r\n              type: 'host',\r\n              layout: item.layout,\r\n            }\"\r\n            [hostId]=\"{\r\n              parentId: parentId(),\r\n              controlName: item.formControlName,\r\n            }\"\r\n            [ngClass]=\"{\r\n              'form-control-container':\r\n                (item | controlTypeByConfig) === 'FormControl',\r\n              readonly: item.readonly,\r\n            }\"\r\n          >\r\n            <!-- FormControl -->\r\n            @if ((item | controlTypeByConfig) === \"FormControl\") {\r\n              <form-control\r\n                [data]=\"item\"\r\n                [control]=\"targetControl\"\r\n                [formControlName]=\"item.formControlName\"\r\n                [customComponent]=\"customComponents?.[item.formControlName]\"\r\n                [controlLayout]=\"{\r\n                  type: 'inputArea',\r\n                  layout: item.layout,\r\n                }\"\r\n              ></form-control>\r\n            }\r\n            <!-- FormGroup -->\r\n            @if ((item | controlTypeByConfig) === \"FormGroup\") {\r\n              <form-group\r\n                [parentId]=\"\r\n                  (parentId() ? parentId() + '.' : '') + item.formControlName\r\n                \"\r\n                [parentForm]=\"$any(targetControl)\"\r\n                [configs]=\"item.children\"\r\n                [collapsibleState]=\"collapsibleState()\"\r\n                [controlLayout]=\"{\r\n                  type: 'formGroup',\r\n                  layout: item.layout,\r\n                }\"\r\n              ></form-group>\r\n            }\r\n          </content-wrapper>\r\n        }\r\n      }\r\n    }\r\n  </ng-container>\r\n}\r\n","import { InjectionToken, Provider, Type } from '@angular/core';\r\nimport { CustomErrorMessage } from '../components/custom-error-message/custom-error-message.abstract';\r\nimport { CustomFormLabel } from '../components/custom-form-label/custom-form-label.abstract';\r\nimport { CustomValidators, FormControlType, UiComponents } from '../models';\r\nimport { CustomAsyncValidators } from '../models/custom-async-validators.type';\r\n\r\nexport interface FormConfig {\r\n  /**\r\n   * User defined custom validators. Use `name` as the key to map target ValidatorFn.\r\n   *\r\n   * Config:\r\n   * ```json\r\n   * {\r\n   *    ...\r\n   *    \"validators\": [\r\n   *      { \"name\": \"firstUppercase\" }\r\n   *    ]\r\n   * }\r\n   * ```\r\n   *\r\n   * TS:\r\n   * ```ts\r\n   * validators = {\r\n   *    firstUppercase: firstUppercaseValidator,\r\n   *    url: urlValidator,\r\n   *    ...\r\n   * }\r\n   * ```\r\n   *\r\n   * HTML:\r\n   * ```html\r\n   * <ng-dynamic-json-form\r\n   *  [configs]=\"...\"\r\n   *  [customValidators]=\"validators\"\r\n   * ></ng-dynamic-json-form>\r\n   * ```\r\n   */\r\n  customValidators?: CustomValidators;\r\n  /**\r\n   * User defined custom async validators. Similar to custom validators.\r\n   *\r\n   * Config:\r\n   * ```json\r\n   * {\r\n   *    ...\r\n   *    \"asyncValidators\": [\r\n   *      ...\r\n   *    ]\r\n   * }\r\n   * ```\r\n   *\r\n   * TS:\r\n   * ```ts\r\n   * asyncValidators = {\r\n   *    ...\r\n   * }\r\n   * ```\r\n   *\r\n   * HTML:\r\n   * ```html\r\n   * <ng-dynamic-json-form\r\n   *  [configs]=\"...\"\r\n   *  [customAsyncValidators]=\"validators\"\r\n   * ></ng-dynamic-json-form>\r\n   * ```\r\n   */\r\n  customAsyncValidators?: CustomAsyncValidators;\r\n  /**\r\n   * If the key is matched with `type` in the config, then the corresponding component will be used.\r\n   *\r\n   * ```ts\r\n   * config = {\r\n   *  ...\r\n   *  type: \"file\"\r\n   * }\r\n   *\r\n   * uiComponents = {\r\n   *  file: InputFileComponent\r\n   * }\r\n   * ```\r\n   */\r\n  uiComponents?: UiComponents;\r\n  /**\r\n   * Default validation message to use for the specific validator in the entire form.\r\n   */\r\n  validationMessages?: { [validatorName: string]: string };\r\n  /**\r\n   * Custom component for all labels in this form\r\n   */\r\n  labelComponent?: Type<CustomFormLabel>;\r\n  /**\r\n   * Custom component for all loadings in this form\r\n   */\r\n  loadingComponent?: Type<any>;\r\n  /**\r\n   * Custom component for all errors in this form\r\n   */\r\n  errorComponent?: Type<CustomErrorMessage>;\r\n  /**\r\n   * Hide the error message for specific type of UI components\r\n   */\r\n  hideErrorsForTypes?: FormControlType[];\r\n  showErrorsOnTouched?: boolean;\r\n}\r\n\r\nexport const NG_DYNAMIC_JSON_FORM_CONFIG = new InjectionToken<FormConfig>(\r\n  'ng-dynamic-json-form-config'\r\n);\r\n\r\nexport function provideNgDynamicJsonForm(config?: FormConfig): Provider {\r\n  return {\r\n    provide: NG_DYNAMIC_JSON_FORM_CONFIG,\r\n    useValue: config,\r\n  };\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport {\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  DestroyRef,\r\n  ElementRef,\r\n  Injector,\r\n  TemplateRef,\r\n  Type,\r\n  computed,\r\n  effect,\r\n  forwardRef,\r\n  inject,\r\n  input,\r\n  output,\r\n  signal,\r\n  untracked,\r\n  viewChild,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport {\r\n  ControlValueAccessor,\r\n  FormControlDirective,\r\n  NG_ASYNC_VALIDATORS,\r\n  NG_VALUE_ACCESSOR,\r\n  NgControl,\r\n  UntypedFormGroup,\r\n  ValidationErrors,\r\n  Validator,\r\n} from '@angular/forms';\r\nimport {\r\n  EMPTY,\r\n  Observable,\r\n  Subject,\r\n  filter,\r\n  map,\r\n  merge,\r\n  of,\r\n  startWith,\r\n  take,\r\n  takeUntil,\r\n  tap,\r\n} from 'rxjs';\r\nimport { CustomErrorMessage } from './components/custom-error-message/custom-error-message.abstract';\r\nimport { CustomFormLabel } from './components/custom-form-label/custom-form-label.abstract';\r\nimport { FormGroupComponent } from './components/form-group/form-group.component';\r\nimport { CustomComponents, FormControlConfig, OptionItem } from './models';\r\nimport { ConditionsActionFunctions } from './models/conditions-action-functions.interface';\r\nimport { CustomErrorComponents } from './models/custom-error-components.type';\r\nimport { CustomLabelComponents } from './models/custom-label-components.type';\r\nimport { CustomTemplates } from './models/custom-templates.type';\r\nimport { FormDisplayValue } from './models/form-display-value.interface';\r\nimport { FormLayout } from './models/form-layout.interface';\r\nimport { FormStatusFunctions } from './models/form-status-functions.interface';\r\nimport { NG_DYNAMIC_JSON_FORM_CONFIG } from './providers/ng-dynamic-json-form.provider';\r\nimport {\r\n  ConfigMappingService,\r\n  ConfigValidationService,\r\n  FormConditionsService,\r\n  FormGeneratorService,\r\n  FormValidationService,\r\n  FormValueService,\r\n  GlobalVariableService,\r\n  HostEventService,\r\n  HttpRequestCacheService,\r\n  OptionsDataService,\r\n} from './services';\r\nimport { FormReadyStateService } from './services/form-ready-state.service';\r\nimport { UI_BASIC_COMPONENTS } from './ui-basic/ui-basic-components.constant';\r\nimport { getControlErrors } from './utilities/get-control-errors';\r\n\r\n@Component({\r\n  selector: 'ng-dynamic-json-form',\r\n  templateUrl: './ng-dynamic-json-form.component.html',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  imports: [CommonModule, FormGroupComponent],\r\n  host: {\r\n    class: 'ng-dynamic-json-form',\r\n  },\r\n  providers: [\r\n    ConfigValidationService,\r\n    ConfigMappingService,\r\n    FormGeneratorService,\r\n    FormConditionsService,\r\n    FormValidationService,\r\n    FormValueService,\r\n    FormReadyStateService,\r\n    GlobalVariableService,\r\n    HttpRequestCacheService,\r\n    OptionsDataService,\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => NgDynamicJsonFormComponent),\r\n      multi: true,\r\n    },\r\n    {\r\n      provide: NG_ASYNC_VALIDATORS,\r\n      useExisting: forwardRef(() => NgDynamicJsonFormComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class NgDynamicJsonFormComponent\r\n  implements ControlValueAccessor, Validator\r\n{\r\n  private providerConfig = inject(NG_DYNAMIC_JSON_FORM_CONFIG, {\r\n    optional: true,\r\n  });\r\n  private cd = inject(ChangeDetectorRef);\r\n  private el = inject(ElementRef);\r\n  private injector = inject(Injector);\r\n  private destroyRef = inject(DestroyRef);\r\n  private configValidationService = inject(ConfigValidationService);\r\n  private formGeneratorService = inject(FormGeneratorService);\r\n  private formConditionsService = inject(FormConditionsService);\r\n  private formValueService = inject(FormValueService);\r\n  private formReadyStateService = inject(FormReadyStateService);\r\n  private globalVariableService = inject(GlobalVariableService);\r\n  private optionsDataService = inject(OptionsDataService);\r\n  private hostEventService = inject(HostEventService);\r\n\r\n  private controlDirective: FormControlDirective | null = null;\r\n  /**\r\n   * Whether to allow the form to mark as dirty\r\n   * @description\r\n   * If false, then it will automatically set to pristine\r\n   * after each value changes.\r\n   */\r\n  private allowFormDirty = signal<boolean>(false);\r\n  private globalVariablesInitialized = signal<boolean>(false);\r\n  private reset$ = new Subject<void>();\r\n\r\n  private onTouched = () => {};\r\n  private onChangeFn = (_: any) => {};\r\n\r\n  private buildFormComplete = signal<boolean>(false);\r\n\r\n  configs = input<FormControlConfig[] | string>();\r\n  /**\r\n   * User defined custom components. Use `formControlName` as the key to map target component.\r\n   *\r\n   * @example\r\n   * // Config\r\n   * {\r\n   *    ...\r\n   *    \"formControlName\": \"compA\"\r\n   * }\r\n   *\r\n   * // TS\r\n   * components = {\r\n   *    compA: YourComponentA,\r\n   *    compB: YourComponentB,\r\n   *    ...\r\n   * }\r\n   */\r\n  customComponents = input<CustomComponents>();\r\n  /**\r\n   * Custom templates for input, using `formControlName` as the key.\r\n   * Use this if creating a custom component is way too much.\r\n   *\r\n   * The template variables available:\r\n   * - `control` The FormControl for this input\r\n   * - `data` The config for this input\r\n   */\r\n  customTemplates = input<CustomTemplates>();\r\n  /**\r\n   * Functions to execute when conditions is met.\r\n   * @description\r\n   * - When there's condition met, the function with key that match will be called.\r\n   * - The function contains an optional argument, which is the control of where the conditions will affect to.\r\n   */\r\n  conditionsActionFunctions = input<ConditionsActionFunctions>();\r\n\r\n  collapsibleState = input<FormLayout['contentCollapsible']>();\r\n  descriptionPosition = input<FormLayout['descriptionPosition']>();\r\n  rootClass = input<string>();\r\n  rootStyles = input<string>();\r\n  hideErrorMessage = input<boolean | undefined>(undefined);\r\n\r\n  // Custom error components/templates\r\n  errorComponents = input<CustomErrorComponents>();\r\n  errorComponentDefault = input<Type<CustomErrorMessage>>();\r\n  errorTemplates = input<CustomTemplates>();\r\n  errorTemplateDefault = input<TemplateRef<any>>();\r\n\r\n  // Custom label components/templates\r\n  labelComponents = input<CustomLabelComponents>();\r\n  labelComponentDefault = input<Type<CustomFormLabel>>();\r\n  labelTemplates = input<CustomTemplates>();\r\n  labelTemplateDefault = input<TemplateRef<any>>();\r\n\r\n  // Custom loading components/templates\r\n  loadingComponent = input<Type<any>>();\r\n  loadingTemplate = input<TemplateRef<any>>();\r\n  /**\r\n   * Custom observables for the options\r\n   * @description\r\n   * The observable with key that match with the `src` will be used.\r\n   *\r\n   * @example\r\n   * ```ts\r\n   * optionsSources = {\r\n   *    'getCountries': ...\r\n   * }\r\n   *\r\n   * config = {\r\n   *  ...\r\n   *  options: {\r\n   *    ...\r\n   *    src: 'getCountries'\r\n   *  }\r\n   * }\r\n   * ```\r\n   */\r\n  optionsSources = input<{ [key: string]: Observable<OptionItem[]> }>();\r\n\r\n  formGet = output<UntypedFormGroup>();\r\n  /**\r\n   * The value change event of the form, which trigger by the user\r\n   * (by checking click or keydown event)\r\n   */\r\n  onChange = output<any>();\r\n  optionsLoaded = output<void>();\r\n  displayValue = output<FormDisplayValue>();\r\n  updateStatusFunctions = output<FormStatusFunctions>();\r\n\r\n  formGroupRef = viewChild(FormGroupComponent);\r\n\r\n  form = signal<UntypedFormGroup | undefined>(undefined);\r\n\r\n  configValidationResult = computed(() => {\r\n    const configs = this.configs();\r\n\r\n    if (!configs?.length) {\r\n      return undefined;\r\n    }\r\n\r\n    return this.configValidationService.validateAndGetConfig(configs);\r\n  });\r\n\r\n  buildForm = effect(() => {\r\n    const globalVariablesInitialized = this.globalVariablesInitialized();\r\n    const { configs } = this.configValidationResult() ?? {};\r\n\r\n    if (\r\n      typeof window === 'undefined' ||\r\n      !globalVariablesInitialized ||\r\n      !configs?.length\r\n    ) {\r\n      return;\r\n    }\r\n\r\n    untracked(() => {\r\n      const form = this.formGeneratorService.generateFormGroup(configs);\r\n\r\n      this.reset();\r\n\r\n      // Setting up the global variables\r\n      this.globalVariableService.rootForm = form;\r\n      this.globalVariableService.rootConfigs = configs;\r\n\r\n      // Instantiate the form component\r\n      this.form.set(form);\r\n\r\n      // After the form component is instantiated, start the event listeners\r\n      this.setupListeners();\r\n\r\n      this.cd.markForCheck();\r\n\r\n      // Because at this time the form is just instantiate, it needs time to init the view.\r\n      // Everything inside `queryMicrotask` only works in the next tick.\r\n      queueMicrotask(() => {\r\n        this.formConditionsService.executeConditions();\r\n        this.formGet.emit(form);\r\n\r\n        // Put this inside is only for the purpose to prevent it gets earlier than `formGet`,\r\n        // to prevent user call this function while form is just instantiated.\r\n        this.updateStatusFunctions.emit({\r\n          setDirty: () => this.updateFormStatus('setDirty'),\r\n          setPristine: () => this.updateFormStatus('setPristine'),\r\n          setTouched: () => this.updateFormStatus('setTouched'),\r\n          setUntouched: () => this.updateFormStatus('setUntouched'),\r\n        });\r\n\r\n        this.buildFormComplete.set(true);\r\n      });\r\n    });\r\n  });\r\n\r\n  handleOptionsReady = effect(() => {\r\n    const { configs } = this.configValidationResult() ?? {};\r\n    const buildFormComplete = this.buildFormComplete();\r\n    const needWaiting = this.formReadyStateService.haveOptionsToWait(\r\n      configs ?? [],\r\n    );\r\n\r\n    const ready = this.formReadyStateService.optionsReady();\r\n\r\n    if (!buildFormComplete) {\r\n      return;\r\n    }\r\n\r\n    if (!needWaiting) {\r\n      this.optionsLoaded.emit();\r\n    } else if (ready) {\r\n      this.optionsLoaded.emit();\r\n    }\r\n  });\r\n\r\n  handleHideErrorMessageValueChange = effect(() => {\r\n    this.globalVariableService.hideErrorMessage$.next(this.hideErrorMessage());\r\n  });\r\n\r\n  constructor() {\r\n    this.hostEventService\r\n      .start$(this.el.nativeElement)\r\n      .pipe(takeUntilDestroyed())\r\n      .subscribe();\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.setupVariables();\r\n    this.getControlDirective();\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.reset$.next();\r\n    this.reset$.complete();\r\n    this.optionsDataService.onDestroy();\r\n  }\r\n\r\n  validate(): Observable<ValidationErrors | null> {\r\n    const form = this.form();\r\n\r\n    if (!form || form.valid) {\r\n      return of(null);\r\n    }\r\n\r\n    return form.statusChanges.pipe(\r\n      startWith(form.status),\r\n      filter((x) => x !== 'PENDING'),\r\n      take(1),\r\n      map(() => this.formErrors),\r\n    );\r\n  }\r\n\r\n  registerOnValidatorChange?(fn: () => void): void {}\r\n\r\n  writeValue(obj: any): void {\r\n    const form = this.form();\r\n\r\n    this.formValueService.patchForm(form, obj);\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChangeFn = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    const form = this.form();\r\n    isDisabled ? form?.disable() : form?.enable();\r\n  }\r\n\r\n  private setupVariables(): void {\r\n    const {\r\n      errorComponent,\r\n      labelComponent,\r\n      loadingComponent,\r\n      uiComponents,\r\n      ...providerProps\r\n    } = this.providerConfig ?? {};\r\n\r\n    this.globalVariableService.setup({\r\n      customValidators: providerProps.customValidators,\r\n      customAsyncValidators: providerProps.customAsyncValidators,\r\n      customComponents: this.customComponents(),\r\n      customTemplates: this.customTemplates(),\r\n      conditionsActionFunctions: this.conditionsActionFunctions(),\r\n      descriptionPosition: this.descriptionPosition(),\r\n      errorComponentDefault: this.errorComponentDefault() ?? errorComponent,\r\n      errorComponents: this.errorComponents(),\r\n      errorTemplates: this.errorTemplates(),\r\n      errorTemplateDefault: this.errorTemplateDefault(),\r\n      hostElement: this.el.nativeElement,\r\n      hideErrorsForTypes: providerProps.hideErrorsForTypes,\r\n      labelComponentDefault: this.labelComponentDefault() ?? labelComponent,\r\n      labelComponents: this.labelComponents(),\r\n      labelTemplates: this.labelTemplates(),\r\n      labelTemplateDefault: this.labelTemplateDefault(),\r\n      loadingComponent: this.loadingComponent() ?? loadingComponent,\r\n      loadingTemplate: this.loadingTemplate(),\r\n      optionsSources: this.optionsSources(),\r\n      showErrorsOnTouched: providerProps.showErrorsOnTouched ?? true,\r\n      uiComponents: {\r\n        ...UI_BASIC_COMPONENTS,\r\n        ...uiComponents,\r\n      },\r\n      validationMessages: providerProps.validationMessages,\r\n    });\r\n\r\n    this.globalVariablesInitialized.set(true);\r\n  }\r\n\r\n  private getControlDirective(): void {\r\n    this.controlDirective = this.injector.get(NgControl, null, {\r\n      optional: true,\r\n      self: true,\r\n    }) as FormControlDirective;\r\n  }\r\n\r\n  private setupListeners(): void {\r\n    const form = this.form();\r\n\r\n    if (!form || typeof window === 'undefined') {\r\n      return;\r\n    }\r\n\r\n    const conditions$ = this.formConditionsService.listenConditions$();\r\n    const valueChanges$ = this.formValueChanges$();\r\n\r\n    // Avoid using `debounceTime()` or `distinctUntilChanged()` here\r\n    const statusChanges$ = form.statusChanges.pipe(\r\n      startWith(form.status),\r\n      tap(() => {\r\n        const errors = this.formErrors;\r\n\r\n        // setErrors() again after statusChanges, to get the correct errors after\r\n        // the re-validation if there are any async validators.\r\n        form?.setErrors(errors, {\r\n          emitEvent: false, // prevent maximum call stack exceeded\r\n        });\r\n      }),\r\n    );\r\n\r\n    const onTouched$ = this.hostEventService.focusOut$.pipe(\r\n      take(1),\r\n      tap(() => this.onTouched()),\r\n    );\r\n\r\n    const allowDirtyState$ = merge(\r\n      this.hostEventService.pointerDown$,\r\n      this.hostEventService.keyDown$,\r\n    ).pipe(\r\n      take(1),\r\n      tap(() => this.allowFormDirty.set(true)),\r\n    );\r\n\r\n    merge(\r\n      allowDirtyState$,\r\n      conditions$,\r\n      onTouched$,\r\n      statusChanges$,\r\n      valueChanges$,\r\n    )\r\n      .pipe(takeUntil(this.reset$), takeUntilDestroyed(this.destroyRef))\r\n      .subscribe();\r\n  }\r\n\r\n  private reset(): void {\r\n    this.reset$.next();\r\n    this.form.set(undefined);\r\n    this.allowFormDirty.set(false);\r\n    this.buildFormComplete.set(false);\r\n\r\n    this.optionsDataService.cancelAllRequest();\r\n    this.formReadyStateService.resetState();\r\n    this.controlDirective?.control.markAsUntouched();\r\n    this.controlDirective?.form.markAsUntouched();\r\n  }\r\n\r\n  private updateFormStatus(type: keyof FormStatusFunctions): void {\r\n    const form = this.formGroupRef();\r\n\r\n    if (!form) {\r\n      return;\r\n    }\r\n\r\n    form.updateStatus(type);\r\n  }\r\n\r\n  private formValueChanges$(): Observable<any> {\r\n    const form = this.form();\r\n\r\n    if (!form) {\r\n      return EMPTY;\r\n    }\r\n\r\n    const { configs } = this.configValidationResult() ?? {};\r\n\r\n    const updateValue = () => {\r\n      const allowDirty = this.allowFormDirty();\r\n      const value = form.value;\r\n\r\n      if (this.controlDirective) {\r\n        this.onChangeFn(value);\r\n      }\r\n\r\n      if (allowDirty) {\r\n        this.onChange.emit(value);\r\n      }\r\n    };\r\n\r\n    const updateDisplayValue = () => {\r\n      const displayValue = this.formValueService.getFormDisplayValue(\r\n        form.value,\r\n        configs || [],\r\n      );\r\n\r\n      this.displayValue.emit(displayValue);\r\n    };\r\n\r\n    const keepFormPristine = () => {\r\n      const allowDirty = this.allowFormDirty();\r\n\r\n      if (allowDirty) {\r\n        return;\r\n      }\r\n\r\n      this.updateFormStatus('setPristine');\r\n      this.controlDirective?.control.markAsPristine();\r\n    };\r\n\r\n    // Avoid using `debounceTime()` or `distinctUntilChanged()` here\r\n    return form.valueChanges.pipe(\r\n      startWith(form.value),\r\n      tap(() => {\r\n        const errors = this.formErrors;\r\n\r\n        //`setErrors()` must be called first, so that the form errors\r\n        // is correctly set when `onChange` callback is called\r\n        form.setErrors(errors);\r\n        updateValue();\r\n        updateDisplayValue();\r\n        keepFormPristine();\r\n      }),\r\n    );\r\n  }\r\n\r\n  /**\r\n   * Use getter function to make everything works fine,\r\n   * don't use computed signal\r\n   */\r\n  private get formErrors() {\r\n    const form = this.form();\r\n\r\n    if (!form) {\r\n      return null;\r\n    }\r\n\r\n    const errors = getControlErrors(form);\r\n    return errors;\r\n  }\r\n}\r\n","@if (!configs()) {\r\n  <div class=\"no-configs-error\">\r\n    <span>No configs found.</span>\r\n  </div>\r\n}\r\n\r\n@if (configValidationResult(); as result) {\r\n  @if (result.errors; as validationErrors) {\r\n    <div class=\"config-validation-error\">\r\n      <div>NgDynamicJsonForm:</div>\r\n      @for (item of validationErrors; track $index) {\r\n        <div style=\"color: var(--color-error)\">{{ item.errors }}</div>\r\n        @if (item.config) {\r\n          <code>{{ item.config | json }}</code>\r\n        }\r\n      }\r\n    </div>\r\n  } @else if (result.configs && form()) {\r\n    <form-group\r\n      [configs]=\"result.configs\"\r\n      [collapsibleState]=\"collapsibleState()\"\r\n      [parentForm]=\"form()!\"\r\n      [rootClass]=\"rootClass()\"\r\n      [rootStyles]=\"rootStyles()\"\r\n    ></form-group>\r\n  }\r\n}\r\n","/*\r\n * Public API Surface of ng-dynamic-json-form\r\n */\r\n\r\nexport * from './core/components/custom-control/custom-control.component';\r\nexport * from './core/components/custom-error-message/custom-error-message.abstract';\r\nexport * from './core/components/custom-form-label/custom-form-label.abstract';\r\nexport * from './core/directives';\r\nexport * from './core/models';\r\nexport * from './core/ng-dynamic-json-form.component';\r\nexport * from './core/providers/ng-dynamic-json-form.provider';\r\nexport * from './core/providers/props-binding.provider';\r\nexport * from './core/services';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}