@formio/angular 6.0.0 → 6.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.angular/cache/18.1.2/ng-packagr/content-v2/sha512/03/c3/57d706b57a9bb2202b4c3f58dc4c59bd1fae8dc1d330b416b5c069a4217a2457f6c7cfef2f6d0dc5378bb43c95f62533a75cb34d09cfef47dc40e5756725 +1 -0
- package/.angular/cache/18.1.2/ng-packagr/content-v2/sha512/0c/7a/916bd866cb386cc87b9ea07c40edc23df9d726d1865e6699b42dedfbfb2a8364ced191aa62680a9297d7644cdfa64753b8975cc254c7c581f28bba0acd15 +1 -0
- package/.angular/cache/18.1.2/ng-packagr/content-v2/sha512/17/1b/bc3996ef483c464312f7c1acf66b2ce37039601d01d5faf114e615de6ae5001d009aa0a1410c1b4682dda0866d78d5f9c709ab4f6c8ba986a7936ab9f6ef +1 -0
- package/.angular/cache/18.1.2/ng-packagr/content-v2/sha512/1e/04/481e2f3a5c2e9aed176acbf87c09f0320892cb02bbf8a95019c30ea33f77af28e8280057e4720a90506cb25c59ed33c0d60655446b75c3e25dfb4330ed43 +1 -0
- package/.angular/cache/18.1.2/ng-packagr/content-v2/sha512/28/48/0149b4006ab8d4a2a7b42e75c125f3adab48568f4d85ee48176367ae60965807a3a72f81550645fe5a2ba83c16b33196f85c46107d859175847763b9bba7 +1 -0
- package/.angular/cache/18.1.2/ng-packagr/content-v2/sha512/42/8d/7954e44606cfeaf1246358216f7f53bdccafbdbf7b99700ea6002d6e0dbe1c33f015d0cf59b833e5b4a36767cd94f29b9d77f86645e872bdc3013b403845 +1 -0
- package/.angular/cache/18.1.2/ng-packagr/content-v2/sha512/43/05/c86feb68c6e6f17d2b1e7d4aadfbef2f8554b42c9e0b7516b22a7c34044b513c23987b00507d17cb8f89b9b762b5499483d4ec16708519940e00cee5863a +1 -0
- package/.angular/cache/18.1.2/ng-packagr/content-v2/sha512/4c/77/763f1bb202f7b0d54e7b79b0a23fe956cf0827a5e988bceb7c59621c9ec07c8e7863531e5731dc334e90cf1d735a6e64dafa6d5bae486ab3b7b90dea3fe5 +1 -0
- package/.angular/cache/18.1.2/ng-packagr/content-v2/sha512/5e/df/0706d1dfb3ed5b0c5a65b7b5e40996105b18800c157e8fb273040145aa011d9e60e28eb2112e2867a70052784727400f86d082d90d2c5841ec3abcbb6840 +1 -0
- package/.angular/cache/18.1.2/ng-packagr/content-v2/sha512/6f/86/7209df36e306d669d7347d7ddb464798ace457218aa5f3be5b17145cdfd1385bbd48d133381fc31c082b5025575865b351f9bb0265508359fda378962d60 +1 -0
- package/.angular/cache/18.1.2/ng-packagr/content-v2/sha512/71/55/241de4ea057eae7171b73fac62de144f35df7c4ec9be4fca9b08fa02f24f281e79717c76086a90b578d52963cd7cc78fc391ec813576d667ac3ad043e67d +1 -0
- package/.angular/cache/18.1.2/ng-packagr/content-v2/sha512/89/26/e1b6ab1ce4c15c9175974d262c9baead1eea23bb80c6da1926a36513e9777f8d1be0948ec0cb33e875e41926682599a92ede1900400004ad1856529822bc +1 -0
- package/.angular/cache/18.1.2/ng-packagr/content-v2/sha512/9c/21/3b8af7b6ee09c29bf340610026191af56f9ba1cba1f5e4476424775d5e322f84d7e900c4d264d39804cebf3dcb5aaa5eb5e9d8fd143bc3a8aa76c3d5325e +1 -0
- package/.angular/cache/18.1.2/ng-packagr/content-v2/sha512/9e/bc/eb0b9b19e56d5161114be0b4aa51d5e29527ddd9e8954a9977fdb80b1640d5ee535de8c5c7cc1348f12423d5c9ece8e6525290eed6d4259303c5e0dd9e54 +1 -0
- package/.angular/cache/18.1.2/ng-packagr/content-v2/sha512/af/5c/97d9a08342685ee95844b54aed260370df0de7c2408ec7b14f7da3972c811ee5a4cae7be4f51de07dd039c8639ec4e9008733bcf0b6a438b29a83d7fabe3 +1 -0
- package/.angular/cache/18.1.2/ng-packagr/content-v2/sha512/b3/9a/0f0721f954468df14c05be1e1ecf80808948d80accc676b22b2f42594e36fd848d7b6f3a494888778ced38819d64ac01619dadef02f5d064a07e422dc6e3 +1 -0
- package/.angular/cache/18.1.2/ng-packagr/content-v2/sha512/ba/5d/d939f6c0890924d0234b6253e4c7baab7e285c4e9e3b838d4f223f5365ce00c421e48383fc21ecdf847e1592936f5be80b0d20ea3db471bfe39e181c091a +1 -0
- package/.angular/cache/18.1.2/ng-packagr/content-v2/sha512/c2/ed/fa9f957c177066eb85345c4a12a5b966d0a8c9b13723ef0b97b9e97fd12d94dce317239ca3b04a085e837ac1254883fe308f6914c845b3ab905aee71104c +1 -0
- package/.angular/cache/18.1.2/ng-packagr/content-v2/sha512/e5/02/dea9a92e3e7a840bde12d10d7b4d9c19c7be587e568019a9aacd2f3be7a6a968ec214e3c6671def4874ff7e14de90b2b7f4742d40932e5772e85ed9e2e5c +1 -0
- package/.angular/cache/18.1.2/ng-packagr/content-v2/sha512/e9/ca/53ff813610ae5d57a25518e6546b659a092de2c929fd43130db59358947aa9aa5797289f7ca39fe550d2e41050a69cb26e6b5dd6ebbcae0207ab08474dc8 +1 -0
- package/.angular/cache/18.1.2/ng-packagr/index-v5/25/d3/52d51d20f0068267704af92a4b131f29e9318f247d503eb0ec23c1ed7188 +2 -0
- package/.angular/cache/18.1.2/ng-packagr/index-v5/32/2f/d5c320e973844b017f9df834dcf5f8a70b27c1c3b625602647fbe166617c +2 -0
- package/.angular/cache/18.1.2/ng-packagr/index-v5/38/53/3bd61bb2f286821c9ec46774147eb97de202bd306657efa7e8fb0a4343e8 +2 -0
- package/.angular/cache/18.1.2/ng-packagr/index-v5/4e/53/3b7731ca8fad27e6eaeb4c36c45bd95e9f08ffb7d050da8e33aa0c67f420 +2 -0
- package/.angular/cache/18.1.2/ng-packagr/index-v5/4f/b5/b4881a5f5a49b3873273918459bc33f4faa34e974e629f48a07d7a97c39c +2 -0
- package/.angular/cache/18.1.2/ng-packagr/index-v5/5b/e4/f6ef130cc3bbbf5aa958ce481e0b714d430a6a04f61381bc829296cde9a5 +2 -0
- package/.angular/cache/18.1.2/ng-packagr/index-v5/69/8c/55ebedfbeee3a23e43db1e5576ea5a06710fab809fc667ba3ce8583b8eea +2 -0
- package/.angular/cache/18.1.2/ng-packagr/index-v5/8a/38/489a51c20c3a372344dd5510758e23c1caffd6dfe1525c17dc3fbc231b76 +2 -0
- package/.angular/cache/18.1.2/ng-packagr/index-v5/8d/5d/26f10d893644ba75ac602bed8276ef0b4e1866d085754e032ee3833e95ab +2 -0
- package/.angular/cache/18.1.2/ng-packagr/index-v5/9a/0d/0056d732cfdfa97dfef099aa2189dcac3fae2f7c3c3560cd77a7c9567e74 +2 -0
- package/.angular/cache/18.1.2/ng-packagr/index-v5/9c/f5/9c5f48481303af30935226f6337a1e033ad35f0462f95da8a973b69aafb5 +2 -0
- package/.angular/cache/18.1.2/ng-packagr/index-v5/a3/17/80d2a0bcaac6af902db5f128a8f8ec58ec220b9d00d6825205749c2f418a +2 -0
- package/.angular/cache/18.1.2/ng-packagr/index-v5/aa/80/466e9b161643951f9a077066a20cd2d7ef6903a1fdcaadedcef9c0177747 +2 -0
- package/.angular/cache/18.1.2/ng-packagr/index-v5/b7/72/d9f00a872849a611fa73cb9ec575401ee6c838795bb102753b24d7d53ee3 +2 -0
- package/.angular/cache/18.1.2/ng-packagr/index-v5/c7/dd/eca0dfb0e1190fa828b47955c8f97ac1e7a5b24871fb9d8342cd7256e5f9 +2 -0
- package/.angular/cache/18.1.2/ng-packagr/index-v5/d9/03/3fd9ec2d0c37e7b3824ec5e7936928c4f6debbb6899a120a52cdba472f38 +2 -0
- package/.angular/cache/18.1.2/ng-packagr/index-v5/da/4e/570182d1f569903d2554c87334c0f7751dafcb6b683ddfbe4213614fd5be +2 -0
- package/.angular/cache/18.1.2/ng-packagr/index-v5/dc/4f/1a8db8af7d1e3f37160992ae5545e63460ab6e54a4d3981f234eb089d435 +2 -0
- package/.angular/cache/18.1.2/ng-packagr/index-v5/e8/e9/47b0d4126bcfabc2df9a4c4be0d197a805526dd04e2a48278501d62a85fd +2 -0
- package/.angular/cache/18.1.2/ng-packagr/index-v5/ed/de/db04689deebb1db3d7610a2bbca795b1180084d7985db7a993d4787f6d0e +2 -0
- package/.angular/cache/18.1.2/ng-packagr/tsbuildinfo/formio-angular-auth.tsbuildinfo +1 -0
- package/.angular/cache/18.1.2/ng-packagr/tsbuildinfo/formio-angular-embed.tsbuildinfo +1 -0
- package/.angular/cache/18.1.2/ng-packagr/tsbuildinfo/formio-angular-grid.tsbuildinfo +1 -0
- package/.angular/cache/18.1.2/ng-packagr/tsbuildinfo/formio-angular-manager.tsbuildinfo +1 -0
- package/.angular/cache/18.1.2/ng-packagr/tsbuildinfo/formio-angular-resource.tsbuildinfo +1 -0
- package/.angular/cache/18.1.2/ng-packagr/tsbuildinfo/formio-angular.tsbuildinfo +1 -0
- package/.dockerignore +5 -0
- package/.editorconfig +13 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
- package/.github/ISSUE_TEMPLATE/custom-components-support-request.md +15 -0
- package/.github/ISSUE_TEMPLATE/question.md +8 -0
- package/.travis.yml +4 -0
- package/.yo-rc.json +7 -0
- package/CHANGELOG.md +1095 -0
- package/Dockerfile +20 -0
- package/LICENSE +21 -0
- package/README.md +182 -13
- package/angular.json +38 -0
- package/bs-config.json +11 -0
- package/{FormioBaseComponent.d.ts → dist/angular-formio/FormioBaseComponent.d.ts} +1 -1
- package/{FormioBaseComponent.d.ts.map → dist/angular-formio/FormioBaseComponent.d.ts.map} +1 -1
- package/dist/angular-formio/README.md +24 -0
- package/{components → dist/angular-formio/components}/formbuilder/formbuilder.component.d.ts +1 -1
- package/{components → dist/angular-formio/components}/formbuilder/formbuilder.component.d.ts.map +1 -1
- package/{components → dist/angular-formio/components}/formioreport/formioreport.component.d.ts +1 -0
- package/{components → dist/angular-formio/components}/formioreport/formioreport.component.d.ts.map +1 -1
- package/{core.d.ts → dist/angular-formio/core.d.ts} +3 -1
- package/{core.d.ts.map → dist/angular-formio/core.d.ts.map} +1 -1
- package/dist/angular-formio/embed/app.service.d.ts +28 -0
- package/dist/angular-formio/embed/app.service.d.ts.map +1 -0
- package/dist/angular-formio/embed/builder.component.d.ts +13 -0
- package/dist/angular-formio/embed/builder.component.d.ts.map +1 -0
- package/dist/angular-formio/embed/embed.module.d.ts +10 -0
- package/dist/angular-formio/embed/embed.module.d.ts.map +1 -0
- package/dist/angular-formio/embed/formio-angular-embed.d.ts.map +1 -0
- package/dist/angular-formio/embed/formio.component.d.ts +16 -0
- package/dist/angular-formio/embed/formio.component.d.ts.map +1 -0
- package/dist/angular-formio/embed/index.d.ts +7 -0
- package/dist/angular-formio/embed/index.d.ts.map +1 -0
- package/dist/angular-formio/esm2022/FormioBaseComponent.mjs +587 -0
- package/dist/angular-formio/esm2022/auth/auth.component.mjs +23 -0
- package/dist/angular-formio/esm2022/auth/auth.config.mjs +21 -0
- package/dist/angular-formio/esm2022/auth/auth.module.mjs +47 -0
- package/dist/angular-formio/esm2022/auth/auth.service.mjs +199 -0
- package/dist/angular-formio/esm2022/auth/login/login.component.mjs +27 -0
- package/dist/angular-formio/esm2022/auth/register/register.component.mjs +27 -0
- package/dist/angular-formio/esm2022/auth/resetpass/resetpass.component.mjs +24 -0
- package/dist/angular-formio/esm2022/components/alerts/formio.alerts.component.mjs +46 -0
- package/dist/angular-formio/esm2022/components/alerts/parse-html-content.pipe.mjs +19 -0
- package/dist/angular-formio/esm2022/components/formbuilder/formbuilder.component.mjs +211 -0
- package/dist/angular-formio/esm2022/components/formio/formio.component.mjs +85 -0
- package/dist/angular-formio/esm2022/components/formioreport/formioreport.component.mjs +137 -0
- package/dist/angular-formio/esm2022/components/loader/formio.loader.component.mjs +25 -0
- package/dist/angular-formio/esm2022/core.mjs +19 -0
- package/dist/angular-formio/esm2022/custom-tags.service.mjs +14 -0
- package/dist/angular-formio/esm2022/embed/app.service.mjs +58 -0
- package/dist/angular-formio/esm2022/embed/builder.component.mjs +45 -0
- package/dist/angular-formio/esm2022/embed/embed.module.mjs +36 -0
- package/dist/angular-formio/esm2022/embed/formio-angular-embed.mjs +5 -0
- package/dist/angular-formio/esm2022/embed/formio.component.mjs +59 -0
- package/dist/angular-formio/esm2022/embed/index.mjs +7 -0
- package/dist/angular-formio/esm2022/formio.common.mjs +11 -0
- package/dist/angular-formio/esm2022/formio.config.mjs +29 -0
- package/dist/angular-formio/esm2022/formio.module.mjs +60 -0
- package/dist/angular-formio/esm2022/formio.service.mjs +62 -0
- package/dist/angular-formio/esm2022/formio.utils.mjs +21 -0
- package/dist/angular-formio/esm2022/grid/GridBodyComponent.mjs +95 -0
- package/dist/angular-formio/esm2022/grid/GridFooterComponent.mjs +50 -0
- package/dist/angular-formio/esm2022/grid/GridHeaderComponent.mjs +40 -0
- package/dist/angular-formio/esm2022/grid/form/FormGridBody.component.mjs +165 -0
- package/dist/angular-formio/esm2022/grid/form/FormGridFooter.component.mjs +112 -0
- package/dist/angular-formio/esm2022/grid/form/FormGridHeader.component.mjs +54 -0
- package/dist/angular-formio/esm2022/grid/form/time-since.pipe.mjs +37 -0
- package/dist/angular-formio/esm2022/grid/grid.component.mjs +321 -0
- package/dist/angular-formio/esm2022/grid/grid.module.mjs +80 -0
- package/dist/angular-formio/esm2022/grid/grid.service.mjs +18 -0
- package/dist/angular-formio/esm2022/grid/submission/SubmissionGridBody.component.mjs +74 -0
- package/dist/angular-formio/esm2022/grid/submission/SubmissionGridFooter.component.mjs +103 -0
- package/dist/angular-formio/esm2022/grid/submission/SubmissionGridHeader.component.mjs +96 -0
- package/dist/angular-formio/esm2022/manager/create/create.component.mjs +62 -0
- package/dist/angular-formio/esm2022/manager/delete/delete.component.mjs +58 -0
- package/dist/angular-formio/esm2022/manager/edit/edit.component.mjs +181 -0
- package/dist/angular-formio/esm2022/manager/form/form.component.mjs +176 -0
- package/dist/angular-formio/esm2022/manager/form-manager.config.mjs +18 -0
- package/dist/angular-formio/esm2022/manager/form-manager.module.mjs +84 -0
- package/dist/angular-formio/esm2022/manager/form-manager.service.mjs +185 -0
- package/dist/angular-formio/esm2022/manager/index/index.component.mjs +151 -0
- package/dist/angular-formio/esm2022/manager/submission/delete/delete.component.mjs +48 -0
- package/dist/angular-formio/esm2022/manager/submission/edit/edit.component.mjs +32 -0
- package/dist/angular-formio/esm2022/manager/submission/index/index.component.mjs +32 -0
- package/dist/angular-formio/esm2022/manager/submission/submission/submission.component.mjs +67 -0
- package/dist/angular-formio/esm2022/manager/submission/view/view.component.mjs +24 -0
- package/dist/angular-formio/esm2022/manager/view/view.component.mjs +66 -0
- package/dist/angular-formio/esm2022/resource/create/create.component.mjs +64 -0
- package/dist/angular-formio/esm2022/resource/delete/delete.component.mjs +42 -0
- package/dist/angular-formio/esm2022/resource/edit/edit.component.mjs +49 -0
- package/dist/angular-formio/esm2022/resource/index/index.component.mjs +79 -0
- package/dist/angular-formio/esm2022/resource/resource.component.mjs +72 -0
- package/dist/angular-formio/esm2022/resource/resource.config.mjs +13 -0
- package/dist/angular-formio/esm2022/resource/resource.module.mjs +63 -0
- package/dist/angular-formio/esm2022/resource/resource.service.mjs +231 -0
- package/dist/angular-formio/esm2022/resource/resources.service.mjs +25 -0
- package/dist/angular-formio/esm2022/resource/view/view.component.mjs +30 -0
- package/{fesm2022 → dist/angular-formio/fesm2022}/formio-angular-auth.mjs +92 -59
- package/dist/angular-formio/fesm2022/formio-angular-auth.mjs.map +1 -0
- package/dist/angular-formio/fesm2022/formio-angular-embed.mjs +195 -0
- package/dist/angular-formio/fesm2022/formio-angular-embed.mjs.map +1 -0
- package/dist/angular-formio/fesm2022/formio-angular-grid.mjs +1213 -0
- package/dist/angular-formio/fesm2022/formio-angular-grid.mjs.map +1 -0
- package/dist/angular-formio/fesm2022/formio-angular-manager.mjs +1167 -0
- package/dist/angular-formio/fesm2022/formio-angular-manager.mjs.map +1 -0
- package/dist/angular-formio/fesm2022/formio-angular-resource.mjs +656 -0
- package/dist/angular-formio/fesm2022/formio-angular-resource.mjs.map +1 -0
- package/dist/angular-formio/fesm2022/formio-angular.mjs +1321 -0
- package/dist/angular-formio/fesm2022/formio-angular.mjs.map +1 -0
- package/{formio.common.d.ts → dist/angular-formio/formio.common.d.ts} +1 -2
- package/dist/angular-formio/formio.common.d.ts.map +1 -0
- package/{formio.config.d.ts → dist/angular-formio/formio.config.d.ts} +2 -1
- package/dist/angular-formio/formio.config.d.ts.map +1 -0
- package/{grid → dist/angular-formio/grid}/submission/SubmissionGridHeader.component.d.ts +1 -1
- package/dist/angular-formio/grid/submission/SubmissionGridHeader.component.d.ts.map +1 -0
- package/{manager → dist/angular-formio/manager}/edit/edit.component.d.ts.map +1 -1
- package/{manager → dist/angular-formio/manager}/form-manager.service.d.ts +1 -1
- package/{manager → dist/angular-formio/manager}/form-manager.service.d.ts.map +1 -1
- package/{resource → dist/angular-formio/resource}/resource.service.d.ts.map +1 -1
- package/package.json +54 -57
- package/projects/angular-formio/README.md +24 -0
- package/projects/angular-formio/auth/ng-package.json +5 -0
- package/projects/angular-formio/auth/src/auth.component.html +11 -0
- package/projects/angular-formio/auth/src/auth.component.ts +5 -0
- package/projects/angular-formio/auth/src/auth.config.ts +72 -0
- package/projects/angular-formio/auth/src/auth.module.ts +33 -0
- package/projects/angular-formio/auth/src/auth.routes.ts +34 -0
- package/projects/angular-formio/auth/src/auth.service.ts +221 -0
- package/projects/angular-formio/auth/src/index.ts +8 -0
- package/projects/angular-formio/auth/src/login/login.component.html +1 -0
- package/projects/angular-formio/auth/src/login/login.component.ts +11 -0
- package/projects/angular-formio/auth/src/public_api.ts +5 -0
- package/projects/angular-formio/auth/src/register/register.component.html +1 -0
- package/projects/angular-formio/auth/src/register/register.component.ts +11 -0
- package/projects/angular-formio/auth/src/resetpass/resetpass.component.html +1 -0
- package/projects/angular-formio/auth/src/resetpass/resetpass.component.ts +8 -0
- package/projects/angular-formio/grid/ng-package.json +5 -0
- package/projects/angular-formio/grid/src/GridBodyComponent.ts +80 -0
- package/projects/angular-formio/grid/src/GridFooterComponent.ts +25 -0
- package/projects/angular-formio/grid/src/GridHeaderComponent.ts +25 -0
- package/projects/angular-formio/grid/src/form/FormGridBody.component.html +22 -0
- package/projects/angular-formio/grid/src/form/FormGridBody.component.scss +4 -0
- package/projects/angular-formio/grid/src/form/FormGridBody.component.ts +46 -0
- package/projects/angular-formio/grid/src/form/FormGridFooter.component.html +21 -0
- package/projects/angular-formio/grid/src/form/FormGridFooter.component.ts +23 -0
- package/projects/angular-formio/grid/src/form/FormGridHeader.component.html +18 -0
- package/projects/angular-formio/grid/src/form/FormGridHeader.component.ts +24 -0
- package/projects/angular-formio/grid/src/form/index.ts +8 -0
- package/projects/angular-formio/grid/src/form/time-since.pipe.ts +31 -0
- package/projects/angular-formio/grid/src/grid.component.html +18 -0
- package/projects/angular-formio/grid/src/grid.component.scss +9 -0
- package/projects/angular-formio/grid/src/grid.component.ts +242 -0
- package/projects/angular-formio/grid/src/grid.footer.scss +14 -0
- package/projects/angular-formio/grid/src/grid.module.ts +49 -0
- package/projects/angular-formio/grid/src/grid.service.ts +16 -0
- package/projects/angular-formio/grid/src/index.ts +12 -0
- package/projects/angular-formio/grid/src/public_api.ts +5 -0
- package/projects/angular-formio/grid/src/submission/SubmissionGridBody.component.html +7 -0
- package/projects/angular-formio/grid/src/submission/SubmissionGridBody.component.ts +39 -0
- package/projects/angular-formio/grid/src/submission/SubmissionGridFooter.component.html +18 -0
- package/projects/angular-formio/grid/src/submission/SubmissionGridFooter.component.ts +20 -0
- package/projects/angular-formio/grid/src/submission/SubmissionGridHeader.component.html +11 -0
- package/projects/angular-formio/grid/src/submission/SubmissionGridHeader.component.ts +72 -0
- package/projects/angular-formio/grid/src/submission/index.ts +8 -0
- package/projects/angular-formio/grid/src/types/grid-column.ts +7 -0
- package/projects/angular-formio/grid/src/types/grid-footer-positions.ts +5 -0
- package/projects/angular-formio/grid/src/types/grid-header.ts +14 -0
- package/projects/angular-formio/karma.conf.js +32 -0
- package/projects/angular-formio/manager/ng-package.json +5 -0
- package/projects/angular-formio/manager/src/create/create.component.ts +11 -0
- package/projects/angular-formio/manager/src/delete/delete.component.html +6 -0
- package/projects/angular-formio/manager/src/delete/delete.component.ts +37 -0
- package/projects/angular-formio/manager/src/edit/edit.component.html +19 -0
- package/projects/angular-formio/manager/src/edit/edit.component.ts +110 -0
- package/projects/angular-formio/manager/src/form/form.component.html +32 -0
- package/projects/angular-formio/manager/src/form/form.component.ts +73 -0
- package/projects/angular-formio/manager/src/form-manager.config.ts +31 -0
- package/projects/angular-formio/manager/src/form-manager.module.ts +54 -0
- package/projects/angular-formio/manager/src/form-manager.routes.ts +75 -0
- package/projects/angular-formio/manager/src/form-manager.service.ts +190 -0
- package/projects/angular-formio/manager/src/index/index.component.html +14 -0
- package/projects/angular-formio/manager/src/index/index.component.scss +22 -0
- package/projects/angular-formio/manager/src/index/index.component.ts +100 -0
- package/projects/angular-formio/manager/src/index.ts +16 -0
- package/projects/angular-formio/manager/src/public_api.ts +5 -0
- package/projects/angular-formio/manager/src/submission/delete/delete.component.html +6 -0
- package/projects/angular-formio/manager/src/submission/delete/delete.component.ts +26 -0
- package/projects/angular-formio/manager/src/submission/edit/edit.component.html +7 -0
- package/projects/angular-formio/manager/src/submission/edit/edit.component.ts +18 -0
- package/projects/angular-formio/manager/src/submission/index/index.component.html +1 -0
- package/projects/angular-formio/manager/src/submission/index/index.component.ts +18 -0
- package/projects/angular-formio/manager/src/submission/submission/submission.component.html +8 -0
- package/projects/angular-formio/manager/src/submission/submission/submission.component.ts +24 -0
- package/projects/angular-formio/manager/src/submission/view/view.component.html +7 -0
- package/projects/angular-formio/manager/src/submission/view/view.component.ts +9 -0
- package/projects/angular-formio/manager/src/view/view.component.html +11 -0
- package/projects/angular-formio/manager/src/view/view.component.ts +44 -0
- package/projects/angular-formio/ng-package.json +7 -0
- package/projects/angular-formio/node_modules/tslib/CopyrightNotice.txt +15 -0
- package/projects/angular-formio/node_modules/tslib/LICENSE.txt +12 -0
- package/projects/angular-formio/node_modules/tslib/README.md +164 -0
- package/projects/angular-formio/node_modules/tslib/SECURITY.md +41 -0
- package/projects/angular-formio/node_modules/tslib/modules/index.d.ts +35 -0
- package/projects/angular-formio/node_modules/tslib/modules/index.js +64 -0
- package/projects/angular-formio/node_modules/tslib/modules/package.json +3 -0
- package/projects/angular-formio/node_modules/tslib/package.json +47 -0
- package/projects/angular-formio/node_modules/tslib/tslib.d.ts +430 -0
- package/projects/angular-formio/node_modules/tslib/tslib.es6.html +1 -0
- package/projects/angular-formio/node_modules/tslib/tslib.es6.js +321 -0
- package/projects/angular-formio/node_modules/tslib/tslib.es6.mjs +321 -0
- package/projects/angular-formio/node_modules/tslib/tslib.html +1 -0
- package/projects/angular-formio/node_modules/tslib/tslib.js +370 -0
- package/projects/angular-formio/package.json +39 -0
- package/projects/angular-formio/resource/ng-package.json +5 -0
- package/projects/angular-formio/resource/src/create/create.component.html +13 -0
- package/projects/angular-formio/resource/src/create/create.component.scss +3 -0
- package/projects/angular-formio/resource/src/create/create.component.ts +37 -0
- package/projects/angular-formio/resource/src/delete/delete.component.html +5 -0
- package/projects/angular-formio/resource/src/delete/delete.component.ts +24 -0
- package/projects/angular-formio/resource/src/edit/edit.component.html +7 -0
- package/projects/angular-formio/resource/src/edit/edit.component.ts +35 -0
- package/projects/angular-formio/resource/src/index/index.component.html +10 -0
- package/projects/angular-formio/resource/src/index/index.component.ts +64 -0
- package/projects/angular-formio/resource/src/index.js +24 -0
- package/projects/angular-formio/resource/src/index.ts +11 -0
- package/projects/angular-formio/resource/src/public_api.ts +5 -0
- package/projects/angular-formio/resource/src/resource.component.html +7 -0
- package/projects/angular-formio/resource/src/resource.component.ts +48 -0
- package/projects/angular-formio/resource/src/resource.config.ts +17 -0
- package/projects/angular-formio/resource/src/resource.module.ts +43 -0
- package/projects/angular-formio/resource/src/resource.routes.ts +43 -0
- package/projects/angular-formio/resource/src/resource.service.ts +258 -0
- package/projects/angular-formio/resource/src/resources.service.ts +24 -0
- package/projects/angular-formio/resource/src/view/view.component.html +6 -0
- package/projects/angular-formio/resource/src/view/view.component.ts +19 -0
- package/projects/angular-formio/src/FormioBaseComponent.ts +557 -0
- package/projects/angular-formio/src/components/alerts/formio.alerts.component.html +3 -0
- package/projects/angular-formio/src/components/alerts/formio.alerts.component.ts +19 -0
- package/projects/angular-formio/src/components/alerts/formio.alerts.ts +21 -0
- package/projects/angular-formio/src/components/alerts/parse-html-content.pipe.ts +15 -0
- package/projects/angular-formio/src/components/formbuilder/formbuilder.component.html +1 -0
- package/projects/angular-formio/src/components/formbuilder/formbuilder.component.ts +213 -0
- package/projects/angular-formio/src/components/formio/formio.component.html +8 -0
- package/projects/angular-formio/src/components/formio/formio.component.ts +33 -0
- package/projects/angular-formio/src/components/formioreport/formioreport.component.html +8 -0
- package/projects/angular-formio/src/components/formioreport/formioreport.component.ts +91 -0
- package/projects/angular-formio/src/components/loader/formio.loader.component.html +3 -0
- package/projects/angular-formio/src/components/loader/formio.loader.component.scss +26 -0
- package/projects/angular-formio/src/components/loader/formio.loader.component.ts +10 -0
- package/projects/angular-formio/src/core.ts +25 -0
- package/projects/angular-formio/src/custom-tags.service.ts +9 -0
- package/projects/angular-formio/src/formio-promise.service.ts +36 -0
- package/projects/angular-formio/src/formio.common.ts +91 -0
- package/projects/angular-formio/src/formio.config.ts +26 -0
- package/projects/angular-formio/src/formio.module.ts +38 -0
- package/projects/angular-formio/src/formio.service.ts +57 -0
- package/projects/angular-formio/src/formio.utils.ts +23 -0
- package/projects/angular-formio/src/index.ts +3 -0
- package/projects/angular-formio/src/public-api.ts +5 -0
- package/projects/angular-formio/src/test.ts +28 -0
- package/projects/angular-formio/src/types/alerts-position.ts +6 -0
- package/projects/angular-formio/src/types/formio-metadata.ts +10 -0
- package/projects/angular-formio/src/types/formio-submission.ts +20 -0
- package/projects/angular-formio/tsconfig.lib.json +27 -0
- package/projects/angular-formio/tsconfig.lib.prod.json +8 -0
- package/projects/angular-formio/tsconfig.spec.json +17 -0
- package/projects/angular-formio/tslint.json +17 -0
- package/tsconfig.json +39 -0
- package/tslint.json +140 -0
- package/esm2022/FormioBaseComponent.mjs +0 -584
- package/esm2022/auth/auth.component.mjs +0 -13
- package/esm2022/auth/auth.config.mjs +0 -22
- package/esm2022/auth/auth.module.mjs +0 -47
- package/esm2022/auth/auth.service.mjs +0 -200
- package/esm2022/auth/login/login.component.mjs +0 -21
- package/esm2022/auth/register/register.component.mjs +0 -21
- package/esm2022/auth/resetpass/resetpass.component.mjs +0 -18
- package/esm2022/components/alerts/formio.alerts.component.mjs +0 -29
- package/esm2022/components/alerts/parse-html-content.pipe.mjs +0 -20
- package/esm2022/components/formbuilder/formbuilder.component.mjs +0 -202
- package/esm2022/components/formio/formio.component.mjs +0 -43
- package/esm2022/components/formioreport/formioreport.component.mjs +0 -86
- package/esm2022/components/loader/formio.loader.component.mjs +0 -16
- package/esm2022/core.mjs +0 -18
- package/esm2022/custom-tags.service.mjs +0 -15
- package/esm2022/formio.common.mjs +0 -11
- package/esm2022/formio.config.mjs +0 -30
- package/esm2022/formio.module.mjs +0 -60
- package/esm2022/formio.service.mjs +0 -62
- package/esm2022/formio.utils.mjs +0 -21
- package/esm2022/grid/GridBodyComponent.mjs +0 -90
- package/esm2022/grid/GridFooterComponent.mjs +0 -45
- package/esm2022/grid/GridHeaderComponent.mjs +0 -35
- package/esm2022/grid/form/FormGridBody.component.mjs +0 -64
- package/esm2022/grid/form/FormGridFooter.component.mjs +0 -27
- package/esm2022/grid/form/FormGridHeader.component.mjs +0 -28
- package/esm2022/grid/form/time-since.pipe.mjs +0 -38
- package/esm2022/grid/grid.component.mjs +0 -258
- package/esm2022/grid/grid.module.mjs +0 -80
- package/esm2022/grid/grid.service.mjs +0 -19
- package/esm2022/grid/submission/SubmissionGridBody.component.mjs +0 -44
- package/esm2022/grid/submission/SubmissionGridFooter.component.mjs +0 -24
- package/esm2022/grid/submission/SubmissionGridHeader.component.mjs +0 -64
- package/esm2022/manager/create/create.component.mjs +0 -19
- package/esm2022/manager/delete/delete.component.mjs +0 -43
- package/esm2022/manager/edit/edit.component.mjs +0 -126
- package/esm2022/manager/form/form.component.mjs +0 -81
- package/esm2022/manager/form-manager.config.mjs +0 -19
- package/esm2022/manager/form-manager.module.mjs +0 -84
- package/esm2022/manager/form-manager.service.mjs +0 -186
- package/esm2022/manager/index/index.component.mjs +0 -109
- package/esm2022/manager/submission/delete/delete.component.mjs +0 -33
- package/esm2022/manager/submission/edit/edit.component.mjs +0 -26
- package/esm2022/manager/submission/index/index.component.mjs +0 -26
- package/esm2022/manager/submission/submission/submission.component.mjs +0 -30
- package/esm2022/manager/submission/view/view.component.mjs +0 -18
- package/esm2022/manager/view/view.component.mjs +0 -53
- package/esm2022/resource/create/create.component.mjs +0 -44
- package/esm2022/resource/delete/delete.component.mjs +0 -30
- package/esm2022/resource/edit/edit.component.mjs +0 -43
- package/esm2022/resource/index/index.component.mjs +0 -70
- package/esm2022/resource/resource.component.mjs +0 -47
- package/esm2022/resource/resource.config.mjs +0 -14
- package/esm2022/resource/resource.module.mjs +0 -63
- package/esm2022/resource/resource.service.mjs +0 -230
- package/esm2022/resource/resources.service.mjs +0 -26
- package/esm2022/resource/view/view.component.mjs +0 -26
- package/fesm2022/formio-angular-auth.mjs.map +0 -1
- package/fesm2022/formio-angular-grid.mjs +0 -771
- package/fesm2022/formio-angular-grid.mjs.map +0 -1
- package/fesm2022/formio-angular-manager.mjs +0 -822
- package/fesm2022/formio-angular-manager.mjs.map +0 -1
- package/fesm2022/formio-angular-resource.mjs +0 -571
- package/fesm2022/formio-angular-resource.mjs.map +0 -1
- package/fesm2022/formio-angular.mjs +0 -1183
- package/fesm2022/formio-angular.mjs.map +0 -1
- package/formio.common.d.ts.map +0 -1
- package/formio.config.d.ts.map +0 -1
- package/grid/submission/SubmissionGridHeader.component.d.ts.map +0 -1
- /package/{auth → dist/angular-formio/auth}/auth.component.d.ts +0 -0
- /package/{auth → dist/angular-formio/auth}/auth.component.d.ts.map +0 -0
- /package/{auth → dist/angular-formio/auth}/auth.config.d.ts +0 -0
- /package/{auth → dist/angular-formio/auth}/auth.config.d.ts.map +0 -0
- /package/{auth → dist/angular-formio/auth}/auth.module.d.ts +0 -0
- /package/{auth → dist/angular-formio/auth}/auth.module.d.ts.map +0 -0
- /package/{auth → dist/angular-formio/auth}/auth.routes.d.ts +0 -0
- /package/{auth → dist/angular-formio/auth}/auth.routes.d.ts.map +0 -0
- /package/{auth → dist/angular-formio/auth}/auth.service.d.ts +0 -0
- /package/{auth → dist/angular-formio/auth}/auth.service.d.ts.map +0 -0
- /package/{auth → dist/angular-formio/auth}/formio-angular-auth.d.ts.map +0 -0
- /package/{auth → dist/angular-formio/auth}/index.d.ts +0 -0
- /package/{auth → dist/angular-formio/auth}/index.d.ts.map +0 -0
- /package/{auth → dist/angular-formio/auth}/login/login.component.d.ts +0 -0
- /package/{auth → dist/angular-formio/auth}/login/login.component.d.ts.map +0 -0
- /package/{auth → dist/angular-formio/auth}/register/register.component.d.ts +0 -0
- /package/{auth → dist/angular-formio/auth}/register/register.component.d.ts.map +0 -0
- /package/{auth → dist/angular-formio/auth}/resetpass/resetpass.component.d.ts +0 -0
- /package/{auth → dist/angular-formio/auth}/resetpass/resetpass.component.d.ts.map +0 -0
- /package/{components → dist/angular-formio/components}/alerts/formio.alerts.component.d.ts +0 -0
- /package/{components → dist/angular-formio/components}/alerts/formio.alerts.component.d.ts.map +0 -0
- /package/{components → dist/angular-formio/components}/alerts/formio.alerts.d.ts +0 -0
- /package/{components → dist/angular-formio/components}/alerts/formio.alerts.d.ts.map +0 -0
- /package/{components → dist/angular-formio/components}/alerts/parse-html-content.pipe.d.ts +0 -0
- /package/{components → dist/angular-formio/components}/alerts/parse-html-content.pipe.d.ts.map +0 -0
- /package/{components → dist/angular-formio/components}/formio/formio.component.d.ts +0 -0
- /package/{components → dist/angular-formio/components}/formio/formio.component.d.ts.map +0 -0
- /package/{components → dist/angular-formio/components}/loader/formio.loader.component.d.ts +0 -0
- /package/{components → dist/angular-formio/components}/loader/formio.loader.component.d.ts.map +0 -0
- /package/{custom-tags.service.d.ts → dist/angular-formio/custom-tags.service.d.ts} +0 -0
- /package/{custom-tags.service.d.ts.map → dist/angular-formio/custom-tags.service.d.ts.map} +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/auth/auth.routes.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/auth/formio-angular-auth.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/auth/index.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/components/alerts/formio.alerts.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/formio-angular.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/formio-promise.service.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/grid/form/index.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/grid/formio-angular-grid.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/grid/index.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/grid/submission/index.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/grid/types/grid-column.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/grid/types/grid-footer-positions.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/grid/types/grid-header.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/index.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/manager/form-manager.routes.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/manager/formio-angular-manager.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/manager/index.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/resource/formio-angular-resource.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/resource/index.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/resource/resource.routes.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/types/alerts-position.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/types/formio-metadata.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/types/formio-submission.mjs +0 -0
- /package/{formio-angular.d.ts.map → dist/angular-formio/formio-angular.d.ts.map} +0 -0
- /package/{formio-promise.service.d.ts → dist/angular-formio/formio-promise.service.d.ts} +0 -0
- /package/{formio-promise.service.d.ts.map → dist/angular-formio/formio-promise.service.d.ts.map} +0 -0
- /package/{formio.module.d.ts → dist/angular-formio/formio.module.d.ts} +0 -0
- /package/{formio.module.d.ts.map → dist/angular-formio/formio.module.d.ts.map} +0 -0
- /package/{formio.service.d.ts → dist/angular-formio/formio.service.d.ts} +0 -0
- /package/{formio.service.d.ts.map → dist/angular-formio/formio.service.d.ts.map} +0 -0
- /package/{formio.utils.d.ts → dist/angular-formio/formio.utils.d.ts} +0 -0
- /package/{formio.utils.d.ts.map → dist/angular-formio/formio.utils.d.ts.map} +0 -0
- /package/{grid → dist/angular-formio/grid}/GridBodyComponent.d.ts +0 -0
- /package/{grid → dist/angular-formio/grid}/GridBodyComponent.d.ts.map +0 -0
- /package/{grid → dist/angular-formio/grid}/GridFooterComponent.d.ts +0 -0
- /package/{grid → dist/angular-formio/grid}/GridFooterComponent.d.ts.map +0 -0
- /package/{grid → dist/angular-formio/grid}/GridHeaderComponent.d.ts +0 -0
- /package/{grid → dist/angular-formio/grid}/GridHeaderComponent.d.ts.map +0 -0
- /package/{grid → dist/angular-formio/grid}/form/FormGridBody.component.d.ts +0 -0
- /package/{grid → dist/angular-formio/grid}/form/FormGridBody.component.d.ts.map +0 -0
- /package/{grid → dist/angular-formio/grid}/form/FormGridFooter.component.d.ts +0 -0
- /package/{grid → dist/angular-formio/grid}/form/FormGridFooter.component.d.ts.map +0 -0
- /package/{grid → dist/angular-formio/grid}/form/FormGridHeader.component.d.ts +0 -0
- /package/{grid → dist/angular-formio/grid}/form/FormGridHeader.component.d.ts.map +0 -0
- /package/{grid → dist/angular-formio/grid}/form/index.d.ts +0 -0
- /package/{grid → dist/angular-formio/grid}/form/index.d.ts.map +0 -0
- /package/{grid → dist/angular-formio/grid}/form/time-since.pipe.d.ts +0 -0
- /package/{grid → dist/angular-formio/grid}/form/time-since.pipe.d.ts.map +0 -0
- /package/{grid → dist/angular-formio/grid}/formio-angular-grid.d.ts.map +0 -0
- /package/{grid → dist/angular-formio/grid}/grid.component.d.ts +0 -0
- /package/{grid → dist/angular-formio/grid}/grid.component.d.ts.map +0 -0
- /package/{grid → dist/angular-formio/grid}/grid.module.d.ts +0 -0
- /package/{grid → dist/angular-formio/grid}/grid.module.d.ts.map +0 -0
- /package/{grid → dist/angular-formio/grid}/grid.service.d.ts +0 -0
- /package/{grid → dist/angular-formio/grid}/grid.service.d.ts.map +0 -0
- /package/{grid → dist/angular-formio/grid}/index.d.ts +0 -0
- /package/{grid → dist/angular-formio/grid}/index.d.ts.map +0 -0
- /package/{grid → dist/angular-formio/grid}/submission/SubmissionGridBody.component.d.ts +0 -0
- /package/{grid → dist/angular-formio/grid}/submission/SubmissionGridBody.component.d.ts.map +0 -0
- /package/{grid → dist/angular-formio/grid}/submission/SubmissionGridFooter.component.d.ts +0 -0
- /package/{grid → dist/angular-formio/grid}/submission/SubmissionGridFooter.component.d.ts.map +0 -0
- /package/{grid → dist/angular-formio/grid}/submission/index.d.ts +0 -0
- /package/{grid → dist/angular-formio/grid}/submission/index.d.ts.map +0 -0
- /package/{grid → dist/angular-formio/grid}/types/grid-column.d.ts +0 -0
- /package/{grid → dist/angular-formio/grid}/types/grid-column.d.ts.map +0 -0
- /package/{grid → dist/angular-formio/grid}/types/grid-footer-positions.d.ts +0 -0
- /package/{grid → dist/angular-formio/grid}/types/grid-footer-positions.d.ts.map +0 -0
- /package/{grid → dist/angular-formio/grid}/types/grid-header.d.ts +0 -0
- /package/{grid → dist/angular-formio/grid}/types/grid-header.d.ts.map +0 -0
- /package/{index.d.ts → dist/angular-formio/index.d.ts} +0 -0
- /package/{index.d.ts.map → dist/angular-formio/index.d.ts.map} +0 -0
- /package/{manager → dist/angular-formio/manager}/create/create.component.d.ts +0 -0
- /package/{manager → dist/angular-formio/manager}/create/create.component.d.ts.map +0 -0
- /package/{manager → dist/angular-formio/manager}/delete/delete.component.d.ts +0 -0
- /package/{manager → dist/angular-formio/manager}/delete/delete.component.d.ts.map +0 -0
- /package/{manager → dist/angular-formio/manager}/edit/edit.component.d.ts +0 -0
- /package/{manager → dist/angular-formio/manager}/form/form.component.d.ts +0 -0
- /package/{manager → dist/angular-formio/manager}/form/form.component.d.ts.map +0 -0
- /package/{manager → dist/angular-formio/manager}/form-manager.config.d.ts +0 -0
- /package/{manager → dist/angular-formio/manager}/form-manager.config.d.ts.map +0 -0
- /package/{manager → dist/angular-formio/manager}/form-manager.module.d.ts +0 -0
- /package/{manager → dist/angular-formio/manager}/form-manager.module.d.ts.map +0 -0
- /package/{manager → dist/angular-formio/manager}/form-manager.routes.d.ts +0 -0
- /package/{manager → dist/angular-formio/manager}/form-manager.routes.d.ts.map +0 -0
- /package/{manager → dist/angular-formio/manager}/formio-angular-manager.d.ts.map +0 -0
- /package/{manager → dist/angular-formio/manager}/index/index.component.d.ts +0 -0
- /package/{manager → dist/angular-formio/manager}/index/index.component.d.ts.map +0 -0
- /package/{manager → dist/angular-formio/manager}/index.d.ts +0 -0
- /package/{manager → dist/angular-formio/manager}/index.d.ts.map +0 -0
- /package/{manager → dist/angular-formio/manager}/submission/delete/delete.component.d.ts +0 -0
- /package/{manager → dist/angular-formio/manager}/submission/delete/delete.component.d.ts.map +0 -0
- /package/{manager → dist/angular-formio/manager}/submission/edit/edit.component.d.ts +0 -0
- /package/{manager → dist/angular-formio/manager}/submission/edit/edit.component.d.ts.map +0 -0
- /package/{manager → dist/angular-formio/manager}/submission/index/index.component.d.ts +0 -0
- /package/{manager → dist/angular-formio/manager}/submission/index/index.component.d.ts.map +0 -0
- /package/{manager → dist/angular-formio/manager}/submission/submission/submission.component.d.ts +0 -0
- /package/{manager → dist/angular-formio/manager}/submission/submission/submission.component.d.ts.map +0 -0
- /package/{manager → dist/angular-formio/manager}/submission/view/view.component.d.ts +0 -0
- /package/{manager → dist/angular-formio/manager}/submission/view/view.component.d.ts.map +0 -0
- /package/{manager → dist/angular-formio/manager}/view/view.component.d.ts +0 -0
- /package/{manager → dist/angular-formio/manager}/view/view.component.d.ts.map +0 -0
- /package/{resource → dist/angular-formio/resource}/create/create.component.d.ts +0 -0
- /package/{resource → dist/angular-formio/resource}/create/create.component.d.ts.map +0 -0
- /package/{resource → dist/angular-formio/resource}/delete/delete.component.d.ts +0 -0
- /package/{resource → dist/angular-formio/resource}/delete/delete.component.d.ts.map +0 -0
- /package/{resource → dist/angular-formio/resource}/edit/edit.component.d.ts +0 -0
- /package/{resource → dist/angular-formio/resource}/edit/edit.component.d.ts.map +0 -0
- /package/{resource → dist/angular-formio/resource}/formio-angular-resource.d.ts.map +0 -0
- /package/{resource → dist/angular-formio/resource}/index/index.component.d.ts +0 -0
- /package/{resource → dist/angular-formio/resource}/index/index.component.d.ts.map +0 -0
- /package/{resource → dist/angular-formio/resource}/index.d.ts +0 -0
- /package/{resource → dist/angular-formio/resource}/index.d.ts.map +0 -0
- /package/{resource → dist/angular-formio/resource}/resource.component.d.ts +0 -0
- /package/{resource → dist/angular-formio/resource}/resource.component.d.ts.map +0 -0
- /package/{resource → dist/angular-formio/resource}/resource.config.d.ts +0 -0
- /package/{resource → dist/angular-formio/resource}/resource.config.d.ts.map +0 -0
- /package/{resource → dist/angular-formio/resource}/resource.module.d.ts +0 -0
- /package/{resource → dist/angular-formio/resource}/resource.module.d.ts.map +0 -0
- /package/{resource → dist/angular-formio/resource}/resource.routes.d.ts +0 -0
- /package/{resource → dist/angular-formio/resource}/resource.routes.d.ts.map +0 -0
- /package/{resource → dist/angular-formio/resource}/resource.service.d.ts +0 -0
- /package/{resource → dist/angular-formio/resource}/resources.service.d.ts +0 -0
- /package/{resource → dist/angular-formio/resource}/resources.service.d.ts.map +0 -0
- /package/{resource → dist/angular-formio/resource}/view/view.component.d.ts +0 -0
- /package/{resource → dist/angular-formio/resource}/view/view.component.d.ts.map +0 -0
- /package/{types → dist/angular-formio/types}/alerts-position.d.ts +0 -0
- /package/{types → dist/angular-formio/types}/alerts-position.d.ts.map +0 -0
- /package/{types → dist/angular-formio/types}/formio-metadata.d.ts +0 -0
- /package/{types → dist/angular-formio/types}/formio-metadata.d.ts.map +0 -0
- /package/{types → dist/angular-formio/types}/formio-submission.d.ts +0 -0
- /package/{types → dist/angular-formio/types}/formio-submission.d.ts.map +0 -0
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../form-manager.service";
|
|
4
|
+
import * as i2 from "@angular/router";
|
|
5
|
+
import * as i3 from "@formio/angular";
|
|
6
|
+
import * as i4 from "../form-manager.config";
|
|
7
|
+
import * as i5 from "ngx-bootstrap/modal";
|
|
8
|
+
import * as i6 from "@angular/common";
|
|
9
|
+
import * as i7 from "@angular/forms";
|
|
10
|
+
const _c0 = a0 => ({ "active": a0 });
|
|
11
|
+
function FormManagerFormComponent_button_0_Template(rf, ctx) { if (rf & 1) {
|
|
12
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
13
|
+
i0.ɵɵelementStart(0, "button", 12);
|
|
14
|
+
i0.ɵɵlistener("click", function FormManagerFormComponent_button_0_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); const content_r3 = i0.ɵɵreference(17); return i0.ɵɵresetView(ctx_r1.openEmbed(content_r3)); });
|
|
15
|
+
i0.ɵɵelement(1, "em", 13);
|
|
16
|
+
i0.ɵɵtext(2, " Share");
|
|
17
|
+
i0.ɵɵelementEnd();
|
|
18
|
+
} }
|
|
19
|
+
function FormManagerFormComponent_li_13_Template(rf, ctx) { if (rf & 1) {
|
|
20
|
+
i0.ɵɵelementStart(0, "li", 6)(1, "a", 14);
|
|
21
|
+
i0.ɵɵelement(2, "em", 15);
|
|
22
|
+
i0.ɵɵtext(3, " Edit Form");
|
|
23
|
+
i0.ɵɵelementEnd()();
|
|
24
|
+
} }
|
|
25
|
+
function FormManagerFormComponent_li_14_Template(rf, ctx) { if (rf & 1) {
|
|
26
|
+
i0.ɵɵelementStart(0, "li", 6)(1, "a", 16);
|
|
27
|
+
i0.ɵɵelement(2, "span", 17);
|
|
28
|
+
i0.ɵɵelementEnd()();
|
|
29
|
+
} }
|
|
30
|
+
function FormManagerFormComponent_ng_template_16_pre_16_Template(rf, ctx) { if (rf & 1) {
|
|
31
|
+
i0.ɵɵelementStart(0, "pre");
|
|
32
|
+
i0.ɵɵelement(1, "textarea", 31);
|
|
33
|
+
i0.ɵɵelementEnd();
|
|
34
|
+
} if (rf & 2) {
|
|
35
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
36
|
+
i0.ɵɵadvance();
|
|
37
|
+
i0.ɵɵproperty("ngModel", ctx_r1.embedCode);
|
|
38
|
+
} }
|
|
39
|
+
function FormManagerFormComponent_ng_template_16_input_17_Template(rf, ctx) { if (rf & 1) {
|
|
40
|
+
i0.ɵɵelement(0, "input", 32);
|
|
41
|
+
} if (rf & 2) {
|
|
42
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
43
|
+
i0.ɵɵproperty("ngModel", ctx_r1.shareUrl);
|
|
44
|
+
} }
|
|
45
|
+
function FormManagerFormComponent_ng_template_16_Template(rf, ctx) { if (rf & 1) {
|
|
46
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
47
|
+
i0.ɵɵelementStart(0, "div", 18)(1, "h4", 19);
|
|
48
|
+
i0.ɵɵtext(2, "Share or Embed this form");
|
|
49
|
+
i0.ɵɵelementEnd();
|
|
50
|
+
i0.ɵɵelementStart(3, "button", 20);
|
|
51
|
+
i0.ɵɵlistener("click", function FormManagerFormComponent_ng_template_16_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.modalRef.hide()); });
|
|
52
|
+
i0.ɵɵelementStart(4, "span", 21);
|
|
53
|
+
i0.ɵɵtext(5, "\u00D7");
|
|
54
|
+
i0.ɵɵelementEnd()()();
|
|
55
|
+
i0.ɵɵelementStart(6, "div", 22)(7, "ul", 23)(8, "li", 3)(9, "a", 24);
|
|
56
|
+
i0.ɵɵlistener("click", function FormManagerFormComponent_ng_template_16_Template_a_click_9_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.choices("isUrl")); });
|
|
57
|
+
i0.ɵɵelement(10, "em", 25);
|
|
58
|
+
i0.ɵɵtext(11, " URL");
|
|
59
|
+
i0.ɵɵelementEnd()();
|
|
60
|
+
i0.ɵɵelementStart(12, "li", 3)(13, "a", 24);
|
|
61
|
+
i0.ɵɵlistener("click", function FormManagerFormComponent_ng_template_16_Template_a_click_13_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.choices("isEmbed")); });
|
|
62
|
+
i0.ɵɵelement(14, "em", 26);
|
|
63
|
+
i0.ɵɵtext(15, " Embed");
|
|
64
|
+
i0.ɵɵelementEnd()()();
|
|
65
|
+
i0.ɵɵtemplate(16, FormManagerFormComponent_ng_template_16_pre_16_Template, 2, 1, "pre", 27)(17, FormManagerFormComponent_ng_template_16_input_17_Template, 1, 1, "input", 28);
|
|
66
|
+
i0.ɵɵelementEnd();
|
|
67
|
+
i0.ɵɵelementStart(18, "div", 29)(19, "button", 30);
|
|
68
|
+
i0.ɵɵlistener("click", function FormManagerFormComponent_ng_template_16_Template_button_click_19_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.modalRef.hide()); });
|
|
69
|
+
i0.ɵɵtext(20, "Close");
|
|
70
|
+
i0.ɵɵelementEnd()();
|
|
71
|
+
} if (rf & 2) {
|
|
72
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
73
|
+
i0.ɵɵadvance(9);
|
|
74
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c0, ctx_r1.choice === "isUrl"));
|
|
75
|
+
i0.ɵɵadvance(4);
|
|
76
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(6, _c0, ctx_r1.choice === "isEmbed"));
|
|
77
|
+
i0.ɵɵadvance(3);
|
|
78
|
+
i0.ɵɵproperty("ngIf", ctx_r1.choice === "isEmbed");
|
|
79
|
+
i0.ɵɵadvance();
|
|
80
|
+
i0.ɵɵproperty("ngIf", ctx_r1.choice === "isUrl");
|
|
81
|
+
} }
|
|
82
|
+
export class FormManagerFormComponent {
|
|
83
|
+
service;
|
|
84
|
+
route;
|
|
85
|
+
appConfig;
|
|
86
|
+
options;
|
|
87
|
+
modalService;
|
|
88
|
+
choice = 'isUrl';
|
|
89
|
+
embedCode;
|
|
90
|
+
shareUrl;
|
|
91
|
+
projectId;
|
|
92
|
+
pathName;
|
|
93
|
+
goTo = '';
|
|
94
|
+
modalRef;
|
|
95
|
+
constructor(service, route, appConfig, options, modalService) {
|
|
96
|
+
this.service = service;
|
|
97
|
+
this.route = route;
|
|
98
|
+
this.appConfig = appConfig;
|
|
99
|
+
this.options = options;
|
|
100
|
+
this.modalService = modalService;
|
|
101
|
+
}
|
|
102
|
+
ngOnInit() {
|
|
103
|
+
this.service.reset(this.route);
|
|
104
|
+
this.service.loadForm().then(form => {
|
|
105
|
+
this.service.formSrc = this.appConfig.appUrl + '/' + form.path;
|
|
106
|
+
this.projectId = form.project;
|
|
107
|
+
this.pathName = form.path;
|
|
108
|
+
this.getShareUrl();
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
getShareUrl() {
|
|
112
|
+
const src = this.appConfig.appUrl + '/' + this.pathName;
|
|
113
|
+
this.shareUrl = `${this.options.viewer}/#/?src=${encodeURIComponent(src)}`;
|
|
114
|
+
return this.shareUrl;
|
|
115
|
+
}
|
|
116
|
+
openEmbed(content) {
|
|
117
|
+
let goto = '';
|
|
118
|
+
if (this.goTo) {
|
|
119
|
+
goto += `if (d && d.formSubmission && d.formSubmission._id) { window.location.href = "${this.goTo}";}`;
|
|
120
|
+
}
|
|
121
|
+
let embedCode = '<script type="text/javascript">';
|
|
122
|
+
embedCode += '(function a(d, w, u) {';
|
|
123
|
+
embedCode += 'var h = d.getElementsByTagName("head")[0];';
|
|
124
|
+
embedCode += 'var s = d.createElement("script");';
|
|
125
|
+
embedCode += 's.type = "text/javascript";';
|
|
126
|
+
embedCode += 's.src = "' + this.options.viewer + '/assets/lib/seamless/seamless.parent.min.js";';
|
|
127
|
+
embedCode += 's.onload = function b() {';
|
|
128
|
+
embedCode += 'var f = d.getElementById("formio-form-' + this.service.formio.formId + '");';
|
|
129
|
+
embedCode += 'if (!f || (typeof w.seamless === u)) {';
|
|
130
|
+
embedCode += 'return setTimeout(b, 100);';
|
|
131
|
+
embedCode += '}';
|
|
132
|
+
embedCode += 'w.seamless(f, {fallback:false}).receive(function(d, e) {' + goto + '});';
|
|
133
|
+
embedCode += '};';
|
|
134
|
+
embedCode += 'h.appendChild(s);';
|
|
135
|
+
embedCode += '})(document, window);';
|
|
136
|
+
embedCode += '</script>';
|
|
137
|
+
embedCode += '<iframe id="formio-form-' + this.service.formio.formId + '" ';
|
|
138
|
+
embedCode += 'style="width:100%;border:none;" height="800px" src="' + this.shareUrl + '&iframe=1"></iframe>';
|
|
139
|
+
this.embedCode = embedCode;
|
|
140
|
+
this.modalRef = this.modalService.show(content, { class: 'modal-lg' });
|
|
141
|
+
}
|
|
142
|
+
choices(string) {
|
|
143
|
+
this.choice = string;
|
|
144
|
+
}
|
|
145
|
+
static ɵfac = function FormManagerFormComponent_Factory(t) { return new (t || FormManagerFormComponent)(i0.ɵɵdirectiveInject(i1.FormManagerService), i0.ɵɵdirectiveInject(i2.ActivatedRoute), i0.ɵɵdirectiveInject(i3.FormioAppConfig), i0.ɵɵdirectiveInject(i4.FormManagerConfig), i0.ɵɵdirectiveInject(i5.BsModalService)); };
|
|
146
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FormManagerFormComponent, selectors: [["ng-component"]], decls: 18, vars: 3, consts: [["content", ""], ["class", "float-end btn btn-outline-primary", 3, "click", 4, "ngIf"], [1, "nav", "nav-tabs", "mb-2"], [1, "nav-item"], ["routerLink", "../", 1, "nav-link"], [1, "fa", "fa-chevron-left", "bi", "bi-chevron-left"], ["routerLinkActive", "active", 1, "nav-item"], ["routerLink", "view", "routerLinkActive", "active", 1, "nav-link"], [1, "fa", "fa-pencil", "bi", "bi-pencil"], ["routerLink", "submission", "routerLinkActive", "active", 1, "nav-link"], [1, "fa", "fa-list-alt", "bi", "bi-table"], ["class", "nav-item", "routerLinkActive", "active", 4, "ngIf"], [1, "float-end", "btn", "btn-outline-primary", 3, "click"], [1, "fa", "fa-share-alt", "bi", "bi-share"], ["routerLink", "edit", "routerLinkActive", "active", 1, "nav-link"], [1, "fa", "fa-edit", "bi", "bi-pencil-square"], ["routerLink", "delete", "routerLinkActive", "active", 1, "nav-link"], [1, "fa", "fa-trash", "bi", "bi-trash"], [1, "modal-header"], [1, "modal-title"], ["type", "button", "aria-label", "Close", 1, "close", 3, "click"], ["aria-hidden", "true"], [1, "modal-body"], [1, "nav", "nav-tabs", "mr-auto", "mb-2"], [1, "nav-link", 3, "click", "ngClass"], [1, "fa", "fa-link", "bi", "bi-link"], [1, "fa", "fa-code", "bi", "bi-code-slash"], [4, "ngIf"], ["type", "text", "onclick", "this.focus();this.select()", "readonly", "readonly", "class", "form-control", "placeholder", "https://examples.form.io/example", 3, "ngModel", 4, "ngIf"], [1, "modal-footer"], ["type", "button", 1, "btn", "btn-light", 3, "click"], ["onclick", "this.focus();this.select()", "readonly", "readonly", "rows", "8", 2, "width", "100%", 3, "ngModel"], ["type", "text", "onclick", "this.focus();this.select()", "readonly", "readonly", "placeholder", "https://examples.form.io/example", 1, "form-control", 3, "ngModel"]], template: function FormManagerFormComponent_Template(rf, ctx) { if (rf & 1) {
|
|
147
|
+
i0.ɵɵtemplate(0, FormManagerFormComponent_button_0_Template, 3, 0, "button", 1);
|
|
148
|
+
i0.ɵɵelementStart(1, "ul", 2)(2, "li", 3)(3, "a", 4);
|
|
149
|
+
i0.ɵɵelement(4, "em", 5);
|
|
150
|
+
i0.ɵɵelementEnd()();
|
|
151
|
+
i0.ɵɵelementStart(5, "li", 6)(6, "a", 7);
|
|
152
|
+
i0.ɵɵelement(7, "em", 8);
|
|
153
|
+
i0.ɵɵtext(8, " Enter Data");
|
|
154
|
+
i0.ɵɵelementEnd()();
|
|
155
|
+
i0.ɵɵelementStart(9, "li", 6)(10, "a", 9);
|
|
156
|
+
i0.ɵɵelement(11, "em", 10);
|
|
157
|
+
i0.ɵɵtext(12, " View Data");
|
|
158
|
+
i0.ɵɵelementEnd()();
|
|
159
|
+
i0.ɵɵtemplate(13, FormManagerFormComponent_li_13_Template, 4, 0, "li", 11)(14, FormManagerFormComponent_li_14_Template, 3, 0, "li", 11);
|
|
160
|
+
i0.ɵɵelementEnd();
|
|
161
|
+
i0.ɵɵelement(15, "router-outlet");
|
|
162
|
+
i0.ɵɵtemplate(16, FormManagerFormComponent_ng_template_16_Template, 21, 8, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
|
|
163
|
+
} if (rf & 2) {
|
|
164
|
+
i0.ɵɵproperty("ngIf", ctx.options.viewer);
|
|
165
|
+
i0.ɵɵadvance(13);
|
|
166
|
+
i0.ɵɵproperty("ngIf", ctx.service.actionAllowed("formEdit"));
|
|
167
|
+
i0.ɵɵadvance();
|
|
168
|
+
i0.ɵɵproperty("ngIf", ctx.service.actionAllowed("formDelete"));
|
|
169
|
+
} }, dependencies: [i6.NgClass, i6.NgIf, i2.RouterOutlet, i2.RouterLink, i2.RouterLinkActive, i7.DefaultValueAccessor, i7.NgControlStatus, i7.NgModel], encapsulation: 2 });
|
|
170
|
+
}
|
|
171
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormManagerFormComponent, [{
|
|
172
|
+
type: Component,
|
|
173
|
+
args: [{ template: "<button *ngIf=\"options.viewer\" class=\"float-end btn btn-outline-primary\" (click)=\"openEmbed(content)\"><em class=\"fa fa-share-alt bi bi-share\"></em> Share</button>\n<ul class=\"nav nav-tabs mb-2\">\n <li class=\"nav-item\"><a class=\"nav-link\" routerLink=\"../\"><em class=\"fa fa-chevron-left bi bi-chevron-left\"></em></a></li>\n <li class=\"nav-item\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"view\" routerLinkActive=\"active\"><em class=\"fa fa-pencil bi bi-pencil\"></em> Enter Data</a></li>\n <li class=\"nav-item\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"submission\" routerLinkActive=\"active\"><em class=\"fa fa-list-alt bi bi-table\"></em> View Data</a></li>\n <li *ngIf=\"service.actionAllowed('formEdit')\" class=\"nav-item\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"edit\" routerLinkActive=\"active\"><em class=\"fa fa-edit bi bi-pencil-square\"></em> Edit Form</a></li>\n <li *ngIf=\"service.actionAllowed('formDelete')\" class=\"nav-item\" routerLinkActive=\"active\"><a class=\"nav-link\" routerLink=\"delete\" routerLinkActive=\"active\"><span class=\"fa fa-trash bi bi-trash\"></span></a></li>\n</ul>\n<router-outlet></router-outlet>\n<ng-template #content>\n <div class=\"modal-header\">\n <h4 class=\"modal-title\">Share or Embed this form</h4>\n <button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"modalRef.hide()\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <ul class=\"nav nav-tabs mr-auto mb-2\">\n <li class=\"nav-item\">\n <a class=\"nav-link\" [ngClass]=\"{'active': choice === 'isUrl'}\" (click)=\"choices('isUrl')\"><em class=\"fa fa-link bi bi-link\"></em> URL</a>\n </li>\n <li class=\"nav-item\">\n <a class=\"nav-link\" [ngClass]=\"{'active': choice === 'isEmbed'}\" (click)=\"choices('isEmbed')\"><em class=\"fa fa-code bi bi-code-slash\"></em> Embed</a>\n </li>\n </ul>\n <pre *ngIf=\"choice === 'isEmbed'\"><textarea onclick=\"this.focus();this.select()\" readonly=\"readonly\" style=\"width:100%;\" rows=\"8\" [ngModel]=\"embedCode\"></textarea></pre>\n <input *ngIf=\"choice === 'isUrl'\" type=\"text\" onclick=\"this.focus();this.select()\" readonly=\"readonly\" class=\"form-control\" [ngModel]=\"shareUrl\" placeholder=\"https://examples.form.io/example\">\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-light\" (click)=\"modalRef.hide()\">Close</button>\n </div>\n</ng-template>\n" }]
|
|
174
|
+
}], () => [{ type: i1.FormManagerService }, { type: i2.ActivatedRoute }, { type: i3.FormioAppConfig }, { type: i4.FormManagerConfig }, { type: i5.BsModalService }], null); })();
|
|
175
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FormManagerFormComponent, { className: "FormManagerFormComponent", filePath: "form/form.component.ts", lineNumber: 11 }); })();
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWZvcm1pby9tYW5hZ2VyL3NyYy9mb3JtL2Zvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1mb3JtaW8vbWFuYWdlci9zcmMvZm9ybS9mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXVCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7SUNBL0Qsa0NBQXNHO0lBQTdCLDhOQUFTLDRCQUFrQixLQUFDO0lBQUMseUJBQTZDO0lBQUMsc0JBQUs7SUFBQSxpQkFBUzs7O0lBS3ZFLEFBQXpGLDZCQUF5RixZQUFnRTtJQUFBLHlCQUFnRDtJQUFDLDBCQUFTO0lBQUksQUFBSixpQkFBSSxFQUFLOzs7SUFDakksQUFBM0YsNkJBQTJGLFlBQWtFO0lBQUEsMkJBQTZDO0lBQUksQUFBSixpQkFBSSxFQUFLOzs7SUFtQmpOLDJCQUFtQztJQUFBLCtCQUFpSTtJQUFBLGlCQUFNOzs7SUFBdkMsY0FBcUI7SUFBckIsMENBQXFCOzs7SUFDeEosNEJBQWdNOzs7SUFBcEUseUNBQW9COzs7O0lBZmhKLEFBREYsK0JBQTBCLGFBQ0E7SUFBQSx3Q0FBd0I7SUFBQSxpQkFBSztJQUNyRCxrQ0FBaUY7SUFBMUIsNkxBQVMsc0JBQWUsS0FBQztJQUM5RSxnQ0FBeUI7SUFBQSxzQkFBTztJQUVwQyxBQURFLEFBRGtDLGlCQUFPLEVBQ2hDLEVBQ0w7SUFJQSxBQURGLEFBREYsQUFERiwrQkFBd0IsYUFDZ0IsWUFDZixZQUN1RTtJQUEzQix3TEFBUyxlQUFRLE9BQU8sQ0FBQyxLQUFDO0lBQUMsMEJBQXVDO0lBQUMscUJBQUc7SUFDdkksQUFEdUksaUJBQUksRUFDdEk7SUFFSCxBQURGLDhCQUFxQixhQUMyRTtJQUE3Qix5TEFBUyxlQUFR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Y0FBeUM7WUFBekMsOERBQXlDOzs7aUZESW5DLHdCQUF3QjtjQUhwQyxTQUFTOzs7a0ZBR0csd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi9mb3JtLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtTWFuYWdlckNvbmZpZyB9IGZyb20gJy4uL2Zvcm0tbWFuYWdlci5jb25maWcnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRm9ybWlvQXBwQ29uZmlnIH0gZnJvbSAnQGZvcm1pby9hbmd1bGFyJztcbmltcG9ydCB7IEJzTW9kYWxTZXJ2aWNlLCBCc01vZGFsUmVmIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRm9ybU1hbmFnZXJGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY2hvaWNlOiBhbnkgPSAnaXNVcmwnO1xuICBlbWJlZENvZGU6IGFueTtcbiAgc2hhcmVVcmw6IGFueTtcbiAgcHJvamVjdElkOiBhbnk7XG4gIHBhdGhOYW1lOiBhbnk7XG4gIGdvVG86IGFueSA9ICcnO1xuICBtb2RhbFJlZjogQnNNb2RhbFJlZjtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHNlcnZpY2U6IEZvcm1NYW5hZ2VyU2VydmljZSxcbiAgICBwdWJsaWMgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHB1YmxpYyBhcHBDb25maWc6IEZvcm1pb0FwcENvbmZpZyxcbiAgICBwdWJsaWMgb3B0aW9uczogRm9ybU1hbmFnZXJDb25maWcsXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXJ2aWNlLnJlc2V0KHRoaXMucm91dGUpO1xuICAgIHRoaXMuc2VydmljZS5sb2FkRm9ybSgpLnRoZW4oZm9ybSA9PiB7XG4gICAgICB0aGlzLnNlcnZpY2UuZm9ybVNyYyA9IHRoaXMuYXBwQ29uZmlnLmFwcFVybCArICcvJyArIGZvcm0ucGF0aDtcbiAgICAgIHRoaXMucHJvamVjdElkID0gZm9ybS5wcm9qZWN0O1xuICAgICAgdGhpcy5wYXRoTmFtZSA9IGZvcm0ucGF0aDtcbiAgICAgIHRoaXMuZ2V0U2hhcmVVcmwoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTaGFyZVVybCgpIHtcbiAgICBjb25zdCBzcmMgPSB0aGlzLmFwcENvbmZpZy5hcHBVcmwgKyAnLycgKyB0aGlzLnBhdGhOYW1lO1xuICAgIHRoaXMuc2hhcmVVcmwgPSBgJHt0aGlzLm9wdGlvbnMudmlld2VyfS8jLz9zcmM9JHtlbmNvZGVVUklDb21wb25lbnQoc3JjKX1gO1xuICAgIHJldHVybiB0aGlzLnNoYXJlVXJsO1xuICB9XG5cbiAgb3BlbkVtYmVkKGNvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICBsZXQgZ290byA9ICcnO1xuICAgIGlmICh0aGlzLmdvVG8pIHtcbiAgICAgIGdvdG8gKz0gYGlmIChkICYmIGQuZm9ybVN1Ym1pc3Npb24gJiYgZC5mb3JtU3VibWlzc2lvbi5faWQpIHsgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBcIiR7dGhpcy5nb1RvfVwiO31gO1xuICAgIH1cbiAgICBsZXQgZW1iZWRDb2RlID0gJzxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPic7XG4gICAgZW1iZWRDb2RlICs9ICcoZnVuY3Rpb24gYShkLCB3LCB1KSB7JztcbiAgICBlbWJlZENvZGUgKz0gICAgJ3ZhciBoID0gZC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImhlYWRcIilbMF07JztcbiAgICBlbWJlZENvZGUgKz0gICAgJ3ZhciBzID0gZC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpOyc7XG4gICAgZW1iZWRDb2RlICs9ICAgICdzLnR5cGUgPSBcInRleHQvamF2YXNjcmlwdFwiOyc7XG4gICAgZW1iZWRDb2RlICs9ICAgICdzLnNyYyA9IFwiJyArIHRoaXMub3B0aW9ucy52aWV3ZXIgKyAnL2Fzc2V0cy9saWIvc2VhbWxlc3Mvc2VhbWxlc3MucGFyZW50Lm1pbi5qc1wiOyc7XG4gICAgZW1iZWRDb2RlICs9ICAgICdzLm9ubG9hZCA9IGZ1bmN0aW9uIGIoKSB7JztcbiAgICBlbWJlZENvZGUgKz0gICAgICAgJ3ZhciBmID0gZC5nZXRFbGVtZW50QnlJZChcImZvcm1pby1mb3JtLScgKyB0aGlzLnNlcnZpY2UuZm9ybWlvLmZvcm1JZCArICdcIik7JztcbiAgICBlbWJlZENvZGUgKz0gICAgICAgJ2lmICghZiB8fCAodHlwZW9mIHcuc2VhbWxlc3MgPT09IHUpKSB7JztcbiAgICBlbWJlZENvZGUgKz0gICAgICAgICAgJ3JldHVybiBzZXRUaW1lb3V0KGIsIDEwMCk7JztcbiAgICBlbWJlZENvZGUgKz0gICAgICAgJ30nO1xuICAgIGVtYmVkQ29kZSArPSAgICAgICAndy5zZWFtbGVzcyhmLCB7ZmFsbGJhY2s6ZmFsc2V9KS5yZWNlaXZlKGZ1bmN0aW9uKGQsIGUpIHsnICsgZ290byArICd9KTsnO1xuICAgIGVtYmVkQ29kZSArPSAgICAnfTsnO1xuICAgIGVtYmVkQ29kZSArPSAgICAnaC5hcHBlbmRDaGlsZChzKTsnO1xuICAgIGVtYmVkQ29kZSArPSAnfSkoZG9jdW1lbnQsIHdpbmRvdyk7JztcbiAgICBlbWJlZENvZGUgKz0gJzwvc2NyaXB0Pic7XG4gICAgZW1iZWRDb2RlICs9ICc8aWZyYW1lIGlkPVwiZm9ybWlvLWZvcm0tJyArIHRoaXMuc2VydmljZS5mb3JtaW8uZm9ybUlkICsgJ1wiICc7XG4gICAgZW1iZWRDb2RlICs9ICAgICAnc3R5bGU9XCJ3aWR0aDoxMDAlO2JvcmRlcjpub25lO1wiIGhlaWdodD1cIjgwMHB4XCIgc3JjPVwiJyArIHRoaXMuc2hhcmVVcmwgKyAnJmlmcmFtZT0xXCI+PC9pZnJhbWU+JztcbiAgICB0aGlzLmVtYmVkQ29kZSA9IGVtYmVkQ29kZTtcbiAgICB0aGlzLm1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uuc2hvdyhjb250ZW50LCB7IGNsYXNzOiAnbW9kYWwtbGcnIH0pO1xuICB9XG5cbiAgY2hvaWNlcyhzdHJpbmcpIHtcbiAgICB0aGlzLmNob2ljZSA9IHN0cmluZztcbiAgfVxufVxuIiwiPGJ1dHRvbiAqbmdJZj1cIm9wdGlvbnMudmlld2VyXCIgY2xhc3M9XCJmbG9hdC1lbmQgYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnlcIiAoY2xpY2spPVwib3BlbkVtYmVkKGNvbnRlbnQpXCI+PGVtIGNsYXNzPVwiZmEgZmEtc2hhcmUtYWx0IGJpIGJpLXNoYXJlXCI+PC9lbT4gU2hhcmU8L2J1dHRvbj5cbjx1bCBjbGFzcz1cIm5hdiBuYXYtdGFicyBtYi0yXCI+XG4gIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCI+PGEgY2xhc3M9XCJuYXYtbGlua1wiIHJvdXRlckxpbms9XCIuLi9cIj48ZW0gY2xhc3M9XCJmYSBmYS1jaGV2cm9uLWxlZnQgYmkgYmktY2hldnJvbi1sZWZ0XCI+PC9lbT48L2E+PC9saT5cbiAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCI+PGEgY2xhc3M9XCJuYXYtbGlua1wiIHJvdXRlckxpbms9XCJ2aWV3XCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiPjxlbSBjbGFzcz1cImZhIGZhLXBlbmNpbCBiaSBiaS1wZW5jaWxcIj48L2VtPiBFbnRlciBEYXRhPC9hPjwvbGk+XG4gIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiPjxhIGNsYXNzPVwibmF2LWxpbmtcIiByb3V0ZXJMaW5rPVwic3VibWlzc2lvblwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj48ZW0gY2xhc3M9XCJmYSBmYS1saXN0LWFsdCBiaSBiaS10YWJsZVwiPjwvZW0+IFZpZXcgRGF0YTwvYT48L2xpPlxuICA8bGkgKm5nSWY9XCJzZXJ2aWNlLmFjdGlvbkFsbG93ZWQoJ2Zvcm1FZGl0JylcIiBjbGFzcz1cIm5hdi1pdGVtXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiPjxhIGNsYXNzPVwibmF2LWxpbmtcIiByb3V0ZXJMaW5rPVwiZWRpdFwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj48ZW0gY2xhc3M9XCJmYSBmYS1lZGl0IGJpIGJpLXBlbmNpbC1zcXVhcmVcIj48L2VtPiBFZGl0IEZvcm08L2E+PC9saT5cbiAgPGxpICpuZ0lmPVwic2VydmljZS5hY3Rpb25BbGxvd2VkKCdmb3JtRGVsZXRlJylcIiBjbGFzcz1cIm5hdi1pdGVtXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiPjxhIGNsYXNzPVwibmF2LWxpbmtcIiByb3V0ZXJMaW5rPVwiZGVsZXRlXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiPjxzcGFuIGNsYXNzPVwiZmEgZmEtdHJhc2ggYmkgYmktdHJhc2hcIj48L3NwYW4+PC9hPjwvbGk+XG48L3VsPlxuPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG4gICAgPGg0IGNsYXNzPVwibW9kYWwtdGl0bGVcIj5TaGFyZSBvciBFbWJlZCB0aGlzIGZvcm08L2g0PlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2xvc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWxSZWYuaGlkZSgpXCI+XG4gICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICA8dWwgY2xhc3M9XCJuYXYgbmF2LXRhYnMgbXItYXV0byBtYi0yXCI+XG4gICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiPlxuICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rXCIgW25nQ2xhc3NdPVwieydhY3RpdmUnOiBjaG9pY2UgPT09ICdpc1VybCd9XCIgKGNsaWNrKT1cImNob2ljZXMoJ2lzVXJsJylcIj48ZW0gY2xhc3M9XCJmYSBmYS1saW5rIGJpIGJpLWxpbmtcIj48L2VtPiBVUkw8L2E+XG4gICAgICA8L2xpPlxuICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIj5cbiAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGlua1wiIFtuZ0NsYXNzXT1cInsnYWN0aXZlJzogY2hvaWNlID09PSAnaXNFbWJlZCd9XCIgKGNsaWNrKT1cImNob2ljZXMoJ2lzRW1iZWQnKVwiPjxlbSBjbGFzcz1cImZhIGZhLWNvZGUgYmkgYmktY29kZS1zbGFzaFwiPjwvZW0+IEVtYmVkPC9hPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICAgIDxwcmUgICpuZ0lmPVwiY2hvaWNlID09PSAnaXNFbWJlZCdcIj48dGV4dGFyZWEgb25jbGljaz1cInRoaXMuZm9jdXMoKTt0aGlzLnNlbGVjdCgpXCIgcmVhZG9ubHk9XCJyZWFkb25seVwiIHN0eWxlPVwid2lkdGg6MTAwJTtcIiByb3dzPVwiOFwiIFtuZ01vZGVsXT1cImVtYmVkQ29kZVwiPjwvdGV4dGFyZWE+PC9wcmU+XG4gICAgPGlucHV0ICpuZ0lmPVwiY2hvaWNlID09PSAnaXNVcmwnXCIgdHlwZT1cInRleHRcIiBvbmNsaWNrPVwidGhpcy5mb2N1cygpO3RoaXMuc2VsZWN0KClcIiByZWFkb25seT1cInJlYWRvbmx5XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbbmdNb2RlbF09XCJzaGFyZVVybFwiIHBsYWNlaG9sZGVyPVwiaHR0cHM6Ly9leGFtcGxlcy5mb3JtLmlvL2V4YW1wbGVcIj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tbGlnaHRcIiAoY2xpY2spPVwibW9kYWxSZWYuaGlkZSgpXCI+Q2xvc2U8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class FormManagerConfig {
|
|
4
|
+
tag = '';
|
|
5
|
+
includeSearch = false;
|
|
6
|
+
saveDraft = false;
|
|
7
|
+
type = 'form';
|
|
8
|
+
builder;
|
|
9
|
+
viewer;
|
|
10
|
+
renderer;
|
|
11
|
+
static ɵfac = function FormManagerConfig_Factory(t) { return new (t || FormManagerConfig)(); };
|
|
12
|
+
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: FormManagerConfig, factory: FormManagerConfig.ɵfac });
|
|
13
|
+
}
|
|
14
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormManagerConfig, [{
|
|
15
|
+
type: Injectable
|
|
16
|
+
}], null, null); })();
|
|
17
|
+
export const DefaultConfiguration = new FormManagerConfig();
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tYW5hZ2VyLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItZm9ybWlvL21hbmFnZXIvc3JjL2Zvcm0tbWFuYWdlci5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFvQjNDLE1BQU0sT0FBTyxpQkFBaUI7SUFDckIsR0FBRyxHQUFHLEVBQUUsQ0FBQztJQUNULGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDdEIsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNsQixJQUFJLEdBQWEsTUFBTSxDQUFDO0lBQ3hCLE9BQU8sQ0FBTztJQUNkLE1BQU0sQ0FBVTtJQUNoQixRQUFRLENBQU07MkVBUFYsaUJBQWlCO2dFQUFqQixpQkFBaUIsV0FBakIsaUJBQWlCOztpRkFBakIsaUJBQWlCO2NBRDdCLFVBQVU7O0FBV1gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG50eXBlIEZvcm1UeXBlID0gJ2Zvcm0nIHwgJ3Jlc291cmNlJztcblxuZXhwb3J0IGludGVyZmFjZSBGb3JtTWFuYWdlclJvdXRlQ29uZmlnIHtcbiAgZm9ybUluZGV4PzogYW55O1xuICBmb3JtQ3JlYXRlPzogYW55O1xuICBmb3JtPzogYW55O1xuICBmb3JtVmlldz86IGFueTtcbiAgZm9ybUVkaXQ/OiBhbnk7XG4gIGZvcm1FbWJlZD86IGFueTtcbiAgZm9ybURlbGV0ZT86IGFueTtcbiAgc3VibWlzc2lvbkluZGV4PzogYW55O1xuICBzdWJtaXNzaW9uPzogYW55O1xuICBzdWJtaXNzaW9uVmlldz86IGFueTtcbiAgc3VibWlzc2lvbkVkaXQ/OiBhbnk7XG4gIHN1Ym1pc3Npb25EZWxldGU/OiBhbnk7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGb3JtTWFuYWdlckNvbmZpZyB7XG4gIHB1YmxpYyB0YWcgPSAnJztcbiAgcHVibGljIGluY2x1ZGVTZWFyY2ggPSBmYWxzZTtcbiAgcHVibGljIHNhdmVEcmFmdCA9IGZhbHNlO1xuICBwdWJsaWMgdHlwZTogRm9ybVR5cGUgPSAnZm9ybSc7XG4gIHB1YmxpYyBidWlsZGVyPzogYW55O1xuICBwdWJsaWMgdmlld2VyPzogc3RyaW5nO1xuICBwdWJsaWMgcmVuZGVyZXI6IGFueTtcbn1cblxuZXhwb3J0IGNvbnN0IERlZmF1bHRDb25maWd1cmF0aW9uID0gbmV3IEZvcm1NYW5hZ2VyQ29uZmlnKCk7XG4iXX0=
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { RouterModule } from '@angular/router';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { FormsModule } from '@angular/forms';
|
|
5
|
+
import { FormioModule } from '@formio/angular';
|
|
6
|
+
import { FormioGrid } from '@formio/angular/grid';
|
|
7
|
+
import { FormManagerIndexComponent } from './index/index.component';
|
|
8
|
+
import { FormManagerCreateComponent } from './create/create.component';
|
|
9
|
+
import { FormManagerFormComponent } from './form/form.component';
|
|
10
|
+
import { FormManagerViewComponent } from './view/view.component';
|
|
11
|
+
import { FormManagerEditComponent } from './edit/edit.component';
|
|
12
|
+
import { FormManagerDeleteComponent } from './delete/delete.component';
|
|
13
|
+
import { SubmissionComponent } from './submission/submission/submission.component';
|
|
14
|
+
import { SubmissionEditComponent } from './submission/edit/edit.component';
|
|
15
|
+
import { SubmissionDeleteComponent } from './submission/delete/delete.component';
|
|
16
|
+
import { SubmissionViewComponent } from './submission/view/view.component';
|
|
17
|
+
import { SubmissionIndexComponent } from './submission/index/index.component';
|
|
18
|
+
import { FormManagerRoutes } from './form-manager.routes';
|
|
19
|
+
import { PaginationModule } from 'ngx-bootstrap/pagination';
|
|
20
|
+
import { ModalModule } from 'ngx-bootstrap/modal';
|
|
21
|
+
import { extendRouter } from '@formio/angular';
|
|
22
|
+
import * as i0 from "@angular/core";
|
|
23
|
+
import * as i1 from "ngx-bootstrap/modal";
|
|
24
|
+
import * as i2 from "ngx-bootstrap/pagination";
|
|
25
|
+
export class FormManagerModule {
|
|
26
|
+
static forChild(config) {
|
|
27
|
+
return extendRouter(FormManagerModule, config, FormManagerRoutes);
|
|
28
|
+
}
|
|
29
|
+
static forRoot(config) {
|
|
30
|
+
return extendRouter(FormManagerModule, config, FormManagerRoutes);
|
|
31
|
+
}
|
|
32
|
+
static ɵfac = function FormManagerModule_Factory(t) { return new (t || FormManagerModule)(); };
|
|
33
|
+
static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: FormManagerModule });
|
|
34
|
+
static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule,
|
|
35
|
+
FormioModule,
|
|
36
|
+
RouterModule,
|
|
37
|
+
FormsModule,
|
|
38
|
+
FormioGrid,
|
|
39
|
+
ModalModule.forRoot(),
|
|
40
|
+
PaginationModule.forRoot()] });
|
|
41
|
+
}
|
|
42
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormManagerModule, [{
|
|
43
|
+
type: NgModule,
|
|
44
|
+
args: [{
|
|
45
|
+
imports: [
|
|
46
|
+
CommonModule,
|
|
47
|
+
FormioModule,
|
|
48
|
+
RouterModule,
|
|
49
|
+
FormsModule,
|
|
50
|
+
FormioGrid,
|
|
51
|
+
ModalModule.forRoot(),
|
|
52
|
+
PaginationModule.forRoot()
|
|
53
|
+
],
|
|
54
|
+
declarations: [
|
|
55
|
+
FormManagerIndexComponent,
|
|
56
|
+
FormManagerCreateComponent,
|
|
57
|
+
FormManagerFormComponent,
|
|
58
|
+
FormManagerViewComponent,
|
|
59
|
+
FormManagerEditComponent,
|
|
60
|
+
FormManagerDeleteComponent,
|
|
61
|
+
SubmissionComponent,
|
|
62
|
+
SubmissionEditComponent,
|
|
63
|
+
SubmissionDeleteComponent,
|
|
64
|
+
SubmissionViewComponent,
|
|
65
|
+
SubmissionIndexComponent
|
|
66
|
+
]
|
|
67
|
+
}]
|
|
68
|
+
}], null, null); })();
|
|
69
|
+
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(FormManagerModule, { declarations: [FormManagerIndexComponent,
|
|
70
|
+
FormManagerCreateComponent,
|
|
71
|
+
FormManagerFormComponent,
|
|
72
|
+
FormManagerViewComponent,
|
|
73
|
+
FormManagerEditComponent,
|
|
74
|
+
FormManagerDeleteComponent,
|
|
75
|
+
SubmissionComponent,
|
|
76
|
+
SubmissionEditComponent,
|
|
77
|
+
SubmissionDeleteComponent,
|
|
78
|
+
SubmissionViewComponent,
|
|
79
|
+
SubmissionIndexComponent], imports: [CommonModule,
|
|
80
|
+
FormioModule,
|
|
81
|
+
RouterModule,
|
|
82
|
+
FormsModule,
|
|
83
|
+
FormioGrid, i1.ModalModule, i2.PaginationModule] }); })();
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tYW5hZ2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItZm9ybWlvL21hbmFnZXIvc3JjL2Zvcm0tbWFuYWdlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUF5Qi9DLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUErQjtRQUM3QyxPQUFPLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBQ0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUErQjtRQUM1QyxPQUFPLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUNwRSxDQUFDOzJFQU5VLGlCQUFpQjs0REFBakIsaUJBQWlCO2dFQXRCMUIsWUFBWTtZQUNaLFlBQVk7WUFDWixZQUFZO1lBQ1osV0FBVztZQUNYLFVBQVU7WUFDVixXQUFXLENBQUMsT0FBTyxFQUFFO1lBQ3JCLGdCQUFnQixDQUFDLE9BQU8sRUFBRTs7aUZBZ0JqQixpQkFBaUI7Y0F4QjdCLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixZQUFZO29CQUNaLFlBQVk7b0JBQ1osV0FBVztvQkFDWCxVQUFVO29CQUNWLFdBQVcsQ0FBQyxPQUFPLEVBQUU7b0JBQ3JCLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtpQkFDM0I7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLHlCQUF5QjtvQkFDekIsMEJBQTBCO29CQUMxQix3QkFBd0I7b0JBQ3hCLHdCQUF3QjtvQkFDeEIsd0JBQXdCO29CQUN4QiwwQkFBMEI7b0JBQzFCLG1CQUFtQjtvQkFDbkIsdUJBQXVCO29CQUN2Qix5QkFBeUI7b0JBQ3pCLHVCQUF1QjtvQkFDdkIsd0JBQXdCO2lCQUN6QjthQUNGOzt3RkFDWSxpQkFBaUIsbUJBYjFCLHlCQUF5QjtRQUN6QiwwQkFBMEI7UUFDMUIsd0JBQXdCO1FBQ3hCLHdCQUF3QjtRQUN4Qix3QkFBd0I7UUFDeEIsMEJBQTBCO1FBQzFCLG1CQUFtQjtRQUNuQix1QkFBdUI7UUFDdkIseUJBQXlCO1FBQ3pCLHVCQUF1QjtRQUN2Qix3QkFBd0IsYUFuQnhCLFlBQVk7UUFDWixZQUFZO1FBQ1osWUFBWTtRQUNaLFdBQVc7UUFDWCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtaW9Nb2R1bGUgfSBmcm9tICdAZm9ybWlvL2FuZ3VsYXInO1xuaW1wb3J0IHsgRm9ybWlvR3JpZCB9IGZyb20gJ0Bmb3JtaW8vYW5ndWxhci9ncmlkJztcbmltcG9ydCB7IEZvcm1NYW5hZ2VySW5kZXhDb21wb25lbnQgfSBmcm9tICcuL2luZGV4L2luZGV4LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtTWFuYWdlckNyZWF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY3JlYXRlL2NyZWF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybU1hbmFnZXJGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtL2Zvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1NYW5hZ2VyVmlld0NvbXBvbmVudCB9IGZyb20gJy4vdmlldy92aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtTWFuYWdlckVkaXRDb21wb25lbnQgfSBmcm9tICcuL2VkaXQvZWRpdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybU1hbmFnZXJEZWxldGVDb21wb25lbnQgfSBmcm9tICcuL2RlbGV0ZS9kZWxldGUuY29tcG9uZW50JztcbmltcG9ydCB7IFN1Ym1pc3Npb25Db21wb25lbnQgfSBmcm9tICcuL3N1Ym1pc3Npb24vc3VibWlzc2lvbi9zdWJtaXNzaW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdWJtaXNzaW9uRWRpdENvbXBvbmVudCB9IGZyb20gJy4vc3VibWlzc2lvbi9lZGl0L2VkaXQuY29tcG9uZW50JztcbmltcG9ydCB7IFN1Ym1pc3Npb25EZWxldGVDb21wb25lbnQgfSBmcm9tICcuL3N1Ym1pc3Npb24vZGVsZXRlL2RlbGV0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3VibWlzc2lvblZpZXdDb21wb25lbnQgfSBmcm9tICcuL3N1Ym1pc3Npb24vdmlldy92aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdWJtaXNzaW9uSW5kZXhDb21wb25lbnQgfSBmcm9tICcuL3N1Ym1pc3Npb24vaW5kZXgvaW5kZXguY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1NYW5hZ2VyUm91dGVDb25maWcgfSBmcm9tICcuL2Zvcm0tbWFuYWdlci5jb25maWcnO1xuaW1wb3J0IHsgRm9ybU1hbmFnZXJSb3V0ZXMgfSBmcm9tICcuL2Zvcm0tbWFuYWdlci5yb3V0ZXMnO1xuaW1wb3J0IHsgUGFnaW5hdGlvbk1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvcGFnaW5hdGlvbic7XG5pbXBvcnQgeyBNb2RhbE1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgZXh0ZW5kUm91dGVyIH0gZnJvbSAnQGZvcm1pby9hbmd1bGFyJztcbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybWlvTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBGb3JtaW9HcmlkLFxuICAgIE1vZGFsTW9kdWxlLmZvclJvb3QoKSxcbiAgICBQYWdpbmF0aW9uTW9kdWxlLmZvclJvb3QoKVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBGb3JtTWFuYWdlckluZGV4Q29tcG9uZW50LFxuICAgIEZvcm1NYW5hZ2VyQ3JlYXRlQ29tcG9uZW50LFxuICAgIEZvcm1NYW5hZ2VyRm9ybUNvbXBvbmVudCxcbiAgICBGb3JtTWFuYWdlclZpZXdDb21wb25lbnQsXG4gICAgRm9ybU1hbmFnZXJFZGl0Q29tcG9uZW50LFxuICAgIEZvcm1NYW5hZ2VyRGVsZXRlQ29tcG9uZW50LFxuICAgIFN1Ym1pc3Npb25Db21wb25lbnQsXG4gICAgU3VibWlzc2lvbkVkaXRDb21wb25lbnQsXG4gICAgU3VibWlzc2lvbkRlbGV0ZUNvbXBvbmVudCxcbiAgICBTdWJtaXNzaW9uVmlld0NvbXBvbmVudCxcbiAgICBTdWJtaXNzaW9uSW5kZXhDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtTWFuYWdlck1vZHVsZSB7XG4gIHN0YXRpYyBmb3JDaGlsZChjb25maWc/OiBGb3JtTWFuYWdlclJvdXRlQ29uZmlnKTogYW55IHtcbiAgICByZXR1cm4gZXh0ZW5kUm91dGVyKEZvcm1NYW5hZ2VyTW9kdWxlLCBjb25maWcsIEZvcm1NYW5hZ2VyUm91dGVzKTtcbiAgfVxuICBzdGF0aWMgZm9yUm9vdChjb25maWc/OiBGb3JtTWFuYWdlclJvdXRlQ29uZmlnKTogYW55IHtcbiAgICByZXR1cm4gZXh0ZW5kUm91dGVyKEZvcm1NYW5hZ2VyTW9kdWxlLCBjb25maWcsIEZvcm1NYW5hZ2VyUm91dGVzKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Formio } from '@formio/js';
|
|
3
|
+
import _intersection from 'lodash/intersection';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@formio/angular";
|
|
6
|
+
import * as i2 from "./form-manager.config";
|
|
7
|
+
import * as i3 from "@formio/angular/auth";
|
|
8
|
+
export class FormManagerService {
|
|
9
|
+
appConfig;
|
|
10
|
+
config;
|
|
11
|
+
auth;
|
|
12
|
+
formio;
|
|
13
|
+
access;
|
|
14
|
+
allAccessMap;
|
|
15
|
+
ownAccessMap;
|
|
16
|
+
ready;
|
|
17
|
+
formReady;
|
|
18
|
+
actionAllowed;
|
|
19
|
+
form = null;
|
|
20
|
+
formSrc = '';
|
|
21
|
+
perms = { delete: false, edit: false };
|
|
22
|
+
constructor(appConfig, config, auth) {
|
|
23
|
+
this.appConfig = appConfig;
|
|
24
|
+
this.config = config;
|
|
25
|
+
this.auth = auth;
|
|
26
|
+
if (this.appConfig && this.appConfig.appUrl) {
|
|
27
|
+
Formio.setBaseUrl(this.appConfig.apiUrl);
|
|
28
|
+
Formio.setProjectUrl(this.appConfig.appUrl);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
console.error('You must provide an AppConfig within your application!');
|
|
32
|
+
}
|
|
33
|
+
this.allAccessMap = {
|
|
34
|
+
'update_all': 'formEdit',
|
|
35
|
+
'delete_all': 'formDelete'
|
|
36
|
+
};
|
|
37
|
+
this.ownAccessMap = {
|
|
38
|
+
'update_own': 'formEdit',
|
|
39
|
+
'delete_own': 'formDelete'
|
|
40
|
+
};
|
|
41
|
+
this.actionAllowed = (action) => this.isActionAllowed(action);
|
|
42
|
+
this.reset();
|
|
43
|
+
}
|
|
44
|
+
isActionAllowed(action) {
|
|
45
|
+
return this.access[action];
|
|
46
|
+
}
|
|
47
|
+
setAccess() {
|
|
48
|
+
this.access = {
|
|
49
|
+
formCreate: true,
|
|
50
|
+
formView: true,
|
|
51
|
+
formSubmission: true,
|
|
52
|
+
formEdit: true,
|
|
53
|
+
formPermission: true,
|
|
54
|
+
formDelete: true,
|
|
55
|
+
projectSettings: true,
|
|
56
|
+
userManagement: true
|
|
57
|
+
};
|
|
58
|
+
if (this.auth) {
|
|
59
|
+
this.access = {
|
|
60
|
+
formCreate: false,
|
|
61
|
+
formView: false,
|
|
62
|
+
formSubmission: false,
|
|
63
|
+
formEdit: false,
|
|
64
|
+
formPermission: false,
|
|
65
|
+
formDelete: false,
|
|
66
|
+
projectSettings: false,
|
|
67
|
+
userManagement: false
|
|
68
|
+
};
|
|
69
|
+
this.ready = this.auth.ready.then(() => {
|
|
70
|
+
let administrator = this.auth.roles["administrator"];
|
|
71
|
+
let formbuilder = this.auth.roles["formbuilder"];
|
|
72
|
+
let formadmin = this.auth.roles["formadmin"];
|
|
73
|
+
if (this.auth.user && this.auth.user.roles) {
|
|
74
|
+
this.auth.user.roles.forEach((roleId) => {
|
|
75
|
+
if (administrator._id === roleId) {
|
|
76
|
+
this.access.formCreate = true;
|
|
77
|
+
this.access.formView = true;
|
|
78
|
+
this.access.formSubmission = true;
|
|
79
|
+
this.access.formEdit = true;
|
|
80
|
+
this.access.formPermission = true;
|
|
81
|
+
this.access.formDelete = true;
|
|
82
|
+
this.access.projectSettings = true;
|
|
83
|
+
this.access.userManagement = true;
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
if (formadmin && formadmin._id === roleId) {
|
|
87
|
+
this.access.formCreate = this.auth.formAccess.create_all.includes(roleId);
|
|
88
|
+
this.access.formEdit = this.auth.formAccess.update_all.includes(roleId);
|
|
89
|
+
this.access.formPermission = this.auth.formAccess.update_all.includes(roleId);
|
|
90
|
+
this.access.formDelete = this.auth.formAccess.delete_all.includes(roleId);
|
|
91
|
+
this.access.formView = this.auth.formAccess.read_all.includes(roleId);
|
|
92
|
+
this.access.formSubmission = this.auth.formAccess.read_all.includes(roleId);
|
|
93
|
+
}
|
|
94
|
+
if (formbuilder && formbuilder._id === roleId) {
|
|
95
|
+
this.access.formCreate = this.auth.formAccess.create_all.includes(roleId);
|
|
96
|
+
this.access.formEdit = this.auth.formAccess.update_all.includes(roleId);
|
|
97
|
+
this.access.formPermission = this.auth.formAccess.update_all.includes(roleId);
|
|
98
|
+
this.access.formDelete = this.auth.formAccess.delete_all.includes(roleId);
|
|
99
|
+
this.access.formView = this.auth.formAccess.read_all.includes(roleId);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
this.ready = Promise.resolve(false);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
reset(route) {
|
|
111
|
+
if (route) {
|
|
112
|
+
route.params.subscribe(params => {
|
|
113
|
+
if (params.id) {
|
|
114
|
+
this.formio = new Formio(`${this.formio.formsUrl}/${params.id}`);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
this.reset();
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
this.formio = new Formio(this.appConfig.appUrl);
|
|
123
|
+
this.setAccess();
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
hasAccess(roles) {
|
|
127
|
+
if (!this.auth.user) {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
return !!_intersection(roles, this.auth.user.roles).length;
|
|
131
|
+
}
|
|
132
|
+
setForm(form) {
|
|
133
|
+
this.form = form;
|
|
134
|
+
this.formSrc = this.appConfig.appUrl + '/' + form.path;
|
|
135
|
+
if (form.access) {
|
|
136
|
+
// Check if they have access here.
|
|
137
|
+
form.access.forEach(access => {
|
|
138
|
+
// Check for all access.
|
|
139
|
+
if (this.allAccessMap[access.type] && !this.access[this.allAccessMap[access.type]]) {
|
|
140
|
+
this.access[this.allAccessMap[access.type]] = this.hasAccess(access.roles);
|
|
141
|
+
}
|
|
142
|
+
// Check for own access.
|
|
143
|
+
if (this.auth && this.auth.user &&
|
|
144
|
+
(form._id === this.auth.user._id) &&
|
|
145
|
+
this.ownAccessMap[access.type] &&
|
|
146
|
+
!this.access[this.ownAccessMap[access.type]]) {
|
|
147
|
+
this.access[this.ownAccessMap[access.type]] = this.hasAccess(access.roles);
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
return form;
|
|
152
|
+
}
|
|
153
|
+
loadForm() {
|
|
154
|
+
this.form = null;
|
|
155
|
+
this.formReady = this.formio.loadForm().then(form => this.setForm(form));
|
|
156
|
+
return this.formReady;
|
|
157
|
+
}
|
|
158
|
+
setSubmission(route) {
|
|
159
|
+
return new Promise((resolve) => {
|
|
160
|
+
route.params.subscribe(params => {
|
|
161
|
+
this.formio = new Formio(`${this.formio.submissionsUrl}/${params.id}`);
|
|
162
|
+
resolve(this.formio);
|
|
163
|
+
});
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
submissionLoaded(submission) {
|
|
167
|
+
this.auth.ready.then(() => {
|
|
168
|
+
this.formio.userPermissions(this.auth.user, this.form, submission).then((perms) => {
|
|
169
|
+
this.perms.delete = perms.delete;
|
|
170
|
+
this.perms.edit = perms.edit;
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
loadForms() {
|
|
175
|
+
return this.formio.loadForms({ params: {
|
|
176
|
+
tags: this.config.tag
|
|
177
|
+
} });
|
|
178
|
+
}
|
|
179
|
+
static ɵfac = function FormManagerService_Factory(t) { return new (t || FormManagerService)(i0.ɵɵinject(i1.FormioAppConfig), i0.ɵɵinject(i2.FormManagerConfig), i0.ɵɵinject(i3.FormioAuthService)); };
|
|
180
|
+
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: FormManagerService, factory: FormManagerService.ɵfac });
|
|
181
|
+
}
|
|
182
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormManagerService, [{
|
|
183
|
+
type: Injectable
|
|
184
|
+
}], () => [{ type: i1.FormioAppConfig }, { type: i2.FormManagerConfig }, { type: i3.FormioAuthService }], null); })();
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWZvcm1pby9tYW5hZ2VyL3NyYy9mb3JtLW1hbmFnZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHcEMsT0FBTyxhQUFhLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBR2hELE1BQU0sT0FBTyxrQkFBa0I7SUFhcEI7SUFDQTtJQUNBO0lBZEYsTUFBTSxDQUFTO0lBQ2YsTUFBTSxDQUFNO0lBQ1osWUFBWSxDQUFNO0lBQ2xCLFlBQVksQ0FBTTtJQUNsQixLQUFLLENBQWU7SUFDcEIsU0FBUyxDQUFlO0lBQ3hCLGFBQWEsQ0FBTTtJQUNuQixJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ1osT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNiLEtBQUssR0FBRyxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBQyxDQUFDO0lBRTVDLFlBQ1MsU0FBMEIsRUFDMUIsTUFBeUIsRUFDekIsSUFBdUI7UUFGdkIsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDekIsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFFOUIsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3pDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QyxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxL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SUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQ0FDMUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQ0FDeEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQ0FDOUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEdBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQ0FDM0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQ0FDdEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQzs0QkFDOUUsQ0FBQzs0QkFDRCxJQUFJLFdBQVcsSUFBSSxXQUFXLENBQUMsR0FBRyxLQUFLLE1BQU0sRUFBRSxDQUFDO2dDQUM5QyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dDQUMxRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dDQUN4RSxJQUFJLENBQUMsTUFBTSxD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QUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDaEYsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztnQkFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztZQUMvQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUMsTUFBTSxFQUFFO2dCQUNwQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHO2FBQ3RCLEVBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQzs0RUFuTFUsa0JBQWtCO2dFQUFsQixrQkFBa0IsV0FBbEIsa0JBQWtCOztpRkFBbEIsa0JBQWtCO2NBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtaW9BcHBDb25maWcgfSBmcm9tICdAZm9ybWlvL2FuZ3VsYXInO1xuaW1wb3J0IHsgRm9ybU1hbmFnZXJDb25maWcgfSBmcm9tICcuL2Zvcm0tbWFuYWdlci5jb25maWcnO1xuaW1wb3J0IHsgRm9ybWlvIH0gZnJvbSAnQGZvcm1pby9qcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBGb3JtaW9BdXRoU2VydmljZSB9IGZyb20gJ0Bmb3JtaW8vYW5ndWxhci9hdXRoJztcbmltcG9ydCBfaW50ZXJzZWN0aW9uIGZyb20gJ2xvZGFzaC9pbnRlcnNlY3Rpb24nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRm9ybU1hbmFnZXJTZXJ2aWNlIHtcbiAgcHVibGljIGZvcm1pbzogRm9ybWlvO1xuICBwdWJsaWMgYWNjZXNzOiBhbnk7XG4gIHB1YmxpYyBhbGxBY2Nlc3NNYXA6IGFueTtcbiAgcHVibGljIG93bkFjY2Vzc01hcDogYW55O1xuICBwdWJsaWMgcmVhZHk6IFByb21pc2U8YW55PjtcbiAgcHVibGljIGZvcm1SZWFkeTogUHJvbWlzZTxhbnk+O1xuICBwdWJsaWMgYWN0aW9uQWxsb3dlZDogYW55O1xuICBwdWJsaWMgZm9ybSA9IG51bGw7XG4gIHB1YmxpYyBmb3JtU3JjID0gJyc7XG4gIHB1YmxpYyBwZXJtcyA9IHtkZWxldGU6IGZhbHNlLCBlZGl0OiBmYWxzZX07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGFwcENvbmZpZzogRm9ybWlvQXBwQ29uZmlnLFxuICAgIHB1YmxpYyBjb25maWc6IEZvcm1NYW5hZ2VyQ29uZmlnLFxuICAgIHB1YmxpYyBhdXRoOiBGb3JtaW9BdXRoU2VydmljZVxuICApIHtcbiAgICBpZiAodGhpcy5hcHBDb25maWcgJiYgdGhpcy5hcHBDb25maWcuYXBwVXJsKSB7XG4gICAgICBGb3JtaW8uc2V0QmFzZVVybCh0aGlzLmFwcENvbmZpZy5hcGlVcmwpO1xuICAgICAgRm9ybWlvLnNldFByb2plY3RVcmwodGhpcy5hcHBDb25maWcuYXBwVXJsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcignWW91IG11c3QgcHJvdmlkZSBhbiBBcHBDb25maWcgd2l0aGluIHlvdXIgYXBwbGljYXRpb24hJyk7XG4gICAgfVxuXG4gICAgdGhpcy5hbGxBY2Nlc3NNYXAgPSB7XG4gICAgICAndXBkYXRlX2FsbCc6ICdmb3JtRWRpdCcsXG4gICAgICAnZGVsZXRlX2FsbCc6ICdmb3JtRGVsZXRlJ1xuICAgIH07XG4gICAgdGhpcy5vd25BY2Nlc3NNYXAgPSB7XG4gICAgICAndXBkYXRlX293bic6ICdmb3JtRWRpdCcsXG4gICAgICAnZGVsZXRlX293bic6ICdmb3JtRGVsZXRlJ1xuICAgIH07XG4gICAgdGhpcy5hY3Rpb25BbGxvd2VkID0gKGFjdGlvbikgPT4gdGhpcy5pc0FjdGlvbkFsbG93ZWQoYWN0aW9uKTtcbiAgICB0aGlzLnJlc2V0KCk7XG4gIH1cblxuICBpc0FjdGlvbkFsbG93ZWQoYWN0aW9uOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hY2Nlc3NbYWN0aW9uXTtcbiAgfVxuXG4gIHNldEFjY2VzcygpIHtcbiAgICB0aGlzLmFjY2VzcyA9IHtcbiAgICAgIGZvcm1DcmVhdGU6IHRydWUsXG4gICAgICBmb3JtVmlldzogdHJ1ZSxcbiAgICAgIGZvcm1TdWJtaXNzaW9uOiB0cnVlLFxuICAgICAgZm9ybUVkaXQ6IHRydWUsXG4gICAgICBmb3JtUGVybWlzc2lvbjogdHJ1ZSxcbiAgICAgIGZvcm1EZWxldGU6IHRydWUsXG4gICAgICBwcm9qZWN0U2V0dGluZ3M6IHRydWUsXG4gICAgICB1c2VyTWFuYWdlbWVudDogdHJ1ZVxuICAgIH07XG4gICAgaWYgKHRoaXMuYXV0aCkge1xuICAgICAgdGhpcy5hY2Nlc3MgPSB7XG4gICAgICAgIGZvcm1DcmVhdGU6IGZhbHNlLFxuICAgICAgICBmb3JtVmlldzogZmFsc2UsXG4gICAgICAgIGZvcm1TdWJtaXNzaW9uOiBmYWxzZSxcbiAgICAgICAgZm9ybUVkaXQ6IGZhbHNlLFxuICAgICAgICBmb3JtUGVybWlzc2lvbjogZmFsc2UsXG4gICAgICAgIGZvcm1EZWxldGU6IGZhbHNlLFxuICAgICAgICBwcm9qZWN0U2V0dGluZ3M6IGZhbHNlLFxuICAgICAgICB1c2VyTWFuYWdlbWVudDogZmFsc2VcbiAgICAgIH07XG4gICAgICB0aGlzLnJlYWR5ID0gdGhpcy5hdXRoLnJlYWR5LnRoZW4oKCkgPT4ge1xuICAgICAgICBsZXQgYWRtaW5pc3RyYXRvciA9IHRoaXMuYXV0aC5yb2xlc1tcImFkbWluaXN0cmF0b3JcIl07XG4gICAgICAgIGxldCBmb3JtYnVpbGRlciA9IHRoaXMuYXV0aC5yb2xlc1tcImZvcm1idWlsZGVyXCJdO1xuICAgICAgICBsZXQgZm9ybWFkbWluID0gdGhpcy5hdXRoLnJvbGVzW1wiZm9ybWFkbWluXCJdO1xuXG4gICAgICAgIGlmICh0aGlzLmF1dGgudXNlciAmJiB0aGlzLmF1dGgudXNlci5yb2xlcykge1xuICAgICAgICAgIHRoaXMuYXV0aC51c2VyLnJvbGVzLmZvckVhY2goKHJvbGVJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWRtaW5pc3RyYXRvci5faWQgPT09IHJvbGVJZCkge1xuICAgICAgICAgICAgICB0aGlzLmFjY2Vzcy5mb3JtQ3JlYXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgdGhpcy5hY2Nlc3MuZm9ybVZpZXcgPSB0cnVlO1xuICAgICAgICAgICAgICB0aGlzLmFjY2Vzcy5mb3JtU3VibWlzc2lvbj0gdHJ1ZTtcbiAgICAgICAgICAgICAgdGhpcy5hY2Nlc3MuZm9ybUVkaXQgPSB0cnVlO1xuICAgICAgICAgICAgICB0aGlzLmFjY2Vzcy5mb3JtUGVybWlzc2lvbiA9IHRydWU7XG4gICAgICAgICAgICAgIHRoaXMuYWNjZXNzLmZvcm1EZWxldGUgPSB0cnVlO1xuICAgICAgICAgICAgICB0aGlzLmFjY2Vzcy5wcm9qZWN0U2V0dGluZ3MgPSB0cnVlO1xuICAgICAgICAgICAgICB0aGlzLmFjY2Vzcy51c2VyTWFuYWdlbWVudCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgaWYgKGZvcm1hZG1pbiAmJiBmb3JtYWRtaW4uX2lkID09PSByb2xlSWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjY2Vzcy5mb3JtQ3JlYXRlID0gdGhpcy5hdXRoLmZvcm1BY2Nlc3MuY3JlYXRlX2FsbC5pbmNsdWRlcyhyb2xlSWQpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWNjZXNzLmZvcm1FZGl0ID0gdGhpcy5hdXRoLmZvcm1BY2Nlc3MudXBkYXRlX2FsbC5pbmNsdWRlcyhyb2xlSWQpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWNjZXNzLmZvcm1QZXJtaXNzaW9uID0gdGhpcy5hdXRoLmZvcm1BY2Nlc3MudXBkYXRlX2FsbC5pbmNsdWRlcyhyb2xlSWQpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWNjZXNzLmZvcm1EZWxldGUgPSAgdGhpcy5hdXRoLmZvcm1BY2Nlc3MuZGVsZXRlX2FsbC5pbmNsdWRlcyhyb2xlSWQpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWNjZXNzLmZvcm1WaWV3ID0gdGhpcy5hdXRoLmZvcm1BY2Nlc3MucmVhZF9hbGwuaW5jbHVkZXMocm9sZUlkKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFjY2Vzcy5mb3JtU3VibWlzc2lvbiA9IHRoaXMuYXV0aC5mb3JtQWNjZXNzLnJlYWRfYWxsLmluY2x1ZGVzKHJvbGVJZCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKGZvcm1idWlsZGVyICYmIGZvcm1idWlsZGVyLl9pZCA9PT0gcm9sZUlkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY2Nlc3MuZm9ybUNyZWF0ZSA9IHRoaXMuYXV0aC5mb3JtQWNjZXNzLmNyZWF0ZV9hbGwuaW5jbHVkZXMocm9sZUlkKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFjY2Vzcy5mb3JtRWRpdCA9IHRoaXMuYXV0aC5mb3JtQWNjZXNzLnVwZGF0ZV9hbGwuaW5jbHVkZXMocm9sZUlkKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFjY2Vzcy5mb3JtUGVybWlzc2lvbiA9IHRoaXMuYXV0aC5mb3JtQWNjZXNzLnVwZGF0ZV9hbGwuaW5jbHVkZXMocm9sZUlkKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFjY2Vzcy5mb3JtRGVsZXRlID0gIHRoaXMuYXV0aC5mb3JtQWNjZXNzLmRlbGV0ZV9hbGwuaW5jbHVkZXMocm9sZUlkKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFjY2Vzcy5mb3JtVmlldyA9IHRoaXMuYXV0aC5mb3JtQWNjZXNzLnJlYWRfYWxsLmluY2x1ZGVzKHJvbGVJZCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVhZHkgPSBQcm9taXNlLnJlc29sdmUoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0KHJvdXRlPzogQWN0aXZhdGVkUm91dGUpIHtcbiAgICBpZiAocm91dGUpIHtcbiAgICAgIHJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcbiAgICAgICAgaWYgKHBhcmFtcy5pZCkge1xuICAgICAgICAgIHRoaXMuZm9ybWlvID0gbmV3IEZvcm1pbyhgJHt0aGlzLmZvcm1pby5mb3Jtc1VybH0vJHtwYXJhbXMuaWR9YCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtaW8gPSBuZXcgRm9ybWlvKHRoaXMuYXBwQ29uZmlnLmFwcFVybCk7XG4gICAgICB0aGlzLnNldEFjY2VzcygpO1xuICAgIH1cbiAgfVxuXG4gIGhhc0FjY2Vzcyhyb2xlcykge1xuICAgIGlmICghdGhpcy5hdXRoLnVzZXIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuICEhX2ludGVyc2VjdGlvbihyb2xlcywgdGhpcy5hdXRoLnVzZXIucm9sZXMpLmxlbmd0aDtcbiAgfVxuXG4gIHNldEZvcm0oZm9ybTogYW55KSB7XG4gICAgdGhpcy5mb3JtID0gZm9ybTtcbiAgICB0aGlzLmZvcm1TcmMgPSB0aGlzLmFwcENvbmZpZy5hcHBVcmwgKyAnLycgKyBmb3JtLnBhdGg7XG4gICAgaWYgKGZvcm0uYWNjZXNzKSB7XG4gICAgICAvLyBDaGVjayBpZiB0aGV5IGhhdmUgYWNjZXNzIGhlcmUuXG4gICAgICBmb3JtLmFjY2Vzcy5mb3JFYWNoKGFjY2VzcyA9PiB7XG4gICAgICAgIC8vIENoZWNrIGZvciBhbGwgYWNjZXNzLlxuICAgICAgICBpZiAodGhpcy5hbGxBY2Nlc3NNYXBbYWNjZXNzLnR5cGVdICYmICF0aGlzLmFjY2Vzc1t0aGlzLmFsbEFjY2Vzc01hcFthY2Nlc3MudHlwZV1dKSB7XG4gICAgICAgICAgdGhpcy5hY2Nlc3NbdGhpcy5hbGxBY2Nlc3NNYXBbYWNjZXNzLnR5cGVdXSA9IHRoaXMuaGFzQWNjZXNzKGFjY2Vzcy5yb2xlcyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBmb3Igb3duIGFjY2Vzcy5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuYXV0aCAmJiB0aGlzLmF1dGgudXNlciAmJlxuICAgICAgICAgIChmb3JtLl9pZCA9PT0gdGhpcy5hdXRoLnVzZXIuX2lkKSAmJlxuICAgICAgICAgIHRoaXMub3duQWNjZXNzTWFwW2FjY2Vzcy50eXBlXSAmJlxuICAgICAgICAgICF0aGlzLmFjY2Vzc1t0aGlzLm93bkFjY2Vzc01hcFthY2Nlc3MudHlwZV1dXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuYWNjZXNzW3RoaXMub3duQWNjZXNzTWFwW2FjY2Vzcy50eXBlXV0gPSB0aGlzLmhhc0FjY2VzcyhhY2Nlc3Mucm9sZXMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGZvcm07XG4gIH1cblxuICBsb2FkRm9ybSgpIHtcbiAgICB0aGlzLmZvcm0gPSBudWxsO1xuICAgIHRoaXMuZm9ybVJlYWR5ID0gdGhpcy5mb3JtaW8ubG9hZEZvcm0oKS50aGVuKGZvcm0gPT4gdGhpcy5zZXRGb3JtKGZvcm0pKTtcbiAgICByZXR1cm4gdGhpcy5mb3JtUmVhZHk7XG4gIH1cblxuICBzZXRTdWJtaXNzaW9uKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgcm91dGUucGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xuICAgICAgICB0aGlzLmZvcm1pbyA9IG5ldyBGb3JtaW8oYCR7dGhpcy5mb3JtaW8uc3VibWlzc2lvbnNVcmx9LyR7cGFyYW1zLmlkfWApO1xuICAgICAgICByZXNvbHZlKHRoaXMuZm9ybWlvKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgc3VibWlzc2lvbkxvYWRlZChzdWJtaXNzaW9uOiBhbnkpIHtcbiAgICB0aGlzLmF1dGgucmVhZHkudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLmZvcm1pby51c2VyUGVybWlzc2lvbnModGhpcy5hdXRoLnVzZXIsIHRoaXMuZm9ybSwgc3VibWlzc2lvbikudGhlbigocGVybXMpID0+IHtcbiAgICAgICAgdGhpcy5wZXJtcy5kZWxldGUgPSBwZXJtcy5kZWxldGU7XG4gICAgICAgIHRoaXMucGVybXMuZWRpdCA9IHBlcm1zLmVkaXQ7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGxvYWRGb3JtcygpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtaW8ubG9hZEZvcm1zKHtwYXJhbXM6IHtcbiAgICAgIHRhZ3M6IHRoaXMuY29uZmlnLnRhZ1xuICAgIH19KTtcbiAgfVxufVxuIl19
|