{"version":3,"file":"formio-angular.mjs","sources":["../../../projects/angular-formio/src/formio.config.ts","../../../projects/angular-formio/src/formio.common.ts","../../../projects/angular-formio/src/formio.service.ts","../../../projects/angular-formio/src/formio-promise.service.ts","../../../projects/angular-formio/src/formio.utils.ts","../../../projects/angular-formio/src/components/alerts/formio.alerts.ts","../../../projects/angular-formio/src/types/alerts-position.ts","../../../projects/angular-formio/src/custom-tags.service.ts","../../../projects/angular-formio/src/FormioBaseComponent.ts","../../../projects/angular-formio/src/components/loader/formio.loader.component.ts","../../../projects/angular-formio/src/components/loader/formio.loader.component.html","../../../projects/angular-formio/src/components/alerts/parse-html-content.pipe.ts","../../../projects/angular-formio/src/components/alerts/formio.alerts.component.ts","../../../projects/angular-formio/src/components/alerts/formio.alerts.component.html","../../../projects/angular-formio/src/components/formio/formio.component.ts","../../../projects/angular-formio/src/components/formio/formio.component.html","../../../projects/angular-formio/src/components/formbuilder/formbuilder.component.ts","../../../projects/angular-formio/src/components/formbuilder/formbuilder.component.html","../../../projects/angular-formio/src/components/formioreport/formioreport.component.ts","../../../projects/angular-formio/src/components/formioreport/formioreport.component.html","../../../projects/angular-formio/src/formio.module.ts","../../../projects/angular-formio/src/core.ts","../../../projects/angular-formio/src/formio-angular.ts"],"sourcesContent":["import { Inject, Injectable, InjectionToken } from '@angular/core';\nexport const FORMIO_CONFIG = new InjectionToken('formio-config');\nimport { Formio } from '@formio/js';\n\n@Injectable()\nexport class FormioAppConfig {\n  [x: string]: any;\n  appUrl = '';\n  apiUrl = '';\n  icons?: string;\n  formOnly?: boolean;\n  formio?: Formio;\n  constructor(@Inject(FORMIO_CONFIG) config: {\n    apiUrl?: string,\n    baseUrl?: string, \n    appUrl?: string,\n    projectUrl?: string\n  } = {}) {\n    this.apiUrl = config.apiUrl || config.baseUrl;\n    this.appUrl = config.appUrl || config.projectUrl;\n    if (this.apiUrl) {\n      Formio.setBaseUrl(this.apiUrl);\n      Formio.setProjectUrl(this.appUrl);\n      this.formio = new Formio(this.appUrl);\n    }\n  }\n}\n","import { ExtendedComponentSchema, ValidateOptions } from '@formio/deprecated-types';\nimport { AlertsPosition } from './types/alerts-position';\n\nexport interface ComponentOptions<T = any, V extends ValidateOptions = ValidateOptions> extends ExtendedComponentSchema<T> {\n  validate?: V;\n}\n\nexport interface FormioRefreshValue {\n  property?: string;\n  value?: object;\n  form?: object;\n  submission?: object;\n}\n\nexport interface AccessSetting {\n  type: string;\n  roles: string[];\n}\n\nexport interface FormioReport {\n  form: string;\n  roles: object;\n  access: object;\n  metadata: object;\n  data: object;\n  project: string;\n}\n\nexport interface FormioForm {\n  title?: string;\n  display?: string;\n  name?: string;\n  path?: string;\n  type?: string;\n  project?: string;\n  template?: string;\n  components?: ExtendedComponentSchema[];\n  tags?: string[];\n  access?: AccessSetting[];\n  submissionAccess?: AccessSetting[];\n  report?: FormioReport;\n}\n\nexport interface ComponentInstance {\n  component: ExtendedComponentSchema;\n  id: string;\n  type: string;\n  asString?(value: any): string;\n  getView(value: any): string;\n}\n\nexport interface AlertsOptions {\n  submitMessage: string;\n}\n\nexport interface ErrorsOptions {\n  message: string;\n}\n\nexport class FormioError {\n  constructor(\n    public message: string,\n    public component: ExtendedComponentSchema,\n    public silent?: boolean,\n  ) {}\n}\n\nexport type FormioSubmissionCallback = (\n  error: FormioError,\n  submission: object\n) => void;\nexport type FormioBeforeSubmit = (\n  submission: object,\n  callback: FormioSubmissionCallback\n) => void;\n\nexport interface FormioHookOptions {\n  beforeSubmit: FormioBeforeSubmit;\n}\n\nexport interface AngularFormioOptions {\n  errors?: ErrorsOptions;\n  alerts?: AlertsOptions;\n  alertsPosition?: AlertsPosition;\n  disableAlerts?: boolean;\n}\n","import { Observable, Observer } from 'rxjs';\nimport { FormioForm } from './formio.common';\nimport { FormioCore as Formio } from '@formio/js';\n\nexport class FormioService {\n  public formio: any;\n  constructor(public url: string, public options?: object) {\n    this.formio = new Formio(this.url, this.options);\n  }\n  requestWrapper(fn: any) {\n    let record: any;\n    let called = false;\n    return Observable.create((observer: Observer<any>) => {\n      try {\n        if (!called) {\n          called = true;\n          fn()\n            .then((_record: any) => {\n              record = _record;\n              observer.next(record);\n              observer.complete();\n            })\n            .catch((err: any) => observer.error(err));\n        } else if (record) {\n          observer.next(record);\n          observer.complete();\n        }\n      } catch (err) {\n        observer.error(err);\n      }\n    });\n  }\n  saveForm(form: FormioForm, options?: any): Observable<FormioForm> {\n    return this.requestWrapper(() => this.formio.saveForm(form, options));\n  }\n  loadForm(query?: any, options?: any): Observable<FormioForm> {\n    return this.requestWrapper(() => this.formio.loadForm(query, options));\n  }\n  loadForms(query: any, options?: any): Observable<FormioForm> {\n    return this.requestWrapper(() => this.formio.loadForms(query, options));\n  }\n  loadSubmission(query?: any, options?: any): Observable<{}> {\n    return this.requestWrapper(() => this.formio.loadSubmission(query, options));\n  }\n  userPermissions(user: any, form: any, submission: any): Observable<{}> {\n    return this.requestWrapper(() => this.formio.userPermissions(user, form, submission));\n  }\n  deleteSubmission(data?: any, options?: any): Observable<{}> {\n    return this.requestWrapper(() => this.formio.deleteSubmission(data, options));\n  }\n  saveSubmission(submission: {}, options?: any): Observable<{}> {\n    return this.requestWrapper(() => this.formio.saveSubmission(submission, options));\n  }\n  loadSubmissions(query?: any, options?: any): Observable<{}> {\n    return this.requestWrapper(() => this.formio.loadSubmissions(query, options));\n  }\n}\n","import { from } from 'rxjs';\nimport { FormioService } from './formio.service';\nimport { FormioForm } from './formio.common';\n\nexport class FormioPromiseService {\n  private formioService: FormioService;\n\n  constructor(public url: string, public options?: object) {\n    this.formioService = new FormioService(url, options);\n  }\n\n  saveForm(form: FormioForm, options?: any): Promise<any> {\n    return this.formioService.saveForm(form, options).toPromise();\n  }\n  loadForm(query?: any, options?: any): Promise<any> {\n    return this.formioService.loadForm(query, options).toPromise();\n  }\n  loadSubmission(query?: any, options?: any): Promise<any> {\n    return this.formioService.loadSubmission(query, options).toPromise();\n  }\n  userPermissions(user: any, form: any, submission: any): Promise<any> {\n    return this.formioService.userPermissions(user, form, submission).toPromise();\n  }\n  deleteSubmission(data?: any, options?: any): Promise<any> {\n    return this.formioService.deleteSubmission(data, options).toPromise();\n  }\n  loadForms(query: any, options?: any): Promise<any> {\n    return this.formioService.loadForms(query, options).toPromise();\n  }\n  saveSubmission(submission: {}, options?: any): Promise<any> {\n    return this.formioService.saveSubmission(submission, options).toPromise();\n  }\n  loadSubmissions(query?: any, options?: any): Promise<any> {\n    return this.formioService.loadSubmissions(query, options).toPromise();\n  }\n}\n","import { RouterModule } from '@angular/router';\nimport { each } from 'lodash';\n\nexport function extendRouter(Class: any, config: any, ClassRoutes: any) {\n  each(Class.decorators, decorator => {\n    each(decorator.args, arg => {\n      if (arg.declarations) {\n        each(config, component => arg.declarations.push(component));\n      }\n      if (arg.imports) {\n        each(arg.imports, (_import, index) => {\n          if (\n            (_import.ngModule && (_import.ngModule.name === 'RouterModule')) ||\n            (_import.ngModule && (_import.ngModule.name === '_RouterModule')) ||\n            (_import.name === 'RouterModule') ||\n            (_import.name === '_RouterModule')\n          ) {\n            arg.imports[index] = RouterModule.forChild(ClassRoutes(config));\n          }\n        });\n      }\n    });\n  });\n  return Class;\n}\n","export interface FormioAlert {\n  type: string;\n  message: string;\n  component?: any;\n}\n\nexport class FormioAlerts {\n  public alerts: FormioAlert[] = [];\n\n  setAlert(alert: FormioAlert) {\n    this.alerts = [alert];\n  }\n\n  addAlert(alert: FormioAlert) {\n    this.alerts.push(alert);\n  }\n\n  setAlerts(alerts: FormioAlert[]) {\n    this.alerts = alerts;\n  }\n}\n","export enum AlertsPosition {\n  none,\n  top,\n  bottom,\n  both\n}\n","import { Injectable } from '@angular/core';\n@Injectable()\nexport class CustomTagsService {\n  tags: string[] = [];\n\n  addCustomTag(tag: string) {\n    this.tags.push(tag);\n  }\n}","import { Component, ElementRef, EventEmitter, Input, NgZone, OnChanges, OnDestroy, OnInit, Optional, Output, ViewChild } from '@angular/core';\nimport { FormioService } from './formio.service';\nimport { FormioAlerts } from './components/alerts/formio.alerts';\nimport { FormioAppConfig } from './formio.config';\nimport {AngularFormioOptions, FormioError, FormioForm, FormioRefreshValue} from './formio.common';\nimport { assign, get, isEmpty } from 'lodash';\nimport { CustomTagsService } from './custom-tags.service';\nimport {Form, Utils, Webform} from '@formio/js';\nimport { AlertsPosition } from './types/alerts-position';\nconst { Evaluator, fastCloneDeep } = Utils;\n\n@Component({\n  template: '',\n  standalone: false\n})\nexport class FormioBaseComponent implements OnInit, OnChanges, OnDestroy {\n  @Input() form?: FormioForm;\n  @Input() submission?: any = {};\n  @Input() src?: string;\n  @Input() url?: string;\n  @Input() service?: FormioService;\n  @Input() options?: Form['options'] & AngularFormioOptions;\n  @Input() noeval ? = Evaluator.noeval;\n  @Input() formioOptions?: any;\n  @Input() renderOptions?: any;\n  @Input() readOnly ? = false;\n  @Input() viewOnly ? = false;\n  @Input() hideLoading ? = false;\n  @Input() hideComponents?: string[];\n  @Input() refresh?: EventEmitter<FormioRefreshValue>;\n  @Input() error?: EventEmitter<any>;\n  @Input() success?: EventEmitter<object>;\n  @Input() submitDone?: EventEmitter<object>;\n  @Input() language?: EventEmitter<string> | string;\n  @Input() hooks?: any = {};\n  @Input() renderer?: any;\n  @Input() watchSubmissionErrors ? = false;\n  @Input() dataTableActions?: any = [];\n  @Output() render = new EventEmitter<object>();\n  @Output() customEvent = new EventEmitter<object>();\n  @Output() fileUploadingStatus = new EventEmitter<string>();\n  @Output() submit = new EventEmitter<object>();\n  @Output() prevPage = new EventEmitter<object>();\n  @Output() nextPage = new EventEmitter<object>();\n  @Output() beforeSubmit = new EventEmitter<object>();\n  @Output() rowAdd = new EventEmitter<any>();\n  @Output() rowAdded = new EventEmitter<any>();\n  @Output() rowEdit = new EventEmitter<any>();\n  @Output() rowEdited = new EventEmitter<any>();\n  @Output() rowDelete = new EventEmitter<any>();\n  @Output() rowClick = new EventEmitter<any>();\n  @Output() rowSelectChange = new EventEmitter<any>();\n  @Output() page = new EventEmitter<any>();\n  @Output() changeItemsPerPage = new EventEmitter<any>();\n  @Output() change = new EventEmitter<object>();\n  @Output() invalid = new EventEmitter<boolean>();\n  @Output() errorChange = new EventEmitter<any>();\n  @Output() formLoad = new EventEmitter<any>();\n  @Output() submissionLoad = new EventEmitter<any>();\n  @Output() ready = new EventEmitter<FormioBaseComponent>();\n  @ViewChild('formio', { static: true }) formioElement?: ElementRef<any>;\n\n  public AlertsPosition = AlertsPosition;\n  public formio: any;\n  public initialized = false;\n  public alerts = new FormioAlerts();\n  public formioReady: Promise<any>;\n\n  private formioReadyResolve: any;\n  private submitting = false;\n  private submissionSuccess = false;\n  public isLoading: boolean;\n  public noAlerts: boolean;\n  public label: string;\n\n  constructor(\n    public ngZone: NgZone,\n    @Optional() public config: FormioAppConfig,\n    @Optional() public customTags?: CustomTagsService,\n  ) {\n    this.isLoading = true;\n    this.formioReady = new Promise((ready) => {\n      this.formioReadyResolve = ready;\n    });\n  }\n\n  getRenderer() {\n    return this.renderer;\n  }\n\n  getRendererOptions() {\n    const extraTags = this.customTags ? this.customTags.tags : [];\n    return assign({}, {\n      icons: get(this.config, 'icons', 'fontawesome'),\n      noAlerts: get(this.options, 'noAlerts', true),\n      readOnly: this.readOnly,\n      viewAsHtml: this.viewOnly,\n      ...(this.viewOnly && { renderMode: \"html\" }),\n      i18n: get(this.options, 'i18n', null),\n      fileService: get(this.options, 'fileService', null),\n      hooks: this.hooks,\n      sanitizeConfig: {\n        addTags: extraTags\n      },\n      dataTableActions: this.dataTableActions\n    }, this.renderOptions || {});\n  }\n\n  createRenderer() {\n    const Renderer = this.getRenderer();\n    const form = (new Renderer(\n      this.formioElement ? this.formioElement.nativeElement : null,\n      this.form,\n      this.getRendererOptions()\n    ));\n    return form.instance;\n  }\n\n  setFormUrl(url) {\n    this.formio.setUrl(url, this.formioOptions || {});\n  }\n\n  setForm(form: FormioForm) {\n    this.form = form;\n    if (this.formio) {\n      this.formio.destroy();\n    }\n\n    if (this.form.title) {\n      this.label = this.form.title;\n    } else if (this.form.components && this.form.components[0]) {\n      this.label = this.form.components[0].label;\n    }\n\n    // Clear out the element to render the new form.\n    if (this.formioElement && this.formioElement.nativeElement) {\n      this.formioElement.nativeElement.innerHTML = '';\n    }\n    this.formio = this.createRenderer();\n\n    if(!this.formio) {\n      return;\n    }\n    this.formio.setSubmission(this.submission, {\n      fromSubmission: false\n    });\n    if (this.renderOptions && this.renderOptions.validateOnInit) {\n      this.formio.setValue(this.submission, {validateOnInit: true});\n    }\n    if (this.url) {\n      this.setFormUrl(this.url);\n    }\n    if (this.src) {\n      this.setFormUrl(this.src);\n    }\n    this.formio.nosubmit = true;\n    this.attachFormEvents();\n\n    return this.formio.ready.then(() => {\n      this.ngZone.run(() => {\n        this.isLoading = false;\n        this.ready.emit(this);\n        this.formioReadyResolve(this.formio);\n        if (this.formio.submissionReady) {\n          this.formio.submissionReady.then((submission) => {\n            this.submissionLoad.emit(submission);\n          });\n        }\n      });\n      return this.formio;\n    });\n  }\n\n  attachFormEvents() {\n    this.formio.on('prevPage', (data: any) => this.ngZone.run(() => this.onPrevPage(data)));\n    this.formio.on('nextPage', (data: any) => this.ngZone.run(() => this.onNextPage(data)));\n    this.formio.on('change', (value: any, flags: any, isModified: boolean) => this.ngZone.run(() => this.onChange(value, flags, isModified)));\n    this.formio.on('rowAdd', (component: any) =>  this.ngZone.run(() => this.rowAdd.emit(component)));\n    this.formio.on('rowAdded', (data: any, component: any) =>  this.ngZone.run(() => this.rowAdded.emit({component, row: data})));\n    this.formio.on('rowEdit', (data: any, rowIndex: number, index: number, component: any) =>  this.ngZone.run(() => this.rowEdit.emit({component, row: data, rowIndex, index})));\n    this.formio.on('rowEdited', (data: any, rowIndex: number, component: any) =>  this.ngZone.run(() => this.rowEdited.emit({component, row: data, rowIndex})));\n    this.formio.on('rowDelete', (data: any, rowIndex: number, index: number, component: any) =>  this.ngZone.run(() => this.rowDelete.emit({component, row: data, rowIndex, index})));\n    this.formio.on('rowClick', (row: any, rowIndex: number, index: number,component: any) =>  this.ngZone.run(() => this.rowClick.emit({component, row, rowIndex, index})));\n    this.formio.on('rowSelectChange', (selectedRows: any[], component: any) =>  this.ngZone.run(() => this.rowSelectChange.emit({selectedRows, component})));\n    this.formio.on('page', (currentPage: number, component: any) =>  this.ngZone.run(() => this.page.emit({currentPage, component})));\n    this.formio.on('changeItemsPerPage', (itemsPerPage:number) =>  this.ngZone.run(() => this.changeItemsPerPage.emit({itemsPerPage})));\n    this.formio.on('customEvent', (event: any) =>\n      this.ngZone.run(() => this.customEvent.emit(event))\n    );\n\n    ['fileUploadingStart', 'fileUploadingEnd'].forEach((eventName, index) => {\n      const status = !!index ? 'end' : 'start';\n      this.formio.on(eventName, () =>\n        this.ngZone.run(() => this.fileUploadingStatus.emit(status))\n      );\n    });\n\n    this.formio.on('submit', (submission: any, saved: boolean) =>\n      this.ngZone.run(() => this.submitForm(submission, saved))\n    );\n    this.formio.on('error', (err: any) => this.ngZone.run(() => {\n      this.submissionSuccess = false;\n      return this.onError(err);\n    }));\n    this.formio.on('render', () => this.ngZone.run(() => this.render.emit()));\n    this.formio.on('formLoad', (loadedForm: any) =>\n      this.ngZone.run(() => this.formLoad.emit(loadedForm))\n    );\n  }\n\n  initialize() {\n    if (this.initialized) {\n      return;\n    }\n\n    const extraTags = this.customTags ? this.customTags.tags : [];\n    const defaultOptions: Form['options'] & AngularFormioOptions = {\n      errors: {\n        message: 'Please fix the following errors before submitting.'\n      },\n      alerts: {\n        submitMessage: 'Submission Complete.'\n      },\n      disableAlerts: false,\n      hooks: {\n        beforeSubmit: null\n      },\n      sanitizeConfig: {\n        addTags: extraTags\n      },\n      alertsPosition: AlertsPosition.top,\n    };\n    this.options = Object.assign(defaultOptions, this.options);\n    if (this.options.disableAlerts) {\n      this.options.alertsPosition = AlertsPosition.none;\n    }\n    this.initialized = true;\n  }\n\n  ngOnInit() {\n    Evaluator.noeval = this.noeval;\n    this.initialize();\n\n    if (this.language) {\n      if (typeof this.language === 'string') {\n        this.formio.language = this.language;\n      } else {\n        this.language.subscribe((lang: string) => {\n          this.formio.language = lang;\n        });\n      }\n    }\n\n    if (this.refresh) {\n      this.refresh.subscribe((refresh: FormioRefreshValue) =>\n        this.onRefresh(refresh)\n      );\n    }\n\n    if (this.error) {\n      this.error.subscribe((err: any) => this.onError(err));\n    }\n\n    if (this.success) {\n      this.success.subscribe((message: string) => {\n        this.alerts.setAlert({\n          type: 'success',\n          message: message || get(this.options, 'alerts.submitMessage')\n        });\n      });\n    }\n\n    if (this.submitDone) {\n      this.submitDone.subscribe((submission: object) => {\n        this.formio.emit('submitDone', submission);\n      });\n    }\n\n    if (this.src) {\n      if (!this.service) {\n        this.service = new FormioService(this.src);\n      }\n      this.isLoading = true;\n      this.setFormFromSrc();\n    }\n    if (this.url && !this.service) {\n      this.service = new FormioService(this.url);\n    }\n  }\n\n  setFormFromSrc() {\n    this.service.loadForm({ params: { live: 1 } }).subscribe(\n      (form: FormioForm) => {\n        if (form && form.components) {\n          this.ngZone.runOutsideAngular(() => {\n            this.setForm(form);\n          });\n        }\n\n        // if a submission is also provided.\n        if (\n          isEmpty(this.submission) &&\n          this.service &&\n          this.service.formio.submissionId\n        ) {\n          this.service.loadSubmission().subscribe(\n            (submission: any) => {\n              if (this.readOnly) {\n                this.formio.options.readOnly = true;\n              }\n              this.submission = this.formio.submission = submission;\n            },\n            err => this.onError(err)\n          );\n        }\n      },\n      err => this.onError(err)\n    );\n  }\n\n  ngOnDestroy() {\n    if (this.formio) {\n      this.formio.destroy();\n    }\n  }\n\n  onRefresh(refresh: FormioRefreshValue) {\n    this.formioReady.then(() => {\n      if (refresh.form) {\n        this.formio.setForm(refresh.form).then(() => {\n          if (refresh.submission) {\n            this.formio.setSubmission(refresh.submission);\n          }\n        });\n      } else if (refresh.submission) {\n        this.formio.setSubmission(refresh.submission);\n      } else {\n        switch (refresh.property) {\n          case 'submission':\n            this.formio.submission = refresh.value;\n            break;\n          case 'form':\n            this.formio.form = refresh.value;\n            break;\n        }\n      }\n    });\n  }\n\n  ngOnChanges(changes: any) {\n    Evaluator.noeval = this.noeval;\n    this.initialize();\n\n    if (changes.form && changes.form.currentValue) {\n      this.ngZone.runOutsideAngular(() => {\n        this.setForm(changes.form.currentValue);\n      });\n    }\n\n    this.formioReady.then(() => {\n      if (changes.submission && changes.submission.currentValue) {\n        this.formio.setSubmission(changes.submission.currentValue, {\n          fromSubmission: !changes.submission.firstChange\n        });\n      }\n\n      if (changes.hideComponents && changes.hideComponents.currentValue) {\n        const hiddenComponents = changes.hideComponents.currentValue;\n        this.formio.options.hide = hiddenComponents;\n        this.formio.everyComponent((component) => {\n          component.options.hide = hiddenComponents;\n          if (hiddenComponents.includes(component.component.key)) {\n            component.visible = false;\n          }\n        });\n      }\n    });\n  }\n\n  onPrevPage(data: any) {\n    this.alerts.setAlerts([]);\n    this.prevPage.emit(data);\n  }\n\n  onNextPage(data: any) {\n    this.alerts.setAlerts([]);\n    this.nextPage.emit(data);\n  }\n\n  onSubmit(submission: any, saved: boolean, noemit?: boolean) {\n    this.submitting = false;\n    this.submissionSuccess = true;\n\n    this.formio.setValue(fastCloneDeep(submission), {\n      noValidate: true,\n      noCheck: true\n    });\n\n    if (saved) {\n      this.formio.emit('submitDone', submission);\n    }\n    if (!noemit) {\n      this.submit.emit(submission);\n    }\n    if (!this.success) {\n      this.alerts.setAlert({\n        type: 'success',\n        message: get(this.options, 'alerts.submitMessage')\n      });\n    }\n  }\n\n  onError(err: any) {\n    this.alerts.setAlerts([]);\n    this.submitting = false;\n    this.isLoading = false;\n\n    if (!err) {\n      return;\n    }\n\n    // Make sure it is an array.\n    const errors = Array.isArray(err) ? err : [err];\n\n    // Emit these errors again.\n    this.errorChange.emit(errors);\n\n    if (err.silent) {\n      return;\n    }\n\n    if (this.formio && errors.length) {\n      this.formio.emit('submitError', errors);\n    }\n\n    // Iterate through each one and set the alerts array.\n    errors.forEach((error: any) => {\n      const {\n        message,\n        paths,\n      } = error\n        ? error.details\n          ? {\n            message: error.details.map((detail) => detail.message),\n            paths: error.details.map((detail) => detail.path),\n          }\n          : {\n            message: error.message || error.toString(),\n            paths: (error.path || error.formattedKeyOrPath) ? [error.path || error.formattedKeyOrPath] : [],\n          }\n        : {\n          message: '',\n          paths: [],\n        };\n\n      let shouldErrorDisplay = true;\n\n      if (this.formio) {\n        paths.forEach((path, index) => {\n          const component = this.formio.getComponent(path);\n          if (component) {\n            const components = Array.isArray(component) ? component : [component];\n            const messageText = Array.isArray(message) ? message[index] : message;\n            components.forEach((comp) => comp.setCustomValidity(messageText, true));\n            this.alerts.addAlert({\n              type: 'danger',\n              message: Array.isArray(message) ? message[index] : message,\n              component,\n            });\n            shouldErrorDisplay = false;\n          }\n        });\n\n        if ((window as any).VPAT_ENABLED) {\n          if (typeof error ==='string' && this.formio.components) {\n            this.formio.components.forEach((comp) => {\n              if (comp && comp.type !== 'button') {\n                comp.setCustomValidity(message, true);\n              }\n            });\n          }\n        }\n      }\n\n      if (shouldErrorDisplay) {\n        this.alerts.addAlert({\n          type: 'danger',\n          message,\n          component: error.component,\n        });\n      }\n    });\n\n    if (this.formio && !this.noAlerts) {\n      this.formio.showErrors(errors);\n    }\n  }\n\n  focusOnComponet(key: any) {\n    if (this.formio) {\n      this.formio.focusOnComponent(key);\n    }\n  }\n\n  submitExecute(submission: object, saved = false) {\n    if (this.service && !this.url && !saved) {\n      this.service\n        .saveSubmission(submission)\n        .subscribe(\n          (sub: {}) => this.onSubmit(sub, true),\n          err => this.onError(err)\n        );\n    } else {\n      this.onSubmit(submission, false);\n    }\n  }\n\n  submitForm(submission: any, saved = false) {\n    // Keep double submits from occurring...\n    if (this.submitting) {\n      return;\n    }\n    this.formio.setMetadata(submission);\n    this.submissionSuccess = false;\n    this.submitting = true;\n    this.beforeSubmit.emit(submission);\n\n    // if they provide a beforeSubmit hook, then allow them to alter the submission asynchronously\n    // or even provide a custom Error method.\n    const beforeSubmit = get(this.options, 'hooks.beforeSubmit');\n    if (beforeSubmit) {\n      beforeSubmit(submission, (err: FormioError, sub: object) => {\n        if (err) {\n          this.onError(err);\n          return;\n        }\n        this.submitExecute(sub, saved);\n      });\n    } else {\n      this.submitExecute(submission, saved);\n    }\n  }\n\n  onChange(value: any, flags: any, isModified: boolean) {\n    if (this.watchSubmissionErrors && !this.submissionSuccess) {\n      const errors = get(this, 'formio.errors', []);\n      const alerts = get(this, 'alerts.alerts', []);\n      const submitted = get(this, 'formio.submitted', false);\n      if (submitted && (errors.length || alerts.length)) {\n        this.onError(errors);\n      }\n    }\n    return this.change.emit({...value, flags, isModified});\n  }\n}\n","import {Component, Input} from '@angular/core';\n\n@Component({\n  selector: 'formio-loader',\n  styleUrls: ['./formio.loader.component.scss'],\n  templateUrl: './formio.loader.component.html',\n  standalone: false\n})\nexport class FormioLoaderComponent {\n  @Input() isLoading: boolean\n}\n","<div class=\"formio-loader-wrapper\" *ngIf=\"isLoading\">\n  <div class=\"formio-loader\"></div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'parseHtmlContent', pure: false, standalone: false })\nexport class ParseHtmlContentPipe implements PipeTransform {\n\n  /*\n    Some messages that are come from formiojs have hex codes. So the main aim of this pipe is transform this messages to html.\n    And then render in template.\n  */\n  transform(content) {\n    const parsedContent = new DOMParser().parseFromString(content, 'text/html').body.childNodes[0];\n\n    return parsedContent?.textContent;\n  }\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport { FormioAlerts } from './formio.alerts';\n\n@Component({\n  selector: 'formio-alerts',\n  templateUrl: './formio.alerts.component.html',\n  standalone: false\n})\nexport class FormioAlertsComponent implements OnInit {\n  @Input() alerts: FormioAlerts;\n  @Output() focusComponent = new EventEmitter<object>();\n  ngOnInit() {\n    if (!this.alerts) {\n      this.alerts = new FormioAlerts();\n    }\n  }\n  getComponent (event, alert) {\n    this.focusComponent.emit(alert.component.key);\n  }\n}\n","<div *ngFor=\"let alert of alerts.alerts\" class=\"alert alert-{{ alert.type }}\" role=\"alert\" (click)=\"getComponent($event, alert)\">\n  {{alert.message | parseHtmlContent}}\n</div>\n","import { Component, OnInit, Optional, ViewEncapsulation, Input, NgZone, OnChanges } from '@angular/core';\nimport { FormioAppConfig } from '../../formio.config';\nimport { Formio, Form } from '@formio/js';\nimport { FormioBaseComponent } from '../../FormioBaseComponent';\nimport { CustomTagsService } from '../../custom-tags.service';\n\n/* tslint:disable */\n@Component({\n  selector: 'formio',\n  templateUrl: './formio.component.html',\n  styleUrls: ['../../../../../node_modules/@formio/js/dist/formio.form.min.css'],\n  encapsulation: ViewEncapsulation.None,\n  standalone: false\n})\n/* tslint:enable */\nexport class FormioComponent extends FormioBaseComponent implements OnInit, OnChanges {\n  constructor(\n    public ngZone: NgZone,\n    @Optional() public config: FormioAppConfig,\n    @Optional() public customTags?: CustomTagsService,\n  ) {\n    super(ngZone, config, customTags);\n    if (this.config) {\n      Formio.setBaseUrl(this.config.apiUrl);\n      Formio.setProjectUrl(this.config.appUrl);\n    } else {\n      console.warn('You must provide an AppConfig within your application!');\n    }\n  }\n\n  getRenderer() {\n    return this.renderer || Form;\n  }\n}\n","<div role=\"form\" [attr.aria-label]=\"label\">\n  <div *ngIf=\"isLoading && !hideLoading\" style=\"position:relative;height:200px\">\n    <formio-loader [isLoading]=\"isLoading\"></formio-loader>\n  </div>\n  <formio-alerts *ngIf=\"this.options.alertsPosition === AlertsPosition.top || this.options.alertsPosition === AlertsPosition.both\" (focusComponent)=\"focusOnComponet($event)\" [alerts]=\"alerts\"></formio-alerts>\n  <div #formio></div>\n  <formio-alerts *ngIf=\"this.options.alertsPosition === AlertsPosition.bottom || this.options.alertsPosition === AlertsPosition.both\" (focusComponent)=\"focusOnComponet($event)\" [alerts]=\"alerts\"></formio-alerts>\n</div>\n","import {\n  Component,\n  Input,\n  OnInit,\n  OnChanges,\n  OnDestroy,\n  ViewEncapsulation,\n  Optional,\n  ElementRef,\n  ViewChild,\n  EventEmitter,\n  Output,\n  NgZone\n} from '@angular/core';\nimport { FormioAppConfig } from '../../formio.config';\nimport {\n  AngularFormioOptions,\n  FormioForm,\n} from '../../formio.common';\nimport { Formio, FormBuilder, Utils } from '@formio/js';\nimport { assign } from 'lodash';\nimport { Observable, Subscription } from 'rxjs';\nimport { CustomTagsService } from '../../custom-tags.service';\n\n/* tslint:disable */\n@Component({\n  selector: 'form-builder',\n  templateUrl: './formbuilder.component.html',\n  styleUrls: ['../../../../../node_modules/@formio/js/dist/formio.builder.min.css'],\n  encapsulation: ViewEncapsulation.None,\n  standalone: false\n})\n/* tslint:enable */\nexport class FormBuilderComponent implements OnInit, OnChanges, OnDestroy {\n  public ready: Promise<object>;\n  public readyResolve: any;\n  public formio: any;\n  public builder: FormBuilder;\n  public componentAdding = false;\n  private refreshSubscription: Subscription;\n  @Input() form?: FormioForm;\n  @Input() options?: FormBuilder['options'] & AngularFormioOptions;\n  @Input() formbuilder?: any;\n  @Input() noeval ? = false;\n  @Input() refresh?: Observable<void>;\n  @Input() rebuild?: Observable<object>;\n  @Output() change: EventEmitter<object>;\n  @ViewChild('builder', { static: true }) builderElement?: ElementRef<any>;\n\n  constructor(\n    private ngZone: NgZone,\n    @Optional() private config: FormioAppConfig,\n    @Optional() private customTags?: CustomTagsService\n  ) {\n    if (this.config) {\n      Formio.setBaseUrl(this.config.apiUrl);\n      Formio.setProjectUrl(this.config.appUrl);\n    } else {\n      console.warn('You must provide an AppConfig within your application!');\n    }\n\n    this.change = new EventEmitter();\n    this.ready = new Promise((resolve: any) => {\n      this.readyResolve = resolve;\n    });\n  }\n\n  ngOnInit() {\n    Utils.Evaluator.noeval = this.noeval;\n\n    if (this.refresh) {\n      this.refreshSubscription = this.refresh.subscribe(() => {\n        this.ngZone.runOutsideAngular(() => {\n          this.buildForm(this.form);\n        });\n      });\n    }\n\n    if (this.rebuild) {\n      this.rebuild.subscribe((options) => {\n        this.ngZone.runOutsideAngular(() => {\n          this.rebuildForm(this.form, options);\n        });\n      });\n    }\n  }\n\n  setInstance(instance: any) {\n    this.formio = instance;\n    instance.off('addComponent');\n    instance.off('saveComponent');\n    instance.off('updateComponent');\n    instance.off('removeComponent');\n    instance.on('addComponent', (component, parent, path, index, isNew) => {\n      this.ngZone.run(() => {\n        if (isNew) {\n          this.componentAdding = true;\n        } else {\n          this.change.emit({\n            type: 'addComponent',\n            builder: instance,\n            form: instance.schema,\n            component: component,\n            parent: parent,\n            path: path,\n            index: index\n          });\n          this.componentAdding = false;\n        }\n      });\n    });\n    instance.on('saveComponent', (component, original, parent, path, index, isNew) => {\n      this.ngZone.run(() => {\n        this.change.emit({\n          type: this.componentAdding ? 'addComponent' : 'saveComponent',\n          builder: instance,\n          form: instance.schema,\n          component: component,\n          originalComponent: original,\n          parent: parent,\n          path: path,\n          index: index,\n          isNew: isNew || false\n        });\n        this.componentAdding = false;\n      });\n    });\n    instance.on('updateComponent', (component) => {\n      this.ngZone.run(() => {\n        this.change.emit({\n          type: 'updateComponent',\n          builder: instance,\n          form: instance.schema,\n          component: component\n        });\n      });\n    });\n    instance.on('removeComponent', (component, parent, path, index) => {\n      this.ngZone.run(() => {\n        this.change.emit({\n          type: 'deleteComponent',\n          builder: instance,\n          form: instance.schema,\n          component: component,\n          parent: parent,\n          path: path,\n          index: index\n        });\n      });\n    });\n    this.ngZone.run(() => {\n      this.readyResolve(instance);\n    });\n    return instance;\n  }\n\n  setDisplay(display: String, prevDisplay?: string) {\n    if (display && display !== prevDisplay) {\n      (this.builder as any).setDisplay(display);\n    }\n  }\n\n  buildForm(form: any, prevForm?: any) {\n    if (!form || !this.builderElement || !this.builderElement.nativeElement) {\n      return;\n    }\n\n    if (this.builder) {\n      this.setDisplay(form.display, prevForm?.display);\n      this.setInstance(this.builder.instance);\n      this.builder.form = form;\n      this.builder.instance.form = form;\n      return this.builder.instance;\n    }\n\n    return this.rebuildForm(form);\n  }\n\n  rebuildForm(form: any, options?: object) {\n    const Builder = this.formbuilder || FormBuilder;\n    const extraTags = this.customTags ? this.customTags.tags : [];\n    this.builder = new Builder(\n      this.builderElement.nativeElement,\n      form,\n      assign({\n        icons: 'fontawesome',\n        sanitizeConfig: {\n          addTags: extraTags\n        }\n      }, options || this.options || {})\n    );\n    return this.builder.ready.then(instance => this.setInstance(instance));\n  }\n\n  ngOnChanges(changes: any) {\n    Utils.Evaluator.noeval = this.noeval;\n\n    if (changes.form && changes.form.currentValue) {\n      this.ngZone.runOutsideAngular(() => {\n        this.buildForm(changes.form.currentValue || {components: []}, changes.form.previousValue);\n      });\n    }\n  }\n\n  ngOnDestroy() {\n    if (this.refreshSubscription) {\n      this.refreshSubscription.unsubscribe();\n    }\n\n    if (this.formio) {\n      this.formio.destroy();\n    }\n  }\n}\n","<div #builder></div>\n","import { Component, OnInit, ViewEncapsulation, Input, OnChanges, ViewChild, ElementRef, EventEmitter, Output } from '@angular/core';\nimport { Formio } from '@formio/js';\nimport { FormioComponent } from '../formio/formio.component';\nimport { FormioReport } from '../../formio.common';\n\n/* tslint:disable */\n@Component({\n  selector: 'formio-report',\n  templateUrl: './formioreport.component.html',\n  styleUrls: ['../../../../../node_modules/@formio/js/dist/formio.form.min.css'],\n  encapsulation: ViewEncapsulation.None,\n  standalone: false\n})\n/* tslint:enable */\nexport class FormioReportComponent extends FormioComponent implements OnInit, OnChanges {\n  @Input() report?: FormioReport;\n  @Input() projectEndpoint?: string;\n  @Output() fetchDataError = new EventEmitter<any>();\n  @ViewChild('report', { static: true }) declare formioElement?: ElementRef<any>;\n\n  public isReportLoading: boolean;\n\n  setFormFromSrc() {\n    this.service.loadSubmission({ params: { live: 1 } }).subscribe(\n      (report: FormioReport) => {\n        this.report = report;\n        if (report && report.data) {\n          this.ngZone.runOutsideAngular(() => {\n            this.setForm({ components: [], report });\n            this.isReportLoading = false;\n          });\n        }\n      },\n      err => this.onError(err)\n    );\n  }\n\n  setFormUrl(url) {\n    return;\n  }\n\n  ngOnChanges(changes: any) {\n    super.ngOnChanges(changes)\n\n    if (changes.report && changes.report.currentValue) {\n      this.ngZone.runOutsideAngular(() => {\n        this.setForm({ report: changes.report.currentValue, components: [] });\n        this.isReportLoading = false;\n      });\n    }\n  }\n\n  getRendererOptions() {\n    const projectEndpoint = this.projectEndpoint || this.config?.appUrl || this.service?.formio?.projectUrl;\n\n    if (!projectEndpoint && !this.src) {\n      console.warn('The projectEndpoint url is required to render the Report using JSON schema.');\n    }\n    return {\n      projectEndpoint,\n      ...super.getRendererOptions(),\n    }\n  }\n  createRenderer() {\n    const Renderer = this.getRenderer();\n    if (!Renderer) {\n      return null;\n    }\n\n    const form = (new Renderer(\n      this.formioElement ? this.formioElement.nativeElement : null,\n      this.report,\n      this.getRendererOptions()\n    ));\n    return form.instance;\n  }\n \n  attachFormEvents() {\n    this.formio.on('fetchDataError', (error: any, component: any) =>  this.ngZone.run(() => {\n      this.alerts.addAlert({\n        type: 'danger',\n        message:  error ? JSON.stringify(error) : error,\n      });\n      this.fetchDataError.emit({error, component});\n    }));\n  }\n\n  getRenderer() {\n    const reportRenderer = (Formio as any).Report;\n    if (!reportRenderer) {\n      console.error('Report is not found in Formio. Please make sure that you are using the Formio Reporting module and it is correctly included in your application.');\n    }\n\n    return reportRenderer;\n  }\n}\n","<div role=\"form\" [attr.aria-label]=\"label\">\n  <div *ngIf=\"isReportLoading && !hideLoading\" style=\"position:relative;height:200px\">\n    <formio-loader [isLoading]=\"isReportLoading\"></formio-loader>\n  </div>\n  <formio-alerts *ngIf=\"this.options.alertsPosition === AlertsPosition.top || this.options.alertsPosition === AlertsPosition.both\" (focusComponent)=\"focusOnComponet($event)\" [alerts]=\"alerts\"></formio-alerts>\n  <div #report></div>\n  <formio-alerts *ngIf=\"this.options.alertsPosition === AlertsPosition.bottom || this.options.alertsPosition === AlertsPosition.both\" (focusComponent)=\"focusOnComponet($event)\" [alerts]=\"alerts\"></formio-alerts>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormioComponent } from './components/formio/formio.component';\nimport { FormioReportComponent } from './components/formioreport/formioreport.component';\nimport { FormBuilderComponent } from './components/formbuilder/formbuilder.component';\nimport { FormioAlerts } from './components/alerts/formio.alerts';\nimport { ParseHtmlContentPipe } from './components/alerts/parse-html-content.pipe';\nimport { FormioAlertsComponent } from './components/alerts/formio.alerts.component';\nimport { FormioLoaderComponent } from './components/loader/formio.loader.component';\nimport { CustomTagsService } from './custom-tags.service';\nimport { FormioBaseComponent } from './FormioBaseComponent';\n\n@NgModule({\n    declarations: [\n        FormioComponent,\n        FormioReportComponent,\n        FormioBaseComponent,\n        FormBuilderComponent,\n        FormioLoaderComponent,\n        FormioAlertsComponent,\n        ParseHtmlContentPipe\n    ],\n    imports: [\n        CommonModule\n    ],\n    exports: [\n        FormioComponent,\n        FormioReportComponent,\n        FormBuilderComponent,\n        FormioLoaderComponent,\n        FormioAlertsComponent\n    ],\n    providers: [\n        FormioAlerts,\n        CustomTagsService\n    ]\n})\nexport class FormioModule {}\n","if (window && typeof (window as any).global === 'undefined') {\n  (window as any).global = window;\n}\nexport * from './formio.config';\nexport * from './formio.common';\nexport * from './formio.service';\nexport * from './formio-promise.service';\nexport * from './formio.utils';\nexport * from './FormioBaseComponent';\nexport * from './components/formio/formio.component';\nexport * from './components/formbuilder/formbuilder.component';\nexport * from './components/formioreport/formioreport.component';\nexport * from './components/loader/formio.loader.component';\nexport * from './components/alerts/formio.alerts';\nexport * from './components/alerts/formio.alerts.component';\nexport { FormioModule } from './formio.module';\nexport { ComponentSchema, ExtendedComponentSchema, ElementInfo } from '@formio/deprecated-types';\nexport { Utils as FormioUtils } from '@formio/js';\nexport { Formio } from '@formio/js';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["Formio","i1.FormioAppConfig","i2.CustomTagsService","i2.ParseHtmlContentPipe","i3","i4.FormioLoaderComponent","i5.FormioAlertsComponent","i2.FormioLoaderComponent","i3.FormioAlertsComponent"],"mappings":"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"}