{"version":3,"sources":["webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app/accounts/account-details/account-details.component.html","webpack:///./src/app/accounts/account-details/account-details.component.scss","webpack:///./src/app/accounts/account-details/account-details.component.ts","webpack:///./src/app/accounts/account-manager/account-manager.component.html","webpack:///./src/app/accounts/account-manager/account-manager.component.scss","webpack:///./src/app/accounts/account-manager/account-manager.component.ts","webpack:///./src/app/accounts/accounts.module.ts","webpack:///./src/app/accounts/change-password/change-password.component.html","webpack:///./src/app/accounts/change-password/change-password.component.scss","webpack:///./src/app/accounts/change-password/change-password.component.ts","webpack:///./src/app/accounts/confirm-email/confirm-email.component.html","webpack:///./src/app/accounts/confirm-email/confirm-email.component.scss","webpack:///./src/app/accounts/confirm-email/confirm-email.component.ts","webpack:///./src/app/accounts/force-change-password/force-change-password.component.html","webpack:///./src/app/accounts/force-change-password/force-change-password.component.scss","webpack:///./src/app/accounts/force-change-password/force-change-password.component.ts","webpack:///./src/app/accounts/forgot-password/forgot-password.component.html","webpack:///./src/app/accounts/forgot-password/forgot-password.component.scss","webpack:///./src/app/accounts/forgot-password/forgot-password.component.ts","webpack:///./src/app/accounts/index.ts","webpack:///./src/app/accounts/pending-approval/pending-approval.component.html","webpack:///./src/app/accounts/pending-approval/pending-approval.component.scss","webpack:///./src/app/accounts/pending-approval/pending-approval.component.ts","webpack:///./src/app/accounts/profile-editor/profile-editor.component.html","webpack:///./src/app/accounts/profile-editor/profile-editor.component.scss","webpack:///./src/app/accounts/profile-editor/profile-editor.component.ts","webpack:///./src/app/accounts/registration/registration.component.html","webpack:///./src/app/accounts/registration/registration.component.scss","webpack:///./src/app/accounts/registration/registration.component.ts","webpack:///./src/app/accounts/reset-password/reset-password.component.html","webpack:///./src/app/accounts/reset-password/reset-password.component.scss","webpack:///./src/app/accounts/reset-password/reset-password.component.ts","webpack:///./src/app/accounts/sign-in/sign-in.component.html","webpack:///./src/app/accounts/sign-in/sign-in.component.scss","webpack:///./src/app/accounts/sign-in/sign-in.component.ts","webpack:///./src/app/accounts/sign-out/sign-out.component.html","webpack:///./src/app/accounts/sign-out/sign-out.component.scss","webpack:///./src/app/accounts/sign-out/sign-out.component.ts","webpack:///./src/app/accounts/sign-up/sign-up.component.html","webpack:///./src/app/accounts/sign-up/sign-up.component.scss","webpack:///./src/app/accounts/sign-up/sign-up.component.ts","webpack:///./src/app/app-routing.module.ts","webpack:///./src/app/app.component.html","webpack:///./src/app/app.component.scss","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/auth/auth.guard.ts","webpack:///./src/app/auth/auth.module.ts","webpack:///./src/app/auth/auth.service.ts","webpack:///./src/app/auth/index.ts","webpack:///./src/app/auth/jwt-token-interceptor.ts","webpack:///./src/app/data-services/account.service.ts","webpack:///./src/app/data-services/data-services.module.ts","webpack:///./src/app/data-services/diagnostics.service.ts","webpack:///./src/app/data-services/document.service.ts","webpack:///./src/app/data-services/feedback.service.ts","webpack:///./src/app/data-services/index.ts","webpack:///./src/app/data-services/organization.service.ts","webpack:///./src/app/data-services/research.service.ts","webpack:///./src/app/data-services/user.service.ts","webpack:///./src/app/examples/date-pipe-example/date-pipe-example.component.html","webpack:///./src/app/examples/date-pipe-example/date-pipe-example.component.scss","webpack:///./src/app/examples/date-pipe-example/date-pipe-example.component.ts","webpack:///./src/app/examples/examples-routing.module.ts","webpack:///./src/app/examples/examples.module.ts","webpack:///./src/app/examples/forbidden-example/forbidden-example.component.html","webpack:///./src/app/examples/forbidden-example/forbidden-example.component.scss","webpack:///./src/app/examples/forbidden-example/forbidden-example.component.ts","webpack:///./src/app/examples/loading-example/loading-example.component.html","webpack:///./src/app/examples/loading-example/loading-example.component.scss","webpack:///./src/app/examples/loading-example/loading-example.component.ts","webpack:///./src/app/examples/message-box-example/message-box-example.component.html","webpack:///./src/app/examples/message-box-example/message-box-example.component.scss","webpack:///./src/app/examples/message-box-example/message-box-example.component.ts","webpack:///./src/app/examples/organization-search-typeahead-example/organization-search-typeahead-example.component.html","webpack:///./src/app/examples/organization-search-typeahead-example/organization-search-typeahead-example.component.scss","webpack:///./src/app/examples/organization-search-typeahead-example/organization-search-typeahead-example.component.ts","webpack:///./src/app/home/home.module.ts","webpack:///./src/app/home/index.ts","webpack:///./src/app/home/splash/splash.component.html","webpack:///./src/app/home/splash/splash.component.scss","webpack:///./src/app/home/splash/splash.component.ts","webpack:///./src/app/models/cr-report.ts","webpack:///./src/app/models/index.ts","webpack:///./src/app/models/mod.ts","webpack:///./src/app/models/organization.ts","webpack:///./src/app/models/rni.ts","webpack:///./src/app/models/role.ts","webpack:///./src/app/models/signed-in-user.ts","webpack:///./src/app/models/site.ts","webpack:///./src/app/models/user.ts","webpack:///./src/app/organizations/index.ts","webpack:///./src/app/organizations/organization-details/organization-details.component.html","webpack:///./src/app/organizations/organization-details/organization-details.component.scss","webpack:///./src/app/organizations/organization-details/organization-details.component.ts","webpack:///./src/app/organizations/organization-list/organization-list.component.html","webpack:///./src/app/organizations/organization-list/organization-list.component.scss","webpack:///./src/app/organizations/organization-list/organization-list.component.ts","webpack:///./src/app/organizations/organization-search-typeahead/organization-search-typeahead.component.html","webpack:///./src/app/organizations/organization-search-typeahead/organization-search-typeahead.component.scss","webpack:///./src/app/organizations/organization-search-typeahead/organization-search-typeahead.component.ts","webpack:///./src/app/organizations/organizations.module.ts","webpack:///./src/app/research/continuing-review/continuing-review.component.html","webpack:///./src/app/research/continuing-review/continuing-review.component.scss","webpack:///./src/app/research/continuing-review/continuing-review.component.ts","webpack:///./src/app/research/index.ts","webpack:///./src/app/research/invitation-list/invitation-list.component.html","webpack:///./src/app/research/invitation-list/invitation-list.component.scss","webpack:///./src/app/research/invitation-list/invitation-list.component.ts","webpack:///./src/app/research/modification-editor/modification-editor.component.html","webpack:///./src/app/research/modification-editor/modification-editor.component.scss","webpack:///./src/app/research/modification-editor/modification-editor.component.ts","webpack:///./src/app/research/modification-reader/modification-reader.component.html","webpack:///./src/app/research/modification-reader/modification-reader.component.scss","webpack:///./src/app/research/modification-reader/modification-reader.component.ts","webpack:///./src/app/research/modification-review-details/modification-review-details.component.html","webpack:///./src/app/research/modification-review-details/modification-review-details.component.scss","webpack:///./src/app/research/modification-review-details/modification-review-details.component.ts","webpack:///./src/app/research/notify-dialog/notify-dialog.component.html","webpack:///./src/app/research/notify-dialog/notify-dialog.component.scss","webpack:///./src/app/research/notify-dialog/notify-dialog.component.ts","webpack:///./src/app/research/reportable-new-information-create/reportable-new-information-create.component.html","webpack:///./src/app/research/reportable-new-information-create/reportable-new-information-create.component.scss","webpack:///./src/app/research/reportable-new-information-create/reportable-new-information-create.component.ts","webpack:///./src/app/research/reportable-new-information-editor/reportable-new-information-editor.component.html","webpack:///./src/app/research/reportable-new-information-editor/reportable-new-information-editor.component.scss","webpack:///./src/app/research/reportable-new-information-editor/reportable-new-information-editor.component.ts","webpack:///./src/app/research/reportable-new-information/reportable-new-information.component.html","webpack:///./src/app/research/reportable-new-information/reportable-new-information.component.scss","webpack:///./src/app/research/reportable-new-information/reportable-new-information.component.ts","webpack:///./src/app/research/research.module.ts","webpack:///./src/app/research/review-dates/review-dates.component.html","webpack:///./src/app/research/review-dates/review-dates.component.scss","webpack:///./src/app/research/review-dates/review-dates.component.ts","webpack:///./src/app/research/review-details/review-details.component.html","webpack:///./src/app/research/review-details/review-details.component.scss","webpack:///./src/app/research/review-details/review-details.component.ts","webpack:///./src/app/research/rni-editor/rni-editor.component.html","webpack:///./src/app/research/rni-editor/rni-editor.component.scss","webpack:///./src/app/research/rni-editor/rni-editor.component.ts","webpack:///./src/app/research/rni-reader/rni-reader.component.html","webpack:///./src/app/research/rni-reader/rni-reader.component.scss","webpack:///./src/app/research/rni-reader/rni-reader.component.ts","webpack:///./src/app/research/shared.service.ts","webpack:///./src/app/research/site-contacts-editor/site-contacts-editor.component.html","webpack:///./src/app/research/site-contacts-editor/site-contacts-editor.component.scss","webpack:///./src/app/research/site-contacts-editor/site-contacts-editor.component.ts","webpack:///./src/app/research/site-contacts-reader/site-contacts-reader.component.html","webpack:///./src/app/research/site-contacts-reader/site-contacts-reader.component.scss","webpack:///./src/app/research/site-contacts-reader/site-contacts-reader.component.ts","webpack:///./src/app/research/site-details/site-details.component.html","webpack:///./src/app/research/site-details/site-details.component.scss","webpack:///./src/app/research/site-details/site-details.component.ts","webpack:///./src/app/research/site-modification-create/site-modification-create.component.html","webpack:///./src/app/research/site-modification-create/site-modification-create.component.scss","webpack:///./src/app/research/site-modification-create/site-modification-create.component.ts","webpack:///./src/app/research/site-modification-editor/site-modification-editor.component.html","webpack:///./src/app/research/site-modification-editor/site-modification-editor.component.scss","webpack:///./src/app/research/site-modification-editor/site-modification-editor.component.ts","webpack:///./src/app/research/site-modification/site-modification.component.html","webpack:///./src/app/research/site-modification/site-modification.component.scss","webpack:///./src/app/research/site-modification/site-modification.component.ts","webpack:///./src/app/research/study-details/study-details.component.html","webpack:///./src/app/research/study-details/study-details.component.scss","webpack:///./src/app/research/study-details/study-details.component.ts","webpack:///./src/app/research/study-list/study-list.component.html","webpack:///./src/app/research/study-list/study-list.component.scss","webpack:///./src/app/research/study-list/study-list.component.ts","webpack:///./src/app/shared/ag-grid-defaults.ts","webpack:///./src/app/shared/appcues-widget/appcues-widget.component.html","webpack:///./src/app/shared/appcues-widget/appcues-widget.component.scss","webpack:///./src/app/shared/appcues-widget/appcues-widget.component.ts","webpack:///./src/app/shared/appcues.service.ts","webpack:///./src/app/shared/date-parsers/ngb-date-US-parser-formatter.ts","webpack:///./src/app/shared/delete-row/delete-row.component.html","webpack:///./src/app/shared/delete-row/delete-row.component.scss","webpack:///./src/app/shared/delete-row/delete-row.component.ts","webpack:///./src/app/shared/document-download-cell/document-download-cell.component.html","webpack:///./src/app/shared/document-download-cell/document-download-cell.component.scss","webpack:///./src/app/shared/document-download-cell/document-download-cell.component.ts","webpack:///./src/app/shared/document-download-list-cell/document-download-list-cell.component.html","webpack:///./src/app/shared/document-download-list-cell/document-download-list-cell.component.scss","webpack:///./src/app/shared/document-download-list-cell/document-download-list-cell.component.ts","webpack:///./src/app/shared/document-download/document-download.component.html","webpack:///./src/app/shared/document-download/document-download.component.scss","webpack:///./src/app/shared/document-download/document-download.component.ts","webpack:///./src/app/shared/document-upload-cell/document-upload-cell.component.html","webpack:///./src/app/shared/document-upload-cell/document-upload-cell.component.scss","webpack:///./src/app/shared/document-upload-cell/document-upload-cell.component.ts","webpack:///./src/app/shared/document-upload-list-cell/document-upload-list-cell.component.html","webpack:///./src/app/shared/document-upload-list-cell/document-upload-list-cell.component.scss","webpack:///./src/app/shared/document-upload-list-cell/document-upload-list-cell.component.ts","webpack:///./src/app/shared/document-upload-list/document-upload-list.component.html","webpack:///./src/app/shared/document-upload-list/document-upload-list.component.scss","webpack:///./src/app/shared/document-upload-list/document-upload-list.component.ts","webpack:///./src/app/shared/document-upload/document-upload.component.html","webpack:///./src/app/shared/document-upload/document-upload.component.scss","webpack:///./src/app/shared/document-upload/document-upload.component.ts","webpack:///./src/app/shared/error-response-interceptor.ts","webpack:///./src/app/shared/feedback-dialog/feedback-dialog.component.html","webpack:///./src/app/shared/feedback-dialog/feedback-dialog.component.scss","webpack:///./src/app/shared/feedback-dialog/feedback-dialog.component.ts","webpack:///./src/app/shared/footer/footer.component.html","webpack:///./src/app/shared/footer/footer.component.scss","webpack:///./src/app/shared/footer/footer.component.ts","webpack:///./src/app/shared/forbidden/forbidden.component.ts","webpack:///./src/app/shared/header/header.component.html","webpack:///./src/app/shared/header/header.component.scss","webpack:///./src/app/shared/header/header.component.ts","webpack:///./src/app/shared/help-dialog/help-dialog.component.html","webpack:///./src/app/shared/help-dialog/help-dialog.component.scss","webpack:///./src/app/shared/help-dialog/help-dialog.component.ts","webpack:///./src/app/shared/index.ts","webpack:///./src/app/shared/invitation-count/invitation-count.component.html","webpack:///./src/app/shared/invitation-count/invitation-count.component.scss","webpack:///./src/app/shared/invitation-count/invitation-count.component.ts","webpack:///./src/app/shared/layouts/centered-layout/centered-layout.component.ts","webpack:///./src/app/shared/layouts/empty-layout/empty-layout.component.ts","webpack:///./src/app/shared/layouts/main-layout/main-layout.component.html","webpack:///./src/app/shared/layouts/main-layout/main-layout.component.scss","webpack:///./src/app/shared/layouts/main-layout/main-layout.component.ts","webpack:///./src/app/shared/loading/loading.component.html","webpack:///./src/app/shared/loading/loading.component.scss","webpack:///./src/app/shared/loading/loading.component.ts","webpack:///./src/app/shared/message-box.service.ts","webpack:///./src/app/shared/message-box/message-box.component.html","webpack:///./src/app/shared/message-box/message-box.component.scss","webpack:///./src/app/shared/message-box/message-box.component.ts","webpack:///./src/app/shared/nav-bar/nav-bar.component.html","webpack:///./src/app/shared/nav-bar/nav-bar.component.scss","webpack:///./src/app/shared/nav-bar/nav-bar.component.ts","webpack:///./src/app/shared/no-cache-interceptor.ts","webpack:///./src/app/shared/not-found/not-found.component.ts","webpack:///./src/app/shared/object-utils.ts","webpack:///./src/app/shared/password-validation.ts","webpack:///./src/app/shared/pending-approval-count/pending-approval-count.component.html","webpack:///./src/app/shared/pending-approval-count/pending-approval-count.component.scss","webpack:///./src/app/shared/pending-approval-count/pending-approval-count.component.ts","webpack:///./src/app/shared/pending-changes.guard.ts","webpack:///./src/app/shared/read-more/read-more.component.html","webpack:///./src/app/shared/read-more/read-more.component.scss","webpack:///./src/app/shared/read-more/read-more.component.ts","webpack:///./src/app/shared/router-link-cell/router-link-cell.component.html","webpack:///./src/app/shared/router-link-cell/router-link-cell.component.scss","webpack:///./src/app/shared/router-link-cell/router-link-cell.component.ts","webpack:///./src/app/shared/shared.module.ts","webpack:///./src/app/shared/step-list/step-list.component.html","webpack:///./src/app/shared/step-list/step-list.component.scss","webpack:///./src/app/shared/step-list/step-list.component.ts","webpack:///./src/app/users/create-user-dialog/create-user-dialog.component.html","webpack:///./src/app/users/create-user-dialog/create-user-dialog.component.scss","webpack:///./src/app/users/create-user-dialog/create-user-dialog.component.ts","webpack:///./src/app/users/delete-user-button/delete-user-button.component.html","webpack:///./src/app/users/delete-user-button/delete-user-button.component.scss","webpack:///./src/app/users/delete-user-button/delete-user-button.component.ts","webpack:///./src/app/users/delete-user-row/delete-user-row.component.html","webpack:///./src/app/users/delete-user-row/delete-user-row.component.scss","webpack:///./src/app/users/delete-user-row/delete-user-row.component.ts","webpack:///./src/app/users/index.ts","webpack:///./src/app/users/user-approval-editor/user-approval-editor.component.html","webpack:///./src/app/users/user-approval-editor/user-approval-editor.component.scss","webpack:///./src/app/users/user-approval-editor/user-approval-editor.component.ts","webpack:///./src/app/users/user-contact-info-editor/user-contact-info-editor.component.html","webpack:///./src/app/users/user-contact-info-editor/user-contact-info-editor.component.scss","webpack:///./src/app/users/user-contact-info-editor/user-contact-info-editor.component.ts","webpack:///./src/app/users/user-list/user-list.component.html","webpack:///./src/app/users/user-list/user-list.component.scss","webpack:///./src/app/users/user-list/user-list.component.ts","webpack:///./src/app/users/user-lock-editor/user-lock-editor.component.html","webpack:///./src/app/users/user-lock-editor/user-lock-editor.component.scss","webpack:///./src/app/users/user-lock-editor/user-lock-editor.component.ts","webpack:///./src/app/users/user-role-editor/user-role-editor.component.html","webpack:///./src/app/users/user-role-editor/user-role-editor.component.scss","webpack:///./src/app/users/user-role-editor/user-role-editor.component.ts","webpack:///./src/app/users/user-role-info-tooltip/user-role-info-tooltip.component.html","webpack:///./src/app/users/user-role-info-tooltip/user-role-info-tooltip.component.scss","webpack:///./src/app/users/user-role-info-tooltip/user-role-info-tooltip.component.ts","webpack:///./src/app/users/user-row-actions-editor/user-row-actions-editor.component.html","webpack:///./src/app/users/user-row-actions-editor/user-row-actions-editor.component.scss","webpack:///./src/app/users/user-row-actions-editor/user-row-actions-editor.component.ts","webpack:///./src/app/users/user-search-typeahead/user-search-typeahead.component.html","webpack:///./src/app/users/user-search-typeahead/user-search-typeahead.component.scss","webpack:///./src/app/users/user-search-typeahead/user-search-typeahead.component.ts","webpack:///./src/app/users/users.module.ts","webpack:///./src/environments/environment.ts","webpack:///./src/main.ts"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","module.exports = \"\\r\\n
\\r\\n
\\r\\n

{{ user.name }} \\r\\n \\r\\n

\\r\\n
{{ user.organizationName }}
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Delete account\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\"","module.exports = \".user-roles {\\n list-style: none;\\n padding: 0;\\n margin: 0; }\\n .user-roles li {\\n display: inline; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYWNjb3VudHMvYWNjb3VudC1kZXRhaWxzL0Q6XFxKZW5raW5zXFx3b3Jrc3BhY2VcXEV4Y2hhbmdlVUktQWRob2NcXHNyY1xcSHVyb24uRXhjaGFuZ2UuVUkvc3JjXFxhcHBcXGFjY291bnRzXFxhY2NvdW50LWRldGFpbHNcXGFjY291bnQtZGV0YWlscy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGdCQUFnQjtFQUNoQixVQUFVO0VBQ1YsU0FBUyxFQUFBO0VBSGI7SUFNUSxlQUFlLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9hY2NvdW50cy9hY2NvdW50LWRldGFpbHMvYWNjb3VudC1kZXRhaWxzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnVzZXItcm9sZXMge1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBtYXJnaW46IDA7XHJcblxyXG4gICAgbGkge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgIH1cclxufSJdfQ== */\"","import { Component, OnInit, Input } from '@angular/core';\r\nimport { User } from '../../models';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { UserService, UserContactInfo } from '../../data-services'\r\nimport { Location } from '@angular/common';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-account-details',\r\n templateUrl: './account-details.component.html',\r\n styleUrls: ['./account-details.component.scss']\r\n})\r\nexport class AccountDetailsComponent implements OnInit {\r\n\r\n @Input() user: User;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private userService: UserService,\r\n private location: Location,\r\n private toastr: ToastrService) { }\r\n\r\n ngOnInit() {\r\n var accountId = this.route.snapshot.paramMap.get('accountId')\r\n\r\n this.userService.getUser(accountId)\r\n .subscribe((user: User) => {\r\n this.user = user;\r\n });\r\n }\r\n\r\n updateContactInfo(contactInfo: UserContactInfo) {\r\n\r\n this.userService.updateContactInfo(this.user.id, contactInfo)\r\n .subscribe(() => {\r\n this.toastr.success(`${this.user.firstName}'s account has been updated successfully`, \"Success!\");\r\n this.loadUser(this.user.id);\r\n });\r\n }\r\n\r\n onDenyUser() {\r\n this.location.back();\r\n }\r\n\r\n onDeleteUser() {\r\n this.location.back();\r\n }\r\n\r\n loadUser(id: string) {\r\n this.userService.getUser(id).subscribe(u => {\r\n this.user = u;\r\n })\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n

Account Management

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FjY291bnRzL2FjY291bnQtbWFuYWdlci9hY2NvdW50LW1hbmFnZXIuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-account-manager',\r\n templateUrl: './account-manager.component.html',\r\n styleUrls: ['./account-manager.component.scss']\r\n})\r\nexport class AccountManagerComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { MarkdownModule } from 'ngx-markdown';\r\n\r\nimport { OrganizationsModule } from '../organizations';\r\nimport { UsersModule } from '../users';\r\n\r\nimport { AccountDetailsComponent } from './account-details/account-details.component';\r\nimport { AccountManagerComponent } from './account-manager/account-manager.component';\r\nimport { ChangePasswordComponent } from './change-password/change-password.component';\r\nimport { ConfirmEmailComponent } from './confirm-email/confirm-email.component';\r\nimport { ForgotPasswordComponent } from './forgot-password/forgot-password.component';\r\nimport { PendingApprovalComponent } from './pending-approval/pending-approval.component';\r\nimport { ProfileEditorComponent } from './profile-editor/profile-editor.component';\r\nimport { ResetPasswordComponent } from './reset-password/reset-password.component';\r\nimport { SignInComponent } from './sign-in/sign-in.component';\r\nimport { SignUpComponent } from './sign-up/sign-up.component';\r\nimport { ForceChangePasswordComponent } from './force-change-password/force-change-password.component';\r\nimport { SharedModule } from '../shared';\r\nimport { RegistrationComponent } from './registration/registration.component';\r\nimport { SignOutComponent } from './sign-out/sign-out.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n AccountDetailsComponent,\r\n AccountManagerComponent,\r\n ChangePasswordComponent,\r\n ConfirmEmailComponent,\r\n ForgotPasswordComponent,\r\n PendingApprovalComponent,\r\n ProfileEditorComponent,\r\n ResetPasswordComponent,\r\n SignInComponent,\r\n SignUpComponent,\r\n ForceChangePasswordComponent,\r\n RegistrationComponent,\r\n SignOutComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n MarkdownModule.forChild(),\r\n\r\n NgbModule,\r\n ToastrModule,\r\n\r\n OrganizationsModule,\r\n UsersModule,\r\n SharedModule\r\n ]\r\n})\r\nexport class AccountsModule { }\r\n","module.exports = \"\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
Required.
\\r\\n
The password you supplied does not match your current password.
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Your password must be at least 13 characters long and have at least 6 unique characters.\\r\\n
Required.
\\r\\n
Your password must be at least {{newPassword.errors.minlength.requiredLength}} characters long.
\\r\\n
Your password must have at least {{ newPassword.errors.minUnique.required }} unique characters.
\\r\\n
The password you entered is commonly used and considered insecure. Please supply a different password.
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
Required.
\\r\\n
Passwords must match.
\\r\\n
\\r\\n \\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FjY291bnRzL2NoYW5nZS1wYXNzd29yZC9jaGFuZ2UtcGFzc3dvcmQuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { PasswordValidation } from '../../shared';\r\nimport { AccountService, ChangePasswordRequest } from '../../data-services';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ValidationProblemDetails } from 'src/app/shared';\r\n\r\n@Component({\r\n selector: 'app-change-password',\r\n templateUrl: './change-password.component.html',\r\n styleUrls: ['./change-password.component.scss']\r\n})\r\nexport class ChangePasswordComponent implements OnInit {\r\n\r\n theForm: FormGroup = this.formBuilder.group({\r\n currentPassword: ['', Validators.compose([Validators.required])],\r\n newPassword: ['', Validators.compose([Validators.required, Validators.minLength(13), PasswordValidation.minUnique(6)])],\r\n confirmPassword: ['', Validators.required]\r\n }, { validators: PasswordValidation.MatchPassword('newPassword', 'confirmPassword') });\r\n\r\n submitted = false;\r\n\r\n @Output() passwordChanged = new EventEmitter();\r\n\r\n constructor(\r\n private formBuilder: FormBuilder, \r\n private accountService: AccountService,\r\n private toastr: ToastrService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onSubmit() {\r\n // the user tried to submit\r\n this.submitted = true;\r\n\r\n if (this.theForm.invalid) {\r\n return;\r\n }\r\n\r\n // copy the form value\r\n var request = this.theForm.value as ChangePasswordRequest;\r\n \r\n this.accountService.changePassword(request)\r\n .subscribe(() => {\r\n this.toastr.success(\"Your password has been changed.\", \"Success\");\r\n this.passwordChanged.next({});\r\n },\r\n (err: ValidationProblemDetails) => {\r\n if (err.errors && err.errors['']) {\r\n \r\n if (err.errors[''].includes('PasswordMismatch')) {\r\n this.currentPassword.setErrors({ mismatch: true });\r\n }\r\n\r\n if (err.errors[''].includes('BlackListedPassword')) {\r\n this.newPassword.setErrors({ blacklisted: true });\r\n }\r\n\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Accessor for the current password form control.\r\n */\r\n get currentPassword() {\r\n return this.theForm.controls['currentPassword'];\r\n }\r\n\r\n /**\r\n * Accessor for the new password form control.\r\n */\r\n get newPassword() {\r\n return this.theForm.controls['newPassword'];\r\n }\r\n\r\n /**\r\n * Accessor for the confirm password form control.\r\n */\r\n get confirmPassword() {\r\n return this.theForm.controls['confirmPassword'];\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Confirming your email address...\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

Email address verified

\\r\\n
\\r\\n
\\r\\n

Your user account request has been sent to an Account Manager for approval.

\\r\\n

Click here to sign in

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

Email address verification failed

\\r\\n
\\r\\n
\\r\\n

\\r\\n Sorry! Unfortunately, your user account has been removed from the system. We have been unable to \\r\\n verify the information provided for your institution and were forced to decline your registration at this time. \\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

Email address verification failed

\\r\\n
\\r\\n
\\r\\n

Next steps...

\\r\\n
\\r\\n
\\r\\n\"","module.exports = \":host {\\n min-width: 375px;\\n width: 480px; }\\n\\n.logo {\\n width: 325.984px;\\n height: 68.188px;\\n min-width: 325.984px;\\n min-height: 68.188px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYWNjb3VudHMvY29uZmlybS1lbWFpbC9EOlxcSmVua2luc1xcd29ya3NwYWNlXFxFeGNoYW5nZVVJLUFkaG9jXFxzcmNcXEh1cm9uLkV4Y2hhbmdlLlVJL3NyY1xcYXBwXFxhY2NvdW50c1xcY29uZmlybS1lbWFpbFxcY29uZmlybS1lbWFpbC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGdCQUFnQjtFQUNoQixZQUFZLEVBQUE7O0FBR2hCO0VBQ0ksZ0JBQWdCO0VBQ2hCLGdCQUFnQjtFQUNoQixvQkFBb0I7RUFDcEIsb0JBQW9CLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9hY2NvdW50cy9jb25maXJtLWVtYWlsL2NvbmZpcm0tZW1haWwuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgICBtaW4td2lkdGg6IDM3NXB4O1xyXG4gICAgd2lkdGg6IDQ4MHB4O1xyXG59XHJcblxyXG4ubG9nbyB7XHJcbiAgICB3aWR0aDogMzI1Ljk4NHB4O1xyXG4gICAgaGVpZ2h0OiA2OC4xODhweDtcclxuICAgIG1pbi13aWR0aDogMzI1Ljk4NHB4O1xyXG4gICAgbWluLWhlaWdodDogNjguMTg4cHg7XHJcbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AccountService } from '../../data-services';\r\nimport { finalize } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-confirm-email',\r\n templateUrl: './confirm-email.component.html',\r\n styleUrls: ['./confirm-email.component.scss']\r\n})\r\nexport class ConfirmEmailComponent implements OnInit {\r\n\r\n showProgress = false;\r\n showConfirmation = false;\r\n showError = false;\r\n showAccountDoesNotExist = false;\r\n isApproved;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private accountService: AccountService\r\n ) { }\r\n\r\n ngOnInit() {\r\n\r\n // set the value of the reset code if it was supplied via the query string\r\n\r\n var user = this.route.snapshot.paramMap.get('userId');\r\n var code = this.route.snapshot.queryParamMap.get('code');\r\n \r\n if (user && code) {\r\n this.showProgress = true;\r\n this.accountService.confirmEmail(user, code)\r\n .pipe(finalize(() => this.showProgress = false))\r\n .subscribe((rsp) => {\r\n this.showConfirmation = true;\r\n this.isApproved = rsp.isApproved;\r\n },\r\n err => {\r\n if (err.errors && err.errors['']) {\r\n if (err.errors[''].includes('AccountDoesNotExist')) {\r\n this.showAccountDoesNotExist = true;\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n this.showError = true;\r\n }\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n
Change your password
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \":host {\\n min-width: 375px;\\n width: 480px; }\\n\\n.logo {\\n width: 325.984px;\\n height: 68.188px;\\n min-width: 325.984px;\\n min-height: 68.188px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYWNjb3VudHMvZm9yY2UtY2hhbmdlLXBhc3N3b3JkL0Q6XFxKZW5raW5zXFx3b3Jrc3BhY2VcXEV4Y2hhbmdlVUktQWRob2NcXHNyY1xcSHVyb24uRXhjaGFuZ2UuVUkvc3JjXFxhcHBcXGFjY291bnRzXFxmb3JjZS1jaGFuZ2UtcGFzc3dvcmRcXGZvcmNlLWNoYW5nZS1wYXNzd29yZC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGdCQUFnQjtFQUNoQixZQUFZLEVBQUE7O0FBR2hCO0VBQ0ksZ0JBQWdCO0VBQ2hCLGdCQUFnQjtFQUNoQixvQkFBb0I7RUFDcEIsb0JBQW9CLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9hY2NvdW50cy9mb3JjZS1jaGFuZ2UtcGFzc3dvcmQvZm9yY2UtY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3Qge1xyXG4gICAgbWluLXdpZHRoOiAzNzVweDtcclxuICAgIHdpZHRoOiA0ODBweDtcclxufVxyXG5cclxuLmxvZ28ge1xyXG4gICAgd2lkdGg6IDMyNS45ODRweDtcclxuICAgIGhlaWdodDogNjguMTg4cHg7XHJcbiAgICBtaW4td2lkdGg6IDMyNS45ODRweDtcclxuICAgIG1pbi1oZWlnaHQ6IDY4LjE4OHB4O1xyXG59Il19 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AuthService } from 'src/app/auth';\r\n\r\n@Component({\r\n selector: 'app-force-change-password',\r\n templateUrl: './force-change-password.component.html',\r\n styleUrls: ['./force-change-password.component.scss']\r\n})\r\nexport class ForceChangePasswordComponent {\r\n\r\n returnUrl: string;\r\n\r\n constructor(\r\n private auth: AuthService,\r\n private router: Router,\r\n private route: ActivatedRoute\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.returnUrl = this.route.snapshot.queryParams['returnUrl'];\r\n }\r\n\r\n onPasswordChanged() {\r\n\r\n // clear the password must be changed flag so that routing will occur normally.\r\n this.auth.markPasswordChanged();\r\n\r\n // navigate to the return url\r\n if (this.returnUrl) {\r\n this.router.navigateByUrl(this.returnUrl);\r\n }\r\n else {\r\n this.router.navigate(['/']);\r\n }\r\n\r\n }\r\n}\r\n","module.exports = \"\\r\\n
\\r\\n
\\r\\n

Forgot your password?

\\r\\n
\\r\\n
\\r\\n \\r\\n

Enter your email address below, and we'll email instructions for setting a new password.

\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

If you do not have an account, click here to get signed up.

\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n

Password reset email sent

\\r\\n
\\r\\n
\\r\\n

\\r\\n Please check your email account for an email containing a confirmation link that you can use to reset your password.\\r\\n If you do not use this confirmation code within the next 4 hours, it will become invalid\\r\\n and you will need to request a password reset again.\\r\\n

\\r\\n
\\r\\n \\r\\n
\"","module.exports = \".card {\\n max-width: 640px; }\\n\\n.card-title {\\n font-family: bebas; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYWNjb3VudHMvZm9yZ290LXBhc3N3b3JkL0Q6XFxKZW5raW5zXFx3b3Jrc3BhY2VcXEV4Y2hhbmdlVUktQWRob2NcXHNyY1xcSHVyb24uRXhjaGFuZ2UuVUkvc3JjXFxhcHBcXGFjY291bnRzXFxmb3Jnb3QtcGFzc3dvcmRcXGZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGdCQUFnQixFQUFBOztBQUdwQjtFQUNJLGtCQUFrQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvYWNjb3VudHMvZm9yZ290LXBhc3N3b3JkL2ZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jYXJkIHtcclxuICAgIG1heC13aWR0aDogNjQwcHg7XHJcbn1cclxuXHJcbi5jYXJkLXRpdGxlIHtcclxuICAgIGZvbnQtZmFtaWx5OiBiZWJhcztcclxufVxyXG4iXX0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl, Validators, FormBuilder, FormGroup } from '@angular/forms';\r\nimport { AccountService } from '../../data-services';\r\nimport { finalize } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-forgot-password',\r\n templateUrl: './forgot-password.component.html',\r\n styleUrls: ['./forgot-password.component.scss']\r\n})\r\nexport class ForgotPasswordComponent implements OnInit {\r\n\r\n theForm: FormGroup;\r\n showConfirmation = false;\r\n submitting = false;\r\n\r\n constructor(\r\n private accountService: AccountService,\r\n private fb: FormBuilder) { \r\n\r\n this.theForm = this.fb.group({\r\n email: ['', Validators.compose([Validators.required, Validators.email])],\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n preventSubmit() {\r\n return this.theForm.invalid || this.submitting;\r\n }\r\n\r\n onSubmit() {\r\n this.submitting = true;\r\n this.accountService.recoverPassword(this.theForm.controls['email'].value)\r\n .pipe(finalize(() => this.submitting = false))\r\n .subscribe(() => {\r\n this.showConfirmation = true;\r\n });\r\n }\r\n}\r\n","export * from './account-details/account-details.component';\r\nexport * from './account-manager/account-manager.component';\r\nexport * from './change-password/change-password.component';\r\nexport * from './confirm-email/confirm-email.component';\r\nexport * from './force-change-password/force-change-password.component';\r\nexport * from './forgot-password/forgot-password.component';\r\nexport * from './profile-editor/profile-editor.component';\r\nexport * from './reset-password/reset-password.component';\r\nexport * from './sign-in/sign-in.component';\r\nexport * from './sign-up/sign-up.component';\r\nexport * from './registration/registration.component';\r\nexport * from './pending-approval/pending-approval.component';\r\n\r\nexport * from './accounts.module';","module.exports = \"
\\r\\n
\\r\\n \\r\\n
Account approval pending
\\r\\n
\\r\\n
\\r\\n

\\r\\n Thank you for registering to use the IRB Exchange. \\r\\n Your request has been sent to your Account Manager for review and approval.\\r\\n You will receive an email confirmation once your account registration request has been approved.\\r\\n

\\r\\n
\\r\\n
\"","module.exports = \":host {\\n min-width: 375px;\\n width: 480px; }\\n\\n.logo {\\n width: 325.984px;\\n height: 68.188px;\\n min-width: 325.984px;\\n min-height: 68.188px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYWNjb3VudHMvcGVuZGluZy1hcHByb3ZhbC9EOlxcSmVua2luc1xcd29ya3NwYWNlXFxFeGNoYW5nZVVJLUFkaG9jXFxzcmNcXEh1cm9uLkV4Y2hhbmdlLlVJL3NyY1xcYXBwXFxhY2NvdW50c1xccGVuZGluZy1hcHByb3ZhbFxccGVuZGluZy1hcHByb3ZhbC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGdCQUFnQjtFQUNoQixZQUFZLEVBQUE7O0FBR2hCO0VBQ0ksZ0JBQWdCO0VBQ2hCLGdCQUFnQjtFQUNoQixvQkFBb0I7RUFDcEIsb0JBQW9CLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9hY2NvdW50cy9wZW5kaW5nLWFwcHJvdmFsL3BlbmRpbmctYXBwcm92YWwuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgICBtaW4td2lkdGg6IDM3NXB4O1xyXG4gICAgd2lkdGg6IDQ4MHB4O1xyXG59XHJcblxyXG4ubG9nbyB7XHJcbiAgICB3aWR0aDogMzI1Ljk4NHB4O1xyXG4gICAgaGVpZ2h0OiA2OC4xODhweDtcclxuICAgIG1pbi13aWR0aDogMzI1Ljk4NHB4O1xyXG4gICAgbWluLWhlaWdodDogNjguMTg4cHg7XHJcbn0iXX0= */\"","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { AuthService } from 'src/app/auth';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Observable, timer, Subscription } from 'rxjs';\r\nimport { switchMap } from 'rxjs/operators';\r\n\r\nconst POLLING_FREQUENCY = 30000;\r\n\r\n@Component({\r\n selector: 'app-pending-approval',\r\n templateUrl: './pending-approval.component.html',\r\n styleUrls: ['./pending-approval.component.scss']\r\n})\r\nexport class PendingApprovalComponent implements OnInit, OnDestroy {\r\n \r\n private subscription: Subscription;\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private router: Router,\r\n private route: ActivatedRoute) { }\r\n\r\n ngOnInit() {\r\n\r\n var returnUrl = this.route.snapshot.queryParams['returnUrl'] || '/';\r\n\r\n this.subscription = timer(0, POLLING_FREQUENCY).pipe(switchMap(() => this.authService.checkStatus()))\r\n .subscribe(status => {\r\n if (status.isApproved) {\r\n this.router.navigateByUrl(returnUrl);\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n \r\n}\r\n","module.exports = \"\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FjY291bnRzL3Byb2ZpbGUtZWRpdG9yL3Byb2ZpbGUtZWRpdG9yLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { UserService, UserContactInfo } from '../../data-services';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { User } from 'src/app/models';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-profile-editor',\r\n templateUrl: './profile-editor.component.html',\r\n styleUrls: ['./profile-editor.component.scss']\r\n})\r\nexport class ProfileEditorComponent implements OnInit {\r\n\r\n user: User;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private userService: UserService,\r\n private toastr: ToastrService) { }\r\n\r\n ngOnInit() {\r\n var userId = this.route.parent.snapshot.paramMap.get('accountId');\r\n this.loadUser(userId);\r\n }\r\n\r\n updateContactInfo(contactInfo: UserContactInfo) {\r\n this.userService.updateContactInfo(this.user.id, contactInfo)\r\n .subscribe(() => {\r\n this.toastr.success(`${this.user.firstName}'s account has been updated successfully`, \"Success!\");\r\n this.loadUser(this.user.id);\r\n });\r\n }\r\n\r\n loadUser(id: string) {\r\n this.userService.getUser(id).subscribe(u => {\r\n this.user = u;\r\n })\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n
Sign up for an IRB Exchange account
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n

So you want to sign up for Huron IRB Exchange? That's great!

\\r\\n

In order to get everything setup correctly for you, we need to collect a bit of information.

\\r\\n \\r\\n

\\r\\n If your institution does not have an organizational account, we will need to verify you are an\\r\\n authorized representative of your institution. This verification process could take up to 72 hours\\r\\n to complete.\\r\\n

\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n

Can't find your institution? Register your institution!

\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n

\\r\\n Please enter the name of your institution.\\r\\n

\\r\\n

\\r\\n We found your organization, but we're not sure if our records are correct.\\r\\n Please correct the distinct name for your institution and IRB.\\r\\n

\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
Required.
\\r\\n
\\r\\n
\\r\\n \\r\\n
Required.
\\r\\n
\\r\\n
\\r\\n \\r\\n
Required.
\\r\\n
Please supply a valid email address.
\\r\\n
Email address requires a domain suffix; .edu, .org, .com, etc.
\\r\\n
\\r\\n
\\r\\n \\r\\n
Required.
\\r\\n
\\r\\n
\\r\\n \\r\\n Your password must be at least 13 characters long and have at least 6 unique\\r\\n characters.\\r\\n
Required.
\\r\\n
Your password must be at least\\r\\n {{ password.errors.minlength.requiredLength}} characters long.
\\r\\n
Your password must have at least\\r\\n {{ password.errors.minUnique.required }} unique characters.
\\r\\n
The password you entered is commonly used and\\r\\n considered insecure. Please supply a different password.
\\r\\n
\\r\\n
\\r\\n \\r\\n
Required.
\\r\\n
Passwords must match.
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Registering...\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n

Congratulations!

\\r\\n

\\r\\n You've successfully signed up for the Huron IRB Exchange.\\r\\n We've sent you a link to confirm your email address.\\r\\n Please check your inbox, and follow the instructions to complete the registration process.\\r\\n

\\r\\n

Click here to login

\\r\\n \\r\\n
\\r\\n

Didn't receive the email?

\\r\\n
    \\r\\n
  1. Is {{ user?.email }} your correct email? If not, you can restart the sign up process.
  2. \\r\\n
  3. Check your spam folder.
  4. \\r\\n
  5. Click here to resend the email.
  6. \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \":host {\\n min-width: 640px;\\n width: 800px;\\n height: 720px; }\\n\\n.card {\\n height: 100%; }\\n\\n.logo {\\n width: 325.984px;\\n height: 68.188px;\\n min-width: 325.984px;\\n min-height: 68.188px; }\\n\\n.menu {\\n padding-right: 20px;\\n border-right: 1px solid #cccccc; }\\n\\n.form-check-label {\\n font-size: 12px; }\\n\\n.main {\\n padding-left: 40px;\\n -ms-flex: 1;\\n flex: 1;\\n overflow-y: auto; }\\n\\n.actions .btn {\\n margin-left: 12px; }\\n\\n.license {\\n background-color: rgba(0, 0, 0, 0.03);\\n border: 1px solid #cccccc;\\n max-height: 320px;\\n margin-bottom: 1rem;\\n overflow-y: scroll;\\n padding: .5rem .8rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYWNjb3VudHMvcmVnaXN0cmF0aW9uL0Q6XFxKZW5raW5zXFx3b3Jrc3BhY2VcXEV4Y2hhbmdlVUktQWRob2NcXHNyY1xcSHVyb24uRXhjaGFuZ2UuVUkvc3JjXFxhcHBcXGFjY291bnRzXFxyZWdpc3RyYXRpb25cXHJlZ2lzdHJhdGlvbi5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGdCQUFnQjtFQUNoQixZQUFZO0VBQ1osYUFBYSxFQUFBOztBQUdqQjtFQUNJLFlBQVksRUFBQTs7QUFHaEI7RUFDSSxnQkFBZ0I7RUFDaEIsZ0JBQWdCO0VBQ2hCLG9CQUFvQjtFQUNwQixvQkFBb0IsRUFBQTs7QUFHeEI7RUFDSSxtQkFBbUI7RUFDbkIsK0JBQStCLEVBQUE7O0FBSW5DO0VBQ0ksZUFBZSxFQUFBOztBQUduQjtFQUNJLGtCQUFrQjtFQUNsQixXQUFPO01BQVAsT0FBTztFQUNQLGdCQUFnQixFQUFBOztBQUdwQjtFQUNJLGlCQUFpQixFQUFBOztBQUlyQjtFQUNJLHFDQUFrQztFQUNsQyx5QkFBeUI7RUFDekIsaUJBQWlCO0VBQ2pCLG1CQUFtQjtFQUNuQixrQkFBa0I7RUFDbEIsb0JBQW9CLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9hY2NvdW50cy9yZWdpc3RyYXRpb24vcmVnaXN0cmF0aW9uLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3Qge1xyXG4gICAgbWluLXdpZHRoOiA2NDBweDtcclxuICAgIHdpZHRoOiA4MDBweDtcclxuICAgIGhlaWdodDogNzIwcHg7XHJcbn1cclxuXHJcbi5jYXJkIHtcclxuICAgIGhlaWdodDogMTAwJTtcclxufVxyXG5cclxuLmxvZ28ge1xyXG4gICAgd2lkdGg6IDMyNS45ODRweDtcclxuICAgIGhlaWdodDogNjguMTg4cHg7XHJcbiAgICBtaW4td2lkdGg6IDMyNS45ODRweDtcclxuICAgIG1pbi1oZWlnaHQ6IDY4LjE4OHB4O1xyXG59XHJcblxyXG4ubWVudSB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xyXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjY2NjYztcclxuICAgIFxyXG59XHJcblxyXG4uZm9ybS1jaGVjay1sYWJlbCB7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbn1cclxuXHJcbi5tYWluIHtcclxuICAgIHBhZGRpbmctbGVmdDogNDBweDtcclxuICAgIGZsZXg6IDE7XHJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG59XHJcblxyXG4uYWN0aW9ucyAuYnRuIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xyXG59XHJcblxyXG5cclxuLmxpY2Vuc2Uge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjAzKTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XHJcbiAgICBtYXgtaGVpZ2h0OiAzMjBweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XHJcbiAgICBwYWRkaW5nOiAuNXJlbSAuOHJlbTtcclxufVxyXG5cclxuIl19 */\"","import { Component, OnInit, ViewChild, ViewChildren, TemplateRef, QueryList } from '@angular/core';\r\nimport { FormBuilder, Validators, FormGroup, ValidatorFn, AbstractControl } from '@angular/forms';\r\nimport { PasswordValidation, ValidationProblemDetails } from 'src/app/shared';\r\nimport { OrganizationSearchResult, AccountService } from 'src/app/data-services';\r\nimport { OrganizationSearchTypeaheadComponent } from 'src/app/organizations';\r\nimport { Step, StepListComponent } from 'src/app/shared';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { User } from 'src/app/models';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n\r\n@Component({\r\n selector: 'app-registration',\r\n templateUrl: './registration.component.html',\r\n styleUrls: ['./registration.component.scss']\r\n})\r\nexport class RegistrationComponent implements OnInit {\r\n\r\n @ViewChild(StepListComponent) stepList: StepListComponent;\r\n \r\n // Since the search typeahead component is in a nested template, it is \r\n // not possible to get a reference to the component via a template \r\n // reference variable. As a workaround, we use the ViewChildren query,\r\n // then subscribe to its changes. When a user moves to the Institution\r\n // search view, the subscription will get updated and the we assigned it\r\n // to the typeahead variable.\r\n @ViewChildren(OrganizationSearchTypeaheadComponent) typeaheadQuery: QueryList;\r\n typeahead: OrganizationSearchTypeaheadComponent;\r\n\r\n steps: Step[] = [\r\n new Step('Introduction'),\r\n new Step('Institution search'),\r\n new Step('Institution information'),\r\n new Step('Terms of use'),\r\n new Step('User information'),\r\n new Step('Confirmation'),\r\n new Step('Terms of use - readonly', true)\r\n ];\r\n\r\n @ViewChildren(TemplateRef) stepTemplates: QueryList>;\r\n templates: TemplateRef[];\r\n\r\n currentTemplate: TemplateRef;\r\n\r\n /**\r\n * The registration form.\r\n */\r\n signUpForm: FormGroup;\r\n\r\n /**\r\n * A flag that a user must check when registering a new organization.\r\n */\r\n authorizedRep: boolean;\r\n\r\n /**\r\n * A flag that indicates that an attempt to submit the registration form has occured.\r\n */\r\n submitted: boolean;\r\n\r\n /**\r\n * A flag that indicates that the registration form has been submitted to the server and waiting for a response.\r\n */\r\n registering: boolean;\r\n\r\n /**\r\n * The registered user.\r\n */\r\n user: User;\r\n\r\n newOrg: boolean;\r\n\r\n constructor(\r\n private accountService: AccountService,\r\n private formBuilder: FormBuilder, \r\n private toastr: ToastrService\r\n ) {\r\n this.signUpForm = this.formBuilder.group({\r\n organizationId: [''],\r\n organizationName: ['', Validators.required],\r\n assuranceNumber: [''],\r\n email: ['', Validators.compose([Validators.required, Validators.email, this.singleLabelDomain()])],\r\n password: ['', Validators.compose([Validators.required, Validators.minLength(13), PasswordValidation.minUnique(6) ])],\r\n confirmPassword: ['', Validators.required],\r\n firstName: ['', Validators.required],\r\n lastName: ['', Validators.required],\r\n phoneNumber: ['', Validators.required]\r\n }, { validator: Validators.compose([PasswordValidation.MatchPassword(), this.requireOneOf('organizationId','organizationName')]) });\r\n }\r\n\r\n ngOnInit() {\r\n console.log(\"[RegistrationComponent::ngOnInit()]\")\r\n \r\n }\r\n\r\n ngAfterViewInit() {\r\n console.log(\"[RegistrationComponent::ngAfterViewInit()]\")\r\n this.templates = this.stepTemplates.toArray();\r\n\r\n setTimeout(() => {\r\n this.currentTemplate = this.templates[this.stepList.currentIndex];\r\n });\r\n\r\n this.typeaheadQuery.changes.subscribe(changes => {\r\n this.typeahead = changes.first;\r\n });\r\n }\r\n\r\n cannotFindInstitution(e: MouseEvent) {\r\n e.preventDefault();\r\n this.newOrg = true;\r\n this.stepList.moveTo(2);\r\n this.currentTemplate = this.templates[this.stepList.currentIndex];\r\n }\r\n\r\n viewTermsOfUse() {\r\n this.stepList.moveTo(6, false);\r\n this.currentTemplate = this.templates[this.templates.length-1];\r\n }\r\n\r\n next() {\r\n\r\n if (this.stepList.currentIndex === 1) {\r\n // if the organization is set, then the organization exists\r\n if (this.organizationAlreadyExists) {\r\n this.stepList.moveTo(4);\r\n this.currentTemplate = this.templates[this.stepList.currentIndex];\r\n return;\r\n }\r\n }\r\n\r\n this.stepList.moveNext();\r\n this.currentTemplate = this.templates[this.stepList.currentIndex];\r\n }\r\n\r\n get disableNext(): boolean {\r\n\r\n if (this.stepList.currentIndex === 1) {\r\n return this.typeahead == null || this.isEmptyInputValue(this.typeahead.term) || (this.isEmptyInputValue(this.organizationId.value) && this.isEmptyInputValue(this.organizationName.value));\r\n }\r\n if (this.stepList.currentIndex === 2) {\r\n return this.organizationName.invalid;\r\n }\r\n if (this.stepList.currentIndex === 3) {\r\n return !this.authorizedRep;\r\n }\r\n if (this.stepList.currentIndex >= 4) {\r\n return true;\r\n }\r\n\r\n return !this.stepList.canMoveNext();\r\n }\r\n\r\n get disablePrevious(): boolean {\r\n\r\n if (this.stepList.currentIndex >= 5) {\r\n return true;\r\n }\r\n\r\n return !this.stepList.canMovePrevious();\r\n }\r\n\r\n previous() {\r\n this.stepList.movePrevious();\r\n this.currentTemplate = this.templates[this.stepList.currentIndex];\r\n }\r\n\r\n\r\n /**\r\n * Accessor for the organization id form control.\r\n */\r\n get organizationId() {\r\n return this.signUpForm.controls['organizationId'];\r\n }\r\n\r\n /**\r\n * Accessor for the organization name form control.\r\n */\r\n get organizationName() {\r\n return this.signUpForm.controls['organizationName'];\r\n }\r\n\r\n /**\r\n * Accessor for the first name form control.\r\n */\r\n get firstName() {\r\n return this.signUpForm.controls['firstName'];\r\n }\r\n\r\n /**\r\n * Accessor for the last name form control.\r\n */\r\n get lastName() {\r\n return this.signUpForm.controls['lastName'];\r\n }\r\n\r\n /**\r\n * Accessor for the phone number form control.\r\n */\r\n get phoneNumber() {\r\n return this.signUpForm.controls['phoneNumber'];\r\n }\r\n\r\n /**\r\n * Accessor for the email form control.\r\n */\r\n get email() {\r\n return this.signUpForm.controls['email'];\r\n }\r\n \r\n /**\r\n * Accessor for the password form control.\r\n */\r\n get password() {\r\n return this.signUpForm.controls['password'];\r\n }\r\n\r\n /**\r\n * Accessor for the password confirmation form control.\r\n */\r\n get confirmPassword() {\r\n return this.signUpForm.controls['confirmPassword'];\r\n }\r\n\r\n \r\n onSubmit() {\r\n \r\n this.submitted = true;\r\n\r\n if (this.signUpForm.invalid) {\r\n return;\r\n }\r\n\r\n this.registering = true;\r\n\r\n\r\n this.accountService.register(this.signUpForm.value)\r\n .pipe(finalize(() => {\r\n this.registering = false;\r\n }))\r\n .subscribe((user: User) => {\r\n this.user = user;\r\n\r\n this.stepList.moveNext();\r\n this.currentTemplate = this.templates[this.stepList.currentIndex];\r\n },\r\n (err: ValidationProblemDetails) => {\r\n if (err.errors && err.errors['']) {\r\n \r\n if (err.errors[''].includes('PasswordMismatch')) {\r\n this.password.setErrors({ mismatch: true });\r\n }\r\n\r\n if (err.errors[''].includes('BlackListedPassword')) {\r\n this.password.setErrors({ blacklisted: true });\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * This is called when a user selects an institution from the typeahead list\r\n * \r\n * @param event The event received from the NgbTypeahead control.\r\n */\r\n onOrganizationSelected(event: OrganizationSearchResult) {\r\n console.debug(\"selected\", event);\r\n this.signUpForm.patchValue({ \r\n organizationId: event.id,\r\n organizationName: event.name,\r\n assuranceNumber: event.assuranceNumber\r\n });\r\n }\r\n\r\n clearOrganizationFormFields() {\r\n console.debug('clearing organization selection');\r\n this.signUpForm.patchValue({ organizationId: null, organizationName: null, assuranceNumber: null });\r\n }\r\n\r\n get organizationAlreadyExists(): boolean {\r\n return !this.isEmptyInputValue(this.organizationId.value);\r\n }\r\n\r\n reset() {\r\n this.submitted = false;\r\n this.user = null; \r\n this.signUpForm.reset();\r\n this.stepList.reset();\r\n this.currentTemplate = this.templates[this.stepList.currentIndex];\r\n }\r\n\r\n /**\r\n * Instructs the server to resend the email confirmation message to the newly registered user.\r\n * \r\n * @param event The DOM event that triggered this function call.\r\n */\r\n resend(event: MouseEvent) {\r\n event.preventDefault(); // prevent navigation when link is clicked\r\n this.accountService.sendEmailConfirmation(this.user.id).subscribe(() => {\r\n this.toastr.success('Confirmation email sent.');\r\n });\r\n }\r\n\r\n /**\r\n * A custom valiation which requires at least of the specified controls to have a value.\r\n * \r\n * @param controls A collection of controls to check\r\n */\r\n private requireOneOf(...controls: string[]): ValidatorFn\r\n {\r\n return (ac: AbstractControl) => {\r\n var result = controls.some(controlName => {\r\n return false == this.isEmptyInputValue(ac.get(controlName));\r\n });\r\n\r\n return result ? null : { requireOneOf: true };\r\n }\r\n }\r\n\r\n private isEmptyInputValue(value) {\r\n return value == null || value.length === 0;\r\n }\r\n\r\n private singleLabelDomain(): ValidatorFn {\r\n const regex = /\\.[a-zA-Z]{2,6}$/\r\n return (ac: AbstractControl) => {\r\n return regex.test(ac.value) ? null : { \"sld\": true };\r\n }\r\n } \r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n

Reset your password

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
Required.
\\r\\n
Please supply a valid email address.
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Your password must be at least 13 characters long and have at least 6 unique\\r\\n characters.\\r\\n
Required.
\\r\\n
Your password must be at least\\r\\n {{ password.errors.minlength.requiredLength}} characters long.
\\r\\n
Your password must have at least\\r\\n {{ password.errors.minUnique.required }} unique characters.
\\r\\n
The password you entered is commonly used and\\r\\n considered insecure. Please supply a different password.
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
Required.
\\r\\n
Passwords must match.
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

Congratulations!

\\r\\n

You have successfully reset your account password. To sign in with your new password click here.

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

Password Reset Failed

\\r\\n

Invalid confirmation code! you will need to request a password reset again. To\\r\\n request new confirmation link click here.

\\r\\n
\\r\\n \\r\\n
\"","module.exports = \":host {\\n min-width: 375px;\\n width: 480px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYWNjb3VudHMvcmVzZXQtcGFzc3dvcmQvRDpcXEplbmtpbnNcXHdvcmtzcGFjZVxcRXhjaGFuZ2VVSS1BZGhvY1xcc3JjXFxIdXJvbi5FeGNoYW5nZS5VSS9zcmNcXGFwcFxcYWNjb3VudHNcXHJlc2V0LXBhc3N3b3JkXFxyZXNldC1wYXNzd29yZC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGdCQUFnQjtFQUNoQixZQUFZLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9hY2NvdW50cy9yZXNldC1wYXNzd29yZC9yZXNldC1wYXNzd29yZC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICAgIG1pbi13aWR0aDogMzc1cHg7XHJcbiAgICB3aWR0aDogNDgwcHg7XHJcbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AccountService } from '../../data-services';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { PasswordValidation, ValidationProblemDetails } from 'src/app/shared';\r\n\r\n@Component({\r\n selector: 'app-reset-password',\r\n templateUrl: './reset-password.component.html',\r\n styleUrls: ['./reset-password.component.scss']\r\n})\r\nexport class ResetPasswordComponent implements OnInit {\r\n\r\n resetPasswordForm: FormGroup;\r\n showConfirmation = false;\r\n submitting = false;\r\n codeInputType = 'hidden';\r\n errorMessage = null;\r\n invalidToken =false;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private fb: FormBuilder,\r\n private accountService: AccountService\r\n ) { \r\n\r\n this.resetPasswordForm = this.fb.group({\r\n code: [''],\r\n email: ['', Validators.compose([Validators.required, Validators.email])],\r\n password: ['', Validators.compose([Validators.required, Validators.minLength(13), PasswordValidation.minUnique(6)])],\r\n confirmPassword: ['', Validators.required]\r\n }, { validator: Validators.compose([PasswordValidation.MatchPassword()]) });\r\n\r\n }\r\n\r\n ngOnInit() {\r\n \r\n // set the value of the reset code if it was supplied via the query string\r\n var code = this.route.snapshot.queryParamMap.get('code');\r\n if (code) {\r\n this.resetPasswordForm.patchValue({ code: code }); \r\n }\r\n\r\n // set the value of the email if supplied via query string\r\n var email = this.route.snapshot.queryParamMap.get('email');\r\n if (email) {\r\n this.resetPasswordForm.patchValue({ email: email });\r\n }\r\n\r\n // Auto-confirm email if not confirmed by user\r\n this.accountService.autoConfirmEmail(email)\r\n .subscribe();\r\n\r\n }\r\n\r\n get preventSubmit() {\r\n return this.submitting;\r\n }\r\n\r\n onSubmit() {\r\n this.submitting = true;\r\n\r\n if (this.resetPasswordForm.invalid) {\r\n return;\r\n }\r\n\r\n this.accountService.resetPassword(this.resetPasswordForm.value)\r\n .pipe(finalize(() => this.submitting = false)) \r\n .subscribe(() => {\r\n this.showConfirmation = true;\r\n }, \r\n (err: ValidationProblemDetails) => {\r\n if (err.errors && err.errors['']) {\r\n \r\n if (err.errors[''].includes('PasswordMismatch')) {\r\n this.password.setErrors({ mismatch: true });\r\n }\r\n\r\n if (err.errors[''].includes('BlackListedPassword')) {\r\n this.password.setErrors({ blacklisted: true });\r\n }\r\n\r\n if (err.errors[''].includes('InvalidToken')) {\r\n this.invalidToken =true;\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Accessor for the password form control.\r\n */\r\n get password() {\r\n return this.resetPasswordForm.controls['password'];\r\n }\r\n\r\n /**\r\n * Accessor for the password confirmation form control.\r\n */\r\n get confirmPassword() {\r\n return this.resetPasswordForm.controls['confirmPassword'];\r\n }\r\n\r\n /**\r\n * Accessor for the email form control.\r\n */\r\n get email() {\r\n return this.resetPasswordForm.controls['email'];\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n
Sign in to your IRB Exchange account
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Invalid sign in attempt.\\r\\n
\\r\\n Forgot Password\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n Login failed. This may be due to one of the following reasons:
\\r\\n
    \\r\\n
  • Incorrect password.
  • \\r\\n
  • Email address has not been verified.
  • \\r\\n
  • An account does not exist for the provided email address.
  • \\r\\n
  • Organizational account manager has not approved your account.
  • \\r\\n
  • Huron has not approved your organization.
  • \\r\\n
  • The account may be locked.
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Authenticating...\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\"","module.exports = \":host {\\n min-width: 375px;\\n width: 480px; }\\n\\n.logo {\\n width: 325.984px;\\n height: 68.188px;\\n min-width: 325.984px;\\n min-height: 68.188px; }\\n\\n.msg {\\n display: inline-block;\\n font-weight: 400;\\n text-align: center;\\n vertical-align: middle;\\n border: 1px solid transparent;\\n padding: 0.375rem 0.75rem;\\n font-size: 1rem; }\\n\\n.msg, .msg * {\\n cursor: default; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYWNjb3VudHMvc2lnbi1pbi9EOlxcSmVua2luc1xcd29ya3NwYWNlXFxFeGNoYW5nZVVJLUFkaG9jXFxzcmNcXEh1cm9uLkV4Y2hhbmdlLlVJL3NyY1xcYXBwXFxhY2NvdW50c1xcc2lnbi1pblxcc2lnbi1pbi5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGdCQUFnQjtFQUNoQixZQUFZLEVBQUE7O0FBR2hCO0VBQ0ksZ0JBQWdCO0VBQ2hCLGdCQUFnQjtFQUNoQixvQkFBb0I7RUFDcEIsb0JBQW9CLEVBQUE7O0FBR3hCO0VBQ0kscUJBQXFCO0VBQ3JCLGdCQUFnQjtFQUNoQixrQkFBa0I7RUFDbEIsc0JBQXNCO0VBQ3RCLDZCQUE2QjtFQUM3Qix5QkFBeUI7RUFDekIsZUFBZSxFQUFBOztBQUVuQjtFQUNJLGVBQWUsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2FjY291bnRzL3NpZ24taW4vc2lnbi1pbi5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICAgIG1pbi13aWR0aDogMzc1cHg7XHJcbiAgICB3aWR0aDogNDgwcHg7XHJcbn1cclxuXHJcbi5sb2dvIHtcclxuICAgIHdpZHRoOiAzMjUuOTg0cHg7XHJcbiAgICBoZWlnaHQ6IDY4LjE4OHB4O1xyXG4gICAgbWluLXdpZHRoOiAzMjUuOTg0cHg7XHJcbiAgICBtaW4taGVpZ2h0OiA2OC4xODhweDtcclxufVxyXG5cclxuLm1zZyB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgcGFkZGluZzogMC4zNzVyZW0gMC43NXJlbTtcclxuICAgIGZvbnQtc2l6ZTogMXJlbTtcclxufVxyXG4ubXNnLCAubXNnICoge1xyXG4gICAgY3Vyc29yOiBkZWZhdWx0O1xyXG59Il19 */\"","import { Component, Renderer } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AuthService } from '../../auth';\r\nimport { finalize, audit } from 'rxjs/operators';\r\nimport { Role } from 'src/app/models';\r\nimport { SignedInUser } from 'src/app/models/signed-in-user';\r\n\r\n@Component({\r\n selector: 'app-sign-in',\r\n templateUrl: './sign-in.component.html',\r\n styleUrls: ['./sign-in.component.scss']\r\n})\r\nexport class SignInComponent {\r\n\r\n signInForm: FormGroup;\r\n returnUrl: string;\r\n submitted: boolean;\r\n invalidAttempt: boolean;\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private renderer: Renderer,\r\n formBuilder: FormBuilder) {\r\n\r\n this.signInForm = formBuilder.group({\r\n email: ['', Validators.required],\r\n password: ['', Validators.required],\r\n remember: [false]\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.returnUrl = this.route.snapshot.queryParams['returnUrl'];\r\n }\r\n\r\n submit() {\r\n this.submitted = true;\r\n this.invalidAttempt = false;\r\n this.authService.signIn(this.signInForm.value)\r\n .pipe(\r\n finalize(() => {\r\n this.submitted = false;\r\n this.signInForm.patchValue({ 'password': '' });\r\n })\r\n )\r\n .subscribe(\r\n data => {\r\n\r\n var user = new SignedInUser(data.user);\r\n\r\n if (this.authService.requirePasswordChange) {\r\n this.router.navigate(['/change-password'], { queryParamsHandling: 'preserve' });\r\n return;\r\n }\r\n\r\n if (this.authService.isApproved === false) {\r\n this.router.navigate(['/accounts/approval-pending'], { queryParamsHandling: 'preserve' });\r\n return;\r\n }\r\n\r\n // if no return url is specified, then go to the default page for the role\r\n if (!this.returnUrl)\r\n {\r\n if (user.isInRole(Role.Administrator)) {\r\n this.router.navigate(['organizations']);\r\n return;\r\n }\r\n if (user.isInRole(Role.AccountManager)) {\r\n this.router.navigate(['organizations', user.organizationId]);\r\n return;\r\n }\r\n if (user.isInRole(Role.RelianceCoordinator)) {\r\n this.router.navigate(['research', 'invitations']);\r\n return;\r\n }\r\n if (user.isInRole(Role.StudyStaff)) {\r\n this.router.navigate(['research', 'studies']);\r\n return;\r\n }\r\n\r\n // not in one of these roles, go home\r\n this.router.navigate(['/']);\r\n return;\r\n }\r\n\r\n this.router.navigateByUrl(this.returnUrl);\r\n }, \r\n error => {\r\n console.log(error);\r\n this.invalidAttempt = true;\r\n });\r\n }\r\n}\r\n","module.exports = \"Signing you out ...\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FjY291bnRzL3NpZ24tb3V0L3NpZ24tb3V0LmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { AuthService } from 'src/app/auth';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-sign-out',\r\n templateUrl: './sign-out.component.html',\r\n styleUrls: ['./sign-out.component.scss']\r\n})\r\nexport class SignOutComponent implements OnInit {\r\n\r\n constructor(private auth: AuthService, private router: Router) { }\r\n\r\n ngOnInit() {\r\n //sign out the current user and return to the home page immediately\r\n this.auth.signOut();\r\n this.router.navigate(['/']);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n
Sign up for an IRB Exchange account
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n

Can't find your institution? Register your institution!

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
Required.
\\r\\n
\\r\\n
\\r\\n \\r\\n
Required.
\\r\\n
\\r\\n
\\r\\n \\r\\n
Required.
\\r\\n
Please supply a valid email address.
\\r\\n
\\r\\n
\\r\\n \\r\\n
Required.
\\r\\n
\\r\\n
\\r\\n \\r\\n Your password must be at least 13 characters long and have at least 6 unique characters.\\r\\n
Required.
\\r\\n
Your password must be at least {{ password.errors.minlength.requiredLength}} characters long.
\\r\\n
Your password must have at least {{ password.errors.minUnique.required }} unique characters.
\\r\\n
The password you entered is commonly used and considered insecure. Please supply a different password.
\\r\\n
\\r\\n
\\r\\n \\r\\n
Required.
\\r\\n
Passwords must match.
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n Terms of use\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Registering...\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n

Congratulations!

\\r\\n

\\r\\n You've successfully signed up for the Huron IRB Exchange.\\r\\n We've sent you a link to confirm your email address.\\r\\n Please check your inbox, and follow the instructions to complete the registration process.\\r\\n

\\r\\n\\r\\n
\\r\\n

Didn't receive the email?

\\r\\n
    \\r\\n
  1. Is {{ user.email }} your correct email? If not, you can restart the sign up process.
  2. \\r\\n
  3. Check your spam folder.
  4. \\r\\n
  5. Click here to resend the email.
  6. \\r\\n
\\r\\n
\"","module.exports = \":host {\\n min-width: 375px;\\n width: 640px;\\n height: 640px; }\\n\\n.logo {\\n width: 325.984px;\\n height: 68.188px;\\n min-width: 325.984px;\\n min-height: 68.188px; }\\n\\n.search {\\n position: relative; }\\n\\n.search i {\\n position: absolute;\\n right: 10px;\\n top: 10px; }\\n\\n.btn-message {\\n display: inline-block;\\n font-weight: 400;\\n text-align: center;\\n vertical-align: middle;\\n border: 1px solid transparent;\\n padding: 0.375rem 0.75rem;\\n font-size: 1rem; }\\n\\n.btn-message, .btn-message * {\\n cursor: default; }\\n\\n.license {\\n max-height: 250px;\\n overflow-y: scroll; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYWNjb3VudHMvc2lnbi11cC9EOlxcSmVua2luc1xcd29ya3NwYWNlXFxFeGNoYW5nZVVJLUFkaG9jXFxzcmNcXEh1cm9uLkV4Y2hhbmdlLlVJL3NyY1xcYXBwXFxhY2NvdW50c1xcc2lnbi11cFxcc2lnbi11cC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGdCQUFnQjtFQUNoQixZQUFZO0VBQ1osYUFBYSxFQUFBOztBQUdqQjtFQUNJLGdCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIsb0JBQW9CO0VBQ3BCLG9CQUFvQixFQUFBOztBQUd4QjtFQUNJLGtCQUFrQixFQUFBOztBQUR0QjtJQUlRLGtCQUFrQjtJQUNsQixXQUFXO0lBQ1gsU0FBUyxFQUFBOztBQUlqQjtFQUNJLHFCQUFxQjtFQUNyQixnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLHNCQUFzQjtFQUN0Qiw2QkFBNkI7RUFDN0IseUJBQXlCO0VBQ3pCLGVBQWUsRUFBQTs7QUFFbkI7RUFDSSxlQUFlLEVBQUE7O0FBR25CO0VBQ0ksaUJBQWlCO0VBQ2pCLGtCQUFrQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvYWNjb3VudHMvc2lnbi11cC9zaWduLXVwLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3Qge1xyXG4gICAgbWluLXdpZHRoOiAzNzVweDtcclxuICAgIHdpZHRoOiA2NDBweDtcclxuICAgIGhlaWdodDogNjQwcHg7XHJcbn1cclxuXHJcbi5sb2dvIHtcclxuICAgIHdpZHRoOiAzMjUuOTg0cHg7XHJcbiAgICBoZWlnaHQ6IDY4LjE4OHB4O1xyXG4gICAgbWluLXdpZHRoOiAzMjUuOTg0cHg7XHJcbiAgICBtaW4taGVpZ2h0OiA2OC4xODhweDtcclxufVxyXG5cclxuLnNlYXJjaCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgaSB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHJpZ2h0OiAxMHB4O1xyXG4gICAgICAgIHRvcDogMTBweDtcclxuICAgIH1cclxufVxyXG5cclxuLmJ0bi1tZXNzYWdlIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICBwYWRkaW5nOiAwLjM3NXJlbSAwLjc1cmVtO1xyXG4gICAgZm9udC1zaXplOiAxcmVtO1xyXG59XHJcbi5idG4tbWVzc2FnZSwgLmJ0bi1tZXNzYWdlICoge1xyXG4gICAgY3Vyc29yOiBkZWZhdWx0O1xyXG59XHJcblxyXG4ubGljZW5zZSB7XHJcbiAgICBtYXgtaGVpZ2h0OiAyNTBweDtcclxuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcclxufSJdfQ== */\"","import { Component, OnInit, ViewChild, TemplateRef } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators, AbstractControl, ValidatorFn } from '@angular/forms';\r\nimport { PasswordValidation } from '../../shared';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { AccountService, OrganizationSearchResult } from '../../data-services';\r\nimport { User } from '../../models';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ValidationProblemDetails } from 'src/app/shared';\r\n\r\n@Component({\r\n selector: 'app-sign-up',\r\n templateUrl: './sign-up.component.html',\r\n styleUrls: ['./sign-up.component.scss']\r\n})\r\nexport class SignUpComponent implements OnInit {\r\n\r\n /**\r\n * The registration form.\r\n */\r\n signUpForm: FormGroup;\r\n\r\n /**\r\n * The registered user.\r\n */\r\n user: User;\r\n\r\n /**\r\n * A flag that a user must check when registering a new organization.\r\n */\r\n authorizedRep: boolean;\r\n\r\n /**\r\n * A flag that indicates that an attempt to submit the registration form has occured.\r\n */\r\n submitted: boolean;\r\n\r\n /**\r\n * A flag that indicates that the registration form has been submitted to the server and waiting for a response.\r\n */\r\n registering: boolean;\r\n\r\n /**\r\n * A flag that is used to determine if a new organization should be created.\r\n */\r\n progress: number = 0;\r\n\r\n currentStep: TemplateRef;\r\n \r\n @ViewChild('orgSearch') orgSearchTemplate: TemplateRef;\r\n @ViewChild('verifyOrgInfo') verifyOrgInfoTemplate: TemplateRef;\r\n @ViewChild('orgInfo') orgInfoTemplate: TemplateRef;\r\n @ViewChild('licenseAgreement') licenseAgreementTemplate: TemplateRef;\r\n @ViewChild('license') licenseTemplate: TemplateRef;\r\n @ViewChild('userInfo') userInfoTemplate: TemplateRef;\r\n @ViewChild('confirmation') confirmationTemplate: TemplateRef;\r\n\r\n private path: Array<{ progress: number, template: TemplateRef}> = [];\r\n\r\n constructor(\r\n private accountService: AccountService,\r\n private formBuilder: FormBuilder,\r\n private toastr: ToastrService\r\n ) { \r\n \r\n this.signUpForm = this.formBuilder.group({\r\n organizationId: [''],\r\n organizationName: [''],\r\n assuranceNumber: [''],\r\n email: ['', Validators.compose([Validators.required, Validators.email])],\r\n password: ['', Validators.compose([Validators.required, Validators.minLength(13), PasswordValidation.minUnique(6) ])],\r\n confirmPassword: ['', Validators.required],\r\n firstName: ['', Validators.required],\r\n lastName: ['', Validators.required],\r\n phoneNumber: ['', Validators.required]\r\n }, { validator: Validators.compose([PasswordValidation.MatchPassword(), this.requireOneOf('organizationId','organizationName')]) });\r\n }\r\n\r\n /**\r\n * A custom valiation which requires at least of the specified controls to have a value.\r\n * \r\n * @param controls A collection of controls to check\r\n */\r\n requireOneOf(...controls: string[]): ValidatorFn\r\n {\r\n return (ac: AbstractControl) => {\r\n var result = controls.some(controlName => {\r\n return false == this.isEmptyInputValue(ac.get(controlName));\r\n });\r\n\r\n return result ? null : { requireOneOf: true };\r\n }\r\n }\r\n\r\n isEmptyInputValue(value) {\r\n return value == null || value.length === 0;\r\n }\r\n\r\n /**\r\n * Accessor for the organization id form control.\r\n */\r\n get organizationId() {\r\n return this.signUpForm.controls['organizationId'];\r\n }\r\n\r\n /**\r\n * Accessor for the organization name form control.\r\n */\r\n get organizationName() {\r\n return this.signUpForm.controls['organizationName'];\r\n }\r\n\r\n /**\r\n * Accessor for the first name form control.\r\n */\r\n get firstName() {\r\n return this.signUpForm.controls['firstName'];\r\n }\r\n\r\n /**\r\n * Accessor for the last name form control.\r\n */\r\n get lastName() {\r\n return this.signUpForm.controls['lastName'];\r\n }\r\n\r\n /**\r\n * Accessor for the phone number form control.\r\n */\r\n get phoneNumber() {\r\n return this.signUpForm.controls['phoneNumber'];\r\n }\r\n\r\n /**\r\n * Accessor for the email form control.\r\n */\r\n get email() {\r\n return this.signUpForm.controls['email'];\r\n }\r\n \r\n /**\r\n * Accessor for the password form control.\r\n */\r\n get password() {\r\n return this.signUpForm.controls['password'];\r\n }\r\n\r\n /**\r\n * Accessor for the password confirmation form control.\r\n */\r\n get confirmPassword() {\r\n return this.signUpForm.controls['confirmPassword'];\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.next(this.orgSearchTemplate, 0);\r\n }\r\n\r\n next(template: TemplateRef, progress: number) {\r\n this.path.push({ template: this.currentStep, progress: this.progress });\r\n this.currentStep = template;\r\n this.progress = progress;\r\n\r\n // clear the submitted flag to hide any validation errors\r\n this.submitted = false;\r\n }\r\n\r\n previous() {\r\n var step = this.path.pop();\r\n this.currentStep = step.template;\r\n this.progress = step.progress;\r\n }\r\n\r\n onSubmit() {\r\n \r\n this.submitted = true;\r\n\r\n if (this.signUpForm.invalid) {\r\n return;\r\n }\r\n\r\n this.registering = true;\r\n\r\n this.accountService.register(this.signUpForm.value)\r\n .pipe(finalize(() => {\r\n this.registering = false;\r\n }))\r\n .subscribe((user: User) => {\r\n this.user = user;\r\n this.next(this.confirmationTemplate, 100);\r\n },\r\n (err: ValidationProblemDetails) => {\r\n if (err.errors && err.errors['']) {\r\n \r\n if (err.errors[''].includes('PasswordMismatch')) {\r\n this.password.setErrors({ mismatch: true });\r\n }\r\n\r\n if (err.errors[''].includes('BlackListedPassword')) {\r\n this.password.setErrors({ blacklisted: true });\r\n }\r\n }\r\n });\r\n }\r\n\r\n \r\n \r\n /**\r\n * This is called when a user selects an institution from the typeahead list\r\n * \r\n * @param event The event received from the NgbTypeahead control.\r\n */\r\n onOrganizationSelected(event: OrganizationSearchResult) {\r\n console.debug(\"selected\", event);\r\n this.signUpForm.patchValue({ \r\n organizationId: event.id,\r\n organizationName: event.name,\r\n assuranceNumber: event.assuranceNumber\r\n });\r\n }\r\n\r\n /**\r\n * Clears the state of the component, so the user can try the registration process again.\r\n * \r\n * @param event The DOM event that triggered this function call.\r\n */\r\n reset() {\r\n this.path = [];\r\n this.next(this.orgSearchTemplate, 0);\r\n this.user = null;\r\n this.signUpForm.reset();\r\n }\r\n\r\n /**\r\n * Instructs the server to resend the email confirmation message to the newly registered user.\r\n * \r\n * @param event The DOM event that triggered this function call.\r\n */\r\n resend(event: MouseEvent) {\r\n event.preventDefault(); // prevent navigation when link is clicked\r\n this.accountService.sendEmailConfirmation(this.user.id).subscribe(() => {\r\n this.toastr.success('Confirmation email sent.');\r\n });\r\n }\r\n\r\n clearOrganizationFormFields() {\r\n console.debug('clearing organization selection');\r\n this.signUpForm.patchValue({ organizationId: null, organizationName: null, assuranceNumber: null });\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { Role } from './models';\r\nimport { AuthGuard } from './auth';\r\nimport {\r\n CenteredLayoutComponent,\r\n MainLayoutComponent,\r\n NotFoundComponent,\r\n ForbiddenComponent,\r\n PendingChangesGuard\r\n} from './shared';\r\n\r\nimport {\r\n SplashComponent\r\n} from './home';\r\n\r\nimport {\r\n AccountDetailsComponent,\r\n AccountManagerComponent,\r\n ChangePasswordComponent,\r\n ConfirmEmailComponent,\r\n ForceChangePasswordComponent,\r\n ForgotPasswordComponent,\r\n ProfileEditorComponent,\r\n ResetPasswordComponent,\r\n SignInComponent,\r\n SignUpComponent,\r\n RegistrationComponent,\r\n PendingApprovalComponent \r\n} from './accounts';\r\n\r\nimport {\r\n OrganizationDetailsComponent,\r\n OrganizationListComponent\r\n} from './organizations';\r\n\r\nimport {\r\n ContinuingReviewComponent,\r\n InvitationListComponent,\r\n SiteDetailsComponent,\r\n SiteModificationComponent,\r\n StudyDetailsComponent,\r\n StudyListComponent,\r\n ReportableNewInformationComponent,\r\n ReportableNewInformationCreateComponent,\r\n SiteModificationCreateComponent\r\n} from './research';\r\nimport { SignOutComponent } from './accounts/sign-out/sign-out.component';\r\n\r\n\r\nconst routes: Routes = [\r\n { path: '403', component: ForbiddenComponent },\r\n { path: '404', component: NotFoundComponent },\r\n { path: 'login', component: CenteredLayoutComponent, children: [{ path: '', component: SignInComponent }]},\r\n { path: 'signup', component: CenteredLayoutComponent, children: [{ path: '', component: RegistrationComponent }]},\r\n { path: 'signOut', component: SignOutComponent },\r\n { path: 'change-password', component: CenteredLayoutComponent, children: [{ path: '', component: ForceChangePasswordComponent }]},\r\n { path: 'accounts/approval-pending', component: CenteredLayoutComponent, children: [{ path: '', component: PendingApprovalComponent }]},\r\n { path: 'accounts/forgot-password', component: CenteredLayoutComponent, children: [{ path: '', component: ForgotPasswordComponent }]},\r\n { path: 'accounts/reset-password', component: CenteredLayoutComponent, children: [{ path: '', component: ResetPasswordComponent }]},\r\n { \r\n path: 'accounts/:userId/confirm-email', \r\n component: CenteredLayoutComponent, \r\n children: [{\r\n path: '',\r\n component: ConfirmEmailComponent\r\n }]\r\n },\r\n {\r\n path: '',\r\n component: MainLayoutComponent,\r\n children: [\r\n { path: '', component: SplashComponent, pathMatch: 'full' },\r\n {\r\n path: 'accounts',\r\n canActivate: [AuthGuard],\r\n children: [\r\n { \r\n path: ':accountId', \r\n component: AccountDetailsComponent,\r\n data: {\r\n roles: [Role.AccountManager]\r\n }\r\n },\r\n { \r\n path: ':accountId/manage', \r\n component: AccountManagerComponent,\r\n children: [\r\n { path: '', redirectTo: './profile', pathMatch: 'full' },\r\n { path: 'password', component: ChangePasswordComponent },\r\n { path: 'profile', component: ProfileEditorComponent }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n path: 'organizations',\r\n canActivate: [AuthGuard],\r\n data: {\r\n roles: [Role.AccountManager]\r\n },\r\n children: [\r\n { path: '', component: OrganizationListComponent },\r\n { path: ':orgId', component: OrganizationDetailsComponent }\r\n ]\r\n },\r\n {\r\n path: 'research',\r\n canActivate: [AuthGuard],\r\n children: [\r\n { path: '', redirectTo: 'studies', pathMatch: 'full' },\r\n { path: 'invitations', component: InvitationListComponent },\r\n { path: 'studies', component: StudyListComponent },\r\n { path: 'studies/:studyId', component: StudyDetailsComponent },\r\n { path: 'studies/:studyId/sites/:siteId', component: SiteDetailsComponent, canDeactivate: [PendingChangesGuard] },\r\n { path: 'studies/:studyId/sites/:siteId/cr', component: ContinuingReviewComponent }, \r\n { path: 'studies/:studyId/sites/:siteId/mod', component: SiteModificationCreateComponent, canDeactivate: [PendingChangesGuard] },\r\n { path: 'studies/:studyId/sites/:siteId/mod/:modId', component: SiteModificationComponent, canDeactivate: [PendingChangesGuard] },\r\n { path: 'studies/:studyId/sites/:siteId/rni', component: ReportableNewInformationCreateComponent, canDeactivate: [PendingChangesGuard] },\r\n { path: 'studies/:studyId/sites/:siteId/rni/:rniId', component: ReportableNewInformationComponent, canDeactivate: [PendingChangesGuard] }\r\n ]\r\n }\r\n ]\r\n },\r\n { path: '**', redirectTo: '/404' }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","module.exports = \"\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { AppcuesService } from './shared/appcues.service';\r\nimport { AuthService } from './auth';\r\nimport { Subscription, timer } from 'rxjs';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { Role } from './models';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent implements OnInit, OnDestroy {\r\n \r\n title = 'irb-exchange-ui';\r\n\r\n private signedInSubscription: Subscription;\r\n private signedOutSubscription: Subscription;\r\n private automaticSignOutSubscription: Subscription;\r\n\r\n constructor(\r\n private auth: AuthService,\r\n private appcues: AppcuesService,\r\n private router: Router) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n // Notify appcues to update the current page and check if there's \r\n // any content that should be shown.\r\n this.router.events.subscribe((event) => {\r\n if (event instanceof NavigationEnd) {\r\n this.appcues.page();\r\n }\r\n })\r\n \r\n this.signedInSubscription = this.auth.signedIn$.subscribe(user => {\r\n // notify appcues to track user upon sign in\r\n this.identifyUser()\r\n this.setupAutomaticSignOut();\r\n });\r\n\r\n // notify appcues stop tracking the user when signed out\r\n this.signedOutSubscription = this.auth.signedOut$.subscribe(user => this.appcues.reset());\r\n \r\n // if already signed in, track the current user.\r\n if (this.auth.isAuthenticated) {\r\n this.identifyUser();\r\n this.setupAutomaticSignOut();\r\n } else {\r\n //this.appcues.anonymous();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.signedInSubscription.unsubscribe();\r\n this.signedOutSubscription.unsubscribe();\r\n this.automaticSignOutSubscription.unsubscribe();\r\n }\r\n\r\n private setupAutomaticSignOut() {\r\n \r\n // unsubscribe if a subscription exists\r\n if (this.automaticSignOutSubscription && this.automaticSignOutSubscription.closed == false) {\r\n this.automaticSignOutSubscription.unsubscribe();\r\n }\r\n\r\n this.automaticSignOutSubscription = timer(this.auth.expiresAt - Date.now()).subscribe(() => {\r\n // Very likely that this token has been refreshed since this timer was initially setup.\r\n // If the user is still authenticated, re-initialize this timer, otherwise sign out.\r\n if (this.auth.isAuthenticated) {\r\n this.setupAutomaticSignOut();\r\n } else {\r\n this.auth.signOut();\r\n }\r\n });\r\n }\r\n\r\n private identifyUser() {\r\n\r\n const currentUser = this.auth.currentUser;\r\n\r\n this.appcues.identify(currentUser.id, {\r\n name: currentUser.name,\r\n email: currentUser.email,\r\n organizationId: currentUser.organizationId,\r\n organizationName: currentUser.organizationName,\r\n isStudyStaff: currentUser.isInRole(Role.StudyStaff),\r\n isRelianceCoordinator: currentUser.isInRole(Role.RelianceCoordinator),\r\n isAccountManager: currentUser.isInRole(Role.AccountManager),\r\n isApproved: this.auth.isApproved,\r\n createdAt: currentUser.createdAt,\r\n lastSignInAt: currentUser.lastSignInAt\r\n });\r\n\r\n }\r\n\r\n}\r\n","import { environment } from 'src/environments/environment';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\n\r\n// 3rd party modules\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ToastrModule, GlobalConfig } from 'ngx-toastr';\r\nimport { MarkdownModule } from 'ngx-markdown';\r\nimport { FileSaverModule } from 'ngx-filesaver';\r\nimport { EmbedVideo } from 'ngx-embed-video';\r\n\r\n// Application Components\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { ExamplesModule } from './examples/examples.module';\r\nimport { SharedModule, ErrorResponseInterceptor, PendingChangesGuard, NoCacheInterceptor } from './shared';\r\nimport { AuthModule, JwtTokenInterceptor } from './auth';\r\nimport { HomeModule } from './home';\r\nimport { UsersModule } from './users';\r\nimport { OrganizationsModule } from './organizations';\r\nimport { AccountsModule } from './accounts';\r\nimport { ResearchModule } from './research';\r\nimport { DataServicesModule } from './data-services';\r\n\r\n\r\nconst TOASTR_CONFIG: Partial = {\r\n extendedTimeOut: 5000,\r\n timeOut: 10000,\r\n positionClass: 'toast-bottom-right'\r\n};\r\n\r\nlet devImports = environment.production ? [] : [ ExamplesModule ];\r\n\r\n@NgModule({\r\n declarations: [AppComponent],\r\n imports: [\r\n // built in \r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n FormsModule,\r\n HttpClientModule,\r\n ReactiveFormsModule,\r\n\r\n // 3rd party\r\n NgbModule,\r\n ToastrModule.forRoot(TOASTR_CONFIG),\r\n FileSaverModule,\r\n MarkdownModule.forRoot(),\r\n EmbedVideo.forRoot(),\r\n\r\n // Project modules (non-routing)\r\n AuthModule,\r\n SharedModule,\r\n HomeModule,\r\n UsersModule,\r\n OrganizationsModule,\r\n AccountsModule,\r\n ResearchModule,\r\n DataServicesModule,\r\n \r\n ...devImports,\r\n\r\n // Project routing modules - definition order is important\r\n AppRoutingModule\r\n ],\r\n providers: [ \r\n { provide: HTTP_INTERCEPTORS, useClass: JwtTokenInterceptor, multi: true },\r\n { provide: HTTP_INTERCEPTORS, useClass: NoCacheInterceptor, multi: true },\r\n { provide: HTTP_INTERCEPTORS, useClass: ErrorResponseInterceptor, multi: true },\r\n\r\n PendingChangesGuard\r\n ],\r\n bootstrap: [AppComponent],\r\n})\r\nexport class AppModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { } from 'rxjs/operators';\r\nimport { AuthService } from './auth.service';\r\nimport { Role } from '../models';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthGuard implements CanActivate {\r\n \r\n constructor(private auth: AuthService, private router: Router) {\r\n\r\n }\r\n \r\n canActivate(\r\n next: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot): Observable | Promise | boolean {\r\n if (this.auth.isAuthenticated) {\r\n\r\n var currentUser = this.auth.currentUser;\r\n\r\n if (this.auth.requirePasswordChange) {\r\n this.router.navigate(['/change-password'], { queryParams: { returnUrl: state.url }, queryParamsHandling: 'merge' });\r\n return false;\r\n }\r\n\r\n if (this.auth.isApproved === false) {\r\n this.router.navigate(['/accounts/approval-pending'], { queryParams: { returnUrl: state.url }, queryParamsHandling: 'merge' });\r\n return false;\r\n }\r\n\r\n // does the route require a specific role?\r\n if (next.data.roles) {\r\n\r\n // is the currentUser an admin?\r\n if (currentUser.roles.includes(Role.Administrator)) {\r\n return true;\r\n }\r\n\r\n // check if the user has a role that is listed in the route data\r\n var hasRole = currentUser.roles.some(role => next.data.roles.includes(role));\r\n if (!hasRole) {\r\n console.debug(currentUser.name, \"not in role\", next.data.roles)\r\n this.router.navigate(['/']);\r\n return false;\r\n }\r\n\r\n }\r\n\r\n return true;\r\n }\r\n\r\n this.router.navigate(['/login'], { queryParams: { returnUrl: state.url }});\r\n return false;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule\r\n ]\r\n})\r\nexport class AuthModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { tap } from 'rxjs/operators';\r\nimport { Role } from '../models';\r\nimport { SignedInUser } from '../models/signed-in-user';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n\r\ninterface SignInRequest {\r\n email: string,\r\n password: string;\r\n remember: boolean;\r\n}\r\n\r\ninterface SignInResponse {\r\n user: SignedInUser;\r\n token: string;\r\n expiresAt: number;\r\n passwordMustBeChanged: boolean;\r\n isApproved: boolean;\r\n}\r\n\r\ninterface CheckStatusResponse {\r\n user: SignedInUser;\r\n passwordMustBeChanged: boolean;\r\n isApproved: boolean;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthService {\r\n\r\n private signedOutSource = new Subject();\r\n private signedInSource = new Subject();\r\n\r\n signedOut$ = this.signedOutSource.asObservable();\r\n signedIn$ = this.signedInSource.asObservable();\r\n\r\n constructor(private http: HttpClient, private modalService:NgbModal) { }\r\n\r\n get isAuthenticated() {\r\n return Date.now() < this.expiresAt;\r\n }\r\n\r\n get accessToken(): string {\r\n return localStorage.getItem('token');\r\n }\r\n\r\n get expiresAt(): number {\r\n var expiresAt = localStorage.getItem('expiresAt');\r\n return expiresAt ? parseInt(expiresAt) : 0;\r\n }\r\n\r\n get currentUser(): SignedInUser {\r\n \r\n if (!this.isAuthenticated) {\r\n return null;\r\n }\r\n \r\n var currentUser = localStorage.getItem('currentUser');\r\n return currentUser !== null ? new SignedInUser(JSON.parse(currentUser)) : null;\r\n }\r\n\r\n get requirePasswordChange(): boolean {\r\n var val = localStorage.getItem('passwordMustBeChanged');\r\n return val ? (val === \"true\") : false;\r\n }\r\n\r\n get isApproved() {\r\n var val = localStorage.getItem('isApproved');\r\n return val ? (val === \"true\") : false; \r\n }\r\n\r\n hasRole(role: Role): boolean {\r\n if (this.currentUser === null) {\r\n return false;\r\n }\r\n return this.currentUser.roles.indexOf(role) !== -1;\r\n }\r\n\r\n handleRefresh(token: string) {\r\n // destructure the token; the header and signature segments aren't used\r\n var [_h, encodedPayload, _s] = token.split('.');\r\n var jsonPayload = atob(encodedPayload.replace(/-/g,'+').replace(/_/g, '/'));\r\n var payload = JSON.parse(jsonPayload);\r\n \r\n // the exp claim contains the expiration as the unix epoch (seconds)\r\n // conver this to milliseconds.\r\n var expiresAt = payload.exp * 1000; \r\n \r\n localStorage.setItem('token', token);\r\n localStorage.setItem('expiresAt', expiresAt.toString());\r\n }\r\n\r\n signIn(request: SignInRequest) {\r\n return this.http.post('/api/auth/sign-in', request, { withCredentials: true })\r\n .pipe(tap(data => {\r\n \r\n localStorage.setItem('token', data.token);\r\n localStorage.setItem('expiresAt', data.expiresAt.toString());\r\n localStorage.setItem('currentUser', JSON.stringify(data.user));\r\n localStorage.setItem('passwordMustBeChanged', data.passwordMustBeChanged.toString());\r\n localStorage.setItem('isApproved', data.isApproved.toString());\r\n\r\n }),\r\n tap(data => this.signedInSource.next(data.user)));\r\n }\r\n\r\n signOut() {\r\n this.modalService.dismissAll();\r\n var currentUser = this.currentUser;\r\n \r\n localStorage.removeItem('token');\r\n localStorage.removeItem('expiresAt');\r\n localStorage.removeItem('currentUser');\r\n localStorage.removeItem('passwordMustBeChanged');\r\n localStorage.removeItem('isApproved');\r\n\r\n this.signedOutSource.next(currentUser);\r\n }\r\n\r\n markPasswordChanged() {\r\n localStorage.removeItem('passwordMustBeChanged');\r\n }\r\n\r\n checkStatus(): Observable {\r\n return this.http.get('/api/auth/check-status')\r\n .pipe(tap(data => {\r\n localStorage.setItem('currentUser', JSON.stringify(data.user));\r\n localStorage.setItem('passwordMustBeChanged', data.passwordMustBeChanged.toString());\r\n localStorage.setItem('isApproved', data.isApproved.toString());\r\n }));\r\n }\r\n\r\n updateUser(user: SignedInUser) {\r\n localStorage.setItem('currentUser', JSON.stringify(user));\r\n }\r\n}\r\n","export * from './auth.service';\r\nexport * from './auth.guard';\r\nexport * from './jwt-token-interceptor';\r\nexport * from './auth.module';","import { Injectable } from '@angular/core';\r\nimport { HttpEvent, HttpHandler, HttpRequest, HttpInterceptor, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { AuthService } from './auth.service';\r\nimport { tap } from 'rxjs/operators';\r\n\r\n\r\n@Injectable()\r\nexport class JwtTokenInterceptor implements HttpInterceptor {\r\n\r\n constructor(private auth: AuthService) {\r\n\r\n }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n\r\n // If the token exists, set the authorization header\r\n const token = this.auth.accessToken;\r\n if (token) {\r\n var request = request.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n });\r\n }\r\n \r\n // Look for the X-RefreshToken header in the response, if it exists\r\n // notify the auth service to update the access token.\r\n return next.handle(request).pipe(\r\n tap((event: HttpEvent) => {\r\n if (event instanceof HttpResponse) {\r\n if (event.headers.has('X-RefreshToken')) {\r\n this.auth.handleRefresh(event.headers.get('X-RefreshToken'));\r\n }\r\n }\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { User, UserDto } from '../models';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { DataServicesModule } from './data-services.module';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nexport interface ChangePasswordRequest {\r\n currentPassword: string;\r\n newPassword: string;\r\n confirmPassword: string;\r\n}\r\n\r\nexport interface RegisterRequest {\r\n organizationId: string,\r\n organizationName: string,\r\n assuranceNumber: string,\r\n firstName: string;\r\n lastName: string;\r\n phoneNumber: string;\r\n email: string;\r\n password: string;\r\n confirmPassword: string;\r\n}\r\n\r\nexport interface ResetPasswordRequest {\r\n email: string;\r\n password: string;\r\n confirmPassword: string;\r\n code: string;\r\n}\r\n\r\nexport interface ConfirmEmailResponse {\r\n isApproved: boolean;\r\n}\r\n\r\n\r\n@Injectable({\r\n providedIn: DataServicesModule\r\n})\r\nexport class AccountService {\r\n\r\n constructor(private http: HttpClient,\r\n private toastr: ToastrService) { }\r\n\r\n changePassword(request: ChangePasswordRequest) {\r\n return this.http.post(`/api/accounts/change-password`, request, { withCredentials: true });\r\n }\r\n\r\n confirmEmail(userId: string, code: string) {\r\n return this.http.post('/api/accounts/confirm-email', { userId, code });\r\n }\r\n\r\n register(request: RegisterRequest): Observable {\r\n return this.http.post>('/api/accounts/register', request)\r\n .pipe(catchError(err => {\r\n if (err.errors && err.errors['']) {\r\n if (err.errors[''].includes('DuplicateOrganizationName')) {\r\n this.toastr.error(\"An individual from this institution has already submitted a registration request. \" +\r\n \"Contact HuronIRBExchange@huronconsultinggroup.com if you have questions about the registration process.\",\r\n \"Signup failed!\");\r\n }\r\n }\r\n return throwError(err);\r\n }),\r\n map(dto => new User(dto)));\r\n }\r\n\r\n sendEmailConfirmation(userId: string) {\r\n return this.http.post('/api/accounts/send-email-confirmation', { userId });\r\n }\r\n\r\n recoverPassword(email: string) {\r\n return this.http.post('/api/accounts/recover-password', { email });\r\n }\r\n \r\n resetPassword(request: ResetPasswordRequest) {\r\n return this.http.post('/api/accounts/reset-password', request);\r\n }\r\n\r\n autoConfirmEmail(email: string) {\r\n return this.http.post('/api/accounts/auto-confirm-email', { email });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule\r\n ]\r\n})\r\nexport class DataServicesModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { DataServicesModule } from './data-services.module';\r\n\r\n@Injectable({\r\n providedIn: DataServicesModule\r\n})\r\nexport class DiagnosticsService {\r\n\r\n constructor(private http : HttpClient) { \r\n\r\n }\r\n\r\n forbidden() {\r\n return this.http.get(\"/api/diagnostics/forbidden\");\r\n }\r\n}\r\n","import { Injectable, SecurityContext } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { HttpClient, HttpHeaders} from '@angular/common/http';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DocumentService {\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n downloadFile(studyId:string, itemId:string, fileName:string){\r\n itemId = itemId.replace(/\\//g, '|');\r\n studyId = encodeURIComponent(studyId);\r\n itemId = encodeURIComponent(itemId);\r\n fileName = fileName.replace(/\\+/g, '_'); //The encodeURIComponent replaces +(Plus) to %2B, but that fails in API call. Hence keeping a manual conversion.\r\n fileName = encodeURIComponent(fileName);\r\n return this.http.get(`/api/file/download/${studyId}/${itemId}/${fileName}`, {responseType:'blob'});\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { DataServicesModule } from './data-services.module';\r\nimport { Study, StudyListItem} from '../models';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: DataServicesModule\r\n})\r\nexport class FeedbackService {\r\n\r\n constructor(private http: HttpClient, private toastr: ToastrService) { }\r\n\r\n provideFeedback(comment: string, rating ?: number) {\r\n return this.http.post('/api/feedback', { comment, rating })\r\n }\r\n\r\n askSupport(comment:String, pageSelected:String){\r\n return this.http.post('api/feedback/support', {comment, pageSelected}).pipe(\r\n catchError(err => {\r\n if (err) {\r\n this.toastr.error(\"Something went wrong.\", \"Server error!\")\r\n }\r\n return throwError(err);\r\n })\r\n );\r\n }\r\n\r\n sendStudyEmail(comment:String, study:StudyListItem){\r\n return this.http.post('api/feedback/studyEmail', {comment, study}).pipe(\r\n catchError(err => {\r\n if (err) {\r\n this.toastr.error(\"Something went wrong.\", \"Server error!\")\r\n }\r\n return throwError(err);\r\n })\r\n );\r\n }\r\n\r\n notifyStudyTeamLead(studyExchangeId:String){\r\n return this.http.post('api/feedback/notifyStudyTeamLead', {studyExchangeId}).pipe(\r\n catchError(err => {\r\n if (err) {\r\n this.toastr.error(\"Something went wrong.\", \"Server error!\")\r\n }\r\n return throwError(err);\r\n })\r\n );\r\n }\r\n}\r\n","export * from './account.service';\r\nexport * from './diagnostics.service';\r\nexport * from './document.service';\r\nexport * from './feedback.service';\r\nexport * from './organization.service';\r\nexport * from './research.service';\r\nexport * from './user.service';\r\n\r\nexport * from './data-services.module';","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { map } from 'rxjs/operators';\r\nimport { Observable } from 'rxjs';\r\nimport { UserDto, User, Organization, OrganizationDto } from '../models';\r\nimport { DataServicesModule } from './data-services.module';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nexport interface OrganizationSearchResult {\r\n id?: number;\r\n name: string;\r\n exchangeId: string;\r\n assuranceNumber: string;\r\n}\r\n\r\nexport interface OrganizationSearchResponse {\r\n results: OrganizationSearchResult[];\r\n}\r\n\r\nexport interface GetOrganizationsResponse {\r\n organizations: OrganizationDto[]\r\n}\r\n\r\nexport interface GetOrganizationUsersResponse {\r\n users: UserDto[]\r\n}\r\n\r\nexport interface OrganizationSearchRequest {\r\n term: string;\r\n local?: boolean;\r\n exchange?: boolean;\r\n ohrp?: boolean;\r\n}\r\n\r\n@Injectable({\r\n providedIn: DataServicesModule\r\n})\r\nexport class OrganizationService {\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n getOrganization(id: string|number): Observable {\r\n return this.http.get(`/api/organizations/${id}`)\r\n .pipe(map(dto => new Organization(dto)));\r\n }\r\n\r\n getOrganizations(): Observable {\r\n return this.http.get('/api/organizations')\r\n .pipe(map((response) => response.organizations.map(dto => new Organization(dto))));\r\n }\r\n\r\n approveAccess(id: string|number) {\r\n return this.http.post(`/api/organizations/${id}/approve`, {})\r\n }\r\n\r\n denyAccess(id: string|number) {\r\n return this.http.post(`/api/organizations/${id}/deny`, {});\r\n }\r\n\r\n getUsers(organizationId: number): Observable {\r\n return this.http.get(`/api/organizations/${organizationId}/users`)\r\n .pipe(\r\n map(resp => resp.users),\r\n map(users => users.map(u => new User(u)))\r\n );\r\n }\r\n\r\n search(request: OrganizationSearchRequest): Observable {\r\n \r\n var params = {\r\n q: request.term,\r\n local: request.local ? request.local.toString() : 'false',\r\n exchange: request.exchange ? request.exchange.toString() : 'false',\r\n ohrp: request.ohrp ? request.ohrp.toString() : 'false'\r\n };\r\n\r\n return this.http.get('/api/organizations/search', { params })\r\n .pipe(map(response => response.results));\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { map, catchError, switchMap, tap } from 'rxjs/operators';\r\nimport { Observable, throwError, Subject, timer, Subscription } from 'rxjs';\r\nimport { Study, StudyListItem } from '../models/study';\r\nimport { Site } from '../models/site';\r\nimport { DataServicesModule } from './data-services.module';\r\nimport { RniDto } from '../models/rni';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Modification } from '../models/mod';\r\nimport { CrReport } from '../models/cr-report';\r\n\r\ninterface GetStudiesResult {\r\n studies: StudyListItem[];\r\n}\r\n\r\ninterface GetStudyDetailsResult {\r\n study: Study;\r\n}\r\n\r\ninterface GetSiteDetailsResult {\r\n site: Site;\r\n}\r\n\r\ninterface GetRniResults {\r\n rni: RniDto;\r\n}\r\n\r\ninterface GetModificationResults {\r\n modification: Modification;\r\n}\r\n\r\nexport interface UserInvitationsCountResponse {\r\n count: number;\r\n}\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: DataServicesModule\r\n})\r\nexport class ResearchService {\r\n\r\n private invitationAcceptedSource = new Subject();\r\n private invitationDeclinedSource = new Subject();\r\n\r\n invitationAccepted$ = this.invitationAcceptedSource.asObservable();\r\n invitationDeclined$ = this.invitationDeclinedSource.asObservable();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private toastr: ToastrService) {\r\n }\r\n\r\n getStudies(): Observable {\r\n return this.http.get('/api/research')\r\n .pipe(map((data) => data.studies));\r\n }\r\n\r\n getInvitations(): Observable {\r\n return this.http.get('/api/research/invitations')\r\n .pipe(map((data) => data.studies));\r\n }\r\n\r\n getInvitationCount(skipRefresh: boolean = false): Observable {\r\n\r\n var headers = {};\r\n if (skipRefresh) {\r\n headers['X-NoRefreshToken'] = 'true'\r\n }\r\n\r\n return this.http.get(`/api/research/invitations-count`, { headers: headers }).pipe(\r\n map(response => response.count));\r\n }\r\n\r\n getStudyDetails(exchangeId: string): Observable {\r\n return this.http.get(`/api/research/studyDetails/${exchangeId}`)\r\n .pipe(map((data) => data.study))\r\n }\r\n\r\n acceptInvitation(exchangeId: string) {\r\n return this.http.post(`/api/research/invitations/${exchangeId}/accept`, {})\r\n .pipe(tap(_ => this.invitationAcceptedSource.next(exchangeId)));\r\n }\r\n\r\n declineInvitation(exchangeId: string) {\r\n return this.http.post(`/api/research/invitations/${exchangeId}/decline`, {})\r\n .pipe(tap(_ => this.invitationDeclinedSource.next(exchangeId)));\r\n }\r\n\r\n getSiteDetails(studyExchangeId: string, siteExchangeId: string) {\r\n return this.http.get(`/api/research/siteDetails/${studyExchangeId}/${siteExchangeId}`)\r\n .pipe(map((data) => data.site));\r\n }\r\n\r\n updateSite(studyExchangeId: string, siteExchangeId: string, site: Site) {\r\n return this.http.post(`api/research/updateSite/${studyExchangeId}/${siteExchangeId}`, site);\r\n }\r\n\r\n sendToSirb(studyExchangeId: string, siteExchangeId: string, site: Site) {\r\n return this.http.post(`api/research/sendToSirb/${studyExchangeId}/${siteExchangeId}`, site);\r\n }\r\n\r\n getRni(rniExchangeId: string, studyExchangeId: string) {\r\n return this.http.get(`/api/rni/${rniExchangeId}/${studyExchangeId}`)\r\n .pipe(map((data) => data.rni))\r\n }\r\n\r\n getNewRni(studyExchangeId: string) {\r\n return this.http.get(`/api/rni/${studyExchangeId}`)\r\n .pipe(map((data) => data.rni))\r\n }\r\n\r\n createRni(studyExchangeId: string, rni: RniDto) {\r\n return this.http.post(`/api/rni/${studyExchangeId}/create`, rni).pipe(\r\n catchError(err => {\r\n if (err.errors && err.errors['']) {\r\n if (err.errors[''].includes('AwarenessDateCannotBeFuture')) {\r\n this.toastr.error(\"Date of awareness cannot be in the future.\", \"Invalid Date\");\r\n }\r\n }\r\n return throwError(err);\r\n })\r\n );\r\n }\r\n\r\n updateRni(rniExchangeId: string, studyExchangeId: string, rni: RniDto) {\r\n return this.http.post(`/api/rni/${rniExchangeId}/${studyExchangeId}/update`, rni).pipe(\r\n catchError(err => {\r\n if (err.errors && err.errors['']) {\r\n if (err.errors[''].includes('AwarenessDateCannotBeFuture')) {\r\n this.toastr.error(\"Date of awareness cannot be in the future.\", \"Invalid Date\");\r\n } else if (err.errors[''].includes('SirbRniHasBeenApproved')) {\r\n this.toastr.error(\"Rni is complete/acknowledged\", \"Can't Update\");\r\n } else {\r\n this.toastr.error(\"Something went wrong.\", \"Server error!\");\r\n }\r\n }\r\n return throwError(err);\r\n })\r\n );\r\n }\r\n\r\n getNewModification(studyExchangeId: string) {\r\n return this.http.get(`/api/modification/${studyExchangeId}`)\r\n .pipe(map((data) => data.modification));\r\n }\r\n\r\n getModification(modExchangeId: string, studyExchangeId: string) {\r\n return this.http.get(`/api/modification/${modExchangeId}/${studyExchangeId}`)\r\n .pipe(map((data) => data.modification));\r\n }\r\n\r\n createModification(studyExchangeId: string, modification: Modification) {\r\n return this.http.post(`/api/modification/${studyExchangeId}/create`, modification).pipe(\r\n catchError(err => {\r\n if (err.errors && err.errors['']) {\r\n if (err.errors[''].includes('SiteIsNotApproved')) {\r\n this.toastr.error(\"Site is not Approved.\", \"Cant open!\")\r\n } else if (err.errors[''].includes('SiteHasOpenMod')) {\r\n this.toastr.error(\"There is already an open mod.\", \"Cant open!\")\r\n } else {\r\n this.toastr.error(\"Something went wrong.\", \"Server error!\")\r\n }\r\n }\r\n return throwError(err);\r\n })\r\n );\r\n }\r\n\r\n updateModification(modExchangeId: string, studyExchangeId: string, modification: Modification) {\r\n return this.http.post(`/api/modification/${modExchangeId}/${studyExchangeId}/update`, modification).pipe(\r\n catchError(err => {\r\n if (err.errors && err.errors['']) {\r\n if (err.errors[''].includes('ModificationIsNotFound')) {\r\n this.toastr.error(\"Modification is not found.\", \"Not Found!\")\r\n } else if (err.errors[''].includes('SirbModHasBeenApproved')) {\r\n this.toastr.error(\"Modification is Approved.\", \"Can't Update!\")\r\n } else {\r\n this.toastr.error(\"Something went wrong.\", \"Server error!\")\r\n }\r\n }\r\n return throwError(err);\r\n })\r\n );\r\n }\r\n\r\n mergeModification(modExchangeId: string, studyExchangeId: string) {\r\n return this.http.post(`/api/modification/${modExchangeId}/${studyExchangeId}/merge`, {});\r\n }\r\n\r\n updateContinuingReview(studyExchangeId: string, siteExchangeId: string, cr: CrReport) {\r\n return this.http.post(`api/research/continuingReview/${studyExchangeId}/${siteExchangeId}`, cr);\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Role, User, UserDto } from '../models';\r\nimport { Observable, throwError, Subject } from 'rxjs';\r\nimport { map, catchError, tap } from 'rxjs/operators';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { DataServicesModule } from './data-services.module';\r\n\r\nexport interface UserContactInfo {\r\n firstName: string;\r\n lastName: string;\r\n phoneNumber: number;\r\n email: string;\r\n}\r\n\r\ninterface UserPendingApprovalCountResponse {\r\n count: number;\r\n}\r\n\r\nexport interface UserRoleAssigned {\r\n id: string;\r\n role: Role;\r\n}\r\n\r\nexport interface UserRoleUnassigned {\r\n id: string;\r\n role: Role;\r\n}\r\n\r\nexport interface UserSearchRequest {\r\n term: string;\r\n}\r\n\r\nexport interface UserSearchResult {\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n}\r\n\r\nexport interface UserSearchResponse {\r\n results: UserSearchResult[];\r\n}\r\n\r\n\r\n@Injectable({\r\n providedIn: DataServicesModule\r\n})\r\nexport class UserService {\r\n\r\n private userApprovedSource = new Subject();\r\n private userDeniedSource = new Subject();\r\n private userContactInfoUpdatedSource = new Subject();\r\n private userRoleAssignedSource = new Subject();\r\n private userRoleUnassignedSource = new Subject();\r\n \r\n userApproved$ = this.userApprovedSource.asObservable();\r\n userDenied$ = this.userDeniedSource.asObservable();\r\n userContactInfoUpdated$ = this.userContactInfoUpdatedSource.asObservable();\r\n userRoleAssigned$ = this.userRoleAssignedSource.asObservable();\r\n userRoleUnassigned$ = this.userRoleUnassignedSource.asObservable();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private toastr: ToastrService) { \r\n }\r\n\r\n approveUser(id: string) {\r\n return this.http.post(`/api/users/${id}/approve`, {})\r\n .pipe(tap(_ => this.userApprovedSource.next(id)));\r\n }\r\n\r\n denyUser(id: string) {\r\n return this.http.post(`/api/users/${id}/deny`, {}).pipe(\r\n tap(_ => this.userDeniedSource.next(id)),\r\n catchError(err => {\r\n if (err.errors && err.errors['']) {\r\n if (err.errors[''].includes('UserAccountAlreadyApproved')) {\r\n this.toastr.error(\"Sorry, you are not allowed to deny an account that has already been approved.\", \"Unauthorized\");\r\n }\r\n }\r\n return throwError(err);\r\n })\r\n )\r\n }\r\n\r\n deleteUser(id: string) {\r\n return this.http.post(`/api/users/${id}/delete`, {}).pipe(\r\n catchError(err => {\r\n if (err.errors && err.errors['']) {\r\n if (err.errors[''].includes('CannotDeleteOwnAccount')) {\r\n this.toastr.error(\"Sorry, you are not allowed to delete your own account.\", \"Unauthorized\");\r\n }\r\n if (err.errors[''].includes('CannotDeleteAdminAccount')) {\r\n this.toastr.error(\"Sorry, you are not allowed to delete an administrator account.\", \"Unauthorized\");\r\n }\r\n if (err.errors[''].includes('CannotDeleteOrganizationOwner')) {\r\n this.toastr.error(\"Sorry, you are not allowed to delete the account which owns the organization.\", \"Unauthorized\");\r\n }\r\n if (err.errors[''].includes('CannotDeleteLastAccountManager')) {\r\n this.toastr.error(\"Sorry, you are not allowed to delete the only account manager account for an organization.\", \"Unauthorized\");\r\n }\r\n }\r\n return throwError(err);\r\n })\r\n );\r\n }\r\n\r\n lockUser(id: string) {\r\n return this.http.post(`/api/users/${id}/lock`, {}).pipe(\r\n catchError(err => {\r\n if (err.errors && err.errors['']) {\r\n if (err.errors[''].includes('CannotLockOwnAccount')) {\r\n this.toastr.error(\"Sorry, you are not allowed to lock your own account.\", \"Unauthorized\")\r\n }\r\n }\r\n return throwError(err);\r\n })\r\n );\r\n }\r\n\r\n unlockUser(id: string) {\r\n return this.http.post(`/api/users/${id}/unlock`, {});\r\n }\r\n\r\n assignRole(id: string, role: Role) {\r\n return this.http.post(`/api/users/${id}/assign-role`, { role }).pipe(tap(() => {\r\n this.userRoleAssignedSource.next({ id, role });\r\n }));\r\n }\r\n\r\n unassignRole(id: string, role: Role) {\r\n return this.http.post(`/api/users/${id}/unassign-role`, { role }).pipe(tap(() => {\r\n this.userRoleUnassignedSource.next({ id, role });\r\n }));\r\n }\r\n\r\n updateContactInfo(id: string, contactInfo: UserContactInfo) {\r\n return this.http.post(`/api/users/${id}`, contactInfo).pipe(tap(_ => this.userContactInfoUpdatedSource.next(contactInfo)));\r\n }\r\n\r\n getUser(id: string): Observable {\r\n return this.http.get(`/api/users/${id}`)\r\n .pipe(map(dto => new User(dto)));\r\n }\r\n\r\n getPendingApprovalCount(skipRefresh: boolean = false): Observable {\r\n\r\n var headers = {};\r\n if (skipRefresh) {\r\n headers['X-NoRefreshToken'] = 'true'\r\n }\r\n\r\n return this.http.get('/api/users/pending-approval-count', { headers: headers } ).pipe(map(response => response.count));\r\n }\r\n\r\n search(request: UserSearchRequest): Observable {\r\n // Encode query string unsafe charecters. \r\n let term = encodeURIComponent(request.term);\r\n var params = {\r\n q: term\r\n };\r\n\r\n return this.http.get('/api/users/search', { params })\r\n .pipe(map(response => response.results));\r\n }\r\n}","module.exports = \"\\r\\n
\\r\\n\\r\\n

DatePipe example

\\r\\n See the documentation\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n

{{ myDate | date : dateFormat }}

\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \":host {\\n padding: 40px;\\n min-width: 640px;\\n min-height: 480px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvZXhhbXBsZXMvZGF0ZS1waXBlLWV4YW1wbGUvRDpcXEplbmtpbnNcXHdvcmtzcGFjZVxcRXhjaGFuZ2VVSS1BZGhvY1xcc3JjXFxIdXJvbi5FeGNoYW5nZS5VSS9zcmNcXGFwcFxcZXhhbXBsZXNcXGRhdGUtcGlwZS1leGFtcGxlXFxkYXRlLXBpcGUtZXhhbXBsZS5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGFBQWE7RUFDYixnQkFBZ0I7RUFDaEIsaUJBQWlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9leGFtcGxlcy9kYXRlLXBpcGUtZXhhbXBsZS9kYXRlLXBpcGUtZXhhbXBsZS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICAgIHBhZGRpbmc6IDQwcHg7XHJcbiAgICBtaW4td2lkdGg6IDY0MHB4O1xyXG4gICAgbWluLWhlaWdodDogNDgwcHg7XHJcbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-date-pipe-example',\r\n templateUrl: './date-pipe-example.component.html',\r\n styleUrls: ['./date-pipe-example.component.scss']\r\n})\r\nexport class DatePipeExampleComponent implements OnInit {\r\n\r\n myDate = \"2019-01-29T21:25:00.6330073-08:00\";\r\n myDateFormat = 'short';\r\n myCustomFormat = 'yyyy-MM-dd HH:mm:ss'\r\n\r\n formats: string[] = [\r\n 'short',\r\n 'medium',\r\n 'long',\r\n 'shortDate',\r\n 'mediumDate',\r\n 'longDate',\r\n 'fullDate',\r\n 'shortTime',\r\n 'mediumTime',\r\n 'longTime',\r\n 'fullTime',\r\n 'custom'\r\n ]\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n get dateFormat() {\r\n return this.myDateFormat === 'custom' ? this.myCustomFormat : this.myDateFormat;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { DatePipeExampleComponent } from './date-pipe-example/date-pipe-example.component';\r\nimport { ForbiddenExampleComponent } from './forbidden-example/forbidden-example.component';\r\nimport { OrganizationSearchTypeaheadExampleComponent } from './organization-search-typeahead-example/organization-search-typeahead-example.component';\r\nimport { LoadingExampleComponent } from './loading-example/loading-example.component';\r\nimport { MessageBoxExampleComponent } from './message-box-example/message-box-example.component';\r\n\r\nconst routes: Routes = [\r\n { \r\n path: 'examples',\r\n children: [\r\n { path: 'date-pipe', component: DatePipeExampleComponent },\r\n { path: 'forbidden', component: ForbiddenExampleComponent },\r\n { path: 'org-search', component: OrganizationSearchTypeaheadExampleComponent },\r\n { path: 'loading', component: LoadingExampleComponent },\r\n { path: 'message-box', component: MessageBoxExampleComponent }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class ExamplesRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { ExamplesRoutingModule } from './examples-routing.module';\r\nimport { DatePipeExampleComponent } from './date-pipe-example/date-pipe-example.component';\r\nimport { ForbiddenExampleComponent } from './forbidden-example/forbidden-example.component';\r\nimport { OrganizationSearchTypeaheadExampleComponent } from './organization-search-typeahead-example/organization-search-typeahead-example.component';\r\nimport { OrganizationsModule } from '../organizations';\r\nimport { LoadingExampleComponent } from './loading-example/loading-example.component';\r\nimport { SharedModule } from '../shared';\r\nimport { MessageBoxExampleComponent } from './message-box-example/message-box-example.component';\r\n\r\n@NgModule({\r\n declarations: [DatePipeExampleComponent, ForbiddenExampleComponent, OrganizationSearchTypeaheadExampleComponent, LoadingExampleComponent, MessageBoxExampleComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ExamplesRoutingModule,\r\n OrganizationsModule,\r\n\r\n SharedModule\r\n ]\r\n})\r\nexport class ExamplesModule { }\r\n","module.exports = \"

Forbidden API request example

\\r\\n

Press the button to make an Ajax request that returns 403 forbidden. You should be redirected to the forbidden page.

\\r\\n\\r\\n\\r\\n
if this is display then something isn't working quite right
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2V4YW1wbGVzL2ZvcmJpZGRlbi1leGFtcGxlL2ZvcmJpZGRlbi1leGFtcGxlLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { DiagnosticsService } from 'src/app/data-services/diagnostics.service';\r\n\r\n@Component({\r\n selector: 'app-forbidden-example',\r\n templateUrl: './forbidden-example.component.html',\r\n styleUrls: ['./forbidden-example.component.scss']\r\n})\r\nexport class ForbiddenExampleComponent implements OnInit {\r\n\r\n showError = false;\r\n\r\n constructor(private diagnostics: DiagnosticsService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n test() {\r\n this.diagnostics.forbidden().subscribe(\r\n (d) => this.showError = true,\r\n (e) => this.showError = true);\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2V4YW1wbGVzL2xvYWRpbmctZXhhbXBsZS9sb2FkaW5nLWV4YW1wbGUuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-loading-example',\r\n templateUrl: './loading-example.component.html',\r\n styleUrls: ['./loading-example.component.scss']\r\n})\r\nexport class LoadingExampleComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2V4YW1wbGVzL21lc3NhZ2UtYm94LWV4YW1wbGUvbWVzc2FnZS1ib3gtZXhhbXBsZS5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { MessageBoxService, MessageBoxButtons, MessageBoxIcon, MessageBoxResult } from 'src/app/shared';\r\n\r\n@Component({\r\n selector: 'app-message-box-example',\r\n templateUrl: './message-box-example.component.html',\r\n styleUrls: ['./message-box-example.component.scss']\r\n})\r\nexport class MessageBoxExampleComponent implements OnInit {\r\n\r\n constructor(private messageBox: MessageBoxService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n demo0() {\r\n this.messageBox.alert(\"simple alert message\").subscribe((val) => {\r\n console.log(val == MessageBoxResult.Ok);\r\n });\r\n }\r\n\r\n demo1() {\r\n this.messageBox.open({ message: 'Hello, World!', title: \"Title\" })\r\n .subscribe((val) => {\r\n console.log(val);\r\n });\r\n }\r\n\r\n demo2() {\r\n this.messageBox.confirm(\"You do really want to do this?\")\r\n .subscribe((val) => {\r\n console.log(val);\r\n })\r\n }\r\n\r\n demo3() {\r\n this.messageBox.open({ \r\n message: \"Something went very wrong. This is some more text so that I can see what happens when the line of text wraps.\", \r\n title: \"Error\", \r\n buttons: MessageBoxButtons.OkCancel, \r\n icon: MessageBoxIcon.Error\r\n }).subscribe((val) => {\r\n console.log(val);\r\n });\r\n }\r\n \r\n demo4() {\r\n this.messageBox.open({ \r\n message: \"Something went very wrong. This is some more text so that I can see what happens when the line of text wraps.\", \r\n title: \"Warning\", \r\n buttons: MessageBoxButtons.OkCancel, \r\n icon: MessageBoxIcon.Warning\r\n }).subscribe((val) => {\r\n console.log(val);\r\n });\r\n }\r\n\r\n demo5() {\r\n this.messageBox.open({ \r\n message: \"Something went very wrong. This is some more text so that I can see what happens when the line of text wraps.\", \r\n title: \"Information\", \r\n buttons: MessageBoxButtons.OkCancel, \r\n icon: MessageBoxIcon.Information\r\n }).subscribe((val) => {\r\n console.log(val);\r\n });\r\n }\r\n}\r\n","module.exports = \"\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n

app-organization-search-typeahead example

\\r\\n \\r\\n\\r\\n
{{ selected | json }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2V4YW1wbGVzL29yZ2FuaXphdGlvbi1zZWFyY2gtdHlwZWFoZWFkLWV4YW1wbGUvb3JnYW5pemF0aW9uLXNlYXJjaC10eXBlYWhlYWQtZXhhbXBsZS5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { OrganizationSearchResult } from '../../data-services';\r\n\r\n@Component({\r\n selector: 'app-organization-search-typeahead-example',\r\n templateUrl: './organization-search-typeahead-example.component.html',\r\n styleUrls: ['./organization-search-typeahead-example.component.scss']\r\n})\r\nexport class OrganizationSearchTypeaheadExampleComponent implements OnInit {\r\n\r\n selected: OrganizationSearchResult;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n clear() {\r\n this.selected = null;\r\n }\r\n\r\n onSelect(org: OrganizationSearchResult) {\r\n this.selected = org;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SplashComponent } from './splash/splash.component';\r\nimport { SharedModule } from '../shared';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@NgModule({\r\n declarations: [\r\n SplashComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n NgbModule\r\n ]\r\n})\r\nexport class HomeModule { }\r\n","export * from './splash/splash.component';\r\nexport * from './home.module';","module.exports = \"
\\r\\n \\r\\n
\\r\\n
\\r\\n

What is irb exchange?

\\r\\n

\\r\\n Guarantee the secure exchange of data and ease compliance with the NIH's new policy requiring a single IRB of record with Huron IRB Exchange –\\r\\n a cloud-based service that allows you to efficiently manage a single IRB review of multi-site research studies across institutions.\\r\\n

\\r\\n

\\r\\n Learn More: \\r\\n Overview Video |\\r\\n FAQS |\\r\\n Why Huron\\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Overview Video

\\r\\n

\\r\\n This video provides an overview of IRB Exchange, demonstrating how data is shared between the single IRB of record for a multi-site study\\r\\n and its participating site.\\r\\n

\\r\\n
\\r\\n Learn More\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n

FAQ

\\r\\n
    \\r\\n
  • \\r\\n
    \\r\\n

    {{ f.question }}

    \\r\\n \\r\\n
    \\r\\n \\r\\n

    \\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n

Why Huron

\\r\\n

\\r\\n As a leader in the IRB industry, our IRB platform solution is currently helping more than 80 leading research institutions in their IRB compliance\\r\\n effors, with institutions already successfully adopting the market-leading IRB Exchange.\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n

Are you a developer?

\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \":host {\\n color: #6c757d;\\n font-weight: 600; }\\n\\n.row {\\n margin-bottom: 2em; }\\n\\n.row-alt {\\n background-color: #e7eaeb; }\\n\\nul.faq {\\n list-style: none;\\n padding: 0; }\\n\\nul.faq li {\\n border-bottom: 1px solid #6c757d;\\n padding: 1em; }\\n\\nul.faq li:hover {\\n color: #00568c;\\n background-color: rgba(105, 197, 244, 0.3); }\\n\\n.faq-question {\\n cursor: pointer;\\n font-weight: 800;\\n color: #3d4246; }\\n\\n.faq-question .faq-icon {\\n color: #f26457; }\\n\\n.faq-answer {\\n padding-top: 1em; }\\n\\nh1, h2 {\\n font-weight: 900;\\n color: #00568c; }\\n\\n.link-box {\\n border: 1px solid #00568c;\\n padding: 1em 3em;\\n text-transform: uppercase;\\n font-weight: 900; }\\n\\n.link-box:hover {\\n text-decoration: none; }\\n\\n#developer {\\n background-image: url('developer.png');\\n min-height: 400px; }\\n\\n#developer h2 {\\n color: #fff; }\\n\\n#developer .link-box {\\n color: #fff;\\n background-color: #69c5f4;\\n border: none; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvaG9tZS9zcGxhc2gvRDpcXEplbmtpbnNcXHdvcmtzcGFjZVxcRXhjaGFuZ2VVSS1BZGhvY1xcc3JjXFxIdXJvbi5FeGNoYW5nZS5VSS9zcmNcXGFwcFxcaG9tZVxcc3BsYXNoXFxzcGxhc2guY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxjQUFjO0VBQ2QsZ0JBQWdCLEVBQUE7O0FBR3BCO0VBQ0ksa0JBQWtCLEVBQUE7O0FBR3RCO0VBQ0kseUJBQXlCLEVBQUE7O0FBRzdCO0VBQ0ksZ0JBQWdCO0VBQ2hCLFVBQVUsRUFBQTs7QUFGZDtJQUtRLGdDQUFnQztJQUNoQyxZQUFZLEVBQUE7O0FBTnBCO0lBU1EsY0FBYztJQUNkLDBDQUF1QyxFQUFBOztBQUkvQztFQUNJLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsY0FBMkIsRUFBQTs7QUFIL0I7SUFNUSxjQUFjLEVBQUE7O0FBSXRCO0VBQ0ksZ0JBQWdCLEVBQUE7O0FBSXBCO0VBQ0ksZ0JBQWdCO0VBQ2hCLGNBQWMsRUFBQTs7QUFHbEI7RUFDSSx5QkFBeUI7RUFDekIsZ0JBQWdCO0VBQ2hCLHlCQUF5QjtFQUN6QixnQkFBZ0IsRUFBQTs7QUFFcEI7RUFDSSxxQkFBcUIsRUFBQTs7QUFHekI7RUFDSSxzQ0FBd0Q7RUFDeEQsaUJBQWlCLEVBQUE7O0FBRnJCO0lBSVEsV0FBVyxFQUFBOztBQUpuQjtJQU9RLFdBQVc7SUFDWCx5QkFBeUI7SUFDekIsWUFBWSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvaG9tZS9zcGxhc2gvc3BsYXNoLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3Qge1xyXG4gICAgY29sb3I6ICM2Yzc1N2Q7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG59XHJcblxyXG4ucm93IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDJlbTtcclxufVxyXG5cclxuLnJvdy1hbHQge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U3ZWFlYjtcclxufVxyXG5cclxudWwuZmFxIHtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG5cclxuICAgIGxpIHtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzZjNzU3ZDtcclxuICAgICAgICBwYWRkaW5nOiAxZW07XHJcbiAgICB9XHJcbiAgICBsaTpob3ZlciB7XHJcbiAgICAgICAgY29sb3I6ICMwMDU2OGM7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMDUsMTk3LDI0NCwwLjMpO1xyXG4gICAgfVxyXG59XHJcblxyXG4uZmFxLXF1ZXN0aW9uIHtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgICBjb2xvcjogZGFya2VuKCM2Yzc1N2QsIDIwJSk7XHJcblxyXG4gICAgLmZhcS1pY29uIHtcclxuICAgICAgICBjb2xvcjogI2YyNjQ1NztcclxuICAgIH0gICAgXHJcbn1cclxuXHJcbi5mYXEtYW5zd2VyIHtcclxuICAgIHBhZGRpbmctdG9wOiAxZW07XHJcbn1cclxuXHJcblxyXG5oMSxoMiB7XHJcbiAgICBmb250LXdlaWdodDogOTAwO1xyXG4gICAgY29sb3I6ICMwMDU2OGM7XHJcbn1cclxuXHJcbi5saW5rLWJveCB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDA1NjhjO1xyXG4gICAgcGFkZGluZzogMWVtIDNlbTtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBmb250LXdlaWdodDogOTAwO1xyXG59XHJcbi5saW5rLWJveDpob3ZlciB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbn1cclxuXHJcbiNkZXZlbG9wZXIge1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwic3JjL2Fzc2V0cy9pbWFnZXMvZGV2ZWxvcGVyLnBuZ1wiKTtcclxuICAgIG1pbi1oZWlnaHQ6IDQwMHB4O1xyXG4gICAgaDIge1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgfVxyXG4gICAgLmxpbmstYm94IHtcclxuICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjljNWY0O1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgIH1cclxufSJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { EmbedVideoService } from 'ngx-embed-video';\r\nimport { NgStyle } from '@angular/common';\r\n\r\n\r\ninterface FaqItem\r\n{\r\n question: string;\r\n answer: string;\r\n showAnswer: boolean;\r\n}\r\n\r\n// In the future, we should store the FAQ questions\r\n// and answers in the database, so that we can modify\r\n// the list without having to deply new code.\r\nconst FAQS: FaqItem[] = [\r\n { \r\n question: 'How much does the Huron IRB Exchange cost my institution?',\r\n answer: 'As a Participating Site (pSite), usage of the Huron IRB Exchange is free. You simply need to create an account for your institution and any users you would like to have access, and you can start working with the Single IRBs of Record (sIRBs) immediately.',\r\n showAnswer: false\r\n },\r\n {\r\n question: 'How do I get started?',\r\n answer: `\r\n
    \r\n
  • The first step is to register your institution to the Huron IRB Exchange.
  • \r\n
  • After your institution has been registered and confirmed, an Account Manager will be assigned to your institution. More than one individual can have this role and it can be changed at any time. Users with the Account Manager role can approve new user accounts for your institution and assign roles to each user.
  • \r\n
  • \r\n

    New user accounts can be created for your institution using two different options:

    \r\n
      \r\n
    • Users can go through the registration link to request an account.
    • \r\n
    • A user with the Account Manager role at each institution can manually create accounts for the appropriate users.
    • \r\n
    \r\n
    \r\n
  • \r\n
  • As soon as your institution has been registered and accounts created, your Reliance Coordinators and Study Staff can begin their work on the multi-site studies you have been invited to participate in.
  • \r\n
`,\r\n showAnswer: false\r\n },\r\n {\r\n question: 'Who are the intended users of the Huron IRB Exchange?',\r\n answer: `\r\n

User can have more than one role on the Huron IRB Exchange. The 3 roles that can be assigned to a user are:

\r\n
    \r\n
  • Account Manager: A user with this role can create, approve, and deny user accounts and then add and remove roles from those accounts in the system.
  • \r\n
  • Reliance Coordinator: A user with this role is given \"global\" access to your institution's multi-site studies, as well as act to accept or deny those invitations. After invitation acceptance, the Reliance Coordinator can view and edit all studies for your organization.
  • \r\n
  • Study Staff: A user with this role is given access only to studies where they are assigned as the PI or PI proxy. Study Staff can accept or decline the invitation to participate in a study. After invitation acceptance, Study Staff can view and edit the details of any multi-site study to which they are assigned. Study Staff do not have \"global\" access to all studies across your organization.
  • \r\n
`,\r\n showAnswer: false\r\n },\r\n {\r\n question: 'What are some general expectations of each user role in the Huron IRB Exchange?',\r\n answer: `\r\n
    \r\n
  • Account Manager: These users are responsible for ensuring the correct individuals at your institution have access to the Huron IRB Exchange. Account Managers should add and remove accounts and confirm that each account is assigned the correct role.
  • \r\n
  • Reliance Coordinator: These users help facilitate the invitation acceptance process and keep track of the sites at your institution in order to ensure appropriate and timely action is taken by your Study Staff. Reliance Coordinators can also serve as a liaison to (or possibly as a member of) the IRB office at your institution. There will likely be details that need to be transferred from the Huron IRB Exchange to your institution's IRB system/process, which the Reliance Coordinator will have the ability to access and document.
  • \r\n
  • Study Staff: These users are typically responsible for making the decision to participate in a multi-site study, and once the invitation is accepted, they are stewards of the critical information that needs to be documented and sent to the sIRB for review. Study Staff are responsible for providing the initial site information to the sIRB, as well as any additional information related to Modifications, Continuing Review, or Reportable New Information.\r\n
`,\r\n showAnswer: false\r\n },\r\n {\r\n question: 'What IRB Systems are compatible with the Huron IRB Exchange?',\r\n answer: 'The Huron IRB Exchange can integrate with any IRB system. The latest version of Huron's IRB solution comes with integration to the Huron IRB Exchange out of the box. Other versions of Huron's IRB solution or any other IRB solution can integrate with the Huron IRB Exchange using details provided here.',\r\n showAnswer: false\r\n },\r\n {\r\n question: 'Who do I contact for support/questions?',\r\n answer: `\r\n
    \r\n
  • To assist with functionality questions, we have embedded training through the Huron IRB Exchange in order to assist users with accomplishing the steps they need to take.
  • \r\n
  • If you experience an issue with the Huron IRB Exchange website, please contact Huron using the contact Huron link.
  • \r\n
  • If you have questions about the information you receive from an IRB of Record, or a specific issue related to a study, you may need to contact the IRB of Record to resolve the issue.
  • \r\n
`,\r\n showAnswer: false\r\n }\r\n]\r\n\r\n\r\n@Component({\r\n selector: 'app-splash',\r\n templateUrl: './splash.component.html',\r\n styleUrls: ['./splash.component.scss']\r\n})\r\nexport class SplashComponent implements OnInit {\r\n\r\n iframeHtml: any;\r\n private videoUrl = 'https://player.vimeo.com/video/269961804';\r\n\r\n faqs : FaqItem[] = FAQS;\r\n\r\n\r\n constructor(private embedVideo: EmbedVideoService) { }\r\n\r\n ngOnInit() {\r\n this.iframeHtml = this.embedVideo.embed_vimeo(\"269961804\", {\r\n query: { portrait: 0 },\r\n attr: { width: 550, height: 310 }\r\n });\r\n\r\n }\r\n\r\n get contactUs(): string {\r\n // I know this looks ugly, but its done this way for a reason.\r\n // Build the email address and bind it to the ui via script, so it's not easily scraped by spammers.\r\n var email = 'huronconsultinggroup.com';\r\n email = 'HuronIRBExchange' + '@' + email;\r\n email = 'mailto: ' + email;\r\n return email;\r\n }\r\n\r\n}\r\n","import { Attachment } from './attachment';\r\n\r\nexport class CrReport {\r\n comments: string;\r\n enrolledSinceLastApproval: number;\r\n totalEnrollment: number;\r\n //reportedDate: date;\r\n supportingDocuments: Attachment[];\r\n noSubjectsExperienced: boolean;\r\n anticipatedAdverse: boolean;\r\n noSubjectsWithdrew: boolean;\r\n noUnanticipated: boolean;\r\n noComplaints: boolean;\r\n noPublications: boolean;\r\n noInterim: boolean;\r\n noMultiCenter: boolean;\r\n noData: boolean;\r\n noRegulatory: boolean;\r\n noOther: boolean;\r\n inTheOpinion: boolean;\r\n allModifications: boolean;\r\n allProblems: boolean;\r\n noInternal: boolean;\r\n\r\n constructor(){\r\n this.supportingDocuments = [];\r\n }\r\n\r\n}","// Models barrel file \r\n\r\nexport * from './user';\r\nexport * from './role';\r\nexport * from './organization';\r\n\r\n// Research\r\nexport * from './study';","import { ReviewInformation } from './reviewInformation';\r\nimport { Site } from './site';\r\n\r\nexport interface ModListItem {\r\n id: string;\r\n name: string;\r\n summary: string;\r\n dateCreated: Date;\r\n status: string;\r\n}\r\n\r\n/**\r\n * The site modification supported by IRB Exchange.\r\n */\r\nexport interface Modification {\r\n name: string;\r\n dateCreated: string;\r\n enrollmentStatus: string[];\r\n subjectNotifications: string[];\r\n summary: string;\r\n status: string;\r\n draftSite: Site;\r\n grantAccessToIrb: boolean;\r\n reviewInformation: ReviewInformation;\r\n}\r\n\r\n/** \r\n * Selections supported by the IRB Exchange for site modification enrollment status\r\n */\r\nexport enum EnrollmentStatus {\r\n NONE_ENROLLED = \"NONE_ENROLLED\",\r\n CURRENT_ENROLLED = \"CURRENT_ENROLLED\",\r\n ENROLLMENT_CLOSED = \"ENROLLMENT_CLOSED\",\r\n INTERVENTIONS_COMPLETED = \"INTERVENTIONS_COMPLETED\",\r\n INFO_COLLECTION_COMPLETE = \"INFO_COLLECTION_COMPLETE\"\r\n}\r\n\r\n/**\r\n * Selections supported by the IRB Exchange for site modification subject notification\r\n */\r\nexport enum SubjectNotifications {\r\n CURRENT_SUBJECTS = \"CURRENT_SUBJECTS\",\r\n FORMER_SUBJECTS = \"FORMER_SUBJECTS\"\r\n}\r\n\r\nexport interface ModEnrollmentStatus {\r\n NONE_ENROLLED: boolean;\r\n CURRENT_ENROLLED: boolean;\r\n ENROLLMENT_CLOSED: boolean;\r\n INTERVENTIONS_COMPLETED: boolean;\r\n INFO_COLLECTION_COMPLETE: boolean;\r\n}\r\n\r\nexport interface ModSubjectNotifications {\r\n CURRENT_SUBJECTS: boolean;\r\n FORMER_SUBJECTS: boolean;\r\n}\r\n\r\n/** \r\n * The MOD status.\r\n */\r\nexport enum ModificationStatus {\r\n Draft = \"Draft\",\r\n PendingSirbReview = \"Pending sIRB Review\",\r\n Approved = \"Approved\"\r\n}\r\n","import { User } from './user';\r\n\r\nexport interface OrganizationDto {\r\n id: number\r\n name: string\r\n exchangeId: string\r\n thumbprint: string\r\n owner: User\r\n isApproved: boolean;\r\n}\r\n\r\nexport class Organization implements OrganizationDto {\r\n id: number\r\n name: string\r\n exchangeId: string\r\n thumbprint: string\r\n owner: User\r\n isApproved: boolean;\r\n\r\n constructor(args: Partial) {\r\n if (args) {\r\n this.id = args.id;\r\n this.name = args.name;\r\n this.exchangeId = args.exchangeId;\r\n this.thumbprint = args.thumbprint;\r\n this.owner = args.owner;\r\n this.isApproved = args.isApproved;\r\n }\r\n }\r\n}","import { ActionPlan } from './actionPlan';\r\nimport { Attachment } from './attachment';\r\nimport { Person } from './person';\r\nimport { DocumentItem } from './documentItem';\r\n\r\nexport interface RniDto {\r\n name: string;\r\n state: string;\r\n principalInvestigator: Person;\r\n sitePrincipalInvestigator: Person;\r\n description: string;\r\n reportedBy: string;\r\n isIncreasedRiskOrSafetyIssue: boolean;\r\n requiresProtocolRevision: boolean;\r\n requiresConsentFormRevision: boolean;\r\n dateOfAwareness: Date;\r\n actionResponseId: string;\r\n actionResponseNotes: string;\r\n categories: string[];\r\n supportingDocuments: Attachment[];\r\n actionResponseDocuments: Attachment[];\r\n actionPlan: ActionPlan;\r\n correspondenceLetter : DocumentItem; \r\n determinationIds : string[];\r\n};\r\n\r\nexport interface RniListItem {\r\n id: string;\r\n name: string;\r\n dateOfAwareness: Date;\r\n status: string;\r\n}\r\n\r\n/** \r\n * The rni status.\r\n */\r\nexport enum RniState {\r\n Draft = \"Draft\",\r\n PendingSirbReview = \"Pending sIRB Review\",\r\n ActionRequired = \"Action Required\",\r\n Complete = \"Complete\",\r\n Acknowledged = \"Acknowledged\"\r\n}\r\n\r\n/** \r\n * The rni determination.\r\n */\r\nexport enum RniDetermination {\r\n ADDITIONAL_INFO = \"Additional information required before making a determination\",\r\n UNANTICIPATED = \"Unanticipated problem involving risks to subjects or others\",\r\n SUS_OR_TERM = \"Suspension or termination of IRB approval\",\r\n SERIOUS = \"Serious non-compliance\",\r\n CONTINUING = \"Continuing non-compliance\", \r\n NONCOMPLIANCE = \"Non-compliance that is neither serious nor continuing\",\r\n ALLEGATION = \"Allegation of non-compliance with no basis in fact\",\r\n NONE = \"None of the above\",\r\n ADDITIONAL_REVIEW = \"Additional review required\",\r\n PSITE_REVIEW = \"Route for pSite review\",\r\n LOCAL_REVIEW_VIA_SIRB = \"sIRB recommends local IRB review\" \r\n} \r\n\r\n/**\r\n * Selections supported by the IRB Exchange for reportable new information category\r\n */\r\nexport enum RniCategories {\r\n RISK = \"RISK\",\r\n HARM = \"HARM\",\r\n NON_COMPLIANCE = \"NON-COMPLIANCE\",\r\n AUDIT = \"AUDIT\",\r\n REPORT = \"REPORT\",\r\n RESEARCHER_ERROR = \"RESEARCHER-ERROR\",\r\n CONFIDENTIALITY = \"CONFIDENTIALITY\",\r\n UNREVIEWED_CHANGE = \"UNREVIEWED-CHANGE\",\r\n INCARCERATION = \"INCARCERATION\",\r\n SUBJECT_COMPLAINT = \"SUBJECT-COMPLAINT\",\r\n SUSPENSION = \"SUSPENSION\",\r\n ADVERSE_DEVICE_EFFECT = \"ADVERSE-DEVICE-EFFECT\",\r\n VA_SAE = \"VA-SAE\",\r\n}\r\n\r\nexport interface Categories {\r\n RISK: boolean;\r\n HARM: boolean;\r\n NON_COMPLIANCE: boolean;\r\n AUDIT: boolean;\r\n REPORT: boolean;\r\n RESEARCHER_ERROR: boolean;\r\n CONFIDENTIALITY: boolean;\r\n UNREVIEWED_CHANGE: boolean;\r\n INCARCERATION: boolean;\r\n SUBJECT_COMPLAINT: boolean;\r\n SUSPENSION: boolean;\r\n ADVERSE_DEVICE_EFFECT: boolean;\r\n VA_SAE: boolean;\r\n}\r\n","\r\n/** \r\n * The users roles.\r\n */\r\nexport enum Role {\r\n Administrator = 'Administrator',\r\n AccountManager = 'Account Manager',\r\n RelianceCoordinator = 'Reliance Coordinator',\r\n StudyStaff = 'Study Staff'\r\n}\r\n\r\n/**\r\n * Additional role information that is useful for building UI components.\r\n */\r\nexport interface RoleMetadata {\r\n role: Role\r\n abbrev: string\r\n description: string\r\n}\r\n\r\n/**\r\n * The collection of metadata for each role.\r\n */\r\nexport const ROLE_METADATA: RoleMetadata[] = [\r\n {\r\n role: Role.Administrator,\r\n abbrev: 'Admin',\r\n description: ''\r\n },\r\n {\r\n role: Role.AccountManager,\r\n abbrev: 'AM',\r\n description: 'can add and remove users. Approve and deny user requests, and reassign user roles.'\r\n },\r\n {\r\n role: Role.RelianceCoordinator,\r\n abbrev: 'RC',\r\n description: 'can accept or decline any research invitation. They may also view and edit all sites for their organization.'\r\n },\r\n {\r\n role: Role.StudyStaff,\r\n abbrev: 'SS',\r\n description: 'can accept or decline research invitations when assigned as the principal investigator for a site. They may only view and edit sites on which they are assigned as a site contact (i.e. PI, PI Proxy).'\r\n }\r\n];","import { Role } from './role';\r\n\r\nexport interface SignedInUserDto {\r\n id: string;\r\n name: string;\r\n email: string;\r\n organizationId: number;\r\n organizationName: string;\r\n roles: Role[];\r\n createdAt: Date;\r\n lastSignInAt: Date;\r\n}\r\n\r\nexport class SignedInUser {\r\n\r\n id: string;\r\n name: string;\r\n email: string;\r\n organizationId: number;\r\n organizationName: string;\r\n roles: Role[];\r\n createdAt: Date;\r\n lastSignInAt: Date;\r\n\r\n constructor(args?: SignedInUserDto) {\r\n if (args) {\r\n this.id = args.id;\r\n this.name = args.name;\r\n this.email = args.email;\r\n this.organizationId = args.organizationId;\r\n this.organizationName = args.organizationName;\r\n this.roles = args.roles;\r\n this.createdAt = args.createdAt;\r\n this.lastSignInAt = args.lastSignInAt;\r\n }\r\n }\r\n\r\n isInRole(role: Role) {\r\n return this.roles.includes(role);\r\n }\r\n\r\n isInAnyRole(roles: Role[]) {\r\n return roles.some(role => this.isInRole(role));\r\n }\r\n}","import { Person } from './person';\r\nimport { ReviewInformation } from './reviewInformation';\r\nimport { ReviewDates } from './reviewDates';\r\nimport { FundingSource } from './fundingSource';\r\nimport { RniListItem } from './rni';\r\nimport { ModListItem } from './mod';\r\nimport { Attachment } from './attachment';\r\n\r\nexport interface Site {\r\n attachments: Attachment[];\r\n consentForms: Attachment[];\r\n recruitmentMaterials:Attachment[];\r\n description: string;\r\n studyFundingSources: FundingSource[];\r\n fundingSources: FundingSource[];\r\n principalInvestigator: Person;\r\n piProxies: Person[];\r\n primaryContact: Person;\r\n reviewInformation: ReviewInformation;\r\n reviewDates: ReviewDates; \r\n siteId: string;\r\n status: string;\r\n rni: RniListItem[];\r\n mods: ModListItem[];\r\n studyTitle: string;\r\n studyStatus: string;\r\n lastUpdated: Date;\r\n}\r\n\r\nexport enum SiteStatus {\r\n draft = \"Draft\",\r\n pending = \"Pending sIRB Review\",\r\n active = \"Active\",\r\n inactive = \"Inactive\",\r\n closed = \"Closed\",\r\n suspended = \"Suspended\",\r\n terminated = \"Terminated\",\r\n discarded = \"Discarded\"\r\n}\r\n","\r\nimport { Role } from './role';\r\n\r\nexport interface UserDto {\r\n dateCreated: Date;\r\n dateUpdated: Date;\r\n dateLastLogin: Date;\r\n email: string;\r\n firstName: string;\r\n id: string;\r\n isApproved: boolean;\r\n isLocked: boolean;\r\n lastName: string;\r\n name: string;\r\n organizationId: number;\r\n organizationName: string;\r\n phoneNumber: string;\r\n roles: Role[];\r\n}\r\n\r\nexport class User {\r\n\r\n dateCreated: Date;\r\n dateUpdated: Date;\r\n dateLastLogin: Date;\r\n email: string;\r\n firstName: string;\r\n id: string;\r\n isApproved: boolean;\r\n isLocked: boolean;\r\n lastName: string;\r\n name: string;\r\n organizationId: number;\r\n organizationName: string;\r\n phoneNumber: string;\r\n roles: Role[] = [];\r\n \r\n\r\n constructor(args?: Partial) {\r\n if (args) {\r\n this.id = args.id;\r\n this.name = args.name;\r\n this.firstName = args.firstName;\r\n this.lastName = args.lastName;\r\n this.email = args.email;\r\n this.phoneNumber = args.phoneNumber;\r\n this.isLocked = args.isLocked;\r\n this.roles.push(...args.roles);\r\n this.isApproved = args.isApproved;\r\n this.dateCreated = args.dateCreated;\r\n this.dateUpdated = args.dateUpdated;\r\n this.dateLastLogin = args.dateLastLogin;\r\n this.organizationId = args.organizationId;\r\n this.organizationName = args.organizationName;\r\n }\r\n }\r\n\r\n isInRole(role: Role) {\r\n return this.roles.includes(role);\r\n }\r\n}","\r\n// Components\r\nexport * from './organization-details/organization-details.component';\r\nexport * from './organization-list/organization-list.component';\r\nexport * from './organization-search-typeahead/organization-search-typeahead.component';\r\n\r\n// Module\r\nexport * from './organizations.module';","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{ organization.name }} is pending approval to use Huron IRB Exchange.

\\r\\n

Please verify that {{ organization.owner.name }} is an authorized representative for the institution.

\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

{{ organization.name }}

\\r\\n
\\r\\n
\\r\\n Exchange Id\\r\\n {{ organization.exchangeId }}\\r\\n
\\r\\n
\\r\\n Thumbprint\\r\\n {{ organization.thumbprint }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n

Users

\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL29yZ2FuaXphdGlvbnMvb3JnYW5pemF0aW9uLWRldGFpbHMvb3JnYW5pemF0aW9uLWRldGFpbHMuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { User, Organization, Role } from '../../models';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { OrganizationService } from '../../data-services';\r\nimport { FormControl, FormBuilder } from '@angular/forms';\r\nimport { tap, map } from 'rxjs/operators';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { CreateUserDialogComponent, UserListComponent } from '../../users';\r\nimport { AppcuesService } from 'src/app/shared/appcues.service';\r\nimport { AuthService } from 'src/app/auth';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-organization-details',\r\n templateUrl: './organization-details.component.html',\r\n styleUrls: ['./organization-details.component.scss']\r\n})\r\nexport class OrganizationDetailsComponent implements OnInit {\r\n @ViewChild('usersList') usersList:UserListComponent;\r\n /**\r\n * The organization\r\n */\r\n organization: Organization;\r\n \r\n /**\r\n * The collection of users within the organization.\r\n */\r\n users: User[];\r\n\r\n /**\r\n * \r\n */\r\n filterForm = this.fb.group({\r\n name: [''],\r\n pendingApproval: [false],\r\n disabled: [false]\r\n });\r\n\r\n /**\r\n * The filter input control.\r\n */\r\n usersFilter = new FormControl('usersFilter');\r\n \r\n /**\r\n * The filtered collection of users. This is bound to the user list view child.\r\n */\r\n filteredUsers: User[];\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private orgService: OrganizationService,\r\n private modalService: NgbModal,\r\n private fb: FormBuilder,\r\n private appcues: AppcuesService,\r\n private auth: AuthService,\r\n private toastr: ToastrService,\r\n private router: Router) { }\r\n\r\n get isAdmin() {\r\n return this.auth.hasRole(Role.Administrator);\r\n }\r\n\r\n /**\r\n * Gets the value of the disabled user filter. When true, the user\r\n * list will only display users which are currently disabled, otherwise\r\n * the filter will not be applied to the user list.\r\n */\r\n get disabled() {\r\n return this.filterForm.value.disabled;\r\n }\r\n /**\r\n * Sets the value of the disabled user filter flag.\r\n */\r\n set disabled(value: boolean) {\r\n this.filterForm.patchValue({ disabled: value });\r\n }\r\n\r\n /**\r\n * Get the value of the pending approval user filter. When true, the user\r\n * list will only display users which are currently pending approval, \r\n * otherwise the filter will not be applied to the user list.\r\n */\r\n get pendingApproval() {\r\n return this.filterForm.value.pendingApproval;\r\n }\r\n /**\r\n * Sets the value of the pending approval user filter.\r\n */\r\n set pendingApproval(value: boolean) {\r\n this.filterForm.patchValue({ pendingApproval: value });\r\n }\r\n\r\n ngOnInit() {\r\n\r\n var orgId = this.route.snapshot.paramMap.get('orgId')\r\n\r\n this.orgService.getOrganization(orgId)\r\n .subscribe(org => this.organization = org);\r\n\r\n this.orgService.getUsers(this.route.snapshot.params.orgId)\r\n .subscribe(users => {\r\n this.users = users;\r\n this.filteredUsers = users;\r\n if(this.usersList){\r\n this.usersList.onDataUpdated(this.filteredUsers);\r\n }\r\n });\r\n\r\n \r\n this.filterForm.valueChanges\r\n .pipe(\r\n tap(value => console.debug(`users filter`, value)),\r\n map(value => { \r\n var term = value.name.trim().toLowerCase();\r\n return this.users\r\n .filter(u => this.pendingApproval ? !u.isApproved : true)\r\n .filter(u => this.disabled ? u.isLocked : true)\r\n .filter(u => {\r\n return u.name.toLowerCase().indexOf(term) != -1;\r\n })\r\n }), // match users by name \r\n tap(users => console.debug('filtered users:', users)),\r\n )\r\n .subscribe(users => {\r\n this.filteredUsers = users;\r\n this.usersList.onDataUpdated(this.filteredUsers);\r\n });\r\n }\r\n\r\n togglePending() {\r\n var control = this.filterForm.controls['pending'];\r\n control.setValue(!control.value);\r\n }\r\n\r\n onAddUser() {\r\n\r\n // notify appcues when the add user button is clicked.\r\n\r\n this.appcues.track(\"Add user clicked\");\r\n\r\n const modalRef = this.modalService.open(CreateUserDialogComponent, { backdrop: 'static'});\r\n modalRef.componentInstance.organizationId.value = this.organization.id;\r\n modalRef.componentInstance.organizationName.value = this.organization.name;\r\n modalRef.result.then((user: User) => {\r\n \r\n // find location to insert the user into the list.\r\n var i = this.users.findIndex(u => {\r\n return (user.lastName < u.lastName) || (user.lastName == u.lastName && user.firstName < u.firstName);\r\n });\r\n\r\n // insert the user\r\n this.users.splice(i, 0, user);\r\n this.usersList.onDataUpdated(this.filteredUsers);\r\n }).catch(() => { /* cancelled by the user */ });\r\n }\r\n\r\n approve() {\r\n\r\n this.orgService.approveAccess(this.organization.id)\r\n .subscribe(data => {\r\n this.organization.isApproved = true;\r\n this.toastr.success(`${this.organization.name} has been approved to access the system.`, 'Success');\r\n })\r\n\r\n }\r\n\r\n deny() {\r\n this.orgService.denyAccess(this.organization.id)\r\n .subscribe(data => {\r\n this.toastr.success(`${this.organization.name} has been denied access and removed from the system.`, 'Success');\r\n this.router.navigate(['../', { relativeTo: this.route } ]);\r\n });\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n

Organizations

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
OrganizationOwnerExchange IdThumbprint
{{ org.name }}{{ org.owner.name }}{{ org.exchangeId }}{{ org.thumbprint }}
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL29yZ2FuaXphdGlvbnMvb3JnYW5pemF0aW9uLWxpc3Qvb3JnYW5pemF0aW9uLWxpc3QuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { OrganizationService } from '../../data-services';\r\nimport { Observable } from 'rxjs';\r\nimport { Organization } from '../../models';\r\n\r\n@Component({\r\n selector: 'app-organization-list',\r\n templateUrl: './organization-list.component.html',\r\n styleUrls: ['./organization-list.component.scss']\r\n})\r\nexport class OrganizationListComponent implements OnInit {\r\n\r\n organizations$: Observable;\r\n\r\n constructor(private orgService: OrganizationService) { \r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.organizations$ = this.orgService.getOrganizations();\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \".search {\\n position: relative; }\\n .search i {\\n position: absolute;\\n right: 10px;\\n top: 10px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvb3JnYW5pemF0aW9ucy9vcmdhbml6YXRpb24tc2VhcmNoLXR5cGVhaGVhZC9EOlxcSmVua2luc1xcd29ya3NwYWNlXFxFeGNoYW5nZVVJLUFkaG9jXFxzcmNcXEh1cm9uLkV4Y2hhbmdlLlVJL3NyY1xcYXBwXFxvcmdhbml6YXRpb25zXFxvcmdhbml6YXRpb24tc2VhcmNoLXR5cGVhaGVhZFxcb3JnYW5pemF0aW9uLXNlYXJjaC10eXBlYWhlYWQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxrQkFBa0IsRUFBQTtFQUR0QjtJQUlRLGtCQUFrQjtJQUNsQixXQUFXO0lBQ1gsU0FBUyxFQUFBIiwiZmlsZSI6InNyYy9hcHAvb3JnYW5pemF0aW9ucy9vcmdhbml6YXRpb24tc2VhcmNoLXR5cGVhaGVhZC9vcmdhbml6YXRpb24tc2VhcmNoLXR5cGVhaGVhZC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5zZWFyY2gge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgIGkge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICByaWdodDogMTBweDtcclxuICAgICAgICB0b3A6IDEwcHg7XHJcbiAgICB9XHJcbn0iXX0= */\"","import { Component, OnInit, Output, ViewChild, EventEmitter, Input } from '@angular/core';\r\nimport { NgbTypeahead, NgbTypeaheadSelectItemEvent } from '@ng-bootstrap/ng-bootstrap';\r\nimport { OrganizationSearchResult, OrganizationService } from '../../data-services';\r\nimport { Observable } from 'rxjs';\r\nimport { finalize, switchMap, tap, distinctUntilChanged, debounceTime, filter, map } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-organization-search-typeahead',\r\n templateUrl: './organization-search-typeahead.component.html',\r\n styleUrls: ['./organization-search-typeahead.component.scss']\r\n})\r\nexport class OrganizationSearchTypeaheadComponent implements OnInit {\r\n\r\n @Input() placeholder: string = \"Search by name or FWA number\";\r\n\r\n @Input() label: string;\r\n\r\n /**\r\n * The search term.\r\n */\r\n @Input() term: string;\r\n\r\n @Output('selectOrganization') select = new EventEmitter();\r\n\r\n /**\r\n * This event is fired just before the component makes a request to the\r\n * server to find matching organization. The search term is supplied as\r\n * the event data.\r\n */\r\n @Output('beforeSearch') beforeSearch = new EventEmitter();\r\n\r\n /**\r\n * A refrence to the typeahead component used in the view template.\r\n */\r\n @ViewChild('typeahead') typeahead: NgbTypeahead;\r\n\r\n /**\r\n * The observable function used to produce the search results\r\n */\r\n search: (text: Observable) => Observable\r\n\r\n /**\r\n * A flag to indicate a request has been made to the server and is waiting\r\n * on a response.\r\n */\r\n searching: boolean = false;\r\n\r\n constructor(private organizationService: OrganizationService) { }\r\n\r\n ngOnInit() {\r\n\r\n this.search = (text: Observable) => text.pipe(\r\n map(t => t.trim()),\r\n tap(() => this.typeahead.dismissPopup()),\r\n filter(t => t.length > 2),\r\n debounceTime(300),\r\n distinctUntilChanged(),\r\n tap(t => this.beforeSearch.emit(t)),\r\n tap(() => this.searching = true),\r\n switchMap(t => this.organizationService.search({ term: t , local: true, exchange: false, ohrp: true }).pipe(\r\n finalize(() => this.searching = false))),\r\n );\r\n }\r\n\r\n onSelected(event: NgbTypeaheadSelectItemEvent) {\r\n this.select.emit(event.item as OrganizationSearchResult);\r\n }\r\n\r\n /**\r\n * This is used for format the search results into a display string for the typeahead input control.\r\n * \r\n * @param org An organization search result object.\r\n */\r\n format(org: OrganizationSearchResult) {\r\n return org.name;\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ToastrModule } from 'ngx-toastr';\r\n\r\nimport { UsersModule } from '../users';\r\n\r\nimport { OrganizationDetailsComponent } from './organization-details/organization-details.component';\r\nimport { OrganizationListComponent } from './organization-list/organization-list.component';\r\nimport { OrganizationSearchTypeaheadComponent } from './organization-search-typeahead/organization-search-typeahead.component';\r\nimport { SharedModule } from '../shared';\r\n\r\n@NgModule({\r\n declarations: [\r\n OrganizationDetailsComponent,\r\n OrganizationListComponent,\r\n OrganizationSearchTypeaheadComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n NgbModule,\r\n ToastrModule,\r\n UsersModule,\r\n SharedModule\r\n ],\r\n exports: [\r\n OrganizationSearchTypeaheadComponent\r\n ]\r\n})\r\nexport class OrganizationsModule { }\r\n","module.exports = \"
\\r\\n

Continuing Review Report

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
Check all that apply
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
0\\\">\\r\\n
\\r\\n
\\r\\n {{pve}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Supporting Documents\\r\\n
\\r\\n
\\r\\n Currently document upload file sizes are limited to 50 MB each.\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Jlc2VhcmNoL2NvbnRpbnVpbmctcmV2aWV3L2NvbnRpbnVpbmctcmV2aWV3LmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, Input } from '@angular/core';\r\nimport { CrReport } from 'src/app/models/cr-report';\r\nimport { ResearchService } from 'src/app/data-services';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { AgGridDefaults, DocumentUploadCellComponent, DeleteRowComponent } from 'src/app/shared';\r\n\r\n\r\n@Component({\r\n selector: 'app-continuing-review',\r\n templateUrl: './continuing-review.component.html',\r\n styleUrls: ['./continuing-review.component.scss']\r\n})\r\nexport class ContinuingReviewComponent implements OnInit {\r\n @Input() studyExchangeId;\r\n @Input() siteExchangeId;\r\n saving: boolean;\r\n canEdit: boolean = true;\r\n report: CrReport;\r\n pageValidationErrors: string[] = [];\r\n\r\n supportingDocGridOptions = AgGridDefaults.getGridOptions({\r\n columnDefs: [\r\n { colId: \"deleteRow\", cellRenderer: \"deleteRowRenderer\", type: [\"deleteRow\"] },\r\n { headerName: \"Name\", field: \"draftName\", editable: true },\r\n {\r\n headerName: \"Draft\", field: \"draft\", type: [\"noSort\"],\r\n cellRenderer: \"documentUploadRenderer\", cellRendererParams: { contextObj: this }\r\n }\r\n ],\r\n frameworkComponents: {\r\n documentUploadRenderer: DocumentUploadCellComponent,\r\n deleteRowRenderer: DeleteRowComponent\r\n },\r\n isExternalFilterPresent: this.isExternalFilterPresent,\r\n doesExternalFilterPass: this.doesExternalFilterPass\r\n });\r\n\r\n constructor(\r\n private researchService: ResearchService,\r\n private toastr: ToastrService,\r\n public activeModal: NgbActiveModal) { \r\n }\r\n\r\n ngOnInit() {\r\n //we do not load the previous values into this form, we start blank every time and post new values.\r\n this.report = new CrReport;\r\n }\r\n\r\n onSave() {\r\n if (this.validatePage()) {\r\n this.saving = true;\r\n this.researchService.updateContinuingReview(this.studyExchangeId, this.siteExchangeId, this.report)\r\n .subscribe(() => {\r\n this.toastr.success(\"Report Sent\", \"Success!\");\r\n this.saving = false;\r\n this.activeModal.close('Submit success');\r\n });\r\n }\r\n return;\r\n }\r\n\r\n onCancel() {\r\n this.activeModal.close('Close click');\r\n }\r\n\r\n //always-on filtering of which grid rows are visible\r\n isExternalFilterPresent(): boolean {\r\n return true;\r\n }\r\n\r\n //test funding source row to determine if it should be visible in the grid\r\n doesExternalFilterPass(node) {\r\n return !node.data.delete;\r\n } \r\n\r\n addSupportingDocumentRow() {\r\n let newRow = {\r\n id: \"\",\r\n category: \"\",\r\n delete: false,\r\n draft: {\r\n studyId: this.studyExchangeId,\r\n itemId: \"\",\r\n fileName: \"\",\r\n fileToUpload: null,\r\n fileContent: \"\"\r\n },\r\n draftName: \"\",\r\n draftVersion: \"\",\r\n final: {\r\n studyId: this.studyExchangeId,\r\n itemId: \"\",\r\n fileName: \"\",\r\n fileToUpload: null,\r\n fileContent: \"\"\r\n },\r\n finalName: \"\",\r\n finalVersion: \"\"\r\n }\r\n\r\n this.report.supportingDocuments.push(newRow);\r\n this.supportingDocGridOptions.api.updateRowData({\r\n add: [newRow]\r\n });\r\n this.supportingDocGridOptions.api.startEditingCell({ //open the editor for the first editable cell in the row\r\n rowIndex: this.report.supportingDocuments.length - 1,\r\n colKey: 'draftName'\r\n });\r\n }\r\n\r\n onSupportingDocumentGridReady(params) {\r\n this.supportingDocGridOptions.api = params.api;\r\n this.supportingDocGridOptions.columnApi = params.columnApi;\r\n if (this.report != null) {\r\n this.supportingDocGridOptions.api.setRowData(this.report.supportingDocuments);\r\n this.supportingDocGridOptions.setGridColumnWidths();\r\n }\r\n }\r\n\r\n onFirstDataRendered(params, optionsObj){\r\n return AgGridDefaults.onFirstDataRendered(params, optionsObj);\r\n }\r\n\r\n validatePage() : boolean {\r\n this.pageValidationErrors = [];\r\n \r\n // supporting document validation: draft doc required, no blank rows\r\n let triggeredDocDraftMessage = false;\r\n let autoPopulatedDraftName =false;\r\n let blankAttachments = [];\r\n for(let att of this.report.supportingDocuments){\r\n if (!att.delete) {\r\n //if anything filled out\r\n if (att.draftName) {\r\n if (att.draft == null || att.draft.fileName == null || att.draft.fileName == \"\") { //and the draft file is missing\r\n if (!triggeredDocDraftMessage) {\r\n this.pageValidationErrors.push(\"A Draft file must be selected for each Supporting documents\");\r\n triggeredDocDraftMessage = true;\r\n continue;\r\n }\r\n }\r\n } else if (att.draft && att.draft.fileName && att.draft.fileName !==\"\") { // Draft is filled out \r\n // Auto-populate the draftName with filename for display, though service end point handle it.\r\n autoPopulatedDraftName=true; \r\n att.draftName = att.draft.fileName; \r\n continue;\r\n } \r\n else { //nothing filled out, go ahead and just remove it\r\n //except we cant remove it now or we'll mess up the iterator. Remove them all when we're done here.\r\n blankAttachments.push(att);\r\n }\r\n }\r\n //else deleted, do nothing to validate it, the server will remove it\r\n }\r\n for(let blank of blankAttachments){\r\n this.report.supportingDocuments.splice(this.report.supportingDocuments.indexOf(blank), 1);\r\n }\r\n //if we removed rows from the grid or auto populated name, instruct it to refresh the display.\r\n if(blankAttachments.length > 0 || autoPopulatedDraftName){\r\n this.supportingDocGridOptions.api.setRowData(this.report.supportingDocuments);\r\n this.supportingDocGridOptions.setGridColumnWidths();\r\n }\r\n\r\n if (triggeredDocDraftMessage) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n","// Components\r\nexport * from './continuing-review/continuing-review.component';\r\nexport * from './invitation-list/invitation-list.component';\r\nexport * from './reportable-new-information/reportable-new-information.component';\r\nexport * from './site-details/site-details.component';\r\nexport * from './site-modification/site-modification.component';\r\nexport * from './study-details/study-details.component';\r\nexport * from './study-list/study-list.component';\r\nexport * from './reportable-new-information-create/reportable-new-information-create.component';\r\nexport * from './site-modification-create/site-modification-create.component';\r\nexport * from './site-modification-editor/site-modification-editor.component';\r\n\r\nexport * from './research.module';","module.exports = \"
\\r\\n
\\r\\n \\r\\n

Invitations

\\r\\n \\r\\n \\r\\n You have nothing to do right now. Check back later to see if you've been invited to participate in a study.\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Jlc2VhcmNoL2ludml0YXRpb24tbGlzdC9pbnZpdGF0aW9uLWxpc3QuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { StudyListItem } from '../../models/study';\r\nimport { ResearchService } from '../../data-services';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { AgGridDefaults, RouterLinkCellComponent } from '../../shared';\r\n\r\n@Component({\r\n selector: 'app-invitation-list',\r\n templateUrl: './invitation-list.component.html',\r\n styleUrls: ['./invitation-list.component.scss']\r\n})\r\n\r\nexport class InvitationListComponent implements OnInit {\r\n\r\n studyListItems: StudyListItem[] = [];\r\n loadComplete: boolean = false;\r\n hasInvitations: boolean = false;\r\n alertClosed: boolean = false;\r\n \r\n gridOptions = AgGridDefaults.getGridOptions({\r\n columnDefs: [\r\n { headerName: \"IRB of Record\", field: \"irbOfRecord\" },\r\n {\r\n headerName: \"Study ID\", field: \"studyId\", minWidth: 135, cellRenderer: \"routerLinkRenderer\",\r\n cellRendererParams: { routerLink: ['/research/studies/', '{{exchangeContainerId}}'], displayAttribute: 'studyId' }\r\n },\r\n { headerName: \"Study Title\", field: \"title\" },\r\n { headerName: \"Lead PI\", field: \"studyPI.lastName\", minWidth: 100 },\r\n { headerName: \"Local PI\", field: \"sitePI.lastName\", minWidth: 100 },\r\n { headerName: \"Last Updated\", field: \"lastUpdated\", type: [\"date\"] },\r\n ],\r\n frameworkComponents: {\r\n routerLinkRenderer: RouterLinkCellComponent,\r\n }\r\n });\r\n\r\n constructor(\r\n private researchService: ResearchService) { }\r\n\r\n ngOnInit() {\r\n this.researchService.getInvitations().subscribe(\r\n (stus) => {\r\n this.loadComplete = true;\r\n this.studyListItems = stus;\r\n this.hasInvitations = this.studyListItems.length > 0;\r\n });\r\n }\r\n\r\n //When grid is displayed following successful retrieval of site data, connect grid data source\r\n onGridReady(params) {\r\n this.gridOptions.api = params.api;\r\n this.gridOptions.columnApi = params.columnApi;\r\n this.gridOptions.api.setRowData(this.studyListItems);\r\n this.gridOptions.setGridColumnWidths();\r\n }\r\n\r\n onFirstDataRendered(params, optionsObj) {\r\n return AgGridDefaults.onFirstDataRendered(params, optionsObj);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n Summarize the Modifications:\\r\\n \\r\\n
\\r\\n
Required.
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Site Description:\\r\\n \\r\\n
\\r\\n
Required.
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Study enrollment status:\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Notification of subjects:\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
Please supply a valid email address.
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"span.status {\\n width: 100%;\\n padding: 6px 12px 6px 12px;\\n text-align: center;\\n border-radius: 0.25rem;\\n background-color: lightgreen; }\\n\\ntextarea {\\n height: 88px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcmVzZWFyY2gvbW9kaWZpY2F0aW9uLWVkaXRvci9EOlxcSmVua2luc1xcd29ya3NwYWNlXFxFeGNoYW5nZVVJLUFkaG9jXFxzcmNcXEh1cm9uLkV4Y2hhbmdlLlVJL3NyY1xcYXBwXFxyZXNlYXJjaFxcbW9kaWZpY2F0aW9uLWVkaXRvclxcbW9kaWZpY2F0aW9uLWVkaXRvci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLFdBQVc7RUFDWCwwQkFBMEI7RUFDMUIsa0JBQWtCO0VBQ2xCLHNCQUFzQjtFQUN0Qiw0QkFBNEIsRUFBQTs7QUFHaEM7RUFFSSxZQUFZLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9yZXNlYXJjaC9tb2RpZmljYXRpb24tZWRpdG9yL21vZGlmaWNhdGlvbi1lZGl0b3IuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJzcGFuLnN0YXR1cyB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHBhZGRpbmc6IDZweCAxMnB4IDZweCAxMnB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JlZW47XHJcbn1cclxuXHJcbnRleHRhcmVhXHJcbntcclxuICAgIGhlaWdodDogODhweDtcclxufSJdfQ== */\"","import { Component, OnInit, Input, ViewChild } from '@angular/core';\r\nimport { Site } from 'src/app/models/site';\r\nimport { NgForm, ControlContainer } from '@angular/forms';\r\nimport { UserSearchTypeaheadComponent } from 'src/app/users/user-search-typeahead/user-search-typeahead.component';\r\nimport { Modification, ModEnrollmentStatus, ModSubjectNotifications } from 'src/app/models/mod';\r\nimport { NgbModalRef, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { UserSearchResult } from 'src/app/data-services';\r\n\r\n@Component({\r\n selector: 'app-modification-editor',\r\n templateUrl: './modification-editor.component.html',\r\n styleUrls: ['./modification-editor.component.scss'],\r\n viewProviders: [{provide: ControlContainer, useExisting: NgForm}]\r\n})\r\nexport class ModificationEditorComponent implements OnInit {\r\n\r\n @Input() site: Site;\r\n @Input() modification: Modification;\r\n @Input() parentForm: NgForm;\r\n @Input() enrollmentStatus: ModEnrollmentStatus;\r\n @Input() subjectNotifications: ModSubjectNotifications;\r\n @ViewChild('typeahead') typeahead: UserSearchTypeaheadComponent;\r\n modalRef: NgbModalRef;\r\n \r\n constructor(private modalService: NgbModal) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onClickShowSearch(searchTarget, targetIndex?) {\r\n this.modalRef = this.modalService.open(UserSearchTypeaheadComponent);\r\n switch (searchTarget) {\r\n case null:\r\n case \"investigator\":\r\n this.modalRef.componentInstance.label = \"Search for Investigator by Last Name or Email\";\r\n this.modalRef.result.then((user: UserSearchResult) => {\r\n this.site.principalInvestigator = {\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n email: user.email\r\n }\r\n }).catch(() => { /* cancelled by the user */ });\r\n break;\r\n case \"primaryContact\":\r\n this.modalRef.componentInstance.label = \"Search for Primary Contact by Last Name or Email\";\r\n this.modalRef.result.then((user: UserSearchResult) => {\r\n this.site.primaryContact = {\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n email: user.email\r\n }\r\n }).catch(() => { /* cancelled by the user */ });\r\n break;\r\n case \"proxy\":\r\n this.modalRef.componentInstance.label = \"Search for PI Proxy by Last Name or Email\";\r\n this.modalRef.result.then((user: UserSearchResult) => {\r\n this.site.piProxies[targetIndex] = {\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n email: user.email\r\n }\r\n }).catch(() => { /* cancelled by the user */ });\r\n break;\r\n }\r\n }\r\n \r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n Summarize the Modifications:\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Site Description:\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Study enrollment status:\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Notification of subjects:\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{site.principalInvestigator.firstName}} \\r\\n {{site.principalInvestigator.lastName}}\\r\\n
\\r\\n
\\r\\n {{site.principalInvestigator.email}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{proxy.firstName}} \\r\\n {{proxy.lastName}}\\r\\n
\\r\\n
\\r\\n {{proxy.email}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{site.primaryContact.firstName}} \\r\\n {{site.primaryContact.lastName}}\\r\\n
\\r\\n
\\r\\n {{site.primaryContact.email}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Jlc2VhcmNoL21vZGlmaWNhdGlvbi1yZWFkZXIvbW9kaWZpY2F0aW9uLXJlYWRlci5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit, Input } from '@angular/core';\r\nimport { Site } from 'src/app/models/site';\r\nimport { Modification, ModEnrollmentStatus, ModSubjectNotifications } from 'src/app/models/mod';\r\n\r\n@Component({\r\n selector: 'app-modification-reader',\r\n templateUrl: './modification-reader.component.html',\r\n styleUrls: ['./modification-reader.component.scss']\r\n})\r\nexport class ModificationReaderComponent implements OnInit {\r\n\r\n @Input() site: Site;\r\n @Input() modification: Modification;\r\n @Input() enrollmentStatus: ModEnrollmentStatus;\r\n @Input() subjectNotifications: ModSubjectNotifications;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
Determination
\\r\\n
\\r\\n {{reviewInformation.status}}\\r\\n \\r\\n  — \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Jlc2VhcmNoL21vZGlmaWNhdGlvbi1yZXZpZXctZGV0YWlscy9tb2RpZmljYXRpb24tcmV2aWV3LWRldGFpbHMuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ReviewInformation } from '../../models/reviewInformation';\r\n\r\n@Component({\r\n selector: 'app-modification-review-details',\r\n templateUrl: './modification-review-details.component.html',\r\n styleUrls: ['./modification-review-details.component.scss']\r\n})\r\nexport class ModificationReviewDetailsComponent implements OnInit {\r\n\r\n @Input() reviewInformation: ReviewInformation;\r\n hasLetter: boolean = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n\r\n if (this.reviewInformation.correspondenceLetter != null && this.reviewInformation.correspondenceLetter.fileName != null) {\r\n this.hasLetter = true;\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n
\\r\\n
\\r\\n
Send notification
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Jlc2VhcmNoL25vdGlmeS1kaWFsb2cvbm90aWZ5LWRpYWxvZy5jb21wb25lbnQuc2NzcyJ9 */\"","import { THIS_EXPR } from '@angular/compiler/src/output/output_ast';\r\nimport { Component, AfterViewInit, ViewChild, ElementRef, Renderer, Inject, Input } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Site } from 'src/app/models/site';\r\n\r\nimport { ResearchService, FeedbackService } from '../../data-services';\r\nimport { SharedService } from '../shared.service';\r\n\r\n@Component({\r\n selector: 'app-notify-dialog',\r\n templateUrl: './notify-dialog.component.html',\r\n styleUrls: ['./notify-dialog.component.scss']\r\n})\r\nexport class NotifyDialogComponent implements AfterViewInit {\r\n\r\n notifyForm: FormGroup;\r\n\r\n loadComplete: boolean = true;\r\n isSending: boolean = false;\r\n notify: boolean = false;\r\n\r\n @ViewChild(\"checkNotify\") check: ElementRef;\r\n\r\n studyExchangeId: string;\r\n siteExchangeId: string;\r\n site: Site\r\n\r\n constructor(public modal: NgbActiveModal,\r\n private renderer: Renderer,\r\n private researchService: ResearchService,\r\n public fb: FormBuilder,\r\n private feedbackService: FeedbackService,\r\n private toastr: ToastrService,\r\n private sharedService: SharedService) {\r\n //Init form to prevent errors\r\n this.notifyForm = this.fb.group({});\r\n }\r\n\r\n ngAfterViewInit() {\r\n // use the renderer to interact with the actual DOM Element.\r\n this.renderer.invokeElementMethod(this.check.nativeElement, 'focus');\r\n\r\n //Get data from the site to send it to the API\r\n this.studyExchangeId = this.sharedService.studyExchangeId;\r\n this.siteExchangeId = this.sharedService.siteExchangeId;\r\n this.site = this.sharedService.site;\r\n }\r\n\r\n onSubmit() {\r\n if (this.notify) {\r\n this.isSending = true;\r\n this.researchService.sendToSirb(this.studyExchangeId, this.siteExchangeId, this.site)\r\n .subscribe(() => {\r\n //Call api to send notification email when send to sIRB was success\r\n this.feedbackService.notifyStudyTeamLead(this.studyExchangeId).subscribe(()=>{\r\n this.toastr.success(\"Changes saved and sent\", \"Success!\");\r\n this.isSending = false;\r\n this.modal.close(\"Data sent\")\r\n }),\r\n (err) => {\r\n this.isSending = false;\r\n this.modal.close(\"Data not sent\")\r\n }\r\n \r\n }),\r\n (err) => {\r\n this.isSending = false;\r\n this.modal.close(\"Data not sent\")\r\n };\r\n }\r\n else {\r\n //Only send to sIRB without email notification\r\n this.isSending = true;\r\n this.researchService.sendToSirb(this.studyExchangeId, this.siteExchangeId, this.site)\r\n .subscribe(() => {\r\n this.toastr.success(\"Changes saved and sent\", \"Success!\");\r\n this.isSending = false;\r\n this.modal.close(\"Data sent\")\r\n }),\r\n (err) => {\r\n this.isSending = false;\r\n this.modal.close(\"Data not sent\")\r\n };\r\n }\r\n }\r\n}","module.exports = \"\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Jlc2VhcmNoL3JlcG9ydGFibGUtbmV3LWluZm9ybWF0aW9uLWNyZWF0ZS9yZXBvcnRhYmxlLW5ldy1pbmZvcm1hdGlvbi1jcmVhdGUuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, ViewChild, HostListener } from '@angular/core';\r\nimport { RniDto } from '../../models/rni';\r\nimport { ResearchService } from '../../data-services';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { ReportableNewInformationEditorComponent } from '../reportable-new-information-editor/reportable-new-information-editor.component';\r\nimport { ComponentCanDeactivate } from 'src/app/shared';\r\n\r\n@Component({\r\n selector: 'app-reportable-new-information-create',\r\n templateUrl: './reportable-new-information-create.component.html',\r\n styleUrls: ['./reportable-new-information-create.component.scss']\r\n})\r\nexport class ReportableNewInformationCreateComponent implements OnInit, ComponentCanDeactivate {\r\n\r\n // Child refernce to indicate the service response.\r\n @ViewChild(ReportableNewInformationEditorComponent) rniEditor: ReportableNewInformationEditorComponent;\r\n\r\n /**\r\n * If (and only if) true, allow the user to navigate to a new page without warning of unsaved changes in the page\r\n */\r\n allowNavigation: boolean = false;\r\n /**\r\n * The study exchange item Id.\r\n */\r\n studyExchangeId: string;\r\n\r\n /**\r\n * The rni exchange item Id.\r\n */\r\n rniExchangeId: string;\r\n\r\n /**\r\n * The site exchange item Id.\r\n */\r\n siteExchangeId: string;\r\n\r\n /**\r\n * The rni.\r\n */\r\n rni: RniDto;\r\n\r\n /**\r\n * Selections supported by the IRB Exchange for reportable new information category\r\n */\r\n categories = ['RISK', 'HARM', 'NON-COMPLIANCE', 'AUDIT', 'REPORT', 'RESEARCHER-ERROR', 'CONFIDENTIALITY',\r\n 'UNREVIEWED-CHANGE', 'INCARCERATION', 'SUBJECT-COMPLAINT', 'SUSPENSION', 'ADVERSE-DEVICE-EFFECT', 'VA-SAE'];\r\n\r\n constructor(private researchService: ResearchService,\r\n private route: ActivatedRoute,\r\n private toastr: ToastrService,\r\n private router: Router) { }\r\n\r\n ngOnInit() {\r\n this.studyExchangeId = this.route.snapshot.paramMap.get('studyId');\r\n this.siteExchangeId = this.route.snapshot.paramMap.get('siteId');\r\n\r\n this.researchService.getNewRni(this.studyExchangeId)\r\n .subscribe((rni) => {\r\n this.rni = rni;\r\n });\r\n }\r\n\r\n onSubmit(rni: RniDto) {\r\n rni.categories = this.processCategoriesPost(rni)\r\n this.researchService.createRni(this.studyExchangeId, rni)\r\n .pipe(finalize(() => {\r\n this.rniEditor.onSubmitted();\r\n }))\r\n .subscribe((response: any) => {\r\n if (\"undefined\" !== typeof response && \"undefined\" !== typeof response.rniExchangeId) {\r\n let parts = response.rniExchangeId.split('/');\r\n if (parts.length > 0) {\r\n let partialId = parts[parts.length - 1];\r\n this.toastr.success(\"Changes saved\", \"Success!\");\r\n this.allowNavigation = true;\r\n this.router.navigate(['/research/studies', this.studyExchangeId, 'sites', this.siteExchangeId, 'rni', partialId]);\r\n return;\r\n }\r\n }//else undefined or zero length\r\n this.toastr.error(\"Error navigating to the New Information Report, returning to Site Details\", \"Error\");\r\n console.log(\"Error: response.rniExchangeId missing or invalid. Response = \" + JSON.stringify(response));\r\n this.router.navigate(['/research/studies', this.studyExchangeId, 'sites', this.siteExchangeId]);\r\n });\r\n }\r\n\r\n processCategoriesPost(rni: RniDto) {\r\n return rni.categories\r\n .map((v, i) => v ? this.categories[i] : null)\r\n .filter(v => v !== null);\r\n }\r\n\r\n //use canDeactivate as a handler for the window.beforeUnload event\r\n @HostListener('window:beforeunload')\r\n canDeactivate(){\r\n //This component is only used for new, unsaved RNIs. If this component is in use, then we have unsaved changes.\r\n return this.allowNavigation;\r\n }\r\n}\r\n","module.exports = \"

\\r\\n Reportable New Information\\r\\n

\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{rni.state}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
0\\\">\\r\\n
\\r\\n
\\r\\n {{pve}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Currently document upload file sizes are limited to 50 MB each.\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
    \\r\\n
  • \\r\\n {{ getDeterminationValue(id) }}\\r\\n
  • \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Responsible Party\\r\\n
\\r\\n
\\r\\n {{rni.actionPlan?.responsibleParty.firstName}} {{rni.actionPlan?.responsibleParty.lastName}}\\r\\n
\\r\\n
\\r\\n {{rni.actionPlan?.responsibleParty.email}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Action Plan\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Action Response\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"span.status {\\n width: 100%;\\n padding: 6px 12px 6px 12px;\\n text-align: center;\\n border-radius: 0.25rem;\\n background-color: lightgreen; }\\n\\nspan.cursor-pointer {\\n cursor: pointer; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcmVzZWFyY2gvcmVwb3J0YWJsZS1uZXctaW5mb3JtYXRpb24tZWRpdG9yL0Q6XFxKZW5raW5zXFx3b3Jrc3BhY2VcXEV4Y2hhbmdlVUktQWRob2NcXHNyY1xcSHVyb24uRXhjaGFuZ2UuVUkvc3JjXFxhcHBcXHJlc2VhcmNoXFxyZXBvcnRhYmxlLW5ldy1pbmZvcm1hdGlvbi1lZGl0b3JcXHJlcG9ydGFibGUtbmV3LWluZm9ybWF0aW9uLWVkaXRvci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLFdBQVc7RUFDWCwwQkFBMEI7RUFDMUIsa0JBQWtCO0VBQ2xCLHNCQUFzQjtFQUN0Qiw0QkFBNEIsRUFBQTs7QUFHaEM7RUFDSSxlQUFlLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9yZXNlYXJjaC9yZXBvcnRhYmxlLW5ldy1pbmZvcm1hdGlvbi1lZGl0b3IvcmVwb3J0YWJsZS1uZXctaW5mb3JtYXRpb24tZWRpdG9yLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsic3Bhbi5zdGF0dXMge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiA2cHggMTJweCA2cHggMTJweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyZWVuO1xyXG59XHJcblxyXG5zcGFuLmN1cnNvci1wb2ludGVye1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG59Il19 */\"","import { Component, OnInit, Input, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators, FormControl, FormArray } from '@angular/forms';\r\nimport { RniDto, RniState, RniDetermination } from '../../models/rni';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DocumentUploadCellComponent, AgGridDefaults } from '../../shared';\r\nimport { DeleteRowComponent } from 'src/app/shared/delete-row/delete-row.component';\r\nimport { NgbTabset, NgbDate, NgbDateParserFormatter, NgbModalRef, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgbDateUSParserFormatter } from '../../shared/date-parsers/ngb-date-US-parser-formatter';\r\nimport { UserSearchTypeaheadComponent } from 'src/app/users/user-search-typeahead/user-search-typeahead.component';\r\nimport { UserSearchResult } from 'src/app/data-services';\r\nimport { ObjectUtils } from 'src/app/shared/object-utils';\r\n\r\n@Component({\r\n selector: 'app-reportable-new-information-editor',\r\n templateUrl: './reportable-new-information-editor.component.html',\r\n styleUrls: ['./reportable-new-information-editor.component.scss'],\r\n providers: [{ provide: NgbDateParserFormatter, useClass: NgbDateUSParserFormatter }]\r\n})\r\nexport class ReportableNewInformationEditorComponent implements OnInit {\r\n @ViewChild('tabs') tabs: NgbTabset;\r\n @ViewChild('typeahead') typeahead: UserSearchTypeaheadComponent;\r\n modalRef: NgbModalRef;\r\n\r\n canEdit: boolean = true;\r\n saving: boolean = false;\r\n sending: boolean = false;\r\n submitted: boolean = false;\r\n reviewTabVisible: boolean = false;\r\n canActionPlan: boolean = false;\r\n pageValidationErrors: string[] = [];\r\n private submitAction: string;\r\n\r\n supportingDocGridOptions = AgGridDefaults.getGridOptions({\r\n columnDefs: [\r\n { colId: \"deleteRow\", cellRenderer: \"deleteRowRenderer\", type: [\"deleteRow\"] },\r\n { headerName: \"Name\", field: \"draftName\", editable: x => this.getCanEdit() },\r\n {\r\n headerName: \"Draft\", field: \"draft\", sortable: false, filter: false,\r\n cellRenderer: \"documentUploadRenderer\", cellRendererParams: { contextObj: this }\r\n },\r\n { headerName: \"Version\", field: \"draftVersion\", editable: x => this.getCanEdit() }\r\n ],\r\n frameworkComponents: {\r\n documentUploadRenderer: DocumentUploadCellComponent,\r\n deleteRowRenderer: DeleteRowComponent\r\n },\r\n isExternalFilterPresent: this.isExternalFilterPresent,\r\n doesExternalFilterPass: this.doesExternalFilterPass\r\n });\r\n\r\n actionResponseDocGridOptions = AgGridDefaults.getGridOptions({\r\n columnDefs: [\r\n { colId: \"deleteRow\", cellRenderer: \"deleteRowRenderer\", type: [\"deleteRow\"] },\r\n { headerName: \"Name\", field: \"draftName\", editable: x => this.getCanEdit() },\r\n {\r\n headerName: \"Draft\", field: \"draft\", sortable: false, filter: false,\r\n cellRenderer: \"documentUploadRenderer\", cellRendererParams: { contextObj: this }\r\n },\r\n { headerName: \"Version\", field: \"draftVersion\", editable: x => this.getCanEdit() }\r\n ],\r\n frameworkComponents: {\r\n documentUploadRenderer: DocumentUploadCellComponent,\r\n deleteRowRenderer: DeleteRowComponent\r\n },\r\n isExternalFilterPresent: this.isExternalFilterPresent,\r\n doesExternalFilterPass: this.doesExternalFilterPass\r\n });\r\n\r\n /**\r\n * Categories selections supported by the IRB Exchange.\r\n */\r\n categories = ['RISK', 'HARM', 'NON-COMPLIANCE', 'AUDIT', 'REPORT', 'RESEARCHER-ERROR', 'CONFIDENTIALITY',\r\n 'UNREVIEWED-CHANGE', 'INCARCERATION', 'SUBJECT-COMPLAINT', 'SUSPENSION', 'ADVERSE-DEVICE-EFFECT', 'VA-SAE'];\r\n \r\n /**\r\n * The RNI form.\r\n */\r\n rniForm: FormGroup;\r\n\r\n /**\r\n * Unaltered copy of the form data from init time, used in detection of changes\r\n */\r\n originalForm;\r\n\r\n /**\r\n * The rni, being passed on to this component from it's parent.\r\n */\r\n @Input() rni: RniDto;\r\n\r\n /**\r\n * The form submit event.\r\n */\r\n @Output() submitRni = new EventEmitter();\r\n\r\n /**\r\n * Reference to the RniState enum, in case its needed in the ngIf's of the template\r\n */\r\n RniState = RniState;\r\n\r\n /**\r\n * The study exchange item Id.\r\n */\r\n studyExchangeId: string;\r\n\r\n /**\r\n * The study exchange item Id.\r\n */\r\n siteExchangeId: string;\r\n\r\n hasLetter: boolean = false;\r\n constructor(private formBuilder: FormBuilder,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private modalService: NgbModal) {\r\n\r\n // Create a new array with a form control for each category\r\n const categoryControls = this.categories.map(c => new FormControl(false));\r\n\r\n \r\n this.rniForm = this.formBuilder.group({\r\n name: ['', Validators.required],\r\n dateOfAwareness: ['', Validators.required],\r\n reportedBy: ['', Validators.required],\r\n description: ['', Validators.required],\r\n principalInvestigator: ['', Validators.required],\r\n sitePrincipalInvestigator: ['', Validators.required],\r\n isIncreasedRiskOrSafetyIssue: [],\r\n requiresProtocolRevision: [],\r\n requiresConsentFormRevision: [],\r\n state: [],\r\n categories: new FormArray(categoryControls),\r\n correspondenceLetter : [],\r\n grantAccessToIrb: [],\r\n actionResponseNotes: [],\r\n supportingDocuments: [],\r\n actionResponseDocuments: [],\r\n determinationIds : []\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.studyExchangeId = this.route.snapshot.paramMap.get('studyId');\r\n this.siteExchangeId = this.route.snapshot.paramMap.get('siteId');\r\n this.initForm(this.rni);\r\n\r\n if (this.rni.correspondenceLetter != null && this.rni.correspondenceLetter.fileName != null) {\r\n this.hasLetter = true;\r\n } \r\n }\r\n\r\n /**\r\n * To be called by parent component on availability of data, or within this component from ngOnInit(). Data needs to be reinitialized from \r\n * the results of a new GET following successful POST of changes, resetting to a clean state which matches the server data.\r\n * @param rni the rni object on which to base the current form data\r\n */\r\n public initForm(rni){\r\n var awarenessDate = new Date(rni.dateOfAwareness);\r\n this.setPermissions();\r\n this.applyPermissionsToGrids();\r\n //editable form data, partially independant from the rni object, partially sharing data through object references\r\n var editable = {\r\n name: rni.name,\r\n dateOfAwareness: new NgbDate(\r\n awarenessDate.getFullYear(),\r\n awarenessDate.getMonth() + 1, // Month is zero indexed.\r\n awarenessDate.getDate()),\r\n reportedBy: rni.reportedBy,\r\n description: rni.description,\r\n isIncreasedRiskOrSafetyIssue: rni.isIncreasedRiskOrSafetyIssue,\r\n requiresProtocolRevision: rni.requiresProtocolRevision,\r\n requiresConsentFormRevision: rni.requiresConsentFormRevision,\r\n principalInvestigator: rni.principalInvestigator,\r\n sitePrincipalInvestigator: rni.sitePrincipalInvestigator,\r\n state: rni.state,\r\n grantAccessToIrb: true,\r\n actionResponseNotes: rni.actionResponseNotes,\r\n categories: this.processCategoriesGet(rni),\r\n supportingDocuments: rni.supportingDocuments,\r\n actionResponseDocuments: rni.actionResponseDocuments,\r\n correspondenceLetter: rni.correspondenceLetter ? rni.correspondenceLetter : '', \r\n \r\n determinationIds : this.sortDeterminationCodes(rni.determinationIds)\r\n \r\n }\r\n //stash an unaltered copy of the form data, completely independant from the rni and from editable form data, to use in change detection\r\n this.originalForm = ObjectUtils.deepCopy(editable);\r\n this.rniForm.setValue(editable);\r\n this.RefreshGridView(rni);\r\n }\r\n\r\n setPermissions() {\r\n switch (this.rni.state) {\r\n case RniState.Complete:\r\n case RniState.ActionRequired:\r\n case RniState.PendingSirbReview:\r\n case RniState.Acknowledged:\r\n \r\n //If for the RNI, there is no correspondence letter or determination values present set the review tab to disable.\r\n if(this.rni.correspondenceLetter.fileName == undefined && this.rni.determinationIds == undefined)\r\n { \r\n this.reviewTabVisible = false\r\n }\r\n else{\r\n this.reviewTabVisible = true;\r\n } \r\n case RniState.Draft:\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n switch (this.rni.state) {\r\n case RniState.Draft:\r\n case RniState.PendingSirbReview:\r\n case RniState.ActionRequired:\r\n this.canEdit = true;\r\n break;\r\n default:\r\n this.canEdit = false;\r\n break;\r\n }\r\n\r\n if (this.rni.actionPlan) {\r\n this.canActionPlan = true;\r\n }\r\n }\r\n\r\n applyPermissionsToGrids() {\r\n if (this.actionResponseDocGridOptions.columnApi) {\r\n this.actionResponseDocGridOptions.columnApi.setColumnVisible(\"deleteRow\", this.canEdit);\r\n }\r\n if (this.supportingDocGridOptions.columnApi) {\r\n this.supportingDocGridOptions.columnApi.setColumnVisible(\"deleteRow\", this.canEdit);\r\n }\r\n }\r\n\r\n // Click events\r\n onSaveDraft() {\r\n this.submitAction = \"save\";\r\n }\r\n\r\n onSaveAndSend() {\r\n this.submitAction = \"saveAndSend\";\r\n }\r\n\r\n // POST\r\n onSubmit() {\r\n this.submitted = true;\r\n\r\n // stop here if form is invalid\r\n if (this.rniForm.invalid) {\r\n return;\r\n }\r\n\r\n if (this.submitAction === \"save\") {\r\n this.onSave();\r\n } else if (this.submitAction === \"saveAndSend\") {\r\n this.onSendToSirb();\r\n }\r\n }\r\n\r\n onSendToSirb() {\r\n if (this.validatePage()) {\r\n this.sending = true;\r\n this.rniForm.patchValue({\r\n grantAccessToIrb: true,\r\n supportingDocument: this.rni.supportingDocuments,\r\n actionResponseDocuments: this.rni.actionResponseDocuments\r\n });\r\n //patch the proper dateTime formatted dateOfAwareness into the posted value without altering the form\r\n this.submitRni.emit(Object.assign({}, this.rniForm.value, { dateOfAwareness: this.getAwarenessDateTime() }));\r\n }\r\n }\r\n\r\n onSave() {\r\n if (this.validatePage()) {\r\n this.saving = true;\r\n this.rniForm.patchValue({\r\n grantAccessToIrb: false,\r\n supportingDocument: this.rni.supportingDocuments,\r\n actionResponseDocuments: this.rni.actionResponseDocuments\r\n });\r\n //patch the proper dateTime formatted dateOfAwareness into the posted value without altering the form\r\n this.submitRni.emit(Object.assign({}, this.rniForm.value, { dateOfAwareness: this.getAwarenessDateTime() }));\r\n }\r\n }\r\n\r\n onClose() {\r\n this.router.navigate(['/research/studies', this.studyExchangeId, 'sites', this.siteExchangeId], { fragment: 'rni-tab' });\r\n }\r\n\r\n//Get RNI value based on code\r\ngetDeterminationValue(id: string): string {\r\n return RniDetermination[id] || ''; \r\n }\r\n\r\n//Sort the incomming determination codes as per IRB order\r\nsortDeterminationCodes(codes: string[]): string[] {\r\n // Get the enum keys (which represent the predefined order)\r\n if(codes == null)\r\n {\r\n return [];\r\n }\r\n \r\n const enumOrder = Object.keys(RniDetermination) as string[];\r\n\r\n // Sort the codes based on their index in the enum order\r\n return codes.sort((a, b) => {\r\n const indexA = enumOrder.indexOf(a);\r\n const indexB = enumOrder.indexOf(b);\r\n \r\n // Sort by the enum index values\r\n return indexA - indexB;\r\n });\r\n}\r\n\r\n\r\n\r\n //page validation function to capture errors in grid data entry or perform other delayed validation.\r\n //Don't use this for simple input fields which are always visible, use reactive form validators instead\r\n validatePage(): boolean {\r\n this.pageValidationErrors = [];\r\n //#region supporting document validation: draft doc required, no blank rows\r\n let triggeredSupportingDocDraftMessage = false;\r\n let autoPopulatedDraftName = false;\r\n let blankSupportingDocuments = [];\r\n for (let att of this.rni.supportingDocuments) {\r\n if (!att.delete) {\r\n //if anything filled out\r\n if (att.id || att.category || att.draftVersion || att.draftName || att.finalVersion || att.finalName) {\r\n if (att.draft == null || att.draft.fileName == null || att.draft.fileName == \"\") { //and the draft file is missing\r\n if (!triggeredSupportingDocDraftMessage) {\r\n this.pageValidationErrors.push(\"A Draft file must be selected for each Supporting Document\");\r\n triggeredSupportingDocDraftMessage = true;\r\n continue;\r\n }\r\n }\r\n } else if (att.draft && att.draft.fileName && att.draft.fileName !== \"\") { // Draft is filled out \r\n // Auto-populate the draftName with filename for display, though service end point handle it.\r\n autoPopulatedDraftName = true;\r\n att.draftName = att.draft.fileName;\r\n continue;\r\n }\r\n else { //nothing filled out, go ahead and just remove it\r\n //except we cant remove it now or we'll mess up the iterator. Remove them all when we're done here.\r\n blankSupportingDocuments.push(att);\r\n }\r\n }\r\n //else deleted, do nothing to validate it, the server will remove it\r\n }\r\n for (let blank of blankSupportingDocuments) {\r\n this.rni.supportingDocuments.splice(this.rni.supportingDocuments.indexOf(blank), 1);\r\n }\r\n //if we removed rows from the grid, instruct it to refresh the display.\r\n if (blankSupportingDocuments.length > 0 || autoPopulatedDraftName) {\r\n this.supportingDocGridOptions.api.setRowData(this.rni.supportingDocuments);\r\n this.supportingDocGridOptions.setGridColumnWidths();\r\n }\r\n //#endregion\r\n //#region action plan response document validation: draft required, no blanks rows\r\n let triggeredActionPlanDocDraftMessage = false;\r\n let blankActionPlanDocs = [];\r\n autoPopulatedDraftName = false;\r\n for (let att of this.rni.actionResponseDocuments) {\r\n if (!att.delete) {\r\n //if anything filled out\r\n if (att.id || att.category || att.draftVersion || att.draftName || att.finalVersion || att.finalName) {\r\n if (att.draft == null || att.draft.fileName == null || att.draft.fileName == \"\") { //and the draft file is missing\r\n if (!triggeredActionPlanDocDraftMessage) {\r\n this.pageValidationErrors.push(\"A Draft file must be selected for each Action Plan Response Document\");\r\n triggeredActionPlanDocDraftMessage = true;\r\n continue;\r\n }\r\n }\r\n } else if (att.draft && att.draft.fileName && att.draft.fileName !== \"\") { // Draft is filled out \r\n autoPopulatedDraftName = true;\r\n att.draftName = att.draft.fileName;\r\n continue;\r\n }\r\n else { //nothing filled out, go ahead and just remove it\r\n //except we cant remove it now or we'll mess up the iterator. Remove them all when we're done here.\r\n blankActionPlanDocs.push(att);\r\n }\r\n }\r\n //else deleted, do nothing to validate it, the server will remove it\r\n }\r\n for (let blank of blankActionPlanDocs) {\r\n this.rni.actionResponseDocuments.splice(this.rni.actionResponseDocuments.indexOf(blank), 1);\r\n }\r\n //if we removed rows from the grid, instruct it to refresh the display.\r\n if (blankActionPlanDocs.length > 0 || autoPopulatedDraftName) {\r\n this.actionResponseDocGridOptions.api.setRowData(this.rni.actionResponseDocuments);\r\n this.actionResponseDocGridOptions.setGridColumnWidths();\r\n }\r\n //#endregion \r\n if (triggeredSupportingDocDraftMessage) {\r\n this.tabs.select('supporting-documents-tab');\r\n return false;\r\n } else if (triggeredActionPlanDocDraftMessage) {\r\n this.tabs.select('action-plan-tab');\r\n return false;\r\n }//else\r\n return true;\r\n }\r\n\r\n // Call from parent component to indicate service response and enable the form buttons.\r\n onSubmitted(): void {\r\n this.sending = false;\r\n this.saving = false;\r\n }\r\n\r\n processCategoriesGet(rni: RniDto) {\r\n var mappedCategories = [];\r\n for (let i = 0; i < this.categories.length; i++) {\r\n if (rni.categories.indexOf(this.categories[i]) == -1) {\r\n mappedCategories[i] = false;\r\n } else {\r\n mappedCategories[i] = true;\r\n }\r\n }\r\n\r\n return mappedCategories;\r\n }\r\n\r\n \r\n\r\n addSupportingDocumentRow() {\r\n let newRow = {\r\n id: \"\",\r\n category: \"\",\r\n delete: false,\r\n draft: {\r\n studyId: this.studyExchangeId,\r\n itemId: \"\",\r\n fileName: \"\",\r\n fileToUpload: null,\r\n fileContent: \"\"\r\n },\r\n draftName: \"\",\r\n draftVersion: \"\",\r\n final: {\r\n studyId: this.studyExchangeId,\r\n itemId: \"\",\r\n fileName: \"\",\r\n fileToUpload: null,\r\n fileContent: \"\"\r\n },\r\n finalName: \"\",\r\n finalVersion: \"\"\r\n }\r\n\r\n this.rni.supportingDocuments.push(newRow);\r\n this.supportingDocGridOptions.api.updateRowData({\r\n add: [newRow]\r\n });\r\n this.supportingDocGridOptions.api.startEditingCell({ //open the editor for the first editable cell in the row\r\n rowIndex: this.rni.supportingDocuments.length - 1,\r\n colKey: 'draftName'\r\n });\r\n }\r\n\r\n onSupportingDocumentsGridReady(params) {\r\n this.supportingDocGridOptions.api = params.api;\r\n this.supportingDocGridOptions.columnApi = params.columnApi;\r\n this.applyPermissionsToGrids();\r\n if (this.rni != null) {\r\n this.supportingDocGridOptions.api.setRowData(this.rni.supportingDocuments);\r\n this.supportingDocGridOptions.setGridColumnWidths();\r\n }\r\n }\r\n\r\n addActionResponseDocumentRow() {\r\n let newRow = {\r\n id: \"\",\r\n category: \"\",\r\n delete: false,\r\n draft: {\r\n studyId: this.studyExchangeId,\r\n itemId: \"\",\r\n fileName: \"\",\r\n fileToUpload: null,\r\n fileContent: \"\"\r\n },\r\n draftName: \"\",\r\n draftVersion: \"\",\r\n final: {\r\n studyId: this.studyExchangeId,\r\n itemId: \"\",\r\n fileName: \"\",\r\n fileToUpload: null,\r\n fileContent: \"\"\r\n },\r\n finalName: \"\",\r\n finalVersion: \"\"\r\n }\r\n\r\n this.rni.actionResponseDocuments.push(newRow);\r\n this.actionResponseDocGridOptions.api.updateRowData({\r\n add: [newRow]\r\n });\r\n this.actionResponseDocGridOptions.api.startEditingCell({ //open the editor for the first editable cell in the row\r\n rowIndex: this.rni.actionResponseDocuments.length - 1,\r\n colKey: 'draftName'\r\n });\r\n }\r\n\r\n onActionResponseDocumentGridReady(params) {\r\n this.actionResponseDocGridOptions.api = params.api;\r\n this.actionResponseDocGridOptions.columnApi = params.columnApi;\r\n this.applyPermissionsToGrids();\r\n if (this.rni != null) {\r\n this.actionResponseDocGridOptions.api.setRowData(this.rni.actionResponseDocuments);\r\n this.actionResponseDocGridOptions.setGridColumnWidths();\r\n }\r\n }\r\n\r\n onClickShowSearch() {\r\n this.modalRef = this.modalService.open(UserSearchTypeaheadComponent);\r\n this.modalRef.componentInstance.label = \"Search for Reported by Last Name or Email\";\r\n this.modalRef.result.then((user: UserSearchResult) => {\r\n this.rniForm.patchValue({\r\n reportedBy: user.firstName + ' ' + user.lastName\r\n });\r\n }).catch(() => { /* cancelled by the user */ });\r\n }\r\n\r\n //always-on filtering of which grid rows are visible\r\n isExternalFilterPresent(): boolean {\r\n return true;\r\n }\r\n\r\n //test funding source row to determine if it should be visible in the grid\r\n doesExternalFilterPass(node) {\r\n return !node.data.delete;\r\n }\r\n\r\n //must use a function to achieve dynamic editability in ag-grid cells\r\n getCanEdit() {\r\n return this.canEdit;\r\n }\r\n\r\n // Adds the locale's timezone offset to ngb date.\r\n getAwarenessDateTime() {\r\n let ngbDate: NgbDate = this.rniForm.get('dateOfAwareness').value;\r\n return new Date(ngbDate.year, ngbDate.month - 1, ngbDate.day);\r\n }\r\n\r\n onFirstDataRendered(params, optionsObj) {\r\n return AgGridDefaults.onFirstDataRendered(params, optionsObj);\r\n }\r\n\r\n canDeactivate() {\r\n //.value excludes disabled inputs, but since the data is still present, that would introduce a false positive in change detection\r\n var curValues = this.rniForm.getRawValue();\r\n //if changes made, return false to the parent component, to trigger a warning/confirmation dialog via pending-changes.guard\r\n let diffObj = ObjectUtils.getDifference(this.originalForm, curValues);\r\n return (Object.keys(diffObj).length == 0);\r\n }\r\n\r\n // Removes the rows from the DOM and draws them again from scratch\r\n RefreshGridView(rni) {\r\n //recreate document cellRenderer for revision upload without page refresh \r\n if (rni != null) {\r\n if (this.actionResponseDocGridOptions.api) {\r\n this.actionResponseDocGridOptions.api.setRowData(rni.actionResponseDocuments);\r\n this.actionResponseDocGridOptions.api.redrawRows();\r\n }\r\n\r\n if (this.supportingDocGridOptions.api) {\r\n this.supportingDocGridOptions.api.setRowData(rni.supportingDocuments);\r\n this.supportingDocGridOptions.api.redrawRows();\r\n }\r\n }\r\n }\r\n}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Jlc2VhcmNoL3JlcG9ydGFibGUtbmV3LWluZm9ybWF0aW9uL3JlcG9ydGFibGUtbmV3LWluZm9ybWF0aW9uLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, ViewChild, HostListener } from '@angular/core';\r\nimport { RniDto } from '../../models/rni';\r\nimport { ResearchService } from '../../data-services';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { ReportableNewInformationEditorComponent } from '../reportable-new-information-editor/reportable-new-information-editor.component';\r\nimport { ComponentCanDeactivate } from 'src/app/shared/pending-changes.guard';\r\nimport { ObjectUtils } from 'src/app/shared/object-utils';\r\n\r\n@Component({\r\n selector: 'app-reportable-new-information',\r\n templateUrl: './reportable-new-information.component.html',\r\n styleUrls: ['./reportable-new-information.component.scss']\r\n})\r\nexport class ReportableNewInformationComponent implements OnInit, ComponentCanDeactivate {\r\n\r\n // Child refernce to indicate the service response.\r\n @ViewChild(ReportableNewInformationEditorComponent) rniEditor: ReportableNewInformationEditorComponent;\r\n\r\n /**\r\n * The study exchange item Id.\r\n */\r\n studyExchangeId: string;\r\n\r\n /**\r\n * The rni exchange item Id\r\n */\r\n rniExchangeId: string;\r\n\r\n /**\r\n * The rni.\r\n */\r\n rni: RniDto;\r\n\r\n /**\r\n * Selections supported by the IRB Exchange for reportable new information category\r\n */\r\n categories = ['RISK', 'HARM', 'NON-COMPLIANCE', 'AUDIT', 'REPORT', 'RESEARCHER-ERROR', 'CONFIDENTIALITY',\r\n 'UNREVIEWED-CHANGE', 'INCARCERATION', 'SUBJECT-COMPLAINT', 'SUSPENSION', 'ADVERSE-DEVICE-EFFECT', 'VA-SAE'];\r\n\r\n constructor(private researchService: ResearchService,\r\n private route: ActivatedRoute,\r\n private toastr: ToastrService) {\r\n }\r\n \r\n ngOnInit() {\r\n this.rniExchangeId = this.route.snapshot.paramMap.get('rniId');\r\n this.studyExchangeId = this.route.snapshot.paramMap.get('studyId');\r\n \r\n this.initData();\r\n }\r\n\r\n initData(){\r\n this.researchService.getRni(this.rniExchangeId, this.studyExchangeId)\r\n .subscribe((rni) => {\r\n this.rni = rni;\r\n if (this.rniEditor != null) {\r\n this.rniEditor.initForm(this.rni);\r\n }\r\n });\r\n }\r\n\r\n onSubmit(rni: RniDto) {\r\n rni.categories = this.processCategoriesPost(rni);\r\n this.researchService.updateRni(this.rniExchangeId, this.studyExchangeId, rni)\r\n .pipe(finalize(() => {\r\n this.rniEditor.onSubmitted();\r\n }))\r\n .subscribe(() => {\r\n this.initData();\r\n this.toastr.success(\"Changes saved and sent\", \"Success!\");\r\n });;\r\n }\r\n\r\n processCategoriesPost(rni: RniDto) {\r\n return rni.categories\r\n .map((v, i) => v ? this.categories[i] : null)\r\n .filter(v => v !== null);\r\n }\r\n\r\n //use canDeactivate as a handler for the window.beforeUnload event\r\n @HostListener('window:beforeunload')\r\n canDeactivate(): boolean {\r\n return this.rniEditor.canDeactivate();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { SharedModule } from '../shared';\r\nimport { UsersModule } from '../users';\r\nimport { AgGridModule } from 'ag-grid-angular';\r\n\r\nimport { ContinuingReviewComponent } from './continuing-review/continuing-review.component';\r\nimport { InvitationListComponent } from './invitation-list/invitation-list.component';\r\nimport { ReportableNewInformationComponent } from './reportable-new-information/reportable-new-information.component';\r\nimport { SiteDetailsComponent } from './site-details/site-details.component';\r\nimport { SiteModificationComponent } from './site-modification/site-modification.component';\r\nimport { StudyDetailsComponent } from './study-details/study-details.component';\r\nimport { StudyListComponent } from './study-list/study-list.component';\r\nimport { ReviewDetailsComponent } from './review-details/review-details.component';\r\nimport { ReviewDatesComponent } from './review-dates/review-dates.component';\r\nimport { DocumentDownloadCellComponent, DocumentUploadCellComponent, DocumentUploadListComponent, DocumentUploadListCellComponent, DocumentDownloadListCellComponent, RouterLinkCellComponent } from '../shared';\r\nimport { ReportableNewInformationEditorComponent } from './reportable-new-information-editor/reportable-new-information-editor.component';\r\nimport { ReportableNewInformationCreateComponent } from './reportable-new-information-create/reportable-new-information-create.component';\r\nimport { SiteModificationCreateComponent } from './site-modification-create/site-modification-create.component';\r\nimport { SiteModificationEditorComponent } from './site-modification-editor/site-modification-editor.component';\r\nimport { SiteContactsEditorComponent } from './site-contacts-editor/site-contacts-editor.component';\r\nimport { SiteContactsReaderComponent } from './site-contacts-reader/site-contacts-reader.component';\r\nimport { DeleteRowComponent } from '../shared/delete-row/delete-row.component';\r\nimport { UserSearchTypeaheadComponent } from '../users/user-search-typeahead/user-search-typeahead.component';\r\nimport { ModificationEditorComponent } from './modification-editor/modification-editor.component';\r\nimport { ModificationReaderComponent } from './modification-reader/modification-reader.component';\r\nimport { RniEditorComponent } from './rni-editor/rni-editor.component';\r\nimport { RniReaderComponent } from './rni-reader/rni-reader.component';\r\nimport { ModificationReviewDetailsComponent } from './modification-review-details/modification-review-details.component';\r\nimport { NotifyDialogComponent } from './notify-dialog/notify-dialog.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n ContinuingReviewComponent,\r\n InvitationListComponent,\r\n ReportableNewInformationComponent,\r\n SiteDetailsComponent,\r\n SiteModificationComponent,\r\n StudyDetailsComponent,\r\n StudyListComponent,\r\n ReviewDetailsComponent,\r\n ReviewDatesComponent,\r\n ReportableNewInformationEditorComponent,\r\n ReportableNewInformationCreateComponent,\r\n SiteModificationCreateComponent,\r\n SiteModificationEditorComponent,\r\n SiteContactsEditorComponent,\r\n SiteContactsReaderComponent,\r\n ModificationEditorComponent,\r\n ModificationReaderComponent,\r\n RniEditorComponent,\r\n RniReaderComponent,\r\n ModificationReviewDetailsComponent,\r\n NotifyDialogComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n NgbModule,\r\n SharedModule,\r\n UsersModule,\r\n AgGridModule.withComponents([\r\n DocumentDownloadCellComponent,\r\n DocumentDownloadListCellComponent,\r\n DocumentUploadCellComponent,\r\n DocumentUploadListCellComponent,\r\n RouterLinkCellComponent,\r\n DeleteRowComponent,\r\n ])\r\n ],\r\n entryComponents: [\r\n UserSearchTypeaheadComponent,\r\n NotifyDialogComponent\r\n ]\r\n})\r\nexport class ResearchModule { }\r\n","module.exports = \"
\\r\\n
Approval
\\r\\n
{{ reviewDates.approvalDate | date: 'MM-dd-yyyy' }}
\\r\\n
\\r\\n
\\r\\n
Effective
\\r\\n
{{ reviewDates.effectiveDate | date: 'MM-dd-yyyy' }}
\\r\\n
\\r\\n
\\r\\n
Initial Effective
\\r\\n
{{ reviewDates.initialEffectiveDate | date: 'MM-dd-yyyy' }}
\\r\\n
\\r\\n
\\r\\n
Last Day of Approval
\\r\\n
{{ reviewDates.lastDayOfApproval | date: 'MM-dd-yyyy' }}
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Jlc2VhcmNoL3Jldmlldy1kYXRlcy9yZXZpZXctZGF0ZXMuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ReviewDates } from '../../models/reviewDates';\r\n\r\n@Component({\r\n selector: 'app-review-dates',\r\n templateUrl: './review-dates.component.html',\r\n styleUrls: ['./review-dates.component.scss']\r\n})\r\nexport class ReviewDatesComponent implements OnInit {\r\n\r\n @Input() reviewDates: ReviewDates;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
Determination
\\r\\n
\\r\\n {{reviewInformation.status}}\\r\\n \\r\\n  — \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
Required Modifications
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Jlc2VhcmNoL3Jldmlldy1kZXRhaWxzL3Jldmlldy1kZXRhaWxzLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ReviewInformation } from '../../models/reviewInformation';\r\n\r\n@Component({\r\n selector: 'app-review-details',\r\n templateUrl: './review-details.component.html',\r\n styleUrls: ['./review-details.component.scss']\r\n})\r\nexport class ReviewDetailsComponent implements OnInit {\r\n \r\n @Input() reviewInformation: ReviewInformation;\r\n modificationsRequired: boolean = false;\r\n hasLetter: boolean = false;\r\n \r\n constructor() { }\r\n\r\n ngOnInit() {\r\n if (this.reviewInformation.requiredModifications != null && this.reviewInformation.requiredModifications != '') {\r\n if (this.reviewInformation.status == 'Modifications Required to Secure \"Approved\"') {\r\n this.modificationsRequired = true;\r\n }\r\n }\r\n if (this.reviewInformation.correspondenceLetter != null && this.reviewInformation.correspondenceLetter.fileName != null) {\r\n this.hasLetter = true;\r\n }\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
Name
\\r\\n
\\r\\n \\r\\n
\\r\\n
Required.
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Study PI
\\r\\n
{{rni.principalInvestigator.firstName}} {{rni.principalInvestigator.lastName}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{rni.principalInvestigator.email}}
\\r\\n
\\r\\n
\\r\\n
Local PI
\\r\\n
{{rni.sitePrincipalInvestigator.firstName}} {{rni.sitePrincipalInvestigator.lastName}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{rni.sitePrincipalInvestigator.email}}
\\r\\n
\\r\\n
\\r\\n
Date of Awareness
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
Required.
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Reported By
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
Required.
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
7\\\" class=\\\"form-check\\\">\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Description\\r\\n \\r\\n
\\r\\n
Required.
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Jlc2VhcmNoL3JuaS1lZGl0b3Ivcm5pLWVkaXRvci5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit, Input, ViewChild } from '@angular/core';\r\nimport { FormGroup, FormArray } from '@angular/forms';\r\nimport { RniDto } from 'src/app/models/rni';\r\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\r\nimport { UserSearchTypeaheadComponent } from 'src/app/users/user-search-typeahead/user-search-typeahead.component';\r\nimport { UserSearchResult } from 'src/app/data-services';\r\n\r\n@Component({\r\n selector: 'app-rni-editor',\r\n templateUrl: './rni-editor.component.html',\r\n styleUrls: ['./rni-editor.component.scss']\r\n})\r\nexport class RniEditorComponent implements OnInit {\r\n\r\n @Input() rniForm: FormGroup;\r\n @Input() rni: RniDto;\r\n @Input() categories: string[];\r\n @Input() submitted: boolean;\r\n @ViewChild('typeahead') typeahead: UserSearchTypeaheadComponent;\r\n\r\n modalRef: NgbModalRef;\r\n\r\n constructor(private modalService: NgbModal) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n // Search user\r\n onClickShowSearch() {\r\n this.modalRef = this.modalService.open(UserSearchTypeaheadComponent);\r\n this.modalRef.componentInstance.label = \"Search for Reported by Last Name or Email\";\r\n this.modalRef.result.then((user: UserSearchResult) => {\r\n this.rniForm.patchValue({\r\n reportedBy: user.firstName + ' ' + user.lastName\r\n });\r\n }).catch(() => { /* cancelled by the user */ });\r\n }\r\n\r\n // convenience getter for easy access to form fields\r\n get f() { return this.rniForm.controls; }\r\n\r\n // get categories controls.\r\n get categoriesControl() {\r\n return this.rniForm.get('categories');\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
Name
\\r\\n
{{rni.name}}
\\r\\n
\\r\\n
\\r\\n
Study PI
\\r\\n
{{rni.principalInvestigator.firstName}} {{rni.principalInvestigator.lastName}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{rni.principalInvestigator.email}}
\\r\\n
\\r\\n
\\r\\n
Local PI
\\r\\n
{{rni.sitePrincipalInvestigator.firstName}} {{rni.sitePrincipalInvestigator.lastName}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{rni.sitePrincipalInvestigator.email}}
\\r\\n
\\r\\n
\\r\\n
Date of Awareness
\\r\\n
{{rni.dateOfAwareness | date: 'MM-dd-yyyy'}}
\\r\\n
\\r\\n
\\r\\n
Reported By
\\r\\n
{{rni.reportedBy}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Description
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Jlc2VhcmNoL3JuaS1yZWFkZXIvcm5pLXJlYWRlci5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit, Input } from '@angular/core';\r\nimport { RniDto, RniCategories, Categories } from 'src/app/models/rni';\r\n\r\n@Component({\r\n selector: 'app-rni-reader',\r\n templateUrl: './rni-reader.component.html',\r\n styleUrls: ['./rni-reader.component.scss']\r\n})\r\nexport class RniReaderComponent implements OnInit {\r\n\r\n @Input() rni: RniDto;\r\n rniCategories = RniCategories;\r\n categories: Categories;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.processCategories();\r\n }\r\n\r\n processCategories() {\r\n this.categories = {\r\n RISK: false,\r\n HARM: false,\r\n NON_COMPLIANCE: false,\r\n AUDIT: false,\r\n REPORT: false,\r\n RESEARCHER_ERROR: false,\r\n CONFIDENTIALITY: false,\r\n UNREVIEWED_CHANGE: false,\r\n INCARCERATION: false,\r\n SUBJECT_COMPLAINT: false,\r\n SUSPENSION: false,\r\n ADVERSE_DEVICE_EFFECT: false,\r\n VA_SAE: false\r\n }\r\n\r\n for (var category of this.rni.categories) {\r\n switch (category) {\r\n case RniCategories.RISK:\r\n this.categories.RISK = true;\r\n break;\r\n case RniCategories.HARM:\r\n this.categories.HARM = true;\r\n break;\r\n case RniCategories.NON_COMPLIANCE:\r\n this.categories.NON_COMPLIANCE = true;\r\n break;\r\n case RniCategories.AUDIT:\r\n this.categories.AUDIT = true;\r\n break;\r\n case RniCategories.REPORT:\r\n this.categories.REPORT = true;\r\n break;\r\n case RniCategories.RESEARCHER_ERROR:\r\n this.categories.RESEARCHER_ERROR = true;\r\n break;\r\n case RniCategories.CONFIDENTIALITY:\r\n this.categories.CONFIDENTIALITY = true;\r\n break;\r\n case RniCategories.UNREVIEWED_CHANGE:\r\n this.categories.UNREVIEWED_CHANGE = true;\r\n break;\r\n case RniCategories.INCARCERATION:\r\n this.categories.INCARCERATION = true;\r\n break;\r\n case RniCategories.SUBJECT_COMPLAINT:\r\n this.categories.SUBJECT_COMPLAINT = true;\r\n break;\r\n case RniCategories.SUSPENSION:\r\n this.categories.SUSPENSION = true;\r\n break;\r\n case RniCategories.ADVERSE_DEVICE_EFFECT:\r\n this.categories.ADVERSE_DEVICE_EFFECT = true;\r\n break;\r\n case RniCategories.VA_SAE:\r\n this.categories.VA_SAE = true;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Site } from \"../models/site\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class SharedService {\r\n studyExchangeId:string; \r\n siteExchangeId: string;\r\n site: Site;\r\n\r\n constructor(){\r\n\r\n }\r\n}","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
Required.
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Site's Study ID
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
Last Updated
\\r\\n
\\r\\n {{site.lastUpdated | date: 'MM-dd-yyyy'}}\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Jlc2VhcmNoL3NpdGUtY29udGFjdHMtZWRpdG9yL3NpdGUtY29udGFjdHMtZWRpdG9yLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, Input, ViewChild } from '@angular/core';\r\nimport { ControlContainer, NgForm } from '@angular/forms';\r\nimport { Site } from '../../models/site';\r\nimport { UserSearchTypeaheadComponent } from 'src/app/users/user-search-typeahead/user-search-typeahead.component';\r\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\r\nimport { User } from 'src/app/models';\r\nimport { UserSearchResult } from 'src/app/data-services';\r\n\r\n\r\n@Component({\r\n selector: 'app-site-contacts-editor',\r\n templateUrl: './site-contacts-editor.component.html',\r\n styleUrls: ['./site-contacts-editor.component.scss'],\r\n viewProviders: [{provide: ControlContainer, useExisting: NgForm}]\r\n})\r\nexport class SiteContactsEditorComponent implements OnInit {\r\n @Input() site: Site;\r\n @Input() parentForm: NgForm;\r\n @ViewChild('typeahead') typeahead: UserSearchTypeaheadComponent;\r\n modalRef: NgbModalRef;\r\n\r\n constructor(private modalService: NgbModal) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onClickShowSearch(searchTarget, targetIndex?) {\r\n this.modalRef = this.modalService.open(UserSearchTypeaheadComponent);\r\n switch(searchTarget){\r\n case null:\r\n case \"investigator\":\r\n this.modalRef.componentInstance.label = \"Search for Investigator by Last Name or Email\";\r\n this.modalRef.result.then((user: UserSearchResult) => {\r\n this.site.principalInvestigator = {\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n email: user.email\r\n }\r\n }).catch(() => { /* cancelled by the user */ });\r\n break;\r\n case \"primaryContact\":\r\n this.modalRef.componentInstance.label = \"Search for Primary Contact by Last Name or Email\";\r\n this.modalRef.result.then((user: UserSearchResult) => {\r\n this.site.primaryContact = {\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n email: user.email\r\n }\r\n }).catch(() => { /* cancelled by the user */ });\r\n break;\r\n case \"proxy\":\r\n this.modalRef.componentInstance.label = \"Search for PI Proxy by Last Name or Email\";\r\n this.modalRef.result.then((user: UserSearchResult) => {\r\n this.site.piProxies[targetIndex] = {\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n email: user.email\r\n }\r\n }).catch(() => { /* cancelled by the user */ });\r\n break;\r\n }\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{site.principalInvestigator.firstName}} \\r\\n {{site.principalInvestigator.lastName}}\\r\\n
\\r\\n
\\r\\n {{site.principalInvestigator.email}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{proxy.firstName}} \\r\\n {{proxy.lastName}}\\r\\n
\\r\\n
\\r\\n {{proxy.email}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{site.primaryContact.firstName}} \\r\\n {{site.primaryContact.lastName}}\\r\\n
\\r\\n
\\r\\n {{site.primaryContact.email}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{site.siteId}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{site.lastUpdated | date: 'MM-dd-yyyy'}}\\r\\n
\\r\\n
\\r\\n \\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Jlc2VhcmNoL3NpdGUtY29udGFjdHMtcmVhZGVyL3NpdGUtY29udGFjdHMtcmVhZGVyLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ControlContainer, NgForm } from '@angular/forms';\r\nimport { Site } from '../../models/site';\r\n\r\n@Component({\r\n selector: 'app-site-contacts-reader',\r\n templateUrl: './site-contacts-reader.component.html',\r\n styleUrls: ['./site-contacts-reader.component.scss'],\r\n viewProviders: [{provide: ControlContainer, useExisting: NgForm}]\r\n})\r\nexport class SiteContactsReaderComponent implements OnInit {\r\n @Input() site: Site;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n

\\r\\n {{site.studyTitle}}\\r\\n

\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{site.status}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
0\\\">\\r\\n
\\r\\n
\\r\\n {{pve}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Currently document upload file sizes are limited to 50 MB each.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Consent forms:\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Recruitment materials:\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Other attachments:\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n Currently document upload file sizes are limited to 50 MB each.\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Study Funding Sources:\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n Add\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Add\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n There is an active modification for this site\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\"","module.exports = \"span.status {\\n width: 100%;\\n padding: 6px 12px 6px 12px;\\n text-align: center;\\n border-radius: 0.25rem;\\n background-color: lightgreen; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcmVzZWFyY2gvc2l0ZS1kZXRhaWxzL0Q6XFxKZW5raW5zXFx3b3Jrc3BhY2VcXEV4Y2hhbmdlVUktQWRob2NcXHNyY1xcSHVyb24uRXhjaGFuZ2UuVUkvc3JjXFxhcHBcXHJlc2VhcmNoXFxzaXRlLWRldGFpbHNcXHNpdGUtZGV0YWlscy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLFdBQVc7RUFDWCwwQkFBMEI7RUFDMUIsa0JBQWtCO0VBQ2xCLHNCQUFzQjtFQUN0Qiw0QkFBNEIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3Jlc2VhcmNoL3NpdGUtZGV0YWlscy9zaXRlLWRldGFpbHMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJzcGFuLnN0YXR1cyB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHBhZGRpbmc6IDZweCAxMnB4IDZweCAxMnB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JlZW47XHJcbn0iXX0= */\"","import { Component, OnInit, ViewChild, ChangeDetectorRef, HostListener } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ResearchService } from '../../data-services';\r\nimport { Site, SiteStatus } from '../../models/site';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { DocumentUploadCellComponent, AgGridDefaults, DocumentDownloadCellComponent } from '../../shared';\r\nimport { RouterLinkCellComponent } from '../../shared';\r\nimport { DeleteRowComponent } from 'src/app/shared/delete-row/delete-row.component';\r\nimport { NotifyDialogComponent } from '../notify-dialog/notify-dialog.component';\r\nimport { DocumentUploadListCellComponent } from 'src/app/shared/document-upload-list-cell/document-upload-list-cell.component';\r\nimport { DocumentDownloadListCellComponent } from 'src/app/shared/document-download-list-cell/document-download-list-cell.component';\r\nimport { NgbModal, NgbModalOptions, NgbTabset } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ContinuingReviewComponent } from '../continuing-review/continuing-review.component';\r\nimport { ComponentCanDeactivate } from 'src/app/shared/pending-changes.guard';\r\nimport { ObjectUtils } from 'src/app/shared/object-utils';\r\nimport {SharedService} from '../shared.service';\r\n\r\n@Component({\r\n selector: 'app-site-details',\r\n templateUrl: './site-details.component.html',\r\n styleUrls: ['./site-details.component.scss']\r\n})\r\nexport class SiteDetailsComponent implements OnInit, ComponentCanDeactivate {\r\n @ViewChild('tabs') tabs: NgbTabset;\r\n @ViewChild(NotifyDialogComponent) notifyDialog :NotifyDialogComponent;\r\n\r\n studyExchangeId: string;\r\n siteExchangeId: string;\r\n site: Site;\r\n originalSite: Site;\r\n loadComplete: boolean = false;\r\n saving: boolean = false;\r\n sending: boolean = false;\r\n canEdit: boolean = false;\r\n canMod: boolean = false;\r\n canRni: boolean = false;\r\n canCR: boolean = false;\r\n canReview: boolean = false;\r\n canSave: boolean = false;\r\n SiteStatus = SiteStatus; //provides a reference to the SiteStatus enum in the context of the component.html page for *ngIf usage\r\n pageValidationErrors: string[] = []; \r\n private submitAction: string;\r\n private modalOptions: NgbModalOptions ={\r\n centered: true\r\n }\r\n\r\n fundingSourceGridOptions = AgGridDefaults.getGridOptions({\r\n columnDefs: [\r\n { colId: \"deleteRow\", cellRenderer: \"deleteRowRenderer\", type: [\"deleteRow\"] },\r\n { headerName: \"Name\", field: \"name\", editable: x => this.getCanEdit() },\r\n { \r\n headerName: \"Draft\", field: \"documents\", editable: x => this.getCanEdit(), autoHeight: true, type: [\"noSort\"],\r\n cellEditor: \"documentUploadEditor\",\r\n cellRenderer: \"documentDownloadListRenderer\"\r\n },\r\n {\r\n headerName: \"Final\", field: \"finalDocuments\", editable: false, autoHeight: true, type: [\"noSort\"],\r\n cellRenderer: \"documentDownloadListRenderer\"\r\n }\r\n ],\r\n frameworkComponents: {\r\n documentUploadEditor: DocumentUploadListCellComponent,\r\n documentDownloadListRenderer: DocumentDownloadListCellComponent,\r\n deleteRowRenderer: DeleteRowComponent\r\n },\r\n isExternalFilterPresent: this.isExternalFilterPresent,\r\n doesExternalFilterPass: this.doesExternalFilterPass\r\n });\r\n\r\n rniGridOptions = AgGridDefaults.getGridOptions({\r\n columnDefs: [\r\n {\r\n headerName: \"Name\", field: \"name\", cellRenderer: \"routerLinkRenderer\", \r\n cellRendererParams: { \r\n routerLink: [\r\n '/research/studies', \r\n this.route.snapshot.paramMap.get('studyId'), \r\n 'sites', \r\n this.route.snapshot.paramMap.get('siteId'), \r\n 'rni',\r\n '{{id}}'\r\n ],\r\n displayAttribute: 'name'\r\n }\r\n },\r\n { headerName: \"Date of Awareness\", field: \"dateOfAwareness\", minWidth: 170, type: [\"date\"] },\r\n { headerName: \"Status\", field: \"status\", minWidth: 100 }\r\n ],\r\n frameworkComponents: {\r\n routerLinkRenderer: RouterLinkCellComponent\r\n }\r\n });\r\n\r\n modGridOptions = AgGridDefaults.getGridOptions({\r\n columnDefs: [\r\n {\r\n headerName: \"Name\", field: \"name\", minWidth: 100, cellRenderer: \"routerLinkRenderer\", \r\n cellRendererParams: {\r\n routerLink: [\r\n '/research/studies',\r\n this.route.snapshot.paramMap.get('studyId'),\r\n 'sites',\r\n this.route.snapshot.paramMap.get('siteId'),\r\n 'mod',\r\n '{{id}}'\r\n ],\r\n displayAttribute: 'name'\r\n }\r\n },\r\n { headerName: \"Summary\", field: \"summary\" },\r\n { headerName: \"Date Created\", field: \"dateCreated\", minWidth: 135, type: [\"date\"] },\r\n { headerName: \"Status\", field: \"status\", minWidth: 100 }\r\n ],\r\n \r\n frameworkComponents: {\r\n routerLinkRenderer: RouterLinkCellComponent\r\n }\r\n });\r\n\r\n attachmentGridOptions = AgGridDefaults.getGridOptions({\r\n columnDefs: [\r\n { colId: \"deleteRow\", cellRenderer: \"deleteRowRenderer\", type: [\"deleteRow\"] },\r\n { headerName: \"Name\", field: \"draftName\", editable: x => this.getCanEdit() },\r\n {\r\n headerName: \"Draft\", field: \"draft\", type: [\"noSort\"],\r\n cellRenderer: \"documentUploadRenderer\", cellRendererParams: { contextObj: this }\r\n },\r\n { headerName: \"Version\", field: \"draftVersion\", editable: x => this.getCanEdit() },\r\n {\r\n headerName: \"Final\", field: \"final\", type: [\"noSort\"],\r\n cellRenderer: \"documentDownloadRenderer\", cellRendererParams: { contextObj: this }\r\n },\r\n { headerName: \"Version\", field: \"finalVersion\", type: [\"nonEditable\"] }\r\n ],\r\n frameworkComponents: {\r\n documentUploadRenderer: DocumentUploadCellComponent,\r\n deleteRowRenderer: DeleteRowComponent,\r\n documentDownloadRenderer: DocumentDownloadCellComponent\r\n },\r\n isExternalFilterPresent: this.isExternalFilterPresent,\r\n doesExternalFilterPass: this.doesExternalFilterPass\r\n });\r\n\r\n private consentFormsGridOptions = AgGridDefaults.getGridOptions({\r\n columnDefs: [\r\n { colId: \"deleteRow\", cellRenderer: \"deleteRowRenderer\", type: [\"deleteRow\"] },\r\n { headerName: \"Name\", field: \"draftName\", editable: x => this.getCanEdit() },\r\n {\r\n headerName: \"Draft\", field: \"draft\", type: [\"noSort\"],\r\n cellRenderer: \"documentUploadRenderer\", cellRendererParams: { contextObj: this }\r\n },\r\n { headerName: \"Version\", field: \"draftVersion\", editable: x => this.getCanEdit() },\r\n {\r\n headerName: \"Final\", field: \"final\", type: [\"noSort\"],\r\n cellRenderer: \"documentDownloadRenderer\", cellRendererParams: { contextObj: this }\r\n },\r\n { headerName: \"Version\", field: \"finalVersion\", type: [\"nonEditable\"] }\r\n ],\r\n frameworkComponents: {\r\n documentUploadRenderer: DocumentUploadCellComponent,\r\n deleteRowRenderer: DeleteRowComponent,\r\n documentDownloadRenderer: DocumentDownloadCellComponent\r\n },\r\n isExternalFilterPresent: this.isExternalFilterPresent,\r\n doesExternalFilterPass: this.doesExternalFilterPass\r\n });\r\n\r\n private recruitmentMaterialsGridOptions = AgGridDefaults.getGridOptions({\r\n columnDefs: [\r\n { colId: \"deleteRow\", cellRenderer: \"deleteRowRenderer\", type: [\"deleteRow\"] },\r\n { headerName: \"Name\", field: \"draftName\", editable: x => this.getCanEdit() },\r\n {\r\n headerName: \"Draft\", field: \"draft\", type: [\"noSort\"],\r\n cellRenderer: \"documentUploadRenderer\", cellRendererParams: { contextObj: this }\r\n },\r\n { headerName: \"Version\", field: \"draftVersion\", editable: x => this.getCanEdit() },\r\n {\r\n headerName: \"Final\", field: \"final\", type: [\"noSort\"],\r\n cellRenderer: \"documentDownloadRenderer\", cellRendererParams: { contextObj: this }\r\n },\r\n { headerName: \"Version\", field: \"finalVersion\", type: [\"nonEditable\"] }\r\n ],\r\n frameworkComponents: {\r\n documentUploadRenderer: DocumentUploadCellComponent,\r\n deleteRowRenderer: DeleteRowComponent,\r\n documentDownloadRenderer: DocumentDownloadCellComponent\r\n },\r\n isExternalFilterPresent: this.isExternalFilterPresent,\r\n doesExternalFilterPass: this.doesExternalFilterPass\r\n });\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private researchService: ResearchService,\r\n private toastr: ToastrService,\r\n private router: Router,\r\n private modalService: NgbModal,\r\n private changeDetector: ChangeDetectorRef,\r\n private modal: NgbModal,\r\n private sharedService: SharedService) { }\r\n\r\n ngOnInit() {\r\n //pull values from the url using param name assigned in app-routing module\r\n this.loadComplete = false;\r\n this.studyExchangeId = this.route.snapshot.paramMap.get('studyId');\r\n this.siteExchangeId = this.route.snapshot.paramMap.get('siteId');\r\n this.researchService.getSiteDetails(this.studyExchangeId, this.siteExchangeId)\r\n .subscribe(\r\n (site) => {\r\n this.loadComplete = true;\r\n this.saving = false;\r\n this.sending = false;\r\n this.site = site;\r\n this.setPermissions();\r\n this.applyPermissionsToGrids();\r\n //Need at least one for the ngFor loop to render an input\r\n if (this.site.piProxies == null || this.site.piProxies.length == 0) {\r\n this.site.piProxies = [{\r\n firstName: \"\",\r\n lastName: \"\",\r\n email: \"\"\r\n }];\r\n }\r\n this.originalSite = ObjectUtils.deepCopy(this.site);\r\n this.showRequestedTab();\r\n this.RefreshGridView();\r\n });\r\n }\r\n\r\n //use canDeactivate as a handler for the window.beforeUnload event\r\n @HostListener('window:beforeunload')\r\n canDeactivate() : boolean {\r\n //if changes made, return false to trigger a warning/confirmation dialog via pending-changes.guard\r\n let diffObj = ObjectUtils.getDifference(this.originalSite, this.site);\r\n return (Object.keys(diffObj).length == 0);\r\n }\r\n\r\n setPermissions(){\r\n //booleans for hide/show of page content\r\n switch(this.site.status){\r\n case SiteStatus.active:\r\n this.canCR = true; //fall through from most permissive to least permissive states\r\n case SiteStatus.inactive:\r\n case SiteStatus.closed:\r\n case SiteStatus.suspended:\r\n case SiteStatus.terminated:\r\n this.canMod = true;\r\n this.canRni = true;\r\n case SiteStatus.pending:\r\n case SiteStatus.discarded:\r\n this.canReview = true;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n //in draft you can save or send. In pending, you can only send.\r\n this.canSave = this.site.status == SiteStatus.draft;\r\n\r\n //List of editable states \r\n switch(this.site.status){\r\n case SiteStatus.draft:\r\n case SiteStatus.pending:\r\n this.canEdit = true;\r\n break;\r\n default:\r\n this.canEdit = false;\r\n break;\r\n }\r\n }\r\n\r\n applyPermissionsToGrids(){\r\n if (this.fundingSourceGridOptions.columnApi) {\r\n this.fundingSourceGridOptions.columnApi.setColumnVisible(\"deleteRow\", this.canEdit);\r\n }\r\n if (this.attachmentGridOptions.columnApi) {\r\n this.attachmentGridOptions.columnApi.setColumnVisible(\"deleteRow\", this.canEdit);\r\n }\r\n if(this.consentFormsGridOptions.columnApi){\r\n this.consentFormsGridOptions.columnApi.setColumnVisible(\"deleteRow\", this.canEdit);\r\n }\r\n if(this.recruitmentMaterialsGridOptions.columnApi){\r\n this.recruitmentMaterialsGridOptions.columnApi.setColumnVisible(\"deleteRow\", this.canEdit);\r\n }\r\n }\r\n\r\n studyFundingSourceGridOptions = AgGridDefaults.getGridOptions({\r\n columnDefs: [\r\n { headerName: \"Name\", field: \"name\"},\r\n {\r\n headerName: \"Draft\", field: \"documents\", autoHeight: true, type: [\"noSort\"],\r\n cellRenderer: \"documentDownloadListRenderer\"\r\n },\r\n {\r\n headerName: \"Final\", field: \"finalDocuments\", autoHeight: true, type: [\"noSort\"],\r\n cellRenderer: \"documentDownloadListRenderer\"\r\n }\r\n ],\r\n frameworkComponents: {\r\n documentDownloadListRenderer: DocumentDownloadListCellComponent\r\n }\r\n });\r\n\r\n showRequestedTab(){\r\n /*make the change detector realize the viewChild named tabs is present on the page\r\n alternative: run this under a setTimeout() and hope you win the race condition\r\n alternate alternative: set up an observable to combine two observables with combineLatest() \r\n to observe when both the data is loaded and the viewChild initialized, which means using a setter on the viewChild which triggers .next()\r\n but don't forget to unsubscribe if you go that route\r\n */\r\n this.changeDetector.detectChanges();\r\n\r\n let frag = this.route.snapshot.fragment;\r\n if(frag){\r\n this.tabs.select(frag);\r\n window.location.hash = \"\";\r\n }\r\n }\r\n\r\n // Click events\r\n onSaveDraft() {\r\n this.submitAction = \"save\";\r\n }\r\n onSaveAndSend() {\r\n this.submitAction = \"saveAndSend\";\r\n }\r\n\r\n // POST\r\n onSubmit() {\r\n if (this.submitAction === \"save\") {\r\n this.onSave();\r\n } else if (this.submitAction === \"saveAndSend\") {\r\n this.onSendToSirb();\r\n }\r\n }\r\n\r\n onSave() {\r\n if (this.validatePage()) {\r\n this.saving = true;\r\n this.researchService.updateSite(this.studyExchangeId, this.siteExchangeId, this.site)\r\n .subscribe(() => {\r\n this.ngOnInit();\r\n this.toastr.success(\"Changes saved\", \"Success!\");\r\n });\r\n }\r\n }\r\n\r\n onSendToSirb() {\r\n if(this.validatePage()){\r\n //Send data to the modal\r\n this.sharedService.studyExchangeId = this.studyExchangeId;\r\n this.sharedService.siteExchangeId = this.siteExchangeId;\r\n this.sharedService.site = this.site;\r\n //Open the modal\r\n this.modal.open(NotifyDialogComponent, this.modalOptions).result.then((result)=>{\r\n //Check closing reason\r\n if(result === \"Data sent\"){\r\n //Reload the component to get the new data.\r\n this.ngOnInit();\r\n }\r\n });\r\n }\r\n }\r\n\r\n onClose() {\r\n this.router.navigate(['/research/studies']);\r\n }\r\n\r\n validatePage() : boolean {\r\n this.pageValidationErrors = [];\r\n \r\n //#region other attachment validation: draft doc required, no blank rows\r\n let triggeredAttachmentDraftMessage = false;\r\n let autoPopulatedDraftName =false;\r\n let blankAttachments = [];\r\n for(let att of this.site.attachments){\r\n if (!att.delete) {\r\n //if anything filled out\r\n if (att.id || att.category || att.draftVersion || att.draftName || att.finalVersion || att.finalName) {\r\n if (att.draft == null || att.draft.fileName == null || att.draft.fileName == \"\") { //and the draft file is missing\r\n if (!triggeredAttachmentDraftMessage) {\r\n this.pageValidationErrors.push(\"A Draft file must be selected for each Other attachments\");\r\n triggeredAttachmentDraftMessage = true;\r\n continue;\r\n }\r\n }\r\n } else if (att.draft && att.draft.fileName && att.draft.fileName !==\"\") { // Draft is filled out \r\n // Auto-populate the draftName with filename for display, though service end point handle it.\r\n autoPopulatedDraftName=true; \r\n att.draftName = att.draft.fileName; \r\n continue;\r\n } \r\n else { //nothing filled out, go ahead and just remove it\r\n //except we cant remove it now or we'll mess up the iterator. Remove them all when we're done here.\r\n blankAttachments.push(att);\r\n }\r\n }\r\n //else deleted, do nothing to validate it, the server will remove it\r\n }\r\n for(let blank of blankAttachments){\r\n this.site.attachments.splice(this.site.attachments.indexOf(blank), 1);\r\n }\r\n //if we removed rows from the grid or auto populated name, instruct it to refresh the display.\r\n if(blankAttachments.length > 0 || autoPopulatedDraftName){\r\n this.attachmentGridOptions.api.setRowData(this.site.attachments);\r\n this.attachmentGridOptions.setGridColumnWidths();\r\n }\r\n //#endregion\r\n\r\n //#region ConsentForms validation: draft doc required, no blank rows\r\n let triggeredConsentFormsDraftMessage = false;\r\n let blankConsentForms = [];\r\n autoPopulatedDraftName = false;\r\n for (let att of this.site.consentForms) {\r\n if (!att.delete) {\r\n if (att.id || att.draftVersion || att.draftName || att.finalVersion || att.finalName) {\r\n if (att.draft == null || att.draft.fileName == null || att.draft.fileName == \"\") {\r\n if (!triggeredConsentFormsDraftMessage) {\r\n this.pageValidationErrors.push(\"A Draft file must be selected for each Consent forms\");\r\n triggeredConsentFormsDraftMessage = true;\r\n continue;\r\n }\r\n }\r\n } else if (att.draft && att.draft.fileName && att.draft.fileName !==\"\") { \r\n autoPopulatedDraftName = true;\r\n att.draftName = att.draft.fileName;\r\n continue;\r\n }\r\n else {\r\n blankConsentForms.push(att);\r\n }\r\n }\r\n }\r\n for(let blank of blankConsentForms){\r\n this.site.consentForms.splice(this.site.consentForms.indexOf(blank), 1);\r\n }\r\n //if we removed rows from the grid, instruct it to refresh the display.\r\n if (blankConsentForms.length > 0 || autoPopulatedDraftName) {\r\n this.consentFormsGridOptions.api.setRowData(this.site.consentForms);\r\n this.consentFormsGridOptions.setGridColumnWidths();\r\n }\r\n //#endregion\r\n\r\n //#region RecruitmentMaterials: draft doc required, no blank rows\r\n let triggeredRecruitmentDraftMessage = false;\r\n let blankRecruitmentMaterials = [];\r\n autoPopulatedDraftName = false;\r\n for (let att of this.site.recruitmentMaterials) {\r\n if (!att.delete) {\r\n if (att.id || att.draftVersion || att.draftName || att.finalVersion || att.finalName) {\r\n if (att.draft == null || att.draft.fileName == null || att.draft.fileName == \"\") {\r\n if (!triggeredRecruitmentDraftMessage) {\r\n this.pageValidationErrors.push(\"A Draft file must be selected for each Recruitment materials\");\r\n triggeredRecruitmentDraftMessage = true;\r\n continue;\r\n }\r\n }\r\n } else if (att.draft && att.draft.fileName && att.draft.fileName !==\"\") { \r\n autoPopulatedDraftName = true;\r\n att.draftName = att.draft.fileName;\r\n continue;\r\n }\r\n else {\r\n blankRecruitmentMaterials.push(att);\r\n }\r\n }\r\n }\r\n for(let blank of blankRecruitmentMaterials){\r\n this.site.recruitmentMaterials.splice(this.site.recruitmentMaterials.indexOf(blank), 1);\r\n }\r\n //if we removed rows from the grid, instruct it to refresh the display.\r\n if (blankRecruitmentMaterials.length > 0 || autoPopulatedDraftName) {\r\n this.recruitmentMaterialsGridOptions.api.setRowData(this.site.recruitmentMaterials);\r\n this.recruitmentMaterialsGridOptions.setGridColumnWidths();\r\n }\r\n //#endregion\r\n\r\n //#region funding source validation: no blank rows\r\n let blankFundingSources = [];\r\n for(let fs of this.site.fundingSources){\r\n if(!fs.delete){\r\n //if nothing filled out and no id, then its a blank, new row. Remove that junk.\r\n //again, save the removal until the end to avoid angering the iterator\r\n if(!(fs.id || fs.name || (fs.documents && fs.documents.length > 0))){\r\n blankFundingSources.push(fs);\r\n }\r\n }\r\n }\r\n\r\n for(let blank of blankFundingSources){\r\n this.site.fundingSources.splice(this.site.fundingSources.indexOf(blank), 1);\r\n }\r\n if (blankFundingSources.length > 0) {\r\n this.fundingSourceGridOptions.api.setRowData(this.site.fundingSources);\r\n this.fundingSourceGridOptions.setGridColumnWidths();\r\n }\r\n //#endregion\r\n\r\n if (triggeredAttachmentDraftMessage || triggeredConsentFormsDraftMessage || triggeredRecruitmentDraftMessage) {\r\n this.tabs.select('attachment-tab');\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n //always-on filtering of which grid rows are visible\r\n isExternalFilterPresent(): boolean {\r\n return true;\r\n }\r\n\r\n //test funding source row to determine if it should be visible in the grid\r\n doesExternalFilterPass(node) {\r\n return !node.data.delete;\r\n }\r\n\r\n //must use a function to achieve dynamic editability in ag-grid cells\r\n getCanEdit(){\r\n return this.canEdit;\r\n }\r\n\r\n //add new row to site.fundingSources, then inform the grid that there's been an update\r\n addFundingSourceRow() {\r\n let newRow = {\r\n delete: false,\r\n id: \"\",\r\n name: \"\",\r\n documents: [],\r\n finalDocuments: [],\r\n fundingSourceInitialSiteId: \"\"\r\n };\r\n\r\n this.site.fundingSources.push(newRow);\r\n this.fundingSourceGridOptions.api.updateRowData({\r\n add: [newRow]\r\n });\r\n this.fundingSourceGridOptions.api.startEditingCell({ //open the editor for the first editable cell in the row\r\n rowIndex: this.site.fundingSources.length-1,\r\n colKey: 'name'\r\n });\r\n }\r\n\r\n //add new row to site.Attachments, then inform the grid that there's been an update\r\n addAttachmentRow() {\r\n let newRow = {\r\n id: \"\",\r\n category: \"\",\r\n delete: false,\r\n draft: {\r\n studyId: this.studyExchangeId,\r\n itemId: \"\",\r\n fileName: \"\",\r\n fileToUpload: null,\r\n fileContent: \"\"\r\n },\r\n draftName: \"\",\r\n draftVersion: \"\",\r\n final: {\r\n studyId: this.studyExchangeId,\r\n itemId: \"\",\r\n fileName: \"\",\r\n fileToUpload: null,\r\n fileContent: \"\"\r\n },\r\n finalName: \"\",\r\n finalVersion: \"\"\r\n }\r\n\r\n this.site.attachments.push(newRow);\r\n this.attachmentGridOptions.api.updateRowData({\r\n add: [newRow]\r\n });\r\n this.attachmentGridOptions.api.startEditingCell({ //open the editor for the first editable cell in the row\r\n rowIndex: this.site.attachments.length-1,\r\n colKey: 'draftName'\r\n });\r\n }\r\n\r\n //add new row to site.Attachments, then inform the grid that there's been an update\r\n addConsentFormsRow() {\r\n let newRow = {\r\n id: \"\",\r\n category: \"\",\r\n delete: false,\r\n draft: {\r\n studyId: this.studyExchangeId,\r\n itemId: \"\",\r\n fileName: \"\",\r\n fileToUpload: null,\r\n fileContent: \"\"\r\n },\r\n draftName: \"\",\r\n draftVersion: \"\",\r\n final: {\r\n studyId: this.studyExchangeId,\r\n itemId: \"\",\r\n fileName: \"\",\r\n fileToUpload: null,\r\n fileContent: \"\"\r\n },\r\n finalName: \"\",\r\n finalVersion: \"\"\r\n }\r\n\r\n this.site.consentForms.push(newRow);\r\n this.consentFormsGridOptions.api.updateRowData({\r\n add: [newRow]\r\n });\r\n this.consentFormsGridOptions.api.startEditingCell({ //open the editor for the first editable cell in the row\r\n rowIndex: this.site.consentForms.length-1,\r\n colKey: 'draftName'\r\n });\r\n }\r\n\r\n addRecruitmentMaterialsRow() {\r\n let newRow = {\r\n id: \"\",\r\n category: \"\",\r\n delete: false,\r\n draft: {\r\n studyId: this.studyExchangeId,\r\n itemId: \"\",\r\n fileName: \"\",\r\n fileToUpload: null,\r\n fileContent: \"\"\r\n },\r\n draftName: \"\",\r\n draftVersion: \"\",\r\n final: {\r\n studyId: this.studyExchangeId,\r\n itemId: \"\",\r\n fileName: \"\",\r\n fileToUpload: null,\r\n fileContent: \"\"\r\n },\r\n finalName: \"\",\r\n finalVersion: \"\"\r\n }\r\n\r\n this.site.recruitmentMaterials.push(newRow);\r\n this.recruitmentMaterialsGridOptions.api.updateRowData({\r\n add: [newRow]\r\n });\r\n this.recruitmentMaterialsGridOptions.api.startEditingCell({ //open the editor for the first editable cell in the row\r\n rowIndex: this.site.recruitmentMaterials.length-1,\r\n colKey: 'draftName'\r\n });\r\n }\r\n\r\n//display the funding sources of the initial study (local funding sources)\r\n\r\nonStudyFundingSourceGridReady(params) {\r\n this.studyFundingSourceGridOptions.api = params.api;\r\n this.studyFundingSourceGridOptions.columnApi = params.columnApi;\r\n if (this.site != null) {\r\n this.studyFundingSourceGridOptions.api.setRowData(this.site.studyFundingSources);\r\n this.studyFundingSourceGridOptions.setGridColumnWidths();\r\n }\r\n}\r\n\r\n\r\n //When grid is displayed following successful retrieval of site data, connect grid data source\r\n onFundingSourceGridReady(params) {\r\n this.fundingSourceGridOptions.api = params.api;\r\n this.fundingSourceGridOptions.columnApi = params.columnApi;\r\n this.applyPermissionsToGrids();\r\n if (this.site != null) {\r\n this.fundingSourceGridOptions.api.setRowData(this.site.fundingSources);\r\n this.fundingSourceGridOptions.setGridColumnWidths();\r\n }\r\n }\r\n\r\n onRniGridReady(params) {\r\n this.rniGridOptions.api = params.api;\r\n this.rniGridOptions.columnApi = params.columnApi;\r\n if (this.site != null) {\r\n this.rniGridOptions.api.setRowData(this.site.rni);\r\n this.rniGridOptions.setGridColumnWidths();\r\n }\r\n }\r\n\r\n onModGridReady(params) {\r\n this.modGridOptions.api = params.api;\r\n this.modGridOptions.columnApi = params.columnApi;\r\n if (this.site != null) {\r\n this.modGridOptions.api.setRowData(this.site.mods);\r\n this.modGridOptions.setGridColumnWidths();\r\n }\r\n }\r\n\r\n onAttachmentGridReady(params) {\r\n this.attachmentGridOptions.api = params.api;\r\n this.attachmentGridOptions.columnApi = params.columnApi;\r\n this.applyPermissionsToGrids();\r\n if (this.site != null) {\r\n this.attachmentGridOptions.api.setRowData(this.site.attachments);\r\n this.attachmentGridOptions.setGridColumnWidths();\r\n }\r\n }\r\n\r\n onConsentFormsGridReady(params) {\r\n this.consentFormsGridOptions.api = params.api;\r\n this.consentFormsGridOptions.columnApi = params.columnApi;\r\n this.applyPermissionsToGrids();\r\n if (this.site != null) {\r\n this.consentFormsGridOptions.api.setRowData(this.site.consentForms);\r\n this.consentFormsGridOptions.setGridColumnWidths();\r\n }\r\n }\r\n\r\n onRecruitmentMaterialsReady(params) {\r\n this.recruitmentMaterialsGridOptions.api = params.api;\r\n this.recruitmentMaterialsGridOptions.columnApi = params.columnApi;\r\n this.applyPermissionsToGrids();\r\n if (this.site != null) {\r\n this.recruitmentMaterialsGridOptions.api.setRowData(this.site.recruitmentMaterials);\r\n this.recruitmentMaterialsGridOptions.setGridColumnWidths();\r\n }\r\n }\r\n\r\n onClickShowCR(){\r\n const modalRef = this.modalService.open(ContinuingReviewComponent, { windowClass: \"modal-custom-xl\" });\r\n modalRef.componentInstance.studyExchangeId = this.studyExchangeId;\r\n modalRef.componentInstance.siteExchangeId = this.siteExchangeId;\r\n }\r\n\r\n onFirstDataRendered(params, optionsObj){\r\n return AgGridDefaults.onFirstDataRendered(params, optionsObj);\r\n }\r\n\r\n // Removes the rows from the DOM and draws them again from scratch\r\n RefreshGridView() {\r\n //recreate document cellRenderer for revision upload without page refresh \r\n if (this.site != null) {\r\n if (this.consentFormsGridOptions.api) {\r\n this.consentFormsGridOptions.api.setRowData(this.site.consentForms);\r\n this.consentFormsGridOptions.api.redrawRows();\r\n }\r\n\r\n if (this.recruitmentMaterialsGridOptions.api) {\r\n this.recruitmentMaterialsGridOptions.api.setRowData(this.site.recruitmentMaterials);\r\n this.recruitmentMaterialsGridOptions.api.redrawRows();\r\n }\r\n\r\n if (this.attachmentGridOptions.api) {\r\n this.attachmentGridOptions.api.setRowData(this.site.attachments);\r\n this.attachmentGridOptions.api.redrawRows();\r\n }\r\n\r\n if (this.fundingSourceGridOptions.api) {\r\n this.fundingSourceGridOptions.api.setRowData(this.site.fundingSources);\r\n this.fundingSourceGridOptions.api.redrawRows();\r\n }\r\n }\r\n }\r\n}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Jlc2VhcmNoL3NpdGUtbW9kaWZpY2F0aW9uLWNyZWF0ZS9zaXRlLW1vZGlmaWNhdGlvbi1jcmVhdGUuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, ViewChild, HostListener } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ResearchService } from 'src/app/data-services';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Modification } from 'src/app/models/mod';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { SiteModificationEditorComponent } from '../site-modification-editor/site-modification-editor.component';\r\nimport { ComponentCanDeactivate } from 'src/app/shared';\r\n\r\n@Component({\r\n selector: 'app-site-modification-create',\r\n templateUrl: './site-modification-create.component.html',\r\n styleUrls: ['./site-modification-create.component.scss']\r\n})\r\nexport class SiteModificationCreateComponent implements OnInit, ComponentCanDeactivate {\r\n\r\n // Child refernce to indicate the service response.\r\n @ViewChild(SiteModificationEditorComponent) modEditor:SiteModificationEditorComponent;\r\n\r\n modification: Modification;\r\n siteExchangeId: string;\r\n studyExchangeId: string; \r\n allowNavigation: boolean = false;\r\n\r\n constructor(private route: ActivatedRoute,\r\n private researchService: ResearchService,\r\n private toastr: ToastrService,\r\n private router: Router) { }\r\n\r\n ngOnInit() {\r\n //pull values from the url using param name assigned in app-routing module\r\n this.studyExchangeId = this.route.snapshot.paramMap.get('studyId');\r\n this.siteExchangeId = this.route.snapshot.paramMap.get('siteId');\r\n\r\n this.researchService.getNewModification(this.studyExchangeId)\r\n .subscribe((modification) => {\r\n this.modification = modification;\r\n });\r\n }\r\n\r\n OnSave(modification: Modification) {\r\n this.researchService.createModification(this.studyExchangeId, modification)\r\n .pipe(finalize(() => {\r\n this.modEditor.submitted();\r\n }))\r\n .subscribe((response: any) => {\r\n if(\"undefined\" !== typeof response && \"undefined\" !== typeof response.modExchangeId){\r\n let parts = response.modExchangeId.split('/');\r\n if(parts.length > 0){\r\n let partialModId = parts[parts.length-1];\r\n this.toastr.success(\"Changes saved\", \"Success!\");\r\n this.allowNavigation = true;\r\n this.router.navigate(['/research/studies', this.studyExchangeId, 'sites', this.siteExchangeId, 'mod', partialModId]);\r\n return;\r\n }\r\n }//else undefined or zero length\r\n this.toastr.error(\"Error navigating to the new modification, returning to Site Details\", \"Error\");\r\n console.log(\"Error: response.modExchangeId missing or invalid. Response = \" + JSON.stringify(response));\r\n this.router.navigate(['/research/studies', this.studyExchangeId, 'sites', this.siteExchangeId]);\r\n });\r\n }\r\n\r\n //use canDeactivate as a handler for the window.beforeUnload event\r\n @HostListener('window:beforeunload')\r\n canDeactivate(){\r\n return this.allowNavigation;\r\n }\r\n}\r\n\r\n\r\n","module.exports = \"

\\r\\n Site Modification: {{modification.name}}\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{modification.status}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
0\\\">\\r\\n
\\r\\n
\\r\\n {{pve}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Currently document upload file sizes are limited to 50 MB each.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Consent forms:\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Recruitment materials:\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Other attachments:\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n Currently document upload file sizes are limited to 50 MB each.\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"span.status {\\n width: 100%;\\n padding: 6px 12px 6px 12px;\\n text-align: center;\\n border-radius: 0.25rem;\\n background-color: lightgreen; }\\n\\ntextarea {\\n height: 206px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcmVzZWFyY2gvc2l0ZS1tb2RpZmljYXRpb24tZWRpdG9yL0Q6XFxKZW5raW5zXFx3b3Jrc3BhY2VcXEV4Y2hhbmdlVUktQWRob2NcXHNyY1xcSHVyb24uRXhjaGFuZ2UuVUkvc3JjXFxhcHBcXHJlc2VhcmNoXFxzaXRlLW1vZGlmaWNhdGlvbi1lZGl0b3JcXHNpdGUtbW9kaWZpY2F0aW9uLWVkaXRvci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLFdBQVc7RUFDWCwwQkFBMEI7RUFDMUIsa0JBQWtCO0VBQ2xCLHNCQUFzQjtFQUN0Qiw0QkFBNEIsRUFBQTs7QUFHaEM7RUFFSSxhQUFhLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9yZXNlYXJjaC9zaXRlLW1vZGlmaWNhdGlvbi1lZGl0b3Ivc2l0ZS1tb2RpZmljYXRpb24tZWRpdG9yLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsic3Bhbi5zdGF0dXMge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiA2cHggMTJweCA2cHggMTJweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyZWVuO1xyXG59XHJcblxyXG50ZXh0YXJlYVxyXG57XHJcbiAgICBoZWlnaHQ6IDIwNnB4O1xyXG59Il19 */\"","import { Component, OnInit, Input, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { Site, SiteStatus } from 'src/app/models/site';\r\nimport { DeleteRowComponent, DocumentUploadListCellComponent, DocumentDownloadListCellComponent, DocumentUploadCellComponent, AgGridDefaults, DocumentDownloadCellComponent } from '../../shared';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ModEnrollmentStatus, ModSubjectNotifications, Modification, EnrollmentStatus, SubjectNotifications, ModificationStatus } from '../../models/mod';\r\nimport { UserSearchResult } from 'src/app/data-services';\r\nimport { NgbTabset, NgbModalRef, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgForm } from '@angular/forms';\r\nimport { UserSearchTypeaheadComponent } from 'src/app/users/user-search-typeahead/user-search-typeahead.component';\r\nimport { ObjectUtils } from 'src/app/shared/object-utils';\r\n\r\n@Component({\r\n selector: 'app-site-modification-editor',\r\n templateUrl: './site-modification-editor.component.html',\r\n styleUrls: ['./site-modification-editor.component.scss']\r\n})\r\nexport class SiteModificationEditorComponent implements OnInit {\r\n @ViewChild('tabs') tabs: NgbTabset;\r\n @ViewChild('modForm') modForm: NgForm;\r\n @ViewChild('typeahead') typeahead: UserSearchTypeaheadComponent;\r\n modalRef: NgbModalRef;\r\n \r\n /**\r\n * The modification, being passed on to this component from it's parent.\r\n */\r\n @Input() modification: Modification;\r\n\r\n /**\r\n * The form submit event.\r\n */\r\n @Output() submitMod = new EventEmitter();\r\n\r\n /**\r\n * The modification status\r\n */\r\n modificationStatus = ModificationStatus;\r\n\r\n studyExchangeId: string;\r\n siteExchangeId: string;\r\n site: Site;\r\n enrollmentStatus: ModEnrollmentStatus;\r\n subjectNotifications: ModSubjectNotifications;\r\n saving: boolean = false;\r\n sending: boolean = false;\r\n canEdit: boolean = true;\r\n merging: boolean = false;\r\n canReview: boolean = false;\r\n pageValidationErrors: string[] = [];\r\n private submitAction: string;\r\n\r\n //stores unaletered copy of the data for use in change detection\r\n originalModification: any;\r\n originalNotifications: any;\r\n originalEnrollment: any;\r\n\r\n //funding source grid configuration\r\n fundingSourceGridOptions = AgGridDefaults.getGridOptions({\r\n columnDefs: [\r\n { colId: \"deleteRow\", cellRenderer: \"deleteRowRenderer\", type: [\"deleteRow\"]},\r\n { headerName: \"Name\", field: \"name\", editable: x => this.getCanEdit() },\r\n {\r\n headerName: \"Draft\", field: \"documents\", editable: x => this.getCanEdit(), sortable: false, filter: false, autoHeight: true,\r\n cellEditor: \"documentUploadEditor\",\r\n cellRenderer: \"documentDownloadListRenderer\"\r\n },\r\n {\r\n headerName: \"Final\", field: \"finalDocuments\", editable: false, autoHeight: true, type: [\"noSort\"],\r\n cellRenderer: \"documentDownloadListRenderer\"\r\n }\r\n ],\r\n frameworkComponents: {\r\n documentUploadEditor: DocumentUploadListCellComponent,\r\n documentDownloadListRenderer: DocumentDownloadListCellComponent,\r\n deleteRowRenderer: DeleteRowComponent\r\n },\r\n isExternalFilterPresent: this.isExternalFilterPresent,\r\n doesExternalFilterPass: this.doesExternalFilterPass\r\n });\r\n\r\n attachmentGridOptions = AgGridDefaults.getGridOptions({\r\n columnDefs: [\r\n { colId: \"deleteRow\", cellRenderer: \"deleteRowRenderer\", type: [\"deleteRow\"] },\r\n { headerName: \"Name\", field: \"draftName\", editable: x => this.getCanEdit() },\r\n {\r\n headerName: \"Draft\", field: \"draft\", sortable: false, filter: false,\r\n cellRenderer: \"documentUploadRenderer\", cellRendererParams: { contextObj: this }\r\n },\r\n { headerName: \"Version\", field: \"draftVersion\", editable: x => this.getCanEdit() },\r\n {\r\n headerName: \"Final\", field: \"final\", sortable: false, filter: false,\r\n cellRenderer: \"documentDownloadRenderer\", cellRendererParams: { contextObj: this }\r\n },\r\n { headerName: \"Version\", field: \"finalVersion\", type: [\"nonEditable\"] }\r\n ],\r\n frameworkComponents: {\r\n documentUploadRenderer: DocumentUploadCellComponent,\r\n deleteRowRenderer: DeleteRowComponent,\r\n documentDownloadRenderer: DocumentDownloadCellComponent\r\n },\r\n isExternalFilterPresent: this.isExternalFilterPresent,\r\n doesExternalFilterPass: this.doesExternalFilterPass\r\n });\r\n\r\n private consentFormsGridOptions = AgGridDefaults.getGridOptions({\r\n columnDefs: [\r\n { colId: \"deleteRow\", cellRenderer: \"deleteRowRenderer\", type: [\"deleteRow\"] },\r\n { headerName: \"Name\", field: \"draftName\", editable: x => this.getCanEdit() },\r\n {\r\n headerName: \"Draft\", field: \"draft\", type: [\"noSort\"],\r\n cellRenderer: \"documentUploadRenderer\", cellRendererParams: { contextObj: this }\r\n },\r\n { headerName: \"Version\", field: \"draftVersion\", editable: x => this.getCanEdit() },\r\n {\r\n headerName: \"Final\", field: \"final\", type: [\"noSort\"],\r\n cellRenderer: \"documentDownloadRenderer\", cellRendererParams: { contextObj: this }\r\n },\r\n { headerName: \"Version\", field: \"finalVersion\", type: [\"nonEditable\"] }\r\n ],\r\n frameworkComponents: {\r\n documentUploadRenderer: DocumentUploadCellComponent,\r\n deleteRowRenderer: DeleteRowComponent,\r\n documentDownloadRenderer: DocumentDownloadCellComponent\r\n },\r\n isExternalFilterPresent: this.isExternalFilterPresent,\r\n doesExternalFilterPass: this.doesExternalFilterPass\r\n });\r\n\r\n private recruitmentMaterialsGridOptions = AgGridDefaults.getGridOptions({\r\n columnDefs: [\r\n { colId: \"deleteRow\", cellRenderer: \"deleteRowRenderer\", type: [\"deleteRow\"] },\r\n { headerName: \"Name\", field: \"draftName\", editable: x => this.getCanEdit() },\r\n {\r\n headerName: \"Draft\", field: \"draft\", type: [\"noSort\"],\r\n cellRenderer: \"documentUploadRenderer\", cellRendererParams: { contextObj: this }\r\n },\r\n { headerName: \"Version\", field: \"draftVersion\", editable: x => this.getCanEdit() },\r\n {\r\n headerName: \"Final\", field: \"final\", type: [\"noSort\"],\r\n cellRenderer: \"documentDownloadRenderer\", cellRendererParams: { contextObj: this }\r\n },\r\n { headerName: \"Version\", field: \"finalVersion\", type: [\"nonEditable\"] }\r\n ],\r\n frameworkComponents: {\r\n documentUploadRenderer: DocumentUploadCellComponent,\r\n deleteRowRenderer: DeleteRowComponent,\r\n documentDownloadRenderer: DocumentDownloadCellComponent\r\n },\r\n isExternalFilterPresent: this.isExternalFilterPresent,\r\n doesExternalFilterPass: this.doesExternalFilterPass\r\n });\r\n\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private modalService: NgbModal) { }\r\n\r\n ngOnInit() {\r\n //pull values from the url using param name assigned in app-routing module\r\n this.studyExchangeId = this.route.snapshot.paramMap.get('studyId');\r\n this.siteExchangeId = this.route.snapshot.paramMap.get('siteId');\r\n\r\n this.initForm(this.modification);\r\n }\r\n\r\n /**\r\n * To be called by parent component on availability of data, or within this component from ngOnInit(). Data needs to be reinitialized from\r\n * the results of a new GET following successful POST of changes, resetting to a clean state which matches the server data.\r\n */\r\n initForm(mod: Modification){\r\n this.modification = mod;\r\n this.site = this.modification.draftSite;\r\n\r\n //Add empty Person object to the PI Proxies array to provide something for our form to bind to. The array contains 0-N proxies, 0 won't work for our html template.\r\n if (this.site.piProxies == null || this.site.piProxies.length == 0) {\r\n this.site.piProxies = [{\r\n firstName: \"\",\r\n lastName: \"\",\r\n email: \"\"\r\n }];\r\n }\r\n\r\n this.ProcessEnrollmentStatusGet();\r\n this.ProcessNotificationSubjectGet();\r\n\r\n //stash an unaltered copy of the form data, completely independant from the rni and from editable form data, to use in change detection\r\n this.originalModification = ObjectUtils.deepCopy(this.modification);\r\n this.originalEnrollment = ObjectUtils.deepCopy(this.enrollmentStatus);\r\n this.originalNotifications = ObjectUtils.deepCopy(this.subjectNotifications);\r\n\r\n this.setPermissions();\r\n this.applyPermissionsToGrids();\r\n this.RefreshGridView();\r\n }\r\n\r\n setPermissions() {\r\n //Hide/show of page content\r\n if (this.modification.reviewInformation != null && this.modification.reviewInformation.correspondenceLetter != null &&\r\n this.modification.reviewInformation.correspondenceLetter.fileName != null) {\r\n this.canReview = true;\r\n }\r\n //List of editable states\r\n switch (this.modification.status) {\r\n case SiteStatus.draft:\r\n case SiteStatus.pending:\r\n this.canEdit = true;\r\n break;\r\n default:\r\n this.canEdit = false;\r\n break;\r\n }\r\n }\r\n\r\n applyPermissionsToGrids() {\r\n if (this.fundingSourceGridOptions.columnApi) {\r\n this.fundingSourceGridOptions.columnApi.setColumnVisible(\"deleteRow\", this.canEdit);\r\n }\r\n if (this.attachmentGridOptions.columnApi) {\r\n this.attachmentGridOptions.columnApi.setColumnVisible(\"deleteRow\", this.canEdit);\r\n }\r\n if(this.consentFormsGridOptions.columnApi){\r\n this.consentFormsGridOptions.columnApi.setColumnVisible(\"deleteRow\", this.canEdit);\r\n }\r\n if(this.recruitmentMaterialsGridOptions.columnApi){\r\n this.recruitmentMaterialsGridOptions.columnApi.setColumnVisible(\"deleteRow\", this.canEdit);\r\n }\r\n }\r\n\r\n // click events\r\n onSaveDraft() {\r\n this.submitAction = \"save\";\r\n }\r\n\r\n onSaveAndSend() {\r\n this.submitAction = \"saveAndSend\";\r\n }\r\n\r\n // POST\r\n onSubmit() {\r\n if (this.submitAction === \"save\") {\r\n this.onSave();\r\n } else if (this.submitAction === \"saveAndSend\") {\r\n this.onSendToSirb();\r\n }\r\n }\r\n\r\n onSendToSirb() {\r\n if(this.validatePage()){\r\n this.sending = true;\r\n this.ProcessEnrollmentStatus();\r\n this.ProcessNotificationSubject();\r\n this.modification.grantAccessToIrb = true;\r\n this.submitMod.emit(this.modification);\r\n }\r\n }\r\n\r\n onSave() {\r\n if(this.validatePage()){\r\n this.saving = true;\r\n this.ProcessEnrollmentStatus();\r\n this.ProcessNotificationSubject();\r\n this.modification.grantAccessToIrb = false;\r\n this.submitMod.emit(this.modification);\r\n }\r\n }\r\n\r\n onClose() {\r\n this.router.navigate(['/research/studies', this.studyExchangeId, 'sites', this.siteExchangeId], { fragment: 'mod-tab' });\r\n }\r\n\r\n //page validation function to capture errors in grid data entry or perform other delayed validation.\r\n //Don't use this for simple input fields which are always visible, use reactive form validators instead\r\n validatePage(): boolean {\r\n this.pageValidationErrors = [];\r\n //#region attachment validation: draft doc required, no blank rows\r\n let triggeredAttachmentDraftMessage = false;\r\n let autoPopulatedDraftName = false;\r\n let blankAttachments = [];\r\n for (let att of this.site.attachments) {\r\n if (!att.delete) {\r\n //if anything filled out\r\n if (att.id || att.category || att.draftVersion || att.draftName || att.finalVersion || att.finalName) {\r\n if (att.draft == null || att.draft.fileName == null || att.draft.fileName == \"\") { //and the draft file is missing\r\n if (!triggeredAttachmentDraftMessage) {\r\n this.pageValidationErrors.push(\"A Draft file must be selected for each Attachment\");\r\n triggeredAttachmentDraftMessage = true;\r\n continue;\r\n }\r\n }\r\n } else if (att.draft && att.draft.fileName && att.draft.fileName !==\"\") { // Draft is filled out \r\n // Auto-populate the draftName with filename for display, though service end point handle it.\r\n autoPopulatedDraftName = true;\r\n att.draftName = att.draft.fileName;\r\n continue;\r\n } \r\n else { //nothing filled out, go ahead and just remove it\r\n //except we cant remove it now or we'll mess up the iterator. Remove them all when we're done here.\r\n blankAttachments.push(att);\r\n }\r\n }\r\n //else deleted, do nothing to validate it, the server will remove it\r\n }\r\n for (let blank of blankAttachments) {\r\n this.site.attachments.splice(this.site.attachments.indexOf(blank), 1);\r\n }\r\n //if we removed rows from the grid, instruct it to refresh the display.\r\n if (blankAttachments.length > 0 || autoPopulatedDraftName) {\r\n this.attachmentGridOptions.api.setRowData(this.site.attachments);\r\n this.attachmentGridOptions.setGridColumnWidths();\r\n }\r\n //#endregion\r\n //#region ConsentForms validation: draft doc required, no blank rows\r\n let triggeredConsentFormsDraftMessage = false;\r\n let blankConsentForms = [];\r\n autoPopulatedDraftName = false;\r\n for(let att of this.site.consentForms){\r\n if(!att.delete){\r\n if (att.id || att.draftVersion || att.draftName || att.finalVersion || att.finalName){\r\n if(att.draft == null || att.draft.fileName == null || att.draft.fileName == \"\"){ \r\n if(!triggeredConsentFormsDraftMessage){\r\n this.pageValidationErrors.push(\"A Draft file must be selected for each Consent forms\");\r\n triggeredConsentFormsDraftMessage = true;\r\n continue;\r\n }\r\n }\r\n } else if (att.draft && att.draft.fileName && att.draft.fileName !==\"\") { \r\n autoPopulatedDraftName = true;\r\n att.draftName = att.draft.fileName;\r\n continue;\r\n } \r\n else{\r\n blankConsentForms.push(att);\r\n }\r\n }\r\n }\r\n for(let blank of blankConsentForms){\r\n this.site.consentForms.splice(this.site.consentForms.indexOf(blank), 1);\r\n }\r\n //if we removed rows from the grid, instruct it to refresh the display.\r\n if (blankConsentForms.length > 0 || autoPopulatedDraftName) {\r\n this.consentFormsGridOptions.api.setRowData(this.site.consentForms);\r\n this.consentFormsGridOptions.setGridColumnWidths();\r\n }\r\n //#endregion\r\n\r\n //#region RecruitmentMaterials: draft doc required, no blank rows\r\n let triggeredRecruitmentDraftMessage = false;\r\n let blankRecruitmentMaterials = [];\r\n autoPopulatedDraftName = false;\r\n for(let att of this.site.recruitmentMaterials){\r\n if(!att.delete){\r\n if (att.id || att.draftVersion || att.draftName || att.finalVersion || att.finalName){\r\n if(att.draft == null || att.draft.fileName == null || att.draft.fileName == \"\"){ \r\n if(!triggeredRecruitmentDraftMessage){\r\n this.pageValidationErrors.push(\"A Draft file must be selected for each Recruitment materials\");\r\n triggeredRecruitmentDraftMessage = true;\r\n continue;\r\n }\r\n }\r\n } else if (att.draft && att.draft.fileName && att.draft.fileName !==\"\") { \r\n autoPopulatedDraftName = true;\r\n att.draftName = att.draft.fileName;\r\n continue;\r\n } \r\n else{\r\n blankRecruitmentMaterials.push(att);\r\n }\r\n }\r\n }\r\n for(let blank of blankRecruitmentMaterials){\r\n this.site.recruitmentMaterials.splice(this.site.recruitmentMaterials.indexOf(blank), 1);\r\n }\r\n //if we removed rows from the grid, instruct it to refresh the display.\r\n if (blankRecruitmentMaterials.length > 0 || autoPopulatedDraftName) {\r\n this.recruitmentMaterialsGridOptions.api.setRowData(this.site.recruitmentMaterials);\r\n this.recruitmentMaterialsGridOptions.setGridColumnWidths();\r\n }\r\n //#endregion\r\n\r\n //#region funding source validation: no blank rows\r\n let blankFundingSources = [];\r\n for (let fs of this.site.fundingSources) {\r\n if (!fs.delete) {\r\n //if nothing filled out and no id, then its a blank, new row. Remove that junk.\r\n //again, save the removal until the end to avoid angering the iterator\r\n if (!(fs.id || fs.name || (fs.documents && fs.documents.length > 0))) {\r\n blankFundingSources.push(fs);\r\n }\r\n }\r\n }\r\n\r\n for (let blank of blankFundingSources) {\r\n this.site.fundingSources.splice(this.site.fundingSources.indexOf(blank), 1);\r\n }\r\n if (blankFundingSources.length > 0) {\r\n this.fundingSourceGridOptions.api.setRowData(this.site.fundingSources);\r\n this.fundingSourceGridOptions.setGridColumnWidths();\r\n }\r\n //#endregion\r\n\r\n if (triggeredAttachmentDraftMessage || triggeredConsentFormsDraftMessage || triggeredRecruitmentDraftMessage) {\r\n this.tabs.select('attachment-tab');\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n ProcessEnrollmentStatusGet() {\r\n\r\n this.enrollmentStatus = {\r\n NONE_ENROLLED: false,\r\n CURRENT_ENROLLED: false,\r\n ENROLLMENT_CLOSED: false,\r\n INTERVENTIONS_COMPLETED: false,\r\n INFO_COLLECTION_COMPLETE: false\r\n }\r\n\r\n for (var enrollment of this.modification.enrollmentStatus) {\r\n switch (enrollment) {\r\n case EnrollmentStatus.NONE_ENROLLED:\r\n this.enrollmentStatus.NONE_ENROLLED = true;\r\n break;\r\n case EnrollmentStatus.CURRENT_ENROLLED:\r\n this.enrollmentStatus.CURRENT_ENROLLED = true;\r\n break;\r\n case EnrollmentStatus.ENROLLMENT_CLOSED:\r\n this.enrollmentStatus.ENROLLMENT_CLOSED = true;\r\n break;\r\n case EnrollmentStatus.INTERVENTIONS_COMPLETED:\r\n this.enrollmentStatus.INTERVENTIONS_COMPLETED = true;\r\n break;\r\n case EnrollmentStatus.INFO_COLLECTION_COMPLETE:\r\n this.enrollmentStatus.INFO_COLLECTION_COMPLETE = true;\r\n break;\r\n default:\r\n }\r\n }\r\n }\r\n\r\n ProcessNotificationSubjectGet() {\r\n\r\n this.subjectNotifications = {\r\n CURRENT_SUBJECTS: false,\r\n FORMER_SUBJECTS: false\r\n }\r\n\r\n for (var subject of this.modification.subjectNotifications) {\r\n switch (subject) {\r\n case SubjectNotifications.CURRENT_SUBJECTS:\r\n this.subjectNotifications.CURRENT_SUBJECTS = true;\r\n break;\r\n case SubjectNotifications.FORMER_SUBJECTS:\r\n this.subjectNotifications.FORMER_SUBJECTS = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n //POST\r\n ProcessEnrollmentStatus() {\r\n\r\n this.modification.enrollmentStatus = [];\r\n if (this.enrollmentStatus.CURRENT_ENROLLED) {\r\n this.modification.enrollmentStatus.push(EnrollmentStatus.CURRENT_ENROLLED);\r\n }\r\n if (this.enrollmentStatus.NONE_ENROLLED) {\r\n this.modification.enrollmentStatus.push(EnrollmentStatus.NONE_ENROLLED);\r\n }\r\n if (this.enrollmentStatus.ENROLLMENT_CLOSED) {\r\n this.modification.enrollmentStatus.push(EnrollmentStatus.ENROLLMENT_CLOSED);\r\n }\r\n if (this.enrollmentStatus.INFO_COLLECTION_COMPLETE) {\r\n this.modification.enrollmentStatus.push(EnrollmentStatus.INFO_COLLECTION_COMPLETE);\r\n }\r\n if (this.enrollmentStatus.INTERVENTIONS_COMPLETED) {\r\n this.modification.enrollmentStatus.push(EnrollmentStatus.INTERVENTIONS_COMPLETED);\r\n }\r\n\r\n }\r\n\r\n //POST\r\n ProcessNotificationSubject() {\r\n\r\n this.modification.subjectNotifications = [];\r\n if (this.subjectNotifications.CURRENT_SUBJECTS) {\r\n this.modification.subjectNotifications.push(SubjectNotifications.CURRENT_SUBJECTS);\r\n }\r\n if (this.subjectNotifications.FORMER_SUBJECTS) {\r\n this.modification.subjectNotifications.push(SubjectNotifications.FORMER_SUBJECTS);\r\n }\r\n }\r\n\r\n //add new row to site.fundingSources, then inform the grid that there's been an update\r\n addFundingSourceRow() {\r\n let newRow = {\r\n delete: false,\r\n id: \"\",\r\n name: \"\",\r\n documents: [],\r\n finalDocuments: [],\r\n fundingSourceInitialSiteId: \"\"\r\n };\r\n\r\n this.site.fundingSources.push(newRow);\r\n this.fundingSourceGridOptions.api.updateRowData({\r\n add: [newRow]\r\n });\r\n this.fundingSourceGridOptions.api.startEditingCell({ //open the editor for the first editable cell in the row\r\n rowIndex: this.site.fundingSources.length - 1,\r\n colKey: 'name'\r\n });\r\n }\r\n\r\n //add new row to site.Attachments, then inform the grid that there's been an update\r\n addAttachmentRow() {\r\n let newRow = {\r\n id: \"\",\r\n category: \"\",\r\n delete: false,\r\n draft: {\r\n studyId: this.studyExchangeId,\r\n itemId: \"\",\r\n fileName: \"\",\r\n fileToUpload: null,\r\n fileContent: \"\"\r\n },\r\n draftName: \"\",\r\n draftVersion: \"\",\r\n final: {\r\n studyId: this.studyExchangeId,\r\n itemId: \"\",\r\n fileName: \"\",\r\n fileToUpload: null,\r\n fileContent: \"\"\r\n },\r\n finalName: \"\",\r\n finalVersion: \"\"\r\n }\r\n\r\n this.site.attachments.push(newRow);\r\n this.attachmentGridOptions.api.updateRowData({\r\n add: [newRow]\r\n });\r\n this.attachmentGridOptions.api.startEditingCell({ //open the editor for the first editable cell in the row\r\n rowIndex: this.site.attachments.length - 1,\r\n colKey: 'draftName'\r\n });\r\n }\r\n\r\n //add new row to site.consentForms, then inform the grid that there's been an update\r\n addConsentFormsRow() {\r\n let newRow = {\r\n id: \"\",\r\n category: \"\",\r\n delete: false,\r\n draft: {\r\n studyId: this.studyExchangeId,\r\n itemId: \"\",\r\n fileName: \"\",\r\n fileToUpload: null,\r\n fileContent: \"\"\r\n },\r\n draftName: \"\",\r\n draftVersion: \"\",\r\n final: {\r\n studyId: this.studyExchangeId,\r\n itemId: \"\",\r\n fileName: \"\",\r\n fileToUpload: null,\r\n fileContent: \"\"\r\n },\r\n finalName: \"\",\r\n finalVersion: \"\"\r\n }\r\n\r\n this.site.consentForms.push(newRow);\r\n this.consentFormsGridOptions.api.updateRowData({\r\n add: [newRow]\r\n });\r\n this.consentFormsGridOptions.api.startEditingCell({ //open the editor for the first editable cell in the row\r\n rowIndex: this.site.consentForms.length-1,\r\n colKey: 'draftName'\r\n });\r\n }\r\n\r\n //add new row to site.recruitmentMaterials, then inform the grid that there's been an update\r\n addRecruitmentMaterialsRow() {\r\n let newRow = {\r\n id: \"\",\r\n category: \"\",\r\n delete: false,\r\n draft: {\r\n studyId: this.studyExchangeId,\r\n itemId: \"\",\r\n fileName: \"\",\r\n fileToUpload: null,\r\n fileContent: \"\"\r\n },\r\n draftName: \"\",\r\n draftVersion: \"\",\r\n final: {\r\n studyId: this.studyExchangeId,\r\n itemId: \"\",\r\n fileName: \"\",\r\n fileToUpload: null,\r\n fileContent: \"\"\r\n },\r\n finalName: \"\",\r\n finalVersion: \"\"\r\n }\r\n\r\n this.site.recruitmentMaterials.push(newRow);\r\n this.recruitmentMaterialsGridOptions.api.updateRowData({\r\n add: [newRow]\r\n });\r\n this.recruitmentMaterialsGridOptions.api.startEditingCell({ //open the editor for the first editable cell in the row\r\n rowIndex: this.site.recruitmentMaterials.length-1,\r\n colKey: 'draftName'\r\n });\r\n }\r\n\r\n //When grid is displayed following successful retrieval of site data, connect grid data source\r\n onFundingSourceGridReady(params) {\r\n this.fundingSourceGridOptions.api = params.api;\r\n this.fundingSourceGridOptions.columnApi = params.columnApi;\r\n this.applyPermissionsToGrids();\r\n if (this.site != null) {\r\n for (let fs of this.site.fundingSources) {\r\n if (fs.documents == null) {\r\n fs.documents = [];\r\n }\r\n }\r\n this.fundingSourceGridOptions.api.setRowData(this.site.fundingSources);\r\n this.fundingSourceGridOptions.setGridColumnWidths();\r\n }\r\n }\r\n\r\n onAttachmentGridReady(params) {\r\n this.attachmentGridOptions.api = params.api;\r\n this.attachmentGridOptions.columnApi = params.columnApi;\r\n this.applyPermissionsToGrids();\r\n if (this.site != null) {\r\n this.attachmentGridOptions.api.setRowData(this.site.attachments);\r\n this.attachmentGridOptions.setGridColumnWidths();\r\n }\r\n }\r\n\r\n onConsentFormsGridReady(params) {\r\n this.consentFormsGridOptions.api = params.api;\r\n this.consentFormsGridOptions.columnApi = params.columnApi;\r\n this.applyPermissionsToGrids();\r\n if (this.site != null) {\r\n this.consentFormsGridOptions.api.setRowData(this.site.consentForms);\r\n this.consentFormsGridOptions.setGridColumnWidths();\r\n }\r\n }\r\n\r\n onRecruitmentMaterialsReady(params) {\r\n this.recruitmentMaterialsGridOptions.api = params.api;\r\n this.recruitmentMaterialsGridOptions.columnApi = params.columnApi;\r\n this.applyPermissionsToGrids();\r\n if (this.site != null) {\r\n this.recruitmentMaterialsGridOptions.api.setRowData(this.site.recruitmentMaterials);\r\n this.recruitmentMaterialsGridOptions.setGridColumnWidths();\r\n }\r\n }\r\n\r\n onClickShowSearch(searchTarget, targetIndex?) {\r\n this.modalRef = this.modalService.open(UserSearchTypeaheadComponent);\r\n switch (searchTarget) {\r\n case null:\r\n case \"investigator\":\r\n this.modalRef.componentInstance.label = \"Search for Investigator by Last Name or Email\";\r\n this.modalRef.result.then((user: UserSearchResult) => {\r\n this.site.principalInvestigator = {\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n email: user.email\r\n }\r\n }).catch(() => { /* cancelled by the user */ });\r\n break;\r\n case \"primaryContact\":\r\n this.modalRef.componentInstance.label = \"Search for Primary Contact by Last Name or Email\";\r\n this.modalRef.result.then((user: UserSearchResult) => {\r\n this.site.primaryContact = {\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n email: user.email\r\n }\r\n }).catch(() => { /* cancelled by the user */ });\r\n break;\r\n case \"proxy\":\r\n this.modalRef.componentInstance.label = \"Search for PI Proxy by Last Name or Email\";\r\n this.modalRef.result.then((user: UserSearchResult) => {\r\n this.site.piProxies[targetIndex] = {\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n email: user.email\r\n }\r\n }).catch(() => { /* cancelled by the user */ });\r\n break;\r\n }\r\n }\r\n\r\n //always-on filtering of which grid rows are visible\r\n isExternalFilterPresent(): boolean {\r\n return true;\r\n }\r\n\r\n //test funding source row to determine if it should be visible in the grid\r\n doesExternalFilterPass(node) {\r\n return !node.data.delete;\r\n }\r\n\r\n //must use a function to achieve dynamic editability in ag-grid cells\r\n getCanEdit() {\r\n return this.canEdit;\r\n }\r\n\r\n // Called from parent component to indicate service response and enable the form buttons.\r\n submitted(): void {\r\n this.sending = false;\r\n this.saving = false;\r\n }\r\n\r\n onFirstDataRendered(params, optionsObj) {\r\n return AgGridDefaults.onFirstDataRendered(params, optionsObj);\r\n }\r\n\r\n canDeactivate() {\r\n var curValues = this.modification;\r\n //if changes made, return false to the parent component to trigger a warning/confirmation dialog via pending-changes.guard\r\n let diffObj = ObjectUtils.getDifference(this.originalModification, curValues);\r\n if(Object.keys(diffObj).length != 0) return false;\r\n\r\n var curEnrollment = this.enrollmentStatus;\r\n diffObj = ObjectUtils.getDifference(this.originalEnrollment, curEnrollment);\r\n if(Object.keys(diffObj).length != 0) return false; \r\n\r\n var curNotification = this.subjectNotifications;\r\n diffObj = ObjectUtils.getDifference(this.originalNotifications, curNotification);\r\n if (Object.keys(diffObj).length != 0) return false;\r\n \r\n //else\r\n return true;\r\n }\r\n\r\n // Removes the rows from the DOM and draws them again from scratch\r\n RefreshGridView() {\r\n //recreate document cellRenderer for revision upload without page refresh \r\n if (this.site != null) {\r\n if (this.consentFormsGridOptions.api) {\r\n this.consentFormsGridOptions.api.setRowData(this.site.consentForms);\r\n this.consentFormsGridOptions.api.redrawRows();\r\n }\r\n\r\n if (this.recruitmentMaterialsGridOptions.api) {\r\n this.recruitmentMaterialsGridOptions.api.setRowData(this.site.recruitmentMaterials);\r\n this.recruitmentMaterialsGridOptions.api.redrawRows();\r\n }\r\n\r\n if (this.attachmentGridOptions.api) {\r\n this.attachmentGridOptions.api.setRowData(this.site.attachments);\r\n this.attachmentGridOptions.api.redrawRows();\r\n }\r\n\r\n if (this.fundingSourceGridOptions.api) {\r\n this.fundingSourceGridOptions.api.setRowData(this.site.fundingSources);\r\n this.fundingSourceGridOptions.api.redrawRows();\r\n }\r\n }\r\n }\r\n}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Jlc2VhcmNoL3NpdGUtbW9kaWZpY2F0aW9uL3NpdGUtbW9kaWZpY2F0aW9uLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, ViewChild, HostListener} from '@angular/core';\r\nimport { Modification } from '../../models/mod';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ResearchService } from '../../data-services';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { SiteModificationEditorComponent } from '../site-modification-editor/site-modification-editor.component';\r\nimport { ComponentCanDeactivate } from 'src/app/shared';\r\n\r\n@Component({\r\n selector: 'app-site-modification',\r\n templateUrl: './site-modification.component.html',\r\n styleUrls: ['./site-modification.component.scss']\r\n})\r\nexport class SiteModificationComponent implements OnInit, ComponentCanDeactivate {\r\n\r\n // Child refernce to indicate the service response.\r\n @ViewChild(SiteModificationEditorComponent) modEditor: SiteModificationEditorComponent;\r\n\r\n modification: Modification;\r\n studyExchangeId: string;\r\n modExchangeId: string;\r\n\r\n constructor(private route: ActivatedRoute,\r\n private researchService: ResearchService,\r\n private toastr: ToastrService) { }\r\n\r\n ngOnInit() {\r\n\r\n //pull values from the url using param name assigned in app-routing module\r\n this.studyExchangeId = this.route.snapshot.paramMap.get('studyId');\r\n this.modExchangeId = this.route.snapshot.paramMap.get('modId');\r\n\r\n this.researchService.getModification(this.modExchangeId, this.studyExchangeId)\r\n .subscribe((modification) => {\r\n this.modification = modification;\r\n if (this.modEditor != null){\r\n this.modEditor.initForm(this.modification);\r\n }\r\n });\r\n }\r\n\r\n OnSave(modification: Modification) {\r\n this.researchService.updateModification(this.modExchangeId, this.studyExchangeId, modification)\r\n .pipe(finalize(() => {\r\n this.modEditor.submitted();\r\n }))\r\n .subscribe((response: any) => {\r\n this.ngOnInit();\r\n this.toastr.success(\"Changes saved and sent\", \"Success!\");\r\n });\r\n }\r\n\r\n //use canDeactivate as a handler for the window.beforeUnload event\r\n @HostListener('window:beforeunload')\r\n canDeactivate(){\r\n return this.modEditor.canDeactivate();\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n

\\r\\n {{study.title}}\\r\\n

\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n This section contains general information about the study
\\r\\n

Study is still being reviewed, and it could still be subject to\\r\\n change

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Study ID
\\r\\n
{{study.studyId}}
\\r\\n
\\r\\n
\\r\\n
Investigator
\\r\\n
{{study.principalInvestigator.firstName}} {{study.principalInvestigator.lastName}}
\\r\\n
\\r\\n
\\r\\n
Title
\\r\\n
{{study.title}}
\\r\\n
\\r\\n
\\r\\n
Description
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
Protocol
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Last Day of Approval
\\r\\n
{{ study.reviewDates.lastDayOfApproval | date: 'MM-dd-yyyy' }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
Investigator
\\r\\n
{{study.principalInvestigator.firstName}} {{study.principalInvestigator.lastName}}
\\r\\n
{{study.principalInvestigator.email}}
\\r\\n
\\r\\n 0\\\">\\r\\n
\\r\\n
PI Proxy
\\r\\n
{{proxy.firstName}} {{proxy.lastName}}
\\r\\n
{{proxy.email}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
PI Proxy
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Primary Contact
\\r\\n
{{study.primaryContact.firstName}} {{study.primaryContact.lastName}}
\\r\\n
{{study.primaryContact.email}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Drugs\\r\\n \\r\\n IND Information\\r\\n \\r\\n Additional Attachments\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Devices\\r\\n \\r\\n IND Information\\r\\n \\r\\n Additional Attachments\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Consent Forms\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Recruitment Materials\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Other Attachments\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\"","module.exports = \"span.status {\\n width: 100%;\\n padding: 6px 12px 6px 12px;\\n text-align: center;\\n border-radius: 0.25rem;\\n background-color: lightgreen; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcmVzZWFyY2gvc3R1ZHktZGV0YWlscy9EOlxcSmVua2luc1xcd29ya3NwYWNlXFxFeGNoYW5nZVVJLUFkaG9jXFxzcmNcXEh1cm9uLkV4Y2hhbmdlLlVJL3NyY1xcYXBwXFxyZXNlYXJjaFxcc3R1ZHktZGV0YWlsc1xcc3R1ZHktZGV0YWlscy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLFdBQVc7RUFDWCwwQkFBMEI7RUFDMUIsa0JBQWtCO0VBQ2xCLHNCQUFzQjtFQUN0Qiw0QkFBNEIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3Jlc2VhcmNoL3N0dWR5LWRldGFpbHMvc3R1ZHktZGV0YWlscy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbInNwYW4uc3RhdHVzIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgcGFkZGluZzogNnB4IDEycHggNnB4IDEycHg7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmVlbjtcclxufSJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ResearchService } from '../../data-services';\r\nimport { Study } from '../../models/study';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { AgGridDefaults, DocumentDownloadListCellComponent, DocumentDownloadCellComponent } from '../../shared'\r\nimport { Attachment } from 'src/app/models/attachment';\r\n\r\n@Component({\r\n selector: 'app-study-details',\r\n templateUrl: './study-details.component.html',\r\n styleUrls: ['./study-details.component.scss']\r\n})\r\n\r\nexport class StudyDetailsComponent implements OnInit {\r\n \r\n studyExchangeId : string;\r\n study : Study;\r\n loadComplete: boolean = false;\r\n saving: boolean = false;\r\n declining: boolean = false;\r\n InReview: boolean = false;\r\n alertClosed: boolean = false;\r\n\r\n drugGridOptions = AgGridDefaults.getGridOptions({\r\n columnDefs: [\r\n { headerName: \"Brand\", field: \"brandName\" },\r\n { headerName: \"Generic\", field: \"genericName\" },\r\n { headerName: \"Type\", field:\"drugType\"},\r\n { headerName: \"Other Type Description\", field:\"otherDrugTypeDescription\"},\r\n {\r\n headerName: \"Documents\", field: \"documents\", autoHeight: true, type: [\"noSort\"],\r\n cellRenderer: \"documentDownloadListRenderer\"\r\n }\r\n ],\r\n frameworkComponents: {\r\n documentDownloadListRenderer: DocumentDownloadListCellComponent\r\n }\r\n });\r\n\r\n indGridOptions = AgGridDefaults.getGridOptions({\r\n columnDefs: [\r\n { headerName: \"Number\", field: \"number\" },\r\n { headerName: \"Holder\", field: \"holder\" }\r\n ]\r\n });\r\n\r\n deviceGridOptions = AgGridDefaults.getGridOptions({\r\n columnDefs: [\r\n { headerName: \"Name\", field: \"name\" },\r\n { headerName: \"Is Humanitarian Use?\", field: \"isHumanitarianUseDevice\" },\r\n {\r\n headerName: \"Documents\", field: \"documents\", autoHeight: true, type: [\"noSort\"],\r\n cellRenderer: \"documentDownloadListRenderer\"\r\n }\r\n ],\r\n frameworkComponents: {\r\n documentDownloadListRenderer: DocumentDownloadListCellComponent\r\n }\r\n });\r\n\r\n ideGridOptions = AgGridDefaults.getGridOptions({\r\n columnDefs: [\r\n { headerName: \"Number\", field: \"number\" },\r\n { headerName: \"Holder\", field: \"holder\" }\r\n ]\r\n });\r\n\r\n fundingSourceGridOptions = AgGridDefaults.getGridOptions({\r\n columnDefs: [\r\n { headerName: \"Name\", field: \"name\"},\r\n {\r\n headerName: \"Draft\", field: \"documents\", autoHeight: true, type: [\"noSort\"],\r\n cellRenderer: \"documentDownloadListRenderer\"\r\n },\r\n {\r\n headerName: \"Final\", field: \"finalDocuments\", autoHeight: true, type: [\"noSort\"],\r\n cellRenderer: \"documentDownloadListRenderer\"\r\n }\r\n ],\r\n frameworkComponents: {\r\n documentDownloadListRenderer: DocumentDownloadListCellComponent\r\n }\r\n });\r\n\r\n consentFormGridOptions = AgGridDefaults.getGridOptions({\r\n columnDefs: [\r\n { headerName: \"Name\", field: \"draftName\" },\r\n {\r\n headerName: \"Draft\", field: \"draft\", type: [\"noSort\"],\r\n cellRenderer: \"documentDownloadRenderer\"\r\n },\r\n { headerName: \"Version\", field: \"draftVersion\" },\r\n {\r\n headerName: \"Final\", field: \"final\", type: [\"noSort\"],\r\n cellRenderer: \"documentDownloadRenderer\", cellRendererParams: { contextObj: this }\r\n },\r\n { headerName: \"Version\", field: \"finalVersion\" }\r\n ],\r\n frameworkComponents: {\r\n documentDownloadRenderer: DocumentDownloadCellComponent\r\n }\r\n });\r\n\r\n recruitmentMaterialGridOptions = AgGridDefaults.getGridOptions({\r\n columnDefs: [\r\n { headerName: \"Name\", field: \"draftName\" },\r\n {\r\n headerName: \"Draft\", field: \"draft\", type: [\"noSort\"],\r\n cellRenderer: \"documentDownloadRenderer\"\r\n },\r\n { headerName: \"Version\", field: \"draftVersion\" },\r\n {\r\n headerName: \"Final\", field: \"final\", type: [\"noSort\"],\r\n cellRenderer: \"documentDownloadRenderer\", cellRendererParams: { contextObj: this }\r\n },\r\n { headerName: \"Version\", field: \"finalVersion\" }\r\n ],\r\n frameworkComponents: {\r\n documentDownloadRenderer: DocumentDownloadCellComponent\r\n }\r\n });\r\n\r\n attachmentGridOptions = AgGridDefaults.getGridOptions({\r\n columnDefs: [\r\n { headerName: \"Name\", field: \"draftName\" },\r\n {\r\n headerName: \"Draft\", field: \"draft\", type: [\"noSort\"],\r\n cellRenderer: \"documentDownloadRenderer\"\r\n },\r\n { headerName: \"Version\", field: \"draftVersion\" },\r\n {\r\n headerName: \"Final\", field: \"final\", type: [\"noSort\"],\r\n cellRenderer: \"documentDownloadRenderer\", cellRendererParams: { contextObj: this }\r\n },\r\n { headerName: \"Version\", field: \"finalVersion\" }\r\n ],\r\n frameworkComponents: {\r\n documentDownloadRenderer: DocumentDownloadCellComponent\r\n }\r\n });\r\n\r\n constructor(\r\n private route : ActivatedRoute,\r\n private researchService: ResearchService,\r\n private toastr: ToastrService,\r\n private router: Router) { }\r\n\r\n ngOnInit() {\r\n //pull values from the url using param name assigned in app-routing module\r\n this.studyExchangeId = this.route.snapshot.paramMap.get('studyId');\r\n this.researchService.getStudyDetails(this.studyExchangeId)\r\n .subscribe(\r\n (study) => {\r\n this.loadComplete = true;\r\n this.study = study;\r\n this.InReview = this.study.status !== \"Approved\";\r\n });\r\n }\r\n\r\n accept(study: Study) {\r\n this.saving = true;\r\n this.researchService.acceptInvitation(study.exchangeContainerId).subscribe(\r\n (response: any)=> {\r\n this.study.siteExchangeId = response.siteExchangeId;\r\n this.toastr.success(`The Invitation to participate in ${study.title} has been accepted.`, \"Invitation accepted\");\r\n this.router.navigate(['/research/studies', this.studyExchangeId, 'sites', this.study.siteExchangeId])\r\n }); \r\n }\r\n \r\n decline(study: Study) {\r\n this.declining = true;\r\n this.researchService.declineInvitation(study.exchangeContainerId).subscribe(\r\n ()=> {\r\n this.toastr.warning(`The invitation to participate in ${study.title} has been declined.`, \"Invitation declined\");\r\n this.saving = false;\r\n this.router.navigate(['/research/invitations']);\r\n });\r\n }\r\n\r\n onFirstDataRendered(params, optionsObj) {\r\n return AgGridDefaults.onFirstDataRendered(params, optionsObj);\r\n }\r\n\r\n onDrugGridReady(params) {\r\n this.drugGridOptions.api = params.api;\r\n this.drugGridOptions.columnApi = params.columnApi;\r\n if (this.study != null) {\r\n this.drugGridOptions.api.setRowData(this.study.drugs);\r\n this.drugGridOptions.setGridColumnWidths();\r\n }\r\n }\r\n\r\n onIndGridReady(params) {\r\n this.indGridOptions.api = params.api;\r\n this.indGridOptions.columnApi = params.columnApi;\r\n if (this.study != null) {\r\n this.indGridOptions.api.setRowData(this.study.investigationalNewDrugs);\r\n this.indGridOptions.setGridColumnWidths();\r\n }\r\n }\r\n\r\n onDeviceGridReady(params) {\r\n this.deviceGridOptions.api = params.api;\r\n this.deviceGridOptions.columnApi = params.columnApi;\r\n if (this.study != null) {\r\n this.deviceGridOptions.api.setRowData(this.study.devices);\r\n this.deviceGridOptions.setGridColumnWidths();\r\n }\r\n }\r\n\r\n onIdeGridReady(params) {\r\n this.ideGridOptions.api = params.api;\r\n this.ideGridOptions.columnApi = params.columnApi;\r\n if (this.study != null) {\r\n this.ideGridOptions.api.setRowData(this.study.investigationalDeviceExemptions);\r\n this.ideGridOptions.setGridColumnWidths();\r\n }\r\n }\r\n\r\n onFundingSourceGridReady(params) {\r\n this.fundingSourceGridOptions.api = params.api;\r\n this.fundingSourceGridOptions.columnApi = params.columnApi;\r\n if (this.study != null) {\r\n this.fundingSourceGridOptions.api.setRowData(this.study.fundingSources);\r\n this.fundingSourceGridOptions.setGridColumnWidths();\r\n }\r\n }\r\n\r\n onConsentFormGridReady(params) {\r\n this.consentFormGridOptions.api = params.api;\r\n this.consentFormGridOptions.columnApi = params.columnApi;\r\n if (this.study != null) {\r\n this.consentFormGridOptions.api.setRowData(this.study.consentFormTemplates);\r\n this.consentFormGridOptions.setGridColumnWidths();\r\n }\r\n }\r\n\r\n onRecruitmentMaterialGridReady(params) {\r\n this.consentFormGridOptions.api = params.api;\r\n this.consentFormGridOptions.columnApi = params.columnApi;\r\n if (this.study != null) {\r\n this.consentFormGridOptions.api.setRowData(this.study.recruitmentMaterialTemplates);\r\n this.consentFormGridOptions.setGridColumnWidths();\r\n }\r\n }\r\n\r\n onAttachmentGridReady(params) {\r\n this.attachmentGridOptions.api = params.api;\r\n this.attachmentGridOptions.columnApi = params.columnApi;\r\n if (this.study != null) {\r\n this.attachmentGridOptions.api.setRowData(this.study.attachments);\r\n this.attachmentGridOptions.setGridColumnWidths();\r\n }\r\n }\r\n\r\n onProtocolDocument(attachment: Attachment) {\r\n // if there is a Final protocol document, show it, otherwise show the draft document\r\n if (attachment.final && attachment.final.itemId && attachment.final.itemId !== \"\") {\r\n return attachment.final;\r\n }\r\n\r\n return attachment.draft;\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n

Research

\\r\\n \\r\\n \\r\\n You have nothing to do right now. Accept the invitation if you've been invited to participate in a study.\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Jlc2VhcmNoL3N0dWR5LWxpc3Qvc3R1ZHktbGlzdC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { StudyListItem } from '../../models';\r\nimport { ResearchService} from '../../data-services';\r\nimport { AgGridDefaults, RouterLinkCellComponent } from '../../shared';\r\n\r\n\r\n@Component({\r\n selector: 'app-study-list',\r\n templateUrl: './study-list.component.html',\r\n styleUrls: ['./study-list.component.scss']\r\n})\r\n\r\nexport class StudyListComponent implements OnInit {\r\n\r\n studies: StudyListItem[] = [];\r\n loadComplete: boolean = false;\r\n hasResearch: boolean = false;\r\n alertClosed: boolean = false;\r\n \r\n researchGridOptions = AgGridDefaults.getGridOptions({\r\n columnDefs: [\r\n { headerName: \"IRB of Record\", field: \"irbOfRecord\" },\r\n { headerName: \"Study ID\", field: \"studyId\", minWidth: 135, cellRenderer: \"routerLinkRenderer\", \r\n cellRendererParams: { routerLink: ['/research/studies/', '{{exchangeContainerId}}', 'sites', '{{siteExchangeId}}'], displayAttribute: 'studyId' }\r\n },\r\n { headerName: \"Study Title\", field: \"title\" },\r\n { headerName: \"Site Status\", field: \"siteStatus\" },\r\n { headerName: \"Local PI\", field: \"sitePI.lastName\", minWidth: 100 },\r\n { headerName: \"Last Updated\", field: \"lastUpdated\", type : [\"date\"] }\r\n ],\r\n frameworkComponents: {\r\n routerLinkRenderer: RouterLinkCellComponent\r\n }\r\n });\r\n\r\n constructor(private researchService: ResearchService) { }\r\n\r\n ngOnInit() {\r\n this.researchService.getStudies()\r\n .subscribe(\r\n (stus) => {\r\n this.loadComplete = true;\r\n this.studies = stus;\r\n this.hasResearch = this.studies.length > 0;\r\n });\r\n }\r\n\r\n //When grid is displayed following successful retrieval of site data, connect grid data source\r\n onResearchGridReady(params) {\r\n this.researchGridOptions.api = params.api;\r\n this.researchGridOptions.columnApi = params.columnApi;\r\n this.researchGridOptions.api.setRowData(this.studies);\r\n this.researchGridOptions.setGridColumnWidths();\r\n }\r\n\r\n onFirstDataRendered(params, optionsObj) {\r\n return AgGridDefaults.onFirstDataRendered(params, optionsObj);\r\n }\r\n}\r\n","export class AgGridDefaults {\r\n public static gridOptions = {\r\n defaultColDef: {\r\n resizable: true,\r\n sortable: true,\r\n filter: \"agTextColumnFilter\",\r\n icons: {\r\n sortAscending: '',\r\n sortDescending: '',\r\n sortUnSort: '',\r\n filter: '',\r\n menu: ''\r\n }\r\n },\r\n columnTypes : {\r\n \"date\" : {\r\n valueFormatter: AgGridDefaults.renderDate,\r\n filter: 'agDateColumnFilter',\r\n filterParams: {\r\n comparator: AgGridDefaults.dateComparator\r\n }\r\n },\r\n \"deleteRow\" : {\r\n minWidth: 40, \r\n maxWidth: 40, \r\n resizable: false, \r\n filter: false,\r\n sortable: false\r\n },\r\n \"noSort\" : { sortable : false, filter: false },\r\n \"nonEditable\": {editable: false}\r\n },\r\n rowData: null,\r\n animateRows: true,\r\n suppressColumnMoveAnimation: true,\r\n stopEditingWhenGridLosesFocus: true,\r\n singleClickEdit: true,\r\n unSortIcon: true, \r\n\r\n //common storage location for dynamically generated grid and column apis\r\n api: null,\r\n columnApi: null,\r\n \r\n suppressPropertyNamesCheck : true,\r\n suppressNoRowsOverlay : true,\r\n suppressLoadingOverlay : true,\r\n suppressMovableColumns : true,\r\n /**\r\n * set dynamic column widths if the api, columnApi, and columnDefs are set, with ids on the colDefs\r\n */\r\n setGridColumnWidths : function() {\r\n var allColumnIds = [];\r\n if(this.columnDefs && this.columnApi && this.api){\r\n this.api.setDomLayout(\"autoHeight\");\r\n this.columnDefs.forEach(function (columnDef) {\r\n if(columnDef.colId){\r\n allColumnIds.push(columnDef.colId);\r\n }else{\r\n allColumnIds.push(columnDef.field);\r\n }\r\n });\r\n //autoSizeColumns will shrink/expand each col to minimum readable width\r\n this.columnApi.autoSizeColumns(allColumnIds);\r\n //sizeColumnsToFit will shrink/expand from there to fill the grid viewport\r\n this.api.sizeColumnsToFit();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Returns default grid options such as icons, resizing of columns, animation, etc. Merges in the specific options passed as a paramter\r\n * @param specificGridOptions optional object containing a columnDefs array, any frameworkComponents used in columnDefs, and specific overrides of default options.\r\n */\r\n public static getGridOptions(specificGridOptions:any) : any {\r\n if(specificGridOptions == null){\r\n specificGridOptions = {};\r\n }\r\n //object spread is quite similar to Object.Assign(), but apparently its cooler and better somehow\r\n return Object.assign({}, this.gridOptions, specificGridOptions);\r\n }\r\n\r\n //generic handler for first row rendered in grid\r\n public static onFirstDataRendered(params, optionsObject) {\r\n optionsObject.api = params.api;\r\n optionsObject.columnApi = params.columnApi;\r\n optionsObject.setGridColumnWidths();\r\n }\r\n\r\n public static renderPersonLong(params){\r\n let retArray = [];\r\n if (params.value.lastName) {\r\n retArray.push(params.value.lastName);\r\n }\r\n if (params.value.firstName) {\r\n retArray.push(params.value.firstName);\r\n }\r\n return retArray.join(', ');\r\n }\r\n\r\n public static renderPersonShort(params){\r\n return params.value.lastName || \"\";\r\n }\r\n\r\n public static renderDate(params){\r\n if(!params.value) return \"\";\r\n let pDate = new Date(params.value);\r\n let stringBuilder = [];\r\n let strDay = \"\" + pDate.getDate();\r\n let strMonth = \"\" + (pDate.getMonth()+1);\r\n let strYear = \"\" + pDate.getFullYear();\r\n stringBuilder.push(strMonth.padStart(2,'0'));\r\n stringBuilder.push(strDay.padStart(2, '0'));\r\n stringBuilder.push(strYear);\r\n return stringBuilder.join('/');\r\n }\r\n\r\n public static dateComparator(filterLocalDateAtMidnight, cellValue){\r\n if(cellValue == null){\r\n return 0;\r\n }\r\n let filterDate = new Date(filterLocalDateAtMidnight);\r\n let cellDate = new Date(cellValue);\r\n cellDate.setHours(0,0,0,0);\r\n if (filterDate < cellDate){\r\n return 1;\r\n } else if (filterDate > cellDate){\r\n return -1;\r\n } else return 0;\r\n }\r\n}","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \":host {\\n height: 100%; }\\n\\n.appcues-widget-icon {\\n font-size: 24px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2FwcGN1ZXMtd2lkZ2V0L0Q6XFxKZW5raW5zXFx3b3Jrc3BhY2VcXEV4Y2hhbmdlVUktQWRob2NcXHNyY1xcSHVyb24uRXhjaGFuZ2UuVUkvc3JjXFxhcHBcXHNoYXJlZFxcYXBwY3Vlcy13aWRnZXRcXGFwcGN1ZXMtd2lkZ2V0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksWUFBWSxFQUFBOztBQUVoQjtFQUNJLGVBQWUsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9hcHBjdWVzLXdpZGdldC9hcHBjdWVzLXdpZGdldC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICAgIGhlaWdodDogMTAwJTtcclxufVxyXG4uYXBwY3Vlcy13aWRnZXQtaWNvbiB7XHJcbiAgICBmb250LXNpemU6IDI0cHg7XHJcbn0iXX0= */\"","import { OnInit, Component, Inject } from '@angular/core';\r\nimport { AppcuesService } from '../appcues.service';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n\r\n@Component({\r\n selector: 'appcues-widget',\r\n templateUrl: './appcues-widget.component.html',\r\n styleUrls: ['./appcues-widget.component.scss']\r\n})\r\nexport class AppcuesWidgetComponent implements OnInit {\r\n\r\n private AppcuesWidget: any;\r\n\r\n constructor(\r\n @Inject(DOCUMENT) document: Document,\r\n private appcues: AppcuesService\r\n ) { \r\n this.AppcuesWidget = (document.defaultView).AppcuesWidget;\r\n }\r\n\r\n ngOnInit() {\r\n\r\n var options = {\r\n header: null,\r\n footer: null,\r\n position: null\r\n };\r\n\r\n this.appcues.user().subscribe(user => {\r\n this.AppcuesWidget(user).init(\"#widget\", options);\r\n });\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { from, Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppcuesService {\r\n\r\n private Appcues: any;\r\n\r\n constructor(@Inject(DOCUMENT) document: Document) { \r\n this.Appcues = (document.defaultView).Appcues;\r\n }\r\n\r\n anonymous() {\r\n this.Appcues.anonymous();\r\n }\r\n\r\n identify(userId: string, properties?: {}) {\r\n this.Appcues.identify(userId, properties);\r\n }\r\n\r\n page() {\r\n this.Appcues.page();\r\n }\r\n\r\n track(event: string, properties?: {}) {\r\n this.Appcues.track(event, properties);\r\n }\r\n\r\n user(): Observable {\r\n return from(this.Appcues.user());\r\n }\r\n\r\n reset() {\r\n this.Appcues.reset();\r\n }\r\n\r\n \r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { NgbDateParserFormatter, NgbDateStruct } from \"@ng-bootstrap/ng-bootstrap\";\r\n\r\nfunction isNumber(value: any): boolean {\r\n return !isNaN(toInteger(value));\r\n}\r\n\r\nfunction toInteger(value: any): number {\r\n return parseInt(`${value}`, 10);\r\n}\r\n\r\n\r\n@Injectable()\r\nexport class NgbDateUSParserFormatter extends NgbDateParserFormatter {\r\n parse(value: string): NgbDateStruct {\r\n if (value) {\r\n const dateParts = value.trim().split(/[\\/\\-\\.]/); //split on slash dot or dash\r\n if (dateParts.length === 3 && isNumber(dateParts[0]) && isNumber(dateParts[1]) && isNumber(dateParts[2])) {\r\n return {year: toInteger(dateParts[2]), month: toInteger(dateParts[0]), day: toInteger(dateParts[1])};\r\n }\r\n } \r\n return null;\r\n }\r\n\r\n format(date: NgbDateStruct): string {\r\n var tempDate;\r\n if(date && isNumber(date.year) && isNumber(date.month) && isNumber(date.day)) {\r\n tempDate = new Date(date.year, date.month-1, date.day);\r\n return tempDate.toLocaleDateString(\"en-US\");\r\n }\r\n else{\r\n return \"\";\r\n }\r\n }\r\n}","module.exports = \"\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9kZWxldGUtcm93L2RlbGV0ZS1yb3cuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-delete-row',\r\n templateUrl: './delete-row.component.html',\r\n styleUrls: ['./delete-row.component.scss']\r\n})\r\n\r\nexport class DeleteRowComponent { \r\n params: any;\r\n\r\n constructor() { }\r\n \r\n refresh(params): boolean {\r\n this.params = params;\r\n return true;\r\n }\r\n\r\n agInit(params): void {\r\n this.params = params;\r\n }\r\n\r\n deleteRow(){\r\n this.params.node.data.delete = true;\r\n this.params.api.updateRowData({update: [this.params.node.data]});\r\n }\r\n}\r\n","module.exports = \"\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9kb2N1bWVudC1kb3dubG9hZC1jZWxsL2RvY3VtZW50LWRvd25sb2FkLWNlbGwuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\nimport { IAfterGuiAttachedParams, ICellRendererParams } from 'ag-grid-community';\r\nimport { DocumentDownloadComponent } from '../';\r\n\r\n@Component({\r\n selector: 'app-document-download-cell',\r\n templateUrl: './document-download-cell.component.html',\r\n styleUrls: ['./document-download-cell.component.scss']\r\n})\r\nexport class DocumentDownloadCellComponent implements OnInit {\r\n params: any;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n refresh(params: any): boolean {\r\n this.params = params;\r\n return true;\r\n }\r\n agInit(params: ICellRendererParams): void {\r\n this.params = params;\r\n }\r\n afterGuiAttached?(params?: IAfterGuiAttachedParams): void {\r\n \r\n }\r\n}\r\n","module.exports = \"\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9kb2N1bWVudC1kb3dubG9hZC1saXN0LWNlbGwvZG9jdW1lbnQtZG93bmxvYWQtbGlzdC1jZWxsLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { DocumentDownloadComponent } from '../';\r\nimport { IAfterGuiAttachedParams, ICellRendererParams } from 'ag-grid-community';\r\n\r\n@Component({\r\n selector: 'app-document-download-list-cell',\r\n templateUrl: './document-download-list-cell.component.html',\r\n styleUrls: ['./document-download-list-cell.component.scss']\r\n})\r\nexport class DocumentDownloadListCellComponent implements OnInit {\r\n params: any;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n refresh(params: any): boolean {\r\n this.params = params;\r\n return true;\r\n }\r\n\r\n agInit(params: ICellRendererParams): void {\r\n this.params = params;\r\n }\r\n\r\n afterGuiAttached?(params?: IAfterGuiAttachedParams): void { }\r\n}","module.exports = \"\\r\\n \\r\\n \\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9kb2N1bWVudC1kb3dubG9hZC9kb2N1bWVudC1kb3dubG9hZC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { DocumentItem } from 'src/app/models/DocumentItem';\r\nimport { DocumentService } from '../../data-services';\r\nimport { FileSaverService } from 'ngx-filesaver';\r\nimport { ValidationProblemDetails } from '..';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-document-download',\r\n templateUrl: './document-download.component.html',\r\n styleUrls: ['./document-download.component.scss']\r\n})\r\n\r\nexport class DocumentDownloadComponent implements OnInit {\r\n @Input() doc: DocumentItem;\r\n @Input() showDeleteIcon: boolean;\r\n @Output() deleteIconClicked = new EventEmitter();\r\n loading: boolean = false;\r\n\r\n constructor(private documentService: DocumentService,\r\n private _FileSaverService: FileSaverService,\r\n private toastr: ToastrService) { }\r\n\r\n ngOnInit( ) { }\r\n\r\n downloadFile(studyId: string, itemId: string, fileName: string) {\r\n this.loading = true;\r\n this.documentService.downloadFile(studyId, itemId, fileName)\r\n .subscribe(\r\n (res) => {\r\n this._FileSaverService.save(res, fileName);\r\n this.loading = false;\r\n }, (err: ValidationProblemDetails) => {\r\n if (err) {\r\n this.toastr.info(\"Document may still be uploading at the source, try again later.\", \"Document Unavailable!\");\r\n this.loading = false;\r\n }\r\n });\r\n }\r\n\r\n onClickDelete(){\r\n this.deleteIconClicked.emit(this.doc);\r\n }\r\n}\r\n","module.exports = \"\\r\\n\\r\\n \\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9kb2N1bWVudC11cGxvYWQtY2VsbC9kb2N1bWVudC11cGxvYWQtY2VsbC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-document-upload-cell',\r\n templateUrl: './document-upload-cell.component.html',\r\n styleUrls: ['./document-upload-cell.component.scss']\r\n})\r\nexport class DocumentUploadCellComponent {\r\n params: any;\r\n\r\n constructor() { }\r\n\r\n refresh(params): boolean {\r\n this.params = params;\r\n return true;\r\n }\r\n\r\n agInit(params): void {\r\n this.params = params;\r\n }\r\n\r\n canEdit(): boolean { \r\n return this.params && this.params.contextObj && this.params.contextObj.canEdit;\r\n }\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n
\"","module.exports = \".docUploadListContainer {\\n border-radius: 15px;\\n border: 1px solid grey;\\n background: #e6e6e6;\\n padding: 15px;\\n display: inline-block;\\n outline: none;\\n min-width: 200px;\\n min-height: 100px; }\\n\\ninput[type=file] {\\n display: none; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2RvY3VtZW50LXVwbG9hZC1saXN0LWNlbGwvRDpcXEplbmtpbnNcXHdvcmtzcGFjZVxcRXhjaGFuZ2VVSS1BZGhvY1xcc3JjXFxIdXJvbi5FeGNoYW5nZS5VSS9zcmNcXGFwcFxcc2hhcmVkXFxkb2N1bWVudC11cGxvYWQtbGlzdC1jZWxsXFxkb2N1bWVudC11cGxvYWQtbGlzdC1jZWxsLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksbUJBQW1CO0VBQ25CLHNCQUFzQjtFQUN0QixtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLHFCQUFxQjtFQUNyQixhQUFhO0VBQ2IsZ0JBQWdCO0VBQ2hCLGlCQUFpQixFQUFBOztBQUdyQjtFQUNJLGFBQVksRUFBQSIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9kb2N1bWVudC11cGxvYWQtbGlzdC1jZWxsL2RvY3VtZW50LXVwbG9hZC1saXN0LWNlbGwuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZG9jVXBsb2FkTGlzdENvbnRhaW5lciB7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgZ3JleTtcclxuICAgIGJhY2tncm91bmQ6ICNlNmU2ZTY7XHJcbiAgICBwYWRkaW5nOiAxNXB4O1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgIG1pbi13aWR0aDogMjAwcHg7XHJcbiAgICBtaW4taGVpZ2h0OiAxMDBweDtcclxufVxyXG5cclxuaW5wdXRbdHlwZT1maWxlXSB7XHJcbiAgICBkaXNwbGF5Om5vbmU7XHJcbn0iXX0= */\"","import { Component } from '@angular/core';\r\nimport { ICellEditorAngularComp } from 'ag-grid-angular';\r\nimport { DocumentItem } from 'src/app/models/documentItem';\r\n\r\n@Component({\r\n selector: 'app-document-upload-list-cell',\r\n templateUrl: './document-upload-list-cell.component.html',\r\n styleUrls: ['./document-upload-list-cell.component.scss']\r\n})\r\nexport class DocumentUploadListCellComponent implements ICellEditorAngularComp {\r\n params: any;\r\n\r\n constructor() { }\r\n\r\n agInit(params: any): void {\r\n this.params = params;\r\n }\r\n\r\n getValue(): any {\r\n return this.params.value;\r\n }\r\n\r\n isPopup(): boolean {\r\n return true;\r\n }\r\n\r\n onDocListChanged(docList:DocumentItem[]){\r\n this.params.api.resetRowHeights();\r\n this.params.api.sizeColumnsToFit();\r\n }\r\n}\r\n","module.exports = \" \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"input[type=file] {\\n display: none; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2RvY3VtZW50LXVwbG9hZC1saXN0L0Q6XFxKZW5raW5zXFx3b3Jrc3BhY2VcXEV4Y2hhbmdlVUktQWRob2NcXHNyY1xcSHVyb24uRXhjaGFuZ2UuVUkvc3JjXFxhcHBcXHNoYXJlZFxcZG9jdW1lbnQtdXBsb2FkLWxpc3RcXGRvY3VtZW50LXVwbG9hZC1saXN0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksYUFBWSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL2RvY3VtZW50LXVwbG9hZC1saXN0L2RvY3VtZW50LXVwbG9hZC1saXN0LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiaW5wdXRbdHlwZT1maWxlXSB7XHJcbiAgICBkaXNwbGF5Om5vbmU7XHJcbn0iXX0= */\"","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { DocumentItem } from 'src/app/models/documentItem';\r\n\r\n@Component({\r\n selector: 'app-document-upload-list',\r\n templateUrl: './document-upload-list.component.html',\r\n styleUrls: ['./document-upload-list.component.scss']\r\n})\r\nexport class DocumentUploadListComponent {\r\n @Output() docListChanged = new EventEmitter();\r\n @Input() documents: DocumentItem[];\r\n studyId: string;\r\n\r\n constructor() { }\r\n\r\n removeDocRow(rowValue: any) {\r\n if (rowValue) {\r\n //rendering in this component's template filters out docs where delete === true\r\n rowValue.delete = true;\r\n this.docListChanged.emit(this.documents);\r\n }\r\n }\r\n\r\n handleFileInput(files: FileList) {\r\n for (var i = 0; i < files.length; i++) {\r\n let file = files.item(i);\r\n let doc = {\r\n fileName: file.name,\r\n fileToUpload: file,\r\n fileContent: null,\r\n studyId: this.studyId,\r\n itemId: null\r\n }\r\n let fileReader = new FileReader();\r\n fileReader.onloadend = (e) => {\r\n doc.fileContent = fileReader.result.toString();\r\n }\r\n fileReader.readAsDataURL(file);\r\n this.documents.push(doc);\r\n }\r\n this.docListChanged.emit(this.documents);\r\n }\r\n}\r\n\r\n","module.exports = \"
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \"input[type=file] {\\n display: none; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2RvY3VtZW50LXVwbG9hZC9EOlxcSmVua2luc1xcd29ya3NwYWNlXFxFeGNoYW5nZVVJLUFkaG9jXFxzcmNcXEh1cm9uLkV4Y2hhbmdlLlVJL3NyY1xcYXBwXFxzaGFyZWRcXGRvY3VtZW50LXVwbG9hZFxcZG9jdW1lbnQtdXBsb2FkLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksYUFBWSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL2RvY3VtZW50LXVwbG9hZC9kb2N1bWVudC11cGxvYWQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJpbnB1dFt0eXBlPWZpbGVdIHtcclxuICAgIGRpc3BsYXk6bm9uZTtcclxufSJdfQ== */\"","import { Component, Input, ViewChild, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { DocumentItem } from 'src/app/models/DocumentItem';\r\nimport { DocumentDownloadComponent } from '../document-download/document-download.component';\r\n\r\n@Component({\r\n selector: 'app-document-upload',\r\n templateUrl: './document-upload.component.html',\r\n styleUrls: ['./document-upload.component.scss']\r\n})\r\nexport class DocumentUploadComponent {\r\n @Input() doc: DocumentItem;\r\n @ViewChild('fileInput') fileInput : ElementRef;\r\n\r\n touched: boolean;\r\n\r\n constructor(private changeDetector : ChangeDetectorRef) { }\r\n\r\n handleFileInput(files:FileList){\r\n let file = files.item(0);\r\n if(file != null){\r\n let doc = this.doc;\r\n doc.fileName = file.name;\r\n doc.fileToUpload = file;\r\n let fileReader = new FileReader();\r\n fileReader.onloadend = (e) => {\r\n doc.fileContent = fileReader.result.toString();\r\n }\r\n fileReader.readAsDataURL(file);\r\n }\r\n }\r\n\r\n enableDocUpload(evt){\r\n this.touched = true;\r\n this.changeDetector.detectChanges();\r\n this.fileInput.nativeElement.click();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { Router } from '@angular/router';\r\nimport { ValidationProblemDetails } from './problem-details';\r\n\r\n@Injectable()\r\nexport class ErrorResponseInterceptor implements HttpInterceptor {\r\n\r\n constructor(\r\n private router: Router,\r\n private toastr: ToastrService) { }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n return next.handle(request).pipe(\r\n catchError((error) => {\r\n if (error instanceof HttpErrorResponse) {\r\n // if (error.status === 403) {\r\n // this.router.navigate(['/403']);\r\n // }\r\n\r\n if (error.status === 501) {\r\n this.toastr.warning(\"That's not implemented yet...\", \"Whoops!\");\r\n } else if (error.status === 400) {\r\n // Assuming context specific errors are handled in service class.\r\n // so avoiding duplicate messages.\r\n } else if (error.status === 401) {\r\n this.toastr.warning(\"Unauthorized access\", \"Unauthorized!\",\r\n { timeOut: 7000, extendedTimeOut: 2000 });\r\n } else if (error.status === 403) {\r\n this.toastr.warning(\"Access is forbidden to the requested resource\", \"Access denied!\",\r\n { timeOut: 7000, extendedTimeOut: 2000 });\r\n } else {\r\n this.toastr.error(\"An error occurred while processing your request\", \"Error!\",\r\n { timeOut: 7000, extendedTimeOut: 2000 });\r\n }\r\n\r\n return throwError(error.error as ValidationProblemDetails);\r\n } else if (error instanceof ErrorEvent) {\r\n // Client-side error\r\n this.toastr.error(\"An error occurred while processing your request\", \"Error!\",\r\n { timeOut: 7000, extendedTimeOut: 2000 });\r\n }\r\n\r\n return throwError(error);\r\n })\r\n );\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
Feedback
\\r\\n \\r\\n
\\r\\n
\\r\\n

We would love to hear your thoughts, concerns or problems with anything so we can improve!

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\"","module.exports = \"textarea.form-control {\\n height: 200px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2ZlZWRiYWNrLWRpYWxvZy9EOlxcSmVua2luc1xcd29ya3NwYWNlXFxFeGNoYW5nZVVJLUFkaG9jXFxzcmNcXEh1cm9uLkV4Y2hhbmdlLlVJL3NyY1xcYXBwXFxzaGFyZWRcXGZlZWRiYWNrLWRpYWxvZ1xcZmVlZGJhY2stZGlhbG9nLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksYUFBYSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL2ZlZWRiYWNrLWRpYWxvZy9mZWVkYmFjay1kaWFsb2cuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJ0ZXh0YXJlYS5mb3JtLWNvbnRyb2wge1xyXG4gICAgaGVpZ2h0OiAyMDBweDtcclxufSJdfQ== */\"","import { Component, AfterViewInit, ViewChild, ElementRef, Renderer } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { NgbRatingConfig, NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-feedback-dialog',\r\n templateUrl: './feedback-dialog.component.html',\r\n styleUrls: ['./feedback-dialog.component.scss'],\r\n providers: [NgbRatingConfig]\r\n})\r\nexport class FeedbackDialogComponent implements AfterViewInit {\r\n\r\n feedbackForm: FormGroup;\r\n\r\n // reference to the textarea marked with #comment\r\n @ViewChild(\"comment\") commentField: ElementRef;\r\n\r\n constructor(\r\n public modal: NgbActiveModal, \r\n private renderer: Renderer,\r\n fb: FormBuilder, \r\n ratingConfig: NgbRatingConfig) {\r\n\r\n ratingConfig.max = 5; \r\n this.feedbackForm = fb.group({\r\n rating: [0],\r\n comment: ['', Validators.required]\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n // use the renderer to interact with the actual DOM Element.\r\n this.renderer.invokeElementMethod(this.commentField.nativeElement, 'focus');\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n © 2019 Huron Consulting Group Inc. and affiliates.\\r\\n
\\r\\n Use and distribution prohibited except through written agreement with Huron. Trademarks used in this\\r\\n website are registered or unregistered trademarks of Huron or its licensors.\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \":host {\\n padding: 2em; }\\n\\n.logo {\\n width: 150px;\\n height: 31px;\\n min-width: 150px;\\n min-height: 31px; }\\n\\n.social a {\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n -ms-flex-pack: center;\\n justify-content: center;\\n -ms-flex-align: center;\\n align-items: center;\\n background-color: #00568c;\\n border-radius: 50%;\\n width: 30px;\\n height: 30px;\\n padding: 0 2px;\\n color: #fff;\\n margin-right: 8px; }\\n\\n.social a:hover {\\n text-decoration: none; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2Zvb3Rlci9EOlxcSmVua2luc1xcd29ya3NwYWNlXFxFeGNoYW5nZVVJLUFkaG9jXFxzcmNcXEh1cm9uLkV4Y2hhbmdlLlVJL3NyY1xcYXBwXFxzaGFyZWRcXGZvb3RlclxcZm9vdGVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0csWUFBWSxFQUFBOztBQUdmO0VBQ0ksWUFBWTtFQUNaLFlBQVk7RUFDWixnQkFBZ0I7RUFDaEIsZ0JBQWdCLEVBQUE7O0FBR3BCO0VBRVEsMkJBQW9CO0VBQXBCLG9CQUFvQjtFQUNwQixxQkFBdUI7TUFBdkIsdUJBQXVCO0VBQ3ZCLHNCQUFtQjtNQUFuQixtQkFBbUI7RUFDbkIseUJBQXlCO0VBQ3pCLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsWUFBWTtFQUNaLGNBQWM7RUFDZCxXQUFXO0VBQ1gsaUJBQWlCLEVBQUE7O0FBWHpCO0lBY1kscUJBQXFCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9zaGFyZWQvZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICAgcGFkZGluZzogMmVtO1xyXG59XHJcblxyXG4ubG9nbyB7XHJcbiAgICB3aWR0aDogMTUwcHg7XHJcbiAgICBoZWlnaHQ6IDMxcHg7XHJcbiAgICBtaW4td2lkdGg6IDE1MHB4O1xyXG4gICAgbWluLWhlaWdodDogMzFweDtcclxufVxyXG5cclxuLnNvY2lhbCB7XHJcbiAgICBhIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDU2OGM7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgIHdpZHRoOiAzMHB4O1xyXG4gICAgICAgIGhlaWdodDogMzBweDtcclxuICAgICAgICBwYWRkaW5nOiAwIDJweDtcclxuICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss']\r\n})\r\nexport class FooterComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n template: '

403 Forbidden

'\r\n})\r\nexport class ForbiddenComponent {}","module.exports = \"
\\r\\n \\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss']\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n
\\r\\n
\\r\\n
How can we help?
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
1\\\">\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • PI: {{study.principalInvestigator.firstName}} {{study.principalInvestigator.lastName}}
  • \\r\\n
  • Primary Contact: {{study.primaryContact.firstName}} {{study.primaryContact.lastName}}
  • \\r\\n
  • PI Proxies: {{proxies.join(\\\", \\\")}}
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\"","module.exports = \"textarea.form-control {\\n height: 200px; }\\n\\n.modal-body {\\n word-break: break-word; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2hlbHAtZGlhbG9nL0Q6XFxKZW5raW5zXFx3b3Jrc3BhY2VcXEV4Y2hhbmdlVUktQWRob2NcXHNyY1xcSHVyb24uRXhjaGFuZ2UuVUkvc3JjXFxhcHBcXHNoYXJlZFxcaGVscC1kaWFsb2dcXGhlbHAtZGlhbG9nLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksYUFBYSxFQUFBOztBQUdqQjtFQUNJLHNCQUFzQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL2hlbHAtZGlhbG9nL2hlbHAtZGlhbG9nLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsidGV4dGFyZWEuZm9ybS1jb250cm9sIHtcclxuICAgIGhlaWdodDogMjAwcHg7XHJcbn1cclxuXHJcbi5tb2RhbC1ib2R5e1xyXG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcclxuICB9Il19 */\"","import { Component, AfterViewInit, ViewChild, ElementRef, Renderer, Inject } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Router } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nimport { Study, StudyListItem } from '../../models';\r\nimport { ResearchService, FeedbackService } from '../../data-services';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-help-dialog',\r\n templateUrl: './help-dialog.component.html',\r\n styleUrls: ['./help-dialog.component.scss']\r\n})\r\nexport class HelpComponentDialog implements AfterViewInit {\r\n\r\n feedbackForm: FormGroup;\r\n selectedOption: Number = 0;\r\n nullStudies = new BehaviorSubject(true);\r\n\r\n studies: StudyListItem[] = [];\r\n loadComplete: boolean = true;\r\n selectedStudy: StudyListItem;\r\n isSending: boolean = false;\r\n studyId: String;\r\n study: Study;\r\n hasProxies: boolean;\r\n proxies: String[] = [];\r\n valid: boolean;\r\n currentPage:string;\r\n\r\n @ViewChild(\"mySelect\") select: ElementRef;\r\n\r\n constructor(public modal: NgbActiveModal, private renderer: Renderer, private researchService: ResearchService, public fb: FormBuilder, private route: Router, private feedbackService: FeedbackService, private toastr: ToastrService) {\r\n //Init form to prevent errors\r\n this.feedbackForm = this.fb.group({});\r\n }\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n // use the renderer to interact with the actual DOM Element.\r\n this.renderer.invokeElementMethod(this.select.nativeElement, 'focus');\r\n\r\n //Get the studies list to show in the dropdown\r\n this.loadComplete = false;\r\n this.researchService.getStudies()\r\n .subscribe(\r\n (stus) => {\r\n this.loadComplete = true;\r\n this.studies = stus;\r\n //Change the variable value so the listeners can get the new value\r\n this.nullStudies.next(this.studies.length == 0);\r\n });\r\n this.currentPage = this.getCurrentPage();\r\n }\r\n\r\n onChange(value: Number) {\r\n this.selectedOption = value;\r\n\r\n if (this.selectedOption == 1) {\r\n //Close modal\r\n this.modal.dismiss(\"Option 1 selected\");\r\n\r\n //Get element with thah ID to perform click event.\r\n let element: HTMLElement = document.getElementById(\"widgetIcon\");\r\n element.click();\r\n }\r\n if (this.selectedOption == 2) {\r\n //Suscribe to the variable changes\r\n this.getStudyCount().subscribe(x => {\r\n this.valid = x;\r\n //Setup form validation to validate that one study is selected and comment field is not null\r\n this.feedbackForm = this.fb.group({\r\n comment: [\"\", Validators.required],\r\n selectStudy: [{ value: \"\", disabled: this.valid}, Validators.required]\r\n });\r\n })\r\n }\r\n if (this.selectedOption == 3) {\r\n this.valid = false;\r\n //Setup form validation to validate that comment field is not null\r\n this.feedbackForm = this.fb.group({\r\n comment: [\"\", Validators.required]\r\n });\r\n }\r\n }\r\n\r\n onSubmit(data) {\r\n this.isSending = true;\r\n\r\n if (this.selectedOption == 2) {\r\n //Get value from the select and find the selected study in the list\r\n var studyId = data.selectStudy;\r\n this.selectedStudy = this.studies.find(x => x.studyId == studyId);\r\n //Call API to send email to PI and Primary Contact\r\n this.onSendStudyEmail(data.comment, this.selectedStudy)\r\n }\r\n if (this.selectedOption == 3) {\r\n //Call API to send email to support\r\n this.onSendSupportRequest(data.comment, this.currentPage);\r\n }\r\n }\r\n\r\n //Method to send a support request to Huron\r\n onSendSupportRequest(comment: String, selectedPage: String) {\r\n this.isSending = true;\r\n this.feedbackService.askSupport(comment, selectedPage)\r\n .subscribe(\r\n () => {\r\n this.isSending = false;\r\n this.modal.dismiss(\"Support sent\");\r\n this.toastr.success(\"Support email sent.\", \"Success\");\r\n },\r\n (err) => {\r\n this.isSending = false;\r\n }\r\n )\r\n }\r\n\r\n //Method to send the email to PI and Primary Contact\r\n onSendStudyEmail(comment: String, study: StudyListItem) {\r\n this.feedbackForm.controls.selectStudy.disable();\r\n this.isSending = true;\r\n this.feedbackService.sendStudyEmail(comment, study)\r\n .subscribe(\r\n () => {\r\n this.isSending = false;\r\n this.modal.dismiss(\"Email sent to study PI and Primary Contact\")\r\n this.toastr.success(\"Email sent to the IRB of Record.\", \"Success\");\r\n },\r\n (err) => {\r\n this.isSending = false;\r\n }\r\n )\r\n }\r\n\r\n //Method to get the value when the selected option changes\r\n studyChanged(value: String) {\r\n this.studyId = value;\r\n var currentStudy = this.studies.find(x => x.studyId == this.studyId);\r\n this.study = null;\r\n this.proxies = [];\r\n this.researchService.getStudyDetails(currentStudy.exchangeContainerId)\r\n .subscribe(\r\n (study) => {\r\n this.study = study;\r\n this.hasProxies = this.study.piProxies.length > 0;\r\n //Concat first and last name and push it to the proxies array\r\n this.study.piProxies.forEach(x => {\r\n this.proxies.push(`${x.firstName} ${x.lastName}`);\r\n });\r\n });\r\n }\r\n\r\n //Method to suscribe the data changes\r\n getStudyCount() {\r\n return this.nullStudies.asObservable();\r\n }\r\n\r\n getCurrentPage():string{\r\n //Get the route from the URL\r\n let route: string = this.route.url;\r\n\r\n //Split the route to get the url page.\r\n var splitted = route.split('/');\r\n route = splitted[1];\r\n\r\n //If url is organizations\r\n if (route.toUpperCase() == \"ORGANIZATIONS\") {\r\n //Check if it's organizations page\r\n if (splitted.length == 2)\r\n return \"Organizations\"\r\n //Check if it's users page\r\n if (splitted.length == 3)\r\n return \"Users\"\r\n }\r\n\r\n //If url is research\r\n if (route.toUpperCase() == \"RESEARCH\") {\r\n //Check if it's research page study list\r\n if (splitted.length == 3 && splitted.includes(\"studies\"))\r\n return \"Research\"\r\n //Check if it's site details page\r\n if (splitted.length == 6)\r\n return \"Site Details\"\r\n //Check if it's study details page\r\n if (splitted.length == 4)\r\n return \"Study Details\"\r\n //Check if it's site invitations page\r\n if (splitted.length == 3 && splitted.includes(\"invitations\"))\r\n return \"Invitations\"\r\n //Check if it's mod page\r\n if (splitted.includes(\"mod\"))\r\n return \"Modification\"\r\n //Check if it's rni page\r\n if (splitted.includes(\"rni\"))\r\n return \"RNI\"\r\n }\r\n\r\n //If url is accounts\r\n if (route.toUpperCase() == \"ACCOUNTS\") {\r\n return \"Account\"\r\n }\r\n //If url is homepage\r\n if (route == \"\") {\r\n return \"Home\"\r\n }\r\n\r\n }\r\n\r\n}\r\n","\r\n// Layout components\r\nexport * from './layouts/centered-layout/centered-layout.component';\r\nexport * from './layouts/empty-layout/empty-layout.component';\r\nexport * from './layouts/main-layout/main-layout.component';\r\n\r\n// Components\r\nexport * from './footer/footer.component';\r\nexport * from './header/header.component';\r\nexport * from './message-box/message-box.component';\r\nexport * from './document-download-cell/document-download-cell.component';\r\nexport * from './document-download/document-download.component';\r\nexport * from './document-upload-cell/document-upload-cell.component';\r\nexport * from './document-upload-list/document-upload-list.component';\r\nexport * from './document-upload-list-cell/document-upload-list-cell.component';\r\nexport * from './document-upload/document-upload.component';\r\nexport * from './delete-row/delete-row.component';\r\nexport * from './router-link-cell/router-link-cell.component';\r\nexport * from './document-download-list-cell/document-download-list-cell.component'\r\nexport * from './step-list/step-list.component';\r\n\r\n// Errors\r\nexport * from './not-found/not-found.component';\r\nexport * from './forbidden/forbidden.component';\r\n\r\n// Services\r\nexport * from './message-box.service';\r\n\r\n// Other\r\nexport * from './error-response-interceptor';\r\nexport * from './no-cache-interceptor';\r\nexport * from './problem-details';\r\nexport * from './password-validation';\r\nexport * from './ag-grid-defaults';\r\nexport * from './pending-changes.guard';\r\n\r\nexport * from './shared.module';","module.exports = \" 0\\\" class=\\\"badge badge-pill badge-danger\\\">{{ count }}\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9pbnZpdGF0aW9uLWNvdW50L2ludml0YXRpb24tY291bnQuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnDestroy } from '@angular/core';\r\nimport { ResearchService } from 'src/app/data-services';\r\nimport { timer, Subscription, merge } from 'rxjs';\r\nimport { switchMap } from 'rxjs/operators';\r\n\r\nconst POLLING_INTERVAL = 10 * 60 * 1000; // every 10 minutes\r\n\r\n@Component({\r\n selector: 'app-invitation-count',\r\n templateUrl: './invitation-count.component.html',\r\n styleUrls: ['./invitation-count.component.scss']\r\n})\r\nexport class InvitationCountComponent implements OnDestroy {\r\n\r\n count: number;\r\n\r\n private pollSubscription: Subscription;\r\n private actionSubscription: Subscription;\r\n \r\n constructor(private researchService: ResearchService) { \r\n\r\n // update the invitation count every 10 minutes\r\n this.pollSubscription = timer(0, POLLING_INTERVAL)\r\n .pipe(switchMap(() => this.researchService.getInvitationCount(true)))\r\n .subscribe(value => this.count = value);\r\n\r\n // decrement the count when an invitation has been accepted or declined\r\n this.actionSubscription = merge(\r\n this.researchService.invitationAccepted$,\r\n this.researchService.invitationDeclined$)\r\n .subscribe(_ => this.count--); \r\n }\r\n\r\n ngOnDestroy() {\r\n this.pollSubscription.unsubscribe();\r\n this.actionSubscription.unsubscribe();\r\n }\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n template: '',\r\n styles: [`\r\n :host {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n background-color: #00568c;\r\n background-image: url('assets/images/cubes.png');\r\n background-size: cover;\r\n }`,\r\n ]\r\n})\r\nexport class CenteredLayoutComponent { }\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n template: ''\r\n})\r\nexport class EmptyLayoutComponent {\r\n\r\n}\r\n","module.exports = \"\\r\\n
\\r\\n \\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9sYXlvdXRzL21haW4tbGF5b3V0L21haW4tbGF5b3V0LmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-main-layout',\r\n templateUrl: './main-layout.component.html',\r\n styleUrls: ['./main-layout.component.scss']\r\n})\r\nexport class MainLayoutComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n

{{ message }}

\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9sb2FkaW5nL2xvYWRpbmcuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-loading',\r\n templateUrl: './loading.component.html',\r\n styleUrls: ['./loading.component.scss']\r\n})\r\nexport class LoadingComponent {\r\n\r\n @Input() message: string = \"Loading\";\r\n\r\n constructor() { }\r\n\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { NgbModal, NgbModalOptions } from '@ng-bootstrap/ng-bootstrap';\r\nimport { MessageBoxComponent, MessageBoxButtons, MessageBoxIcon, MessageBoxResult } from './message-box/message-box.component';\r\nimport { Observable } from 'rxjs';\r\n\r\nconst CONFIRM_DEFAULT_TITLE = \"Are you sure?\"\r\n\r\nexport interface MessageBoxOptions {\r\n message: string,\r\n title?: string,\r\n buttons?: MessageBoxButtons,\r\n icon?: MessageBoxIcon,\r\n dismissable?: boolean\r\n}\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class MessageBoxService {\r\n\r\n constructor(private modal: NgbModal) {}\r\n\r\n alert(message: string) {\r\n return this.open({ message, title: null, buttons: MessageBoxButtons.Ok });\r\n }\r\n\r\n confirm(message: string, title: string = CONFIRM_DEFAULT_TITLE) {\r\n return this.open({ message, title, buttons: MessageBoxButtons.YesNo, dismissable: false });\r\n }\r\n\r\n open(options: MessageBoxOptions): Observable {\r\n\r\n let message = options.message;\r\n let title = options.title;\r\n let buttons = options.buttons || MessageBoxButtons.OkCancel;\r\n let icon = options.icon || MessageBoxIcon.None;\r\n let dismissable = options.dismissable == null ? true : options.dismissable;\r\n\r\n return Observable.create((observer) => {\r\n\r\n var modalOptions: NgbModalOptions = {\r\n backdrop: dismissable ? true : 'static'\r\n };\r\n\r\n var modalRef = this.modal.open(MessageBoxComponent, modalOptions);\r\n var instance = modalRef.componentInstance;\r\n instance.message = message;\r\n instance.title = title;\r\n instance.buttons = buttons;\r\n instance.icon = icon;\r\n instance.dismissable = dismissable;\r\n \r\n modalRef.componentInstance.message = message;\r\n\r\n modalRef.result\r\n .then(\r\n value => observer.next(value),\r\n reason => observer.next(MessageBoxResult.Dismiss)\r\n )\r\n .then(() => observer.complete());\r\n\r\n });\r\n\r\n }\r\n\r\n\r\n}","module.exports = \"
\\r\\n

{{ title }}

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{ message }}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9tZXNzYWdlLWJveC9tZXNzYWdlLWJveC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n/**\r\n * The buttons\r\n */\r\nexport enum MessageBoxButtons {\r\n Ok = 1,\r\n Cancel = 2,\r\n OkCancel = 3,\r\n Yes = 4,\r\n No = 8,\r\n YesNo = 12,\r\n YesNoCancel = 14\r\n}\r\n\r\n/**\r\n * The icon the is displayed within the message box.\r\n */\r\nexport enum MessageBoxIcon {\r\n None = 0,\r\n Error = 1,\r\n Warning = 2,\r\n Information = 3\r\n}\r\n\r\nexport enum MessageBoxResult {\r\n Dismiss = 0,\r\n Ok = 1,\r\n Cancel = 2,\r\n Yes = 3,\r\n No = 4\r\n}\r\n\r\ninterface MessageBoxButton {\r\n text: string,\r\n value: MessageBoxResult\r\n}\r\n\r\n@Component({\r\n selector: 'app-message-box',\r\n templateUrl: './message-box.component.html',\r\n styleUrls: ['./message-box.component.scss']\r\n})\r\nexport class MessageBoxComponent implements OnInit {\r\n\r\n @Input() title: string;\r\n @Input() message: string;\r\n @Input() buttons: MessageBoxButtons = MessageBoxButtons.OkCancel;\r\n @Input() icon: MessageBoxIcon = MessageBoxIcon.None;\r\n @Input() dismissable: boolean;\r\n\r\n _buttons: MessageBoxButton[] = [];\r\n _iconClasses: object;\r\n\r\n constructor(private activeModal: NgbActiveModal) { }\r\n\r\n ngOnInit() {\r\n this.initButtons(this.buttons);\r\n this.initIcon(this.icon);\r\n }\r\n\r\n onClick(button: any) {\r\n this.activeModal.close(button.value);\r\n }\r\n\r\n onCrossClick() {\r\n this.activeModal.dismiss();\r\n }\r\n\r\n private initButtons(buttons: MessageBoxButtons)\r\n {\r\n // clear the list of buttons\r\n this._buttons.splice(0, this._buttons.length);\r\n\r\n if (buttons & MessageBoxButtons.Ok) {\r\n this._buttons.push({ text: 'OK', value: MessageBoxResult.Ok });\r\n }\r\n if (buttons & MessageBoxButtons.Yes) {\r\n this._buttons.push({ text: 'Yes', value: MessageBoxResult.Yes });\r\n }\r\n if (buttons & MessageBoxButtons.No) {\r\n this._buttons.push({ text: 'No', value: MessageBoxResult.No });\r\n }\r\n if (buttons & MessageBoxButtons.Cancel) {\r\n this._buttons.push({ text: 'Cancel', value: MessageBoxResult.Cancel });\r\n }\r\n\r\n }\r\n\r\n private initIcon(icon: MessageBoxIcon)\r\n {\r\n switch (icon) {\r\n case MessageBoxIcon.Error:\r\n this._iconClasses = { \r\n 'far': true,\r\n 'fa-exclamation-square': true,\r\n 'fa-2x': true,\r\n 'text-danger': true\r\n };\r\n break;\r\n case MessageBoxIcon.Warning:\r\n this._iconClasses = {\r\n 'far': true,\r\n 'fa-exclamation-triangle': true,\r\n 'fa-2x': true,\r\n 'text-warning': true\r\n }\r\n break;\r\n case MessageBoxIcon.Information:\r\n this._iconClasses = {\r\n 'far': true,\r\n 'fa-info-circle': true,\r\n 'fa-2x': true,\r\n 'text-info': true\r\n }\r\n break;\r\n case MessageBoxIcon.None:\r\n this._iconClasses = { };\r\n break;\r\n }\r\n }\r\n\r\n}\r\n\r\n\r\n","module.exports = \"\\r\\n\\r\\n\\r\\n
  • \\r\\n Register\\r\\n
  • \\r\\n
  • \\r\\n Sign in\\r\\n
  • \\r\\n
    \"","module.exports = \"nav {\\n border-top: 2px solid #00568c;\\n padding: 1em 0; }\\n\\n.logo {\\n width: 150px;\\n height: 31px;\\n min-width: 150px;\\n min-height: 31px;\\n margin-top: -6px; }\\n\\na.btn {\\n width: 90px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL25hdi1iYXIvRDpcXEplbmtpbnNcXHdvcmtzcGFjZVxcRXhjaGFuZ2VVSS1BZGhvY1xcc3JjXFxIdXJvbi5FeGNoYW5nZS5VSS9zcmNcXGFwcFxcc2hhcmVkXFxuYXYtYmFyXFxuYXYtYmFyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksNkJBQTZCO0VBQzdCLGNBQWMsRUFBQTs7QUFHbEI7RUFDSSxZQUFZO0VBQ1osWUFBWTtFQUNaLGdCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIsZ0JBQWdCLEVBQUE7O0FBR3BCO0VBQ0ksV0FBVyxFQUFBIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL25hdi1iYXIvbmF2LWJhci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIm5hdiB7XHJcbiAgICBib3JkZXItdG9wOiAycHggc29saWQgIzAwNTY4YztcclxuICAgIHBhZGRpbmc6IDFlbSAwO1xyXG59XHJcblxyXG4ubG9nbyB7XHJcbiAgICB3aWR0aDogMTUwcHg7XHJcbiAgICBoZWlnaHQ6IDMxcHg7XHJcbiAgICBtaW4td2lkdGg6IDE1MHB4O1xyXG4gICAgbWluLWhlaWdodDogMzFweDtcclxuICAgIG1hcmdpbi10b3A6IC02cHg7XHJcbn1cclxuXHJcbmEuYnRue1xyXG4gICAgd2lkdGg6IDkwcHg7XHJcbn0iXX0= */\"","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { AuthService } from '../../auth';\r\nimport { FeedbackDialogComponent } from '../feedback-dialog/feedback-dialog.component';\r\nimport { FeedbackService, UserService } from '../../data-services';\r\nimport { Role } from 'src/app/models';\r\nimport { Subscription } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\nimport { HelpComponentDialog } from '../help-dialog/help-dialog.component';\r\n\r\n@Component({\r\n selector: 'app-nav-bar',\r\n templateUrl: './nav-bar.component.html',\r\n styleUrls: ['./nav-bar.component.scss']\r\n})\r\nexport class NavBarComponent implements OnInit {\r\n\r\n isOpen = false;\r\n\r\n showOrganizations: boolean = false;\r\n showUsers: boolean = false;\r\n showInvitations: boolean = false;\r\n showResearch: boolean = false;\r\n name: string;\r\n\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n public auth: AuthService,\r\n private userService: UserService,\r\n private router: Router,\r\n private feedbackService: FeedbackService,\r\n private toastr: ToastrService,\r\n private modal: NgbModal) { }\r\n\r\n ngOnInit() {\r\n\r\n\r\n this.buildMenu();\r\n\r\n // rebuild the nav menu when a user signs out\r\n this.subscriptions.push(this.auth.signedOut$.subscribe(() => {\r\n this.buildMenu();\r\n this.router.navigate(['/']);\r\n }));\r\n\r\n this.subscriptions.push(this.auth.signedIn$.subscribe(user => {\r\n this.name = user.name;\r\n }));\r\n\r\n this.subscriptions.push(this.userService.userContactInfoUpdated$.subscribe(userContactInfo => {\r\n this.name = `${userContactInfo.firstName} ${userContactInfo.lastName}`;\r\n }));\r\n\r\n if (this.auth.isAuthenticated) {\r\n this.userService.getUser(this.auth.currentUser.id).subscribe(user => {\r\n this.name = user.name;\r\n })\r\n }\r\n\r\n this.subscriptions.push(this.userService.userRoleAssigned$\r\n .pipe(filter(value => value.id === this.auth.currentUser.id))\r\n .subscribe(e => {\r\n var user = this.auth.currentUser;\r\n user.roles.push(e.role);\r\n this.auth.updateUser(user);\r\n this.buildMenu();\r\n }));\r\n\r\n this.subscriptions.push(this.userService.userRoleUnassigned$\r\n .pipe(filter(value => value.id === this.auth.currentUser.id))\r\n .subscribe(e => {\r\n var user = this.auth.currentUser;\r\n user.roles = user.roles.filter((value) => value != e.role);\r\n this.auth.updateUser(user);\r\n this.buildMenu();\r\n }));\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n for(var i=0; i < this.subscriptions.length; i++) {\r\n this.subscriptions[i].unsubscribe();\r\n }\r\n }\r\n\r\n openFeedbackDialog() {\r\n this.modal.open(FeedbackDialogComponent).result.then(data => {\r\n\r\n this.feedbackService.provideFeedback(data.comment, data.rating)\r\n .subscribe(() => this.toastr.success(\"Your feedback is greatly appreciated.\", \"Thank you!\"));\r\n\r\n }).catch(err => {\r\n console.debug('feedback canceled', err);\r\n })\r\n }\r\n\r\n openHelpDialog() {\r\n this.modal.open(HelpComponentDialog);\r\n }\r\n \r\n toggle() {\r\n this.isOpen = !this.isOpen;\r\n }\r\n\r\n signOut() {\r\n this.router.navigate(['/signOut']);\r\n }\r\n\r\n \r\n buildMenu() {\r\n\r\n var currentUser = this.auth.currentUser;\r\n \r\n if (currentUser) {\r\n this.showOrganizations = currentUser.isInRole(Role.Administrator);\r\n this.showUsers = currentUser.isInAnyRole([Role.Administrator, Role.AccountManager]);\r\n this.showResearch = currentUser.isInAnyRole([Role.RelianceCoordinator, Role.StudyStaff]);\r\n this.showInvitations = currentUser.isInAnyRole([Role.RelianceCoordinator, Role.StudyStaff]);\r\n } \r\n else {\r\n this.showOrganizations = false;\r\n this.showUsers = false;\r\n this.showResearch = false;\r\n this.showInvitations = false;\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class NoCacheInterceptor implements HttpInterceptor {\r\n \r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n \r\n if (req.method === 'GET') {\r\n const noCacheRequest = req.clone({\r\n headers: req.headers\r\n .set('Cache-Control', 'no-cache')\r\n .set('Pragma', 'no-cache')\r\n });\r\n return next.handle(noCacheRequest);\r\n }\r\n\r\n return next.handle(req);\r\n }\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n template: '

    404 Not Found

    '\r\n})\r\nexport class NotFoundComponent {\r\n\r\n constructor() { }\r\n\r\n}\r\n","export class ObjectUtils {\r\n \r\n public static deepCopy(obj: any): any {\r\n var copy;\r\n\r\n // Handle the 3 simple types, and null or undefined\r\n if (null == obj || \"object\" != typeof obj) return obj;\r\n\r\n // Handle Date\r\n if (obj instanceof Date) {\r\n copy = new Date();\r\n copy.setTime(obj.getTime());\r\n return copy;\r\n }\r\n\r\n // Handle Array\r\n if (obj instanceof Array) {\r\n copy = [];\r\n for (var i = 0, len = obj.length; i < len; i++) {\r\n copy[i] = ObjectUtils.deepCopy(obj[i]);\r\n }\r\n return copy;\r\n }\r\n\r\n // Handle Object\r\n if (obj instanceof Object) {\r\n copy = {};\r\n for (var attr in obj) {\r\n if (obj.hasOwnProperty(attr)) copy[attr] = ObjectUtils.deepCopy(obj[attr]);\r\n }\r\n return copy;\r\n }\r\n\r\n throw new Error(\"Unable to copy obj! Its type isn't supported.\");\r\n }\r\n\r\n private static deepDiffMapper() {\r\n return {\r\n VALUE_CREATED: 'created',\r\n VALUE_UPDATED: 'updated',\r\n VALUE_DELETED: 'deleted',\r\n VALUE_UNCHANGED: 'unchanged',\r\n map: function (obj1, obj2) {\r\n if (this.isFunction(obj1) || this.isFunction(obj2)) {\r\n throw 'Invalid argument. Function given, object expected.';\r\n }\r\n if (this.isValue(obj1) || this.isValue(obj2)){\r\n let temp = {\r\n type: this.compareValues(obj1, obj2),\r\n data: (obj1 === undefined) ? obj2 : obj1\r\n };\r\n if(temp.type !== this.VALUE_UNCHANGED){\r\n return temp;\r\n } else return null;\r\n }\r\n\r\n var diff = {};\r\n for (var key in obj1) {\r\n if (this.isFunction(obj1[key])) {\r\n continue;\r\n }\r\n\r\n var value2 = undefined;\r\n if ('undefined' != typeof (obj2[key])) {\r\n value2 = obj2[key];\r\n }\r\n\r\n diff[key] = this.map(obj1[key], value2);\r\n if(diff[key] == null){\r\n delete diff[key];\r\n }else if (typeof diff[key] == 'object' && Object.keys(diff[key]).length == 0){\r\n delete diff[key];\r\n }\r\n }\r\n for (var key in obj2) {\r\n if (this.isFunction(obj2[key]) || ('undefined' != typeof (obj1[key]))) {\r\n continue;\r\n }\r\n\r\n diff[key] = this.map(undefined, obj2[key]);\r\n if(diff[key].hasOwnProperty(\"type\") && diff[key].hasOwnProperty(\"data\")){\r\n if (diff[key].type == this.VALUE_CREATED){\r\n if(typeof diff[key].data == 'object' && diff[key].data.hasOwnProperty(\"delete\")){\r\n if(diff[key].data.delete == true){\r\n delete diff[key];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return diff;\r\n\r\n },\r\n compareValues: function (value1, value2) {\r\n if (value1 === value2) {\r\n return this.VALUE_UNCHANGED;\r\n }\r\n if (this.isDate(value1) && this.isDate(value2) && value1.getTime() === value2.getTime()) {\r\n return this.VALUE_UNCHANGED;\r\n }\r\n if ('undefined' == typeof (value1)) {\r\n return this.VALUE_CREATED;\r\n }\r\n if ('undefined' == typeof (value2)) {\r\n return this.VALUE_DELETED;\r\n }\r\n\r\n return this.VALUE_UPDATED;\r\n },\r\n isFunction: function (obj) {\r\n return {}.toString.apply(obj) === '[object Function]';\r\n },\r\n isArray: function (obj) {\r\n return {}.toString.apply(obj) === '[object Array]';\r\n },\r\n isDate: function (obj) {\r\n return {}.toString.apply(obj) === '[object Date]';\r\n },\r\n isObject: function (obj) {\r\n return {}.toString.apply(obj) === '[object Object]';\r\n },\r\n isValue: function (obj) {\r\n return !this.isObject(obj) && !this.isArray(obj);\r\n }\r\n }\r\n }\r\n\r\n public static getDifference(obj1: any, obj2: any){\r\n return ObjectUtils.deepDiffMapper().map(obj1, obj2);\r\n }\r\n\r\n}\r\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\r\n\r\nexport class PasswordValidation {\r\n\r\n /**\r\n * This is a factory method for creating a validation that requires two controls to have\r\n * the same value. \r\n * \r\n * @param control1 The name of the password form control. Defaults to 'password'.\r\n * @param control2 The name of the confirm password form control. Defaults to 'confirmPassword'.\r\n */\r\n static MatchPassword(control1: string = 'password', control2: string = 'confirmPassword'): ValidatorFn {\r\n return (ac: AbstractControl) => {\r\n let password = ac.get(control1).value;\r\n let confirm = ac.get(control2).value;\r\n if (password != confirm) {\r\n ac.get(control2).setErrors({ matchPassword: true });\r\n }\r\n return null;\r\n }\r\n }\r\n\r\n /**\r\n * This validation ensures the value contains a minimum of number of unique characters.\r\n * \r\n * @param min The minimum number of unique characters\r\n */\r\n static minUnique(min: number): ValidatorFn {\r\n \r\n function countUnique(value: string) {\r\n if (!value) {\r\n return 0;\r\n }\r\n \r\n var uniqueChars = \"\";\r\n for (var i=0; i < value.length; i++) {\r\n var c = value.charAt(i);\r\n if (uniqueChars.indexOf(c) == -1) {\r\n uniqueChars += c;\r\n }\r\n }\r\n \r\n return uniqueChars.length;\r\n }\r\n\r\n return (ac: AbstractControl) => {\r\n var unique = countUnique(ac.value);\r\n return unique < min ? { 'minUnique': { required: min, actual: unique } } : null;\r\n }\r\n }\r\n}\r\n","module.exports = \" 0\\\" class=\\\"badge badge-pill badge-danger\\\">{{ count }}\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9wZW5kaW5nLWFwcHJvdmFsLWNvdW50L3BlbmRpbmctYXBwcm92YWwtY291bnQuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnDestroy } from '@angular/core';\r\nimport { UserService } from 'src/app/data-services';\r\nimport { Subscription, timer, merge } from 'rxjs';\r\nimport { switchMap } from 'rxjs/operators';\r\n\r\nconst POLLING_INTERVAL = 10 * 60 * 1000; // 10 minutes\r\n\r\n@Component({\r\n selector: 'app-pending-approval-count',\r\n templateUrl: './pending-approval-count.component.html',\r\n styleUrls: ['./pending-approval-count.component.scss']\r\n})\r\nexport class PendingApprovalCountComponent implements OnDestroy {\r\n\r\n count: number;\r\n\r\n pollSubscription: Subscription;\r\n actionSubscription: Subscription;\r\n\r\n constructor(private userService: UserService) { \r\n \r\n this.pollSubscription = timer(0, POLLING_INTERVAL)\r\n .pipe(switchMap(() => this.userService.getPendingApprovalCount(true)))\r\n .subscribe(value => this.count = value);\r\n\r\n // decrement the count when an a user is approved or denied\r\n this.actionSubscription = merge(\r\n this.userService.userApproved$,\r\n this.userService.userDenied$)\r\n .subscribe(_ => this.count--); \r\n }\r\n\r\n ngOnDestroy() {\r\n this.actionSubscription.unsubscribe();\r\n this.pollSubscription.unsubscribe();\r\n }\r\n}\r\n","import { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { CanDeactivate } from '@angular/router';\r\nimport { Injectable} from '@angular/core';\r\nimport { MessageBoxResult, MessageBoxIcon, MessageBoxButtons } from './message-box/message-box.component';\r\nimport { MessageBoxService } from './message-box.service';\r\nimport { AuthService } from 'src/app/auth';\r\n\r\nexport interface ComponentCanDeactivate {\r\n canDeactivate: () => boolean | Observable;\r\n}\r\n\r\n@Injectable()\r\nexport class PendingChangesGuard implements CanDeactivate {\r\n constructor(private messageBox: MessageBoxService, private auth: AuthService) { }\r\n\r\n canDeactivate(component: ComponentCanDeactivate): boolean | Observable {\r\n // if the user is alredy signed out, just allow deactivation. They're probably being redirected to home or login.\r\n // if there are no pending changes, just allow deactivation. else confirm first \r\n if (!this.auth.isAuthenticated || component.canDeactivate()){\r\n return true;\r\n }\r\n else return this.messageBox.open({\r\n message: 'You have unsaved changes to this page. Press No to go back, or Yes to proceed and lose these changes.',\r\n title: 'Abandon Changes?',\r\n icon: MessageBoxIcon.Warning,\r\n buttons: MessageBoxButtons.YesNo,\r\n dismissable: true\r\n }).pipe(map(x => x == MessageBoxResult.Yes));\r\n }\r\n}","module.exports = \"\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9yZWFkLW1vcmUvcmVhZC1tb3JlLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-read-more',\r\n templateUrl: './read-more.component.html',\r\n styleUrls: ['./read-more.component.scss']\r\n})\r\nexport class ReadMoreComponent implements OnInit {\r\n\r\n @Input() text: string;\r\n @Input() maxLength: number = 100;\r\n currentText: string;\r\n hideToggle: boolean = true;\r\n isCollapsed: boolean = true;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n \r\n toggleView() {\r\n this.isCollapsed = !this.isCollapsed;\r\n this.determineView();\r\n }\r\n\r\n determineView() {\r\n if (!this.text || this.text.length <= this.maxLength) {\r\n this.currentText = this.text;\r\n this.isCollapsed = false;\r\n this.hideToggle = true;\r\n return;\r\n }\r\n this.hideToggle = false;\r\n if (this.isCollapsed == true) {\r\n this.currentText = this.text.substring(0, this.maxLength) + \"...\";\r\n } else if (this.isCollapsed == false) {\r\n this.currentText = this.text;\r\n }\r\n\r\n }\r\n\r\n ngOnChanges() {\r\n this.determineView();\r\n }\r\n}\r\n","module.exports = \"{{displayValue}}\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9yb3V0ZXItbGluay1jZWxsL3JvdXRlci1saW5rLWNlbGwuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { AgRendererComponent } from 'ag-grid-angular';\r\n\r\n@Component({\r\n selector: 'app-router-link-cell',\r\n templateUrl: './router-link-cell.component.html',\r\n styleUrls: ['./router-link-cell.component.scss']\r\n})\r\nexport class RouterLinkCellComponent implements AgRendererComponent {\r\n\r\n constructor() { }\r\n\r\n params: any;\r\n routerLinkArray = [];\r\n displayValue = \"\";\r\n\r\n agInit(params: any): void {\r\n this.params = params;\r\n this.setRouterLinkArray();\r\n this.setDisplay();\r\n }\r\n\r\n refresh(params: any): boolean {\r\n this.params = params;\r\n this.setRouterLinkArray();\r\n this.setDisplay();\r\n return true;\r\n }\r\n\r\n setRouterLinkArray(){\r\n this.routerLinkArray = [];\r\n this.routerLinkArray = this.params.routerLink.map(e => {\r\n if(e.startsWith('{{') && e.endsWith('}}')){\r\n return this.params.data[e.substring(2, e.length-2)];\r\n }else{\r\n return e;\r\n }\r\n });\r\n }\r\n\r\n setDisplay(){\r\n this.displayValue = this.params.data[this.params.displayAttribute];\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport { CenteredLayoutComponent } from './layouts/centered-layout/centered-layout.component';\r\nimport { EmptyLayoutComponent } from './layouts/empty-layout/empty-layout.component';\r\nimport { MainLayoutComponent } from './layouts/main-layout/main-layout.component';\r\n\r\nimport { HeaderComponent } from './header/header.component';\r\nimport { FooterComponent } from './footer/footer.component';\r\nimport { NotFoundComponent } from './not-found/not-found.component';\r\nimport { NavBarComponent } from './nav-bar/nav-bar.component';\r\nimport { FeedbackDialogComponent } from './feedback-dialog/feedback-dialog.component';\r\nimport { AuthModule } from '../auth';\r\nimport { ForbiddenComponent } from './forbidden/forbidden.component';\r\nimport { DocumentDownloadComponent } from './document-download/document-download.component';\r\nimport { LoadingComponent } from './loading/loading.component';\r\nimport { DocumentUploadComponent } from './document-upload/document-upload.component';\r\nimport { DocumentDownloadCellComponent } from './document-download-cell/document-download-cell.component';\r\nimport { DocumentUploadCellComponent } from './document-upload-cell/document-upload-cell.component';\r\nimport { MessageBoxComponent } from './message-box/message-box.component';\r\nimport { InvitationCountComponent } from './invitation-count/invitation-count.component';\r\nimport { RouterLinkCellComponent } from './router-link-cell/router-link-cell.component';\r\nimport { PendingApprovalCountComponent } from './pending-approval-count/pending-approval-count.component';\r\nimport { DeleteRowComponent } from './delete-row/delete-row.component';\r\nimport { DocumentUploadListCellComponent } from './document-upload-list-cell/document-upload-list-cell.component';\r\nimport { DocumentDownloadListCellComponent } from './document-download-list-cell/document-download-list-cell.component';\r\nimport { AppcuesWidgetComponent } from './appcues-widget/appcues-widget.component';\r\nimport { StepListComponent } from './step-list/step-list.component';\r\nimport { DocumentUploadListComponent } from './document-upload-list/document-upload-list.component';\r\nimport { ReadMoreComponent } from './read-more/read-more.component';\r\nimport { HelpComponentDialog } from './help-dialog/help-dialog.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n CenteredLayoutComponent,\r\n EmptyLayoutComponent,\r\n MainLayoutComponent,\r\n\r\n HeaderComponent,\r\n FooterComponent,\r\n NavBarComponent,\r\n\r\n DocumentDownloadComponent,\r\n DocumentUploadComponent,\r\n DocumentDownloadCellComponent,\r\n DocumentUploadCellComponent,\r\n DocumentUploadListCellComponent,\r\n DocumentDownloadListCellComponent,\r\n\r\n FeedbackDialogComponent,\r\n HelpComponentDialog,\r\n\r\n NotFoundComponent,\r\n ForbiddenComponent,\r\n LoadingComponent,\r\n MessageBoxComponent,\r\n InvitationCountComponent,\r\n RouterLinkCellComponent,\r\n PendingApprovalCountComponent,\r\n DeleteRowComponent, \r\n AppcuesWidgetComponent, \r\n StepListComponent, \r\n DocumentUploadListComponent, \r\n ReadMoreComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n NgbModule,\r\n AuthModule\r\n ],\r\n entryComponents: [\r\n FeedbackDialogComponent,\r\n MessageBoxComponent,\r\n HelpComponentDialog\r\n ],\r\n exports: [\r\n FooterComponent,\r\n DocumentUploadListComponent,\r\n DocumentDownloadComponent,\r\n DocumentUploadComponent,\r\n LoadingComponent,\r\n StepListComponent,\r\n ReadMoreComponent\r\n ]\r\n})\r\nexport class SharedModule { }","module.exports = \"
      \\r\\n
    • \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n

      {{ step.title }}

      \\r\\n
    • \\r\\n
    \\r\\n\"","module.exports = \".step-list {\\n list-style-type: none;\\n padding: 0; }\\n\\n.step {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-align: center;\\n align-items: center;\\n color: #6c757d;\\n margin-bottom: 20px;\\n min-height: 36px; }\\n\\n.step.complete {\\n color: #28a745; }\\n\\n.step.active {\\n color: #00568c; }\\n\\n.step-indicator {\\n display: inline-block;\\n width: 40px; }\\n\\n.step-title {\\n display: inline-block;\\n font-size: 1.5rem;\\n margin: 0; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL3N0ZXAtbGlzdC9EOlxcSmVua2luc1xcd29ya3NwYWNlXFxFeGNoYW5nZVVJLUFkaG9jXFxzcmNcXEh1cm9uLkV4Y2hhbmdlLlVJL3NyY1xcYXBwXFxzaGFyZWRcXHN0ZXAtbGlzdFxcc3RlcC1saXN0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0kscUJBQXFCO0VBQ3JCLFVBQVUsRUFBQTs7QUFHZDtFQUVJLG9CQUFhO0VBQWIsYUFBYTtFQUNiLHNCQUFtQjtNQUFuQixtQkFBbUI7RUFFbkIsY0FBYztFQUNkLG1CQUFtQjtFQUNuQixnQkFBZ0IsRUFBQTs7QUFQcEI7SUFXUSxjQUFjLEVBQUE7O0FBWHRCO0lBZVEsY0FBYyxFQUFBOztBQU10QjtFQUNJLHFCQUFxQjtFQUNyQixXQUFXLEVBQUE7O0FBR2Y7RUFDSSxxQkFBcUI7RUFDckIsaUJBQWlCO0VBQ2pCLFNBQVMsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9zdGVwLWxpc3Qvc3RlcC1saXN0LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnN0ZXAtbGlzdCB7XHJcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4uc3RlcCB7XHJcblxyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gICAgY29sb3I6ICM2Yzc1N2Q7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgbWluLWhlaWdodDogMzZweDtcclxuICAgIFxyXG5cclxuICAgICYuY29tcGxldGUge1xyXG4gICAgICAgIGNvbG9yOiAjMjhhNzQ1O1xyXG4gICAgfVxyXG5cclxuICAgICYuYWN0aXZlIHtcclxuICAgICAgICBjb2xvcjogIzAwNTY4YztcclxuICAgIH1cclxuXHJcbiAgICBcclxufVxyXG5cclxuLnN0ZXAtaW5kaWNhdG9yIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHdpZHRoOiA0MHB4O1xyXG59XHJcblxyXG4uc3RlcC10aXRsZSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBmb250LXNpemU6IDEuNXJlbTtcclxuICAgIG1hcmdpbjogMDtcclxufSJdfQ== */\"","import { Component, OnInit, Input } from '@angular/core';\r\n\r\nexport class Step {\r\n\r\n private _active: boolean;\r\n private _complete: boolean;\r\n private _show: boolean;\r\n private _data: any;\r\n private _title: string;\r\n \r\n constructor(\r\n title: string,\r\n hide: boolean = false,\r\n data: any = null) {\r\n this._title = title;\r\n this._show = !hide;\r\n this._data = data;\r\n }\r\n\r\n get active(): boolean {\r\n return this._active;\r\n }\r\n\r\n get complete(): boolean {\r\n return this._complete;\r\n }\r\n\r\n get data(): any {\r\n return this._data;\r\n }\r\n\r\n get inactive(): boolean {\r\n return !this._active;\r\n }\r\n\r\n get show(): boolean {\r\n return this._show;\r\n }\r\n\r\n get title(): string {\r\n return this._title;\r\n }\r\n \r\n public markComplete() {\r\n this._complete = true;\r\n }\r\n\r\n public markIncomplete() {\r\n this._complete = false;\r\n }\r\n\r\n public markActive() {\r\n this._active = true;\r\n }\r\n\r\n public markInactive() {\r\n this._active = false;\r\n }\r\n\r\n}\r\n\r\n@Component({\r\n selector: 'app-step-list',\r\n templateUrl: './step-list.component.html',\r\n styleUrls: ['./step-list.component.scss']\r\n})\r\nexport class StepListComponent implements OnInit {\r\n\r\n @Input() steps: Step[];\r\n\r\n private index: number = -1;\r\n private _complete: boolean;\r\n private history: number[] = [];\r\n \r\n\r\n constructor() { \r\n \r\n }\r\n\r\n get complete(): boolean {\r\n return this._complete;\r\n }\r\n get currentStep(): Step {\r\n return this.index < this.steps.length ? this.steps[this.index] : null;\r\n }\r\n get currentIndex(): number {\r\n return this.index;\r\n }\r\n\r\n get visibleSteps(): Step[] {\r\n return this.steps.filter(s => s.show);\r\n }\r\n\r\n ngOnInit() {\r\n console.log(\"[StepListComponent::ngOnInit()]\")\r\n this.moveNext();\r\n }\r\n\r\n public canMoveTo(stepIndex: number) {\r\n return stepIndex < this.steps.length;\r\n }\r\n\r\n public canMoveNext(): boolean {\r\n return this.canMoveTo(this.index + 1);\r\n }\r\n\r\n public canMovePrevious(): boolean {\r\n return this.history.length > 0;\r\n }\r\n\r\n public moveTo(stepIndex: number, markComplete: boolean = true) {\r\n\r\n if (!this.canMoveTo(stepIndex)) {\r\n return false;\r\n }\r\n\r\n if (this.currentStep) {\r\n if (markComplete) {\r\n this.currentStep.markComplete();\r\n }\r\n \r\n this.currentStep.markInactive();\r\n this.history.push(this.index);\r\n }\r\n\r\n this.index = stepIndex;\r\n this.currentStep.markActive();\r\n return true;\r\n }\r\n\r\n public moveNext(): boolean {\r\n return this.moveTo(this.index + 1);\r\n }\r\n\r\n public movePrevious(): boolean {\r\n\r\n if (!this.canMovePrevious()) {\r\n return false;\r\n }\r\n\r\n var prevIndex = this.history.pop();\r\n var prevStep = this.steps[prevIndex];\r\n\r\n prevStep.markIncomplete();\r\n prevStep.markActive();\r\n\r\n this.currentStep.markInactive();\r\n\r\n this.index = prevIndex;\r\n return true;\r\n }\r\n\r\n public reset(): void {\r\n this.steps.forEach( function (step, index){\r\n step.markInactive();\r\n step.markIncomplete();\r\n });\r\n this.moveTo(0, false);\r\n this.history = [];\r\n }\r\n}\r\n","module.exports = \"
    \\r\\n

    Add user

    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    Required.
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    Required.
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    Required.
    \\r\\n
    Please supply a valid email address.
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    Required.
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n The password must be at least 13 characters long and have at least 6 unique characters.\\r\\n
    Required.
    \\r\\n
    Your password must be at least {{password.errors.minlength.requiredLength}} characters long.
    \\r\\n
    Your password must have at least {{ password.errors.minUnique.required }} unique characters.
    \\r\\n
    The password you entered is commonly used and considered insecure. Please supply a different password.
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    Required.
    \\r\\n
    Passwords must match.
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n Registering...\\r\\n
    \\r\\n
    \\r\\n
    \"","module.exports = \".btn-message {\\n display: inline-block;\\n font-weight: 400;\\n text-align: center;\\n vertical-align: middle;\\n border: 1px solid transparent;\\n padding: 0.375rem 0.75rem;\\n font-size: 1rem; }\\n\\n.btn-message, .btn-message * {\\n cursor: default; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdXNlcnMvY3JlYXRlLXVzZXItZGlhbG9nL0Q6XFxKZW5raW5zXFx3b3Jrc3BhY2VcXEV4Y2hhbmdlVUktQWRob2NcXHNyY1xcSHVyb24uRXhjaGFuZ2UuVUkvc3JjXFxhcHBcXHVzZXJzXFxjcmVhdGUtdXNlci1kaWFsb2dcXGNyZWF0ZS11c2VyLWRpYWxvZy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLHFCQUFxQjtFQUNyQixnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLHNCQUFzQjtFQUN0Qiw2QkFBNkI7RUFDN0IseUJBQXlCO0VBQ3pCLGVBQWUsRUFBQTs7QUFFbkI7RUFDSSxlQUFlLEVBQUEiLCJmaWxlIjoic3JjL2FwcC91c2Vycy9jcmVhdGUtdXNlci1kaWFsb2cvY3JlYXRlLXVzZXItZGlhbG9nLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmJ0bi1tZXNzYWdlIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICBwYWRkaW5nOiAwLjM3NXJlbSAwLjc1cmVtO1xyXG4gICAgZm9udC1zaXplOiAxcmVtO1xyXG59XHJcbi5idG4tbWVzc2FnZSwgLmJ0bi1tZXNzYWdlICoge1xyXG4gICAgY3Vyc29yOiBkZWZhdWx0O1xyXG59XHJcbiJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, Validators, FormBuilder, ValidatorFn, AbstractControl } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { AccountService } from '../../data-services';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { User } from 'src/app/models';\r\nimport { PasswordValidation, ValidationProblemDetails } from 'src/app/shared';\r\n\r\n@Component({\r\n selector: 'app-create-user-dialog',\r\n templateUrl: './create-user-dialog.component.html',\r\n styleUrls: ['./create-user-dialog.component.scss']\r\n})\r\nexport class CreateUserDialogComponent implements OnInit {\r\n\r\n /**\r\n * The registration form.\r\n */\r\n theForm: FormGroup;\r\n\r\n /**\r\n * A flag that indicates the create account form has been submitted to the server.\r\n */\r\n submitted: boolean;\r\n\r\n registering: boolean;\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private toastr: ToastrService,\r\n private activeModal: NgbActiveModal,\r\n private accountService: AccountService) \r\n {\r\n this.theForm = this.formBuilder.group({\r\n organizationId: [''],\r\n organizationName: [''],\r\n assuranceNumber: [''],\r\n email: ['', Validators.compose([Validators.required, Validators.email])],\r\n password: ['', Validators.compose([Validators.required, Validators.minLength(13), PasswordValidation.minUnique(6) ])],\r\n confirmPassword: ['', Validators.required],\r\n firstName: ['', Validators.required],\r\n lastName: ['', Validators.required],\r\n phoneNumber: ['', Validators.required],\r\n approved: [true] // this will tell the server to pre-approve the account\r\n }, { validator: Validators.compose([PasswordValidation.MatchPassword(), this.requireOneOf('organizationId','organizationName')]) });\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n /**\r\n * A custom valiation which requires at least of the specified controls to have a value.\r\n * \r\n * @param controls A collection of controls to check\r\n */\r\n requireOneOf(...controls: string[]): ValidatorFn\r\n {\r\n return (ac: AbstractControl) => {\r\n var result = controls.some(controlName => {\r\n return false == this.isEmptyInputValue(ac.get(controlName));\r\n });\r\n\r\n return result ? null : { requireOneOf: true };\r\n }\r\n }\r\n\r\n isEmptyInputValue(value) {\r\n return value == null || value.length === 0;\r\n }\r\n\r\n onSubmit() {\r\n this.submitted = true;\r\n\r\n if (this.theForm.invalid) {\r\n return;\r\n }\r\n\r\n this.registering = true;\r\n\r\n this.accountService.register(this.theForm.value)\r\n .pipe(finalize(() => {\r\n this.registering = false;\r\n }))\r\n .subscribe((user: User) => {\r\n this.activeModal.close(user);\r\n this.toastr.success(`User has been added successfully`, \"Success!\")\r\n },\r\n (err: ValidationProblemDetails) => {\r\n if (err.errors && err.errors['']) {\r\n \r\n if (err.errors[''].includes('PasswordMismatch')) {\r\n this.password.setErrors({ mismatch: true });\r\n }\r\n\r\n if (err.errors[''].includes('BlackListedPassword')) {\r\n this.password.setErrors({ blacklisted: true });\r\n }\r\n }\r\n });\r\n }\r\n\r\n onCancel() {\r\n this.activeModal.dismiss('cancel');\r\n }\r\n\r\n /**\r\n * Accessor for the organization id form control.\r\n */\r\n get organizationId() {\r\n return this.theForm.controls['organizationId'];\r\n }\r\n\r\n /**\r\n * Accessor for the organization name form control.\r\n */\r\n get organizationName() {\r\n return this.theForm.controls['organizationName'];\r\n }\r\n\r\n /**\r\n * Accessor for the first name form control.\r\n */\r\n get firstName() {\r\n return this.theForm.controls['firstName'];\r\n }\r\n\r\n /**\r\n * Accessor for the last name form control.\r\n */\r\n get lastName() {\r\n return this.theForm.controls['lastName'];\r\n }\r\n\r\n /**\r\n * Accessor for the phone number form control.\r\n */\r\n get phoneNumber() {\r\n return this.theForm.controls['phoneNumber'];\r\n }\r\n\r\n /**\r\n * Accessor for the email form control.\r\n */\r\n get email() {\r\n return this.theForm.controls['email'];\r\n }\r\n \r\n /**\r\n * Accessor for the password form control.\r\n */\r\n get password() {\r\n return this.theForm.controls['password'];\r\n }\r\n\r\n /**\r\n * Accessor for the password confirmation form control.\r\n */\r\n get confirmPassword() {\r\n return this.theForm.controls['confirmPassword'];\r\n }\r\n}\r\n","module.exports = \"\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3VzZXJzL2RlbGV0ZS11c2VyLWJ1dHRvbi9kZWxldGUtdXNlci1idXR0b24uY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { User } from 'src/app/models';\r\nimport { UserService } from '../../data-services';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { MessageBoxService, MessageBoxIcon, MessageBoxButtons, MessageBoxResult } from 'src/app/shared';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-delete-user-button',\r\n templateUrl: './delete-user-button.component.html',\r\n styleUrls: ['./delete-user-button.component.scss']\r\n})\r\nexport class DeleteUserButtonComponent implements OnInit {\r\n\r\n @Input() user: User;\r\n @Input() iconOnly: boolean;\r\n @Output() delete = new EventEmitter();\r\n\r\n private confirm: Observable;\r\n\r\n constructor(\r\n private userService: UserService,\r\n private toastr: ToastrService,\r\n private messageBox: MessageBoxService) { }\r\n\r\n ngOnInit() {\r\n \r\n this.confirm = this.messageBox.open({\r\n message: 'Are you sure?',\r\n title: `Delete ${this.user.name}`,\r\n icon: MessageBoxIcon.Warning,\r\n buttons: MessageBoxButtons.YesNo,\r\n dismissable: false\r\n });\r\n\r\n }\r\n\r\n deleteUser() {\r\n\r\n this.confirm.subscribe(value => {\r\n if (value == MessageBoxResult.Yes) {\r\n this.userService.deleteUser(this.user.id)\r\n .subscribe(data => {\r\n this.toastr.success(`${this.user.name}'s account was deleted.`, 'Success');\r\n this.delete.next(this.user);\r\n })\r\n }\r\n });\r\n\r\n }\r\n}\r\n","module.exports = \"\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3VzZXJzL2RlbGV0ZS11c2VyLXJvdy9kZWxldGUtdXNlci1yb3cuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { UserService } from 'src/app/data-services';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { MessageBoxService, MessageBoxResult, MessageBoxIcon, MessageBoxButtons } from 'src/app/shared';\r\nimport { Observable } from 'rxjs';\r\nimport { User } from 'src/app/models';\r\n\r\n@Component({\r\n selector: 'app-delete-user-row',\r\n templateUrl: './delete-user-row.component.html',\r\n styleUrls: ['./delete-user-row.component.scss']\r\n})\r\nexport class DeleteUserRowComponent implements OnInit{\r\n private confirm: Observable;\r\n params: any;\r\n user : User;\r\n\r\n constructor(\r\n private userService: UserService,\r\n private toastr: ToastrService,\r\n private messageBox: MessageBoxService) { }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n refresh(params): boolean {\r\n this.params = params;\r\n return true;\r\n }\r\n\r\n agInit(params): void {\r\n this.params = params;\r\n this.user = params.node.data;\r\n this.confirm = this.messageBox.open({\r\n message: 'Are you sure?',\r\n title: `Delete ${this.user.name}`,\r\n icon: MessageBoxIcon.Warning,\r\n buttons: MessageBoxButtons.YesNo,\r\n dismissable: false\r\n });\r\n }\r\n\r\n deleteRow() {\r\n this.confirm.subscribe(value => {\r\n if (value == MessageBoxResult.Yes) {\r\n this.userService.deleteUser(this.user.id)\r\n .subscribe(data => {\r\n this.toastr.success(`${this.user.name}'s account was deleted.`, 'Success');\r\n this.params.api.updateRowData({ remove: [this.params.node.data] });\r\n })\r\n }\r\n });\r\n }\r\n}","\r\n// Components\r\nexport * from './delete-user-button/delete-user-button.component';\r\nexport * from './user-approval-editor/user-approval-editor.component';\r\nexport * from './user-contact-info-editor/user-contact-info-editor.component';\r\nexport * from './user-list/user-list.component';\r\nexport * from './user-lock-editor/user-lock-editor.component';\r\nexport * from './user-role-editor/user-role-editor.component';\r\nexport * from './user-role-info-tooltip/user-role-info-tooltip.component';\r\nexport * from './create-user-dialog/create-user-dialog.component';\r\n\r\nexport * from './users.module';","module.exports = \"\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3VzZXJzL3VzZXItYXBwcm92YWwtZWRpdG9yL3VzZXItYXBwcm92YWwtZWRpdG9yLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { User } from 'src/app/models';\r\nimport { UserService } from '../../data-services';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-user-approval-editor',\r\n templateUrl: './user-approval-editor.component.html',\r\n styleUrls: ['./user-approval-editor.component.scss']\r\n})\r\nexport class UserApprovalEditorComponent implements OnInit {\r\n\r\n @Input() user: User;\r\n @Input() iconOnly: boolean;\r\n\r\n @Output() deny = new EventEmitter();\r\n @Output() approve = new EventEmitter();\r\n\r\n constructor(\r\n private userService: UserService,\r\n private toastr: ToastrService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n approveUser() {\r\n this.userService.approveUser(this.user.id)\r\n .subscribe(() => {\r\n this.toastr.success(`${this.user.name}'s account has been approved.`, 'Success');\r\n this.user.isApproved = true;\r\n this.approve.next(this.user);\r\n });\r\n }\r\n\r\n denyUser() {\r\n this.userService.denyUser(this.user.id)\r\n .subscribe(() => {\r\n this.toastr.success(`${this.user.name}'s account has been denied.`, 'Success');\r\n this.user.isApproved = false;\r\n this.deny.next(this.user);\r\n });\r\n }\r\n \r\n}\r\n","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    Required.
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    Required.
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    Required.
    \\r\\n
    Please supply a valid email address.
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    Required.
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    Required.
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    Required.
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    Required.
    \\r\\n
    Please supply a valid email address.
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    Required.
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3VzZXJzL3VzZXItY29udGFjdC1pbmZvLWVkaXRvci91c2VyLWNvbnRhY3QtaW5mby1lZGl0b3IuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, Input, SimpleChanges, Output, EventEmitter } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { UserContactInfo } from '../../data-services';\r\nimport { MessageBoxService, MessageBoxButtons, MessageBoxIcon, MessageBoxResult } from 'src/app/shared';\r\n\r\n@Component({\r\n selector: 'app-user-contact-info-editor',\r\n templateUrl: './user-contact-info-editor.component.html',\r\n styleUrls: ['./user-contact-info-editor.component.scss']\r\n})\r\nexport class UserContactInfoEditorComponent implements OnInit {\r\n\r\n @Input() user: UserContactInfo;\r\n @Input() layout: string = \"default\";\r\n @Input() editSelf: boolean = false;\r\n\r\n @Output() save = new EventEmitter();\r\n\r\n original: UserContactInfo;\r\n\r\n submitted: boolean;\r\n theForm: FormGroup;\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private messageBox: MessageBoxService) {\r\n\r\n this.theForm = fb.group({\r\n firstName: ['', Validators.required],\r\n lastName: ['', Validators.required],\r\n email: ['', Validators.compose([Validators.required, Validators.email])],\r\n phoneNumber: ['', Validators.required]\r\n });\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n\r\n if (changes.user) {\r\n var current = changes.user.currentValue;\r\n\r\n this.original = {\r\n firstName: current.firstName,\r\n lastName: current.lastName,\r\n phoneNumber: current.phoneNumber,\r\n email: current.email\r\n };\r\n\r\n var editable = Object.assign({}, this.original);\r\n\r\n this.theForm.reset();\r\n this.theForm.setValue(editable);\r\n this.submitted = false;\r\n }\r\n }\r\n\r\n onSubmit() {\r\n this.submitted = true;\r\n\r\n if (this.theForm.invalid) {\r\n return;\r\n }\r\n\r\n if (this.original.email !== this.email.value) {\r\n this.messageBox.open({\r\n message: this.getEmailConfirmationMessage(),\r\n title: 'Are you sure?',\r\n buttons: MessageBoxButtons.YesNo,\r\n icon: MessageBoxIcon.Warning,\r\n dismissable: false\r\n }).subscribe((result: MessageBoxResult) => {\r\n\r\n if (result == MessageBoxResult.Yes) {\r\n this.save.next(this.theForm.value);\r\n } else {\r\n this.email.setValue(this.original.email);\r\n }\r\n\r\n });\r\n }\r\n else {\r\n this.save.next(this.theForm.value);\r\n }\r\n }\r\n\r\n get firstName() {\r\n return this.theForm.controls['firstName'];\r\n }\r\n\r\n get lastName() {\r\n return this.theForm.controls['lastName'];\r\n }\r\n\r\n get email() {\r\n return this.theForm.controls['email'];\r\n }\r\n\r\n get phoneNumber() {\r\n return this.theForm.controls['phoneNumber'];\r\n }\r\n\r\n private getEmailConfirmationMessage(): string {\r\n if (this.editSelf) {\r\n return 'Your email address is used to link your research from sIRB systems to the Huron IRB Exchange. In order to maintain this link, you will need to notify all sIRB institutions of any changes made to your email address so they can update accordingly.';\r\n }\r\n return \"A user's email address is used to link their research from sIRB systems to the Huron IRB Exchange. In order to maintain this link, all sIRB institutions will need to be notified of changes made to any user's email address so they can update accordingly.\";\r\n }\r\n\r\n isEquivalent(a: any, b: any): boolean {\r\n var aProps = Object.getOwnPropertyNames(a);\r\n var bProps = Object.getOwnPropertyNames(b);\r\n\r\n if (aProps.length != bProps.length) {\r\n return false;\r\n }\r\n\r\n for (var i = 0; i < aProps.length; i++) {\r\n var propName = aProps[i];\r\n if (a[propName] !== b[propName]) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n}\r\n","module.exports = \"\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3VzZXJzL3VzZXItbGlzdC91c2VyLWxpc3QuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, Input } from '@angular/core';\r\nimport { User } from '../../models';\r\nimport { RouterLinkCellComponent, AgGridDefaults } from 'src/app/shared';\r\nimport { DeleteUserRowComponent } from '../delete-user-row/delete-user-row.component';\r\nimport { UserRowActionsEditorComponent } from '../user-row-actions-editor/user-row-actions-editor.component';\r\n\r\n@Component({\r\n selector: 'app-user-list',\r\n templateUrl: './user-list.component.html',\r\n styleUrls: ['./user-list.component.scss']\r\n})\r\nexport class UserListComponent implements OnInit {\r\n @Input() users: User[];\r\n\r\n //grid configuration\r\n usersGridOptions = AgGridDefaults.getGridOptions({\r\n columnDefs: [\r\n { colId: \"deleteRow\", cellRenderer: \"deleteRow\", type: [\"deleteRow\"] },\r\n {\r\n headerName: \"Name\",\r\n field: \"name\",\r\n cellRenderer: \"routerLinkRenderer\", \r\n cellRendererParams: { routerLink: ['/accounts/', '{{id}}'], displayAttribute: 'name' }\r\n },\r\n { colId: \"email\", headerName: \"Email\", field: \"email\" },\r\n { colId: \"roles\", headerName: \"Roles\", field: \"roles\" },\r\n { colId: \"actions\", headerName: \"Actions\", cellRenderer: \"userActionEditor\", type: [\"noSort\"] }\r\n ],\r\n frameworkComponents: {\r\n deleteRow: DeleteUserRowComponent,\r\n userActionEditor: UserRowActionsEditorComponent,\r\n routerLinkRenderer: RouterLinkCellComponent\r\n }\r\n });\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n }\r\n\r\n //on first grid render\r\n onUsersGridReady(params) {\r\n this.usersGridOptions.api = params.api;\r\n this.usersGridOptions.columnApi = params.columnApi;\r\n if (this.users != null && this.usersGridOptions.api != null) {\r\n this.usersGridOptions.api.setRowData(this.users);\r\n this.usersGridOptions.setGridColumnWidths();\r\n }\r\n }\r\n\r\n //on first row rendered in grid\r\n onFirstDataRendered(params, optionsObj) {\r\n return AgGridDefaults.onFirstDataRendered(params, optionsObj);\r\n }\r\n\r\n onDenyUser(user: User) {\r\n this.removeUserFromList(user);\r\n }\r\n \r\n onDeleteUser(user: User) {\r\n this.removeUserFromList(user);\r\n }\r\n\r\n private removeUserFromList(user: User) {\r\n var index = this.users.findIndex(u => u === user);\r\n if (index !== -1) {\r\n this.users.splice(index,1);\r\n }\r\n }\r\n\r\n public onDataUpdated(newData: User[]){\r\n //triggered on first load of data into the parent component, or on filter change, because the change detector is uncooperative on the @Input set of users\r\n this.users = newData;\r\n if (this.users != null && this.usersGridOptions.api != null) {\r\n this.usersGridOptions.api.setRowData(this.users);\r\n }\r\n }\r\n}\r\n","module.exports = \"\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3VzZXJzL3VzZXItbG9jay1lZGl0b3IvdXNlci1sb2NrLWVkaXRvci5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\r\nimport { User } from 'src/app/models';\r\nimport { UserService } from '../../data-services';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-user-lock-editor',\r\n templateUrl: './user-lock-editor.component.html',\r\n styleUrls: ['./user-lock-editor.component.scss']\r\n})\r\nexport class UserLockEditorComponent implements OnInit {\r\n\r\n @Input() user: User;\r\n @Output() lock = new EventEmitter();\r\n @Output() unlock = new EventEmitter();\r\n\r\n constructor(\r\n private userService: UserService,\r\n private toastr: ToastrService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n lockUser() {\r\n this.userService.lockUser(this.user.id)\r\n .subscribe(() => {\r\n this.toastr.success(`${this.user.name}'s account has been locked.`, 'Success');\r\n this.user.isLocked = true;\r\n this.lock.next(this.user);\r\n });\r\n }\r\n\r\n unlockUser() {\r\n this.userService.unlockUser(this.user.id)\r\n .subscribe(() => {\r\n this.toastr.success(`${this.user.name}'s account has been unlocked.`, 'Success');\r\n this.user.isLocked = false;\r\n this.unlock.next(this.user);\r\n });\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ abbreviations ? rm.abbrev : rm.role }}\\r\\n \\r\\n\"","module.exports = \".role {\\n font-family: 'bebas'; }\\n .role:hover {\\n cursor: pointer; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdXNlcnMvdXNlci1yb2xlLWVkaXRvci9EOlxcSmVua2luc1xcd29ya3NwYWNlXFxFeGNoYW5nZVVJLUFkaG9jXFxzcmNcXEh1cm9uLkV4Y2hhbmdlLlVJL3NyY1xcYXBwXFx1c2Vyc1xcdXNlci1yb2xlLWVkaXRvclxcdXNlci1yb2xlLWVkaXRvci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLG9CQUFvQixFQUFBO0VBRHhCO0lBSVEsZUFBZSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvdXNlcnMvdXNlci1yb2xlLWVkaXRvci91c2VyLXJvbGUtZWRpdG9yLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvbGUge1xyXG4gICAgZm9udC1mYW1pbHk6ICdiZWJhcyc7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgfVxyXG59Il19 */\"","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Role, ROLE_METADATA, User } from '../../models';\r\nimport { UserService } from '../../data-services';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { AuthService } from 'src/app/auth';\r\n\r\n/**\r\n * This component is sed to edit the roles of a user.\r\n */\r\n@Component({\r\n selector: 'app-user-role-editor',\r\n templateUrl: './user-role-editor.component.html',\r\n styleUrls: ['./user-role-editor.component.scss']\r\n})\r\nexport class UserRoleEditorComponent implements OnInit {\r\n\r\n /**\r\n * The user that is targeted for role changes.\r\n */\r\n @Input() user: User;\r\n\r\n /**\r\n * Shows the roles as abbreviations if true, otherwise displays full text\r\n */\r\n @Input() abbreviations: boolean;\r\n\r\n /**\r\n * Meta data for building the UI and tooltip\r\n */\r\n roleMetadata = ROLE_METADATA;\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private toastr: ToastrService) { }\r\n\r\n ngOnInit() {\r\n var currentUser = this.authService.currentUser;\r\n if (!currentUser) {\r\n this.roleMetadata = [];\r\n }\r\n if (!currentUser.isInRole(Role.Administrator)) {\r\n this.roleMetadata = ROLE_METADATA.slice(1);\r\n }\r\n }\r\n\r\n toggleRole(user: User, role: Role) {\r\n\r\n var i = user.roles.findIndex(r => r === role);\r\n if (i == -1) {\r\n \r\n console.debug('assign role', role);\r\n this.userService.assignRole(user.id, role)\r\n .subscribe(() => {\r\n user.roles.push(role);\r\n }, \r\n err => {},\r\n () => this.toastr.success(`The ${role} role was assigned to ${user.name}.`, \"Success!\"));\r\n\r\n return;\r\n }\r\n \r\n console.debug('unassign role', role);\r\n this.userService.unassignRole(user.id, role)\r\n .subscribe(() => {\r\n user.roles.splice(i, 1);\r\n },\r\n err => {},\r\n () => this.toastr.success(`The ${role} role was removed from ${user.name}.`, \"Success!\"));\r\n\r\n return;\r\n }\r\n\r\n getRoleTooltip(user: User, role: Role) {\r\n return user.isInRole(role) ? \"Unassign\" : \"Assign\";\r\n }\r\n\r\n \r\n\r\n}\r\n\r\n","module.exports = \"\\r\\n\\r\\n\\r\\n
    \\r\\n

    Click on a role to assign or unassign\\r\\n it to a user.

    \\r\\n
    \\r\\n
    {{ md.role }}
    \\r\\n
    \\r\\n {{ md.abbrev }}\\r\\n
    \\r\\n

    {{ md.description }}

    \\r\\n
    \\r\\n
    \\r\\n
    \"","module.exports = \"i:hover {\\n cursor: pointer; }\\n\\n.tooltip-roles .tooltip-inner {\\n text-align: left;\\n max-width: 300px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdXNlcnMvdXNlci1yb2xlLWluZm8tdG9vbHRpcC9EOlxcSmVua2luc1xcd29ya3NwYWNlXFxFeGNoYW5nZVVJLUFkaG9jXFxzcmNcXEh1cm9uLkV4Y2hhbmdlLlVJL3NyY1xcYXBwXFx1c2Vyc1xcdXNlci1yb2xlLWluZm8tdG9vbHRpcFxcdXNlci1yb2xlLWluZm8tdG9vbHRpcC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGVBQWMsRUFBQTs7QUFJbEI7RUFLUSxnQkFBZ0I7RUFDaEIsZ0JBQWdCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC91c2Vycy91c2VyLXJvbGUtaW5mby10b29sdGlwL3VzZXItcm9sZS1pbmZvLXRvb2x0aXAuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJpOmhvdmVyIHtcclxuICAgIGN1cnNvcjpwb2ludGVyO1xyXG59XHJcblxyXG4vLyBUaGlzIGlzIHRoZSBjbGFzcyBhcHBsaWVkIHZpYSB0aGUgdG9vbHRpcENsYXNzIGlucHV0IG9mIHRoZSBOZ2JUb29sdGlwIGRpcmVjdGl2ZS5cclxuLnRvb2x0aXAtcm9sZXMge1xyXG5cclxuICAgIC8vIEVhY2ggdG9vbHRpcCBjb250YWlucyBhIGRpdiBlbGVtZW50IHdpdGggdGhpcyBjbGFzc1xyXG4gICAgLy8gdGhhdCBoYXMgYmVlbiBjcmVhdGVkIGJ5IHRoZSBOZ2JUb29sdGlwIGRpcmVjdGl2ZS5cclxuICAgIC50b29sdGlwLWlubmVyIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgIG1heC13aWR0aDogMzAwcHg7XHJcbiAgICB9XHJcbn0iXX0= */\"","import { Component, ViewEncapsulation } from '@angular/core';\r\nimport { ROLE_METADATA } from '../../models';\r\n\r\n@Component({\r\n selector: 'app-user-role-info-tooltip',\r\n templateUrl: './user-role-info-tooltip.component.html',\r\n styleUrls: ['./user-role-info-tooltip.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class UserRoleInfoTooltipComponent {\r\n\r\n /**\r\n * The role metadata without the Administrator\r\n */\r\n roleMetadata = ROLE_METADATA.slice(1);\r\n\r\n}\r\n","module.exports = \"\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3VzZXJzL3VzZXItcm93LWFjdGlvbnMtZWRpdG9yL3VzZXItcm93LWFjdGlvbnMtZWRpdG9yLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { User } from 'src/app/models';\r\n\r\n@Component({\r\n selector: 'app-user-row-actions-editor',\r\n templateUrl: './user-row-actions-editor.component.html',\r\n styleUrls: ['./user-row-actions-editor.component.scss']\r\n})\r\nexport class UserRowActionsEditorComponent implements OnInit {\r\n gridParams: any;\r\n user: User;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n refresh(params): boolean {\r\n this.gridParams = params;\r\n return true;\r\n }\r\n\r\n agInit(params): void {\r\n this.gridParams = params;\r\n this.user = this.gridParams.node.data;\r\n }\r\n\r\n onDenyUser(e: any) {\r\n this.gridParams.api.updateRowData({ remove: [this.gridParams.node.data] });\r\n }\r\n\r\n}","module.exports = \"
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3VzZXJzL3VzZXItc2VhcmNoLXR5cGVhaGVhZC91c2VyLXNlYXJjaC10eXBlYWhlYWQuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, Output, ViewChild, EventEmitter, Input, forwardRef, Renderer2 } from '@angular/core';\r\nimport { NgbTypeahead, NgbTypeaheadSelectItemEvent, NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { UserSearchResult, UserService } from '../../data-services';\r\nimport { Observable } from 'rxjs';\r\nimport { finalize, switchMap, tap, distinctUntilChanged, debounceTime, filter, map } from 'rxjs/operators';\r\nimport { NG_VALUE_ACCESSOR, DefaultValueAccessor, ControlValueAccessor } from '@angular/forms';\r\n\r\n\r\n@Component({\r\n selector: 'app-user-search-typeahead',\r\n templateUrl: './user-search-typeahead.component.html',\r\n styleUrls: ['./user-search-typeahead.component.scss']\r\n})\r\n\r\nexport class UserSearchTypeaheadComponent implements OnInit {\r\n\r\n @Input() placeholder: string = \"Search ...\";\r\n @Input() label: string;\r\n\r\n /**\r\n * The search term.\r\n */\r\n @Input() term: string;\r\n\r\n @Output('selectUser') select = new EventEmitter();\r\n\r\n /**\r\n * This event is fired just before the component makes a request to the\r\n * server to find matching organization. The search term is supplied as\r\n * the event data.\r\n */\r\n @Output('beforeSearch') beforeSearch = new EventEmitter();\r\n\r\n /**\r\n * A refrence to the typeahead component used in the view template.\r\n */\r\n @ViewChild('typeahead') typeahead: NgbTypeahead;\r\n\r\n /**\r\n * The observable function used to produce the search results\r\n */\r\n search: (text: Observable) => Observable\r\n\r\n /**\r\n * A flag to indicate a request has been made to the server and is waiting\r\n * on a response.\r\n */\r\n searching: boolean = false;\r\n\r\n constructor(\r\n private userService: UserService, \r\n private activeModal: NgbActiveModal) { }\r\n\r\n ngOnInit() {\r\n this.search = (text: Observable) => text.pipe(\r\n map(t => t.trim()),\r\n tap(() => this.typeahead.dismissPopup()),\r\n filter(t => t.length > 2),\r\n debounceTime(300),\r\n distinctUntilChanged(),\r\n tap(t => this.beforeSearch.emit(t)),\r\n tap(() => this.searching = true),\r\n switchMap(t => this.userService.search({ term: t }).pipe(\r\n finalize(() => this.searching = false))),\r\n );\r\n }\r\n\r\n onSelected(event: NgbTypeaheadSelectItemEvent) {\r\n this.activeModal.close(event.item as UserSearchResult);\r\n }\r\n\r\n onClickCancel(e?:any){\r\n this.activeModal.dismiss();\r\n }\r\n\r\n /**\r\n * This is used for format the search results into a display string for the typeahead input control.\r\n * \r\n * @param usr A user search result object.\r\n */\r\n format(usr: UserSearchResult) {\r\n let strBuilder = [];\r\n if(usr.firstName != null && usr.firstName != \"\"){\r\n strBuilder.push(usr.firstName);\r\n }\r\n if(usr.lastName != null && usr.lastName != \"\"){\r\n if(strBuilder.length > 0){\r\n strBuilder.push(' ');\r\n }\r\n strBuilder.push(usr.lastName);\r\n }\r\n strBuilder.push('(');\r\n strBuilder.push(usr.email);\r\n strBuilder.push(')');\r\n return strBuilder.join('');\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { AgGridModule } from 'ag-grid-angular';\r\n\r\nimport { AuthModule } from '../auth';\r\n\r\nimport { UserListComponent } from './user-list/user-list.component';\r\nimport { UserRoleEditorComponent } from './user-role-editor/user-role-editor.component';\r\nimport { UserRoleInfoTooltipComponent } from './user-role-info-tooltip/user-role-info-tooltip.component';\r\nimport { UserContactInfoEditorComponent } from './user-contact-info-editor/user-contact-info-editor.component';\r\nimport { UserApprovalEditorComponent } from './user-approval-editor/user-approval-editor.component';\r\nimport { UserLockEditorComponent } from './user-lock-editor/user-lock-editor.component';\r\nimport { DeleteUserButtonComponent } from './delete-user-button/delete-user-button.component';\r\nimport { CreateUserDialogComponent } from './create-user-dialog/create-user-dialog.component';\r\nimport { DeleteUserRowComponent } from './delete-user-row/delete-user-row.component';\r\nimport { RouterLinkCellComponent } from '../shared';\r\nimport { UserRowActionsEditorComponent } from './user-row-actions-editor/user-row-actions-editor.component';\r\nimport { UserSearchTypeaheadComponent } from './user-search-typeahead/user-search-typeahead.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n UserContactInfoEditorComponent,\r\n UserListComponent,\r\n UserRoleEditorComponent,\r\n UserRoleInfoTooltipComponent,\r\n UserApprovalEditorComponent,\r\n UserLockEditorComponent,\r\n DeleteUserButtonComponent,\r\n CreateUserDialogComponent,\r\n DeleteUserRowComponent,\r\n UserRowActionsEditorComponent,\r\n UserSearchTypeaheadComponent\r\n ],\r\n imports: [\r\n AgGridModule.withComponents([\r\n DeleteUserRowComponent,\r\n RouterLinkCellComponent,\r\n UserRowActionsEditorComponent\r\n ]),\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n \r\n NgbModule,\r\n ToastrModule,\r\n \r\n AuthModule\r\n ],\r\n exports: [\r\n DeleteUserButtonComponent,\r\n UserContactInfoEditorComponent,\r\n UserListComponent,\r\n UserRoleEditorComponent,\r\n UserApprovalEditorComponent,\r\n UserLockEditorComponent,\r\n UserSearchTypeaheadComponent\r\n ],\r\n entryComponents: [\r\n CreateUserDialogComponent\r\n ]\r\n})\r\nexport class UsersModule { }\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n\r\n"],"sourceRoot":""}