{"version":3,"file":"maqta-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-component/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/formio.module.ts","../../../projects/angular-formio/src/custom-component/create-custom-component.ts","../../../projects/angular-formio/src/custom-component/register-custom-component.ts","../../../projects/angular-formio/src/public-api.ts","../../../projects/angular-formio/src/maqta-formio-angular.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class FormioAppConfig {\r\n  appUrl = '';\r\n  apiUrl = '';\r\n  icons?: string;\r\n  formOnly?: boolean;\r\n}\r\n","import { ExtendedComponentSchema, ValidateOptions } from 'formiojs';\r\nimport { AlertsPosition } from './types/alerts-position';\r\nexport { ConditionalOptions, ValidateOptions } from 'formiojs';\r\n\r\nexport interface ComponentOptions<T = any, V = ValidateOptions> extends ExtendedComponentSchema<T> {\r\n  validate?: V;\r\n}\r\n\r\nexport interface FormioRefreshValue {\r\n  property?: string;\r\n  value?: object;\r\n  form?: object;\r\n  submission?: object;\r\n}\r\n\r\nexport interface AccessSetting {\r\n  type: string;\r\n  roles: string[];\r\n}\r\n\r\nexport interface FormioForm {\r\n  title?: string;\r\n  display?: string;\r\n  name?: string;\r\n  path?: string;\r\n  type?: string;\r\n  project?: string;\r\n  template?: string;\r\n  components?: ExtendedComponentSchema[];\r\n  tags?: string[];\r\n  access?: AccessSetting[];\r\n  submissionAccess?: AccessSetting[];\r\n}\r\n\r\nexport interface ComponentInstance {\r\n  component: ExtendedComponentSchema;\r\n  id: string;\r\n  type: string;\r\n  asString?(value: any): string;\r\n  getView(value: any): string;\r\n}\r\n\r\nexport interface AlertsOptions {\r\n  submitMessage: string;\r\n}\r\n\r\nexport interface ErrorsOptions {\r\n  message: string;\r\n}\r\n\r\nexport class FormioError {\r\n  constructor(\r\n    public message: string,\r\n    public component: ExtendedComponentSchema,\r\n    public silent?: boolean,\r\n  ) {}\r\n}\r\n\r\nexport type FormioSubmissionCallback = (\r\n  error: FormioError,\r\n  submission: object\r\n) => void;\r\nexport type FormioBeforeSubmit = (\r\n  submission: object,\r\n  callback: FormioSubmissionCallback\r\n) => void;\r\n\r\nexport interface FormioHookOptions {\r\n  beforeSubmit: FormioBeforeSubmit;\r\n}\r\n\r\nexport interface FormioOptions {\r\n  errors?: ErrorsOptions;\r\n  alerts?: AlertsOptions;\r\n  alertsPosition?: AlertsPosition;\r\n  disableAlerts?: boolean;\r\n  i18n?: object;\r\n  fileService?: object;\r\n  hooks?: FormioHookOptions;\r\n  sanitizeConfig?: any;\r\n}\r\n","import { Observable, Observer } from 'rxjs';\r\nimport { FormioForm } from './formio.common';\r\nimport { Formio } from 'formiojs';\r\n\r\nexport class FormioService {\r\n  public formio: any;\r\n  constructor(public url: string, public options?: object) {\r\n    this.formio = new Formio(this.url, this.options);\r\n  }\r\n  requestWrapper(fn: any) {\r\n    let record: any;\r\n    let called = false;\r\n    return Observable.create((observer: Observer<any>) => {\r\n      try {\r\n        if (!called) {\r\n          called = true;\r\n          fn()\r\n            .then((_record: any) => {\r\n              record = _record;\r\n              observer.next(record);\r\n              observer.complete();\r\n            })\r\n            .catch((err: any) => observer.error(err));\r\n        } else if (record) {\r\n          observer.next(record);\r\n          observer.complete();\r\n        }\r\n      } catch (err) {\r\n        observer.error(err);\r\n      }\r\n    });\r\n  }\r\n  saveForm(form: FormioForm, options?: any): Observable<FormioForm> {\r\n    return this.requestWrapper(() => this.formio.saveForm(form, options));\r\n  }\r\n  loadForm(query?: any, options?: any): Observable<FormioForm> {\r\n    return this.requestWrapper(() => this.formio.loadForm(query, options));\r\n  }\r\n  loadForms(query: any, options?: any): Observable<FormioForm> {\r\n    return this.requestWrapper(() => this.formio.loadForms(query, options));\r\n  }\r\n  loadSubmission(query?: any, options?: any): Observable<{}> {\r\n    return this.requestWrapper(() => this.formio.loadSubmission(query, options));\r\n  }\r\n  userPermissions(user: any, form: any, submission: any): Observable<{}> {\r\n    return this.requestWrapper(() => this.formio.userPermissions(user, form, submission));\r\n  }\r\n  deleteSubmission(data?: any, options?: any): Observable<{}> {\r\n    return this.requestWrapper(() => this.formio.deleteSubmission(data, options));\r\n  }\r\n  saveSubmission(submission: {}, options?: any): Observable<{}> {\r\n    return this.requestWrapper(() => this.formio.saveSubmission(submission, options));\r\n  }\r\n  loadSubmissions(query?: any, options?: any): Observable<{}> {\r\n    return this.requestWrapper(() => this.formio.loadSubmissions(query, options));\r\n  }\r\n}\r\n","import { from } from 'rxjs';\r\nimport { FormioService } from './formio.service';\r\nimport { FormioForm } from './formio.common';\r\n\r\nexport class FormioPromiseService {\r\n  private formioService: FormioService;\r\n\r\n  constructor(public url: string, public options?: object) {\r\n    this.formioService = new FormioService(url, options);\r\n  }\r\n\r\n  saveForm(form: FormioForm, options?: any): Promise<any> {\r\n    return this.formioService.saveForm(form, options).toPromise();\r\n  }\r\n  loadForm(query?: any, options?: any): Promise<any> {\r\n    return this.formioService.loadForm(query, options).toPromise();\r\n  }\r\n  loadSubmission(query?: any, options?: any): Promise<any> {\r\n    return this.formioService.loadSubmission(query, options).toPromise();\r\n  }\r\n  userPermissions(user: any, form: any, submission: any): Promise<any> {\r\n    return this.formioService.userPermissions(user, form, submission).toPromise();\r\n  }\r\n  deleteSubmission(data?: any, options?: any): Promise<any> {\r\n    return this.formioService.deleteSubmission(data, options).toPromise();\r\n  }\r\n  loadForms(query: any, options?: any): Promise<any> {\r\n    return this.formioService.loadForms(query, options).toPromise();\r\n  }\r\n  saveSubmission(submission: {}, options?: any): Promise<any> {\r\n    return this.formioService.saveSubmission(submission, options).toPromise();\r\n  }\r\n  loadSubmissions(query?: any, options?: any): Promise<any> {\r\n    return this.formioService.loadSubmissions(query, options).toPromise();\r\n  }\r\n}\r\n","import { RouterModule } from '@angular/router';\r\nimport { find, trim, each, intersection } from 'lodash';\r\n\r\nexport function extendRouter(Class: any, config: any, ClassRoutes: any) {\r\n  each(Class.decorators, decorator => {\r\n    each(decorator.args, arg => {\r\n      if (arg.declarations) {\r\n        each(config, component => arg.declarations.push(component));\r\n      }\r\n      if (arg.imports) {\r\n        each(arg.imports, (_import, index) => {\r\n          if (\r\n            (_import.ngModule && (_import.ngModule.name === 'RouterModule')) ||\r\n            (_import.name === 'RouterModule')\r\n          ) {\r\n            arg.imports[index] = RouterModule.forChild(ClassRoutes(config));\r\n          }\r\n        });\r\n      }\r\n    });\r\n  });\r\n  return Class;\r\n}\r\n","export interface FormioAlert {\r\n  type: string;\r\n  message: string;\r\n  component?: any;\r\n}\r\n\r\nexport class FormioAlerts {\r\n  public alerts: FormioAlert[] = [];\r\n\r\n  setAlert(alert: FormioAlert) {\r\n    this.alerts = [alert];\r\n  }\r\n\r\n  addAlert(alert: FormioAlert) {\r\n    this.alerts.push(alert);\r\n  }\r\n\r\n  setAlerts(alerts: FormioAlert[]) {\r\n    this.alerts = alerts;\r\n  }\r\n}\r\n","export enum AlertsPosition {\r\n  none,\r\n  top,\r\n  bottom,\r\n  both\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class CustomTagsService {\r\n  tags: string[] = [];\r\n\r\n  addCustomTag(tag: string) {\r\n    this.tags.push(tag);\r\n  }\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, NgZone, OnChanges, OnDestroy, OnInit, Optional, Output, ViewChild } from '@angular/core';\r\nimport { FormioService } from './formio.service';\r\nimport { FormioAlerts } from './components/alerts/formio.alerts';\r\nimport { FormioAppConfig } from './formio.config';\r\nimport { FormioError, FormioForm, FormioOptions, FormioRefreshValue } from './formio.common';\r\nimport { assign, get, isEmpty } from 'lodash';\r\nimport { CustomTagsService } from './custom-component/custom-tags.service';\r\nimport Evaluator from 'formiojs/utils/Evaluator';\r\nimport { fastCloneDeep } from 'formiojs/utils/utils';\r\nimport { AlertsPosition } from './types/alerts-position';\r\n\r\n@Component({\r\n  template: ''\r\n})\r\nexport class FormioBaseComponent implements OnInit, OnChanges, OnDestroy {\r\n  @Input() form?: FormioForm;\r\n  @Input() submission?: any = {};\r\n  @Input() src?: string;\r\n  @Input() url?: string;\r\n  @Input() service?: FormioService;\r\n  @Input() options?: FormioOptions;\r\n  @Input() noeval ? = Evaluator.noeval;\r\n  @Input() formioOptions?: any;\r\n  @Input() renderOptions?: any;\r\n  @Input() readOnly ? = false;\r\n  @Input() viewOnly ? = false;\r\n  @Input() hideComponents?: string[];\r\n  @Input() refresh?: EventEmitter<FormioRefreshValue>;\r\n  @Input() error?: EventEmitter<any>;\r\n  @Input() success?: EventEmitter<object>;\r\n  @Input() language?: EventEmitter<string>;\r\n  @Input() hooks?: any = {};\r\n  @Input() renderer?: any;\r\n  @Input() watchSubmissionErrors ? = false;\r\n  @Input() dataTableActions? : any = []\r\n  @Output() render = new EventEmitter<object>();\r\n  @Output() customEvent = new EventEmitter<object>();\r\n  @Output() fileUploadingStatus = new EventEmitter<string>();\r\n  @Output() submit = new EventEmitter<object>();\r\n  @Output() prevPage = new EventEmitter<object>();\r\n  @Output() nextPage = new EventEmitter<object>();\r\n  @Output() beforeSubmit = new EventEmitter<object>();\r\n  @Output() rowAdd = new EventEmitter<any>();\r\n  @Output() rowAdded = new EventEmitter<any>();\r\n  @Output() rowEdit = new EventEmitter<any>();\r\n  @Output() rowEdited = new EventEmitter<any>();\r\n  @Output() rowDelete = new EventEmitter<any>();\r\n  @Output() rowClick = new EventEmitter<any>();\r\n  @Output() rowSelectChange = new EventEmitter<any>();\r\n  @Output() change = new EventEmitter<object>();\r\n  @Output() invalid = new EventEmitter<boolean>();\r\n  @Output() errorChange = new EventEmitter<any>();\r\n  @Output() formLoad = new EventEmitter<any>();\r\n  @Output() submissionLoad = new EventEmitter<any>();\r\n  @Output() ready = new EventEmitter<FormioBaseComponent>();\r\n  @ViewChild('formio', { static: true }) formioElement?: ElementRef<any>;\r\n\r\n  public AlertsPosition = AlertsPosition;\r\n  public formio: any;\r\n  public initialized = false;\r\n  public alerts = new FormioAlerts();\r\n  public formioReady: Promise<any>;\r\n\r\n  private formioReadyResolve: any;\r\n  private submitting = false;\r\n  private submissionSuccess = false;\r\n  public isLoading: boolean;\r\n  public noAlerts: boolean;\r\n  public label: string;\r\n\r\n  constructor(\r\n    public ngZone: NgZone,\r\n    @Optional() public config: FormioAppConfig,\r\n    @Optional() public customTags?: CustomTagsService,\r\n  ) {\r\n    this.isLoading = true;\r\n    this.formioReady = new Promise((ready) => {\r\n      this.formioReadyResolve = ready;\r\n    });\r\n  }\r\n\r\n  getRenderer() {\r\n    return this.renderer;\r\n  }\r\n\r\n  getRendererOptions() {\r\n    const extraTags = this.customTags ? this.customTags.tags : [];\r\n    return assign({}, {\r\n      icons: get(this.config, 'icons', 'fontawesome'),\r\n      noAlerts: get(this.options, 'noAlerts', true),\r\n      readOnly: this.readOnly,\r\n      viewAsHtml: this.viewOnly,\r\n      i18n: get(this.options, 'i18n', null),\r\n      fileService: get(this.options, 'fileService', null),\r\n      hooks: this.hooks,\r\n      sanitizeConfig: {\r\n        addTags: extraTags\r\n      },\r\n      dataTableActions: this.dataTableActions\r\n    }, this.renderOptions || {});\r\n  }\r\n\r\n  createRenderer() {\r\n    const Renderer = this.getRenderer();\r\n    const form = (new Renderer(\r\n      this.formioElement ? this.formioElement.nativeElement : null,\r\n      this.form,\r\n      this.getRendererOptions()\r\n    ));\r\n    return form.instance;\r\n  }\r\n\r\n  setForm(form: FormioForm) {\r\n    this.form = form;\r\n    if (this.formio) {\r\n      this.formio.destroy();\r\n    }\r\n\r\n    if (this.form.title) {\r\n      this.label = this.form.title;\r\n    } else if (this.form.components && this.form.components[0]) {\r\n      this.label = this.form.components[0].label;\r\n    }\r\n\r\n    // Clear out the element to render the new form.\r\n    if (this.formioElement && this.formioElement.nativeElement) {\r\n      this.formioElement.nativeElement.innerHTML = '';\r\n    }\r\n    this.formio = this.createRenderer();\r\n    this.formio.submission = this.submission;\r\n    if (this.renderOptions && this.renderOptions.validateOnInit) {\r\n      this.formio.setValue(this.submission, {validateOnInit: true});\r\n    }\r\n    if (this.url) {\r\n      this.formio.setUrl(this.url, this.formioOptions || {});\r\n    }\r\n    if (this.src) {\r\n      this.formio.setUrl(this.src, this.formioOptions || {});\r\n    }\r\n    this.formio.nosubmit = true;\r\n    this.formio.on('prevPage', (data: any) => this.ngZone.run(() => this.onPrevPage(data)));\r\n    this.formio.on('nextPage', (data: any) => this.ngZone.run(() => this.onNextPage(data)));\r\n    this.formio.on('change', (value: any, flags: any, isModified: boolean) => this.ngZone.run(() => this.onChange(value, flags, isModified)));\r\n    this.formio.on('rowAdd', () =>  this.ngZone.run(() => this.rowAdd.emit()));\r\n    this.formio.on('rowAdded', (data: any) =>  this.ngZone.run(() => this.rowAdded.emit(data)));\r\n    this.formio.on('rowEdit', (data: any, rowIndex: number, index: number) =>  this.ngZone.run(() => this.rowEdit.emit({...data, rowIndex, index})));\r\n    this.formio.on('rowEdited', (data: any, rowIndex: number) =>  this.ngZone.run(() => this.rowEdited.emit({...data, rowIndex})));\r\n    this.formio.on('rowDelete', (data: any, rowIndex: number, index: number) =>  this.ngZone.run(() => this.rowDelete.emit({...data, rowIndex, index})));\r\n    this.formio.on('rowClick', (row: any, rowIndex: number, index: number) =>  this.ngZone.run(() => this.rowClick.emit({...row, rowIndex, index})));\r\n    this.formio.on('rowSelectChange', (selectedRows: any[]) =>  this.ngZone.run(() => this.rowSelectChange.emit(selectedRows)));\r\n    this.formio.on('customEvent', (event: any) =>\r\n      this.ngZone.run(() => this.customEvent.emit(event))\r\n    );\r\n\r\n    ['fileUploadingStart', 'fileUploadingEnd'].forEach((eventName, index) => {\r\n      const status = !!index ? 'end' : 'start';\r\n      this.formio.on(eventName, () =>\r\n        this.ngZone.run(() => this.fileUploadingStatus.emit(status))\r\n      );\r\n    });\r\n\r\n    this.formio.on('submit', (submission: any, saved: boolean) =>\r\n      this.ngZone.run(() => this.submitForm(submission, saved))\r\n    );\r\n    this.formio.on('error', (err: any) => this.ngZone.run(() => {\r\n      this.submissionSuccess = false;\r\n      return this.onError(err);\r\n    }));\r\n    this.formio.on('render', () => this.ngZone.run(() => this.render.emit()));\r\n    this.formio.on('formLoad', (loadedForm: any) =>\r\n      this.ngZone.run(() => this.formLoad.emit(loadedForm))\r\n    );\r\n\r\n    return this.formio.ready.then(() => {\r\n      this.ngZone.run(() => {\r\n        this.isLoading = false;\r\n        this.ready.emit(this);\r\n        this.formioReadyResolve(this.formio);\r\n        if (this.formio.submissionReady) {\r\n          this.formio.submissionReady.then((submission) => {\r\n            this.submissionLoad.emit(submission);\r\n          });\r\n        }\r\n      });\r\n      return this.formio;\r\n    });\r\n  }\r\n\r\n  initialize() {\r\n    if (this.initialized) {\r\n      return;\r\n    }\r\n\r\n    const extraTags = this.customTags ? this.customTags.tags : [];\r\n    const defaultOptions: FormioOptions = {\r\n      errors: {\r\n        message: 'Please fix the following errors before submitting.'\r\n      },\r\n      alerts: {\r\n        submitMessage: 'Submission Complete.'\r\n      },\r\n      disableAlerts: false,\r\n      hooks: {\r\n        beforeSubmit: null\r\n      },\r\n      sanitizeConfig: {\r\n        addTags: extraTags\r\n      },\r\n      alertsPosition: AlertsPosition.top,\r\n    };\r\n    this.options = Object.assign(defaultOptions, this.options);\r\n    if (this.options.disableAlerts) {\r\n      this.options.alertsPosition = AlertsPosition.none;\r\n    }\r\n    this.initialized = true;\r\n  }\r\n\r\n  ngOnInit() {\r\n    Evaluator.noeval = this.noeval;\r\n    this.initialize();\r\n\r\n    if (this.language) {\r\n      if (typeof this.language === 'string') {\r\n        this.formio.language = this.language;\r\n      } else {\r\n        this.language.subscribe((lang: string) => {\r\n          this.formio.language = lang;\r\n        });\r\n      }\r\n    }\r\n\r\n    if (this.refresh) {\r\n      this.refresh.subscribe((refresh: FormioRefreshValue) =>\r\n        this.onRefresh(refresh)\r\n      );\r\n    }\r\n\r\n    if (this.error) {\r\n      this.error.subscribe((err: any) => this.onError(err));\r\n    }\r\n\r\n    if (this.success) {\r\n      this.success.subscribe((message: string) => {\r\n        this.alerts.setAlert({\r\n          type: 'success',\r\n          message: message || get(this.options, 'alerts.submitMessage')\r\n        });\r\n      });\r\n    }\r\n\r\n    if (this.src) {\r\n      if (!this.service) {\r\n        this.service = new FormioService(this.src);\r\n      }\r\n      this.isLoading = true;\r\n      this.service.loadForm({ params: { live: 1 } }).subscribe(\r\n        (form: FormioForm) => {\r\n          if (form && form.components) {\r\n            this.ngZone.runOutsideAngular(() => {\r\n              this.setForm(form);\r\n            });\r\n          }\r\n\r\n          // if a submission is also provided.\r\n          if (\r\n            isEmpty(this.submission) &&\r\n            this.service &&\r\n            this.service.formio.submissionId\r\n          ) {\r\n            this.service.loadSubmission().subscribe(\r\n              (submission: any) => {\r\n                if (this.readOnly) {\r\n                  this.formio.options.readOnly = true;\r\n                }\r\n                this.submission = this.formio.submission = submission;\r\n              },\r\n              err => this.onError(err)\r\n            );\r\n          }\r\n        },\r\n        err => this.onError(err)\r\n      );\r\n    }\r\n    if (this.url && !this.service) {\r\n      this.service = new FormioService(this.url);\r\n    }\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    if (this.formio) {\r\n      this.formio.destroy();\r\n    }\r\n  }\r\n\r\n  onRefresh(refresh: FormioRefreshValue) {\r\n    this.formioReady.then(() => {\r\n      if (refresh.form) {\r\n        this.formio.setForm(refresh.form).then(() => {\r\n          if (refresh.submission) {\r\n            this.formio.setSubmission(refresh.submission);\r\n          }\r\n        });\r\n      } else if (refresh.submission) {\r\n        this.formio.setSubmission(refresh.submission);\r\n      } else {\r\n        switch (refresh.property) {\r\n          case 'submission':\r\n            this.formio.submission = refresh.value;\r\n            break;\r\n          case 'form':\r\n            this.formio.form = refresh.value;\r\n            break;\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  ngOnChanges(changes: any) {\r\n    Evaluator.noeval = this.noeval;\r\n    this.initialize();\r\n\r\n    if (changes.form && changes.form.currentValue) {\r\n      this.ngZone.runOutsideAngular(() => {\r\n        this.setForm(changes.form.currentValue);\r\n      });\r\n    }\r\n\r\n    this.formioReady.then(() => {\r\n      if (changes.submission && changes.submission.currentValue) {\r\n        this.formio.setSubmission(changes.submission.currentValue, {\r\n          fromSubmission: !changes.submission.firstChange\r\n        });\r\n      }\r\n\r\n      if (changes.hideComponents && changes.hideComponents.currentValue) {\r\n        const hiddenComponents = changes.hideComponents.currentValue;\r\n        this.formio.options.hide = hiddenComponents;\r\n        this.formio.everyComponent((component) => {\r\n          component.options.hide = hiddenComponents;\r\n          if (hiddenComponents.includes(component.component.key)) {\r\n            component.visible = false;\r\n          }\r\n        });\r\n      }\r\n    });\r\n  }\r\n\r\n  onPrevPage(data: any) {\r\n    this.alerts.setAlerts([]);\r\n    this.prevPage.emit(data);\r\n  }\r\n\r\n  onNextPage(data: any) {\r\n    this.alerts.setAlerts([]);\r\n    this.nextPage.emit(data);\r\n  }\r\n\r\n  onSubmit(submission: any, saved: boolean, noemit?: boolean) {\r\n    this.submitting = false;\r\n    this.submissionSuccess = true;\r\n\r\n    this.formio.setValue(fastCloneDeep(submission), {\r\n      noValidate: true,\r\n      noCheck: true\r\n    });\r\n\r\n    if (saved) {\r\n      this.formio.emit('submitDone', submission);\r\n    }\r\n    if (!noemit) {\r\n      this.submit.emit(submission);\r\n    }\r\n    if (!this.success) {\r\n      this.alerts.setAlert({\r\n        type: 'success',\r\n        message: get(this.options, 'alerts.submitMessage')\r\n      });\r\n    }\r\n  }\r\n\r\n  onError(err: any) {\r\n    this.alerts.setAlerts([]);\r\n    this.submitting = false;\r\n    this.isLoading = false;\r\n\r\n    if (!err) {\r\n      return;\r\n    }\r\n\r\n    // Make sure it is an array.\r\n    const errors = Array.isArray(err) ? err : [err];\r\n\r\n    // Emit these errors again.\r\n    this.errorChange.emit(errors);\r\n\r\n    if (err.silent) {\r\n      return;\r\n    }\r\n\r\n    if (this.formio && errors.length) {\r\n      this.formio.emit('submitError', errors);\r\n    }\r\n\r\n    // Iterate through each one and set the alerts array.\r\n    errors.forEach((error: any) => {\r\n      const {\r\n        message,\r\n        paths,\r\n      } = error\r\n        ? error.details\r\n          ? {\r\n            message: error.details.map((detail) => detail.message),\r\n            paths: error.details.map((detail) => detail.path),\r\n          }\r\n          : {\r\n            message: error.message || error.toString(),\r\n            paths: error.path ? [error.path] : [],\r\n          }\r\n        : {\r\n          message: '',\r\n          paths: [],\r\n        };\r\n\r\n      let shouldErrorDisplay = true;\r\n\r\n      if (this.formio) {\r\n        paths.forEach((path, index) => {\r\n          const component = this.formio.getComponent(path);\r\n          if (component) {\r\n            const components = Array.isArray(component) ? component : [component];\r\n            const messageText = Array.isArray(message) ? message[index] : message;\r\n            components.forEach((comp) => comp.setCustomValidity(messageText, true));\r\n            this.alerts.addAlert({\r\n              type: 'danger',\r\n              message: message[index],\r\n              component,\r\n            });\r\n            shouldErrorDisplay = false;\r\n          }\r\n        });\r\n\r\n        if ((window as any).VPAT_ENABLED) {\r\n          if (typeof error ==='string' && this.formio.components) {\r\n            this.formio.components.forEach((comp) => {\r\n              if (comp && comp.type !== 'button') {\r\n                comp.setCustomValidity(message, true);\r\n              }\r\n            });\r\n          }\r\n        }\r\n\r\n        if (!this.noAlerts) {\r\n          this.formio.showErrors();\r\n        }\r\n      }\r\n\r\n      if (shouldErrorDisplay) {\r\n        this.alerts.addAlert({\r\n          type: 'danger',\r\n          message,\r\n          component: error.component,\r\n        });\r\n      }\r\n    });\r\n  }\r\n\r\n  focusOnComponet(key: any) {\r\n    if (this.formio) {\r\n      this.formio.focusOnComponent(key);\r\n    }\r\n  }\r\n\r\n  submitExecute(submission: object, saved = false) {\r\n    if (this.service && !this.url && !saved) {\r\n      this.service\r\n        .saveSubmission(submission)\r\n        .subscribe(\r\n          (sub: {}) => this.onSubmit(sub, true),\r\n          err => this.onError(err)\r\n        );\r\n    } else {\r\n      this.onSubmit(submission, false);\r\n    }\r\n  }\r\n\r\n  submitForm(submission: any, saved = false) {\r\n    // Keep double submits from occurring...\r\n    if (this.submitting) {\r\n      return;\r\n    }\r\n    this.formio.setMetadata(submission);\r\n    this.submissionSuccess = false;\r\n    this.submitting = true;\r\n    this.beforeSubmit.emit(submission);\r\n\r\n    // if they provide a beforeSubmit hook, then allow them to alter the submission asynchronously\r\n    // or even provide a custom Error method.\r\n    const beforeSubmit = get(this.options, 'hooks.beforeSubmit');\r\n    if (beforeSubmit) {\r\n      beforeSubmit(submission, (err: FormioError, sub: object) => {\r\n        if (err) {\r\n          this.onError(err);\r\n          return;\r\n        }\r\n        this.submitExecute(sub, saved);\r\n      });\r\n    } else {\r\n      this.submitExecute(submission, saved);\r\n    }\r\n  }\r\n\r\n  onChange(value: any, flags: any, isModified: boolean) {\r\n    if (this.watchSubmissionErrors && !this.submissionSuccess) {\r\n      const errors = get(this, 'formio.errors', []);\r\n      const alerts = get(this, 'alerts.alerts', []);\r\n      const submitted = get(this, 'formio.submitted', false);\r\n      if (submitted && (errors.length || alerts.length)) {\r\n        this.onError(errors);\r\n      }\r\n    }\r\n    return this.change.emit({...value, flags, isModified});\r\n  }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'formio-loader',\r\n  styleUrls: ['./formio.loader.component.scss'],\r\n  templateUrl: './formio.loader.component.html'\r\n})\r\nexport class FormioLoaderComponent {\r\n  @Input() isLoading: boolean;\r\n}\r\n","<div class=\"formio-loader-wrapper\" *ngIf=\"isLoading\">\r\n  <div class=\"formio-loader\"></div>\r\n</div>\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'parseHtmlContent', pure: false })\r\nexport class ParseHtmlContentPipe implements PipeTransform {\r\n\r\n  /*\r\n    Some messages that are come from formiojs have hex codes. So the main aim of this pipe is transform this messages to html.\r\n    And then render in template.\r\n  */\r\n  transform(content) {\r\n    const parsedContent = new DOMParser().parseFromString(content, 'text/html').body.childNodes[0];\r\n\r\n    return parsedContent?.textContent;\r\n  }\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport { FormioAlerts } from './formio.alerts';\r\n\r\n@Component({\r\n  selector: 'formio-alerts',\r\n  templateUrl: './formio.alerts.component.html'\r\n})\r\nexport class FormioAlertsComponent implements OnInit {\r\n  @Input() alerts: FormioAlerts;\r\n  @Output() focusComponent = new EventEmitter<object>();\r\n  ngOnInit() {\r\n    if (!this.alerts) {\r\n      this.alerts = new FormioAlerts();\r\n    }\r\n  }\r\n  getComponent (event, alert) {\r\n    this.focusComponent.emit(alert.component.key);\r\n  }\r\n}\r\n","<div *ngFor=\"let alert of alerts.alerts\" class=\"alert alert-{{ alert.type }}\" role=\"alert\" (click)=\"getComponent($event, alert)\">\r\n  {{alert.message | parseHtmlContent}}\r\n</div>\r\n","import { Component, OnInit, Optional, ViewEncapsulation, Input, NgZone, OnChanges } from '@angular/core';\r\nimport { FormioAppConfig } from '../../formio.config';\r\nimport { Formio, Form } from 'formiojs';\r\nimport { FormioBaseComponent } from '../../FormioBaseComponent';\r\nimport { CustomTagsService } from '../../custom-component/custom-tags.service';\r\n\r\n/* tslint:disable */\r\n@Component({\r\n  selector: 'formio',\r\n  templateUrl: './formio.component.html',\r\n  styleUrls: ['../../../../../node_modules/formiojs/dist/formio.form.min.css'],\r\n  encapsulation: ViewEncapsulation.None,\r\n})\r\n/* tslint:enable */\r\nexport class FormioComponent extends FormioBaseComponent implements OnInit, OnChanges {\r\n  constructor(\r\n    public ngZone: NgZone,\r\n    @Optional() public config: FormioAppConfig,\r\n    @Optional() public customTags?: CustomTagsService,\r\n  ) {\r\n    super(ngZone, config, customTags);\r\n    if (this.config) {\r\n      Formio.setBaseUrl(this.config.apiUrl);\r\n      Formio.setProjectUrl(this.config.appUrl);\r\n    } else {\r\n      console.warn('You must provide an AppConfig within your application!');\r\n    }\r\n  }\r\n\r\n  getRenderer() {\r\n    return this.renderer || Form;\r\n  }\r\n}\r\n","<div role=\"form\" [attr.aria-label]=\"label\">\r\n  <div *ngIf=\"isLoading\" style=\"position:relative;height:200px\">\r\n    <formio-loader [isLoading]=\"isLoading\"></formio-loader>\r\n  </div>\r\n  <formio-alerts *ngIf=\"this.options.alertsPosition === AlertsPosition.top || this.options.alertsPosition === AlertsPosition.both\" (focusComponent)=\"focusOnComponet($event)\" [alerts]=\"alerts\"></formio-alerts>\r\n  <div #formio></div>\r\n  <formio-alerts *ngIf=\"this.options.alertsPosition === AlertsPosition.bottom || this.options.alertsPosition === AlertsPosition.both\" (focusComponent)=\"focusOnComponet($event)\" [alerts]=\"alerts\"></formio-alerts>\r\n</div>\r\n","import {\r\n  Component,\r\n  Input,\r\n  OnInit,\r\n  OnChanges,\r\n  OnDestroy,\r\n  ViewEncapsulation,\r\n  Optional,\r\n  ElementRef,\r\n  ViewChild,\r\n  EventEmitter,\r\n  Output,\r\n  NgZone\r\n} from '@angular/core';\r\nimport { FormioAppConfig } from '../../formio.config';\r\nimport {\r\n  FormioForm,\r\n  FormioOptions\r\n} from '../../formio.common';\r\nimport { Formio, FormBuilder, Utils } from 'formiojs';\r\nimport { assign } from 'lodash';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { CustomTagsService } from '../../custom-component/custom-tags.service';\r\n\r\n/* tslint:disable */\r\n@Component({\r\n  selector: 'form-builder',\r\n  templateUrl: './formbuilder.component.html',\r\n  styleUrls: ['../../../../../node_modules/formiojs/dist/formio.builder.min.css'],\r\n  encapsulation: ViewEncapsulation.None\r\n})\r\n/* tslint:enable */\r\nexport class FormBuilderComponent implements OnInit, OnChanges, OnDestroy {\r\n  public ready: Promise<object>;\r\n  public readyResolve: any;\r\n  public formio: any;\r\n  public builder: FormBuilder;\r\n  public componentAdding = false;\r\n  private refreshSubscription: Subscription;\r\n  @Input() form?: FormioForm;\r\n  @Input() options?: FormioOptions;\r\n  @Input() formbuilder?: any;\r\n  @Input() noeval ? = false;\r\n  @Input() refresh?: Observable<void>;\r\n  @Input() rebuild?: Observable<object>;\r\n  @Output() change?: EventEmitter<object>;\r\n  @ViewChild('builder', { static: true }) builderElement?: ElementRef<any>;\r\n\r\n  constructor(\r\n    private ngZone: NgZone,\r\n    @Optional() private config: FormioAppConfig,\r\n    @Optional() private customTags?: CustomTagsService\r\n  ) {\r\n    if (this.config) {\r\n      Formio.setBaseUrl(this.config.apiUrl);\r\n      Formio.setProjectUrl(this.config.appUrl);\r\n    } else {\r\n      console.warn('You must provide an AppConfig within your application!');\r\n    }\r\n\r\n    this.change = new EventEmitter();\r\n    this.ready = new Promise((resolve: any) => {\r\n      this.readyResolve = resolve;\r\n    });\r\n  }\r\n\r\n  ngOnInit() {\r\n    Utils.Evaluator.noeval = this.noeval;\r\n\r\n    if (this.refresh) {\r\n      this.refreshSubscription = this.refresh.subscribe(() => {\r\n        this.ngZone.runOutsideAngular(() => {\r\n          this.buildForm(this.form);\r\n        });\r\n      });\r\n    }\r\n\r\n    if (this.rebuild) {\r\n      this.rebuild.subscribe((options) => {\r\n        this.ngZone.runOutsideAngular(() => {\r\n          this.rebuildForm(this.form, options);\r\n        });\r\n      });\r\n    }\r\n  }\r\n\r\n  setInstance(instance: any) {\r\n    this.formio = instance;\r\n    instance.off('addComponent');\r\n    instance.off('saveComponent');\r\n    instance.off('updateComponent');\r\n    instance.off('removeComponent');\r\n    instance.on('addComponent', (component, parent, path, index, isNew) => {\r\n      this.ngZone.run(() => {\r\n        if (isNew) {\r\n          this.componentAdding = true;\r\n        } else {\r\n          this.change.emit({\r\n            type: 'addComponent',\r\n            builder: instance,\r\n            form: instance.schema,\r\n            component: component,\r\n            parent: parent,\r\n            path: path,\r\n            index: index\r\n          });\r\n          this.componentAdding = false;\r\n        }\r\n      });\r\n    });\r\n    instance.on('saveComponent', (component, original, parent, path, index, isNew) => {\r\n      this.ngZone.run(() => {\r\n        this.change.emit({\r\n          type: this.componentAdding ? 'addComponent' : 'saveComponent',\r\n          builder: instance,\r\n          form: instance.schema,\r\n          component: component,\r\n          originalComponent: original,\r\n          parent: parent,\r\n          path: path,\r\n          index: index,\r\n          isNew: isNew || false\r\n        });\r\n        this.componentAdding = false;\r\n      });\r\n    });\r\n    instance.on('updateComponent', (component) => {\r\n      this.ngZone.run(() => {\r\n        this.change.emit({\r\n          type: 'updateComponent',\r\n          builder: instance,\r\n          form: instance.schema,\r\n          component: component\r\n        });\r\n      });\r\n    });\r\n    instance.on('removeComponent', (component, parent, path, index) => {\r\n      this.ngZone.run(() => {\r\n        this.change.emit({\r\n          type: 'deleteComponent',\r\n          builder: instance,\r\n          form: instance.schema,\r\n          component: component,\r\n          parent: parent,\r\n          path: path,\r\n          index: index\r\n        });\r\n      });\r\n    });\r\n    this.ngZone.run(() => {\r\n      this.readyResolve(instance);\r\n    });\r\n    return instance;\r\n  }\r\n\r\n  setDisplay(display: String, prevDisplay?: string) {\r\n    if (display && display !== prevDisplay) {\r\n      (this.builder as any).display = display;\r\n    }\r\n  }\r\n\r\n  buildForm(form: any, prevForm?: any) {\r\n    if (!form || !this.builderElement || !this.builderElement.nativeElement) {\r\n      return;\r\n    }\r\n\r\n    if (this.builder) {\r\n      this.setDisplay(form.display, prevForm?.display);\r\n      this.setInstance(this.builder.instance);\r\n      this.builder.form = form;\r\n      this.builder.instance.form = form;\r\n      return this.builder.instance;\r\n    }\r\n\r\n    return this.rebuildForm(form);\r\n  }\r\n\r\n  rebuildForm(form: any, options?: object) {\r\n    const Builder = this.formbuilder || FormBuilder;\r\n    const extraTags = this.customTags ? this.customTags.tags : [];\r\n    this.builder = new Builder(\r\n      this.builderElement.nativeElement,\r\n      form,\r\n      assign({\r\n        icons: 'fontawesome',\r\n        sanitizeConfig: {\r\n          addTags: extraTags\r\n        }\r\n      }, options || this.options || {})\r\n    );\r\n    return this.builder.ready.then(instance => this.setInstance(instance));\r\n  }\r\n\r\n  ngOnChanges(changes: any) {\r\n    Utils.Evaluator.noeval = this.noeval;\r\n\r\n    if (changes.form && changes.form.currentValue) {\r\n      this.ngZone.runOutsideAngular(() => {\r\n        this.buildForm(changes.form.currentValue || {components: []}, changes.form.previousValue);\r\n      });\r\n    }\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    if (this.refreshSubscription) {\r\n      this.refreshSubscription.unsubscribe();\r\n    }\r\n\r\n    if (this.formio) {\r\n      this.formio.destroy();\r\n    }\r\n  }\r\n}\r\n","<div #builder></div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormioComponent } from './components/formio/formio.component';\r\nimport { FormBuilderComponent } from './components/formbuilder/formbuilder.component';\r\nimport { FormioAlerts } from './components/alerts/formio.alerts';\r\nimport { ParseHtmlContentPipe } from './components/alerts/parse-html-content.pipe';\r\nimport { FormioAlertsComponent } from './components/alerts/formio.alerts.component';\r\nimport { FormioLoaderComponent } from './components/loader/formio.loader.component';\r\nimport { CustomTagsService } from './custom-component/custom-tags.service';\r\nimport { FormioBaseComponent } from './FormioBaseComponent';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    FormioComponent,\r\n    FormioBaseComponent,\r\n    FormBuilderComponent,\r\n    FormioLoaderComponent,\r\n    FormioAlertsComponent,\r\n    ParseHtmlContentPipe\r\n  ],\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports: [\r\n    FormioComponent,\r\n    FormBuilderComponent,\r\n    FormioLoaderComponent,\r\n    FormioAlertsComponent\r\n  ],\r\n  providers: [\r\n    FormioAlerts,\r\n    CustomTagsService\r\n  ],\r\n  entryComponents: [\r\n    FormioComponent,\r\n    FormBuilderComponent\r\n  ]\r\n})\r\nexport class FormioModule {}\r\n","// @ts-nocheck\r\nimport { BuilderInfo, Components, ExtendedComponentSchema, Utils as FormioUtils } from 'formiojs';\r\nimport { FormioCustomComponentInfo, FormioCustomElement, FormioEvent } from '../elements.common';\r\nimport { clone, isNil, isArray } from 'lodash';\r\n\r\nconst BaseInputComponent = Components.components.input;\r\nconst TextfieldComponent = Components.components.textfield;\r\n\r\nexport function createCustomFormioComponent(customComponentOptions: FormioCustomComponentInfo) {\r\n  return class CustomComponent extends BaseInputComponent {\r\n    static editForm = customComponentOptions.editForm || TextfieldComponent.editForm;\r\n    id = FormioUtils.getRandomComponentId();\r\n    type = customComponentOptions.type;\r\n    _customAngularElement: FormioCustomElement;\r\n\r\n    static schema() {\r\n      return BaseInputComponent.schema({\r\n        ...customComponentOptions.schema,\r\n        type: customComponentOptions.type,\r\n      });\r\n    }\r\n\r\n    get defaultSchema() {\r\n      return CustomComponent.schema();\r\n    }\r\n\r\n    get emptyValue() {\r\n      return customComponentOptions.emptyValue || null;\r\n    }\r\n\r\n    static get builderInfo(): BuilderInfo {\r\n      return {\r\n        title: customComponentOptions.title,\r\n        group: customComponentOptions.group,\r\n        icon: customComponentOptions.icon,\r\n        weight: customComponentOptions.weight,\r\n        documentation: customComponentOptions.documentation,\r\n        schema: CustomComponent.schema(),\r\n      };\r\n    }\r\n\r\n    constructor(public component: ExtendedComponentSchema, options: any, data: any) {\r\n      super(component, {\r\n        ...options,\r\n        sanitizeConfig: {\r\n          addTags: [customComponentOptions.selector],\r\n        },\r\n      }, data);\r\n\r\n      if (customComponentOptions.extraValidators) {\r\n        this.validators = this.validators.concat(customComponentOptions.extraValidators);\r\n      }\r\n    }\r\n\r\n    elementInfo() {\r\n      const info = super.elementInfo();\r\n      info.type = customComponentOptions.selector;\r\n      info.changeEvent = customComponentOptions.changeEvent || 'valueChange';\r\n      info.attr = {\r\n        ...info.attr,\r\n        class: info.attr.class.replace('form-control', 'form-control-custom-field') // remove the form-control class as the custom angular component may look different\r\n      };\r\n      return info;\r\n    }\r\n\r\n    get inputInfo() {\r\n      const info = {\r\n        id: this.key,\r\n        ...this.elementInfo()\r\n      }\r\n      return info;\r\n    }\r\n\r\n    renderElement(value: any, index: number) {\r\n      const info = this.inputInfo;\r\n      return this.renderTemplate(customComponentOptions.template || 'input', {\r\n        input: info,\r\n        value,\r\n        index\r\n      });\r\n    }\r\n\r\n    attach(element: HTMLElement) {\r\n      let superAttach = super.attach(element);\r\n\r\n      this._customAngularElement = element.querySelector(customComponentOptions.selector);\r\n\r\n      // Bind the custom options and the validations to the Angular component's inputs (flattened)\r\n      if (this._customAngularElement) {\r\n        // To make sure we have working input in IE...\r\n        // IE doesn't render it properly if it's not visible on the screen\r\n        // due to the whole structure applied via innerHTML to the parent\r\n        // so we need to use appendChild\r\n        if (!this._customAngularElement.getAttribute('ng-version')) {\r\n          this._customAngularElement.removeAttribute('ref');\r\n\r\n          const newCustomElement = document.createElement(customComponentOptions.selector) as FormioCustomElement;\r\n\r\n          newCustomElement.setAttribute('ref', 'input');\r\n          Object.keys(this.inputInfo.attr).forEach((attr: string) => {\r\n            newCustomElement.setAttribute(attr, this.inputInfo.attr[attr]);\r\n          });\r\n\r\n          this._customAngularElement.appendChild(newCustomElement);\r\n          this._customAngularElement = newCustomElement;\r\n\r\n          superAttach = super.attach(element);\r\n        }\r\n\r\n        // Bind customOptions\r\n        for (const key in this.component.customOptions) {\r\n          if (this.component.customOptions.hasOwnProperty(key)) {\r\n            this._customAngularElement[key] = this.component.customOptions[key];\r\n          }\r\n        }\r\n        // Bind validate options\r\n        for (const key in this.component.validate) {\r\n          if (this.component.validate.hasOwnProperty(key)) {\r\n            this._customAngularElement[key] = this.component.validate[key];\r\n          }\r\n        }\r\n        // Bind options explicitly set\r\n        const fieldOptions = customComponentOptions.fieldOptions;\r\n        if (isArray(fieldOptions) && fieldOptions.length > 0) {\r\n          for (const key in fieldOptions) {\r\n            if (fieldOptions.hasOwnProperty(key)) {\r\n              this._customAngularElement[fieldOptions[key]] = this.component[fieldOptions[key]];\r\n            }\r\n          }\r\n        }\r\n\r\n        // Attach event listener for emit event\r\n        this._customAngularElement.addEventListener('formioEvent', (event: CustomEvent<FormioEvent>) => {\r\n          this.emit(event.detail.eventName, {\r\n            ...event.detail.data,\r\n            component: this.component\r\n          });\r\n        });\r\n\r\n        // Ensure we bind the value (if it isn't a multiple-value component with no wrapper)\r\n        if (!this._customAngularElement.value && !this.component.disableMultiValueWrapper) {\r\n          this.restoreValue();\r\n        }\r\n\r\n      }\r\n      return superAttach;\r\n    }\r\n\r\n    // Add extra option to support multiple value (e.g. datagrid) with single angular component (disableMultiValueWrapper)\r\n    useWrapper() {\r\n      return this.component.hasOwnProperty('multiple') && this.component.multiple && !this.component.disableMultiValueWrapper;\r\n    }\r\n\r\n    get defaultValue() {\r\n      let defaultValue = this.emptyValue;\r\n\r\n      // handle falsy default value\r\n      if (!isNil(this.component.defaultValue)) {\r\n        defaultValue = this.component.defaultValue;\r\n      }\r\n\r\n      if (this.component.customDefaultValue && !this.options.preview) {\r\n        defaultValue = this.evaluate(\r\n          this.component.customDefaultValue,\r\n          { value: '' },\r\n          'value'\r\n        );\r\n      }\r\n\r\n      return clone(defaultValue);\r\n    }\r\n  };\r\n}\r\n","import { Injector, Type } from '@angular/core';\r\nimport { createCustomElement } from '@angular/elements';\r\nimport { Components } from 'formiojs';\r\nimport { FormioCustomComponentInfo } from '../elements.common';\r\nimport { createCustomFormioComponent } from './create-custom-component';\r\nimport { CustomTagsService } from './custom-tags.service';\r\n\r\nexport function registerCustomTag(tag: string, injector: Injector): void {\r\n  injector.get(CustomTagsService).addCustomTag(tag);\r\n}\r\n\r\nexport function registerCustomTags(tags: string[], injector: Injector): void {\r\n  tags.forEach(tag => registerCustomTag(tag, injector));\r\n}\r\n\r\nexport function registerCustomFormioComponent(\r\n  options: FormioCustomComponentInfo,\r\n  angularComponent: Type<any>,\r\n  injector: Injector,\r\n): void {\r\n  registerCustomTag(options.selector, injector);\r\n\r\n  const complexCustomComponent = createCustomElement(angularComponent, { injector });\r\n  customElements.define(options.selector, complexCustomComponent);\r\n\r\n  Components.setComponent(options.type, createCustomFormioComponent(options));\r\n}\r\n\r\nexport function registerCustomFormioComponentWithClass(\r\n  options: FormioCustomComponentInfo,\r\n  angularComponent: Type<any>,\r\n  formioClass: any,\r\n  injector: Injector,\r\n): void {\r\n  registerCustomTag(options.selector, injector);\r\n\r\n  const complexCustomComponent = createCustomElement(angularComponent, { injector });\r\n  customElements.define(options.selector, complexCustomComponent);\r\n\r\n  Components.setComponent(options.type, formioClass);\r\n}\r\n","/*\r\n * Public API Surface of angular-formio\r\n */\r\n\r\nexport * from './index';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["FormioUtils"],"mappings":"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"}