{"version":3,"file":"ajf-ionic-forms.mjs","sources":["../../../projects/ionic/forms/src/warning-alert-service.ts","../../../projects/ionic/forms/src/boolean-field.ts","../../../projects/ionic/forms/src/boolean-field.html","../../../projects/ionic/forms/src/date-field.ts","../../../projects/ionic/forms/src/date-field.html","../../../projects/ionic/forms/src/date-input-field.ts","../../../projects/ionic/forms/src/date-input-field.html","../../../projects/ionic/forms/src/empty-field.ts","../../../projects/ionic/forms/src/empty-field.html","../../../projects/ionic/forms/src/barcode-field.ts","../../../projects/ionic/forms/src/barcode-field.html","../../../projects/ionic/forms/src/formula-field.ts","../../../projects/ionic/forms/src/formula-field.html","../../../projects/ionic/forms/src/input-field.ts","../../../projects/ionic/forms/src/input-field.html","../../../projects/ionic/forms/src/select-has-search-bar.pipe.ts","../../../projects/ionic/forms/src/select-use-virtual-scroll.pipe.ts","../../../projects/ionic/forms/src/multiple-choice-field.ts","../../../projects/ionic/forms/src/multiple-choice-field.html","../../../projects/ionic/forms/src/number-field.ts","../../../projects/ionic/forms/src/number-field.html","../../../projects/ionic/forms/src/range-field.ts","../../../projects/ionic/forms/src/range-field.html","../../../projects/ionic/forms/src/single-choice-field.ts","../../../projects/ionic/forms/src/single-choice-field.html","../../../projects/ionic/forms/src/table-field.ts","../../../projects/ionic/forms/src/table-field.html","../../../projects/ionic/forms/src/textarea-field.ts","../../../projects/ionic/forms/src/textarea-field.html","../../../projects/ionic/forms/src/time-field.ts","../../../projects/ionic/forms/src/time-field.html","../../../projects/ionic/forms/src/video-url-field.ts","../../../projects/ionic/forms/src/video-url-field.html","../../../projects/ionic/forms/src/field-service.ts","../../../projects/ionic/forms/src/field.ts","../../../projects/ionic/forms/src/field.html","../../../projects/ionic/forms/src/popover.ts","../../../projects/ionic/forms/src/form-page.ts","../../../projects/ionic/forms/src/form.ts","../../../projects/ionic/forms/src/form.html","../../../projects/ionic/forms/src/forms-module.ts","../../../projects/ionic/forms/src/public_api.ts","../../../projects/ionic/forms/src/ajf-ionic-forms.ts"],"sourcesContent":["/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {\n  AjfFieldWarningAlertResult,\n  AjfWarningAlertService as CoreWarningAlertService,\n} from '@ajf/core/forms';\nimport {Injectable} from '@angular/core';\nimport {AlertController} from '@ionic/angular';\nimport {Observable} from 'rxjs';\n\n@Injectable()\nexport class AjfWarningAlertService implements CoreWarningAlertService {\n  constructor(private _alertCtrl: AlertController) {}\n\n  showWarningAlertPrompt(warnings: string[]): Observable<AjfFieldWarningAlertResult> {\n    return new Observable<AjfFieldWarningAlertResult>(subscriber => {\n      this._alertCtrl\n        .create({\n          header: 'Warning',\n          message: warnings.join('\\n'),\n          buttons: [\n            {\n              text: 'No',\n              handler: () => {\n                subscriber.next(<AjfFieldWarningAlertResult>{result: false});\n                subscriber.complete();\n              },\n            },\n            {\n              text: 'Yes',\n              handler: () => {\n                subscriber.next(<AjfFieldWarningAlertResult>{result: true});\n                subscriber.complete();\n              },\n            },\n          ],\n        })\n        .then(alert => {\n          alert.present();\n        });\n    });\n  }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {\n  AJF_WARNING_ALERT_SERVICE,\n  AjfBaseFieldComponent,\n  AjfFormRendererService,\n} from '@ajf/core/forms';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Inject,\n  ViewEncapsulation,\n} from '@angular/core';\n\nimport {AjfWarningAlertService} from './warning-alert-service';\n\n@Component({\n  templateUrl: 'boolean-field.html',\n  styleUrls: ['boolean-field.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class AjfBooleanFieldComponent extends AjfBaseFieldComponent {\n  constructor(\n    cdr: ChangeDetectorRef,\n    service: AjfFormRendererService,\n    @Inject(AJF_WARNING_ALERT_SERVICE) was: AjfWarningAlertService,\n  ) {\n    super(cdr, service, was);\n  }\n}\n","<ion-toggle *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\"></ion-toggle>\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {\n  AJF_WARNING_ALERT_SERVICE,\n  AjfBaseFieldComponent,\n  AjfDateFieldInstance,\n  AjfFormRendererService,\n} from '@ajf/core/forms';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Inject,\n  ViewEncapsulation,\n} from '@angular/core';\n\nimport {AjfWarningAlertService} from './warning-alert-service';\n@Component({\n  templateUrl: 'date-field.html',\n  styleUrls: ['date-field.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class AjfDateFieldComponent extends AjfBaseFieldComponent<AjfDateFieldInstance> {\n  constructor(\n    cdr: ChangeDetectorRef,\n    service: AjfFormRendererService,\n    @Inject(AJF_WARNING_ALERT_SERVICE) was: AjfWarningAlertService,\n  ) {\n    super(cdr, service, was);\n  }\n}\n","<ion-item>\n  <ajf-calendar\n      *ngIf=\"control|async as ctrl\"\n      selectionMode=\"day\"\n      [dateOnlyForDay]=\"true\"\n      [minDate]=\"instance!.node.minDate|ajfDateValue\"\n      [maxDate]=\"instance!.node.maxDate|ajfDateValue\"\n      [formControl]=\"ctrl!\"></ajf-calendar>\n</ion-item>\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {\n  AJF_WARNING_ALERT_SERVICE,\n  AjfBaseFieldComponent,\n  AjfDateFieldInstance,\n  AjfDateValueStringPipe,\n  AjfFormRendererService,\n} from '@ajf/core/forms';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Inject,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {IonInput} from '@ionic/angular';\nimport {InputChangeEventDetail} from '@ionic/core';\n\nimport {AjfWarningAlertService} from './warning-alert-service';\n\n@Component({\n  templateUrl: 'date-input-field.html',\n  styleUrls: ['date-input-field.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class AjfDateInputFieldComponent extends AjfBaseFieldComponent<AjfDateFieldInstance> {\n  @ViewChild(IonInput, {static: false}) input!: IonInput;\n\n  private _minDateStr: string | undefined;\n  private _maxDateStr: string | undefined;\n\n  constructor(\n    cdr: ChangeDetectorRef,\n    service: AjfFormRendererService,\n    @Inject(AJF_WARNING_ALERT_SERVICE) was: AjfWarningAlertService,\n    private _dvs: AjfDateValueStringPipe,\n  ) {\n    super(cdr, service, was);\n  }\n\n  onChange(event: Event): void {\n    const evt = event as CustomEvent<InputChangeEventDetail>;\n    if (this.input == null || evt.detail == null) {\n      return;\n    }\n    const val = evt.detail.value || '';\n    if (val.length > 0) {\n      if (\n        (this._minDateStr != null && val < this._minDateStr) ||\n        (this._maxDateStr != null && val > this._maxDateStr)\n      ) {\n        this.input.value = '';\n      }\n    }\n  }\n\n  protected override _onInstanceChange(): void {\n    if (this.instance == null) {\n      return;\n    }\n    this._minDateStr = this._dvs.transform(this.instance.node.minDate);\n    this._maxDateStr = this._dvs.transform(this.instance.node.maxDate);\n  }\n}\n","<ion-input\n    type=\"date\"\n    *ngIf=\"control|async as ctrl\"\n    [attr.aria-label]=\"instance!|ajfNodeCompleteName\"\n    [min]=\"instance!.node.minDate|ajfDateValueString\"\n    [max]=\"instance!.node.maxDate|ajfDateValueString\"\n    (ionChange)=\"onChange($event)\"\n    [formControl]=\"ctrl!\"></ion-input>\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {\n  AJF_WARNING_ALERT_SERVICE,\n  AjfBaseFieldComponent,\n  AjfEmptyFieldInstance,\n  AjfFormRendererService,\n} from '@ajf/core/forms';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Inject,\n  ViewEncapsulation,\n} from '@angular/core';\n\nimport {AjfWarningAlertService} from './warning-alert-service';\n\n@Component({\n  templateUrl: 'empty-field.html',\n  styleUrls: ['empty-field.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class AjfEmptyFieldComponent extends AjfBaseFieldComponent<AjfEmptyFieldInstance> {\n  constructor(\n    cdr: ChangeDetectorRef,\n    service: AjfFormRendererService,\n    @Inject(AJF_WARNING_ALERT_SERVICE) was: AjfWarningAlertService,\n  ) {\n    super(cdr, service, was);\n  }\n}\n","<div *ngIf=\"instance\" [innerHTML]=\"instance.node.HTML\"></div>\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {\n  AJF_WARNING_ALERT_SERVICE,\n  AjfBaseFieldComponent,\n  AjfFormRendererService,\n} from '@ajf/core/forms';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Inject,\n  ViewEncapsulation,\n} from '@angular/core';\n\nimport {AjfWarningAlertService} from './warning-alert-service';\n\n@Component({\n  templateUrl: 'barcode-field.html',\n  styleUrls: ['barcode-field.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class AjfBarcodeFieldComponent extends AjfBaseFieldComponent {\n  constructor(\n    cdr: ChangeDetectorRef,\n    service: AjfFormRendererService,\n    @Inject(AJF_WARNING_ALERT_SERVICE) was: AjfWarningAlertService,\n  ) {\n    super(cdr, service, was);\n  }\n}\n","<ajf-barcode *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\"></ajf-barcode>\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {\n  AJF_WARNING_ALERT_SERVICE,\n  AjfBaseFieldComponent,\n  AjfFormRendererService,\n  AjfFormulaFieldInstance,\n} from '@ajf/core/forms';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Inject,\n  OnDestroy,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {UntypedFormControl} from '@angular/forms';\nimport {IonInput} from '@ionic/angular';\nimport {InputChangeEventDetail} from '@ionic/core';\nimport {Observable, Subscription} from 'rxjs';\nimport {filter, map, startWith, switchMap} from 'rxjs/operators';\n\nimport {AjfWarningAlertService} from './warning-alert-service';\n\n@Component({\n  templateUrl: 'formula-field.html',\n  styleUrls: ['formula-field.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class AjfFormulaFieldComponent\n  extends AjfBaseFieldComponent<AjfFormulaFieldInstance>\n  implements OnDestroy\n{\n  @ViewChild(IonInput, {static: true}) input!: IonInput;\n\n  readonly value: Observable<any>;\n\n  private _onChangeEvt = new EventEmitter<any>();\n  private _onChangeSub = Subscription.EMPTY;\n\n  constructor(\n    cdr: ChangeDetectorRef,\n    service: AjfFormRendererService,\n    @Inject(AJF_WARNING_ALERT_SERVICE) was: AjfWarningAlertService,\n  ) {\n    super(cdr, service, was);\n\n    const control$ = this.control.pipe(\n      filter(control => control != null),\n    ) as Observable<UntypedFormControl>;\n    const controlValue$ = control$.pipe(\n      switchMap(control => this._onChangeEvt.pipe(map(value => ({control, value})))),\n    ) as Observable<{control: UntypedFormControl; value: any}>;\n\n    this._onChangeSub = controlValue$.subscribe(({control, value}) => {\n      try {\n        const v = parseFloat(value);\n        value = v;\n      } catch (e) {}\n      control.setValue(value);\n    });\n\n    this.value = this.control.pipe(\n      filter(control => control != null),\n      switchMap(control => control!.valueChanges.pipe(startWith(control!.value))),\n    );\n  }\n\n  override ngOnDestroy(): void {\n    this._onChangeEvt.complete();\n    this._onChangeSub.unsubscribe();\n  }\n\n  onChange(event: Event): void {\n    const evt = event as CustomEvent<InputChangeEventDetail>;\n    if (evt.detail == null) {\n      return;\n    }\n    this._onChangeEvt.emit(evt.detail.value);\n  }\n}\n","<ion-input type=\"text\" [readonly]=\"true\" [value]=\"value|async\" (ionChange)=\"onChange($event)\"></ion-input>\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {\n  AJF_WARNING_ALERT_SERVICE,\n  AjfFormRendererService,\n  AjfInputFieldComponent as CoreComponent,\n} from '@ajf/core/forms';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Inject,\n  ViewEncapsulation,\n} from '@angular/core';\n\nimport {AjfWarningAlertService} from './warning-alert-service';\n\n@Component({\n  templateUrl: 'input-field.html',\n  styleUrls: ['input-field.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class AjfInputFieldComponent extends CoreComponent {\n  constructor(\n    cdr: ChangeDetectorRef,\n    service: AjfFormRendererService,\n    @Inject(AJF_WARNING_ALERT_SERVICE) was: AjfWarningAlertService,\n  ) {\n    super(cdr, service, was);\n  }\n}\n","<ion-input *ngIf=\"control|async as ctrl\" [type]=\"type\" [formControl]=\"ctrl!\" [readonly]=\"instance!|ajfIsReadonlyInputField\">\n</ion-input>\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfFieldWithChoicesInstance} from '@ajf/core/forms';\nimport {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({name: 'ajfSelectHasSearchBar'})\nexport class AjfSelectHasSearchBarPipe implements PipeTransform {\n  transform(instance: AjfFieldWithChoicesInstance<any>, searchThreshold: number): boolean {\n    return instance.filteredChoices && instance.filteredChoices.length > searchThreshold;\n  }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfFieldWithChoicesInstance} from '@ajf/core/forms';\nimport {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({name: 'ajfSelectUseVirtualScroll'})\nexport class AjfSelectUseVirtualScroll implements PipeTransform {\n  transform(instance: AjfFieldWithChoicesInstance<any>, vsThreshold: number): boolean {\n    return instance.filteredChoices && instance.filteredChoices.length > vsThreshold;\n  }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {\n  AJF_SEARCH_ALERT_THRESHOLD,\n  AJF_WARNING_ALERT_SERVICE,\n  AjfFieldWithChoicesComponent,\n  AjfFormRendererService,\n} from '@ajf/core/forms';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Inject,\n  Optional,\n  ViewEncapsulation,\n} from '@angular/core';\n\nimport {AjfWarningAlertService} from './warning-alert-service';\n\n@Component({\n  templateUrl: 'multiple-choice-field.html',\n  styleUrls: ['multiple-choice-field.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class AjfMultipleChoiceFieldComponent<T> extends AjfFieldWithChoicesComponent<T> {\n  constructor(\n    cdr: ChangeDetectorRef,\n    service: AjfFormRendererService,\n    @Inject(AJF_WARNING_ALERT_SERVICE) was: AjfWarningAlertService,\n    @Optional() @Inject(AJF_SEARCH_ALERT_THRESHOLD) searchThreshold: number,\n  ) {\n    super(cdr, service, was, searchThreshold);\n  }\n}\n","<ng-container *ngIf=\"instance\">\n  <ng-container *ngIf=\"!(instance|ajfExpandFieldWithChoices:searchThreshold); else expanded\">\n    <div class=\"ajf-item-container\">\n      <ng-container *ngIf=\"instance.filteredChoices as cs\">\n        <gic-select\n            #multipleChoiceSelect\n            *ngIf=\"control|async as ctrl\"\n            [multiple]=\"true\"\n            [searchBar]=\"instance|ajfSelectHasSearchBar:searchThreshold\"\n            [useVirtualScroll]=\"instance|ajfSelectUseVirtualScroll:100\"\n            [placeholder]=\"instance.node.label\"\n            [formControl]=\"ctrl!\">\n          <gic-select-option *ngFor=\"let item of cs\"\n              [value]=\"item.value\">{{ item.label|transloco }}</gic-select-option>\n        </gic-select>\n      </ng-container>\n    </div>\n  </ng-container>\n</ng-container>\n<ng-template #expanded>\n  <div ajf-checkbox-group\n      *ngIf=\"control|async as ctrl\"\n      [formControl]=\"ctrl!\"\n      class=\"ajf-choices-container\"\n  >\n    <ion-card *ngFor=\"let choice of instance!.filteredChoices\">\n      <ajf-checkbox-group-item\n        [value]=\"choice.value\">\n        {{ choice.label | transloco }}\n      </ajf-checkbox-group-item>\n    </ion-card>\n  </div>\n</ng-template>\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {\n  AJF_WARNING_ALERT_SERVICE,\n  AjfFormRendererService,\n  AjfInputFieldComponent as CoreComponent,\n} from '@ajf/core/forms';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Inject,\n  OnDestroy,\n  OnInit,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {UntypedFormControl} from '@angular/forms';\nimport {defer, Observable, Subscription} from 'rxjs';\nimport {filter, startWith, switchMap, withLatestFrom} from 'rxjs/operators';\n\nimport {AjfWarningAlertService} from './warning-alert-service';\n\n@Component({\n  templateUrl: 'number-field.html',\n  styleUrls: ['number-field.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class AjfNumberFieldComponent extends CoreComponent implements OnDestroy, OnInit {\n  readonly value: Observable<number | null>;\n\n  private _setValueEvt: EventEmitter<number | null> = new EventEmitter<number | null>();\n  private _setValueSub: Subscription = Subscription.EMPTY;\n\n  constructor(\n    cdr: ChangeDetectorRef,\n    service: AjfFormRendererService,\n    @Inject(AJF_WARNING_ALERT_SERVICE) was: AjfWarningAlertService,\n  ) {\n    super(cdr, service, was);\n    this.type = 'number';\n\n    this.value = defer(() =>\n      this.control.pipe(\n        filter(control => control != null),\n        switchMap(control => control!.valueChanges.pipe(startWith(control!.value))),\n      ),\n    ) as Observable<number | null>;\n  }\n\n  override ngOnDestroy(): void {\n    super.ngOnDestroy();\n    this._setValueEvt.complete();\n    this._setValueSub.unsubscribe();\n  }\n\n  override ngOnInit(): void {\n    super.ngOnInit();\n    this._setValueSub = this._setValueEvt\n      .pipe(withLatestFrom(this.control))\n      .subscribe(([value, ctrl]) => {\n        if (ctrl == null) {\n          return;\n        }\n        const control = ctrl as UntypedFormControl;\n        control.setValue(value);\n      });\n  }\n\n  setValue(value: any): void {\n    try {\n      value = parseFloat(`${value}`);\n      if (isNaN(value)) {\n        value = null;\n      }\n    } catch (e) {\n      value = null;\n    }\n    this._setValueEvt.emit(value);\n  }\n}\n","<ion-input aria-label=\"\" [ngModel]=\"value|async\" (ngModelChange)=\"setValue($event)\"></ion-input>\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AJF_WARNING_ALERT_SERVICE, AjfFormRendererService} from '@ajf/core/forms';\nimport {AjfRange} from '@ajf/core/range';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Inject,\n  ViewEncapsulation,\n} from '@angular/core';\n\nimport {AjfWarningAlertService} from './warning-alert-service';\n\n@Component({\n  selector: 'ajf-range',\n  templateUrl: 'range-field.html',\n  styleUrls: ['range-field.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class AjfRangeFieldComponent extends AjfRange {\n  constructor(\n    cdr: ChangeDetectorRef,\n    service: AjfFormRendererService,\n    @Inject(AJF_WARNING_ALERT_SERVICE) was: AjfWarningAlertService,\n  ) {\n    super(cdr, service, was);\n  }\n}\n","<ion-range\n  snaps=\"true\"\n  ticks=\"true\"\n  debounce=\"500\"\n  *ngIf=\"control|async as ctrl\"\n  [attr.aria-label]=\"name\"\n  [formControl]=\"ctrl!\"\n  [name]=\"name\"\n  [step]=\"step\"\n  [min]=\"start\"\n  [max]=\"end\"\n></ion-range>\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {\n  AJF_SEARCH_ALERT_THRESHOLD,\n  AJF_WARNING_ALERT_SERVICE,\n  AjfFieldWithChoicesComponent,\n  AjfFormRendererService,\n} from '@ajf/core/forms';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Inject,\n  Optional,\n  ViewEncapsulation,\n} from '@angular/core';\n\nimport {AjfWarningAlertService} from './warning-alert-service';\n\n@Component({\n  templateUrl: 'single-choice-field.html',\n  styleUrls: ['single-choice-field.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class AjfSingleChoiceFieldComponent<T> extends AjfFieldWithChoicesComponent<T> {\n  constructor(\n    cdr: ChangeDetectorRef,\n    service: AjfFormRendererService,\n    @Inject(AJF_WARNING_ALERT_SERVICE) was: AjfWarningAlertService,\n    @Optional() @Inject(AJF_SEARCH_ALERT_THRESHOLD) searchThreshold: number,\n  ) {\n    super(cdr, service, was, searchThreshold);\n  }\n}\n","<ng-container *ngIf=\"instance\">\n  <ng-container *ngIf=\"!(instance|ajfExpandFieldWithChoices:searchThreshold); else expanded\">\n    <div class=\"ajf-item-container\">\n      <ng-container *ngIf=\"instance.filteredChoices as cs\">\n        <gic-select *ngIf=\"control|async as ctrl\"\n            #singleChoiceSelect\n            [searchBar]=\"instance|ajfSelectHasSearchBar:searchThreshold\"\n            [useVirtualScroll]=\"instance|ajfSelectUseVirtualScroll:100\"\n            [placeholder]=\"instance.node.label\"\n            [formControl]=\"ctrl!\">\n          <gic-select-option *ngFor=\"let item of cs\" [value]=\"item.value\">{{ item.label|transloco }}</gic-select-option>\n        </gic-select>\n      </ng-container>\n    </div>\n  </ng-container>\n</ng-container>\n<ng-template #expanded>\n  <div class=\"ajf-choices-container\">\n    <ion-radio-group\n      *ngIf=\"control|async as ctrl\"\n      [formControl]=\"ctrl!\">\n      <ion-item *ngFor=\"let choice of instance!.filteredChoices\">\n        <ion-label>{{ choice.label | transloco }}</ion-label>\n        <ion-radio [value]=\"choice.value\"></ion-radio>\n      </ion-item>\n    </ion-radio-group>\n  </div>\n</ng-template>\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {\n  AJF_WARNING_ALERT_SERVICE,\n  AjfFormRendererService,\n  AjfTableFieldComponent as CoreTableFieldComponent,\n} from '@ajf/core/forms';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Inject,\n  ViewEncapsulation,\n} from '@angular/core';\n\nimport {AjfWarningAlertService} from './warning-alert-service';\n\n@Component({\n  templateUrl: 'table-field.html',\n  styleUrls: ['table-field.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class AjfTableFieldComponent extends CoreTableFieldComponent {\n  constructor(\n    cdr: ChangeDetectorRef,\n    service: AjfFormRendererService,\n    @Inject(AJF_WARNING_ALERT_SERVICE) was: AjfWarningAlertService,\n  ) {\n    super(cdr, service, was);\n  }\n}\n","<table *ngIf=\"instance\" class=\"ajf-table-field\">\n  <ng-container *ngIf=\"instance.node as node\">\n    <ng-container *ngFor=\"let columns of instance.controls; let row = index\">\n      <tr [ngClass]=\"row | ajfTableRowClass\">\n        <td>\n          <ng-container *ngIf=\"columns.length > 0 && columns[0]\">\n            {{ columns[0] | ajfTranslateIfString | ajfFormatIfNumber: '.0-2' }}\n          </ng-container>\n        </td>\n        <ng-container *ngIf=\"columns.length > 1\">\n          <td *ngFor=\"let c of columns[1]; let column = index\">\n            <ng-container *ngIf=\"row === 0; else controlCell\">\n              {{ c | ajfTranslateIfString | ajfFormatIfNumber: '.0-2' }}\n            </ng-container>\n            <ng-template #controlCell>\n              <ng-container *ngIf=\"c|ajfGetTableCellControl as contr\">\n                <ng-container *ngIf=\"contr\">\n                  <ng-container\n                    *ngIf=\"contr.show && (node.rows[row-1][column]|ajfIsCellEditable); else plainTextCell\"\n                  >\n                    <ng-container\n                      *ngIf=\"contr.type === 'number';else genericInput\"\n                    >\n                      <input\n                        (focusout)=\"contr!.show = false\"\n                        type=\"number\"\n                        [formControl]=\"contr.control\"\n                        (keydown.tab)=\"goToNextCell($event, row, column)\"\n                        autofocus\n                      />\n                    </ng-container>\n                    <ng-template #genericInput>\n                      <input\n                        (focusout)=\"contr!.show = false\"\n                        [type]=\"contr.type\"\n                        [formControl]=\"contr.control\"\n                        (keydown.tab)=\"goToNextCell($event, row, column)\"\n                        autofocus\n                      />\n                    </ng-template>\n                  </ng-container>\n                  <ng-template #plainTextCell>\n                    <span class=\"ajf-table-cell\" (click)=\"goToCell(row, column)\"\n                      >{{ contr.control.value | ajfTranslateIfString |\n                      ajfFormatIfNumber: '.0-2' }}</span\n                    >\n                  </ng-template>\n                </ng-container>\n              </ng-container>\n            </ng-template>\n          </td>\n        </ng-container>\n      </tr>\n    </ng-container>\n  </ng-container>\n</table>\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {\n  AJF_WARNING_ALERT_SERVICE,\n  AjfBaseFieldComponent,\n  AjfFormRendererService,\n} from '@ajf/core/forms';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Inject,\n  ViewEncapsulation,\n} from '@angular/core';\n\nimport {AjfWarningAlertService} from './warning-alert-service';\n\n@Component({\n  templateUrl: 'textarea-field.html',\n  styleUrls: ['textarea-field.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class AjfTextareaFieldComponent extends AjfBaseFieldComponent {\n  constructor(\n    cdr: ChangeDetectorRef,\n    service: AjfFormRendererService,\n    @Inject(AJF_WARNING_ALERT_SERVICE) was: AjfWarningAlertService,\n  ) {\n    super(cdr, service, was);\n  }\n}\n","<ion-textarea *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\"></ion-textarea>\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {\n  AJF_WARNING_ALERT_SERVICE,\n  AjfBaseFieldComponent,\n  AjfFormRendererService,\n} from '@ajf/core/forms';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Inject,\n  ViewEncapsulation,\n} from '@angular/core';\n\nimport {AjfWarningAlertService} from './warning-alert-service';\n\n@Component({\n  templateUrl: 'time-field.html',\n  styleUrls: ['time-field.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class AjfTimeFieldComponent extends AjfBaseFieldComponent {\n  constructor(\n    cdr: ChangeDetectorRef,\n    service: AjfFormRendererService,\n    @Inject(AJF_WARNING_ALERT_SERVICE) was: AjfWarningAlertService,\n  ) {\n    super(cdr, service, was);\n  }\n}\n","<ajf-time *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\"></ajf-time>\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {\n  AJF_WARNING_ALERT_SERVICE,\n  AjfFormRendererService,\n  AjfVideoUrlFieldComponent as CoreComponent,\n} from '@ajf/core/forms';\nimport {HttpClient} from '@angular/common/http';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Inject,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {DomSanitizer} from '@angular/platform-browser';\n\nimport {AjfWarningAlertService} from './warning-alert-service';\n\n@Component({\n  templateUrl: 'video-url-field.html',\n  styleUrls: ['video-url-field.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class AjfVideoUrlFieldComponent extends CoreComponent {\n  constructor(\n    cdr: ChangeDetectorRef,\n    service: AjfFormRendererService,\n    @Inject(AJF_WARNING_ALERT_SERVICE) was: AjfWarningAlertService,\n    domSanitizer: DomSanitizer,\n    httpClient: HttpClient,\n  ) {\n    super(cdr, service, was, domSanitizer, httpClient);\n  }\n}\n","<ng-container *ngIf=\"control|async as ctrl\">\n  <ion-input class=\"ajf-video-input\" [formControl]=\"ctrl!\"></ion-input>\n  <div class=\"ajf-video-thumbnail\">\n    <ng-container *ngIf=\"validUrl|async\">\n      <a target=\"_blank\" [href]=\"ctrl.value\">\n        <img *ngIf=\"videoThumbnail|async as thumb\" [src]=\"thumb\" class=\"\" alt=\"\">\n      </a>\n    </ng-container>\n  </div>\n</ng-container>\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {\n  AjfFieldService as CoreService,\n  AjfFieldType,\n  AjfFileFieldComponent,\n  AjfImageFieldComponent,\n  AjfReadOnlyFieldComponent,\n  AjfReadOnlyFileFieldComponent,\n  AjfReadOnlyImageFieldComponent,\n  AjfReadOnlySelectFieldComponent,\n  AjfReadOnlyTableFieldComponent,\n  AjfReadOnlyVideoUrlFieldComponent,\n} from '@ajf/core/forms';\nimport {Injectable} from '@angular/core';\n\nimport {AjfBarcodeFieldComponent} from './barcode-field';\nimport {AjfBooleanFieldComponent} from './boolean-field';\nimport {AjfDateFieldComponent} from './date-field';\nimport {AjfDateInputFieldComponent} from './date-input-field';\nimport {AjfEmptyFieldComponent} from './empty-field';\nimport {AjfFormulaFieldComponent} from './formula-field';\nimport {AjfInputFieldComponent} from './input-field';\nimport {AjfMultipleChoiceFieldComponent} from './multiple-choice-field';\nimport {AjfNumberFieldComponent} from './number-field';\nimport {AjfRangeFieldComponent} from './range-field';\nimport {AjfSingleChoiceFieldComponent} from './single-choice-field';\nimport {AjfTableFieldComponent} from './table-field';\nimport {AjfTextareaFieldComponent} from './textarea-field';\nimport {AjfTimeFieldComponent} from './time-field';\nimport {AjfVideoUrlFieldComponent} from './video-url-field';\n\n@Injectable({providedIn: 'root'})\nexport class AjfFieldService extends CoreService {\n  constructor() {\n    super();\n    this.componentsMap[AjfFieldType.String] = {\n      component: AjfInputFieldComponent,\n      readOnlyComponent: AjfReadOnlyFieldComponent,\n    };\n    this.componentsMap[AjfFieldType.Text] = {\n      component: AjfTextareaFieldComponent,\n      readOnlyComponent: AjfReadOnlyFieldComponent,\n    };\n    this.componentsMap[AjfFieldType.Number] = {\n      component: AjfNumberFieldComponent,\n      readOnlyComponent: AjfReadOnlyFieldComponent,\n    };\n    this.componentsMap[AjfFieldType.Boolean] = {\n      component: AjfBooleanFieldComponent,\n      readOnlyComponent: AjfReadOnlyFieldComponent,\n    };\n    this.componentsMap[AjfFieldType.Formula] = {\n      component: AjfFormulaFieldComponent,\n      readOnlyComponent: AjfReadOnlyFieldComponent,\n    };\n    this.componentsMap[AjfFieldType.Date] = {\n      component: AjfDateFieldComponent,\n      readOnlyComponent: AjfReadOnlyFieldComponent,\n    };\n    this.componentsMap[AjfFieldType.DateInput] = {\n      component: AjfDateInputFieldComponent,\n      readOnlyComponent: AjfReadOnlyFieldComponent,\n    };\n    this.componentsMap[AjfFieldType.Table] = {\n      component: AjfTableFieldComponent,\n      readOnlyComponent: AjfReadOnlyTableFieldComponent,\n    };\n    this.componentsMap[AjfFieldType.Empty] = {\n      component: AjfEmptyFieldComponent,\n      readOnlyComponent: AjfReadOnlyFieldComponent,\n    };\n    this.componentsMap[AjfFieldType.SingleChoice] = {\n      component: AjfSingleChoiceFieldComponent,\n      readOnlyComponent: AjfReadOnlySelectFieldComponent,\n    };\n    this.componentsMap[AjfFieldType.MultipleChoice] = {\n      component: AjfMultipleChoiceFieldComponent,\n      readOnlyComponent: AjfReadOnlySelectFieldComponent,\n    };\n    this.componentsMap[AjfFieldType.Time] = {\n      component: AjfTimeFieldComponent,\n      readOnlyComponent: AjfReadOnlyFieldComponent,\n    };\n    this.componentsMap[AjfFieldType.Barcode] = {\n      component: AjfBarcodeFieldComponent,\n      readOnlyComponent: AjfReadOnlyFieldComponent,\n    };\n    this.componentsMap[AjfFieldType.File] = {\n      component: AjfFileFieldComponent,\n      readOnlyComponent: AjfReadOnlyFileFieldComponent,\n    };\n    this.componentsMap[AjfFieldType.Image] = {\n      component: AjfImageFieldComponent,\n      readOnlyComponent: AjfReadOnlyImageFieldComponent,\n    };\n    this.componentsMap[AjfFieldType.VideoUrl] = {\n      component: AjfVideoUrlFieldComponent,\n      readOnlyComponent: AjfReadOnlyVideoUrlFieldComponent,\n    };\n    this.componentsMap[AjfFieldType.Range] = {\n      component: AjfRangeFieldComponent,\n      readOnlyComponent: AjfReadOnlyFieldComponent,\n    };\n  }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfFieldComponentsMap, AjfFormField as CoreFormField} from '@ajf/core/forms';\nimport {BooleanInput} from '@angular/cdk/coercion';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ViewEncapsulation,\n} from '@angular/core';\n\nimport {AjfFieldService} from './field-service';\n\n@Component({\n  selector: 'ajf-field,ajf-form-field',\n  templateUrl: 'field.html',\n  styleUrls: ['field.scss'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AjfFormField extends CoreFormField {\n  readonly componentsMap: AjfFieldComponentsMap;\n\n  constructor(cdr: ChangeDetectorRef, fieldService: AjfFieldService) {\n    super(cdr);\n    this.componentsMap = fieldService.componentsMap;\n  }\n\n  static ngAcceptInputType_readonly: BooleanInput;\n}\n","<div\n    *ngIf=\"instance\"\n    [ngClass]=\"'ajf-field-' + (instance|ajfNodeCompleteName)\"\n    [class.ajf-validated]=\"instance.validationResults|ajfFieldIsValid\"\n>\n  <ng-template ajf-field-host></ng-template>\n</div>\n<ng-container *ngIf=\"instance && instance.node.attachments\">\n  <ng-container *ngFor=\"let attachment of instance.node.attachments\">\n    <a [href]=\"attachment.value\" target=\"_blank\">{{attachment.label}}</a>\n  </ng-container>\n</ng-container>\n<ng-container *ngIf=\"!readonly && instance && instance.validationResults\">\n  <div class=\"ajf-errors\">\n    <ng-container *ngFor=\"let res of instance.validationResults\">\n      <div class=\"error\" *ngIf=\"!res.result\">\n        {{ res.error | transloco }}\n      </div>\n    </ng-container>\n  </div>\n</ng-container>\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from '@angular/core';\n\n@Component({\n  selector: 'ajf-ion-popover',\n  template: `<span>{{hint}}</span>`,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AjfPopover {\n  // eslint-disable-next-line\n  @Input('hint') hint: string = '';\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {Directive} from '@angular/core';\n\n@Directive({selector: '[ajfFormPage]'})\nexport class AjfFormPage {}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfFormRenderer as CoreFormRenderer, AjfFormRendererService} from '@ajf/core/forms';\nimport {BooleanInput} from '@angular/cdk/coercion';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {PopoverController} from '@ionic/angular';\nimport {Subscription} from 'rxjs';\nimport {delayWhen, switchMap} from 'rxjs/operators';\nimport {AjfPopover} from './popover';\n\n@Component({\n  selector: 'ajf-form',\n  templateUrl: 'form.html',\n  styleUrls: ['form.scss'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\n/**\n * This class will define an ajf form renderer\n * @implements : AfterViewInit\n * @implements : AfterViewInit\n */\nexport class AjfFormRenderer extends CoreFormRenderer implements AfterViewInit, OnDestroy {\n  @Input() topBar: boolean = false;\n\n  private _longSlide = false;\n  get longSlide(): boolean {\n    return this._longSlide;\n  }\n\n  private _viewInitEvt: EventEmitter<void> = new EventEmitter<void>();\n  private _scrollFinishSub: Subscription = Subscription.EMPTY;\n\n  constructor(\n    rendererService: AjfFormRendererService,\n    cdr: ChangeDetectorRef,\n    public popoverController: PopoverController,\n  ) {\n    super(rendererService, cdr);\n\n    this._scrollFinishSub = this._viewInitEvt\n      .pipe(\n        delayWhen(() => this.formGroup),\n        switchMap(() => this.formSlider.pageScrollFinish),\n      )\n      .subscribe(_ => this._updateLongSlide());\n  }\n\n  override ngAfterViewInit(): void {\n    super.ngAfterViewInit();\n    this._viewInitEvt.emit();\n  }\n\n  override ngOnDestroy(): void {\n    super.ngOnDestroy();\n    this._scrollFinishSub.unsubscribe();\n  }\n\n  openPopover(ev: any, hint: string): void {\n    const popover = this.popoverController.create({\n      component: AjfPopover,\n      cssClass: 'ajf-popover',\n      translucent: true,\n      event: ev,\n      componentProps: {hint},\n    });\n    popover.then(pop => pop.present());\n  }\n\n  private _updateLongSlide(): void {\n    const longSlide = this.formSlider.isCurrentPageLong();\n    if (longSlide !== this._longSlide) {\n      this._longSlide = longSlide;\n      this._changeDetectorRef.markForCheck();\n    }\n  }\n\n  static ngAcceptInputType_fixedOrientation: BooleanInput;\n  static ngAcceptInputType_hasEndMessage: BooleanInput;\n  static ngAcceptInputType_hasStartMessage: BooleanInput;\n  static ngAcceptInputType_hideBottomToolbar: BooleanInput;\n  static ngAcceptInputType_hideNavigationButtons: BooleanInput;\n  static ngAcceptInputType_hideTopToolbar: BooleanInput;\n  static ngAcceptInputType_saveDisabled: BooleanInput;\n  static ngAcceptInputType_readonly: BooleanInput;\n}\n","<ng-container *ngIf=\"formGroup|async as currentFormGroup\">\n  <form [class.ajf-form-readonly]=\"readonly\" novalidate [formGroup]=\"currentFormGroup!\">\n    <div class=\"ajf-form-container\">\n      <ion-toolbar *ngIf=\"!hideTopToolbar && topBar\" class=\"ajf-btn-strip\">\n        <div class=\"ajf-topbar-buttons\">\n          <ng-container *ngFor=\"let slideInstance of (slides|async)\">\n            <ion-button\n              class=\"ajf-topbar-button\"\n              *ngIf=\"slideInstance.node && slideInstance.node.label && slideInstance.node.label.length > 0\"\n              (click)=\"scrollToSlide(slideInstance)\"\n              >{{slideInstance.node.label | transloco}}</ion-button\n            >\n          </ng-container>\n        </div>\n      </ion-toolbar>\n      <ion-toolbar *ngIf=\"!hideTopToolbar\">\n        {{ title | transloco }}\n        <ion-buttons slot=\"end\">\n          <!-- this content projection  allow to add buttons on toolbar-->\n          <ng-content select=\"[ajfFormTopToolbarButtons]\"></ng-content>\n          <!-- apply a default save button only when ajfFormSaveButton is empty-->\n          <span *ngIf=\"!saveDisabled\" (click)=\"onSave($event)\">\n            <span #saveButton\n              ><ng-content select=\"[ajfFormSaveButton]\"></ng-content\n            ></span>\n            <ion-button\n              *ngIf=\"saveButton && saveButton.childNodes && saveButton.childNodes.length === 0\"\n              >{{ 'Save' | transloco }}</ion-button\n            >\n          </span>\n        </ion-buttons>\n      </ion-toolbar>\n      <div class=\"ajf-slider-container\">\n        <ajf-page-slider\n          (orientationChange)=\"orientationChangeHandler($event)\"\n          [hideNavigationButtons]=\"hideNavigationButtons\"\n          [fixedOrientation]=\"fixedOrientation\"\n          [orientation]=\"orientation\"\n          #formSlider\n        >\n          <ng-container *ngIf=\"(slides|async) as curSlides\">\n            <ng-container\n              *ngIf=\"curSlides && curSlides!.length > 0 && hasStartMessage\"\n            >\n              <ajf-page-slider-item>\n                <div ajfFormPage class=\"ajf-form-page\">\n                  <ion-card>\n                    <ion-card-header>\n                      <div class=\"ajf-page-slider-item-header\">\n                        <h2>\n                          <span class=\"ajf-form-header-number\"> 1 &rarr; </span>\n                          <span class=\"ajf-title\">\n                            <ng-content\n                              select=\"[ajfFormStartMessageTitle]\"\n                            ></ng-content>\n                          </span>\n                        </h2>\n                      </div>\n                    </ion-card-header>\n                    <ion-card-content>\n                      <ng-content select=\"[ajfFormStartMessage]\"></ng-content>\n                    </ion-card-content>\n                  </ion-card>\n                </div>\n              </ajf-page-slider-item>\n            </ng-container>\n            <ng-container\n              *ngFor=\"let slideInstance of curSlides; trackBy: trackNodeById\"\n            >\n              <ng-container\n                *ngIf=\"(!(slideInstance|ajfIsRepeatingSlideInstance)) && slideInstance.visible\"\n              >\n                <ajf-page-slider-item>\n                  <div ajfFormPage class=\"ajf-form-page\">\n                    <ion-card>\n                      <ion-card-header>\n                        <div class=\"ajf-page-slider-item-header\">\n                          <h2>\n                            <span class=\"ajf-form-header-number\"\n                              >{{ slideInstance.position + (hasStartMessage |\n                              ajfBoolToInt) }} &rarr;</span\n                            >\n                            <span class=\"ajf-title\"\n                              >{{ slideInstance.node.label | transloco}}</span\n                            >\n                          </h2>\n                          <ion-icon\n                            color=\"danger\"\n                            name=\"warning\"\n                            *ngIf=\"!slideInstance.valid\"\n                          ></ion-icon>\n                          <ion-icon\n                            color=\"secondary\"\n                            name=\"checkmark\"\n                            *ngIf=\"slideInstance.valid\"\n                          ></ion-icon>\n                        </div>\n                      </ion-card-header>\n                      <ion-card-content>\n                        <ng-container\n                          *ngFor=\"let fieldInstance of slideInstance.flatNodes; trackBy: trackNodeById\"\n                        >\n                          <div\n                            [ngClass]=\"'ajf-' + (fieldInstance|ajfAsFieldInstance).node.size\"\n                            class=\"ajf-field-entry\"\n                            *ngIf=\"fieldInstance.visible\"\n                          >\n                            <i\n                              [class]=\"(fieldInstance|ajfAsFieldInstance).node.fieldType | ajfFieldIcon\"\n                              item-right\n                            ></i>\n                            <p>\n                              {{\n                              (fieldInstance|ajfAsFieldInstance).node.description\n                              }}\n                            </p>\n                            <ion-label\n                              [innerHTML]=\"fieldInstance.node.label | transloco\"\n                            ></ion-label>\n                            <ion-icon\n                              *ngIf=\"(fieldInstance|ajfAsFieldInstance).node?.hint as hint\"\n                              [name]=\"(fieldInstance|ajfAsFieldInstance).node.hintIcon || 'help-outline'\"\n                              (click)=\"openPopover($event, hint)\"\n                            ></ion-icon>\n                            <ajf-field\n                              [instance]=\"fieldInstance|ajfAsFieldInstance\"\n                              [readonly]=\"readonly || !slideInstance.editable\"\n                            >\n                            </ajf-field>\n                          </div>\n                        </ng-container>\n                      </ion-card-content>\n                    </ion-card>\n                  </div>\n                </ajf-page-slider-item>\n              </ng-container>\n              <ng-container\n                *ngIf=\"(slideInstance|ajfIsRepeatingSlideInstance) && slideInstance.visible\"\n              >\n                <ajf-page-slider-item\n                  *ngFor=\"let curRep of ((slideInstance|ajfAsRepeatingSlideInstance).reps|ajfRange); let idx = index; let lastSlide = last\"\n                >\n                  <div ajfFormPage class=\"ajf-form-page\">\n                    <ion-card>\n                      <ion-card-header>\n                        <div class=\"ajf-page-slider-item-header\">\n                          <h2>\n                            <span class=\"ajf-form-header-number\"\n                              >{{ slideInstance.position|ajfIncrement:idx }}\n                              &rarr;</span\n                            >\n                            <span class=\"ajf-title\"\n                              >{{ slideInstance.node.label | transloco }}</span\n                            >\n                          </h2>\n                          <ion-icon\n                            color=\"danger\"\n                            name=\"ajf-warning\"\n                            *ngIf=\"!(slideInstance|ajfValidSlide:idx)\"\n                          ></ion-icon>\n                          <ion-icon\n                            color=\"secondary\"\n                            name=\"checkmark\"\n                            *ngIf=\"(slideInstance|ajfValidSlide:idx)\"\n                          ></ion-icon>\n                        </div>\n                        <div\n                          *ngIf=\"lastSlide && !readonly\"\n                          class=\"ajf-group-actions\"\n                        >\n                          <ion-fab-button\n                            size=\"small\"\n                            (click)=\"addGroup(slideInstance)\"\n                            [disabled]=\"!(slideInstance|ajfAsRepeatingSlideInstance).canAdd || ((slideInstance|ajfAsRepeatingSlideInstance).node.disableRemoval && !slideInstance.valid)\"\n                          >\n                            <ion-icon name=\"add\"></ion-icon>\n                          </ion-fab-button>\n                          <ion-fab-button\n                            size=\"small\"\n                            (click)=\"removeGroup(slideInstance)\"\n                            [disabled]=\"!(slideInstance|ajfAsRepeatingSlideInstance).canRemove || (slideInstance|ajfAsRepeatingSlideInstance).node.disableRemoval\"\n                          >\n                            <ion-icon name=\"remove\"></ion-icon>\n                          </ion-fab-button>\n                        </div>\n                      </ion-card-header>\n                      <ion-card-content>\n                        <ng-container\n                          *ngFor=\"let fieldInstance of slideInstance.slideNodes[idx]; trackBy: trackNodeById\"\n                        >\n                          <div\n                            [ngClass]=\"'ajf-' + (fieldInstance|ajfAsFieldInstance).node.size\"\n                            class=\"ajf-field-entry\"\n                            *ngIf=\"fieldInstance.visible\"\n                          >\n                            <i\n                              [class]=\"(fieldInstance|ajfAsFieldInstance).node.fieldType | ajfFieldIcon\"\n                              item-right\n                            ></i>\n                            <p>\n                              {{\n                              (fieldInstance|ajfAsFieldInstance).node.description\n                              }}\n                            </p>\n                            <ion-label\n                              [innerHTML]=\"fieldInstance.node.label | transloco\"\n                            ></ion-label>\n                            <ajf-field\n                              [instance]=\"fieldInstance|ajfAsFieldInstance\"\n                              [readonly]=\"readonly || (!lastSlide && (slideInstance|ajfAsRepeatingSlideInstance).node.disableRemoval)\"\n                            ></ajf-field>\n                          </div>\n                        </ng-container>\n                        <div\n                          *ngIf=\"lastSlide && longSlide\"\n                          class=\"ajf-group-actions ajf-group-actions-bottom\"\n                        >\n                          <ion-fab-button\n                            size=\"small\"\n                            (click)=\"addGroup(slideInstance)\"\n                            [disabled]=\"!(slideInstance|ajfAsRepeatingSlideInstance).canAdd\"\n                            mat-mini-fab\n                          >\n                            <ion-icon name=\"add\"></ion-icon>\n                          </ion-fab-button>\n                          <ion-fab-button\n                            size=\"small\"\n                            (click)=\"removeGroup(slideInstance)\"\n                            [disabled]=\"!(slideInstance|ajfAsRepeatingSlideInstance).canRemove\"\n                            mat-mini-fab\n                          >\n                            <ion-icon name=\"remove\"></ion-icon>\n                          </ion-fab-button>\n                        </div>\n                      </ion-card-content>\n                    </ion-card>\n                  </div>\n                </ajf-page-slider-item>\n              </ng-container>\n            </ng-container>\n            <ng-container\n              *ngIf=\"curSlides && curSlides!.length > 0 && hasEndMessage\"\n            >\n              <ajf-page-slider-item>\n                <div ajfFormPage class=\"ajf-form-page\">\n                  <ion-card>\n                    <ion-card-header>\n                      <div class=\"ajf-page-slider-item-header\">\n                        <h2>\n                          <span\n                            *ngIf=\"(slidesNum|async) as snum\"\n                            class=\"ajf-form-header-number\"\n                          >\n                            {{ snum! + (hasStartMessage | ajfBoolToInt) + 1 }}\n                            &rarr;\n                          </span>\n                          <span class=\"ajf-title\">\n                            <ng-content\n                              select=\"[ajfFormEndMessageTitle]\"\n                            ></ng-content>\n                          </span>\n                        </h2>\n                      </div>\n                    </ion-card-header>\n                    <ion-card-content>\n                      <ng-content select=\"[ajfFormEndMessage]\"></ng-content>\n                    </ion-card-content>\n                  </ion-card>\n                </div>\n              </ajf-page-slider-item>\n            </ng-container>\n          </ng-container>\n          <div ajfPageSliderBar *ngIf=\"!hideBottomToolbar\">\n            <div class=\"ajf-left-bar\">\n              <ion-buttons\n                class=\"ajf-errors\"\n                *ngIf=\"((errors | async) || 0) > 0\"\n              >\n                <ion-button (click)=\"goToPrevError()\" color=\"danger\">\n                  <ion-icon name=\"arrow-up\"></ion-icon>\n                </ion-button>\n                <ion-button (click)=\"goToNextError()\" color=\"danger\">\n                  <ion-icon name=\"arrow-down\"></ion-icon>\n                </ion-button>\n              </ion-buttons>\n              <div class=\"ajf-info-box ajf-error\">\n                <div class=\"ajf-title\">{{'Errors'|transloco}}</div>\n                <div class=\"ajf-content\">\n                  {{ errors | async }} / {{ slidesNum|async }}\n                </div>\n              </div>\n            </div>\n          </div>\n        </ajf-page-slider>\n      </div>\n    </div>\n  </form>\n</ng-container>\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfCommonModule} from '@ajf/core/common';\nimport {AJF_WARNING_ALERT_SERVICE, AjfFormsModule as CoreFormsModule} from '@ajf/core/forms';\nimport {AjfTranslocoModule} from '@ajf/core/transloco';\nimport {AjfBarcodeModule} from '@ajf/ionic/barcode';\nimport {AjfCalendarModule} from '@ajf/ionic/calendar';\nimport {AjfCheckboxGroupModule} from '@ajf/ionic/checkbox-group';\nimport {AjfPageSliderModule} from '@ajf/ionic/page-slider';\nimport {AjfTimeModule} from '@ajf/ionic/time';\nimport {CommonModule} from '@angular/common';\nimport {ModuleWithProviders, NgModule} from '@angular/core';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {GicModule} from '@gic/angular';\nimport {IonicModule} from '@ionic/angular';\n\nimport {AjfBarcodeFieldComponent} from './barcode-field';\nimport {AjfBooleanFieldComponent} from './boolean-field';\nimport {AjfDateFieldComponent} from './date-field';\nimport {AjfDateInputFieldComponent} from './date-input-field';\nimport {AjfEmptyFieldComponent} from './empty-field';\nimport {AjfFormField} from './field';\nimport {AjfFieldService} from './field-service';\nimport {AjfFormRenderer} from './form';\nimport {AjfFormPage} from './form-page';\nimport {AjfFormulaFieldComponent} from './formula-field';\nimport {AjfInputFieldComponent} from './input-field';\nimport {AjfMultipleChoiceFieldComponent} from './multiple-choice-field';\nimport {AjfNumberFieldComponent} from './number-field';\nimport {AjfPopover} from './popover';\nimport {AjfRangeFieldComponent} from './range-field';\nimport {AjfSelectHasSearchBarPipe} from './select-has-search-bar.pipe';\nimport {AjfSelectUseVirtualScroll} from './select-use-virtual-scroll.pipe';\nimport {AjfSingleChoiceFieldComponent} from './single-choice-field';\nimport {AjfTableFieldComponent} from './table-field';\nimport {AjfTextareaFieldComponent} from './textarea-field';\nimport {AjfTimeFieldComponent} from './time-field';\nimport {AjfVideoUrlFieldComponent} from './video-url-field';\nimport {AjfWarningAlertService} from './warning-alert-service';\n\n@NgModule({\n  imports: [\n    AjfBarcodeModule,\n    AjfCalendarModule,\n    AjfCheckboxGroupModule,\n    AjfCommonModule,\n    AjfPageSliderModule,\n    AjfTimeModule,\n    CommonModule,\n    CoreFormsModule,\n    FormsModule,\n    GicModule,\n    IonicModule,\n    ReactiveFormsModule,\n    AjfTranslocoModule,\n  ],\n  declarations: [\n    AjfBarcodeFieldComponent,\n    AjfBooleanFieldComponent,\n    AjfDateFieldComponent,\n    AjfDateInputFieldComponent,\n    AjfEmptyFieldComponent,\n    AjfFormField,\n    AjfFormPage,\n    AjfFormRenderer,\n    AjfFormulaFieldComponent,\n    AjfInputFieldComponent,\n    AjfMultipleChoiceFieldComponent,\n    AjfNumberFieldComponent,\n    AjfPopover,\n    AjfRangeFieldComponent,\n    AjfSelectHasSearchBarPipe,\n    AjfSelectUseVirtualScroll,\n    AjfSingleChoiceFieldComponent,\n    AjfTableFieldComponent,\n    AjfTextareaFieldComponent,\n    AjfTimeFieldComponent,\n    AjfVideoUrlFieldComponent,\n  ],\n  exports: [AjfFormField, AjfFormRenderer],\n  providers: [\n    AjfFieldService,\n    {provide: AJF_WARNING_ALERT_SERVICE, useClass: AjfWarningAlertService},\n  ],\n})\nexport class AjfFormsModule {\n  static forRoot(): ModuleWithProviders<AjfFormsModule> {\n    return {\n      ngModule: AjfFormsModule,\n      providers: [AjfFieldService],\n    };\n  }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nexport * from './boolean-field';\nexport * from './date-field';\nexport * from './date-input-field';\nexport * from './empty-field';\nexport * from './field';\nexport * from './field-service';\nexport * from './input-field';\nexport * from './form';\nexport * from './forms-module';\nexport * from './multiple-choice-field';\nexport * from './number-field';\nexport * from './range-field';\nexport * from './single-choice-field';\nexport * from './table-field';\nexport * from './textarea-field';\nexport * from './time-field';\nexport * from './warning-alert-service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2","i4","i3","i5","CoreComponent","i7","i9.AjfSelectHasSearchBarPipe","i10.AjfSelectUseVirtualScroll","i6","i7.AjfSelectHasSearchBarPipe","i8.AjfSelectUseVirtualScroll","CoreTableFieldComponent","CoreService","CoreFormField","i1.AjfFieldService","CoreFormRenderer","i7.AjfFormField","i8.AjfFormPage","i9","CoreFormsModule"],"mappings":"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"}