/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/angular-formio-gp@3.20.90000001/angular-formio.umd.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("formiojs-gp"),require("lodash"),require("lodash/each"),require("lodash/intersection")):"function"==typeof define&&define.amd?define("angularFormio",["exports","@angular/core","formiojs-gp","lodash","lodash/each","lodash/intersection"],t):t((e=e||self)["angular-formio"]={},e.core,e.formiojsGp,e.lodash,e._each,e._intersection)}(this,(function(e,t,o,s,r,i){"use strict";r=r&&r.hasOwnProperty("default")?r.default:r,i=i&&i.hasOwnProperty("default")?i.default:i;var n=function(){function e(){this.appUrl="",this.apiUrl=""}return e.decorators=[{type:t.Injectable}],e}(),c=function(){function e(){this.tag="",this.includeSearch=!1,this.saveDraft=!1}return e.decorators=[{type:t.Injectable}],e}(),a=function(){function e(){}return e.decorators=[{type:t.Injectable}],e}(),u=function(){function e(e,r){var i=this;this.appConfig=e,this.config=r,this.authenticated=!1,this.formAccess={},this.submissionAccess={},this.is={},this.user=null,this.appConfig&&this.appConfig.appUrl?(o.Formio.setBaseUrl(this.appConfig.apiUrl),o.Formio.setProjectUrl(this.appConfig.appUrl),o.Formio.formOnly=!!this.appConfig.formOnly):console.error("You must provide an AppConfig within your application!"),this.loginForm=this.appConfig.appUrl+"/"+s.get(this.config,"login.form","user/login"),this.registerForm=this.appConfig.appUrl+"/"+s.get(this.config,"register.form","user/login"),this.onLogin=new t.EventEmitter,this.onLogout=new t.EventEmitter,this.onRegister=new t.EventEmitter,this.onUser=new t.EventEmitter,this.onError=new t.EventEmitter,this.ready=new Promise((function(e,t){i.readyResolve=e,i.readyReject=t})),o.Formio.events.on("formio.badToken",(function(){return i.logoutError()})),o.Formio.events.on("formio.sessionExpired",(function(){return i.logoutError()})),this.config.delayAuth||this.init()}return e.prototype.onLoginSubmit=function(e){this.setUser(e),this.onLogin.emit(e)},e.prototype.onRegisterSubmit=function(e){this.setUser(e),this.onRegister.emit(e)},e.prototype.init=function(){var e=this;this.projectReady=o.Formio.makeStaticRequest(this.appConfig.appUrl).then((function(t){s.each(t.access,(function(t){e.formAccess[t.type]=t.roles}))}),(function(){return e.formAccess={},null})),this.accessReady=o.Formio.makeStaticRequest(this.appConfig.appUrl+"/access").then((function(t){return s.each(t.forms,(function(t){e.submissionAccess[t.name]={},t.submissionAccess.forEach((function(o){e.submissionAccess[t.name][o.type]=o.roles}))})),e.roles=t.roles,t}),(function(){return e.roles={},null})),this.userReady=o.Formio.currentUser().then((function(t){return e.setUser(t),t})),this.accessReady&&this.accessReady.then((function(){return e.projectReady})).then((function(){return e.userReady})).then((function(){return e.readyResolve(!0)})).catch((function(t){return e.readyReject(t)}))},e.prototype.setUser=function(e){var t=o.Formio.namespace||"formio";e?(this.user=e,localStorage.setItem(t+"AppUser",JSON.stringify(e)),this.setUserRoles()):(this.user=null,this.is={},localStorage.removeItem(t+"AppUser"),o.Formio.clearCache(),o.Formio.setUser(null)),this.authenticated=!!o.Formio.getToken(),this.onUser.emit(this.user)},e.prototype.setUserRoles=function(){var e=this;this.accessReady&&this.accessReady.then((function(){s.each(e.roles,(function(t,o){-1!==e.user.roles.indexOf(t._id)&&(e.is[o]=!0)}))}))},e.prototype.logoutError=function(){this.setUser(null),localStorage.removeItem("formioToken"),this.onError.emit()},e.prototype.logout=function(){var e=this;this.setUser(null),localStorage.removeItem("formioToken"),o.Formio.logout().then((function(){return e.onLogout.emit()})).catch((function(){return e.logoutError()}))},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:n},{type:a}]},e}(),f=function(){function e(e,t,s){var r=this;this.appConfig=e,this.config=t,this.auth=s,this.form=null,this.perms={delete:!1,edit:!1},this.appConfig&&this.appConfig.appUrl?(o.Formio.setBaseUrl(this.appConfig.apiUrl),o.Formio.setProjectUrl(this.appConfig.appUrl)):console.error("You must provide an AppConfig within your application!"),this.allAccessMap={update_all:"formEdit",delete_all:"formDelete"},this.ownAccessMap={update_own:"formEdit",delete_own:"formDelete"},this.actionAllowed=function(e){return r.isActionAllowed(e)},this.reset()}return e.prototype.isActionAllowed=function(e){return this.access[e]},e.prototype.setAccess=function(){var e=this;this.access={formCreate:!0,formView:!0,formEdit:!0,formDelete:!0,submissionIndex:!0},this.auth?(this.access={formCreate:!1,formView:!1,formEdit:!1,formDelete:!1,submissionIndex:!1},this.ready=this.auth.ready.then((function(){var t=[];r(e.auth.roles,(function(e,o){e.admin&&t.push(e._id)})),e.auth.user&&e.auth.user.roles&&e.auth.user.roles.forEach((function(o){-1!==t.indexOf(o)&&(e.access.formCreate=!0,e.access.formView=!0,e.access.formEdit=!0,e.access.formDelete=!0,e.access.submissionIndex=!0),e.access.formCreate||(e.access.formCreate=-1!==e.auth.formAccess.create_all.indexOf(o)),e.access.formView||(e.access.formView=-1!==e.auth.formAccess.read_all.indexOf(o)),e.access.formEdit||(e.access.formEdit=-1!==e.auth.formAccess.update_all.indexOf(o)),e.access.formDelete||(e.access.formDelete=-1!==e.auth.formAccess.delete_all.indexOf(o)),e.access.submissionIndex||(e.access.submissionIndex=-1!==e.auth.formAccess.read_all.indexOf(o))}))}))):this.ready=Promise.resolve(!1)},e.prototype.reset=function(e){var t=this;e?e.params.subscribe((function(e){e.id?t.formio=new o.Formio(t.formio.formsUrl+"/"+e.id):t.reset()})):(this.formio=new o.Formio(this.appConfig.appUrl),this.setAccess())},e.prototype.hasAccess=function(e){return!!this.auth.user&&!!i(e,this.auth.user.roles).length},e.prototype.setForm=function(e){var t=this;return this.form=e,e.access&&e.access.forEach((function(o){t.allAccessMap[o.type]&&!t.access[t.allAccessMap[o.type]]&&(t.access[t.allAccessMap[o.type]]=t.hasAccess(o.roles)),t.auth&&t.auth.user&&e._id===t.auth.user._id&&t.ownAccessMap[o.type]&&!t.access[t.ownAccessMap[o.type]]&&(t.access[t.ownAccessMap[o.type]]=t.hasAccess(o.roles))})),e},e.prototype.loadForm=function(){var e=this;return this.formio.loadForm().then((function(t){return e.setForm(t)}))},e.prototype.setSubmission=function(e){var t=this;return new Promise((function(s){e.params.subscribe((function(e){t.formio=new o.Formio(t.formio.submissionsUrl+"/"+e.id),s(t.formio)}))}))},e.prototype.submissionLoaded=function(e){var t=this;this.auth.ready.then((function(){t.formio.userPermissions(t.auth.user,t.form,e).then((function(e){t.perms.delete=e.delete,t.perms.edit=e.edit}))}))},e.prototype.loadForms=function(){return this.formio.loadForms({params:{tags:this.config.tag}})},e.prototype.createForm=function(e){return this.formio.createform(e)},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:n},{type:c},{type:u}]},e}(),h=function(){function e(e){this.service=e}return e.decorators=[{type:t.Component,args:[{template:'<formio [renderer]="service.config.renderer" [src]="service.formio.submissionUrl" [readOnly]="true" (formLoad)="service.setForm($event)" (submissionLoad)="service.submissionLoaded($event)" ></formio> '}]}],e.ctorParameters=function(){return[{type:f}]},e}();e.SubmissionViewComponent=h,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=/sm/00001291845c82db66fd324be77346eebbb551c33a2b1f8c94b6337735118d48.map