{"version":3,"file":"ddata-ui-input.mjs","sources":["../../../projects/ddata-ui-input/src/lib/models/dialog/content/dialog-content-item.ts","../../../projects/ddata-ui-input/src/lib/models/search/search-model-functions.ts","../../../projects/ddata-ui-input/src/lib/models/search/search.model.ts","../../../projects/ddata-ui-input/src/lib/models/search/result/search-result.model.ts","../../../projects/ddata-ui-input/src/lib/pipes/description/description.pipe.ts","../../../projects/ddata-ui-input/src/lib/services/input/helper/input-helper.service.ts","../../../projects/ddata-ui-input/src/lib/components/checkbox/checkbox.component.ts","../../../projects/ddata-ui-input/src/lib/components/checkbox/checkbox.component.html","../../../projects/ddata-ui-input/src/lib/components/color/color-input.component.ts","../../../projects/ddata-ui-input/src/lib/components/color/color-input.component.html","../../../projects/ddata-ui-input/src/lib/components/date/date-input.component.ts","../../../projects/ddata-ui-input/src/lib/components/date/date-input.component.html","../../../projects/ddata-ui-input/src/lib/components/input/input.component.ts","../../../projects/ddata-ui-input/src/lib/components/input/input.component.html","../../../projects/ddata-ui-input/src/lib/models/search/base-search.model.ts","../../../projects/ddata-ui-input/src/lib/models/search/result/base-search-result.model.ts","../../../projects/ddata-ui-input/src/lib/components/search/search.component.ts","../../../projects/ddata-ui-input/src/lib/components/search/search.component.html","../../../projects/ddata-ui-input/src/lib/components/select/simple-select/simple-select.component.ts","../../../projects/ddata-ui-input/src/lib/components/select/simple-select/simple-select.component.html","../../../projects/ddata-ui-input/src/lib/services/select/component-renderer.service.ts","../../../projects/ddata-ui-input/src/lib/components/select/multiple-select/dialog/multiple-select-dialog.component.ts","../../../projects/ddata-ui-input/src/lib/components/select/multiple-select/dialog/multiple-select-dialog.component.html","../../../projects/ddata-ui-input/src/lib/components/select/multiple-select/multiple-select.component.ts","../../../projects/ddata-ui-input/src/lib/components/select/multiple-select/multiple-select.component.html","../../../projects/ddata-ui-input/src/lib/components/select/select.component.ts","../../../projects/ddata-ui-input/src/lib/components/select/select.component.html","../../../projects/ddata-ui-input/src/lib/components/textarea/textarea.component.ts","../../../projects/ddata-ui-input/src/lib/components/textarea/textarea.component.html","../../../projects/ddata-ui-input/src/lib/components/time/time-input.component.ts","../../../projects/ddata-ui-input/src/lib/components/time/time-input.component.html","../../../projects/ddata-ui-input/src/lib/ddata-ui-input.module.ts","../../../projects/ddata-ui-input/src/public-api.ts","../../../projects/ddata-ui-input/src/ddata-ui-input.ts"],"sourcesContent":["import { Type } from '@angular/core';\n\nexport class DialogContentItem {\n  constructor(public component: Type<any>, public data: any) {}\n}\n\nexport class DialogContentWithOptions {\n  constructor(public component: Type<any>, public options: any) {}\n}\n","// tslint:disable: variable-name\nimport { faCog, IconDefinition } from '@fortawesome/free-solid-svg-icons';\nimport { BaseModel, ID } from 'ddata-core';\nimport { IconSetInterface } from '../icon-set/icon-set.interface';\n\nexport class SearchModelFunctions extends BaseModel {\n  id: ID;\n  name: string;\n  description: string;\n  type: string;\n  found_model_name: string;\n  icon: IconDefinition;\n  url: string;\n  icons: IconSetInterface = {\n    cog: faCog,\n  };\n\n  init(data?: any): any {\n    data = !!data ? data : {};\n\n    this.initAsNumberWithDefaults(['id'], data);\n\n    this.initAsStringWithDefaults(\n      ['name', 'description', 'type', 'found_model_name'],\n      data\n    );\n\n    this.icon = this.setIcon(this.type);\n\n    this.url = this.setUrl(this.type);\n\n    return this;\n  }\n\n  protected setUrl(type: string): string {\n    return type.replace(new RegExp(/_/, 'g'), '/');\n  }\n\n  protected setIcon(type: string): IconDefinition {\n    if (!type) {\n      return this.icons.cog;\n    }\n\n    return this.icons[type] ?? this.icons.cog;\n  }\n}\n","import { SearchModelFunctions } from './search-model-functions';\nimport { SearchInterface } from './search.interface';\n\nexport abstract class Search extends SearchModelFunctions implements SearchInterface {\n  // tslint:disable: variable-name\n  readonly api_endpoint = '/search';\n  readonly model_name = 'Search';\n  searchText: string;\n\n  init(data?: any): SearchInterface {\n    data = !!data ? data : {};\n\n    super.init(data);\n\n    this.initAsStringWithDefaults(['searchText'], data);\n\n    return this;\n  }\n\n  prepareToSave(): any {\n    return {\n      term: !!this.searchText ? this.searchText : '',\n    };\n  }\n\n}\n","\nimport { SearchModelFunctions } from '../search-model-functions';\nimport { SearchResultInterface } from './search-result.interface';\n\nexport abstract class SearchResult extends SearchModelFunctions implements SearchResultInterface {\n\n  init(data?: any): SearchResultInterface {\n    super.init(data);\n\n    return this;\n  }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'description'\n})\nexport class DescriptionPipe implements PipeTransform {\n\n  transform(value: string): any {\n    value = !!value ? value : '';\n    let result = '';\n    const parts = value.split('|');\n\n    parts.forEach((part: string) => {\n      part = part.replace(new RegExp(/^tel:(.*?)$/), '<a href=\"tel:$1\" class=\"mr-3\">$1</a>');\n      part = part.replace(new RegExp(/^email:(.*?)$/), '<a href=\"mailto:$1\" class=\"mr-3\">$1</a>');\n      part = part.replace(new RegExp(/^url:(.*?)$/), '<a href=\"$1\" class=\"mr-3\" target=\"_blank\">$1</a>');\n      part = part.replace(new RegExp(/^description:(.*?)$/), '<span class=\"description\">$1</span>');\n\n      result += part + ' ';\n    });\n\n    return result;\n  }\n\n}\n","import { BaseModelInterface, DdataCoreModule, FieldsInterface, ValidatorService, ValidatorServiceInterface } from 'ddata-core';\nimport { InputHelperServiceInterface } from './input-helper-service.interface';\n\nexport class InputHelperService implements InputHelperServiceInterface {\n  validatorService: ValidatorServiceInterface = DdataCoreModule.InjectorInstance.get<ValidatorService>(ValidatorService);\n\n  constructor() { }\n\n  validateField(model: BaseModelInterface<any> & FieldsInterface<any>, field: string): boolean {\n    // handle missing validation rule\n    if (!model.validationRules[field]) {\n      console.error('Missing validation rule:' + field + ' from model: ' + model.constructor.name);\n\n      return false;\n    }\n\n    const isValid: boolean = this.validatorService.validate(model[field], model.validationRules[field]);\n\n    // if not valid & validation error is not set\n    if (!isValid && !model.validationErrors.includes(field)) {\n      model.validationErrors.push(field);\n\n      return false;\n    }\n\n    // it's valid & validation error set - need remove\n    if (model.validationErrors.includes(field)) {\n      model.validationErrors.splice( model.validationErrors.indexOf(field), 1);\n    }\n\n    return true;\n  }\n\n  getTitle(model: BaseModelInterface<any> & FieldsInterface<any>, field: string): string {\n    if (!model || !model.fields[field] || !model.fields[field].title) {\n      console.error(`The model not contains the '${field}' field's title. You need to set in your model the fields.${field}.title field.`);\n\n      return '';\n    }\n\n    return model.fields[field].title;\n  }\n\n  getLabel(model: BaseModelInterface<any> & FieldsInterface<any>, field: string): string {\n    if (!model || !model.fields[field] || !model.fields[field].label) {\n      console.error(`The model not contains the '${field}' field's label. You need to set in your model the fields.${field}.label field.`);\n\n      return '';\n    }\n\n    return model.fields[field].label;\n  }\n\n  getPlaceholder(model: BaseModelInterface<any> & FieldsInterface<any>, field: string): string {\n    if (!model || !model.fields[field] || !model.fields[field].placeholder) {\n      console.error(`The model not contains the '${field}' field's placeholder. You need to set in your model the fields.${field}.placeholder field.`);\n\n      return '';\n    }\n\n    return model.fields[field].title;\n  }\n\n  getPrepend(model: BaseModelInterface<any> & FieldsInterface<any>, field: string): string {\n    if (!model || !model.fields[field] || !model.fields[field].prepend) {\n      return '';\n    }\n\n    return model.fields[field].prepend;\n  }\n\n  getAppend(model: BaseModelInterface<any> & FieldsInterface<any>, field: string): string {\n    if (!model || !model.fields[field] || !model.fields[field].append) {\n      return '';\n    }\n\n    return model.fields[field].append;\n  }\n\n  isRequired(model: BaseModelInterface<any> & FieldsInterface<any>, field: string): boolean {\n    return model.validationRules[field].includes('required');\n  }\n\n  randChars(): string {\n    let result = '';\n    const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n    const charactersLength = characters.length;\n\n    for (let i = 0; i < 50; i++ ) {\n       result += characters.charAt(Math.floor(Math.random() * charactersLength));\n    }\n\n    return result;\n  }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IconDefinition } from '@fortawesome/fontawesome-svg-core';\nimport { faCheckSquare, faSquare } from '@fortawesome/free-solid-svg-icons';\nimport { BaseModel, BaseModelInterface, FieldsInterface } from 'ddata-core';\n\n@Component({\n  selector: 'dd-input-checkbox',\n  templateUrl: './checkbox.component.html',\n  styleUrls: ['./checkbox.component.css']\n})\nexport class DdataInputCheckboxComponent implements OnInit {\n  // tslint:disable: variable-name\n  _model: BaseModelInterface<any> & FieldsInterface<any> = new BaseModel();\n  _field = 'isValid';\n  _label = '';\n\n  @Input() disabled = false;\n  @Input() set model(value: BaseModelInterface<any> & FieldsInterface<any> | null) {\n    if (!value) {\n      value = new BaseModel();\n    }\n\n    this._model = value;\n\n    if (!!this._model.fields) {\n      if (!!this._model.fields[this._field]) {\n        this._label = this._model.fields[this._field].label ?? '';\n      }\n    }\n  }\n  get model(): BaseModelInterface<any> & FieldsInterface<any> {\n    return this._model;\n  }\n  @Input() set field(value: string) {\n    if (value === 'undefined') {\n      value = 'isValid';\n    }\n\n    this._field = value;\n  }\n  get field(): string {\n    return this._field;\n  }\n  @Input() showLabel = true;\n  @Input() showLabelAfter = true;\n  @Input() labelClass = 'col pl-2 col-form-label';\n  @Input() wrapperClass = 'd-flex';\n  @Input() iconOn: IconDefinition = faCheckSquare;\n  @Input() iconOff: IconDefinition = faSquare;\n\n  @Output() changed: EventEmitter<boolean> = new EventEmitter();\n\n  iterable = 0;\n\n  constructor() { }\n\n  ngOnInit(): void {\n    this.iterable = Math.floor(Math.random() * 100);\n  }\n\n  clicked(): void {\n    if (!this.disabled) {\n      this.model[this._field] = !this.model[this._field];\n      this.changed.emit( this.model[this._field] );\n    }\n  }\n\n  getIcon(): IconDefinition {\n    return !!this.model[this._field] ? this.iconOn : this.iconOff;\n  }\n}\n","<div [class]=\"wrapperClass\">\n\n  <label *ngIf=\"showLabel && !showLabelAfter\"\n    [class]=\"labelClass\"\n    [class.disabled]=\"disabled\"\n    [for]=\"_field + iterable\"\n    >\n    {{ _label }}:\n  </label>\n\n  <button type=\"button\" class=\"btn btn-light\"\n    (click)=\"clicked()\"\n    [disabled]=\"disabled\"\n    [id]=\"_field + iterable\"\n    [name]=\"_field + iterable\"\n    [title]=\"_label\"\n    >\n    <fa-icon [icon]=\"getIcon()\"></fa-icon>\n  </button>\n\n  <label *ngIf=\"showLabel && showLabelAfter\"\n    [class]=\"labelClass\"\n    [class.disabled]=\"disabled\"\n    [for]=\"_field + iterable\"\n    >\n    {{ _label }}\n  </label>\n\n</div>\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { BaseModel, BaseModelInterface, DdataCoreModule, FieldsInterface, ValidatorService } from 'ddata-core';\nimport { InputHelperService } from '../../services/input/helper/input-helper.service';\n\n@Component({\n  selector: 'dd-input-color',\n  templateUrl: './color-input.component.html',\n  styleUrls: ['./color-input.component.scss']\n})\nexport class DdataInputColorComponent implements OnInit {\n\n  // tslint:disable: variable-name\n  _field = '';\n  _title = '';\n  _label = '';\n  _placeholder = '';\n  _prepend = '';\n  _append = '';\n  _isRequired = false;\n  _model: BaseModelInterface<any> & FieldsInterface<any> = new BaseModel();\n\n  @Input() set model(value: BaseModelInterface<any> & FieldsInterface<any> | null) {\n    if (!value) {\n      value = new BaseModel();\n    }\n\n    this._model = value;\n\n    if (!!this._model && !!this._model.fields[this._field]) {\n      this._title = this.helperService.getTitle(this._model, this._field);\n      this._placeholder = this.helperService.getPlaceholder(this._model, this._field);\n      this._prepend = this.helperService.getPrepend(this._model, this._field);\n      this._append = this.helperService.getAppend(this._model, this._field);\n      this._label = this.helperService.getLabel(this._model, this._field);\n    }\n\n    if (!!this._model && !!this._model.validationRules[this._field]) {\n      this._isRequired = this.helperService.isRequired(this._model, this._field);\n    }\n  }\n  get model(): BaseModelInterface<any> & FieldsInterface<any> {\n    return this._model;\n  }\n  @Input() set field(value: string) {\n    if (value === 'undefined') {\n      value = 'isValid';\n    }\n\n    this._field = value;\n  }\n  @Input() set append(value: string) {\n    if (value === 'undefined') {\n      value = '';\n    }\n\n    this._append = value;\n  }\n  @Input() set prepend(value: string) {\n    if (value === 'undefined') {\n      value = '';\n    }\n\n    this._prepend = value;\n  }\n  @Input() set labelText(value: string) {\n    if (value === 'undefined') {\n      value = '';\n    }\n\n    this._label = value;\n  }\n  @Input() disabled = false;\n  @Input() type = 'text';\n  @Input() inputClass = 'form-control';\n  @Input() labelClass = 'col-12 col-md-3 px-0 col-form-label';\n  @Input() inputBlockClass = 'col-12 d-flex px-0';\n  @Input() inputBlockExtraClass = 'col-md-9';\n  @Input() showLabel = true;\n  @Input() autoFocus = false;\n  @Input() wrapperClass = 'd-flex flex-wrap';\n\n  @Output() changed: EventEmitter<BaseModelInterface<any> & FieldsInterface<any>> = new EventEmitter();\n\n  @ViewChild('inputBox') inputBox: ElementRef;\n\n  random: string = this.helperService.randChars();\n  toggle = false;\n  validatorService: ValidatorService = DdataCoreModule.InjectorInstance.get<ValidatorService>(ValidatorService);\n\n  constructor(\n    private helperService: InputHelperService,\n  ) { }\n\n  ngOnInit(): void {\n    if (this.autoFocus) {\n      this.inputBox.nativeElement.focus();\n    }\n  }\n\n  validateField(): void {\n    const isValid = this.helperService.validateField(this._model, this._field);\n\n    if (isValid) {\n      this.changed.emit(this._model);\n    }\n\n  }\n}\n","<div [class]=\"wrapperClass\">\n  <label [class]=\"labelClass\" [for]=\"_field + '_' + random\" *ngIf=\"showLabel\">\n    {{ _label }}:\n    <span *ngIf=\"_isRequired\"> *</span>\n  </label>\n\n  <div [class]=\"inputBlockClass\" [ngClass]=\"showLabel ? inputBlockExtraClass : ''\">\n    <div class=\"input-color-container\" [style.background]=\"model[_field]\" (click)=\"toggle=!toggle\"></div>\n\n    <div class=\"input-group-prepend\" *ngIf=\" _prepend != '' \">\n      <div class=\"input-group-text\">{{ _prepend }}</div>\n    </div>\n\n    <input\n      [class.invalid]=\"model.validationErrors.includes(_field)\"\n      [class]=\"inputClass\"\n      [(ngModel)]=\"model[_field]\"\n      [id]=\"_field + '_' + random\"\n      [attr.name]=\"_field + '_' + random\"\n      [placeholder]=\"_placeholder\"\n      [title]=\"_title\"\n      [disabled]=\"disabled\"\n      [type]=\"type\"\n      [(colorPicker)]=\"model[_field]\"\n      [(cpToggle)]=\"toggle\"\n      cpPosition=\"bottom\"\n      cpOutputFormat=\"hex\"\n      cpAlphaChannel=\"disabled\"\n      cpFallbackColor=\"#c0c0c0\"\n      (keyup)=\"validateField()\"\n      #inputBox>\n\n    <div class=\"input-group-append\" *ngIf=\"_append != ''\">\n      <div class=\"input-group-text\">{{ _append }}</div>\n    </div>\n  </div>\n\n</div>\n","import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { faCalendar } from '@fortawesome/free-solid-svg-icons';\nimport { NgbDate, NgbInputDatepicker } from '@ng-bootstrap/ng-bootstrap';\nimport { BaseModel, BaseModelInterface, DdataCoreModule, FieldsInterface } from 'ddata-core';\nimport * as moment from 'moment';\nimport { InputHelperServiceInterface } from '../../services/input/helper/input-helper-service.interface';\nimport { InputHelperService } from '../../services/input/helper/input-helper.service';\n\n@Component({\n  selector: 'dd-input-date',\n  templateUrl: './date-input.component.html',\n  styleUrls: ['./date-input.component.scss']\n})\nexport class DdataInputDateComponent implements OnInit {\n  helperService: InputHelperServiceInterface = DdataCoreModule.InjectorInstance.get<InputHelperServiceInterface>(InputHelperService);\n\n  // tslint:disable: variable-name\n  _field = '';\n  _title = '';\n  _label = '';\n  _placeholder = '';\n  _prepend = '';\n  _append = '';\n  _isRequired = false;\n  _model: BaseModelInterface<any> & FieldsInterface<any> = new BaseModel();\n  _moment = moment;\n\n  @Input() set moment(value: any) {\n    if (!value) {\n      value = moment;\n    }\n\n    this._moment = value;\n  }\n  @Input() set model(value: BaseModelInterface<any> & FieldsInterface<any> | null) {\n    if (!value) {\n      value = new BaseModel();\n    }\n\n    this._model = value;\n\n    if (!!this._model && !!this._model.fields[this._field]) {\n      this._title = this.helperService.getTitle(this._model, this._field);\n      this._placeholder = this.helperService.getPlaceholder(this._model, this._field);\n      this._prepend = this.helperService.getPrepend(this._model, this._field);\n      this._append = this.helperService.getAppend(this._model, this._field);\n      this._label = this.helperService.getLabel(this._model, this._field);\n    }\n\n    if (!!this._model && !!this._model.validationRules[this._field]) {\n      this._isRequired = this.helperService.isRequired(this._model, this._field);\n    }\n  }\n  get model(): BaseModelInterface<any> & FieldsInterface<any> {\n    return this._model;\n  }\n  @Input() set field(value: string) {\n    if (value === 'undefined') {\n      value = 'isValid';\n    }\n\n    this._field = value;\n  }\n  @Input() set append(value: string) {\n    if (value === 'undefined') {\n      value = '';\n    }\n\n    this._append = value;\n  }\n  @Input() set prepend(value: string) {\n    if (value === 'undefined') {\n      value = '';\n    }\n\n    this._prepend = value;\n  }\n  @Input() set labelText(value: string) {\n    if (value === 'undefined') {\n      value = '';\n    }\n\n    this._label = value;\n  }\n  @Input() disabled = false;\n  @Input() inputClass = 'form-control';\n  @Input() labelClass = 'col-12 col-md-3 px-0 col-form-label';\n  @Input() inputBlockClass = 'col-12 d-flex px-0';\n  @Input() inputBlockExtraClass = 'col-md-9';\n  @Input() showLabel = true;\n  @Input() autoFocus = false;\n  @Input() isViewOnly = false;\n  @Input() viewOnlyClass = 'form-control border-0 bg-light';\n  @Input() buttonClass = 'input-group-prepend btn btn-light mb-0';\n  @Input() wrapperClass = 'd-flex flex-wrap';\n  @Input() format = 'YYYY-MM-DD';\n  @Input() separator = '-';\n  @Input() labelApply = 'OK';\n  @Input() labelCancel = 'Cancel';\n  @Input() position: 'left' | 'center' | 'right' = 'center';\n  @Input() direction: 'up' | 'down' = 'down';\n  @Input() showIcon = true;\n  @Input() autoApply = true;\n  @Input() singleDatePicker = true;\n\n  @Output() changed: EventEmitter<BaseModelInterface<any> & FieldsInterface<any>> = new EventEmitter();\n\n  @ViewChild('inputBox') inputBox: ElementRef;\n\n  icon = {\n    calendar: faCalendar,\n  };\n  random: string = this.helperService.randChars();\n  selectedValue = !!this.model[this._field] ? this.model[this._field] : '';\n\n  constructor(\n    private changeDetector: ChangeDetectorRef,\n  ) { }\n\n  ngOnInit(): void {\n    if (!!this.model[this._field]) {\n      this.selectedValue = this.model[this._field];\n    }\n\n    if (this.autoFocus) {\n      this.inputBox.nativeElement.focus();\n    }\n  }\n\n\n  change(value: NgbDate): void {\n    this.selectedValue = value.year + '-' + value.month.toString().padStart(2, '0') + '-' + value.day.toString().padStart(2, '0');\n\n    this.model[this._field] = this.selectedValue;\n\n    const isValid = this.helperService.validateField(this._model, this._field);\n\n    if (isValid) {\n      this.changed.emit(this._model);\n    }\n  }\n\n  typeChange(event: any): void {\n    this._model[this._field] = event.target.value;\n  }\n}\n","<div [class]=\"wrapperClass\">\n  <label [class]=\"labelClass\" [for]=\"_field + '_' + random\" *ngIf=\"showLabel\">\n    {{ _label }}:\n    <span *ngIf=\"_is_required\"> *</span>\n  </label>\n\n  <div [class]=\"inputBlockClass\" [ngClass]=\"showLabel ? inputBlockExtraClass : ''\">\n\n    <div class=\"input-group-prepend\" *ngIf=\" _prepend != '' \">\n      <div class=\"input-group-text\">{{ _prepend }}</div>\n    </div>\n\n    <ng-container *ngIf=\"!isViewOnly\">\n\n        <input\n          [class.invalid]=\"model.validationErrors.includes(_field)\"\n          [class]=\"inputClass\"\n          [disabled]=\"disabled\"\n          [id]=\"_field + '_' + random\"\n          [name]=\"_field + '_' + random\"\n          [placeholder]=\"_placeholder\"\n          [title]=\"_title\"\n          [value]=\"model[_field]\"\n          (dateSelect)=\"change($event)\"\n          type=\"text\"\n          ngbDatepicker\n          #d=\"ngbDatepicker\"\n          (click)=\"d.toggle()\"\n          (change)=\"typeChange($event)\">\n\n    </ng-container>\n\n    <ng-container *ngIf=\"isViewOnly\">\n      <div [class]=\"viewOnlyClass\">{{ model[_field] }}</div>\n    </ng-container>\n\n    <label [class]=\"buttonClass\" *ngIf=\"!disabled && showIcon\" [for]=\"_field + '_' + random\">\n      <fa-icon [icon]=\"icon.calendar\"></fa-icon>\n    </label>\n\n    <div class=\"input-group-append\" *ngIf=\"_append != ''\">\n      <div class=\"input-group-text\">{{ _append }}</div>\n    </div>\n  </div>\n\n</div>\n","import { EventEmitter } from '@angular/core';\n// tslint:disable: deprecation\nimport { AfterViewInit, Component, ElementRef, Input, OnInit, ViewChild, Output } from '@angular/core';\nimport { BaseModelInterface, FieldsInterface, BaseModel, DdataCoreModule } from 'ddata-core';\nimport { InputHelperServiceInterface } from '../../services/input/helper/input-helper-service.interface';\nimport { InputHelperService } from '../../services/input/helper/input-helper.service';\n\n@Component({\n  selector: 'dd-input',\n  templateUrl: './input.component.html',\n  styleUrls: ['./input.component.scss']\n})\nexport class DdataInputComponent implements OnInit, AfterViewInit {\n  helperService: InputHelperServiceInterface = DdataCoreModule.InjectorInstance.get<InputHelperServiceInterface>(InputHelperService);\n\n  // tslint:disable: variable-name\n  _field = '';\n  _title = '';\n  _label = '';\n  _placeholder = '';\n  _prepend = '';\n  _append = '';\n  _max = '';\n  _isRequired = false;\n  _model: BaseModelInterface<any> & FieldsInterface<any> = new BaseModel();\n\n  @Input() set model(value: BaseModelInterface<any> & FieldsInterface<any> | null) {\n    // prevent undefined\n    if (!value) {\n      console.error('The input-box component get undefined model');\n\n      return;\n    }\n    this._model = value;\n\n    if (!this._model.fields) {\n      console.error(`Your ${this._model.model_name}'s 'fields' field is`, this._model.fields);\n\n      return;\n    }\n\n    if (!this._model.fields[this._field]) {\n      console.error(`The ${this._model.model_name}'s ${this._field} field is `, this._model.fields[this._field]);\n\n      return;\n    }\n\n    if (!!this._model && !!this._model.fields[this._field]) {\n      this._title = this.helperService.getTitle(this._model, this._field);\n      this._placeholder = this.helperService.getPlaceholder(this._model, this._field);\n      this._prepend = this.helperService.getPrepend(this._model, this._field);\n      this._append = this.helperService.getAppend(this._model, this._field);\n      this._label = this.helperService.getLabel(this._model, this._field);\n    }\n\n    if (!!this._model && !!this._model.validationRules[this._field]) {\n      this._isRequired = this.helperService.isRequired(this._model, this._field);\n    }\n  }\n  get model(): BaseModelInterface<any> & FieldsInterface<any> {\n    return this._model;\n  }\n  @Input() set field(value: string) {\n    if (value === 'undefined') {\n      value = 'isValid';\n    }\n\n    this._field = value;\n  }\n  @Input() set append(value: string) {\n    if (value === 'undefined') {\n      value = '';\n    }\n\n    this._append = value;\n  }\n  @Input() set prepend(value: string) {\n    if (value === 'undefined') {\n      value = '';\n    }\n\n    this._prepend = value;\n  }\n  @Input() set labelText(value: string) {\n    if (value === 'undefined') {\n      value = '';\n    }\n\n    this._label = value;\n  }\n  @Input() disabled = false;\n  @Input() isViewOnly = false;\n  @Input() type = 'text';\n  @Input() inputClass = 'form-control';\n  @Input() labelClass = 'col-12 col-md-3 px-0 col-form-label';\n  @Input() inputBlockClass = 'col-12 d-flex px-0';\n  @Input() inputBlockExtraClass = 'col-md-9';\n  @Input() viewOnlyClass = 'form-control border-0 bg-light';\n  @Input() wrapperClass = 'd-flex flex-wrap';\n  @Input() showLabel = true;\n  @Input() autoFocus = false;\n  @Input() enableCharacterCounter = false;\n  @Input() enableWordCounter = false;\n  @Input() maxLength = 255;\n  @Input() maxWords = 7;\n  @Input() wordCounterWarningMessage = '';\n\n  @Output() changed: EventEmitter<any> = new EventEmitter();\n\n  @Output() readonly maxLengthReached: EventEmitter<boolean> = new EventEmitter();\n\n  @ViewChild('inputBox') inputBox: ElementRef;\n\n  random: string = this.helperService.randChars();\n\n  displayWordCounterWarning = false;\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit(): void {\n    if (this.autoFocus) {\n      this.inputBox.nativeElement.focus();\n    }\n  }\n\n  validateField(): void {\n    const isValid = this.helperService.validateField(this._model, this._field);\n\n    if (isValid) {\n      this.changed.emit(this._model);\n    }\n  }\n\n  setWordCounterWarning(value: boolean): void {\n    this.displayWordCounterWarning = value;\n  }\n}\n","<div [class]=\"wrapperClass\">\n  <label [class]=\"labelClass\" [for]=\"_field + '_' + random\" *ngIf=\"showLabel\">\n    {{ _label }}:\n    <span *ngIf=\"_isRequired\"> *</span>\n  </label>\n  <div [class]=\"inputBlockClass\" [ngClass]=\"showLabel ? inputBlockExtraClass : ''\">\n    <div class=\"input-group-prepend\" *ngIf=\" _prepend != '' \">\n      <div class=\"input-group-text\">{{ _prepend }}</div>\n    </div>\n\n    <ng-container *ngIf=\"!isViewOnly\">\n      <input\n        [class.invalid]=\"model.validationErrors.includes(_field)\"\n        [class]=\"inputClass\"\n        [(ngModel)]=\"model[_field]\"\n        [id]=\"_field + '_' + random\"\n        [attr.name]=\"_field + '_' + random\"\n        [placeholder]=\"_placeholder\"\n        [title]=\"_title\"\n        [disabled]=\"disabled\"\n        [type]=\"type\"\n        [autocomplete]=\"random\"\n        (keyup)=\"validateField()\"\n        #inputBox>\n        <ng-container *ngIf=\"enableCharacterCounter\">\n          <character-counter [currentLength]=\"model[_field]?.length || 0\" [maxLength]=\"maxLength\"></character-counter>\n        </ng-container>\n        <ng-container *ngIf=\"enableWordCounter\">\n          <app-word-counter\n          [currentLength]=\"model[_field]\"\n          [maxLength]=\"maxWords\"\n          (maxLentghReached)=\"showWordCounterWarning = $event\"\n        ></app-word-counter>\n        </ng-container>\n    </ng-container>\n\n    <ng-container *ngIf=\"isViewOnly\">\n      <div\n        [id]=\"_field + '_' + random\"\n        [class]=\"viewOnlyClass\"\n        [attr.name]=\"_field + '_' + random\"\n        [title]=\"_title\">\n          {{ model[_field] }}\n      </div>\n    </ng-container>\n    <div class=\"input-group-append\" *ngIf=\"_append != ''\">\n      <div class=\"input-group-text\">{{ _append }}</div>\n    </div>\n  </div>\n  <div *ngIf=\"displayWordCounterWarning && wordCounterWarningMessage !== ''\" class=\"d-flex pb-2\">\n    <div class=\"col-12 col-md-7 offset-md-3 bg-warning p-2 rounded\">\n      {{ wordCounterWarningMessage }}\n    </div>\n  </div>\n</div>\n","import { Search } from './search.model';\nimport { SearchInterface } from './search.interface';\n\nexport class BaseSearch extends Search implements SearchInterface {\n  // only for prevent undefined values\n}\n","import { SearchResult } from './search-result.model';\nimport { SearchResultInterface } from './search-result.interface';\n\nexport class BaseSearchResult extends SearchResult implements SearchResultInterface {\n  // only for prevent undefined values\n}\n","\nimport { Component, ElementRef, HostListener, Input, OnDestroy, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { faSearch } from '@fortawesome/free-solid-svg-icons';\n// tslint:disable-next-line: max-line-length\nimport { DdataCoreModule, Paginate, PaginateInterface, ProxyFactoryService, ProxyServiceInterface, SpinnerService, SpinnerServiceInterface } from 'ddata-core';\nimport { BehaviorSubject, fromEvent, Observable } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, finalize, map, switchMap, take, takeUntil, tap } from 'rxjs/operators';\nimport { IconSetInterface } from '../../models/icon-set/icon-set.interface';\nimport { BaseSearch } from '../../models/search/base-search.model';\nimport { BaseSearchResult } from '../../models/search/result/base-search-result.model';\nimport { SearchResultInterface } from '../../models/search/result/search-result.interface';\nimport { SearchInterface } from '../../models/search/search.interface';\n\n@Component({\n  selector: 'dd-search',\n  templateUrl: './search.component.html',\n  styleUrls: ['./search.component.scss']\n})\nexport class DdataInputSearchComponent implements OnDestroy {\n  @Input() model: SearchInterface = new BaseSearch().init();\n  @Input() pageNumber = 0;\n  @Input() service: ProxyServiceInterface<SearchInterface> = new ProxyFactoryService<SearchInterface>().get(BaseSearch);\n\n  icon: IconSetInterface = {\n    search: faSearch,\n  };\n  isActive: BehaviorSubject<boolean> = new BehaviorSubject(false);\n  models: SearchResultInterface[] = [];\n  paginate: PaginateInterface = new Paginate(BaseSearchResult);\n  spinner: SpinnerServiceInterface = DdataCoreModule.InjectorInstance.get<SpinnerServiceInterface>(SpinnerService);\n\n  @ViewChild('searchInput') searchInput: ElementRef;\n\n  @HostListener('document:click', ['$event']) clickout(event: any): void {\n    if (!this.elementRef.nativeElement.contains(event.target)) {\n      // click out of component\n      this.close();\n    }\n  }\n\n  constructor(\n    private elementRef: ElementRef,\n    private router: Router,\n  ) {}\n\n  ngOnDestroy(): void {\n    this.isActive.next(false);\n  }\n\n  close(): void {\n    this.models = [];\n    this.isActive.next(false);\n  }\n\n  search(): Observable<any> {\n    // don't run if search string is empty, but reset models & close previous connection\n    if (this.model.searchText === '') {\n      this.isActive.next(false);\n      this.models = [];\n\n      return;\n    }\n\n    // close previous connection\n    this.isActive.next(false);\n\n    return fromEvent(this.searchInput.nativeElement, 'keyup').pipe(\n      // run after 500 ms of last keyup\n      debounceTime(500),\n\n      // run only if value is changed\n      distinctUntilChanged(),\n\n      // run only if search input is still active and value is not empty string\n      takeUntil(this.isActive),\n\n      // switch on spinner\n      tap(() => this.spinner.on('search')),\n\n      // run search method\n      switchMap(() => this.service.search(this.model.prepareToSave(), this.pageNumber).pipe(\n        map((result: PaginateInterface) => {\n          this.setResult(result);\n\n          return result;\n        })\n      )),\n\n      // switch off spinner\n      finalize(() => this.spinner.off('search')),\n\n    );\n  }\n\n  changePage(turnToPage: number): void {\n    this.service.getPage(turnToPage).pipe(\n      // run only if search input is still active and value is not empty string\n      takeUntil(this.isActive),\n\n      // take only last result\n      take(1),\n\n      // switch on spinner\n      tap(() => this.spinner.on('global-search-change-page')),\n\n      // set result\n      map((result: PaginateInterface) => {\n        this.setResult(result);\n\n        return result;\n      }),\n\n      // switch off spinner\n      finalize(() => this.spinner.off('global-search-change-page')),\n\n    ).subscribe();\n  }\n\n  go(model: SearchInterface): void {\n    const url = model.url + '/edit/' + model.id;\n\n    this.close();\n    this.router.navigateByUrl(url);\n  }\n\n  private setResult(result: PaginateInterface): void {\n    this.paginate = result;\n    this.models = [];\n\n    result.data.forEach((item: SearchResultInterface) => {\n      const model = new BaseSearchResult().init(item);\n      this.models.push(model);\n    });\n  }\n}\n","<div class=\"col-12 px-0\">\n  <!-- kereső input -->\n  <div class=\"input-group\" id=\"dropdownMenuButton\">\n    <input #searchInput type=\"text\" autocomplete=\"off\" class=\"form-control border-0\" placeholder=\"Keresés...\"\n      name=\"search-string\" [(ngModel)]=\"model.searchText\">\n\n    <div class=\"input-group-append\">\n      <button type=\"submit\" class=\"btn btn-secondary border-0\" (click)=\"search()\">\n        <fa-icon [icon]=\"icon.search\" [fixedWidth]=\"true\"></fa-icon>\n      </button>\n    </div>\n\n  </div>\n\n  <!-- dropdown menü -->\n  <div class=\"search-dropdown col-12\" *ngIf=\"models.length > 0\" [ngStyle]=\"{'display': models.length > 0 ? 'block' : 'none' }\">\n    <div class=\"border-bottom text-left dropdown-item\" *ngFor=\"let model of models\" (click)=\"go(model)\">\n      <div class=\"row\">\n        <!-- icon -->\n        <div class=\"col-1 px-0 text-center text-muted\">\n          <fa-icon [icon]=\"model.icon\" [fixedWidth]=\"true\"></fa-icon>\n        </div>\n        <div class=\"col-10\">\n          <!-- name -->\n          <div class=\"row\">\n            <div class=\"col-12 font-bold\">\n              {{ model.name }}\n            </div>\n          </div>\n          <!-- description -->\n          <div class=\"row\">\n            <div class=\"col-12 small text-muted\" [innerHTML]=\"model.description | description\"></div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <app-paginate [paginate]=\"paginate\" (changePage)=\"changePage($event)\"></app-paginate>\n  </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { BaseModelInterface, DdataCoreModule, FieldsInterface } from 'ddata-core';\nimport { InputHelperServiceInterface } from '../../../services/input/helper/input-helper-service.interface';\nimport { InputHelperService } from '../../../services/input/helper/input-helper.service';\n\n@Component({\n  selector: 'simple-select',\n  templateUrl: './simple-select.component.html',\n  styleUrls: ['./simple-select.component.scss']\n})\nexport class DdataSimpleSelectComponent {\n  private helperService: InputHelperServiceInterface =\n    DdataCoreModule.InjectorInstance.get<InputHelperServiceInterface>(InputHelperService);\n  private random: string = this.helperService.randChars();\n  private selectedModel: any;\n\n\n  // look & feel\n  @Input() wrapperClass = 'd-flex flex-wrap';\n  @Input() inputBlockClass = 'col-12 d-flex px-0';\n  @Input() inputBlockExtraClass = 'col-md-9';\n  @Input() unselectedText = 'Válassz';\n\n  // behavior\n  @Input() isRequire = false;\n  @Input() disabledAppearance = false;\n  @Input() disabled = false;\n  @Input() addEmptyOption = true;\n\n  // label\n  @Input() labelClass = 'col-12 col-md-3 px-0 col-form-label';\n  @Input() showLabel = true;\n  @Input() labelText = '';\n\n  // additional texts\n  @Input() prepend = '';\n  @Input() append = '';\n\n  // data\n  @Input() model: BaseModelInterface<any> & FieldsInterface<any>;\n  @Input() field = 'id';\n  @Input() items: any[] = [];\n  @Input() text = 'name';\n  @Input() valueField = 'id';\n\n  @Output() selected: EventEmitter<any> = new EventEmitter();\n  @Output() selectModel: EventEmitter<any> = new EventEmitter();\n\n  get id(): string {\n    return `${this.field}_${this.random}`;\n  }\n\n  selectItem(): void {\n    this.selectedModel = this.items.find(item => item[this.field] === this.model[this.field]);\n\n    this.selected.emit(this.model[this.field]);\n    this.selectModel.emit(this.selectedModel);\n  }\n}\n","<div [class]=\"wrapperClass\">\n  <!-- label -->\n  <label\n    [class]=\"labelClass\"\n    [for]=\"id\"\n    *ngIf=\"showLabel\"\n  >\n    {{ labelText }}:\n\n    <span *ngIf=\"isRequired\"> *</span>\n  </label>\n\n\n  <!-- select -->\n  <div\n    [class]=\"inputBlockClass\"\n    [ngClass]=\"showLabel ? inputBlockExtraClass : ''\"\n  >\n\n    <!-- prepend -->\n    <div class=\"input-group-prepend\" *ngIf=\"!!prepend\">\n      <div class=\"input-group-text\">{{ prepend }}</div>\n    </div>\n\n    <select class=\"form-select\"\n      [(ngModel)]=\"model[field]\"\n      [class.invalid]=\"model.validationErrors.includes(field)\"\n      [class.disable-appearance]=\"disabledAppearance\"\n      [disabled]=\"disabled\"\n      (change)=\"selectItem()\"\n    >\n\n      <option *ngIf=\"addEmptyOption\" data-default value=\"0\">\n        -- {{ unselectedText }} --\n      </option>\n\n      <ng-container *ngFor=\"let item of items\">\n        <option\n          [value]=\"item[valueField]\"\n          [selected]=\"item[valueField] === model[field]\"\n        >\n          {{ item[text] }}\n        </option>\n      </ng-container>\n\n    </select>\n\n    <!-- append -->\n    <div class=\"input-group-append\" *ngIf=\"!!append\">\n      <div class=\"input-group-text\">{{ append }}</div>\n    </div>\n  </div>\n</div>\n","import { ChangeDetectorRef } from '@angular/core';\nimport { BaseModelInterface } from 'ddata-core';\nimport { DialogContentItem } from '../../models/dialog/content/dialog-content-item';\nimport { DialogContentInterface, DialogContentWithOptionsInterface } from '../../models/dialog/content/dialog-content.interface';\n\nexport class ComponentRendererService {\n  method: 'create-edit' | 'list' = 'list';\n  settings: DialogContentWithOptionsInterface;\n  dialogHost: any;\n  componentRef: any;\n  instance: DialogContentInterface;\n\n  constructor(private readonly changeDetector: ChangeDetectorRef) {\n  }\n\n  setMethod(method: 'create-edit' | 'list' = 'list'): ComponentRendererService {\n    this.method = method;\n\n    return this;\n  }\n\n  setSettings(settings: DialogContentWithOptionsInterface): ComponentRendererService {\n    this.settings = settings;\n\n    return this;\n  }\n\n  setDialogHost(dialogHost: any): ComponentRendererService {\n    if (!dialogHost) {\n      console.error(`DialogHost can't be undefined. DialogHost is not set.`);\n\n      return this;\n    }\n\n    this.dialogHost = dialogHost;\n\n    return this;\n  }\n\n  setComponentRef(componentRef: any): ComponentRendererService {\n    this.componentRef = componentRef;\n\n    return this;\n  }\n\n  render(): DialogContentInterface {\n    if (!this.dialogHost) {\n      console.error('dialogHost is not set');\n      return;\n    }\n\n    const dialogContent: DialogContentItem = this.method === 'create-edit' ?\n      new DialogContentItem(this.settings?.createEditComponent, this.settings?.createEditOptions) :\n      new DialogContentItem(this.settings?.listComponent, this.settings?.listOptions);\n\n    this.changeDetector.detectChanges();\n\n    this.dialogHost.clear();\n\n    this.componentRef = this.dialogHost.createComponent(dialogContent.component);\n\n    if (!this.componentRef) {\n      console.error('componentRef is not set', this.componentRef);\n\n      return;\n    }\n\n    this.componentRef.instance.model = dialogContent.data.model;\n\n    this.instance = this.componentRef.instance as DialogContentInterface;\n\n    if (this.method === 'list') {\n      this.configureListComponent(dialogContent);\n    }\n\n    this.configureAnyComponent();\n\n    return this.instance;\n  }\n\n  getSelectedModels(): Array<BaseModelInterface<any>> {\n    if (!this.instance) {\n      return [];\n    }\n\n    return this.instance.selectedElements;\n  }\n\n  setSelectedModels(selectedModels: Array<BaseModelInterface<any>>): ComponentRendererService {\n    if (!this.instance) {\n      return this;\n    }\n\n    this.changeDetector.detectChanges();\n\n    this.instance.selectedElements = selectedModels ?? [];\n\n    return this;\n  }\n\n  resetSelectedModels(): ComponentRendererService {\n    if (!this.instance) {\n      return this;\n    }\n\n    this.instance.selectedElements = [];\n\n    return this;\n  }\n\n  private configureListComponent(dialogContent: DialogContentItem): void {\n    if (!this.settings || !this.settings.listComponent) {\n      return;\n    }\n\n    if (!dialogContent.data) {\n      return;\n    }\n\n    if (!this.instance) {\n      console.error('Component instance is not set.');\n\n      return;\n    }\n\n    this.instance.multipleSelectEnabled = dialogContent.data.multipleSelectEnabled;\n    this.instance.isSelectionList = dialogContent.data.isSelectionList;\n    this.instance.loadData = dialogContent.data.loadData;\n    this.instance.filter = dialogContent.data.filter ?? {};\n\n    // if there is preset models\n    if (!dialogContent.data.loadData && !!dialogContent.data.models) {\n      // set preset models\n      this.instance.models = dialogContent.data.models;\n\n      // send a notification to the list component to update their material table and other things\n      this.instance.datasArrived.next(Math.random());\n    }\n  }\n\n  private configureAnyComponent(): void {\n    this.instance.isModal = true;\n  }\n}\n","import {\n  ChangeDetectorRef, Component, EventEmitter, HostListener, Input, OnInit, Output, ViewChild, ViewContainerRef\n} from '@angular/core';\nimport { BaseModelInterface, FieldsInterface } from 'ddata-core';\nimport { ComponentRendererService } from '../../../../services/select/component-renderer.service';\nimport { Subscription } from 'rxjs';\nimport { map, tap } from 'rxjs/operators';\nimport { DialogContentWithOptionsInterface } from '../../../../models/dialog/content/dialog-content.interface';\nimport { SelectType } from '../../select.type';\n\n@Component({\n  selector: 'multiple-select-dialog',\n  templateUrl: './multiple-select-dialog.component.html',\n  styleUrls: ['./multiple-select-dialog.component.scss']\n})\nexport class DdataMultipleSelectDialogComponent implements OnInit {\n  private componentRendererService: ComponentRendererService;\n  private componentRef: any;\n  private subscription: Subscription = new Subscription();\n  private selectedModel: any;\n\n  @Input() settings: DialogContentWithOptionsInterface;\n  @Input() method: 'create-edit' | 'list' = 'list';\n  @Input() mode: SelectType = 'multiple';\n\n  // for example: an Address model\n  @Input() model: BaseModelInterface<any> & FieldsInterface<any>;\n\n  // for example: tag_id\n  @Input() field = 'id';\n\n  // for example: tag's name\n  @Input() text = 'name';\n\n  // for example: tag.id\n  @Input() valueField = 'id';\n\n  // for example: Array of Tag\n  @Input() items: any[] = [];\n  @Input() modalTitle = 'Dialog';\n\n  @Output() selectionFinished: EventEmitter<any> = new EventEmitter();\n  @Output() selected: EventEmitter<any> = new EventEmitter();\n  @Output() selectModel: EventEmitter<any> = new EventEmitter();\n\n  @ViewChild('dialogHost', { read: ViewContainerRef }) dialogHost: ViewContainerRef;\n\n  // close dialog on esc\n  @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent): void {\n    this.selectionFinished.emit();\n  }\n\n  constructor(readonly changeDetector: ChangeDetectorRef) {\n    this.componentRendererService = new ComponentRendererService(changeDetector);\n  }\n\n  ngOnInit(): void {\n    // get selected items from model's field\n    this.getSelectedItems();\n  }\n\n  ngAfterViewInit(): void {\n    // render component in dialog\n    const instance = this.componentRendererService\n      .setMethod(this.method)\n      .setSettings(this.settings)\n      .setDialogHost(this.dialogHost)\n      .setComponentRef(this.componentRef)\n      .render();\n\n    if (!instance) {\n      console.error('Component for dialog is not defined');\n\n      return;\n    }\n\n    if (this.mode === 'single') {\n      const selectedModel = this.model[this.getObjectFieldName()];\n\n      if (!!selectedModel) {\n        this.componentRendererService.setSelectedModels([\n          selectedModel\n        ]);\n      }\n    }\n\n    if (this.mode === 'multiple') {\n      this.componentRendererService.setSelectedModels(\n        this.model[this.field]\n      );\n    }\n\n    // for edit component\n    this.subscription.add(instance.saveModel.subscribe((model: any) => this.setModel(model)));\n\n    this.subscription.add(\n      instance.select.pipe(\n        tap(() => {\n          if (this.mode === 'multiple') {\n            this.model[this.field] = [];\n            this.settings.listOptions.selectedElements = [];\n          }\n        }),\n\n        map((models: any[]) => {\n          if (models === null) {\n            return models;\n          }\n\n          this.emitEvents(models);\n\n          return models;\n        }),\n      ).subscribe()\n    );\n  }\n\n  private getSelectedItems(): void {\n    if (this.mode === 'single') {\n      this.selectedModel = this.model[this.field];\n    }\n  }\n\n  hideModal(): void {\n    // get dialog component instance\n    const selectedElements = this.componentRendererService.getSelectedModels();\n\n    // emit selected elements\n    this.emitEvents(selectedElements);\n\n    // reset selected elements\n    this.componentRendererService.resetSelectedModels();\n  }\n\n  private emitEvents(models: any[]): void {\n    models.forEach((model: any) => {\n      // this must be happen on multiple select and on signle select case too\n      this.selectModel.emit(model);\n    });\n\n    this.selectionFinished.emit(models);\n  }\n\n  private getObjectFieldName(): string {\n    return this.field.split('_id')[0];\n  }\n\n  private setModel(model: any): any {\n    // TODO test this on edit case\n  }\n}\n","<!-- overlay -->\n<div class=\"modal-overlay active\"></div>\n\n<!-- modal -->\n<div class=\"modal\" tabindex=\"-1\" role=\"dialog\">\n  <div class=\"modal-dialog modal-dialog-centered modal-lg modal-dialog-scrollable\" role=\"document\">\n    <div class=\"modal-content\">\n      <!-- header -->\n      <div class=\"modal-header\">\n        <div class=\"col-10\">\n          <h5 class=\"modal-title\">\n            {{ modalTitle }}\n          </h5>\n        </div>\n\n        <div class=\"col-2 text-end\">\n          <button type=\"button\" class=\"btn btn-light close\" (click)=\"hideModal()\" aria-label=\"Bezárás\">\n            <span aria-hidden=\"true\">&times;</span>\n          </button>\n        </div>\n      </div>\n\n      <!-- body -->\n      <div class=\"modal-body\">\n        <ng-template dynamicComponent #dialogHost></ng-template>\n      </div>\n\n    </div>\n  </div>\n</div>\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { BaseModelInterface, DdataCoreModule, FieldsInterface } from 'ddata-core';\nimport { DialogContentWithOptionsInterface } from '../../../models/dialog/content/dialog-content.interface';\nimport { InputHelperServiceInterface } from '../../../services/input/helper/input-helper-service.interface';\nimport { InputHelperService } from '../../../services/input/helper/input-helper.service';\nimport { SelectType } from '../select.type';\n\n@Component({\n  selector: 'multiple-select',\n  templateUrl: './multiple-select.component.html',\n  styleUrls: ['./multiple-select.component.scss']\n})\nexport class DdataMultipleSelectComponent implements OnInit {\n  private helperService: InputHelperServiceInterface =\n    DdataCoreModule.InjectorInstance.get<InputHelperServiceInterface>(InputHelperService);\n  private random: string = this.helperService.randChars();\n\n  // look & feel\n  @Input() wrapperClass = 'd-flex flex-wrap';\n  @Input() inputBlockClass = 'col-12 d-flex px-0';\n  @Input() inputBlockExtraClass = 'col-md-9';\n  @Input() unselectedText = 'Válassz';\n\n  // behavior\n  @Input() mode: SelectType = 'multiple';\n  @Input() isRequire = false;\n  @Input() disabledAppearance = false;\n  @Input() disabled = false;\n  @Input() addEmptyOption = true;\n\n  // label\n  @Input() labelClass = 'col-12 col-md-3 px-0 col-form-label';\n  @Input() showLabel = true;\n  @Input() labelText = '';\n\n  // additional texts\n  @Input() prepend = '';\n  @Input() append = '';\n\n  // data\n  @Input() model: BaseModelInterface<any> & FieldsInterface<any>;\n  @Input() field = 'id';\n  @Input() items: any[] = [];\n  @Input() text = 'name';\n  @Input() valueField = 'id';\n\n  // selected items\n  @Input() disableShowSelectedItems = false;\n  @Input() showIcon = false;\n  @Input() selectedElementsBlockClass = 'col-12 d-flex flex-wrap px-0';\n  @Input() selectedElementsBlockExtraClass = 'col-md-9 d-flex flex-wrap';\n  // dialog\n  @Input() set dialogSettings(value: DialogContentWithOptionsInterface) {\n    if (!value) {\n      console.error(`You try to use dd-select as multiple select, but not defined dialogSettings. Please define it.`);\n\n      return;\n    }\n\n    this._dialogSettings = value;\n  }\n\n  @Output() selected: EventEmitter<any> = new EventEmitter<any>();\n  @Output() selectModel: EventEmitter<any> = new EventEmitter<any>();\n\n  get id(): string {\n    return `${this.field}_${this.random}`;\n  }\n\n  get selectedModelName(): string {\n    return this.model[this.getObjectFieldName()][this.text];\n  }\n\n  isModalVisible = false;\n  _dialogSettings: DialogContentWithOptionsInterface;\n\n  constructor(private readonly changeDetector: ChangeDetectorRef) {}\n\n  ngOnInit(): void {\n  }\n\n  showModal(method: 'create-edit' | 'list'): void {\n    this.isModalVisible = true;\n\n    this.changeDetector.detectChanges();\n  }\n\n  hideModal(): void {\n    this.isModalVisible = false;\n  }\n\n  selectedEmit(event: any): void {\n    this.selected.emit(event);\n  }\n\n  selectModelEmit(event: any): void {\n    event.is_selected = true;\n\n    if (this.mode === 'single') {\n      this.model[this.getObjectFieldName()] = event;\n      this.model[this.field] = event.id;\n    }\n\n    if (this.mode === 'multiple') {\n      // TODO avoid duplicate add\n      this.model[this.getObjectFieldName()].push(event);\n    }\n\n    this.selectModel.emit(event);\n  }\n\n  deleteFromMultipleSelectedList(item: any): void {\n    const index = this.model[this.field].indexOf(item);\n    if (index !== -1) {\n        this.model[this.field].splice(index, 1);\n    }\n\n    const dialogIndex = this._dialogSettings.listOptions.selectedElements.indexOf(item);\n\n    if (dialogIndex !== -1) {\n        this._dialogSettings.listOptions.selectedElements.splice(dialogIndex, 1);\n    }\n}\n\n  getObjectFieldName(): string {\n    return this.field.split('_id')[0];\n  }\n}\n","<div [class]=\"wrapperClass\">\n  <!-- label -->\n  <label\n    [class]=\"labelClass\"\n    [for]=\"id\"\n    *ngIf=\"showLabel\"\n  >\n    {{ labelText }}:\n\n    <span *ngIf=\"isRequired\"> *</span>\n  </label>\n\n  <div\n    [class]=\"inputBlockClass\"\n    [ngClass]=\"showLabel ? inputBlockExtraClass : ''\"\n  >\n    <!-- prepend -->\n    <div class=\"input-group-prepend\" *ngIf=\"!!prepend\">\n      <div class=\"input-group-text\">{{ prepend }}</div>\n    </div>\n\n    <!-- select -->\n    <div\n      class=\"form-control multiple-select text-muted\"\n      [ngClass]=\"{'disabled': disabled}\"\n      (click)=\"showModal('list')\"\n    >\n      <!-- if there isn't any selected items -->\n      <ng-container *ngIf=\"!model[field] || model[field].length === 0; else hasSelectedItems\">\n        {{ '-- ' + unselectedText + ' --' }}\n      </ng-container>\n\n      <ng-template #hasSelectedItems>\n        <!-- multiple select mode -->\n        <ng-container *ngIf=\"mode === 'multiple'\">\n          {{ model[field].length + ' elem kiválasztva' }}\n        </ng-container>\n\n        <!-- single select mode -->\n        <ng-container *ngIf=\"mode === 'single'\">\n          {{ selectedModelName }}\n        </ng-container>\n      </ng-template>\n    </div>\n\n    <!-- append -->\n    <div class=\"input-group-append\" *ngIf=\"!!append\">\n      <div class=\"input-group-text\">{{ append }}</div>\n    </div>\n  </div>\n\n</div>\n<!-- multiple select - selected items -->\n<ng-container *ngIf=\"mode === 'multiple' && !disableShowSelectedItems\">\n  <div *ngIf=\"model[field].length > 0\" class=\"d-flex justify-content-end\">\n    <div [class]=\"selectedElementsBlockClass\" [ngClass]=\"showLabel ? selectedElementsBlockExtraClass : ''\">\n      <ng-container *ngFor=\"let element of model[field]\">\n        <dd-tag\n          [tag]=\"element\"\n          [class]=\"'d-inline-block pl-2 mb-1 bg-light me-2'\"\n          [showIcon]=\"showIcon\"\n          (delete)=\"deleteFromMultipleSelectedList(element)\"\n        ></dd-tag>\n      </ng-container>\n    </div>\n  </div>\n</ng-container>\n\n<ng-container *ngIf=\"isModalVisible\">\n  <multiple-select-dialog\n    [settings]=\"_dialogSettings\"\n    [method]=\"'list'\"\n    [mode]=\"mode\"\n    [model]=\"model\"\n    [field]=\"field\"\n    [items]=\"items\"\n    [text]=\"text\"\n    [valueField]=\"valueField\"\n\n    (selectionFinished)=\"hideModal()\"\n    (selected)=\"selectedEmit($event)\"\n    (selectModel)=\"selectModelEmit($event)\"\n    ></multiple-select-dialog>\n</ng-container>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { BaseModel, BaseModelInterface, DdataCoreModule, FieldsInterface } from 'ddata-core';\nimport { DialogContentWithOptionsInterface } from '../../models/dialog/content/dialog-content.interface';\nimport { InputHelperServiceInterface } from '../../services/input/helper/input-helper-service.interface';\nimport { InputHelperService } from '../../services/input/helper/input-helper.service';\nimport { SelectType } from './select.type';\n\n@Component({\n  selector: 'dd-select',\n  templateUrl: './select.component.html',\n  styleUrls: ['./select.component.scss']\n})\nexport class DdataSelectComponent implements OnInit {\n  private helperService: InputHelperServiceInterface =\n    DdataCoreModule.InjectorInstance.get<InputHelperServiceInterface>(InputHelperService);\n  _field = '';\n  _title = '';\n  _label = '';\n  _prepend = '';\n  _append = '';\n  _isRequired = false;\n  _items = [];\n  _model: BaseModelInterface<any> & FieldsInterface<any> = new BaseModel();\n  _selectedModelName = '';\n  _mode = 'simple';\n\n  /**\n   * @deprecated use `mode` input attribute\n   */\n  @Input() set fakeSingleSelect(value: boolean) {\n    if (value === true) {\n      this._mode = 'single';\n    }\n  }\n  /**\n   * @deprecated use `mode` input attribute\n   */\n  get fakeSingleSelect(): boolean {\n    return this._mode === 'single';\n  }\n\n  /**\n   * @deprecated use `mode` input attribute\n   */\n  @Input() set multipleSelect(value: boolean) {\n    if (value === true) {\n      this._mode = 'multiple';\n    }\n  }\n  /**\n   * @deprecated use `mode` input attribute\n   */\n  get multipleSelect(): boolean {\n    return this._mode === 'multiple';\n  }\n\n  @Input() set mode(value: SelectType) {\n    this._mode = value ?? 'simple';\n  }\n\n  @Input() set model(value: BaseModelInterface<any> & FieldsInterface<any> | null) {\n    if (!value) {\n      return;\n    }\n\n    this._model = value;\n\n    // if model's 'fields' is not defined or null\n    if (!this._model.fields) {\n      console.error(`Your ${this._model.model_name}'s 'fields' field is`, this._model.fields);\n\n      return;\n    }\n\n    // if model's used field is not defined or null\n    if (!this._model.fields[this._field]) {\n      console.error(`The ${this._model.model_name}'s ${this._field} field is `, this._model.fields[this._field]);\n\n      return;\n    }\n\n    // set texts (title, label, append, prepend) if model & fields attribute is defined too\n    if (!!this._model && !!this._model.fields[this._field]) {\n      this._title = this.helperService.getTitle(this._model, this._field);\n      this._prepend = this.helperService.getPrepend(this._model, this._field);\n      this._append = this.helperService.getAppend(this._model, this._field);\n      this._label = this.helperService.getLabel(this._model, this._field);\n    }\n\n    // model is set & has validation rules for field\n    if (!!this._model && !!this._model.validationRules[this._field]) {\n      this._isRequired = this.helperService.isRequired(this._model, this._field);\n    }\n\n    // add 'name' property as default value on fake single select mode if model is set\n    if (!!this._model && this.fakeSingleSelect) {\n      this._selectedModelName = this._model['name'] ?? '';\n    }\n  }\n\n  get model(): BaseModelInterface<any> & FieldsInterface<any> {\n    return this._model;\n  }\n\n  @Input() set field(value: string) {\n    if (value === 'undefined') {\n      value = 'id';\n    }\n\n    this._field = value;\n  }\n\n  @Input() set items(value: any[] | null) {\n    if (!value) {\n      return;\n    }\n\n    this._items = value;\n  }\n\n  @Input() wrapperClass = 'd-flex flex-wrap';\n  @Input() labelClass = 'col-12 col-md-3 px-0 col-form-label';\n  @Input() inputBlockClass = 'col-12 d-flex px-0';\n  @Input() inputBlockExtraClass = 'col-md-9';\n  @Input() showLabel = true;\n  @Input() disabledAppearance = false;\n  @Input() disabled = false;\n  @Input() addEmptyOption = true;\n  @Input() dialogSettings: DialogContentWithOptionsInterface;\n  @Input() text = 'name';\n  @Input() valueField = 'id';\n  @Input() unselectedText = 'Válassz';\n\n  // selected items\n  @Input() disableShowSelectedItems = false;\n  @Input() showIcon = false;\n  @Input() selectedElementsBlockClass = 'col-12 d-flex flex-wrap px-0';\n  @Input() selectedElementsBlockExtraClass = 'col-md-9 d-flex flex-wrap';\n\n  @Output() selected: EventEmitter<any> = new EventEmitter();\n  @Output() selectModel: EventEmitter<any> = new EventEmitter();\n\n  ngOnInit(): void {\n  }\n\n  selectedEmit(value: any): void {\n    this.selected.emit(value);\n  }\n\n  selectModelEmit(value: any): void {\n    this.selectModel.emit(value);\n  }\n}\n","<ng-container *ngIf=\"_mode === 'multiple'\">\n  <multiple-select\n    mode=\"multiple\"\n    [wrapperClass]=\"wrapperClass\"\n    [isRequired]=\"_isRequired\"\n    [disabledAppearance]=\"disabledAppearance\"\n    [disabled]=\"disabled\"\n    [addEmptyOption]=\"addEmptyOption\"\n    [labelClass]=\"labelClass\"\n    [showLabel]=\"showLabel\"\n    [labelText]=\"_label\"\n    [prepend]=\"_prepend\"\n    [append]=\"_append\"\n    [model]=\"_model\"\n    [field]=\"_field\"\n    [items]=\"_items\"\n    [dialogSettings]=\"dialogSettings\"\n    [text]=\"text\"\n    [valueField]=\"valueField\"\n    [disableShowSelectedItems]=\"disableShowSelectedItems\"\n    [selectedElementsBlockClass]=\"selectedElementsBlockClass\"\n    [selectedElementsBlockExtraClass]=\"selectedElementsBlockExtraClass\"\n    [showIcon]=\"showIcon\"\n\n    (selected)=\"selectedEmit($event)\"\n    (selectModel)=\"selectModelEmit($event)\"\n  ></multiple-select>\n</ng-container>\n\n<ng-container *ngIf=\"_mode === 'single'\">\n  <multiple-select\n    mode=\"single\"\n    [wrapperClass]=\"wrapperClass\"\n    [isRequired]=\"_isRequired\"\n    [disabledAppearance]=\"disabledAppearance\"\n    [disabled]=\"disabled\"\n    [addEmptyOption]=\"addEmptyOption\"\n    [labelClass]=\"labelClass\"\n    [showLabel]=\"showLabel\"\n    [labelText]=\"_label\"\n    [prepend]=\"_prepend\"\n    [append]=\"_append\"\n    [model]=\"_model\"\n    [field]=\"_field\"\n    [items]=\"_items\"\n    [dialogSettings]=\"dialogSettings\"\n    [text]=\"text\"\n    [valueField]=\"valueField\"\n    [disableShowSelectedItems]=\"disableShowSelectedItems\"\n    [showIcon]=\"showIcon\"\n\n    (selected)=\"selectedEmit($event)\"\n    (selectModel)=\"selectModelEmit($event)\"\n  ></multiple-select>\n</ng-container>\n\n<ng-container *ngIf=\"_mode === 'simple'\">\n  <simple-select\n    [wrapperClass]=\"wrapperClass\"\n    [isRequired]=\"_isRequired\"\n    [disabledAppearance]=\"disabledAppearance\"\n    [disabled]=\"disabled\"\n    [addEmptyOption]=\"addEmptyOption\"\n    [labelClass]=\"labelClass\"\n    [showLabel]=\"showLabel\"\n    [labelText]=\"_label\"\n    [prepend]=\"_prepend\"\n    [append]=\"_append\"\n    [model]=\"_model\"\n    [field]=\"_field\"\n    [items]=\"_items\"\n\n    (selected)=\"selectedEmit($event)\"\n    (selectModel)=\"selectModelEmit($event)\"\n  ></simple-select>\n</ng-container>\n","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { BaseModel, BaseModelInterface, DdataCoreModule, FieldsInterface } from 'ddata-core';\nimport { InputHelperServiceInterface } from '../../services/input/helper/input-helper-service.interface';\nimport { InputHelperService } from '../../services/input/helper/input-helper.service';\n\n@Component({\n  selector: 'dd-textarea',\n  templateUrl: './textarea.component.html',\n  styleUrls: ['./textarea.component.scss']\n})\nexport class DdataTextareaComponent implements OnInit, AfterViewInit {\n  helperService: InputHelperServiceInterface = DdataCoreModule.InjectorInstance.get<InputHelperServiceInterface>(InputHelperService);\n\n  // tslint:disable: variable-name\n  _field = '';\n  _title = '';\n  _label = '';\n  _placeholder = '';\n  _prepend = '';\n  _append = '';\n  _max = '';\n  _isRequired = false;\n  _model: BaseModelInterface<any> & FieldsInterface<any> = new BaseModel();\n\n  @Input() set model(value: BaseModelInterface<any> & FieldsInterface<any> | null) {\n    // prevent undefined\n    if (!value) {\n      console.error('The input-box component get undefined model');\n\n      return;\n    }\n    this._model = value;\n\n    if (!this._model.fields) {\n      console.error(`Your ${this._model.model_name}'s 'fields' field is`, this._model.fields);\n\n      return;\n    }\n\n    if (!this._model.fields[this._field]) {\n      console.error(`The ${this._model.model_name}'s ${this._field} field is `, this._model.fields[this._field]);\n\n      return;\n    }\n\n    if (!!this._model && !!this._model.fields[this._field]) {\n      this._title = this.helperService.getTitle(this._model, this._field);\n      this._placeholder = this.helperService.getPlaceholder(this._model, this._field);\n      this._prepend = this.helperService.getPrepend(this._model, this._field);\n      this._append = this.helperService.getAppend(this._model, this._field);\n      this._label = this.helperService.getLabel(this._model, this._field);\n    }\n\n    if (!!this._model && !!this._model.validationRules[this._field]) {\n      this._isRequired = this.helperService.isRequired(this._model, this._field);\n    }\n  }\n  get model(): BaseModelInterface<any> & FieldsInterface<any> {\n    return this._model;\n  }\n  @Input() set field(value: string) {\n    if (value === 'undefined') {\n      value = 'isValid';\n    }\n\n    this._field = value;\n  }\n  @Input() set append(value: string) {\n    if (value === 'undefined') {\n      value = '';\n    }\n\n    this._append = value;\n  }\n  @Input() set prepend(value: string) {\n    if (value === 'undefined') {\n      value = '';\n    }\n\n    this._prepend = value;\n  }\n  @Input() set labelText(value: string) {\n    if (value === 'undefined') {\n      value = '';\n    }\n\n    this._label = value;\n  }\n  @Input() inputClass = 'form-control';\n  @Input() disabled = false;\n  @Input() isViewOnly = false;\n  @Input() labelClass = 'col-12 col-md-3 px-0 col-form-label';\n  @Input() inputBlockClass = 'col-12 d-flex px-0';\n  @Input() inputBlockExtraClass = 'col-md-9';\n  @Input() viewOnlyClass = 'form-control border-0 bg-light';\n  @Input() showLabel = true;\n  @Input() autoFocus = false;\n  @Input() wrapperClass = 'd-flex flex-wrap';\n  @Input() rows = '5';\n  @Input() enableCharacterCounter = false;\n  @Input() enableWordCounter = false;\n  @Input() maxLength = 255;\n  @Input() maxWords = 7;\n  @Input() wordCounterWarningMessage = '';\n\n  @Output() changed: EventEmitter<any> = new EventEmitter();\n\n  @ViewChild('inputBox') inputBox: ElementRef;\n\n  random: string = this.helperService.randChars();\n\n  displayWordCounterWarning = false;\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit(): void {\n    if (this.autoFocus) {\n      this.inputBox.nativeElement.focus();\n    }\n  }\n\n  validateField(): void {\n    const isValid = this.helperService.validateField(this._model, this._field);\n\n    if (isValid) {\n      this.changed.emit(this._model);\n    }\n  }\n\n  setWordCounterWarning(value: boolean): void {\n    this.displayWordCounterWarning = value;\n  }\n\n}\n","<div [class]=\"wrapperClass\">\n  <label [class]=\"labelClass\" [for]=\"_field + '_' + random\" *ngIf=\"showLabel\">\n    {{ _label }}:\n    <span *ngIf=\"_isRequired\"> *</span>\n  </label>\n  <div [class]=\"inputBlockClass\" [ngClass]=\"showLabel ? inputBlockExtraClass : ''\">\n    <div class=\"input-group-prepend\" *ngIf=\" _prepend != '' \">\n      <div class=\"input-group-text\">{{ _prepend }}</div>\n    </div>\n\n    <textarea *ngIf=\"!isViewOnly\"\n      [id]=\"_field + '_' + random\"\n      [attr.name]=\"_field + '_' + random\"\n      [class.invalid]=\"_model.validationErrors.includes(_field)\"\n      [class]=\"inputClass\"\n      [rows]=\"rows\"\n      [(ngModel)]=\"_model[_field]\"\n      [placeholder]=\"_placeholder\"\n      [title]=\"_title\"\n      [disabled]=\"disabled\"\n      (keyup)=\"validateField()\"\n      #inputBox>\n      <ng-container *ngIf=\"enableCharacterCounter\">\n        <character-counter [currentLength]=\"model[_field]?.length || 0\" [maxLength]=\"maxLength\"></character-counter>\n      </ng-container>\n      <ng-container *ngIf=\"enableWordCounter\">\n        <app-word-counter\n        [currentLength]=\"model[_field]\"\n        [maxLength]=\"maxWords\"\n        (maxLentghReached)=\"showWordCounterWarning = $event\"\n      ></app-word-counter>\n      </ng-container>\n    </textarea>\n\n    <div *ngIf=\"isViewOnly\"\n      [id]=\"field\"\n      [name]=\"field\"\n      [title]=\"_title\"\n      [class]=\"viewOnlyClass\">\n\n      {{ _model[_field] }}\n    </div>\n\n    <div class=\"input-group-append\" *ngIf=\"_append != ''\">\n      <div class=\"input-group-text\">{{ _append }}</div>\n    </div>\n  </div>\n  <div *ngIf=\"displayWordCounterWarning && wordCounterWarningMessage !== ''\" class=\"d-flex pb-2\">\n    <div class=\"col-12 col-md-7 offset-md-3 bg-warning p-2 rounded\">\n      {{ wordCounterWarningMessage }}\n    </div>\n  </div>\n</div>\n","import { Component, OnInit, Input, Output, EventEmitter, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\nimport { FieldsInterface, DdataCoreModule, BaseModelInterface, BaseModel } from 'ddata-core';\nimport { InputHelperServiceInterface } from '../../services/input/helper/input-helper-service.interface';\nimport { InputHelperService } from '../../services/input/helper/input-helper.service';\n\n@Component({\n  selector: 'dd-input-time',\n  templateUrl: './time-input.component.html',\n  styleUrls: ['./time-input.component.scss']\n})\nexport class DdataInputTimeComponent implements OnInit, AfterViewInit {\n  helperService: InputHelperServiceInterface = DdataCoreModule.InjectorInstance.get<InputHelperServiceInterface>(InputHelperService);\n\n  // tslint:disable: variable-name\n  _field = '';\n  _title = '';\n  _label = '';\n  _placeholder = '';\n  _prepend = '';\n  _append = '';\n  _max = '';\n  _isRequired = false;\n  _model: BaseModelInterface<any> & FieldsInterface<any> = new BaseModel();\n\n  @Input() set model(value: BaseModelInterface<any> & FieldsInterface<any> | null) {\n    // prevent undefined\n    if (!value) {\n      console.error('The input-box component get undefined model');\n\n      return;\n    }\n    this._model = value;\n\n    if (!this._model.fields) {\n      console.error(`Your ${this._model.model_name}'s 'fields' field is`, this._model.fields);\n\n      return;\n    }\n\n    if (!this._model.fields[this._field]) {\n      console.error(`The ${this._model.model_name}'s ${this._field} field is `, this._model.fields[this._field]);\n\n      return;\n    }\n\n    if (!!this._model && !!this._model.fields[this._field]) {\n      this._title = this.helperService.getTitle(this._model, this._field);\n      this._placeholder = this.helperService.getPlaceholder(this._model, this._field);\n      this._prepend = this.helperService.getPrepend(this._model, this._field);\n      this._append = this.helperService.getAppend(this._model, this._field);\n      this._label = this.helperService.getLabel(this._model, this._field);\n    }\n\n    if (!!this._model && !!this._model.validationRules[this._field]) {\n      this._isRequired = this.helperService.isRequired(this._model, this._field);\n    }\n  }\n  get model(): BaseModelInterface<any> & FieldsInterface<any> {\n    return this._model;\n  }\n  @Input() set field(value: string) {\n    if (value === 'undefined') {\n      value = 'isValid';\n    }\n\n    this._field = value;\n  }\n  @Input() set append(value: string) {\n    if (value === 'undefined') {\n      value = '';\n    }\n\n    this._append = value;\n  }\n  @Input() set prepend(value: string) {\n    if (value === 'undefined') {\n      value = '';\n    }\n\n    this._prepend = value;\n  }\n  @Input() set labelText(value: string) {\n    if (value === 'undefined') {\n      value = '';\n    }\n\n    this._label = value;\n  }\n  @Input() disabled = false;\n  @Input() isViewOnly = false;\n  @Input() type = 'text';\n  @Input() inputClass = 'form-control';\n  @Input() labelClass = 'col-12 col-md-3 px-0 col-form-label';\n  @Input() inputBlockClass = 'col-12 d-flex px-0';\n  @Input() inputBlockExtraClass = 'col-md-9';\n  @Input() viewOnlyClass = 'form-control border-0 bg-light';\n  @Input() showLabel = true;\n  @Input() autoFocus = false;\n  @Input() wrapperClass = 'd-flex flex-wrap';\n  @Input() format: 12 | 24 = 24;\n\n  @Output() changed: EventEmitter<any> = new EventEmitter();\n\n  @ViewChild('inputBox') inputBox: ElementRef;\n\n  random: string = this.helperService.randChars();\n\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit(): void {\n    if (this.autoFocus) {\n      this.inputBox.nativeElement.focus();\n    }\n  }\n\n  validateField(): void {\n    const isValid = this.helperService.validateField(this._model, this._field);\n\n    if (isValid) {\n      this.changed.emit(this._model);\n    }\n  }\n\n  setTime(time: string): void {\n    this._model[this._field] = time;\n\n    this.validateField();\n  }\n}\n","<div [class]=\"wrapperClass\">\n  <label [class]=\"labelClass\" [for]=\"_field + '_' + random\" *ngIf=\"showLabel\">\n    {{ _label }}:\n    <span *ngIf=\"_isRequired\"> *</span>\n  </label>\n\n  <div [class]=\"inputBlockClass\" [ngClass]=\"showLabel ? inputBlockExtraClass : ''\">\n    <div class=\"input-group-prepend\" *ngIf=\" _prepend != '' \">\n      <div class=\"input-group-text\">{{ _prepend }}</div>\n    </div>\n\n    <ng-container *ngIf=\"!isViewOnly\">\n      <input\n        [ngxTimepicker]=\"timepicker\"\n        [format]=\"format\"\n        [class.invalid]=\"model.validationErrors.includes(_field)\"\n        [class]=\"inputClass\"\n        [(ngModel)]=\"_model[_field]\"\n        [id]=\"_field + '_' + random\"\n        [attr.name]=\"_field + '_' + random\"\n        [placeholder]=\"_placeholder\"\n        [title]=\"_title\"\n        [disabled]=\"disabled\"\n        [type]=\"type\"\n        [autocomplete]=\"random\"\n        (keyup)=\"validateField()\"\n        #inputBox>\n      </ng-container>\n\n      <ng-container *ngIf=\"isViewOnly\">\n      <div\n        [id]=\"_field + '_' + random\"\n        [class]=\"viewOnlyClass\"\n        [attr.name]=\"_field + '_' + random\"\n        [title]=\"_title\">\n          {{ model[_field] }}\n      </div>\n    </ng-container>\n\n    <div class=\"input-group-append\" *ngIf=\"_append != ''\">\n      <div class=\"input-group-text\">{{ _append }}</div>\n    </div>\n  </div>\n\n</div>\n\n<ngx-material-timepicker #timepicker (timeSet)=\"setTime($event)\" ></ngx-material-timepicker>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { DdataUiCommonModule } from 'ddata-ui-common';\nimport { ColorPickerModule } from 'ngx-color-picker';\nimport { NgxMaterialTimepickerModule } from 'ngx-material-timepicker';\n\nimport { NgbDatepickerModule } from '@ng-bootstrap/ng-bootstrap';\nimport { DdataInputCheckboxComponent } from './components/checkbox/checkbox.component';\nimport { DdataInputColorComponent } from './components/color/color-input.component';\nimport { DdataInputDateComponent } from './components/date/date-input.component';\nimport { DdataInputComponent } from './components/input/input.component';\nimport { DdataInputSearchComponent } from './components/search/search.component';\nimport { DdataMultipleSelectDialogComponent } from './components/select/multiple-select/dialog/multiple-select-dialog.component';\nimport { DdataMultipleSelectComponent } from './components/select/multiple-select/multiple-select.component';\nimport { DdataSelectComponent } from './components/select/select.component';\nimport { DdataSimpleSelectComponent } from './components/select/simple-select/simple-select.component';\nimport { DdataTextareaComponent } from './components/textarea/textarea.component';\nimport { DdataInputTimeComponent } from './components/time/time-input.component';\n\n\n@NgModule({\n  declarations: [\n    DdataInputCheckboxComponent,\n    DdataInputColorComponent,\n    DdataInputComponent,\n    DdataInputDateComponent,\n    DdataInputSearchComponent,\n    DdataInputTimeComponent,\n    DdataSelectComponent,\n    DdataTextareaComponent,\n    DdataSimpleSelectComponent,\n    DdataMultipleSelectComponent,\n    DdataMultipleSelectDialogComponent,\n  ],\n  imports: [\n    ColorPickerModule,\n    CommonModule,\n    FontAwesomeModule,\n    FormsModule,\n    NgxMaterialTimepickerModule,\n    DdataUiCommonModule,\n    NgbDatepickerModule\n  ],\n  exports: [\n    DdataInputCheckboxComponent,\n    DdataInputColorComponent,\n    DdataInputComponent,\n    DdataInputDateComponent,\n    DdataInputSearchComponent,\n    DdataInputTimeComponent,\n    DdataSelectComponent,\n    DdataTextareaComponent,\n  ]\n})\nexport class DdataUiInputModule { }\n","/*\n * Public API Surface of ddata-ui-input\n */\n\nexport * from './lib/models/dialog/content/dialog-content-item';\nexport * from './lib/models/dialog/content/dialog-content.interface';\n\nexport * from './lib/models/icon-set/icon-set.interface';\n\nexport * from './lib/models/search/search.interface';\nexport * from './lib/models/search/search.model';\nexport * from './lib/models/search/result/search-result.interface';\nexport * from './lib/models/search/result/search-result.model';\n\nexport * from './lib/pipes/description/description.pipe';\n\nexport * from './lib/services/input/helper/input-helper-service.interface';\nexport * from './lib/services/input/helper/input-helper.service';\n\nexport * from './lib/components/checkbox/checkbox.component';\nexport * from './lib/components/color/color-input.component';\nexport * from './lib/components/date/date-input.component';\nexport * from './lib/components/input/input.component';\nexport * from './lib/components/search/search.component';\nexport * from './lib/components/select/select.component';\nexport * from './lib/components/textarea/textarea.component';\nexport * from './lib/components/time/time-input.component';\n\nexport * from './lib/ddata-ui-input.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.InputHelperService","i2","i3","i4","i1","i3.DdataMultipleSelectDialogComponent","i2.DdataSimpleSelectComponent","i3.DdataMultipleSelectComponent"],"mappings":"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"}