@formio/angular 7.0.0 → 7.5.0-dev.1060.b272e25
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/.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/.github/pull_request_template.md +35 -0
- package/.github/workflows/ci.yml +171 -0
- package/.travis.yml +4 -0
- package/.yo-rc.json +7 -0
- package/CHANGELOG.md +1154 -0
- package/Dockerfile +20 -0
- package/LICENSE +21 -0
- package/README.md +204 -13
- package/angular.json +38 -0
- package/bs-config.json +11 -0
- 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.map +1 -1
- package/{core.d.ts → dist/angular-formio/core.d.ts} +1 -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 +14 -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 +17 -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 +580 -0
- package/{esm2022 → dist/angular-formio/esm2022}/auth/auth.service.mjs +2 -2
- package/dist/angular-formio/esm2022/components/formbuilder/formbuilder.component.mjs +202 -0
- package/dist/angular-formio/esm2022/components/formio/formio.component.mjs +43 -0
- package/dist/angular-formio/esm2022/components/formioreport/formioreport.component.mjs +89 -0
- package/{esm2022 → dist/angular-formio/esm2022}/core.mjs +2 -2
- package/dist/angular-formio/esm2022/embed/app.service.mjs +58 -0
- package/dist/angular-formio/esm2022/embed/builder.component.mjs +36 -0
- package/dist/angular-formio/esm2022/embed/embed.module.mjs +35 -0
- package/dist/angular-formio/esm2022/embed/formio-angular-embed.mjs +5 -0
- package/dist/angular-formio/esm2022/embed/formio.component.mjs +50 -0
- package/dist/angular-formio/esm2022/embed/index.mjs +7 -0
- package/dist/angular-formio/esm2022/formio.common.mjs +11 -0
- package/{esm2022 → dist/angular-formio/esm2022}/formio.config.mjs +2 -2
- package/dist/angular-formio/esm2022/formio.service.mjs +62 -0
- package/dist/angular-formio/esm2022/grid/grid.component.mjs +257 -0
- package/{esm2022 → dist/angular-formio/esm2022}/grid/submission/SubmissionGridHeader.component.mjs +2 -2
- package/{esm2022 → dist/angular-formio/esm2022}/manager/form-manager.service.mjs +2 -2
- package/{esm2022 → dist/angular-formio/esm2022}/manager/view/view.component.mjs +2 -2
- package/{esm2022 → dist/angular-formio/esm2022}/resource/edit/edit.component.mjs +2 -2
- package/{esm2022 → dist/angular-formio/esm2022}/resource/resource.service.mjs +2 -2
- package/{esm2022 → dist/angular-formio/esm2022}/resource/view/view.component.mjs +2 -2
- package/{fesm2022 → dist/angular-formio/fesm2022}/formio-angular-auth.mjs +1 -1
- package/dist/angular-formio/fesm2022/formio-angular-auth.mjs.map +1 -0
- package/dist/angular-formio/fesm2022/formio-angular-embed.mjs +176 -0
- package/dist/angular-formio/fesm2022/formio-angular-embed.mjs.map +1 -0
- package/{fesm2022 → dist/angular-formio/fesm2022}/formio-angular-grid.mjs +2 -1
- package/dist/angular-formio/fesm2022/formio-angular-grid.mjs.map +1 -0
- package/{fesm2022 → dist/angular-formio/fesm2022}/formio-angular-manager.mjs +1 -1
- package/dist/angular-formio/fesm2022/formio-angular-manager.mjs.map +1 -0
- package/{fesm2022 → dist/angular-formio/fesm2022}/formio-angular-resource.mjs +1 -1
- package/dist/angular-formio/fesm2022/formio-angular-resource.mjs.map +1 -0
- package/dist/angular-formio/fesm2022/formio-angular.mjs +1187 -0
- package/dist/angular-formio/fesm2022/formio-angular.mjs.map +1 -0
- package/{formio.common.d.ts → dist/angular-formio/formio.common.d.ts} +2 -2
- package/dist/angular-formio/formio.common.d.ts.map +1 -0
- package/{formio.config.d.ts → dist/angular-formio/formio.config.d.ts} +1 -1
- package/{formio.config.d.ts.map → dist/angular-formio/formio.config.d.ts.map} +1 -1
- package/{grid → dist/angular-formio/grid}/submission/SubmissionGridHeader.component.d.ts +1 -1
- package/{grid → dist/angular-formio/grid}/submission/SubmissionGridHeader.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/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/embed/ng-package.json +5 -0
- package/projects/angular-formio/embed/src/app.service.ts +59 -0
- package/projects/angular-formio/embed/src/builder.component.ts +19 -0
- package/projects/angular-formio/embed/src/embed.module.ts +23 -0
- package/projects/angular-formio/embed/src/formio.component.ts +27 -0
- package/projects/angular-formio/embed/src/index.ts +6 -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/package.json +37 -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 +554 -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 +95 -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 -583
- 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/formio.common.mjs +0 -11
- package/esm2022/formio.service.mjs +0 -62
- package/esm2022/grid/grid.component.mjs +0 -257
- package/fesm2022/formio-angular-auth.mjs.map +0 -1
- package/fesm2022/formio-angular-grid.mjs.map +0 -1
- package/fesm2022/formio-angular-manager.mjs.map +0 -1
- package/fesm2022/formio-angular-resource.mjs.map +0 -1
- package/fesm2022/formio-angular.mjs +0 -1186
- package/fesm2022/formio-angular.mjs.map +0 -1
- package/formio.common.d.ts.map +0 -1
- /package/{FormioBaseComponent.d.ts → dist/angular-formio/FormioBaseComponent.d.ts} +0 -0
- /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}/formioreport/formioreport.component.d.ts +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.component.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/auth/auth.config.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/auth/auth.module.mjs +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}/auth/login/login.component.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/auth/register/register.component.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/auth/resetpass/resetpass.component.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/components/alerts/formio.alerts.component.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/components/alerts/formio.alerts.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/components/alerts/parse-html-content.pipe.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/components/loader/formio.loader.component.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/custom-tags.service.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}/formio.module.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/formio.utils.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/grid/GridBodyComponent.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/grid/GridFooterComponent.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/grid/GridHeaderComponent.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/grid/form/FormGridBody.component.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/grid/form/FormGridFooter.component.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/grid/form/FormGridHeader.component.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/grid/form/index.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/grid/form/time-since.pipe.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/grid/formio-angular-grid.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/grid/grid.module.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/grid/grid.service.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/grid/index.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/grid/submission/SubmissionGridBody.component.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/grid/submission/SubmissionGridFooter.component.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/create/create.component.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/manager/delete/delete.component.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/manager/edit/edit.component.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/manager/form/form.component.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/manager/form-manager.config.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/manager/form-manager.module.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/index.component.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/manager/index.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/manager/submission/delete/delete.component.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/manager/submission/edit/edit.component.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/manager/submission/index/index.component.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/manager/submission/submission/submission.component.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/manager/submission/view/view.component.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/resource/create/create.component.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/resource/delete/delete.component.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/resource/formio-angular-resource.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/resource/index/index.component.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/resource/index.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/resource/resource.component.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/resource/resource.config.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/resource/resource.module.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/resource/resource.routes.mjs +0 -0
- /package/{esm2022 → dist/angular-formio/esm2022}/resource/resources.service.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}/edit/edit.component.d.ts.map +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}/resource.service.d.ts.map +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,221 @@
|
|
|
1
|
+
import { EventEmitter, Injectable, Inject } from '@angular/core';
|
|
2
|
+
import { FormioAuthConfig } from './auth.config';
|
|
3
|
+
import { FormioAppConfig } from '@formio/angular';
|
|
4
|
+
import { get, each } from 'lodash';
|
|
5
|
+
import { Formio } from '@formio/js';
|
|
6
|
+
|
|
7
|
+
@Injectable()
|
|
8
|
+
export class FormioAuthService {
|
|
9
|
+
public user: any;
|
|
10
|
+
public authenticated = false;
|
|
11
|
+
|
|
12
|
+
public loginForm: string;
|
|
13
|
+
public onLogin: EventEmitter<object>;
|
|
14
|
+
public onLogout: EventEmitter<object>;
|
|
15
|
+
|
|
16
|
+
public registerForm: string;
|
|
17
|
+
public onRegister: EventEmitter<object>;
|
|
18
|
+
public onUser: EventEmitter<object>;
|
|
19
|
+
public onError: EventEmitter<any>;
|
|
20
|
+
|
|
21
|
+
public resetPassForm: string;
|
|
22
|
+
public onResetPass: EventEmitter<object>;
|
|
23
|
+
|
|
24
|
+
public ready: Promise<boolean>;
|
|
25
|
+
public readyResolve: any;
|
|
26
|
+
public readyReject: any;
|
|
27
|
+
|
|
28
|
+
public projectReady?: Promise<any>;
|
|
29
|
+
public accessReady?: Promise<any>;
|
|
30
|
+
public userReady?: Promise<any>;
|
|
31
|
+
public formAccess: any = {};
|
|
32
|
+
public submissionAccess: any = {};
|
|
33
|
+
public roles: any;
|
|
34
|
+
public is: any = {};
|
|
35
|
+
|
|
36
|
+
constructor(
|
|
37
|
+
public appConfig: FormioAppConfig,
|
|
38
|
+
public config: FormioAuthConfig
|
|
39
|
+
) {
|
|
40
|
+
this.user = null;
|
|
41
|
+
|
|
42
|
+
if (this.appConfig && this.appConfig.appUrl) {
|
|
43
|
+
Formio.setBaseUrl(this.appConfig.apiUrl);
|
|
44
|
+
Formio.setProjectUrl(this.appConfig.appUrl);
|
|
45
|
+
Formio.formOnly = !!this.appConfig.formOnly;
|
|
46
|
+
} else {
|
|
47
|
+
console.error('You must provide an AppConfig within your application!');
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
this.loginForm =
|
|
51
|
+
this.appConfig.appUrl +
|
|
52
|
+
'/' +
|
|
53
|
+
get(this.config, 'login.form', 'user/login');
|
|
54
|
+
this.registerForm =
|
|
55
|
+
this.appConfig.appUrl +
|
|
56
|
+
'/' +
|
|
57
|
+
get(this.config, 'register.form', 'user/register');
|
|
58
|
+
this.resetPassForm =
|
|
59
|
+
this.appConfig.appUrl +
|
|
60
|
+
'/' +
|
|
61
|
+
get(this.config, 'register.form', 'resetpass');
|
|
62
|
+
this.onLogin = new EventEmitter();
|
|
63
|
+
this.onLogout = new EventEmitter();
|
|
64
|
+
this.onRegister = new EventEmitter();
|
|
65
|
+
this.onUser = new EventEmitter();
|
|
66
|
+
this.onError = new EventEmitter();
|
|
67
|
+
|
|
68
|
+
this.ready = new Promise((resolve: any, reject: any) => {
|
|
69
|
+
this.readyResolve = resolve;
|
|
70
|
+
this.readyReject = reject;
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
// Register for the core events.
|
|
74
|
+
Formio.events.on('formio.badToken', () => this.logoutError());
|
|
75
|
+
Formio.events.on('formio.sessionExpired', () => this.logoutError());
|
|
76
|
+
if (!this.config.delayAuth) {
|
|
77
|
+
this.init();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
onLoginSubmit(submission: object) {
|
|
82
|
+
this.setUser(submission);
|
|
83
|
+
this.onLogin.emit(submission);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
onRegisterSubmit(submission: object) {
|
|
87
|
+
this.setUser(submission);
|
|
88
|
+
this.onRegister.emit(submission);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
onResetPassSubmit(submission: object) {
|
|
92
|
+
this.onResetPass.emit(submission);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
init() {
|
|
96
|
+
this.projectReady = Formio.makeStaticRequest(this.appConfig.appUrl).then(
|
|
97
|
+
(project: any) => {
|
|
98
|
+
each(project.access, (access: any) => {
|
|
99
|
+
this.formAccess[access.type] = access.roles;
|
|
100
|
+
});
|
|
101
|
+
},
|
|
102
|
+
(): any => {
|
|
103
|
+
this.formAccess = {};
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
);
|
|
107
|
+
|
|
108
|
+
// Get the access for this project.
|
|
109
|
+
this.accessReady = Formio.makeStaticRequest(
|
|
110
|
+
this.appConfig.appUrl + '/access'
|
|
111
|
+
)
|
|
112
|
+
.then((access: any) => {
|
|
113
|
+
each(access.forms, (form: any) => {
|
|
114
|
+
this.submissionAccess[form.name] = {};
|
|
115
|
+
form.submissionAccess.forEach((subAccess: any) => {
|
|
116
|
+
this.submissionAccess[form.name][subAccess.type] = subAccess.roles;
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
this.roles = access.roles;
|
|
120
|
+
return access;
|
|
121
|
+
})
|
|
122
|
+
.catch((err): any => {
|
|
123
|
+
if (err === 'Token Expired' || err === 'Bad Token') {
|
|
124
|
+
this.setUser(null);
|
|
125
|
+
}
|
|
126
|
+
this.roles = {};
|
|
127
|
+
return null;
|
|
128
|
+
})
|
|
129
|
+
|
|
130
|
+
let currentUserPromise: Promise<any>;
|
|
131
|
+
if (this.config.oauth) {
|
|
132
|
+
// Make a fix to the hash to remove starting "/" that angular might put there.
|
|
133
|
+
if (window.location.hash && window.location.hash.match(/^#\/access_token/)) {
|
|
134
|
+
history.pushState(null, null, window.location.hash.replace(/^#\/access_token/, '#access_token'));
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// Initiate the SSO if they provide oauth settings.
|
|
138
|
+
currentUserPromise = Formio.ssoInit(this.config.oauth.type, this.config.oauth.options);
|
|
139
|
+
} else {
|
|
140
|
+
currentUserPromise = Formio.currentUser(null, {
|
|
141
|
+
ignoreCache: true
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
this.userReady = currentUserPromise.then((user: any) => {
|
|
146
|
+
this.setUser(user);
|
|
147
|
+
return user;
|
|
148
|
+
}).catch((err) => {
|
|
149
|
+
this.setUser(null);
|
|
150
|
+
throw err;
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
// Trigger we are redy when all promises have resolved.
|
|
154
|
+
if (this.accessReady) {
|
|
155
|
+
this.accessReady
|
|
156
|
+
.then(() => this.projectReady)
|
|
157
|
+
.then(() => this.userReady)
|
|
158
|
+
.then(() => this.readyResolve(true))
|
|
159
|
+
.catch((err: any) => this.readyReject(err));
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
setUser(user: any) {
|
|
164
|
+
const namespace = Formio.namespace || 'formio';
|
|
165
|
+
if (user) {
|
|
166
|
+
this.user = user;
|
|
167
|
+
localStorage.setItem(`${namespace}AppUser`, JSON.stringify(user));
|
|
168
|
+
this.setUserRoles();
|
|
169
|
+
Formio.setUser(user);
|
|
170
|
+
} else {
|
|
171
|
+
this.user = null;
|
|
172
|
+
this.is = {};
|
|
173
|
+
localStorage.removeItem(`${namespace}AppUser`);
|
|
174
|
+
Formio.clearCache();
|
|
175
|
+
Formio.setUser(null);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
this.authenticated = !!Formio.getToken();
|
|
179
|
+
this.onUser.emit(this.user);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
setUserRoles() {
|
|
183
|
+
if (this.accessReady) {
|
|
184
|
+
this.accessReady.then(() => {
|
|
185
|
+
each(this.roles, (role: any, roleName: string) => {
|
|
186
|
+
if (this.user.roles.indexOf(role._id) !== -1) {
|
|
187
|
+
this.is[roleName] = true;
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
logoutError() {
|
|
195
|
+
this.setUser(null);
|
|
196
|
+
const namespace = Formio.namespace || 'formio';
|
|
197
|
+
localStorage.removeItem(`${namespace}Token`);
|
|
198
|
+
this.onError.emit();
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
logout() {
|
|
202
|
+
const namespace = Formio.namespace || 'formio';
|
|
203
|
+
const tokenName = `${namespace}Token`;
|
|
204
|
+
|
|
205
|
+
localStorage.removeItem(tokenName);
|
|
206
|
+
if ((Formio as any).tokens && (Formio as any).tokens.hasOwnProperty(tokenName)) {
|
|
207
|
+
delete (Formio as any).tokens[tokenName];
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
Formio.logout()
|
|
211
|
+
.then(() => {
|
|
212
|
+
this.setUser(null);
|
|
213
|
+
if (localStorage.getItem(`${namespace}LogoutAuthUrl`)) {
|
|
214
|
+
window.open(localStorage.getItem(`${namespace}LogoutAuthUrl`), null, 'width=1020,height=618');
|
|
215
|
+
localStorage.removeItem(`${namespace}LogoutAuthUrl`);
|
|
216
|
+
}
|
|
217
|
+
this.onLogout.emit();
|
|
218
|
+
})
|
|
219
|
+
.catch(() => this.logoutError());
|
|
220
|
+
}
|
|
221
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { FormioAuthConfig } from './auth.config';
|
|
2
|
+
export { FormioAuthService } from './auth.service';
|
|
3
|
+
export { FormioAuthComponent } from './auth.component';
|
|
4
|
+
export { FormioAuthLoginComponent } from './login/login.component';
|
|
5
|
+
export { FormioAuthRegisterComponent } from './register/register.component';
|
|
6
|
+
export { FormioResetPassComponent } from './resetpass/resetpass.component';
|
|
7
|
+
export { FormioAuthRoutes } from './auth.routes';
|
|
8
|
+
export { FormioAuth } from './auth.module';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<formio [src]="service.loginForm" [renderOptions]="renderOptions" (submit)="service.onLoginSubmit($event)"></formio>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { FormioAuthService } from '../auth.service';
|
|
3
|
+
@Component({
|
|
4
|
+
templateUrl: './login.component.html'
|
|
5
|
+
})
|
|
6
|
+
export class FormioAuthLoginComponent {
|
|
7
|
+
public renderOptions: any = {
|
|
8
|
+
submitOnEnter: true
|
|
9
|
+
};
|
|
10
|
+
constructor(public service: FormioAuthService) {}
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<formio [src]="service.registerForm" [renderOptions]="renderOptions" (submit)="service.onRegisterSubmit($event)"></formio>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { FormioAuthService } from '../auth.service';
|
|
3
|
+
@Component({
|
|
4
|
+
templateUrl: './register.component.html'
|
|
5
|
+
})
|
|
6
|
+
export class FormioAuthRegisterComponent {
|
|
7
|
+
public renderOptions: any = {
|
|
8
|
+
submitOnEnter: true
|
|
9
|
+
};
|
|
10
|
+
constructor(public service: FormioAuthService) {}
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<formio [src]="service.resetPassForm" (submit)="service.onResetPassSubmit($event)"></formio>
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Inject, Injectable, InjectionToken, EventEmitter } from '@angular/core';
|
|
2
|
+
export const FormioAppConfig = new InjectionToken('formio-config');
|
|
3
|
+
import { Formio } from '@formio/js/sdk';
|
|
4
|
+
@Injectable()
|
|
5
|
+
export class FormioAppService {
|
|
6
|
+
baseUrl;
|
|
7
|
+
apiUrl;
|
|
8
|
+
projectUrl;
|
|
9
|
+
appUrl;
|
|
10
|
+
icons?: string;
|
|
11
|
+
formio: Formio;
|
|
12
|
+
user?: any;
|
|
13
|
+
onUser: EventEmitter<object> = new EventEmitter<object>();
|
|
14
|
+
constructor(@Inject(FormioAppConfig) config: {
|
|
15
|
+
apiUrl?: string,
|
|
16
|
+
baseUrl?: string,
|
|
17
|
+
appUrl?: string,
|
|
18
|
+
projectUrl?: string,
|
|
19
|
+
icons?: string,
|
|
20
|
+
config?: any
|
|
21
|
+
} = {}) {
|
|
22
|
+
this.baseUrl = this.apiUrl = config.apiUrl || config.baseUrl;
|
|
23
|
+
this.projectUrl = this.appUrl = config.appUrl || config.projectUrl;
|
|
24
|
+
if (this.baseUrl) {
|
|
25
|
+
Formio.setBaseUrl(this.baseUrl);
|
|
26
|
+
Formio.setProjectUrl(this.projectUrl);
|
|
27
|
+
if (config.icons) {
|
|
28
|
+
Formio.icons = config.icons;
|
|
29
|
+
}
|
|
30
|
+
if (config.config) {
|
|
31
|
+
for (let key in config.config) {
|
|
32
|
+
Formio.config[key] = config.config[key];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
Formio.events.on('formio.user', (user) => this.setUser(user));
|
|
36
|
+
this.formio = new Formio(this.projectUrl);
|
|
37
|
+
this.authenticate();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
setUser(user) {
|
|
42
|
+
this.user = user;
|
|
43
|
+
this.onUser.emit(user);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
logout() {
|
|
47
|
+
return Formio.logout().then(() => {
|
|
48
|
+
this.setUser(null);
|
|
49
|
+
Formio.clearCache();
|
|
50
|
+
}).catch(() => {
|
|
51
|
+
this.setUser(null);
|
|
52
|
+
Formio.clearCache();
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
authenticate() {
|
|
57
|
+
return this.formio.currentUser().then((user) => this.setUser(user)).catch(() => this.setUser(null));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Component, ElementRef, Input, ViewChild, OnChanges, Output, EventEmitter, AfterViewInit } from '@angular/core';
|
|
2
|
+
import { Formio } from '@formio/js/sdk';
|
|
3
|
+
|
|
4
|
+
@Component({
|
|
5
|
+
selector: 'formio-builder',
|
|
6
|
+
template: '<div #formio></div>'
|
|
7
|
+
})
|
|
8
|
+
export class FormioBuilder implements AfterViewInit {
|
|
9
|
+
@ViewChild('formio') element: ElementRef;
|
|
10
|
+
@Input() form?: Object | null;
|
|
11
|
+
@Input() options?: Object = {};
|
|
12
|
+
@Output() ready = new EventEmitter<Formio>();
|
|
13
|
+
@Output() error = new EventEmitter<any>();
|
|
14
|
+
ngAfterViewInit(): void {
|
|
15
|
+
Formio.builder(this.element.nativeElement, this.form, this.options).then((builder) => {
|
|
16
|
+
this.ready.emit(builder);
|
|
17
|
+
}).catch((err) => this.error.emit(err));
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { CommonModule } from "@angular/common";
|
|
3
|
+
import { FormioComponent } from "./formio.component";
|
|
4
|
+
import { FormioBuilder } from "./builder.component";
|
|
5
|
+
import { FormioAppService } from "./app.service";
|
|
6
|
+
|
|
7
|
+
@NgModule({
|
|
8
|
+
imports: [
|
|
9
|
+
CommonModule
|
|
10
|
+
],
|
|
11
|
+
declarations: [
|
|
12
|
+
FormioComponent,
|
|
13
|
+
FormioBuilder
|
|
14
|
+
],
|
|
15
|
+
exports: [
|
|
16
|
+
FormioComponent,
|
|
17
|
+
FormioBuilder
|
|
18
|
+
],
|
|
19
|
+
providers: [
|
|
20
|
+
FormioAppService
|
|
21
|
+
]
|
|
22
|
+
})
|
|
23
|
+
export class FormioEmbedModule {}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Component, ViewChild, ElementRef, Input, Output, EventEmitter, OnChanges, AfterViewInit } from '@angular/core';
|
|
2
|
+
import { Formio } from '@formio/js/sdk';
|
|
3
|
+
|
|
4
|
+
@Component({
|
|
5
|
+
selector: 'formio',
|
|
6
|
+
template: '<div #formio></div>'
|
|
7
|
+
})
|
|
8
|
+
export class FormioComponent implements AfterViewInit {
|
|
9
|
+
@Input() src?: string;
|
|
10
|
+
@Input() form?: Object | null;
|
|
11
|
+
@Input() submission?: Object | null;
|
|
12
|
+
@Input() options?: Object = {};
|
|
13
|
+
@Output() ready = new EventEmitter<Formio>();
|
|
14
|
+
@Output() submit = new EventEmitter<object>();
|
|
15
|
+
@Output() error = new EventEmitter<any>();
|
|
16
|
+
@ViewChild('formio') element: ElementRef;
|
|
17
|
+
ngAfterViewInit(): void {
|
|
18
|
+
Formio.createForm(this.element.nativeElement, this.src || this.form, this.options).then((form) => {
|
|
19
|
+
if (this.submission) {
|
|
20
|
+
form.submission = this.submission;
|
|
21
|
+
}
|
|
22
|
+
this.ready.emit(form);
|
|
23
|
+
form.on('submit', (submission) => this.submit.emit(submission));
|
|
24
|
+
form.on('error', (err) => this.error.emit(err));
|
|
25
|
+
}).catch((err) => this.error.emit(err));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Formio } from '@formio/js/sdk';
|
|
2
|
+
export { FormioComponent } from './formio.component';
|
|
3
|
+
export { FormioBuilder } from './builder.component';
|
|
4
|
+
export { FormioEmbedModule } from './embed.module';
|
|
5
|
+
export { FormioAppService, FormioAppConfig } from './app.service';
|
|
6
|
+
export { Formio };
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { Input, Output, EventEmitter, ViewChild, TemplateRef, Component } from '@angular/core';
|
|
2
|
+
import { each, clone } from 'lodash';
|
|
3
|
+
import { GridHeaderComponent } from './GridHeaderComponent';
|
|
4
|
+
import { GridService } from './grid.service';
|
|
5
|
+
import {FormioPromiseService} from '@formio/angular';
|
|
6
|
+
|
|
7
|
+
@Component({
|
|
8
|
+
template: ''
|
|
9
|
+
})
|
|
10
|
+
export class GridBodyComponent {
|
|
11
|
+
@Input() header: GridHeaderComponent;
|
|
12
|
+
@Input() actionAllowed: any;
|
|
13
|
+
@Output() rowSelect: EventEmitter<any>;
|
|
14
|
+
@Output() rowAction: EventEmitter<any>;
|
|
15
|
+
@ViewChild(TemplateRef, {static: true}) template: TemplateRef<any>;
|
|
16
|
+
public rows: Array<any>;
|
|
17
|
+
public loading: Boolean;
|
|
18
|
+
public firstItem = 0;
|
|
19
|
+
public lastItem = 0;
|
|
20
|
+
public skip = 0;
|
|
21
|
+
public limit = 0;
|
|
22
|
+
public total = 0;
|
|
23
|
+
constructor(public service: GridService) {
|
|
24
|
+
this.rowSelect = new EventEmitter();
|
|
25
|
+
this.rowAction = new EventEmitter();
|
|
26
|
+
this.loading = true;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
load(formio: FormioPromiseService, query?: any): Promise<any> {
|
|
30
|
+
return formio.loadForm(query);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
onRowSelect(event, row) {
|
|
34
|
+
event.preventDefault();
|
|
35
|
+
this.rowSelect.emit(row);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
onRowAction(event, row, action) {
|
|
39
|
+
event.preventDefault();
|
|
40
|
+
this.rowAction.emit({ row, action });
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Set the rows for this Grid body.
|
|
45
|
+
*
|
|
46
|
+
* @param query
|
|
47
|
+
* @param items
|
|
48
|
+
* @return any
|
|
49
|
+
*/
|
|
50
|
+
setRows(query: any, items: any) {
|
|
51
|
+
this.rows = [];
|
|
52
|
+
|
|
53
|
+
if (typeof items !== 'object') {
|
|
54
|
+
this.firstItem = 0;
|
|
55
|
+
this.lastItem = 0;
|
|
56
|
+
this.total = 0;
|
|
57
|
+
this.skip = 0;
|
|
58
|
+
this.loading = false;
|
|
59
|
+
this.service.setRows(this.rows);
|
|
60
|
+
|
|
61
|
+
return this.rows;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
this.firstItem = query.skip + 1;
|
|
65
|
+
this.lastItem = this.firstItem + items.length - 1;
|
|
66
|
+
if (this.lastItem === 0) {
|
|
67
|
+
this.firstItem = 0;
|
|
68
|
+
}
|
|
69
|
+
this.total = items.serverCount;
|
|
70
|
+
this.limit = query.limit;
|
|
71
|
+
this.skip = Math.floor(items.skip / query.limit) + 1;
|
|
72
|
+
this.loading = false;
|
|
73
|
+
each(items, (item: any) => {
|
|
74
|
+
this.rows.push(clone(item));
|
|
75
|
+
});
|
|
76
|
+
this.service.setRows(this.rows);
|
|
77
|
+
|
|
78
|
+
return this.rows;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { GridFooterPositions } from './types/grid-footer-positions';
|
|
2
|
+
import { Input, Output, ViewChild, TemplateRef, EventEmitter, Component } from '@angular/core';
|
|
3
|
+
import { GridHeaderComponent } from './GridHeaderComponent';
|
|
4
|
+
import { GridBodyComponent } from './GridBodyComponent';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
template: ''
|
|
8
|
+
})
|
|
9
|
+
export class GridFooterComponent {
|
|
10
|
+
@Input() header: GridHeaderComponent;
|
|
11
|
+
@Input() body: GridBodyComponent;
|
|
12
|
+
@Input() createText: String;
|
|
13
|
+
@Input() size: number;
|
|
14
|
+
@Input() actionAllowed: any;
|
|
15
|
+
@Output() pageChanged: EventEmitter<any>;
|
|
16
|
+
@Output() createItem: EventEmitter<any>;
|
|
17
|
+
@ViewChild(TemplateRef, {static: true}) template: TemplateRef<any>;
|
|
18
|
+
|
|
19
|
+
public footerPositions = GridFooterPositions;
|
|
20
|
+
|
|
21
|
+
constructor() {
|
|
22
|
+
this.pageChanged = new EventEmitter();
|
|
23
|
+
this.createItem = new EventEmitter();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Output, EventEmitter, ViewChild, TemplateRef, Input, Component } from '@angular/core';
|
|
2
|
+
import {FormioPromiseService} from '@formio/angular';
|
|
3
|
+
import {GridHeader} from './types/grid-header';
|
|
4
|
+
|
|
5
|
+
@Component({
|
|
6
|
+
template: ''
|
|
7
|
+
})
|
|
8
|
+
export class GridHeaderComponent {
|
|
9
|
+
@Input() actionAllowed: any;
|
|
10
|
+
@Output() sort: EventEmitter<GridHeader>;
|
|
11
|
+
@ViewChild(TemplateRef, {static: true}) template: TemplateRef<any>;
|
|
12
|
+
public headers: Array<GridHeader>;
|
|
13
|
+
constructor() {
|
|
14
|
+
this.headers = [];
|
|
15
|
+
this.sort = new EventEmitter();
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
get numHeaders() {
|
|
19
|
+
return this.headers.length;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
load(formio: FormioPromiseService, query?: any, columns?: Array<any>): Promise<any> {
|
|
23
|
+
return Promise.resolve([]);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<ng-template>
|
|
2
|
+
<tbody *ngIf="rows">
|
|
3
|
+
<tr *ngFor="let form of rows">
|
|
4
|
+
<td>
|
|
5
|
+
<div class="row">
|
|
6
|
+
<div class="col-sm-9">
|
|
7
|
+
<a routerLink="{{form._id}}/view" (click)="onRowSelect($event, form)" class="text-decoration-none"><h5>{{ form.title }}</h5></a>
|
|
8
|
+
<div class="form-updated small text-muted">
|
|
9
|
+
Updated {{ form.modified | timeSince }} ago
|
|
10
|
+
</div>
|
|
11
|
+
</div>
|
|
12
|
+
<div class="col-sm-3 d-flex justify-content-end align-items-center">
|
|
13
|
+
<button #create *ngIf="actionAllowed('formView')" class="btn btn-outline-secondary btn-sm form-btn form-btn-use" (click)="onRowAction($event, form, 'view')"><span class="fa fa-pencil bi bi-pencil"></span></button>
|
|
14
|
+
<button #view *ngIf="actionAllowed('formSubmission')" class="btn btn-outline-secondary btn-sm form-btn" (click)="onRowAction($event, form, 'submission')"><span class="fa fa-list-alt bi bi-table"></span></button>
|
|
15
|
+
<button #edit *ngIf="actionAllowed('formEdit')" class="btn btn-outline-secondary btn-sm form-btn" (click)="onRowAction($event, form, 'edit')"><span class="fa fa-edit bi bi-pencil-square"></span></button>
|
|
16
|
+
<button #delete *ngIf="actionAllowed('formDelete')" class="btn btn-secondary btn-sm form-btn form-btn-delete" (click)="onRowAction($event, form, 'delete')" title="Delete form"><span class="fa fa-trash bi bi-trash"></span></button>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
</td>
|
|
20
|
+
</tr>
|
|
21
|
+
</tbody>
|
|
22
|
+
</ng-template>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Component, ElementRef, OnDestroy, ViewChild, ViewChildren } from '@angular/core';
|
|
2
|
+
import { GridBodyComponent } from '../GridBodyComponent';
|
|
3
|
+
import { FormioPromiseService } from '@formio/angular';
|
|
4
|
+
import { Tooltip } from 'bootstrap';
|
|
5
|
+
@Component({
|
|
6
|
+
selector: 'form-grid-body',
|
|
7
|
+
styleUrls: ['./FormGridBody.component.scss'],
|
|
8
|
+
templateUrl: './FormGridBody.component.html'
|
|
9
|
+
})
|
|
10
|
+
export class FormGridBodyComponent extends GridBodyComponent implements OnDestroy {
|
|
11
|
+
@ViewChildren('create') createBtns: ElementRef[];
|
|
12
|
+
@ViewChildren('view') viewBtns: ElementRef[];
|
|
13
|
+
@ViewChildren('edit') editBtns: ElementRef[];
|
|
14
|
+
@ViewChildren('permissions') permissionsBtns: ElementRef[];
|
|
15
|
+
@ViewChildren('delete') deleteBtns: ElementRef[];
|
|
16
|
+
public tooltips: Array<Tooltip> = [];
|
|
17
|
+
|
|
18
|
+
load(formio: FormioPromiseService, query?: any) {
|
|
19
|
+
query = query || {};
|
|
20
|
+
return formio.loadForms({ params: query })
|
|
21
|
+
.then((forms: any) => this.setRows(query, forms))
|
|
22
|
+
.then(() => this.attachTooltips());
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
attachTooltips() {
|
|
26
|
+
this.createBtns.forEach((el: ElementRef) => {
|
|
27
|
+
this.tooltips.push(new Tooltip(el.nativeElement, {title: 'Create'}));
|
|
28
|
+
});
|
|
29
|
+
this.editBtns.forEach((el: ElementRef) => {
|
|
30
|
+
this.tooltips.push(new Tooltip(el.nativeElement, {title: 'Edit'}));
|
|
31
|
+
});
|
|
32
|
+
this.viewBtns.forEach((el: ElementRef) => {
|
|
33
|
+
this.tooltips.push(new Tooltip(el.nativeElement, {title: 'View'}));
|
|
34
|
+
})
|
|
35
|
+
this.permissionsBtns.forEach((el: ElementRef) => {
|
|
36
|
+
this.tooltips.push(new Tooltip(el.nativeElement, {title: 'Permissions'}));
|
|
37
|
+
});
|
|
38
|
+
this.deleteBtns.forEach((el: ElementRef) => {
|
|
39
|
+
this.tooltips.push(new Tooltip(el.nativeElement, {title: 'Delete'}));
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
ngOnDestroy(): void {
|
|
44
|
+
this.tooltips.forEach((tootip: Tooltip) => tootip.dispose());
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<ng-template #footer let-position="position" let-label="label">
|
|
2
|
+
<thead class="formio-grid-footer" *ngIf="position === footerPositions.top">
|
|
3
|
+
<ng-container [ngTemplateOutlet]="defaultFooterTemplate" [ngTemplateOutletContext]="{ label: label }"></ng-container>
|
|
4
|
+
</thead>
|
|
5
|
+
<tfoot class="formio-grid-footer" *ngIf="position === footerPositions.bottom">
|
|
6
|
+
<ng-container [ngTemplateOutlet]="defaultFooterTemplate" [ngTemplateOutletContext]="{ label: label }"></ng-container>
|
|
7
|
+
</tfoot>
|
|
8
|
+
</ng-template>
|
|
9
|
+
|
|
10
|
+
<ng-template let-label="label" #defaultFooterTemplate>
|
|
11
|
+
<tr>
|
|
12
|
+
<td *ngIf="header" [colSpan]="header.numHeaders">
|
|
13
|
+
<button *ngIf="actionAllowed('formCreate')" class="btn btn-primary form-btn-use float-start" (click)="createItem.emit('form')"><em class="fa fa-plus bi bi-plus-lg"></em> {{ createText }}</button>
|
|
14
|
+
<span class="float-end item-counter"><span class="page-num">{{ body.firstItem }} - {{ body.lastItem }}</span> / {{ body.total }} total</span>
|
|
15
|
+
<span [attr.aria-label]="label" role="navigation">
|
|
16
|
+
<pagination [totalItems]="body.total" [itemsPerPage]="body.limit" [(ngModel)]="body.skip" (pageChanged)="pageChanged.emit($event)" [maxSize]="size" class="justify-content-center pagination-sm">
|
|
17
|
+
</pagination>
|
|
18
|
+
</span>
|
|
19
|
+
</td>
|
|
20
|
+
</tr>
|
|
21
|
+
</ng-template>
|