{"version":3,"file":"schemater-core.mjs","sources":["../../../projects/schemater/src/lib/core/models/schemater-config.ts","../../../projects/schemater/src/lib/core/fields/component-placeholder/component-placeholder.component.ts","../../../projects/schemater/src/lib/core/services/component-factory.service.ts","../../../projects/schemater/src/lib/core/fields/view/services/component-resolver.service.ts","../../../projects/schemater/src/lib/core/fields/view/schemater-view-field/schemater-view-field.component.ts","../../../projects/schemater/src/lib/core/services/component-config.service.ts","../../../projects/schemater/src/lib/core/fields/view/config/view-config.service.ts","../../../projects/schemater/src/lib/core/fields/view/view.module.ts","../../../projects/schemater/src/lib/core/fields/input/services/component-resolver.service.ts","../../../projects/schemater/src/lib/core/validators/schemater-validators.service.ts","../../../projects/schemater/src/lib/core/logger/logger.service.ts","../../../projects/schemater/src/lib/core/services/schemater-field-adder.service.ts","../../../projects/schemater/src/lib/core/fields/input/schemater-input-field/schemater-input-field.component.ts","../../../projects/schemater/src/lib/core/fields/input/config/input-config.service.ts","../../../projects/schemater/src/lib/core/fields/input/input.module.ts","../../../projects/schemater/src/lib/core/fields/search/services/search-component-resolver.service.ts","../../../projects/schemater/src/lib/core/fields/search/services/schemater-search-file-adder.service.ts","../../../projects/schemater/src/lib/core/fields/search/schemater-search-field/schemater-search-field.component.ts","../../../projects/schemater/src/lib/core/fields/search/search.module.ts","../../../projects/schemater/src/lib/core/pipes/iterate-over-keys/iterate-over-keys.pipe.ts","../../../projects/schemater/src/lib/core/directives/init-focus.directive.ts","../../../projects/schemater/src/lib/core/input-form/services/layout-component-resolver.service.ts","../../../projects/schemater/src/lib/core/input-form/schemater-input-form-layout/schemater-input-form-layout.component.ts","../../../projects/schemater/src/lib/core/services/schemater-form-group-builder.service.ts","../../../projects/schemater/src/lib/core/input-form/schemater-input-form/schemater-input-form.component.ts","../../../projects/schemater/src/lib/core/input-form/schemater-input-form/schemater-input-form.component.html","../../../projects/schemater/src/lib/core/input-form/input-form.module.ts","../../../projects/schemater/src/lib/core/search-form/services/layout-component-resolver.service.ts","../../../projects/schemater/src/lib/core/search-form/schemater-search-form-layout/schemater-search-form-layout.component.ts","../../../projects/schemater/src/lib/core/search-form/schemater-search-form/schemater-search-form.component.ts","../../../projects/schemater/src/lib/core/search-form/schemater-search-form/schemater-search-form.component.html","../../../projects/schemater/src/lib/core/search-form/search-form.module.ts","../../../projects/schemater/src/lib/core/directives/attributes-common.directive.ts","../../../projects/schemater/src/lib/core/directives/attribute-placeholder.directive.ts","../../../projects/schemater/src/lib/core/schemater-tokens.ts","../../../projects/schemater/src/lib/core/validators/validation-messges.service.ts","../../../projects/schemater/src/lib/core/schemater-feature.module.ts","../../../projects/schemater/src/lib/core/schemater.module.ts","../../../projects/schemater/src/lib/core/layout/SchematerInputFormLayout.ts","../../../projects/schemater/src/lib/core/fields/input/fields/SchematerInputField.ts","../../../projects/schemater/src/lib/core/fields/search/fields/SchematerSearchField.ts","../../../projects/schemater/src/lib/core/fields/search/fields/SchematerSearchFieldWithSelectOperator.ts","../../../projects/schemater/src/lib/core/fields/search/models/search-value.ts","../../../projects/schemater/src/lib/core/fields/view/fields/SchematerViewField.ts","../../../projects/schemater/src/public_api.ts","../../../projects/schemater/src/schemater-core.ts"],"sourcesContent":["import {SchematerValidators, SchematerValidatorsConfig} from './schemater-validators-config';\r\nimport {LoggerService} from \"../logger/logger.service\";\r\n\r\nexport enum ConfigKeys {\r\n  viewComponents = 'viewComponents',\r\n  inputComponents = 'inputComponents',\r\n  searchComponents = 'searchComponents',\r\n  layoutComponents = 'layoutComponents'\r\n}\r\n\r\nexport class SchematerFeatureConfig {\r\n  viewComponents?: SchematerComponentConfig[];\r\n  inputComponents?: SchematerInputComponentConfig[];\r\n  searchComponents?: SchematerComponentConfig[];\r\n  inputLayoutComponents?: SchematerComponentConfig[];\r\n  searchLayoutComponents?: SchematerComponentConfig[];\r\n  validationMessages?: {\r\n    [s: string]: string;\r\n  };\r\n  validators?: SchematerValidators;\r\n}\r\nexport class SchematerConfig extends SchematerFeatureConfig {\r\n  loggerService?: LoggerService | any;\r\n}\r\n\r\nexport interface SchematerComponentConfig {\r\n  name: string;\r\n  component: any;\r\n}\r\n\r\nexport interface SchematerInputComponentConfig extends SchematerComponentConfig {\r\n  defaultValue?: any;\r\n  validators?: SchematerValidatorsConfig;\r\n  isFormGroup?: boolean;\r\n  isFormArray?: boolean;\r\n}\r\n","import {Component} from '@angular/core';\r\n\r\n@Component({\r\n  template: `<span style=\"font-style: italic;\">No component placeholder</span>`\r\n})\r\nexport class ComponentPlaceholderComponent {\r\n}\r\n","import { ComponentFactory, ComponentFactoryResolver, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ComponentFactoryService {\r\n  constructor(protected componentFactoryResolver: ComponentFactoryResolver) {}\r\n\r\n  public createComponent(component): ComponentFactory<any> {\r\n    return this.componentFactoryResolver.resolveComponentFactory<any>(component);\r\n  }\r\n}\r\n","import {ComponentFactory, Injectable} from '@angular/core';\r\nimport {ComponentFactoryService} from '../../../services/component-factory.service';\r\nimport {SchematerComponentConfig, SchematerConfig} from '../../../models/schemater-config';\r\nimport {ComponentPlaceholderComponent} from '../../component-placeholder/component-placeholder.component';\r\n\r\n@Injectable()\r\nexport class ComponentResolverService {\r\n  constructor(protected componentFactoryService: ComponentFactoryService, protected config: SchematerConfig) {\r\n  }\r\n\r\n  createComponent(type: string): ComponentFactory<any> {\r\n    if (!type) {\r\n      throw new Error('Choose component type for view');\r\n    }\r\n    const components = this.config.viewComponents;\r\n    if (!components || components.length === 0) {\r\n      throw new Error('Define view components in `forRoot` of SchematerModule using `viewComponents`');\r\n    }\r\n    const component: SchematerComponentConfig = components.find((item: any) => {\r\n      if (item.name === type) {\r\n        return item;\r\n      }\r\n    });\r\n    if (!component) {\r\n      console.warn('No view component definition for type ' + type);\r\n      return this.componentFactoryService.createComponent(ComponentPlaceholderComponent);\r\n    }\r\n    return this.componentFactoryService.createComponent(component.component);\r\n  }\r\n}\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  ComponentRef,\r\n  DoCheck,\r\n  Input,\r\n  OnInit,\r\n  ViewChild,\r\n  ViewContainerRef\r\n} from '@angular/core';\r\nimport {SchematerFieldConfig} from '../../../models/schemater-field-config';\r\nimport {ComponentResolverService} from '../services/component-resolver.service';\r\n\r\n@Component({\r\n  selector: 'schemater-view-field',\r\n  template: `\r\n    <ng-container #fieldComponent></ng-container>`,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SchematerViewFieldComponent implements OnInit, DoCheck {\r\n  @Input() field: SchematerFieldConfig;\r\n  @Input() type: string;\r\n  @Input() values: any;\r\n  @Input() value: any;\r\n\r\n  @ViewChild('fieldComponent', {read: ViewContainerRef, static: true})\r\n  fieldComponentContainer: ViewContainerRef;\r\n\r\n  protected fieldComponentRef: ComponentRef<any>;\r\n\r\n  constructor(protected componentResolverService: ComponentResolverService) {\r\n  }\r\n\r\n  ngOnInit() {\r\n    const fieldComponent = this.componentResolverService.createComponent(this.type || this.field.viewType);\r\n    if (fieldComponent) {\r\n      this.fieldComponentRef = this.fieldComponentContainer.createComponent(fieldComponent);\r\n      this.fieldComponentRef.instance.field = this.field;\r\n      this.fieldComponentRef.instance.values = this.values;\r\n      if (this.value === undefined && this.values && this.field.id && this.values[this.field.id]) {\r\n        this.value = this.values[this.field.id];\r\n      }\r\n      this.fieldComponentRef.instance.value = this.value;\r\n    }\r\n  }\r\n\r\n  ngDoCheck() {\r\n    if (this.fieldComponentRef) {\r\n      if (this.values !== undefined) {\r\n        this.fieldComponentRef.instance.values = this.values;\r\n        this.value = this.values[this.field.id];\r\n      }\r\n      if (this.value !== undefined) {\r\n        this.fieldComponentRef.instance.value = this.value;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { Injectable, Optional } from '@angular/core';\r\nimport { SchematerConfig } from './../models/schemater-config';\r\n\r\n@Injectable()\r\nexport abstract class ComponentConfigService {\r\n  components = {};\r\n  config: SchematerConfig;\r\n\r\n  constructor(@Optional() config: SchematerConfig) {\r\n    this.config = config;\r\n  }\r\n\r\n  addComponent(config) {\r\n    this.components[config.name] = config.component;\r\n  }\r\n}\r\n","import {Injectable, Optional} from '@angular/core';\r\nimport {ComponentConfigService} from '../../../services/component-config.service';\r\nimport {SchematerConfig} from '../../../models/schemater-config';\r\n\r\n@Injectable()\r\nexport class ViewConfigService extends ComponentConfigService {\r\n  constructor(@Optional() config: SchematerConfig) {\r\n    super(config);\r\n    this.parseConfig();\r\n  }\r\n\r\n  protected parseConfig() {\r\n    if (this.config) {\r\n      if (this.config.viewComponents) {\r\n        this.config.viewComponents.map(conf => this.addComponent(conf));\r\n      }\r\n    }\r\n  }\r\n}\r\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ComponentResolverService} from './services/component-resolver.service';\nimport {SchematerViewFieldComponent} from './schemater-view-field/schemater-view-field.component';\nimport {ViewConfigService} from './config/view-config.service';\nimport {ComponentFactoryService} from '../../services/component-factory.service';\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [SchematerViewFieldComponent],\n  exports: [SchematerViewFieldComponent],\n  providers: [ViewConfigService, ComponentResolverService, ComponentFactoryService]\n})\nexport class ViewModule {\n}\n","import {ComponentFactory, Injectable} from '@angular/core';\r\nimport {ComponentFactoryService} from '../../../services/component-factory.service';\r\nimport {SchematerComponentConfig, SchematerConfig} from '../../../models/schemater-config';\r\n\r\n@Injectable()\r\nexport class ComponentResolverService {\r\n  constructor(protected componentFactoryService: ComponentFactoryService, protected config: SchematerConfig) {\r\n  }\r\n\r\n  createComponent(type: string): ComponentFactory<any> {\r\n    if (!type) {\r\n      throw new Error('Choose component type for input');\r\n    }\r\n    const components = this.config.inputComponents;\r\n\r\n    if (!components || components.length === 0) {\r\n      throw new Error('Define input components in `forRoot` of SchematerModule using `inputComponents`');\r\n    }\r\n    const component: SchematerComponentConfig = components.find((item: any) => {\r\n      if (item.name === type) {\r\n        return item;\r\n      }\r\n    });\r\n    if (!component) {\r\n      console.error('No input component definition for type ' + type);\r\n      return null;\r\n      // return this.componentFactoryService.createChematerFieldComponent(ComponentPlaceholderComponent);\r\n    }\r\n    return this.componentFactoryService.createComponent(component.component);\r\n  }\r\n}\r\n","import {Injectable, Injector} from '@angular/core';\r\nimport {AsyncValidatorFn, ValidatorFn, Validators} from '@angular/forms';\r\nimport {SchematerConfig} from '../models/schemater-config';\r\nimport {SchematerValidatorsConfig} from '../models/schemater-validators-config';\r\n\r\n// import {SchematerConfig, SchematerValidatorsConfig} from '@schemater/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class SchematerValidatorsService {\r\n  constructor(private config: SchematerConfig,\r\n              private injector: Injector) {\r\n  }\r\n\r\n  getValidatorFunctions(schematerValidators: SchematerValidatorsConfig): ValidatorFn[] {\r\n    const ngValidators: ValidatorFn[] = [];\r\n    if (schematerValidators) {\r\n      let missingValidators = Object.keys(schematerValidators);\r\n      // console.log(schematerValidators);\r\n      for (const validatorName in schematerValidators) {\r\n        if (Validators[validatorName]) {\r\n          if (schematerValidators[validatorName].params) {\r\n            ngValidators.push(Validators[validatorName](schematerValidators[validatorName].params));\r\n          } else {\r\n            ngValidators.push(Validators[validatorName]);\r\n          }\r\n          missingValidators = missingValidators.filter(v => v !== validatorName);\r\n        } else if (this.config.validators && this.config.validators[validatorName]) {\r\n          if (!this.config.validators[validatorName].async) {\r\n            const validationClass = this.injector.get(this.config.validators[validatorName].validatorService);\r\n            ngValidators.push(validationClass.buildValidator(schematerValidators[validatorName].params));\r\n            // console.log(this.config.validators[validatorName].validatorService);\r\n\r\n            // ngValidators.push(this.config.validators[validatorName].validatorService);\r\n\r\n            // if (schematerValidators[validatorName].fnParams) {\r\n            //   ngValidators.push(this.config.validators[validatorName].validatorFn(...schematerValidators[validatorName].fnParams));\r\n            // } else {\r\n            //   ngValidators.push(this.config.validators[validatorName].validatorFn);\r\n            // }\r\n          }\r\n          missingValidators = missingValidators.filter(v => v !== validatorName);\r\n        }\r\n      }\r\n      if (missingValidators.length) {\r\n        throw new Error('Brakujące walidatory - dodaj je do konfiguracji schematera: ' + missingValidators.join(', '));\r\n      }\r\n    }\r\n    return ngValidators;\r\n  }\r\n\r\n  getAsyncValidatorFunctions(validators: SchematerValidatorsConfig): AsyncValidatorFn[] {\r\n    const ngValidators: AsyncValidatorFn[] = [];\r\n    if (validators) {\r\n      for (const validatorName in validators) {\r\n        if (this.config.validators && this.config.validators[validatorName]) {\r\n          if (this.config.validators[validatorName].async) {\r\n            const validationClass = this.injector.get(this.config.validators[validatorName].validatorService);\r\n            ngValidators.push(validationClass.buildValidator(validators[validatorName].params));\r\n            // ngValidators.push(<AsyncValidatorFn>this.config.validators[validatorName].validatorFn);\r\n          }\r\n        }\r\n      }\r\n    }\r\n    return ngValidators;\r\n  }\r\n}\r\n","import {Injectable} from '@angular/core';\n\nexport abstract class Logger {\n\n  log: any;\n  warn: any;\n  error: any;\n}\n\nconst noop = (): any => undefined;\n\n@Injectable()\nexport class LoggerService implements Logger {\n  log(value: any, ...rest: any[]) {\n    return noop();\n  }\n\n  error(value: any, ...rest: any[]) {\n    return noop();\n  }\n\n  warn(value: any, ...rest: any[]) {\n    return noop();\n  }\n}\n","import {Injectable} from '@angular/core';\r\nimport {AbstractControl, AsyncValidatorFn, UntypedFormArray, UntypedFormControl, UntypedFormGroup, ValidatorFn} from '@angular/forms';\r\nimport {SchematerFieldConfig} from '../models/schemater-field-config';\r\nimport {SchematerValidatorsService} from '../validators/schemater-validators.service';\r\nimport {SchematerConfig, SchematerInputComponentConfig} from '../models/schemater-config';\r\nimport {SchematerValidatorsConfig} from '../models/schemater-validators-config';\r\nimport {LoggerService} from \"../logger/logger.service\";\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class SchematerFieldAdderService {\r\n  constructor(protected schematerValidationService: SchematerValidatorsService,\r\n              protected schematerConfig: SchematerConfig,\r\n              protected logger: LoggerService) {\r\n  }\r\n\r\n  add(form: UntypedFormGroup, field: SchematerFieldConfig, initValue?: any): AbstractControl {\r\n    if (!form.contains(field.id)) {\r\n      const typeConfig = this.findType(field.inputType);\r\n      if (!typeConfig) {\r\n        throw new Error('Unknown inputType ' + field.inputType);\r\n      }\r\n      const formAbstract =\r\n        typeConfig.isFormArray ?\r\n          this.createArrayControl(field) :\r\n          typeConfig.isFormGroup ?\r\n            new UntypedFormGroup({}) :\r\n            this.createFormControl(field, initValue);\r\n      this.logger.log('[fieldaddrer] value to add', initValue)\r\n      form.addControl(\r\n        field.id,\r\n        formAbstract\r\n      );\r\n    } else {\r\n      this.updateValidators(form, field);\r\n    }\r\n\r\n    return form.get(field.id);\r\n  }\r\n\r\n  addFieldToArray(arrayControls: UntypedFormArray, field: SchematerFieldConfig, initValue: any) {\r\n    arrayControls.push(this.createFormControl(field, initValue));\r\n  }\r\n\r\n  protected updateValidators(form: UntypedFormGroup, field: SchematerFieldConfig) {\r\n    // console.log('update validators', field);\r\n    const fieldControl = form.get(field.id);\r\n    if (fieldControl) {\r\n      const typeConfig = this.schematerConfig.inputComponents.find(item => field.inputType === item.name);\r\n\r\n      const validators: SchematerValidatorsConfig = {...typeConfig.validators, ...field.validators};\r\n      fieldControl.setValidators(\r\n        this.schematerValidationService.getValidatorFunctions(validators)\r\n      );\r\n      fieldControl.setAsyncValidators(\r\n        this.schematerValidationService.getAsyncValidatorFunctions(validators)\r\n      );\r\n      fieldControl.updateValueAndValidity();\r\n    }\r\n  }\r\n\r\n  protected createFormControl(field: SchematerFieldConfig, initValue?: any): UntypedFormControl {\r\n    const typeConfig = this.findType(field.inputType);\r\n    initValue = (\r\n      (initValue !== undefined ? initValue :\r\n        (typeConfig && typeConfig.defaultValue !== undefined ? typeConfig.defaultValue :\r\n          null)));\r\n    // const validators: SchematerValidatorsConfig = {...typeConfig.validators, ...field.validators};\r\n    return new UntypedFormControl(\r\n      initValue,\r\n      this.createValidators(field),\r\n      this.createAsyncValidators(field)\r\n    );\r\n  }\r\n\r\n\r\n  protected createArrayControl(field: SchematerFieldConfig) {\r\n    return new UntypedFormArray([], this.createValidators(field), this.createAsyncValidators(field));\r\n  }\r\n\r\n  protected createValidators(field: SchematerFieldConfig): ValidatorFn[] {\r\n    const typeConfig = this.findType(field.inputType);\r\n    const validators: SchematerValidatorsConfig = {...typeConfig.validators, ...field.validators};\r\n    return this.schematerValidationService.getValidatorFunctions(validators);\r\n  }\r\n\r\n  protected createAsyncValidators(field: SchematerFieldConfig): AsyncValidatorFn[] {\r\n    const typeConfig = this.findType(field.inputType);\r\n    const validators: SchematerValidatorsConfig = {...typeConfig.validators, ...field.validators};\r\n    return this.schematerValidationService.getAsyncValidatorFunctions(validators);\r\n  }\r\n\r\n  protected findType(inputType: string): SchematerInputComponentConfig {\r\n    return this.schematerConfig.inputComponents.find(item => inputType === item.name);\r\n  }\r\n}\r\n","import {\r\n  Component,\r\n  ComponentRef,\r\n  Host,\r\n  Input,\r\n  OnDestroy,\r\n  OnInit,\r\n  Optional,\r\n  SkipSelf,\r\n  ViewChild,\r\n  ViewContainerRef\r\n} from '@angular/core';\r\nimport {AbstractControl, ControlContainer, UntypedFormControl, UntypedFormGroup} from '@angular/forms';\r\nimport {SchematerFieldConfig} from '../../../models/schemater-field-config';\r\nimport {ComponentResolverService} from '../services/component-resolver.service';\r\nimport {SchematerInputField} from '../fields/SchematerInputField';\r\nimport {Subject} from 'rxjs';\r\nimport {takeUntil} from 'rxjs/operators';\r\nimport {LoggerService} from \"../../../logger/logger.service\";\r\nimport {SchematerFieldAdderService} from \"../../../services/schemater-field-adder.service\";\r\n\r\n@Component({\r\n  selector: 'schemater-input-field',\r\n  template: `\r\n    <ng-template #fieldComponent></ng-template>\r\n  `,\r\n  providers: [\r\n    // {\r\n    //   provide: NG_VALUE_ACCESSOR,\r\n    //   useExisting: forwardRef(() => SchematerInputFieldComponent),\r\n    //   multi: true\r\n    // },\r\n    // ExtraErrors,\r\n  ],\r\n  // changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SchematerInputFieldComponent implements OnInit, OnDestroy {\r\n  get field(): SchematerFieldConfig {\r\n    return this._field;\r\n  }\r\n\r\n  @Input()\r\n  set field(value: SchematerFieldConfig) {\r\n    this._field = value;\r\n    // console.log('field change', value);\r\n    if (this.componentRef) {\r\n      this.componentRef.instance.field = this._field;\r\n    }\r\n  }\r\n\r\n  protected componentRef: ComponentRef<SchematerInputField>;\r\n  protected destroy$: Subject<boolean> = new Subject<boolean>();\r\n  protected fieldTypeName = 'inputType';\r\n\r\n  protected _field: SchematerFieldConfig;\r\n  // @Input() public type: string; // TODO wywalić\r\n  @Input() protected form: UntypedFormGroup;\r\n  @Input() initValue: any;\r\n  protected formControlName: string;\r\n  protected formControl: AbstractControl;\r\n  @Input() protected control: AbstractControl | UntypedFormControl;\r\n  @ViewChild('fieldComponent', {read: ViewContainerRef, static: true})\r\n  fieldComponentContainer: ViewContainerRef;\r\n\r\n  constructor(protected componentResolverService: ComponentResolverService,\r\n              protected schematerFieldAdderService: SchematerFieldAdderService,\r\n              @Optional() @Host() @SkipSelf() protected controlContainer: ControlContainer,\r\n              protected logger: LoggerService,\r\n  ) {\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.logger.log('[sif] init data', {\r\n      field: this._field,\r\n      initValue: this.initValue,\r\n      adder: this.schematerFieldAdderService\r\n    });\r\n    if (!this._field) {\r\n      throw new Error('field config not provided');\r\n    }\r\n    if (!this.form && this.controlContainer) {\r\n      this.form = <UntypedFormGroup>this.controlContainer.control;\r\n    }\r\n    if (!this.form) {\r\n      throw new Error('formGroup not provided');\r\n    }\r\n\r\n    if (!this.control) {\r\n      if (!this._field.id) {\r\n        throw new Error('field id not provided');\r\n      }\r\n      this.formControlName = this._field.id;\r\n      // console.log(this.formControlName, this.form.contains(this.formControlName));\r\n      if (this.form && !this.formControl && this.formControlName) {\r\n        if (this.form.contains(this.formControlName)) {\r\n          this.formControl = this.form.get(this.formControlName);\r\n        } else {\r\n          this.logger.log('[sif] not having formControl - building');\r\n          this.createFormControl();\r\n        }\r\n      }\r\n    } else {\r\n      this.formControl = this.control;\r\n    }\r\n\r\n    this.createChematerFieldComponent();\r\n\r\n    if (this._field && this._field.inputValueChanges) {\r\n      if (this.formControl) {\r\n        this.formControl.valueChanges\r\n          .pipe(takeUntil(this.destroy$))\r\n          .subscribe(value => {\r\n            if (this._field.inputValueChanges) {\r\n              // console.log(this.schematerFormGroupBuilderService.fields);\r\n              this._field.inputValueChanges(value, this.formControl);\r\n            }\r\n          });\r\n      } else {\r\n        throw new Error('You have inputValueChanges listener but no formControl');\r\n      }\r\n    }\r\n\r\n    // if (this._field && this._field.inputHideExpression) {\r\n    //   if (this.form) {\r\n    //     this.form.valueChanges\r\n    //       .pipe(takeUntil(this.destroy$))\r\n    //       .subscribe(value => {\r\n    //         if (this._field.inputHideExpression) {\r\n    //           try {\r\n    //             this.handleInputHideExpressionResult(this._field.inputHideExpression(this.form, this._field));\r\n    //           } catch (e) {\r\n    //           }\r\n    //         }\r\n    //       });\r\n    //     if (this._field.inputHideExpression) {\r\n    //       try {\r\n    //         this.handleInputHideExpressionResult(this._field.inputHideExpression(this.form, this._field));\r\n    //       } catch (e) {\r\n    //       }\r\n    //     }\r\n    //   } else {\r\n    //     throw new Error('You have inputHideExpression listener but no formGroup');\r\n    //   }\r\n    // }\r\n  }\r\n\r\n  getSchematerFieldComponent() {\r\n    return this.componentRef.instance;\r\n  }\r\n\r\n  protected createFormControl() {\r\n    this.formControl = this.schematerFieldAdderService.add(this.form, this.field, this.initValue);\r\n  }\r\n\r\n  protected createChematerFieldComponent() {\r\n    if (!this.componentRef || (this.componentRef && this.componentRef.instance && this.componentRef.hostView.destroyed)) {\r\n      const fieldComponent = this.componentResolverService.createComponent(this._field[this.fieldTypeName]);\r\n      if (fieldComponent === null) {\r\n        return;\r\n      }\r\n      this.componentRef = this.fieldComponentContainer.createComponent(fieldComponent);\r\n      this.componentRef.instance.field = this._field;\r\n      this.componentRef.instance.initValue = this.initValue ? this.initValue : undefined;\r\n      this.componentRef.instance.form = this.form;\r\n      this.componentRef.instance.formControl = this.formControl;\r\n    }\r\n  }\r\n\r\n  protected destroySchematerFieldComponent() {\r\n    if (this.componentRef) {\r\n      this.componentRef.destroy();\r\n    }\r\n  }\r\n\r\n\r\n  // protected handleInputHideExpressionResult(hide: boolean) {\r\n  //   if (hide) {\r\n  //     try {\r\n  //       this.form.get(this._field.id).disable({emitEvent: false});\r\n  //       this.destroySchematerFieldComponent();\r\n  //     } catch (e) {\r\n  //     }\r\n  //   } else {\r\n  //     try {\r\n  //       this.form.get(this._field.id).enable({emitEvent: false});\r\n  //       this.createChematerFieldComponent();\r\n  //     } catch (e) {\r\n  //     }\r\n  //   }\r\n  // }\r\n\r\n  ngOnDestroy() {\r\n    this.destroySchematerFieldComponent();\r\n    this.destroy$.next(true);\r\n    this.destroy$.complete();\r\n  }\r\n}\r\n","import { Injectable, Optional } from '@angular/core';\r\nimport { SchematerConfig } from '../../../models/schemater-config';\r\nimport { ComponentConfigService} from '../../../services/component-config.service';\r\n\r\n@Injectable()\r\nexport class InputConfigService extends ComponentConfigService {\r\n  constructor(@Optional() config: SchematerConfig) {\r\n    super(config);\r\n    this.parseConfig();\r\n  }\r\n\r\n  protected parseConfig() {\r\n    if (this.config) {\r\n      if (this.config.inputComponents) {\r\n        this.config.inputComponents.map(conf => this.addComponent(conf));\r\n      }\r\n    }\r\n  }\r\n}\r\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SchematerInputFieldComponent} from './schemater-input-field/schemater-input-field.component';\nimport {ComponentResolverService} from './services/component-resolver.service';\nimport {InputConfigService} from './config/input-config.service';\nimport {ComponentFactoryService} from '../../services/component-factory.service';\n\n@NgModule({\n  imports: [CommonModule], // FormsModule, ReactiveFormsModule],\n  declarations: [SchematerInputFieldComponent],\n  exports: [SchematerInputFieldComponent],\n  providers: [InputConfigService, ComponentResolverService, ComponentFactoryService]\n})\nexport class InputModule {\n}\n","import {ComponentFactory, Injectable} from '@angular/core';\r\nimport {ComponentFactoryService} from '../../../services/component-factory.service';\r\nimport {SchematerComponentConfig, SchematerConfig} from '../../../models/schemater-config';\r\n\r\n@Injectable()\r\nexport class SearchComponentResolverService {\r\n  constructor(protected componentFactoryService: ComponentFactoryService, protected config: SchematerConfig) {\r\n  }\r\n\r\n  createComponent(type: string): ComponentFactory<any> {\r\n    if (!type) {\r\n      throw new Error('Choose component type for search');\r\n    }\r\n    const components = this.config.searchComponents;\r\n    if (!components || components.length === 0) {\r\n      throw new Error('Define search components in `forRoot` of SchematerModule using `searchComponents`');\r\n    }\r\n    const component: SchematerComponentConfig = components.find((item: any) => {\r\n      if (item.name === type) {\r\n        return item;\r\n      }\r\n    });\r\n    if (!component) {\r\n      console.error('No search component definition for type ' + type);\r\n      return null;\r\n      // return this.componentFactoryService.createChematerFieldComponent(ComponentPlaceholderComponent);\r\n    }\r\n    return this.componentFactoryService.createComponent(component.component);\r\n  }\r\n}\r\n","import {Injectable} from '@angular/core';\nimport {SchematerFieldAdderService} from \"../../../services/schemater-field-adder.service\";\nimport {AbstractControl, UntypedFormControl, UntypedFormGroup} from \"@angular/forms\";\nimport {SchematerComponentConfig} from \"../../../models/schemater-config\";\nimport {SchematerFieldConfig} from \"../../../models/schemater-field-config\";\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SchematerSearchFileAdderService extends SchematerFieldAdderService {\n  add(form: UntypedFormGroup, field: SchematerFieldConfig, initValue?: any): AbstractControl {\n    if (!form.contains(field.id)) {\n      const typeConfig = this.findType(field.searchType);\n      if (!typeConfig) {\n        throw new Error('Unknown searchType ' + field.searchType);\n      }\n      const formAbstract = new UntypedFormGroup({\n        value: new UntypedFormControl(initValue ? initValue.value : undefined),\n        operator: new UntypedFormControl(initValue ? initValue.operator : undefined),\n      });\n      this.logger.log('[searchfieldaddrer] value to add', initValue);\n      form.addControl(\n        field.id,\n        formAbstract\n      );\n      // } else {\n      //   this.updateValidators(form, field);\n    }\n\n    return form.get(field.id);\n  }\n\n  protected findType(inputType: string): SchematerComponentConfig {\n    return this.schematerConfig.searchComponents.find(item => inputType === item.name);\n  }\n}\n","import {Component, forwardRef} from '@angular/core';\r\nimport {FormArray, FormGroup, NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport {SchematerInputFieldComponent} from '../../input/schemater-input-field/schemater-input-field.component';\r\nimport {ComponentResolverService} from '../../input/services/component-resolver.service';\r\nimport {SearchComponentResolverService} from '../services/search-component-resolver.service';\r\nimport {ExtraErrors} from '../../input/schemater-input-field/extra-errors';\r\nimport {SchematerFieldAdderService} from \"../../../services/schemater-field-adder.service\";\r\nimport {SchematerSearchFileAdderService} from \"../services/schemater-search-file-adder.service\";\r\n\r\n@Component({\r\n  selector: 'schemater-search-field',\r\n  template: `\r\n      <ng-container #fieldComponent></ng-container>`,\r\n  exportAs: 'SchematerSearchFieldComponent',\r\n  providers: [\r\n    // {\r\n    //   provide: NG_VALUE_ACCESSOR,\r\n    //   useExisting: forwardRef(() => SchematerSearchFieldComponent),\r\n    //   multi: true\r\n    // },\r\n    // {\r\n    //   provide: NG_VALIDATORS,\r\n    //   useExisting: forwardRef(() => SchematerSearchFieldComponent),\r\n    //   multi: true\r\n    // },\r\n    {\r\n      provide: ComponentResolverService,\r\n      useClass: SearchComponentResolverService\r\n    },\r\n    {\r\n      provide: SchematerFieldAdderService,\r\n      useClass: SchematerSearchFileAdderService\r\n    }\r\n    // ExtraErrors\r\n  ]\r\n})\r\nexport class SchematerSearchFieldComponent extends SchematerInputFieldComponent {\r\n  protected fieldTypeName = 'searchType';\r\n}\r\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SchematerSearchFieldComponent} from './/schemater-search-field/schemater-search-field.component';\nimport {ComponentFactoryService} from '../../services/component-factory.service';\nimport {InputConfigService} from '../input/config/input-config.service';\nimport {ComponentResolverService} from '../input/services/component-resolver.service';\n\n@NgModule({\n  imports: [\n    CommonModule\n  ],\n  declarations: [SchematerSearchFieldComponent],\n  exports: [SchematerSearchFieldComponent],\n  providers: [\n    // {provide: InputConfigService, useClass: SearchConfigService},\n    InputConfigService,\n    // {provide: ComponentResolverService, useClass: SearchComponentResolverService},\n    ComponentResolverService,\n    ComponentFactoryService\n  ]\n})\nexport class SearchModule {\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'iterateOverKeys'\n})\nexport class IterateOverKeysPipe implements PipeTransform {\n  transform(value: any, args?: any): any {\n    return Object.keys(value);\n  }\n}\n","import { Directive, ElementRef, OnInit } from '@angular/core';\n\n@Directive({\n  selector: '[initFocus]'\n})\nexport class InitFocusDirective implements OnInit {\n  constructor(private elementRef: ElementRef) {}\n\n  ngOnInit(): void {\n    setTimeout(() => this.elementRef.nativeElement.focus());\n  }\n}\n","import {ComponentFactory, Injectable} from '@angular/core';\r\nimport {ComponentFactoryService} from '../../services/component-factory.service';\r\nimport {SchematerComponentConfig, SchematerConfig} from '../../models/schemater-config';\r\n// import {ComponentFactoryService, SchematerComponentConfig, SchematerConfig} from '@schemater/core';\r\n\r\n@Injectable()\r\nexport class LayoutComponentResolverService {\r\n  defaultType: string = 'label';\r\n\r\n  constructor(protected componentFactoryService: ComponentFactoryService, protected config: SchematerConfig) {\r\n  }\r\n\r\n  createComponent(type: string): ComponentFactory<any> {\r\n    if (!type) {\r\n      type = this.defaultType;\r\n    }\r\n    const components = this.config.inputLayoutComponents;\r\n    if (components.length === 0) {\r\n      throw new Error('Define layout components in `forRoot` of SchematerModule using `inputLayoutComponents`');\r\n    }\r\n    const component: SchematerComponentConfig = components.find((item: any) => {\r\n      if (item.name === type) {\r\n        return item;\r\n      }\r\n    });\r\n    if (!component) {\r\n      throw new Error('No layout component definition for type ' + type);\r\n    }\r\n    return this.componentFactoryService.createComponent(component.component);\r\n  }\r\n}\r\n","import {\n  Component,\n  ComponentRef,\n  Host,\n  Input,\n  OnInit,\n  Optional,\n  SkipSelf,\n  ViewChild,\n  ViewContainerRef\n} from '@angular/core';\nimport {SchematerFieldConfig} from '../../models/schemater-field-config';\nimport {LayoutComponentResolverService} from '../services/layout-component-resolver.service';\nimport {ControlContainer, UntypedFormGroup} from '@angular/forms';\nimport {LoggerService} from \"../../logger/logger.service\";\nimport {SchematerFieldAdderService} from \"../../services/schemater-field-adder.service\";\nimport {SchematerInputFormLayout} from \"../../layout/SchematerInputFormLayout\";\n\n@Component({\n  selector: 'schemater-input-form-layout',\n  template: `\n      <ng-container #layoutComponent></ng-container>`\n})\nexport class SchematerInputFormLayoutComponent implements OnInit {\n  get field(): SchematerFieldConfig {\n    return this._field;\n  }\n\n  @Input()\n  set field(value: SchematerFieldConfig) {\n    this._field = value;\n    if (this.componentRef && this.componentRef.instance) {\n      this.componentRef.instance.field = this._field;\n    }\n  }\n\n  private _field: SchematerFieldConfig;\n  @Input() layout = '';\n  @Input() form: UntypedFormGroup;\n  @Input() initValue: any;\n  @ViewChild('layoutComponent', {read: ViewContainerRef, static: true})\n  layoutComponentContainer: ViewContainerRef;\n  protected componentRef: ComponentRef<SchematerInputFormLayout>;\n\n  constructor(protected componentResolverService: LayoutComponentResolverService,\n              protected logger: LoggerService,\n              protected schematerFieldAdderService: SchematerFieldAdderService,\n              @Optional() @Host() @SkipSelf() protected controlContainer: ControlContainer) {\n  }\n\n  ngOnInit() {\n    if (!this.form) {\n      this.form = <UntypedFormGroup>this.controlContainer.control;\n    }\n\n    if (!this.form.contains(this._field.id)) {\n      this.logger.log('[sifLayout] not having formControl - building');\n      this.schematerFieldAdderService.add(this.form, this._field, this.initValue);\n    }\n    const fieldComponent = this.componentResolverService.createComponent(this.layout || this._field.layout);\n    this.componentRef = this.layoutComponentContainer.createComponent(fieldComponent);\n    this.componentRef.instance.field = this._field;\n    this.componentRef.instance.form = this.form;\n    this.componentRef.instance.initValue = this.initValue; // ? this.initValue[this.field.id] : undefined;\n    // this.componentRef.instance.formControl = this.form.get(this.field.id);\n\n  }\n}\n","import {Injectable} from '@angular/core';\r\nimport {FormControl, UntypedFormGroup} from '@angular/forms';\r\nimport {SchematerFieldConfig} from '../models/schemater-field-config';\r\nimport {SchematerValidatorsService} from '../validators/schemater-validators.service';\r\nimport {SchematerConfig} from '../models/schemater-config';\r\nimport {SchematerValidatorsConfig} from '../models/schemater-validators-config';\r\nimport {SchematerFieldAdderService} from \"./schemater-field-adder.service\";\r\nimport {LoggerService} from \"../logger/logger.service\";\r\n\r\n@Injectable()\r\nexport class SchematerFormGroupBuilderService {\r\n  get inited(): boolean {\r\n    return this._inited;\r\n  }\r\n\r\n  get form(): UntypedFormGroup {\r\n    return this._form;\r\n  }\r\n\r\n  set form(value: UntypedFormGroup) {\r\n    this._form = value;\r\n  }\r\n\r\n  get defaultInitValue(): any {\r\n    return this._defaultInitValue;\r\n  }\r\n\r\n  set defaultInitValue(value: any) {\r\n    this._defaultInitValue = value;\r\n  }\r\n\r\n  get initValue(): any {\r\n    return this._initValue;\r\n  }\r\n\r\n  set initValue(value: any) {\r\n    this._initValue = value;\r\n    if (this._form) {\r\n      this._form.patchValue(this._initValue);\r\n    }\r\n  }\r\n\r\n  get fields(): SchematerFieldConfig[] {\r\n    return this._fields;\r\n  }\r\n\r\n  set fields(value: SchematerFieldConfig[]) {\r\n    this._fields = value;\r\n  }\r\n\r\n  protected _form: UntypedFormGroup;\r\n  protected _fields: SchematerFieldConfig[];\r\n  protected _initValue: any = {};\r\n  protected _defaultInitValue: any = null;\r\n  protected _orderedFieldIds: string[] = [];\r\n\r\n  protected _inited = false;\r\n\r\n  protected valueHolder: any = {};\r\n\r\n  constructor(protected schematerValidationService: SchematerValidatorsService,\r\n              protected schematerConfig: SchematerConfig,\r\n              protected schematerFieldAdderService: SchematerFieldAdderService,\r\n              protected logger: LoggerService) {\r\n  }\r\n\r\n  init(form: UntypedFormGroup, fields: SchematerFieldConfig[], value: any = {}) {\r\n    this._form = form;\r\n    this._fields = fields;\r\n    this._initValue = value !== undefined && value !== null ? value : {};\r\n    this._inited = true;\r\n  }\r\n\r\n  buildFormGroup(fieldIds?: string[]): SchematerFieldConfig[] {\r\n    // console.log('rebuild');\r\n    if (!this._inited) {\r\n      throw new Error('Use `init` first');\r\n    }\r\n    if (!fieldIds) {\r\n      fieldIds = this._fields.map(field => field.id);\r\n    }\r\n    const toRemove = this._orderedFieldIds.filter((i) => fieldIds.indexOf(i) < 0);\r\n    const toAdd = fieldIds.filter((i) => this._orderedFieldIds.indexOf(i) < 0);\r\n    // console.log('toAdd', toAdd);\r\n    // console.log('toRemove', toRemove);\r\n    if (toAdd.length) {\r\n      for (const fieldId of toAdd) {\r\n        const field = this._fields.find(f => f.id === fieldId);\r\n        if (field) {\r\n          this.addField(field);\r\n        }\r\n      }\r\n    }\r\n    if (toRemove.length) {\r\n      for (const fieldId of toRemove) {\r\n        const field = this._fields.find(f => f.id === fieldId);\r\n        if (field) {\r\n          this.removeField(field);\r\n        }\r\n      }\r\n    }\r\n\r\n    this._orderedFieldIds = [...fieldIds];\r\n    return this.getOrderedFields();\r\n  }\r\n\r\n  getOrderedFields(): SchematerFieldConfig[] {\r\n    return this.getFieldsFromFieldIds(this._orderedFieldIds);\r\n  }\r\n\r\n  getFieldsFromFieldIds(fieldIds: string[]): SchematerFieldConfig[] {\r\n    return fieldIds.map(fieldIs => {\r\n      return this.fields.find(field => field.id === fieldIs);\r\n    });\r\n  }\r\n\r\n  protected addField(field: SchematerFieldConfig) {\r\n    this.logger.log('[formbuilder] field to add', field)\r\n    const initValue = (\r\n      this.valueHolder[field.id] !== undefined ? this.valueHolder[field.id] :\r\n        ((this._initValue && this._initValue[field.id] !== undefined) ? this._initValue[field.id] :\r\n          undefined));\r\n    this.logger.log('[formbuilder] initValue', initValue)\r\n    this.schematerFieldAdderService.add(this.form, field, initValue);\r\n    // console.log('addField', field);\r\n    // if (!this._form.get(field.id)) {\r\n    //   const typeConfig = this.schematerConfig.inputComponents.find(item => field.inputType === item.name);\r\n    //   if (!typeConfig) {\r\n    //     throw new Error('Nieznany inputType ' + field.inputType);\r\n    //   }\r\n    //   // console.log('schemater', typeConfig);\r\n    //   // console.log(this.valueHolder, this.initValue);\r\n    //   const initValue = (\r\n    //     this.valueHolder[field.id] !== undefined ? this.valueHolder[field.id] :\r\n    //       ((this._initValue && this._initValue[field.id] !== undefined) ? this._initValue[field.id] :\r\n    //         (typeConfig && typeConfig.defaultValue !== undefined ? typeConfig.defaultValue :\r\n    //           this._defaultInitValue)));\r\n    //   // console.log('initValue', initValue);\r\n    //\r\n    //   const validators: SchematerValidatorsConfig = {...typeConfig.validators, ...field.validators};\r\n    //   // console.log(typeConfig);\r\n    //   const formAbstract =\r\n    //     // typeConfig.isFormGroup ?\r\n    //     // new FormGroup({}) :\r\n    //     new FormControl(\r\n    //       initValue,\r\n    //       this.schematerValidationService.getValidatorFunctions(validators),\r\n    //       this.schematerValidationService.getAsyncValidatorFunctions(validators)\r\n    //     );\r\n    //   // console.log(formAbstract);\r\n    //\r\n    //   this._form.addControl(\r\n    //     field.id,\r\n    //     formAbstract\r\n    //   );\r\n    // } else {\r\n    //   this.updateValidators(field);\r\n    // }\r\n  }\r\n\r\n  protected updateValidators(field: SchematerFieldConfig) {\r\n    // console.log('update validators', field);\r\n    const fieldControl = this._form.get(field.id);\r\n    if (fieldControl) {\r\n      const typeConfig = this.schematerConfig.inputComponents.find(item => field.inputType === item.name);\r\n\r\n      const validators: SchematerValidatorsConfig = {...typeConfig.validators, ...field.validators};\r\n      fieldControl.setValidators(\r\n        this.schematerValidationService.getValidatorFunctions(validators)\r\n      );\r\n      fieldControl.setAsyncValidators(\r\n        this.schematerValidationService.getAsyncValidatorFunctions(validators)\r\n      );\r\n      fieldControl.updateValueAndValidity();\r\n    }\r\n  }\r\n\r\n  protected removeField(field: SchematerFieldConfig) {\r\n    const fieldId = field.id;\r\n    if (this._form.contains(fieldId)) {\r\n      if (this._form.get(fieldId).value !== null) {\r\n        this.valueHolder[fieldId] = this._form.get(fieldId).value;\r\n      }\r\n      this._form.removeControl(fieldId);\r\n    }\r\n  }\r\n}\r\n","import {ChangeDetectorRef, Component, Host, Input, OnDestroy, OnInit} from '@angular/core';\nimport {UntypedFormGroup, FormGroupDirective} from '@angular/forms';\nimport {SchematerFormGroupBuilderService} from '../../services/schemater-form-group-builder.service';\n\nimport {SchematerFieldConfig} from '../../models/schemater-field-config';\nimport {LayoutComponentResolverService} from '../services/layout-component-resolver.service';\nimport {SchematerInputFormOptions} from '../models/schemater-input-form-options';\nimport {Subject} from 'rxjs';\nimport {takeUntil} from \"rxjs/operators\";\nimport {LoggerService} from \"../../logger/logger.service\";\n\n\n@Component({\n  selector: 'schemater-input-form',\n  exportAs: 'schemater-input-form',\n  templateUrl: './schemater-input-form.component.html',\n  providers: [SchematerFormGroupBuilderService]\n  // changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SchematerInputFormComponent implements OnInit, OnDestroy {\n  get fields(): SchematerFieldConfig[] {\n    return this._fields;\n  }\n\n  @Input()\n  set fields(value: SchematerFieldConfig[]) {\n    this._fields = value;\n    this.logger.log('[schemater] zmiana pól', this._fields);\n    this.formBuilderService.fields = this._fields;\n    if (this._displayFields) {\n      // this.displayFields = this.displayFields.filter(fieldId => this._fields.find(item => item.id === fieldId));\n      this._displayFields = undefined;\n    }\n    if (this._hideFields) {\n      // this.hideFields = this.hideFields.filter(fieldId => this._fields.find(item => item.id === fieldId));\n      this._hideFields = [];\n    }\n    this.checkDisplayFields();\n    this.setOrderedFields();\n  }\n\n  private destroy$: Subject<boolean> = new Subject<boolean>();\n  @Input() form: UntypedFormGroup;\n  protected _fields: SchematerFieldConfig[] = [];\n\n  // valueHolder: any = {};\n\n  @Input()\n  set displayFields(value: string[]) {\n    this._displayFields = value;\n    this.setOrderedFields();\n  }\n\n  get displayFields(): string[] {\n    return this._displayFields;\n  }\n\n  protected _displayFields: string[];\n\n  @Input()\n  set hideFields(value: string[]) {\n    this._hideFields = value;\n    this.setOrderedFields();\n  }\n\n  get hideFields(): string[] {\n    return this._hideFields;\n  }\n\n  private _hideFields: string[];\n\n  @Input()\n  set initValue(value: any) {\n    this._initValue = value;\n    this.formBuilderService.initValue = this._initValue;\n  }\n\n  get initValue(): any {\n    return this._initValue || {};\n  }\n\n  private _initValue: any;\n  @Input() options: SchematerInputFormOptions = {};\n\n  orderedFields: SchematerFieldConfig[] = [];\n  protected defaultInitValue: any = undefined;\n\n  constructor(\n    @Host() protected parentFormComponent: FormGroupDirective,\n    protected layoutComponentResolverService: LayoutComponentResolverService,\n    protected formBuilderService: SchematerFormGroupBuilderService,\n    protected logger: LoggerService,\n    protected cd: ChangeDetectorRef\n  ) {\n  }\n\n  ngOnInit() {\n    this.logger.log('[input-from] init');\n    if (!this.form) {\n      this.form = this.parentFormComponent.form;\n    }\n    if (!this.form) {\n      throw new Error('Provide `form` to `schemater-input-form` component');\n    }\n    if (!this._fields.length) {\n      throw new Error('Provide `fields` (SchematerFieldConfig[]) to `schemater-input-form` component');\n    }\n    if (this.options && this.options.defaultLayout) {\n      this.layoutComponentResolverService.defaultType = this.options.defaultLayout;\n    }\n    this.formBuilderService.init(this.form, this._fields, this.initValue);\n    if (this.defaultInitValue) {\n      this.formBuilderService.defaultInitValue = this.defaultInitValue;\n    }\n    this.checkDisplayFields();\n    this.setOrderedFields();\n    this.form.valueChanges\n      .pipe(\n        takeUntil(this.destroy$),\n      )\n      .subscribe(resp => {\n        this.performActionsOnFormChange();\n      });\n    this.performActionsOnFormChange();\n  }\n\n  setOrderedFields() {\n    if (this.formBuilderService.inited) {\n      let fields = this.displayFields;\n      if (this.hideFields) {\n        fields = fields.filter(item => {\n          return this.hideFields.indexOf(item) === -1;\n        });\n      }\n      this.orderedFields = this.formBuilderService.buildFormGroup(fields);\n    }\n  }\n\n  ngOnDestroy() {\n    this.destroy$.next(true);\n    this.destroy$.complete();\n  }\n\n  protected performActionsOnFormChange() {\n    this.displayFields.forEach(fieldId => {\n      const field = this.fields.find(f => f.id === fieldId);\n      if (field && field.inputHideExpression) {\n        try {\n          if (field.inputHideExpression(this.form, field)) {\n            try {\n              this.form.get(field.id).disable({emitEvent: false});\n            } catch (e) {\n            }\n          } else {\n            try {\n              this.form.get(field.id).enable({emitEvent: false});\n            } catch (e) {\n            }\n          }\n        } catch (e) {\n        }\n      }\n    });\n  }\n\n  protected checkDisplayFields() {\n    // console.log('[schemater] checkdisplayfields', this._displayFields, this._fields);\n    // if (!this._displayFields || (Array.isArray(this._displayFields) && this._displayFields.length === 0)) {\n    if (this._displayFields === undefined) {\n      this._displayFields = Object.values(this._fields).map(item => item.id);\n      this.logger.log('[schemater] displayFields byly undefined teraz są: ', this._displayFields);\n    }\n  }\n}\n","<ng-container *ngFor=\"let field of orderedFields\">\n  <schemater-input-form-layout\n    *ngIf=\"form.get(field.id) && form.get(field.id).enabled\"\n    [field]=\"field\"\n    [layout]=\"options?.forceLayout\"\n    [initValue]=\"initValue[field.id]\"\n    [form]=\"form\"></schemater-input-form-layout>\n</ng-container>\n<ng-content></ng-content>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {SchematerInputFormLayoutComponent} from './schemater-input-form-layout/schemater-input-form-layout.component';\nimport {SchematerInputFormComponent} from './schemater-input-form/schemater-input-form.component';\nimport {LayoutComponentResolverService} from './services/layout-component-resolver.service';\n\n@NgModule({\n  imports: [CommonModule, ReactiveFormsModule],\n  declarations: [\n    SchematerInputFormComponent,\n    SchematerInputFormLayoutComponent,\n  ],\n  exports: [\n    SchematerInputFormComponent,\n    SchematerInputFormLayoutComponent,\n  ],\n  providers: [\n    LayoutComponentResolverService,\n  ]\n})\nexport class InputFormModule {\n}\n","import { ComponentFactory, Injectable } from '@angular/core';\r\nimport {ComponentFactoryService} from '../../services/component-factory.service';\r\nimport {SchematerComponentConfig, SchematerConfig} from '../../models/schemater-config';\r\n\r\n@Injectable()\r\nexport class LayoutComponentResolverService {\r\n  constructor(protected componentFactoryService: ComponentFactoryService, protected config: SchematerConfig) {}\r\n\r\n  createComponent(type: string): ComponentFactory<any> {\r\n    if (!type) {\r\n      type = 'label';\r\n    }\r\n    const components = this.config.searchLayoutComponents;\r\n    if (!components) {\r\n      throw new Error('No search layout component declared');\r\n    }\r\n    const component: SchematerComponentConfig = components.find((item: any) => {\r\n      if (item.name === type) {\r\n        return item;\r\n      }\r\n    });\r\n    if (!component) {\r\n      throw new Error('No layout component definition for type ' + type);\r\n    }\r\n    return this.componentFactoryService.createComponent(component.component);\r\n  }\r\n}\r\n","import { Component } from '@angular/core';\nimport { LayoutComponentResolverService} from '../../input-form/services/layout-component-resolver.service';\nimport { SchematerInputFormLayoutComponent } from '../../input-form/schemater-input-form-layout/schemater-input-form-layout.component';\nimport { LayoutComponentResolverService as ResolverService } from '../services/layout-component-resolver.service';\n\n@Component({\n  selector: 'schemater-search-form-layout',\n  template: `\n      <ng-container #layoutComponent></ng-container>`,\n  providers: [\n    {\n      provide: LayoutComponentResolverService,\n      useClass: ResolverService\n    }\n  ]\n})\nexport class SchematerSearchFormLayoutComponent extends SchematerInputFormLayoutComponent {}\n","import {Component} from '@angular/core';\nimport {SchematerInputFormComponent} from '../../input-form/schemater-input-form/schemater-input-form.component';\nimport {SchematerFormGroupBuilderService} from '../../services/schemater-form-group-builder.service';\nimport {SchematerFieldAdderService} from \"../../services/schemater-field-adder.service\";\nimport {SchematerSearchFileAdderService} from \"../../fields/search/services/schemater-search-file-adder.service\";\n\n@Component({\n  selector: 'schemater-search-form',\n  templateUrl: './schemater-search-form.component.html',\n  providers: [\n    {provide: SchematerFormGroupBuilderService, useClass: SchematerFormGroupBuilderService},\n    {provide: SchematerFieldAdderService, useClass: SchematerSearchFileAdderService}\n  ]\n})\nexport class SchematerSearchFormComponent extends SchematerInputFormComponent {\n  protected performActionsOnFormChange() {\n  }\n}\n","<schemater-search-form-layout\n        *ngFor=\"let field of orderedFields\"\n        [field]=\"field\"\n        [form]=\"form\"></schemater-search-form-layout>\n<ng-content></ng-content>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\n\nimport {SchematerSearchFormComponent} from './schemater-search-form/schemater-search-form.component';\nimport {InputFormModule} from '../input-form/input-form.module';\nimport {SchematerSearchFormLayoutComponent} from './schemater-search-form-layout/schemater-search-form-layout.component';\n// import {SchematerModule} from '@schemater/core';\n\n@NgModule({\n  imports: [CommonModule,\n    InputFormModule],\n  declarations: [SchematerSearchFormComponent, SchematerSearchFormLayoutComponent],\n  exports: [SchematerSearchFormComponent]\n})\nexport class SearchFormModule {\n}\n","import {Attribute, Directive, HostBinding, HostListener, Input, Optional} from '@angular/core';\nimport {SchematerFieldConfig, SchematerFieldConfigAttributes} from \"../models/schemater-field-config\";\nimport {LoggerService} from \"../logger/logger.service\";\nimport {AbstractControl, ControlContainer, UntypedFormGroup, NgControl} from \"@angular/forms\";\n\n// import {DomSanitizer} from \"@angular/platform-browser\";\n\n@Directive({\n  selector: '[schematerAttributesCommon]',\n})\nexport class AttributesCommonDirective {\n  get field(): SchematerFieldConfig {\n    return this._field;\n  }\n\n  @Input('schematerAttributesCommon')\n  set field(value: SchematerFieldConfig) {\n    this._field = value;\n  }\n\n  // get events(): SchematerFieldConfigEvents {\n  //   return (this._field && this._field.inputEvents) ? this._field.inputEvents : {};\n  // }\n\n  get attributes(): SchematerFieldConfigAttributes {\n    return (this._field && this._field.inputAttributes) ? this._field.inputAttributes : {};\n  }\n\n  private _field: SchematerFieldConfig;\n\n  protected formControl: AbstractControl;\n\n  @HostBinding('class')\n  get class() {\n    return this.attributes.class !== undefined ? this.attributes.class : this.defaultClass;\n  }\n\n  @HostBinding('style')\n  get style() {\n    // return this.attributes.style !== undefined ? this.sanitizer.bypassSecurityTrustStyle(this.attributes.style) : this.defaultStyle;\n    return this.attributes.style !== undefined ? this.attributes.style : this.defaultStyle;\n  }\n\n  @HostBinding('name')\n  get name() {\n    // console.log('name', this.defaultName, this.defaultClass);\n    return this.attributes.name !== undefined ? this.attributes.name : (this.defaultName ? this.defaultName : this._field.id);\n  }\n\n  @HostListener('focus') onFocus() {\n    // this.logger.log('[focus event]', this.field, this.formControl);\n    if (this.attributes.focus) {\n      this.attributes.focus(this._field, this.formGroup);\n    }\n  }\n\n  @HostListener('blur') onBlur() {\n    // this.logger.log('[focus event]', this.field, this.formControl);\n    if (this.attributes.blur) {\n      this.attributes.blur(this._field, this.formGroup);\n    }\n  }\n\n  @HostListener('change') onChange() {\n    // this.logger.log('[focus event]', this.field, this.formControl);\n    if (this.attributes.change) {\n      this.attributes.change(this.currentValue, this._field, this.formGroup);\n    }\n  }\n\n  get currentValue() {\n    const formGroup = this.formGroup;\n    return  formGroup ? formGroup.get(this._field.id).value : null;\n  }\n\n  get formGroup() {\n    return this.ngForm ? <UntypedFormGroup>this.ngForm.control : null;\n  }\n\n  constructor(\n    @Optional() protected ngControl: NgControl,\n    @Optional() protected ngForm: ControlContainer,\n    @Optional() protected logger: LoggerService,\n    // protected sanitizer: DomSanitizer,\n    @Attribute('class') protected defaultClass = '',\n    @Attribute('style') protected defaultStyle = '',\n    @Attribute('name') protected defaultName = '',\n  ) {\n  }\n\n}\n","import {Directive, HostBinding, Input} from '@angular/core';\nimport {SchematerFieldConfig, SchematerFieldConfigAttributes} from \"../models/schemater-field-config\";\n\n@Directive({\n  selector: '[schematerAttributePlaceholder]',\n})\nexport class AttributePlaceholderDirective {\n  get field(): SchematerFieldConfig {\n    return this._field;\n  }\n\n  @Input('schematerAttributePlaceholder')\n  set field(value: SchematerFieldConfig) {\n    this._field = value;\n  }\n\n  get attributes(): SchematerFieldConfigAttributes {\n    return (this._field && this._field.inputAttributes) ? this._field.inputAttributes : {};\n  }\n\n  private _field: SchematerFieldConfig;\n\n  @HostBinding('placeholder')\n  get placeholder() {\n    return this.attributes.placeholder || '';\n  }\n\n  constructor() {\n  }\n\n}\n","import {InjectionToken} from \"@angular/core\";\n\nexport const SCHEMATER_FEATURE_TOKEN = new InjectionToken<any>('SCHEMATER_FEATURE_TOKEN');\n","import {Injectable, Optional} from '@angular/core';\r\nimport {SchematerConfig} from '../models/schemater-config';\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class ValidationMessgesService {\r\n  protected messages = {\r\n    required: 'Uzupełnij to pole',\r\n    email: 'Wpisz poprawny adres email',\r\n    minLength: 'Wpisz przynajmniej {{requiredLength}} znaków',\r\n    maxLength: 'Wpisz maksymalnie{{requiredLength}} znaków',\r\n  };\r\n\r\n  constructor(@Optional() private config: SchematerConfig) {\r\n    this.parseConfig(config);\r\n  }\r\n\r\n  parseConfig(config: SchematerConfig) {\r\n    if (config && config.validators) {\r\n      Object.keys(config.validators).forEach(validatorName => {\r\n        if (config.validators[validatorName].message) {\r\n          this.addMessage(validatorName, config.validators[validatorName].message);\r\n        }\r\n      });\r\n    }\r\n    if (config && config.validationMessages) {\r\n      this.messages = {...this.messages, ...config.validationMessages};\r\n    }\r\n  }\r\n\r\n  parseMessage(message: string, errorValue?: any): string {\r\n    if (errorValue && message) {\r\n      Object.keys(errorValue).forEach(key => {\r\n        message = message.replace('{{' + key + '}}', errorValue[key]);\r\n      });\r\n    }\r\n    return message;\r\n  }\r\n\r\n  addMessage(validatorName: string, message: string) {\r\n    this.messages[validatorName] = message;\r\n  }\r\n\r\n  getMessage(error) {\r\n    return this.messages[error] || '';\r\n  }\r\n\r\n  getParsedMessage(error: string, errorValue?: any) {\r\n    return this.parseMessage(this.getMessage(error), errorValue);\r\n  }\r\n}\r\n","import {Inject, NgModule, Optional} from '@angular/core';\nimport {SCHEMATER_FEATURE_TOKEN} from \"./schemater-tokens\";\nimport {SchematerConfig, SchematerFeatureConfig} from \"./models/schemater-config\";\nimport {ValidationMessgesService} from \"./validators/validation-messges.service\";\n\n@NgModule()\nexport class SchematerFeatureModule {\n  constructor(\n    @Optional() @Inject(SCHEMATER_FEATURE_TOKEN) featureConfig: SchematerFeatureConfig = {},\n    // protected inputConfigService: InputConfigService,\n    // protected searchConfigService: SearchConfigService,\n    // protected viewConfigService: ViewConfigService,\n    protected schematerConfig: SchematerConfig,\n    protected validationMessgesService: ValidationMessgesService,\n  ) {\n    // console.log('Hello world!');\n    // console.log('SCHEMATER_FEATURE_TOKEN', featureConfig, this.inputConfigService);\n    if (featureConfig.viewComponents) {\n      featureConfig.viewComponents.forEach(item => {\n        // this.viewConfigService.addComponent(item);\n        this.schematerConfig.viewComponents.push(item);\n      });\n    }\n    if (featureConfig.inputComponents) {\n      featureConfig.inputComponents.forEach(item => {\n        // this.inputConfigService.addComponent(item);\n        this.schematerConfig.inputComponents.push(item);\n      });\n    }\n    if (featureConfig.searchComponents) {\n      featureConfig.searchComponents.forEach(item => {\n        // this.searchConfigService.addComponent(item);\n        this.schematerConfig.searchComponents.push(item);\n      });\n    }\n    if (featureConfig.inputLayoutComponents) {\n      featureConfig.inputLayoutComponents.forEach(item => {\n        // this.searchConfigService.addComponent(item);\n        this.schematerConfig.inputLayoutComponents.push(item);\n      });\n    }\n    if (featureConfig.searchLayoutComponents) {\n      featureConfig.searchLayoutComponents.forEach(item => {\n        // this.searchConfigService.addComponent(item);\n        this.schematerConfig.searchLayoutComponents.push(item);\n      });\n    }\n    if (featureConfig.validators) {\n      this.schematerConfig.validators = {\n        ...this.schematerConfig.validators,\n        ...featureConfig.validators\n      };\n    }\n    if (featureConfig.validationMessages) {\n      this.schematerConfig.validationMessages = {\n        ...this.schematerConfig.validationMessages,\n        ...featureConfig.validationMessages\n      };\n    }\n    this.validationMessgesService.parseConfig(featureConfig);\n  }\n}\n","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SchematerConfig} from './models/schemater-config';\nimport {ViewModule} from './fields/view/view.module';\nimport {InputModule} from './fields/input/input.module';\nimport {SearchModule} from './fields/search/search.module';\nimport {ComponentPlaceholderComponent} from './fields/component-placeholder/component-placeholder.component';\nimport {IterateOverKeysPipe} from './pipes/iterate-over-keys/iterate-over-keys.pipe';\nimport {InitFocusDirective} from './directives/init-focus.directive';\nimport {InputFormModule} from './input-form/input-form.module';\nimport {SearchFormModule} from './search-form/search-form.module';\nimport {LoggerService} from \"./logger/logger.service\";\nimport {AttributesCommonDirective} from \"./directives/attributes-common.directive\";\nimport {AttributePlaceholderDirective} from \"./directives/attribute-placeholder.directive\";\nimport {SchematerFeatureModule} from \"./schemater-feature.module\";\nimport {SCHEMATER_FEATURE_TOKEN} from \"./schemater-tokens\";\n\n@NgModule({\n    imports: [\n        CommonModule,\n        ViewModule,\n        InputModule,\n        SearchModule,\n        InputFormModule,\n        SearchFormModule,\n    ],\n    declarations: [\n        ComponentPlaceholderComponent,\n        IterateOverKeysPipe,\n        InitFocusDirective,\n        AttributesCommonDirective,\n        AttributePlaceholderDirective\n    ],\n    exports: [\n        ViewModule,\n        InputModule,\n        SearchModule,\n        IterateOverKeysPipe,\n        InitFocusDirective,\n        InputFormModule,\n        SearchFormModule,\n        AttributesCommonDirective,\n        AttributePlaceholderDirective\n    ]\n})\nexport class SchematerModule {\n  static forRoot(config: SchematerConfig): ModuleWithProviders<SchematerModule> {\n    return {\n      ngModule: SchematerModule,\n      providers: [\n        {\n          provide: SchematerConfig,\n          useValue: config\n        },\n        {provide: LoggerService, useClass: config.loggerService ? config.loggerService : LoggerService}\n      ]\n    };\n  }\n\n  /**\n   * Feature module factory\n   */\n  public static forFeature(config: SchematerConfig): ModuleWithProviders<SchematerFeatureModule> {\n    return {\n      ngModule: SchematerFeatureModule,\n      providers: [\n        {\n          provide: SCHEMATER_FEATURE_TOKEN,\n          useValue: config\n        },\n      ]\n    };\n  }\n}\n","import {Injectable, Input, OnInit} from '@angular/core';\r\nimport {AbstractControl, UntypedFormGroup} from '@angular/forms';\r\nimport {SchematerFieldConfig} from '../models/schemater-field-config';\r\n\r\n@Injectable()\r\nexport abstract class SchematerInputFormLayout implements OnInit {\r\n  @Input() public field: SchematerFieldConfig;\r\n  @Input() public form: UntypedFormGroup;\r\n  @Input() public initValue: any;\r\n  fieldControl: AbstractControl;\r\n\r\n  constructor() {\r\n  }\r\n\r\n  ngOnInit() {\r\n    if (!this.form) {\r\n      console.error('Podaj form do SchematerInputFormLayout');\r\n    }\r\n    if (!this.field) {\r\n      console.error('Podaj fieldConfig do SchematerInputFormLayout');\r\n    }\r\n    this.fieldControl = this.form.get(this.field.id);\r\n  }\r\n}\r\n","import { Input, Directive } from '@angular/core';\r\nimport {SchematerFieldConfig} from '../../../models/schemater-field-config';\r\nimport {AbstractControl, UntypedFormArray, UntypedFormControl, UntypedFormGroup} from '@angular/forms';\r\n\r\n@Directive()\nexport abstract class SchematerInputField {\r\n  get field(): SchematerFieldConfig {\r\n    return this._field;\r\n  }\r\n\r\n  @Input()\r\n  set field(value: SchematerFieldConfig) {\r\n    this.adoptFieldChanges(value);\r\n  }\r\n  private _field: SchematerFieldConfig;\r\n  @Input() public form: UntypedFormGroup;\r\n  @Input() public formControl: AbstractControl | UntypedFormControl | UntypedFormGroup | UntypedFormArray;\r\n  @Input() public initValue: any;\r\n\r\n  // @Output() updateValue: EventEmitter<any> = new EventEmitter<any>();\r\n  // @Output() touched: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n  //\r\n  // extraErrors: ExtraErrors;\r\n  //\r\n  // protected _value: any;\r\n  //\r\n  // get value(): any {\r\n  //   return this._value;\r\n  // }\r\n  //\r\n  // set value(value: any) {\r\n  //   this._value = value;\r\n  //   // console.log('emit', this.value);\r\n  //   this.emitValue(this.value);\r\n  // }\r\n  //\r\n  // /**\r\n  //  * Emit value to container\r\n  //  * Triggered when value changes\r\n  //  *\r\n  //  * @param value\r\n  //  */\r\n  // emitValue(value: any) {\r\n  //   this.updateValue.emit(value);\r\n  // }\r\n  //\r\n  // /**\r\n  //  * @deprecated use setValue instead\r\n  //  * @param value\r\n  //  */\r\n  // setInitValue(value: any) {\r\n  //   // this.value = value;\r\n  //   this.setValue(value);\r\n  // }\r\n  //\r\n  // /**\r\n  //  * Set value\r\n  //  * @param value\r\n  //  */\r\n  // setValue(value: any) {\r\n  //   this.value = value;\r\n  // }\r\n  //\r\n  // /**\r\n  //  * Mark control as touched\r\n  //  */\r\n  // touch() {\r\n  //   this.touched.emit(true);\r\n  // }\r\n\r\n  updateFromControlValue(value: any) {\r\n    (<UntypedFormControl>this.formControl).setValue(value);\r\n  }\r\n\r\n  protected adoptFieldChanges(newField: SchematerFieldConfig) {\r\n    this._field = newField;\r\n  }\r\n}\r\n","import {SchematerInputField} from '../../input/fields/SchematerInputField';\r\nimport {defaultSearchValue, SearchValue} from '../models/search-value';\r\n\r\nexport abstract class SchematerSearchField extends SchematerInputField {\r\n  protected _value: SearchValue;\r\n}\r\n","import {AfterViewInit, ChangeDetectorRef, Directive, Injectable, Input, OnDestroy, OnInit} from '@angular/core';\r\nimport {SchematerInputField} from '../../input/fields/SchematerInputField';\r\nimport {SearchOperator} from '../models/search-operator';\r\nimport {UntypedFormControl, UntypedFormGroup} from '@angular/forms';\r\nimport {Subject} from 'rxjs';\r\nimport {takeUntil} from 'rxjs/operators';\r\n\r\n@Injectable()\r\n@Directive()\r\nexport abstract class SchematerSearchFieldWithSelectOperator extends SchematerInputField implements OnInit, AfterViewInit, OnDestroy {\r\n  @Input() public formControl: UntypedFormGroup;\r\n  formControlOperator: UntypedFormControl;\r\n  formControlValue: UntypedFormControl;\r\n  abstract operators: SearchOperator[];\r\n  protected destroy$: Subject<boolean> = new Subject<boolean>();\r\n\r\n  abstract defaultOperator: string;\r\n  public showClear = false;\r\n\r\n  constructor(protected cd: ChangeDetectorRef) {\r\n    super();\r\n  }\r\n\r\n  ngOnInit() {\r\n    if (!this.formControl) {\r\n      throw new Error('No formControl form search');\r\n    }\r\n    if (!(this.formControl instanceof UntypedFormGroup)) {\r\n      throw new Error('formControl form search is not FormGroup');\r\n    }\r\n    if (!this.formControl.contains('operator')) {\r\n      throw new Error('No `operator` formControl form search');\r\n    }\r\n    if (!this.formControl.contains('value')) {\r\n      throw new Error('No `value` formControl form search');\r\n    }\r\n    this.formControlOperator = <UntypedFormControl>this.formControl.get('operator');\r\n    this.formControlValue = <UntypedFormControl>this.formControl.get('value');\r\n\r\n    this.formControl.valueChanges\r\n      .pipe(\r\n        takeUntil(this.destroy$),\r\n      )\r\n      .subscribe(resp => {\r\n        this.valueChanges(resp.value, resp.operator);\r\n      });\r\n  }\r\n\r\n  /**\r\n   * on clear button click\r\n   */\r\n  onClear() {\r\n    this.resetValue();\r\n  }\r\n\r\n  /**\r\n   * check if display clear button\r\n   */\r\n  protected checkClear() {\r\n    this.showClear = !((this.formControlOperator.value === this.defaultOperator || this.formControlOperator.value === null) && this.formControlValue.value === null);\r\n  }\r\n\r\n  /**\r\n   * default value\r\n   */\r\n  protected resetValue() {\r\n    this.formControl.patchValue({\r\n      value: null,\r\n      operator: this.defaultOperator\r\n    });\r\n  }\r\n\r\n  protected valueChanges(value: any, operator: any) {\r\n    this.formControl.patchValue({value, operator}, {emitEvent: false});\r\n    this.checkClear();\r\n    // return {value, operator};\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    // console.log(this, this.cd, this.cd.markForCheck());\r\n    setTimeout(() => {\r\n      // console.log('a');\r\n      // console.log(this, this.cd, this.cd.markForCheck());\r\n      if ((this.formControlValue.value === null || this.formControlValue.value === undefined) && (this.formControlOperator.value === null || this.formControlOperator.value === undefined)) {\r\n        // console.log('reseting');\r\n        this.resetValue();\r\n      } else if (this.formControlOperator.value === null || this.formControlOperator.value === undefined) {\r\n        // console.log('patching');\r\n        this.formControl.patchValue({operator: this.defaultOperator}, {emitEvent: false});\r\n      }\r\n      this.onInitCheck();\r\n\r\n      this.valueChanges(this.formControlValue.value, this.formControlOperator.value);\r\n      // this.checkClear();\r\n      if (this.cd && this.cd.markForCheck) {\r\n        this.cd.markForCheck();\r\n      }\r\n    });\r\n  }\r\n\r\n  /**\r\n   * Triggered after init check\r\n   */\r\n  protected onInitCheck() {\r\n  }\r\n\r\n\r\n  ngOnDestroy() {\r\n    // this.componentRef.destroy();\r\n    this.destroy$.next(true);\r\n    this.destroy$.complete();\r\n  }\r\n}\r\n","export interface SearchValue {\r\n  value: any;\r\n  operator: string | number;\r\n}\r\n\r\nexport const defaultSearchValue: SearchValue = {\r\n  value: null,\r\n  operator: null\r\n};\r\n","import { Input, Directive } from '@angular/core';\r\nimport {SchematerFieldConfig} from '../../../models/schemater-field-config';\r\n\r\n@Directive()\nexport abstract class SchematerViewField {\r\n  protected _values: any;\r\n  protected _value: any;\r\n  @Input() field: SchematerFieldConfig;\r\n  @Input() type: string;\r\n\r\n  @Input()\r\n  set values(values: any) {\r\n    this._values = values;\r\n    this.onValuesChanged();\r\n  }\r\n\r\n  protected onValuesChanged() {\r\n  }\r\n\r\n  get values(): any {\r\n    return this._values;\r\n  }\r\n\r\n  @Input()\r\n  set value(value: any) {\r\n    this._value = value;\r\n    this.onValueChanged();\r\n  }\r\n\r\n  get value(): any {\r\n    return this._value;\r\n  }\r\n\r\n  protected onValueChanged() {\r\n  }\r\n}\r\n","/*\r\n * Public API Surface of schemater\r\n */\r\n\r\n// export * from './lib';\r\n\r\nexport {SchematerModule} from './lib/core/schemater.module';\r\n\r\nexport {SchematerInputFormLayout} from './lib/core/layout/SchematerInputFormLayout';\r\n\r\nexport * from './lib/core/models/schemater-config';\r\nexport * from './lib/core/models/schemater-validators-config';\r\nexport * from './lib/core/models/schemater-field-config';\r\nexport * from './lib/core/logger/logger.service';\r\n\r\n// export * from './services';\r\n\r\nexport * from './lib/core/fields/input/fields/SchematerInputField';\r\n\r\nexport * from './lib/core/fields/search/fields/SchematerSearchField';\r\nexport {\r\n  SchematerSearchFieldComponent\r\n}from './lib/core/fields/search/schemater-search-field/schemater-search-field.component';\r\nexport * from './lib/core/fields/search/fields/SchematerSearchFieldWithSelectOperator';\r\nexport * from './lib/core/fields/search/models/search-value';\r\nexport * from './lib/core/fields/search/models/search-operator';\r\n\r\nexport * from './lib/core/fields/view/fields/SchematerViewField';\r\n\r\nexport * from './lib/core/search-form/models/schemater-search-field-value';\r\nexport * from './lib/core/input-form/models/schemater-input-form-options';\r\n\r\nexport * from './lib/core/services/schemater-form-group-builder.service';\r\n// export * from './lib/core/services/schemater-form-array-builder.service';\r\nexport * from './lib/core/services/schemater-field-adder.service';\r\n\r\nexport * from './lib/core/validators/schemater-validator';\r\n\r\nexport {ValidationMessgesService} from './lib/core/validators/validation-messges.service';\r\n\r\nexport * from './lib/core/fields/view/schemater-view-field/schemater-view-field.component';\r\nexport * from './lib/core/fields/view/view.module';\r\nexport * from './lib/core/fields/input/schemater-input-field/schemater-input-field.component';\r\nexport * from './lib/core/fields/input/input.module';\r\nexport * from './lib/core/fields/search/search.module';\r\nexport * from './lib/core/pipes/iterate-over-keys/iterate-over-keys.pipe';\r\nexport * from './lib/core/directives/init-focus.directive';\r\nexport * from './lib/core/input-form/schemater-input-form-layout/schemater-input-form-layout.component';\r\nexport * from './lib/core/input-form/schemater-input-form/schemater-input-form.component';\r\nexport * from './lib/core/input-form/input-form.module';\r\nexport * from './lib/core/search-form/schemater-search-form/schemater-search-form.component';\r\nexport * from './lib/core/search-form/search-form.module';\r\nexport * from './lib/core/directives/attributes-common.directive';\r\nexport * from './lib/core/directives/attribute-placeholder.directive';\r\nexport * from './lib/core/schemater-feature.module';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.ComponentFactoryService","i2.SchematerConfig","ComponentResolverService","i1.ComponentResolverService","i1.SchematerConfig","i1.SchematerValidatorsService","i3.LoggerService","i2.SchematerFieldAdderService","i3","i4.LoggerService","LayoutComponentResolverService","i1.LayoutComponentResolverService","i2.LoggerService","i3.SchematerFieldAdderService","i4","i2.LayoutComponentResolverService","i3.SchematerFormGroupBuilderService","i6.SchematerInputFormLayoutComponent","ResolverService","i1","i2.SchematerSearchFormLayoutComponent","i2.ValidationMessgesService"],"mappings":"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"}