{"version":3,"file":"maqta-formio-angular-resource.mjs","sources":["../../../projects/angular-formio/resource/src/resource.config.ts","../../../projects/angular-formio/resource/src/resources.service.ts","../../../projects/angular-formio/resource/src/resource.service.ts","../../../projects/angular-formio/resource/src/resource.component.ts","../../../projects/angular-formio/resource/src/resource.component.html","../../../projects/angular-formio/resource/src/view/view.component.ts","../../../projects/angular-formio/resource/src/view/view.component.html","../../../projects/angular-formio/resource/src/edit/edit.component.ts","../../../projects/angular-formio/resource/src/edit/edit.component.html","../../../projects/angular-formio/resource/src/delete/delete.component.ts","../../../projects/angular-formio/resource/src/delete/delete.component.html","../../../projects/angular-formio/resource/src/create/create.component.ts","../../../projects/angular-formio/resource/src/create/create.component.html","../../../projects/angular-formio/resource/src/index/index.component.ts","../../../projects/angular-formio/resource/src/index/index.component.html","../../../projects/angular-formio/resource/src/resource.routes.ts","../../../projects/angular-formio/resource/src/resource.module.ts","../../../projects/angular-formio/resource/src/public_api.ts","../../../projects/angular-formio/resource/src/maqta-formio-angular-resource.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\nexport interface FormioResourceRouteConfig {\r\n  index?: any;\r\n  create?: any;\r\n  resource?: any;\r\n  view?: any;\r\n  edit?: any;\r\n  delete?: any;\r\n}\r\n\r\n@Injectable()\r\nexport class FormioResourceConfig {\r\n  name = '';\r\n  form = '';\r\n  parents: any[] = [];\r\n}\r\n","import { Injectable, EventEmitter } from '@angular/core';\nimport { FormioAuthService } from '@maqta/formio-angular/auth';\n\nexport interface FormioResourceMap {\n  [name: string]: any;\n}\n\n@Injectable()\nexport class FormioResources {\n  resources: FormioResourceMap = {};\n  error: EventEmitter<any>;\n  onError: EventEmitter<any>;\n  constructor(\n    public auth?: FormioAuthService\n  ) {\n    this.error = new EventEmitter();\n    this.onError = this.error;\n    this.resources = {\n      currentUser: {\n        resourceLoaded: this.auth.userReady\n      }\n    };\n  }\n}\n","import { ApplicationRef, EventEmitter, Injectable, Optional } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { FormioResourceConfig } from './resource.config';\nimport { FormioResources } from './resources.service';\nimport { FormioPromiseService } from '@maqta/formio-angular';\nimport { FormioAlerts } from '@maqta/formio-angular';\nimport { FormioAppConfig } from '@maqta/formio-angular';\nimport { FormioRefreshValue } from '@maqta/formio-angular';\nimport Promise from 'native-promise-only';\nimport { Formio, Utils } from 'formiojs';\nimport _ from 'lodash';\n\n@Injectable()\nexport class FormioResourceService {\n  public initialized = false;\n  public form: any;\n  public alerts: FormioAlerts;\n  public resource: any;\n  public resourceUrl?: string;\n  public formUrl: string;\n  public formFormio: FormioPromiseService;\n  public formio: FormioPromiseService;\n  public refresh: EventEmitter<FormioRefreshValue>;\n\n  public resourceLoading?: Promise<any>;\n  public resourceLoaded?: Promise<any>;\n  public resourceId?: string;\n  public resources: any;\n\n  public formLoading?: Promise<any>;\n  public formLoaded: Promise<any>;\n  public formResolve: any;\n  public formReject: any;\n  public isLoading: boolean;\n\n  constructor(\n    public appConfig: FormioAppConfig,\n    public config: FormioResourceConfig,\n    @Optional() public resourcesService: FormioResources,\n    public appRef: ApplicationRef,\n  ) {\n    this.isLoading = true;\n    this.alerts = new FormioAlerts();\n    this.refresh = new EventEmitter();\n    this.formLoaded = new Promise((resolve: any, reject: any) => {\n      this.formResolve = resolve;\n      this.formReject = reject;\n    });\n    this.init();\n  }\n\n  initialize() {\n    console.warn('FormioResourceService.initialize() has been deprecated.');\n  }\n\n  init() {\n    if (this.initialized) {\n      return;\n    }\n    this.initialized = true;\n    if (this.appConfig && this.appConfig.appUrl) {\n      Formio.setBaseUrl(this.appConfig.apiUrl);\n      Formio.setProjectUrl(this.appConfig.appUrl);\n      Formio.formOnly = this.appConfig.formOnly;\n    } else {\n      console.error('You must provide an AppConfig within your application!');\n    }\n\n    // Create the form url and load the resources.\n    this.formUrl = this.appConfig.appUrl + '/' + this.config.form;\n    this.resource = { data: {} };\n\n    // Add this resource service to the list of all resources in context.\n    if (this.resourcesService) {\n      this.resources = this.resourcesService.resources;\n      this.resources[this.config.name] = this;\n    }\n\n    return this.loadForm();\n  }\n\n  onError(error: any) {\n    this.alerts.setAlert({\n      type: 'danger',\n      message: error.message || error\n    });\n    if (this.resourcesService) {\n      this.resourcesService.error.emit(error);\n    }\n    throw error;\n  }\n\n  onFormError(err: any) {\n    this.formReject(err);\n    this.onError(err);\n  }\n\n  setContext(route: ActivatedRoute) {\n    this.resourceId = route.snapshot.params['id'];\n    this.resource = { data: {} };\n    this.resourceUrl = this.appConfig.appUrl + '/' + this.config.form;\n    if (this.resourceId) {\n      this.resourceUrl += '/submission/' + this.resourceId;\n    }\n    this.formio = new FormioPromiseService(this.resourceUrl);\n    if (this.resourcesService) {\n      this.resources[this.config.name] = this;\n    }\n    this.loadParents();\n  }\n\n  loadForm() {\n    this.formFormio = new FormioPromiseService(this.formUrl);\n    this.isLoading = true;\n    this.formLoading = this.formFormio\n      .loadForm()\n      .then(\n        (form: any) => {\n          this.form = form;\n          this.formResolve(form);\n          this.isLoading = false;\n          this.loadParents();\n          return form;\n        },\n        (err: any) => this.onFormError(err)\n      )\n      .catch((err: any) => this.onFormError(err));\n    return this.formLoading;\n  }\n\n  loadParents() {\n    if (!this.config.parents || !this.config.parents.length) {\n      return Promise.resolve([]);\n    }\n    if (!this.resourcesService) {\n      console.warn(\n        'You must provide the FormioResources within your application to use nested resources.'\n      );\n      return Promise.resolve([]);\n    }\n    return this.formLoading.then((form) => {\n      // Iterate through the list of parents.\n      const _parentsLoaded: Array<Promise<any>> = [];\n      this.config.parents.forEach((parent: any) => {\n        const resourceName = parent.resource || parent;\n        const resourceField = parent.field || parent;\n        const filterResource = parent.hasOwnProperty('filter') ? parent.filter : true;\n        if (this.resources.hasOwnProperty(resourceName) && this.resources[resourceName].resourceLoaded) {\n          _parentsLoaded.push(\n            this.resources[resourceName].resourceLoaded.then((resource: any) => {\n              let parentPath = '';\n              Utils.eachComponent(form.components, (component, path) => {\n                if (component.key === resourceField) {\n                  component.hidden = true;\n                  component.clearOnHide = false;\n                  _.set(this.resource.data, path, resource);\n                  parentPath = path;\n                  return true;\n                }\n              });\n              return {\n                name: parentPath,\n                filter: filterResource,\n                resource\n              };\n            })\n          );\n        }\n      });\n\n      // When all the parents have loaded, emit that to the onParents emitter.\n      return Promise.all(_parentsLoaded).then((parents: any) => {\n        this.refresh.emit({\n          form: form,\n          submission: this.resource\n        });\n        return parents;\n      });\n    });\n  }\n\n  onSubmissionError(err: any) {\n    this.onError(err);\n  }\n\n  loadResource(route: ActivatedRoute) {\n    this.setContext(route);\n    this.isLoading = true;\n    this.resourceLoading = this.resourceLoaded = this.formio\n      .loadSubmission(null, {ignoreCache: true})\n      .then(\n        (resource: any) => {\n          this.resource = resource;\n          this.isLoading = false;\n          this.refresh.emit({\n            property: 'submission',\n            value: this.resource\n          });\n          return resource;\n        },\n        (err: any) => this.onSubmissionError(err)\n      )\n      .catch((err: any) => this.onSubmissionError(err));\n    return this.resourceLoading;\n  }\n\n  save(resource: any) {\n    const formio = resource._id ? this.formio : this.formFormio;\n    return formio\n      .saveSubmission(resource)\n      .then(\n        (saved: any) => {\n          this.resource = saved;\n          return saved;\n        },\n        (err: any) => this.onError(err)\n      )\n      .catch((err: any) => this.onError(err));\n  }\n\n  remove() {\n    return this.formio\n      .deleteSubmission()\n      .then(\n        () => {\n          this.resource = null;\n        },\n        (err: any) => this.onError(err)\n      )\n      .catch((err: any) => this.onError(err));\n  }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { FormioAuthService } from '@maqta/formio-angular/auth';\nimport { FormioResourceService } from './resource.service';\nimport { Subscription } from 'rxjs';\n\n@Component({\n  templateUrl: './resource.component.html'\n})\nexport class FormioResourceComponent implements OnInit, OnDestroy {\n  private paramsSubscription: Subscription;\n  public perms = {delete: false, edit: false};\n\n  constructor(\n    public service: FormioResourceService,\n    public route: ActivatedRoute,\n    public auth: FormioAuthService,\n  ) {\n    // subscribe to the route param changes, so that we could re-load the submission if navigation happens from one submission to another\n    this.paramsSubscription = this.route.params.subscribe((params) => {\n      this.init();\n    });\n  }\n\n  ngOnInit() {\n    this.init();\n  }\n\n  init() {\n    this.service.loadResource(this.route);\n    this.service.formLoaded.then((form) => {\n      this.auth.ready.then(() => {\n        this.service.resourceLoaded.then((resource) => {\n          this.service.formFormio.userPermissions(this.auth.user, form, resource).then((perms) => {\n            this.perms.delete = perms.delete;\n            this.perms.edit = perms.edit;\n          });\n        });\n      });\n    });\n  }\n\n  ngOnDestroy() {\n    if (this.paramsSubscription) {\n      this.paramsSubscription.unsubscribe();\n    }\n  }\n}\n","<ul class=\"nav nav-tabs\" style=\"margin-bottom: 10px\">\r\n  <li class=\"nav-item\"><a class=\"nav-link\" routerLink=\"../\"><em class=\"fa fa-chevron-left glyphicon glyphicon-chevron-left\"></em></a></li>\r\n  <li class=\"nav-item\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"view\" routerLinkActive=\"active\">View</a></li>\r\n  <li class=\"nav-item\" routerLinkActive=\"active\" *ngIf=\"perms.edit\"><a class=\"nav-link\" routerLink=\"edit\" routerLinkActive=\"active\">Edit</a></li>\r\n  <li class=\"nav-item\" routerLinkActive=\"active\" *ngIf=\"perms.delete\"><a class=\"nav-link\" routerLink=\"delete\" routerLinkActive=\"active\"><span class=\"fa fa-trash glyphicon glyphicon-trash\"></span></a></li>\r\n</ul>\r\n<router-outlet></router-outlet>\r\n","import {Component, OnDestroy} from '@angular/core';\r\nimport { FormioResourceService } from '../resource.service';\r\nimport { FormioResourceConfig } from '../resource.config';\r\nimport {Formio} from 'formiojs';\r\n\r\n@Component({\r\n  templateUrl: './view.component.html'\r\n})\r\nexport class FormioResourceViewComponent implements OnDestroy{\r\n  constructor(\r\n    public service: FormioResourceService,\r\n    public config: FormioResourceConfig\r\n  ) {}\r\n  public submission = {data: {}};\r\n\r\n  ngOnDestroy() {\r\n    Formio.clearCache();\r\n  }\r\n}\r\n","<formio\r\n  [form]=\"service.form\"\r\n  [submission]=\"service.resource\"\r\n  [hideComponents]=\"config.parents\"\r\n  [readOnly]=\"true\"\r\n></formio>\r\n","import {Component, EventEmitter, OnDestroy} from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormioResourceService } from '../resource.service';\r\nimport { FormioResourceConfig } from '../resource.config';\r\nimport { Formio } from 'formiojs';\r\n\r\n@Component({\r\n  templateUrl: './edit.component.html'\r\n})\r\nexport class FormioResourceEditComponent implements OnDestroy {\r\n  public triggerError: EventEmitter<any> = new EventEmitter();\r\n  public submission = {data: {}};\r\n  constructor(\r\n    public service: FormioResourceService,\r\n    public route: ActivatedRoute,\r\n    public router: Router,\r\n    public config: FormioResourceConfig\r\n  ) {}\r\n\r\n  onSubmit(submission: any) {\r\n    const edit = this.service.resource;\r\n    edit.data = submission.data;\r\n    this.service.save(edit)\r\n      .then(() => {\r\n        this.router.navigate(['../', 'view'], { relativeTo: this.route });\r\n      })\r\n      .catch((err) => this.triggerError.emit(err));\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    Formio.clearCache();\r\n  }\r\n}\r\n","<formio\r\n  [form]=\"service.form\"\r\n  [submission]=\"service.resource\"\r\n  [error]=\"triggerError\"\r\n  (submit)=\"onSubmit($event)\"\r\n></formio>\r\n","import { Component } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormioResourceService } from '../resource.service';\r\n\r\n@Component({\r\n  templateUrl: './delete.component.html'\r\n})\r\nexport class FormioResourceDeleteComponent {\r\n  constructor(\r\n    public service: FormioResourceService,\r\n    public route: ActivatedRoute,\r\n    public router: Router\r\n  ) {}\r\n\r\n  onDelete() {\r\n    this.service.remove().then(() => {\r\n      this.router.navigate(['../../'], { relativeTo: this.route });\r\n    });\r\n  }\r\n\r\n  onCancel() {\r\n    this.router.navigate(['../', 'view'], { relativeTo: this.route });\r\n  }\r\n}\r\n","<h3>Are you sure you wish to delete this record?</h3>\r\n<div class=\"btn-toolbar\">\r\n  <button type=\"button\" (click)=\"onDelete()\" class=\"btn btn-danger\" style=\"margin-right: 10px;\">Yes</button>\r\n  <button type=\"button\" (click)=\"onCancel()\" class=\"btn btn-danger\">No</button>\r\n</div>\r\n","import { Component, EventEmitter, OnInit } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormioResourceService } from '../resource.service';\r\nimport { FormioResourceConfig } from '../resource.config';\r\n\r\n@Component({\r\n  styleUrls: ['./create.component.scss'],\r\n  templateUrl: './create.component.html'\r\n})\r\nexport class FormioResourceCreateComponent implements OnInit {\r\n  public onError: EventEmitter<any>;\r\n  public onSuccess: EventEmitter<any>;\r\n  constructor(\r\n    public service: FormioResourceService,\r\n    public route: ActivatedRoute,\r\n    public router: Router,\r\n    public config: FormioResourceConfig\r\n  ) {\r\n    this.onError = new EventEmitter();\r\n    this.onSuccess = new EventEmitter();\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.service.setContext(this.route);\r\n  }\r\n\r\n  onSubmit(submission: any) {\r\n    this.service\r\n      .save(submission)\r\n      .then(() => {\r\n        this.router.navigate(['../', this.service.resource._id, 'view'], {\r\n          relativeTo: this.route\r\n        });\r\n      })\r\n      .catch((err: any) => this.onError.emit(err));\r\n  }\r\n}\r\n","<h3 *ngIf=\"service.form\" style=\"margin-top:0;\">\r\n  <a routerLink=\"../\" class=\"back-button\">\r\n    <em class=\"fa fa-chevron-left glyphicon glyphicon-chevron-left\"></em>\r\n  </a> | New {{ service.form.title }}\r\n</h3>\r\n<formio\r\n  [form]=\"service.form\"\r\n  [submission]=\"service.resource\"\r\n  [refresh]=\"service.refresh\"\r\n  [error]=\"onError\"\r\n  [success]=\"onSuccess\"\r\n  (submit)=\"onSubmit($event)\"\r\n></formio>\r\n","import { Component, OnInit, ChangeDetectorRef, NgZone } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormioResourceService } from '../resource.service';\r\nimport { FormioResourceConfig } from '../resource.config';\r\nimport { each } from 'lodash';\r\n\r\n@Component({\r\n  templateUrl: './index.component.html'\r\n})\r\nexport class FormioResourceIndexComponent implements OnInit {\r\n  public gridSrc?: string;\r\n  public gridQuery: any;\r\n  public createText: String;\r\n\r\n  constructor(\r\n    public service: FormioResourceService,\r\n    public route: ActivatedRoute,\r\n    public router: Router,\r\n    public config: FormioResourceConfig,\r\n    public cdr: ChangeDetectorRef,\r\n    public ngZone: NgZone,\r\n  ) {\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.gridQuery = {};\r\n    this.service.setContext(this.route);\r\n    this.service.formLoaded.then(() => {\r\n      if (\r\n        this.service &&\r\n        this.config.parents &&\r\n        this.config.parents.length\r\n      ) {\r\n        this.service.loadParents().then((parents: any) => {\r\n          each(parents, (parent: any) => {\r\n            if (parent && parent.filter) {\r\n              this.gridQuery['data.' + parent.name + '._id'] =\r\n                parent.resource._id;\r\n            }\r\n          });\r\n\r\n          // Set the source to load the grid.\r\n          this.gridSrc = this.service.formUrl;\r\n          this.createText = `New ${this.service.form.title}`;\r\n        });\r\n      } else if (this.service.formUrl) {\r\n        this.gridSrc = this.service.formUrl;\r\n        this.createText = `New ${this.service.form.title}`;\r\n      }\r\n\r\n      this.cdr.detectChanges();\r\n    });\r\n  }\r\n\r\n  onSelect(row: any) {\r\n    this.ngZone.run(() => {\r\n      this.router.navigate([row._id, 'view'], { relativeTo: this.route });\r\n    });\r\n  }\r\n\r\n  onCreateItem() {\r\n    this.ngZone.run(() => {\r\n      this.router.navigate(['new'], { relativeTo: this.route });\r\n    });\r\n  }\r\n}\r\n","<formio-alerts [alerts]=\"service.alerts\"></formio-alerts>\r\n<formio-grid\r\n  [src]=\"gridSrc\"\r\n  [query]=\"gridQuery\"\r\n  [onForm]=\"service.formLoaded\"\r\n  (rowSelect)=\"onSelect($event)\"\r\n  (error)=\"service.onError($event)\"\r\n  (createItem)=\"onCreateItem()\"\r\n  [createText]=\"createText\"\r\n></formio-grid>\r\n","import { Routes } from '@angular/router';\r\nimport { FormioResourceComponent } from './resource.component';\r\nimport { FormioResourceViewComponent } from './view/view.component';\r\nimport { FormioResourceEditComponent } from './edit/edit.component';\r\nimport { FormioResourceDeleteComponent } from './delete/delete.component';\r\nimport { FormioResourceCreateComponent } from './create/create.component';\r\nimport { FormioResourceIndexComponent } from './index/index.component';\r\nimport { FormioResourceRouteConfig } from './resource.config';\r\nexport function FormioResourceRoutes(config?: FormioResourceRouteConfig): Routes {\r\n  return [\r\n    {\r\n      path: '',\r\n      component: config && config.index ? config.index : FormioResourceIndexComponent\r\n    },\r\n    {\r\n      path: 'new',\r\n      component: config && config.create ? config.create : FormioResourceCreateComponent\r\n    },\r\n    {\r\n      path: ':id',\r\n      component: config && config.resource ? config.resource : FormioResourceComponent,\r\n      children: [\r\n        {\r\n          path: '',\r\n          redirectTo: 'view',\r\n          pathMatch: 'full'\r\n        },\r\n        {\r\n          path: 'view',\r\n          component: config && config.view ? config.view : FormioResourceViewComponent\r\n        },\r\n        {\r\n          path: 'edit',\r\n          component: config && config.edit ? config.edit : FormioResourceEditComponent\r\n        },\r\n        {\r\n          path: 'delete',\r\n          component: config && config.delete ? config.delete : FormioResourceDeleteComponent\r\n        }\r\n      ]\r\n    }\r\n  ];\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { CommonModule } from '@angular/common';\nimport { FormioModule } from '@maqta/formio-angular';\nimport { FormioAlerts } from '@maqta/formio-angular';\nimport { FormioGrid } from '@maqta/formio-angular/grid';\nimport { FormioResourceComponent } from './resource.component';\nimport { FormioResourceViewComponent } from './view/view.component';\nimport { FormioResourceEditComponent } from './edit/edit.component';\nimport { FormioResourceDeleteComponent } from './delete/delete.component';\nimport { FormioResourceCreateComponent } from './create/create.component';\nimport { FormioResourceIndexComponent } from './index/index.component';\nimport { FormioResourceRouteConfig } from './resource.config';\nimport { FormioResourceRoutes } from './resource.routes';\nimport { extendRouter } from '@maqta/formio-angular';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    FormioModule,\n    FormioGrid,\n    RouterModule\n  ],\n  declarations: [\n    FormioResourceComponent,\n    FormioResourceCreateComponent,\n    FormioResourceIndexComponent,\n    FormioResourceViewComponent,\n    FormioResourceEditComponent,\n    FormioResourceDeleteComponent\n  ],\n  providers: [\n    FormioAlerts\n  ]\n})\nexport class FormioResource {\n  static forChild(config?: FormioResourceRouteConfig): any {\n    return extendRouter(FormioResource, config, FormioResourceRoutes);\n  }\n  static forRoot(config?: FormioResourceRouteConfig): any {\n    return extendRouter(FormioResource, config, FormioResourceRoutes);\n  }\n}\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":["Promise"],"mappings":"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"}